php 接收rtu数据格式,Modbus _rtu 通信数据格式

Modbus-RTU 通信应用的场合是比较多的,今天我们主要讲的内容是关于Modbus 通信的时候字节长度的注意事项,举几个例子来证明下,我这边主要用的是S7-1200 与流量计、PH智能计、智能液晶显示温度控制器进行通信。

首先理解西门子的高低字节:比如MW0 分别有MB0 和MB1组成,这里MB0是高字节排在左边,MB1是低字节排在右边,如果还不理解,那再比如A2代表一个16进制的数存储在MW0中,A就存储在MB0中,2存储在MB1中,有的通信设备会写出LO w 和HI w,那这个就是反的,如图:

3aa92027360b

还有的通信设备会写成2143的数据类型,这样也表示反着的,所以要分清楚。在这里贴几张图出来给大家看看。

3aa92027360b

3aa92027360b

3aa92027360b

当数据格式不一致的时候,需要进行高低字节进行转换,我用博图来进行转换的,下面给大家贴一个图。

3aa92027360b

这部分就是为了将高低字节进行转换,因为是16位,采用这样的寻址方式是可以进行的输入%W0,这个在别的地方也会应用到的。

总结:如果涉及到Modbus—RTU的通信,除了基本的波特率,设备地址,校验方式,这个数据格式也是非常重要的,如果有不清楚的,欢迎留言进行交流,如果有写的不好的地方,请大家指出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值