非标485转标准485小能手

内容分享1周前发布
0 0 0

ST2000系列仪表自由口转标准MODBUS RTU协议仪表使用单片机主从式多站通信方式,主机主动查询从站,从站根据不同的指令分别响应。1. 通信命令格式:要实现与仪表通信,主机需向仪表分两步发送控制命令字。然后通过通信中断处理仪表响应数据。(1) 先把串口设置为:Baud_Rate,m,8,1 通过串口发送 Address -> 仪表 延时(0.01s)(2) 接着把串口设置为:Baud_Rate,S,8,1 通过串口发送以下数据到仪表: CommandCode FunCode Data0 Data1 Data2 Data3 Crc_Code -> 仪表 其中:Baud_Rate为通信波特率;Address为通信地址。CommandCode 为指令代码:01H – 写指令 向仪表写入数据02H – 读指令 读取仪表数据FunCode 为功能代码: 16H – 流量设定  FEH – 读仪表数据Data0 – Data3 发送写指令时(01H),为4字节浮点数。 发送读指令时(02H),所有字节为零。 数据响应: 发送写指令时(01H),仪表无数据返回。 发送读指令时(02H),仪表返回17字节数据。 Data0-Data3  为瞬时流量   Data4-Data7  为设定流量    Data10-Data15 为主累计 Data17     为校验码数据计算:瞬时流量: Data0 Data1 Data2    Data3 流量数据(十六进制) Data3的最高位为符号位  阶码(补码表明)阶码值表明小数点距离流量最高字节的位置。当Data3的最高位0时    当Data3的最高位1时   主累计:Data10 Data11 Data12 Data13 Data14 Data15 Data10 Data11为主累计的小数部份 Data12 Data13 Data14 Data15为主累计的整数部份 Data15的最高位为符号位 当Data15的最高位0时当Data15的最高位1时 校验码 Data16 为前所有数据的和取低字节。 15 14 13 12 11 10 (字节)00 01 25 75 CC 74 0*16^6 + 1*16^4 + 37*16^2 + 117*16^0 + 204*16^-2 + 116*16^-4=75125.7992.通过单片机编程来实现非标准MODBUS协议转换成标准MODBUS协议部分代码 3.与优稳DCS系统通讯测试运行结果正常 40000 瞬时流量40002 流量设定值40004 累积流量 4.内部电路板与成品图

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...