Modbus通信协议

Modbus协议是一种应用层的报文传输协议,分为RTU、ASCII、TCP 三种协议 

协议:是规定的一种格式。

ModeSub RTU通信协议:

通信其实就是”读取“和”写入“

 如果想实现读取功能必须要有存储区。

存储区和存储范围:

存储区存储范围(单元)
“5位”标准地址“6位”扩展地址
名称功能码读/写最小范围最大范围最小范围最大范围

输出线圈

0读/写0000109999000001065536
输入线圈1只读1000119999100001165536
输出寄存器4只读4000149999400001465536
输入寄存器3读/写3000139999300001365536

存储区分位:输出线圈、输入线圈、输出寄存器、输入寄存器

        线圈最小单位是布尔

        寄存器最小单位是16个位,一个寄存器等于16各位

        如果做布尔就可以用线圈存储区、如果做数据就可以用寄存器存储区

存储区范围:任何存储区都是有范围的。

        存储区范围分为“5位”标准地址、“6位”扩展地址

实例:

        地址:Y  XXXX   Y为功能码        XXXX为范围

对ModBusRTU的“读取”和“写入”操作

读取功能码写入功能码
输出线圈01单个输出线圈05
输入线圈02单个输出寄存器06
输出寄存器03多个输出线圈15(十进制的)
输入寄存器04多个输出寄存器16(十进制的)

ModbusRTU/ASCII → 报文格式:从站地址(设备编号)(1 byte) + 功能码(1 byte) + 数据(N byte) + 校验 (2 byte)

        对于读取来说:                                                                                对于写入来说:

        从站地址(设备编号) → 找谁?                                                     从站地址(设备编号) → 找谁?

        功能码                          → 干嘛                                                         功能码                          → 干嘛

        数据             → 具体干嘛的细节                                                        数据     → 具体干嘛的细节(多了个写入的具体数值)

        效验                              → 验证                                                         效验                              → 验证

                           发送读取实例:

站地址读取输出寄存器数据数据数据数据校验校验
010300000002C40B

                          数据反馈实例:

站地址读取输出寄存器字节计数数据数据数据数据校验校验
0103040146023BC40B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值