给Die Serie装上大脑:LLCOM LuaDrehbuchDebugging-Tools

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

给Die Serie装上大脑:LLCOM LuaDrehbuchDebugging-Tools缩略图
🌐 Diese Seite ist noch nicht auf Deutsch verfügbar. Die chinesische Version wird angezeigt. Zurück zur chinesischen Seite.
本文目录
  1. 1. 一、LLCOM Was ist das?
  2. 2. 二、安装与Download
  3. 3. 三、Funktion清单:比普通Die SerieAssistenten.多了什么
  4. 4. 四、两大核心Funktion详解
  5. 5. 4.1 Senden Sie前 Lua 处理
  6. 6. 4.2 独立 Lua DrehbuchBetrieb区
  7. 7. 五、核心 API 速查
  8. 8. 5.1 Die Serie收发 API
  9. 9. 5.2 定时器与协程 API
  10. 10. 5.3 Charaktere串处理 API
  11. 11. 5.4 日志 API
  12. 12. 六、Modbus RTU 实战Drehbuch
  13. 13. 6.1 智能Senden Sie:自动Berechnung Modbus CRC 并Senden Sie
  14. 14. 6.2 Modbus RTU 自动轮询Drehbuch
  15. 15. 6.3 多Von der Station扫描器
  16. 16. 6.4 Antwort帧自动Analyse + DatenExportieren
  17. 17. 七、TCP / MQTT / 监听 —— 其他 Modbus Szene
  18. 18. 7.1 调 Modbus TCP
  19. 19. 7.2 MQTT 测试
  20. 20. 7.3 Die Serie监听
  21. 21. 八、和同类Werkzeuge的对比
  22. 22. 九、Häufige Fragen
  23. 23. 给Die Serie装上大脑:LLCOM LuaDrehbuchDebugging-Tools

Quelle:Modbus Chinesisches Netzwerk(modbus.cn) —— Inländisch führend.ModbusKommunikationsprotokoll Technologie Gemeinschaft

本文:LLCOM:给Die Serie装上 Lua 大脑 —— Modbus Tests效率翻倍的vollständig指南 · Der Autor:Technisches Team von Modbus · 发布于 2026-07-01

摘要:LLCOM 是 GitHub 开源的 Windows Die SerieDebugging-Tools(chenxuuu/llcom),基于 .NET 和腾讯 xlua 引擎,让Serien-Test不再是手动一条条发16. System帧。其核心杀手锏是在标准Die SerieWerkzeuge基础上内嵌了vollständig的 Lua 5.3 Betrieb环境,支持合宙 Luat Task 协程框架,可以写Drehbuch自动收发、自动Berechnung Modbus CRC、自动轮询、自动AnalyseAntwort。本文从安装zu API 参考zu四个 Modbus 实战Drehbuch,覆盖你从Downloadzu跑通自动化测试的每一个步骤。关键词:LLCOM、Lua Serien-Test、Modbus CRC 自动Berechnung、Die Serie自动化测试、xlua、Luat Task。


Tests Modbus RTU Ausrüstung最Häufig的工作流是:Öffnen Sie die Serie.Werkzeuge → manuell importiert.16. System帧 → 点Senden Sie → 等回应 → 肉眼对照Bytes → 发现 CRC 算错了 → 重新来。十台Ausrüstung调完,手指痛、眼睛酸、心里碎成渣。

LLCOM 解决的就是这个问题。它不只是一个Die SerieAssistenten.——它是个能跑Drehbuch的Serien-Test引擎。


一、LLCOM Was ist das?

LLCOM 是 GitHub 开源项目(chenxuuu/llcom),用 C# 写、基于 .NET 框架,采用腾讯 xlua 作为Drehbuch引擎。Lizenz是 Apache 2.0。

定位一句话:可编程的Die SerieDebugging-Tools。普通的Die SerieAssistenten.只能「键盘打16. System→手点Senden Sie→肉眼看出16. System」。LLCOM 可以写 Lua Drehbuch让Daten自动处理、自动Senden Sie、自动Analyse、自动Prüfungen。

