Linux c modbus 线程,Modbus读写模拟量寄存器详解

读可读写模拟量寄存器:

发送命令(主机向从机)格式:

[设备地址] [命令号03] [起始寄存器地址高8位] [低8位] [读取的寄存器数高8位] [低8位] [CRC校验的低8位] [CRC校验的高8位]

例:[11][03][00][6B][00][03][CRC低][CRC高]

ModBus的Ruby实现-RModBus 0.4.0 发布  http://www.linuxidc.com/Linux/2010-01/24200.htm

意义如下:

11:设备地址,例子中的地址是11,溶氧传感器端默认的地址是1,。

03:读模拟量的命令号固定为03,这是Modbus协议规定的。

00、6B:起始地址高8位(00)、低8位(6B):表示想读取的模拟量的起始地址,比如例子中的起始地址为107。这个006B表示一个完整的地址,注意这里的地址是高8位在前,低8位在后。

00、03:寄存器数高8位(00)、低8位(03):表示从起始地址开始读多少个模拟量(返回的每一个模拟量是用两个字节表示的)。例子中为3个模拟量。注意,在返回的信息中一个模拟量需要返回两个字节同时这里的地址也是高8位在前,低8位在后。

[CRC低][CRC高]:帧尾的CRC-16校验,尤其需要注意的一点是校验结果的低8位在前,高8位在后,这个顺序不同于起始地址以及读取深度的地址顺序。

设备响应:[设备地址] [命令号03] [返回的字节个数][数据1][数据2]...[数据n][CRC校验的低8位] [CRC校验的高8位]

例:[11][03][06][02][2B][00][00

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值