電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 1217|回復(fù): 0
收起左側(cè)

【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】MODBUS TCP

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-12-8 09:56:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
【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 分
回復(fù)

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表