核心架构三层:

  • Die Serie收发层:标准Serielle Kommunikation,支持Porter Rate、Datenplatz、Prüfstand.配置,同时集成 TCP/UDP/MQTT 客户端和Der ServerFunktion,还能监听其他程序使用的Die Serie
  • Lua Drehbuch引擎层:Lua 5.3 环境 + 合宙 Luat Task 协程框架(sys.wait、sys.taskInit、sys.timerLoopStart 等Alles移植)
  • Senden Sie前处理层:用户在Senden Sie框中输入的Daten,可以经过一段 Lua Drehbuch处理后再发出去——自动换行、自动转 Hex、自动组装 JSON,什么都能干

开源Adresse:https://github.com/chenxuuu/llcom


二、安装与Download

三个官方渠道,选一个:

方式一:微软商店 在 Windows 自带的 Microsoft Store 中Suche nach「LLCOM」即可安装。优势是自动更新,缺点是需要微软账Nr.。

方式二:便携版(免安装) 从 底部 Download zip 包,解压zu任意目录,双击 llcom.exe Betrieb。不上Registrierung表、不写Das System目录,放zu U 盘里zu处带着跑。

方式三:GitHub Releases 从 https://github.com/chenxuuu/llcom/releases/latest Download最新稳定版。适合需要特定版本的TestsSzene。

Das System要求:Windows 10 及以上,64 位。需要 .NET Runtime(Windows 10/11 通常已内置;如果提示缺少 .NET Runtime,从微软官网Download .NET Desktop Runtime 8.0 即可)。


三、Funktion清单:比普通Die SerieAssistenten.多了什么

LLCOM 有普通Die SerieAssistenten.的所有Funktion(Die SerieAuswahl、Porter Rate/Prüfstand.配置、16. System/ASCII 收发、日志显示),然后加了这些:

Funktion说明Modbus TestsSzene
Lua Senden Sie前处理输入框内容经过 Lua Drehbuch处理后才Senden Sie自动拼接 CRC、自动加von der Station Adresse
独立 Lua Drehbuch区右侧可跑vollständig的 Lua Drehbuch,带定时器和协程写一个Drehbuch自动轮询所有Von der StationRegister.
快捷Senden Sie栏(10 页×不限条数)保存常用Befehl,一键Senden Sie把读不同Register.的帧放不同页
Die Serie监听监控其他程序正在使用的Seriöse Daten看某上位机软件发了什么帧
TCP/UDP/SSL 客户端和服务端可以不通过Die Serie直接调 TCP测试 Modbus Der TCP-Port
MQTT 测试集成 MQTT 发布/订阅验证网关的 MQTT 上行
Die Serie自动重连断开后自动恢复VerbindungAusrüstung断电重启不会断Tests
自动日志保存带Zeit戳的Die Serie和 Lua 日志调完AllesAusrüstung,回头看日志复盘
Codierung互转/乱码恢复GBK/UTF-8/Hex 之间转换中文Charaktere串Tests

四、两大核心Funktion详解

4.1 Senden Sie前 Lua 处理

这是 LLCOM 最直接提效的Funktion。在「Senden Sie设置」→「Senden Sie处理Drehbuch」里写一段 Lua,每次点Senden Sie时,你输入框里的原始Text先传给这段Drehbuch,Drehbuch处理后返回的Charaktere串才是真正发zuDie Serie的Daten。

三个经典用法:

自动加 rn:很多Serielle Ausrüstung要求Befehl以回车换行结尾——

return uartData .. "rn"

从此不用每次手打 0D 0A,输入Befehl直接点Senden Sie就完事。

16. System自动转换:在输入框里写16. SystemCharaktere串(如 010300000001),Drehbuch自动转成Binärsystem——

return uartData:fromHex()

这是 Modbus RTU Tests的标配——你在输入框写 Modbus 帧的16. System表示,Drehbuch转成Binärsystem发给Ausrüstung。

JSON 自动组装:输入 a,b,c,发出去的是 JSON——

json = require("JSON")
t = uartData:split(",")
return json:encode({
    key1 = t[1],
    key2 = t[2],
    key3 = t[3],
})

