[文章]【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】MODBUS TCP

阅读量0
0
0
在工业场景,modbus还是比较常用的通信协议。
modbus协议可以去www.modbus.org下载。
在传统串口模式中,modbus都是分主机和从机。由于今年席卷全球的反种族主义,modbus组织取消了“主从”这种敏感此汇,由服务器和客户端来描述modbus通信。
客户端启动通信并向服务器发送请求,服务器设备处理请求并返回响应。
所以变送器应该作为服务器设备,建立服务器后等待客户端建立通信。客户端就是上位机或者PLC系统。

modbus/tcp
modbus是一种应用层消息传递协议,位于OSI模型的应用层。在TCP/IP层使用时,modbus默认的端口号为502,也可以有其他的端口号,但是502是modbus保留的端口号,服务器必须监听这个端口号。

modbus帧格式
通用的modbus帧格式如下图,从机地址+功能码+数据+CRC校验
modbus_tcp1.png

基于tcp的modbus帧格式如下图,由于tcp/ip协议有数据校验,所以基于tcp的modbus协议没有CRC校验。通常在MODBUS串行线路上使用的MODBUS“从站地址”字段被替换为MBAP标头中的单个字节“单位标识符”。
modbus_tcp2.png

MBAP内容以及客户端和服务器操作如下表:
modbus_tcp3.png

Transaction Identifier 用于指式当前服务器响应的是客户端的哪一条需求,这里需要说明,modbus/tcp不需要像串行线路上一样,modbus/tcp客户端可以在没有接收到服务器的响应时再次发出新的响应,此时客户端就可以通过Transaction Identifier确定是哪一条需求的响应。
Protocol Identifier  必须是0,表示是modbus协议。
Length   是Unit Identifier+PDU的长度
Unit Identifier 相当于原来的从机地址。如果当前设备作为一个网关,Unit Identifier可以指示连接到该网关的其他设备。
下面demo是基于hi3861实现的部分modbus协议,包括0x3和0x10命令。
modbus_tcp.zip
(5.01 KB, 下载次数: 13)



回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友