MODBUS/TCP是簡單的、中立廠商的用于管理和控制自動(dòng)化設(shè)備的 MODBUS系列通訊協(xié)議的派生產(chǎn)品,顯而易見,它覆蓋了使用TCP/IP協(xié)議的“Intranet”和“Internet”環(huán)境中MODBUS報(bào)文的用途,。協(xié)議的最通用用途是為諸如 PLC’s,,I/O模塊,以及連接其它簡單域
1.2 Modbus TCP數(shù)據(jù)幀 圖 : MODBUS TCP報(bào)文
由于使用以太網(wǎng) TCP/IP數(shù)據(jù)鏈路層的校驗(yàn)機(jī)制而保證了數(shù)據(jù)的完整性,,MODBUS TCP 報(bào)文中不再帶有數(shù)據(jù)校驗(yàn)”CHECKSUM”,,原有報(bào)文中的“ADDRESS”也被“UNIT ID”替代而加在 MODBUS應(yīng)用協(xié)議報(bào)文頭中
1.3 Modbus TCP使用的通訊資源端口號(hào)
在 Moodbus服務(wù)器中按缺省協(xié)議使用 Port 502 通信端口,在Modus客戶器程序中設(shè)置任意通信端口,為避免與其他通訊協(xié)議的沖突一般建議 2000開始可以使用. 1.4 Modbus TCP使用的功能代碼 按照使用的通途區(qū)分,共有 3種類型分別為: 1) 公共功能代碼:已定義好功能碼,,保證其唯一性,,由 Modbus.org認(rèn)可; 2) 用戶自定義功能代碼有兩組,,分別為 65~72和 100~110,,無需認(rèn)可,但不保證代碼使用唯一性,如變?yōu)楣泊a,,需交 RFC認(rèn)可,; 3) 保留功能代碼,由某些公司使用某些傳統(tǒng)設(shè)備代碼,,不可作為公共用途,。 按照應(yīng)用深淺,可分為 3個(gè)類別 1) 類別 0,客戶機(jī)/服務(wù)器最小可用子集:讀多個(gè)保持寄存器(fc.3),;寫多個(gè)保持寄存器(fc.16),。 2) 類別 1,可實(shí)現(xiàn)基本互易操作常用代碼:讀線圈(fc.1),;讀開關(guān)量輸入(fc.2),;讀輸入寄存器(fc.4);寫線圈(fc.5),;寫單一寄存器(fc.6),。 3) 類別 2,用于人機(jī)界面,、監(jiān)控系統(tǒng)例行操作和數(shù)據(jù)傳送功能:強(qiáng)制多個(gè)線圈(fc.15),;讀 通用寄存器(fc.20);寫通用寄存器(fc.21),;屏蔽寫寄存器(fc.22),;讀寫寄存器(fc.23) 1.5 Modbus TCP通訊應(yīng)用舉例
在讀寄存器的過程中,以Modbus TCP請求報(bào)文為例,具體的數(shù)據(jù)傳輸過程如下: 1) Modbus TCP客戶端實(shí)況,用 Connect()命令建立目標(biāo)設(shè)備 TCP 502端口連接數(shù)據(jù)通信過程 2) 準(zhǔn)備 Modbus報(bào)文,,包括 7個(gè)字節(jié) MBAP內(nèi)請求,; 3) 使用send()命令發(fā)送; 4) 同一連接等待應(yīng)答,; 5) 同 recv()讀報(bào)文,,完成一次數(shù)據(jù)交換過程 6) 當(dāng)通信任務(wù)結(jié)束時(shí),關(guān)閉 TCP連接,,使服務(wù)器可以為其他服務(wù) |
|