快捷Senden Sie栏的每个Knopf也同样走这个Drehbuch,所以你可以建 10 页快捷Senden Sie,每页放不同的 Modbus Befehl,然后每次点Knopf自动加 CRC 发出去——后面会给出vollständig实现。

4.2 独立 Lua DrehbuchBetrieb区

右边有个「Lua Drehbuch」区域,你可以直接写vollständig的 Lua 程序并Betrieb。这里的Drehbuch拥有合宙 Luat Task 框架的Alles能力:

  • sys.taskInit() 创建协程任务
  • sys.wait(ms) 延时等待(不阻塞界面)
  • sys.waitUntil() 等待消息(Ereignisse驱动)
  • sys.timerLoopStart() 循环定时器
  • sys.publish() / sys.subscribe() 消息发布订阅

基础Beispiel:收zuSeriöse Daten后自动回复——

uartReceive = function (data)
    log.info("uartReceive", data)
    sys.publish("UART", data)
end

sys.taskInit(function()
    while true do
        local _, udata = sys.waitUntil("UART")
        log.info("task waitUntil", udata)
        local sendResult = apiSendUartData("ok!")
        log.info("uart send", sendResult)
    end
end)

你甚至可以用 xlua 直接调用 C# 的 System.Net 类库发 HTTP Bitte——这意味着你可以写一个Drehbuch,Die Serie收zuDaten后自动往Cloud-Plattform推一条消息。


五、核心 API 速查

LLCOM 的 Lua API Dokumentation位于 https://github.com/chenxuuu/llcom/blob/master/LuaApi.md ,这里列出 Modbus Testsam häufigsten verwendet的部Unterteilung。

5.1 Die Serie收发 API

-- Senden SieDatenzuDie Serie(推荐新Schnittstelle)
apiSend("uart", data)

-- Senden SieDatenzuDie Serie(旧Schnittstelle,后续会Entfernen)
apiSendUartData(data)

-- 订阅Die SerieEmpfang回调
apiSetCb("uart", function(data)
    log.info("received", data)
end)

-- Absage订阅
apiUnsetCb("uart", callback)

5.2 定时器与协程 API

-- 创建任务
sys.taskInit(function()
    while true do
        -- 你的逻辑
        sys.wait(1000)  -- 等 1000ms
    end
end)

-- 循环定时器
sys.timerLoopStart(function()
    log.info("tick", os.time())
end, 1000)  -- 每 1000ms 触发一次

-- Stopp!定时器
sys.timerStop(timerId)

5.3 Charaktere串处理 API

-- Binärsystem转16. SystemCharaktere串
string.toHex("x01x03")  -- 返回 "0103"

-- 16. SystemCharaktere串转Binärsystem
("010300000001"):fromHex()

-- Unterteilung割Charaktere串
("a,b,c"):split(",")  -- 返回 {"a","b","c"}

5.4 日志 API

log.info("tag", "message")
log.warn("tag", "warning")
log.error("tag", "error")

所有日志自动保存zu软件目录,并附带Zeit戳。


六、Modbus RTU 实战Drehbuch

以下Drehbuch可以直接Kopieren.zu LLCOM 里Betrieb。每个都是vollständig可用的。

6.1 智能Senden Sie:自动Berechnung Modbus CRC 并Senden Sie

Tired of 手动算 CRC?这是 LLCOM 在 Modbus Tests中最经典的应用。

在「Senden Sie处理Drehbuch」中粘贴:

-- Modbus CRC16 查表法(多项式 0xA001)
local crcTable = {}
for i = 0, 255 do
    local crc = i
    for _ = 1, 8 do
        if (crc & 1) ~= 0 then
            crc = (crc >> 1) ~ 0xA001
        else
            crc = crc >> 1
        end
    end
    crcTable[i] = crc
end

local function modbusCrc16(data)
    local crc = 0xFFFF
    for i = 1, #data do
        local b = string.byte(data, i)
        crc = (crc >> 8) ~ crcTable[(crc ~ b) & 0xFF]
    end
    return crc
end

