这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » 工程监测无线中继采集仪的参数读写MODBUS协议

共1条 1/1 1 跳转至

工程监测无线中继采集仪的参数读写MODBUS协议

工程师
2023-05-22 13:05:09     打赏

工程监测无线中继采集仪的参数读写MODBUS协议

511.png

无线中继采集仪支持基于地址的 MODBUS 协议、自定义的 AAB/B 协议以及字符串指令集协议,使用这些通讯协议可对寄存器(参数)进行访问。


MODBUS 协议

无线中继采集仪支持 MODBUS 的 03、 04、 06 指令码。(1) 03(0x03) /03(0x04) 指令码: 读取多个连续的寄存器数据,指令格式如下

MODBUS 协议.png


例:读取地址为 129 的无线中继采集仪寄存器值,寄存器开始地址为 0,连续读取 10 个寄存器主机发送指令: 0x81 0x03 0x00 0x00 0x00 0x0A 0xDA 0x0D

从机返回应答: 81 03 14 00 81 00 01 00 02 00 01 00 01 00 0A 00 0A 00 01 09 60 00 07 A1 EF(下划线为读取到的 10 个寄存器值)读取多个连续寄存器时, 单次读取不要超过 32 个寄存器, 不要试图读取不存在的寄存器。


(2) 06(0x06) 指令码: 修改单个寄存器的值, 指令格式如下

MODBUS 协议2.png


例:将地址为 129 的无线中继采集仪中的寄存器 8 的值修改为 100 主机发送指令: 0x81 0x06 0x00 0x08 0x09 0x60 0x11 0xB0 从机返回应答: 0x81 0x06 0x00 0x08 0x09 0x60 0x11 0xB0

(3)校验码算法

CRC16-MODBUS 算法:

unsigned int crc16(unsigned char *dat, unsigned int len)

{

unsigned int crc=0xffff;

unsigned char i;

while(len!=0)

{

crc^=*dat;

for(i=0;i<8;i++)

{

if((crc&0x0001)==0)

crc=crc>>1;

else

{

crc=crc>>1;

crc^=0xa001;

}

}

len-=1;

dat++;

}

return crc;

}








关键词: 无线采集仪     振弦采集仪     振弦传感器     振弦采集模块         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]