新聞中心
PRESS CENTER
Modbus是一種工業(yè)現(xiàn)場(chǎng)總線協(xié)議,通常運(yùn)行于RS485總線,采用半雙工即一問(wèn)一答的通信機(jī)制。Modbus分為Modbus RTU/Modbus TCP/Modbus ASCII三種通信模式,Modbus請(qǐng)求和Modbus解析節(jié)點(diǎn)只用于Modbus RTU通信。
Modbus請(qǐng)求節(jié)點(diǎn):根據(jù)設(shè)置的參數(shù)(地址碼/功能碼/寄存器起始地址/寄存器數(shù)量等)生成Modbus指令。
Modbus解析節(jié)點(diǎn):根據(jù)匹配的Modbus請(qǐng)求節(jié)點(diǎn),解析響應(yīng)數(shù)據(jù)。
Modbus解析節(jié)點(diǎn)使用時(shí)需指定匹配的Modbus請(qǐng)求節(jié)點(diǎn),匹配完成就會(huì)按照Modbus請(qǐng)求節(jié)點(diǎn)的設(shè)置來(lái)解析數(shù)據(jù),因此Modbus請(qǐng)求和Modbus解析節(jié)點(diǎn)必須成對(duì)出現(xiàn)且必須一一匹配。
節(jié)點(diǎn)只對(duì)協(xié)議報(bào)文處理,并未指定相應(yīng)的串口,因此一般配合串口節(jié)點(diǎn)一起使用。Modbus請(qǐng)求和Modbus解析不支持通過(guò)傳參來(lái)動(dòng)態(tài)請(qǐng)求數(shù)據(jù)。
以下介紹主要針對(duì)Modbus請(qǐng)求節(jié)點(diǎn),Modbus解析節(jié)點(diǎn)無(wú)任何設(shè)置項(xiàng)。
Modbus協(xié)議【完整版】-https://iotrouter.yuque.com/attachments/yuque/0/2023/pdf/38696274/1698721058459-2269824c-e5b8-49d9-b135-164ba88cd249.pdf
(如下源碼:https://iotrouter.yuque.com/zn3vdn/eg8000/xtbmo18kq05in9gm)
msg.payload
#設(shè)置的功能碼不同需要不同的參數(shù)
#FC 1:讀線圈(msg.payload無(wú)意義)
#FC 2:讀觸點(diǎn)(msg.payload無(wú)意義)
#FC 3:讀保持寄存器(msg.payload無(wú)意義)
#FC 4:讀輸入寄存器(msg.payload無(wú)意義)
#FC 5:寫單個(gè)線圈(msg.payload:1/0)
#FC 6:寫單個(gè)保持寄存器(msg.payload:0-65535)
#FC15:寫多個(gè)線圈(msg.payload:字節(jié)數(shù)組,每個(gè)字節(jié)表示8個(gè)線圈)
#FC16:寫多個(gè)保持寄存器(msg.payload:一個(gè)寄存器2個(gè)字節(jié),要寫入的具體字節(jié)數(shù)組,詳見(jiàn)示例)
msg.payload
#根據(jù)配置項(xiàng)生成的modbus rtu請(qǐng)求指令
功能
1. 配置項(xiàng)
地址碼:1-255 十進(jìn)制輸入,請(qǐng)注意進(jìn)制轉(zhuǎn)換
功能碼:FC 1讀線圈(功能碼:0x01)
FC 2讀觸點(diǎn)(功能碼:0x02)
FC 3讀保持寄存器(功能碼:0x03)
FC 4讀輸入寄存器(功能碼:0x04)
FC 5寫單個(gè)線圈(功能碼:0x05)
FC 6寫單個(gè)保持寄存器(功能碼:0x06)
FC 15寫多個(gè)線圈(功能碼:0x0F)
FC 16寫多個(gè)寄存器(功能碼:0x10)
起始地址:5位十進(jìn)制數(shù)字,請(qǐng)注意進(jìn)制轉(zhuǎn)換
最高位不清楚怎么寫可以填0,后4位是寄存器地址十六進(jìn)制轉(zhuǎn)成十進(jìn)制后加1
例如:0x0100-->002570x0000-->00001 0x0010-->00017
數(shù)量:根據(jù)實(shí)際情況填寫
寄存器解析:根據(jù)實(shí)際情況填寫
2. 節(jié)點(diǎn)匹配方法
1. 讀線圈

2. 讀觸點(diǎn)

3. 讀保持寄存器

4. 讀輸入寄存器

5. 寫單個(gè)線圈

6. 寫單個(gè)保持寄存器

7. 寫多個(gè)線圈

8. 寫多個(gè)保持寄存器

9. 輪訓(xùn)采集

10. 同一個(gè)傳感器采集相同數(shù)量寄存器(防止誤解析)

Modbus請(qǐng)求節(jié)點(diǎn)參數(shù)有改動(dòng),對(duì)應(yīng)的Modbus解析節(jié)點(diǎn)要重新搜索選中一下