-- 主逻辑:把输入转成Binärsystem,Berechnung CRC,拼上去,发给Die Serie
local raw = uartData:fromHex()  -- 输入框写16. System,如 010300000001
local crc = modbusCrc16(raw)
local lo = crc & 0xFF
local hi = (crc >> 8) & 0xFF
return raw .. string.char(lo, hi)

现在你在输入框写 010300000001(von der Station Adresse=01,Funktionscode=03,Ausgang Adresse=0000,Register.数=0001),点Senden Sie后实际发出去的是 01 03 00 00 00 01 84 0A——CRC 自动接在后面。

6.2 Modbus RTU 自动轮询Drehbuch

跑在「Lua Drehbuch」区域中,每隔 2 秒读一次Von der Station 01 的保持Register. 40001(Adresse 0x0000),自动Analyse返回Daten:

-- CRC 表(同上,这里省略,需要放在Drehbuch最前面)
-- ...(和 6.1 的 crcTable 和 modbusCrc16 函数一样)

local function buildReadFrame(slave, startAddr, regCount)
    local frame = string.char(slave, 0x03,
        (startAddr >> 8) & 0xFF, startAddr & 0xFF,
        (regCount >> 8) & 0xFF, regCount & 0xFF)
    local crc = modbusCrc16(frame)
    return frame .. string.char(crc & 0xFF, (crc >> 8) & 0xFF)
end

local function parseResponse(data)
    if #data < 5 then
        log.warn("modbus", "Antwort太短: " .. string.toHex(data))
        return nil
    end
    local slave = string.byte(data, 1)
    local func = string.byte(data, 2)
    if func > 0x80 then
        log.error("modbus", "Ungewöhnlicher Code: 0x" .. string.format("%02X", string.byte(data, 3)))
        return nil
    end
    local byteCount = string.byte(data, 3)
    local values = {}
    for i = 0, (byteCount / 2) - 1 do
        local hi = string.byte(data, 4 + i * 2)
        local lo = string.byte(data, 5 + i * 2)
        values[i + 1] = (hi << 8) | lo
    end
    return {slave = slave, values = values}
end

-- Empfang处理
apiSetCb("uart", function(data)
    local result = parseResponse(data)
    if result then
        log.info("modbus", string.format("Von der Station%02X Registerwert: %s",
            result.slave, table.concat(result.values, ", ")))
    end
end)

-- 轮询任务
sys.taskInit(function()
    while true do
        local frame = buildReadFrame(0x01, 0x0000, 4)
        log.info("modbus", "Senden Sie: " .. string.toHex(frame))
        apiSend("uart", frame)
        sys.wait(2000)
    end
end)

Betrieb后日志输出类似:modbus Senden Sie: 0103000000044409modbus Von der Station01 Registerwert: 168, 2234, 0, 512。不需要人工干预,Drehbuch自动轮询、自动Analyse、自动打日志。

6.3 多Von der Station扫描器

自动扫描总线上有哪些Von der Station在线。挨个发LesenBefehl,有Antwort的就是在线:

-- CRC 函数同上,省略

local function scanSlave(slaveId)
    local frame = string.char(slaveId, 0x03, 0x00, 0x00, 0x00, 0x01)
    local crc = modbusCrc16(frame)
    frame = frame .. string.char(crc & 0xFF, (crc >> 8) & 0xFF)

    apiSetCb("uart", function(data)
        if #data >= 5 and string.byte(data, 1) == slaveId
            and string.byte(data, 2) == 0x03 then
            log.info("scan", "Von der Station " .. slaveId .. " 在线✓")
        end
    end)

    apiSend("uart", frame)
    log.info("scan", "扫描Von der Station " .. slaveId .. " ...")
end

sys.taskInit(function()
    for slaveId = 1, 247 do
        scanSlave(slaveId)
        sys.wait(150)  -- 等 150ms 给Von der StationAntwortZeit
    end
    log.info("scan", "扫描abgeschlossen.")
end)

Drehbuch跑完,日志里列出所有在线的von der Station Adresse。大型项目中Die一次上电后跑一遍这个,省去挨个看说明书的功夫。

