MODBUS TCP模塊協(xié)議結(jié)構(gòu)是如何設(shè)計的?
MODBUS TCP是MODBUS系列中優(yōu)秀的通信協(xié)議的一種,它主要用于監(jiān)視和控制自動化設(shè)備,那么MODBUS的協(xié)議結(jié)構(gòu)是怎樣的呢?下面由MODBUS TCP模塊廠家無錫凌科自動化為大家介紹一下MODBUS TCP模塊的協(xié)議結(jié)構(gòu)。
需要特別注意的是,請求和響應(yīng)主體的結(jié)構(gòu),從功能代碼到數(shù)據(jù)部分的末尾,具有與其他MODBUS變體完全相同的布局和含義,例如
MODBUS串口– ASCII編碼
MODBUS串口– RTU(二進制)編碼
MODBUS PLUS網(wǎng)絡(luò)–數(shù)據(jù)路徑
在其他情況下,唯一的區(qū)別是任何“成幀”序列,錯誤檢查模式和地址解釋的形式。
所有請求都通過TCP / IP在注冊端口502上發(fā)送。
通常在給定的連接上以半雙工的方式發(fā)送請求。也就是說,在響應(yīng)未完成時,在單個連接上發(fā)送其他請求沒有任何好處。相反,鼓勵希望獲得高峰值傳輸速率的設(shè)備建立到同一目標(biāo)的多個TCP / IP連接。但是,已知一些現(xiàn)有的客戶端設(shè)備嘗試“流水線”請求。
MODBUS“從站地址”字段被單字節(jié)“單元標(biāo)識符”代替,該單元標(biāo)識符可用于通過諸如網(wǎng)橋和網(wǎng)關(guān)之類的設(shè)備進行通信,這些設(shè)備使用單個IP地址來支持多個獨立的終端單元。
請求和響應(yīng)的前綴為六個字節(jié),如下所示
字節(jié)0: | 事務(wù)標(biāo)識符–由服務(wù)器復(fù)制–通常為0 |
字節(jié)1: | 事務(wù)標(biāo)識符–由服務(wù)器復(fù)制–通常為0 |
字節(jié)2: | 協(xié)議標(biāo)識符= 0 |
字節(jié)3: | 協(xié)議標(biāo)識符= 0 |
字節(jié)4: | 長度字段(高位字節(jié))= 0(因為所有消息均小于256) |
字節(jié)5: | 長度字段(低位字節(jié))=跟隨的字節(jié)數(shù) |
字節(jié)6: | 單元標(biāo)識符(以前是“從站地址”) |
字節(jié)7: | MODBUS功能碼 |
字節(jié)8: | 根據(jù)需要的數(shù)據(jù) |
因此,示例事務(wù)“從UI 9偏移4處讀取1個寄存器”返回值5
要求: 00 00 00 00 00 06 09 03 00 04 00 01
回應(yīng): 00 00 00 00 00 05 09 03 02 00 05
熟悉MODBUS的設(shè)計人員應(yīng)注意,MODBUS中不需要“ CRC-16”或“ LRC”檢查字段。而是使用TCP / IP / IP和鏈路層(例如,以太網(wǎng))校驗和機制來驗證數(shù)據(jù)包的準(zhǔn)確傳遞。了解更多有關(guān)ETHERCAT模塊、CANOPEN模塊、DEVICENET模塊作用、MODBUS TCP模塊歡迎前往PROFINET模塊廠家無錫凌科自動化公司。