|
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】MODBUS TCP, 在工業(yè)場景,modbus還是比較常用的通信協(xié)議。
modbus協(xié)議可以去www.modbus.org下載。
在傳統(tǒng)串口模式中,modbus都是分主機(jī)和從機(jī)。由于今年席卷全球的反種族主義,modbus組織取消了“主從”這種敏感此匯,由服務(wù)器和客戶端來描述modbus通信。
客戶端啟動通信并向服務(wù)器發(fā)送請求,服務(wù)器設(shè)備處理請求并返回響應(yīng)。
所以變送器應(yīng)該作為服務(wù)器設(shè)備,建立服務(wù)器后等待客戶端建立通信?蛻舳司褪巧衔粰C(jī)或者PLC系統(tǒng)。
modbus/tcp
modbus是一種應(yīng)用層消息傳遞協(xié)議,位于OSI模型的應(yīng)用層。在TCP/IP層使用時,modbus默認(rèn)的端口號為502,也可以有其他的端口號,但是502是modbus保留的端口號,服務(wù)器必須監(jiān)聽這個端口號。
modbus幀格式
通用的modbus幀格式如下圖,從機(jī)地址+功能碼+數(shù)據(jù)+crc校驗
modbus_tcp1.png (20.99 KB, 下載次數(shù): 0)
下載附件 保存到相冊
昨天 23:12 上傳
基于tcp的modbus幀格式如下圖,由于tcp/ip協(xié)議有數(shù)據(jù)校驗,所以基于tcp的modbus協(xié)議沒有CRC校驗。通常在MODBUS串行線路上使用的MODBUS“從站地址”字段被替換為MBAP標(biāo)頭中的單個字節(jié)“單位標(biāo)識符”。
modbus_tcp2.png (22.58 KB, 下載次數(shù): 0)
下載附件 保存到相冊
昨天 23:12 上傳
MBAP內(nèi)容以及客戶端和服務(wù)器操作如下表:
modbus_tcp3.png (97.63 KB, 下載次數(shù): 0)
下載附件 保存到相冊
昨天 23:13 上傳
Transaction Identifier 用于指式當(dāng)前服務(wù)器響應(yīng)的是客戶端的哪一條需求,這里需要說明,modbus/tcp不需要像串行線路上一樣,modbus/tcp客戶端可以在沒有接收到服務(wù)器的響應(yīng)時再次發(fā)出新的響應(yīng),此時客戶端就可以通過Transaction Identifier確定是哪一條需求的響應(yīng)。
Protocol Identifier 必須是0,表示是modbus協(xié)議。
Length 是Unit Identifier+PDU的長度
Unit Identifier 相當(dāng)于原來的從機(jī)地址。如果當(dāng)前設(shè)備作為一個網(wǎng)關(guān),Unit Identifier可以指示連接到該網(wǎng)關(guān)的其他設(shè)備。
下面demo是基于hi3861實現(xiàn)的部分modbus協(xié)議,包括0x3和0x10命令。
modbus_tcp.zip
(5.01 KB, 下載次數(shù): 0) 昨天 23:15 上傳 點(diǎn)擊文件名下載附件
下載積分: 積分 -1 分 |
|