6.4 Antwort帧自动Analyse + DatenExportieren

收zu Modbus Antwort后,自动Analyse并Das Format化为 CSV 行,方便Kopieren.zu Excel 做趋势Unterteilung析:

local results = {}

apiSetCb("uart", function(data)
    if #data < 5 then return end
    local slave = string.byte(data, 1)
    local func = string.byte(data, 2)
    if func >= 0x80 then
        log.error("modbus", string.format("S=%02X Ungewöhnlicher Code0x%02X", slave, string.byte(data, 3)))
        return
    end
    local byteCount = string.byte(data, 3)
    local row = {os.date("%H:%M:%S"), slave}
    for i = 0, (byteCount / 2) - 1 do
        local hi = string.byte(data, 4 + i * 2)
        local lo = string.byte(data, 5 + i * 2)
        table.insert(row, (hi << 8) | lo)
    end
    table.insert(results, table.concat(row, ","))
    log.info("csv", table.concat(row, ","))
end)

-- 轮询任务(每 5 秒采集一次,共采集 60 次 = 5 Unterteilung钟)
sys.taskInit(function()
    for i = 1, 60 do
        local frame = string.char(0x01, 0x03, 0x00, 0x00, 0x00, 0x04)
        local crc = modbusCrc16(frame)
        apiSend("uart", frame .. string.char(crc & 0xFF, (crc >> 8) & 0xFF))
        sys.wait(5000)
    end
    log.info("export", "采集abgeschlossen.,共 " .. #results .. " 行")
end)

日志输出的每一行都可以直接Kopieren.粘贴zu CSV 文件里用 Excel Öffnen.。


七、TCP / MQTT / 监听 —— 其他 Modbus Szene

7.1 调 Modbus TCP

LLCOM 可以当 TCP 客户端Verbindung Modbus TCP Ausrüstung(默认端口 502)。Öffnen. TCP 客户端Funktion,填入Ausrüstung IP 和端口 502,Verbindung成功后像Die Serie一样收发—— Modbus TCP 帧和 RTU 帧的区别只是少了 CRC、多了 MBAP 头(6 Bytes)。你可以在Senden Sie处理Drehbuch里自动补上 MBAP 头:

-- 输入框写 000000000006010300000001
-- 表示:事务ID=0000,VereinbarungID=0000,Länge=0006,单元ID=01,Funktionscode=03,Ausgang Adresse=0000,Register.数=0001
return uartData:fromHex()

或者Drehbuch接zuDie Serie收zu的 RTU 帧,去掉 CRC 换成 MBAP 头后通过 TCP 通道发出去。具体见软件自带的 channel-demo.lua 例子。

7.2 MQTT 测试

如果Tests Modbus 网关(DTU 把Seriöse Daten转成 MQTT 发布),LLCOM 的 MQTT Funktion可以直接订阅网关发布的主题,看zu网关发上来的Daten是否Richtig.。还能往控制主题发布消息测试下行。

7.3 Die Serie监听

「Die Serie监听」Funktion可以抓取其他软件正在使用的Serielle Kommunikation——比如你的上位机软件在跟AusrüstungKommunikation,你不想停掉它但想看它发了什么帧。LLCOM 可以静默抓取Seriöse Daten并显示日志,不影响原来的Kommunikation。


八、和同类Werkzeuge的对比

WerkzeugeDrehbuch支持Modbus CRC开源价格
LLCOMLua 5.3 + xlua + 协程框架需要自己写(本文已提供)kostenlos
SSCOM不支持kostenlos
COMTool有限不支持kostenlos
Modbus Poll无(专业 Modbus 固定Funktion)内置$129
ModScan内置$69

LLCOM 不是「开箱即用」的 Modbus 专用Werkzeuge,它是「可以变成 Modbus 专用Werkzeuge的万能Werkzeuge」。如果你只需要点一个Knopf就发 Modbus 帧,Modbus Poll 更直接。但如果你需要批Quantität自动化测试、Custom definiertAnalyse、DatenExportieren、和 MQTT/TCP 联调——LLCOM 是目前开源Werkzeuge里最灵活的。


九、Häufige Fragen

Q: 收zu乱码怎么办? 检查Porter Rate、Prüfstand.是否和Ausrüstung一致。然后在 LLCOM 的Empfang区Wechseln Hex 显示——很多情况下「乱码」是因为Geräte zurück.的是BinärsystemDaten但显示区按 ASCII Analyse了。

Q: CRC Drehbuch发出去的帧Ausrüstung没反应? Die一步:Bestätigen A/B 线没接反。Die二步:在Empfang区看Ausrüstung有没有返回任何Bytes——如果完全没有,可能是Geräte Adresse不对。Die三步:如果Geräte zurück.了Daten但是Ungewöhnlicher Code(Funktionscode + 0x80),看Ungewöhnlicher CodeWas ist das?——0x02 是「Illegale Datenadressen」,Register-Adresse可能nicht existiert.。

Q: 快捷Senden Sie栏的Knopf能自动跑 CRC Drehbuch吗? 能。快捷Senden Sie栏的内容也会经过「Senden Sie处理Drehbuch」——所以你写好了 CRC 自动BerechnungDrehbuch后,快捷Senden Sie栏只需要填裸帧(如 010300000001),点Knopf自动加 CRC。

Q: Lua DrehbuchBetrieb时报错了? 在Drehbuch区域最开头加一行 log.info("boot", "script started") 看Drehbuch是否成功启动。大部UnterteilungFehler.是因为变Quantität名拼错或调用了nicht existiert.的 API——日志区会显示 Lua Fehler.信息。


LLCOM 的核心价值不是多了多少Funktion,而是把「Tests」从重复体力劳动变成了可编程的任务。你在现场花半小时写了三个Drehbuch,接下来三天点几下鼠标Daten自己就来了。这就是「给Die Serie装上大脑」的真正含义——不是 LLCOM 有 AI,是 LLCOM 让你能把自己的Tests逻辑写成代码、然后让软件替你跑。

有问题再聊。

给Die Serie装上大脑:LLCOM LuaDrehbuchDebugging-Tools

资源价格 ¥0.00 销售Anzahl 0 Veröffentlichung Zeit 2025Jahr12月22日 更新Zeit 2026Jahr7月1日
已经回复?Erfrischen
Techniken术语(共 9 个)—— Klick auf展开
Modbus RTU基于串行链路的ModbusVereinbarung,使用BinärsystemCodierung和CRC-Test
Modbus TCP基于Ethernet的ModbusVereinbarung变体,使用TCP/IP传输
FunktionscodeModbusFunktionscode指定读/写OperationenTypus,如01读线圈、03Lesen Sie das Register
Register.Modbus Register.存储Daten单元,Unterteilung线圈/离散输入/保持/输入Register.四类
Porter Rate串行Kommunikation每秒传输符Nr.数,Modbus RTU常用9600/19200
DTUDaten传输单元,将Seriöse Daten转为网络Daten实现Fernkommunikation
网关Vereinbarung转换Ausrüstung,如 Modbus RTU ↔ Modbus TCP
Die SerieBerechnung机与外部Ausrüstung进行串行Kommunikation的物理Schnittstelle
保持Register.Modbus 16位可读Schreiben von Daten,Adresse从40001开始
来源/Werkzeuge信息 —— Klick auf展开
来源 Modbus Chinesisches Netzwerk(modbus.cn) —— Inländisch führend.ModbusKommunikationsprotokoll Technologie Gemeinschaft Klassifizierung Modbus Debugging-Tools 字数 8418 字 · 阅读约 22 Unterteilung钟 更新 2026-07-01 永久链接 https://www.modbus.cn/37716.html
Empfohlene Werkzeuge: Modbus Debugger-Assistent WeChat-Applet
Modbus Chinesisches Netzwerk官方推出的Modbus Debugging-Tools,支持 Modbus RTU/TCP 实时KommunikationTests、Register.读写、线圈控制、Daten监控和MeldungUnterteilung析。 keine Installation erforderlich,Mikro-Suche「Modbus DebuggingAssistenten.」Benutzt werden kann.。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
Relevante Etiketten
Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.