huntModbus(RTU)协议(rlj).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
huntModbus(RTU)协议(rlj)

测控仪表与上位机的Modbus(RTU)通讯协议 1.上位机命令格式: 地址 功能代码 寄存器地址 寄存器数量 CRC低字节 CRC高字节 a.地址:01H~b.功能代码:03H (1字节) c.寄存器地址:如3表所示 (2字节,高地址在前) d.寄存器数量:00 01 或 00 02 (2字节,高地址在前) 2.下位机命令格式: 地址 功能代码 数据字节数 数据1…数据n CRC低字节 CRC高字节 a.地址: 01H~b.功能代码:03H (1字节) c.数据字节数:0H~ 寄存器地址 寄存器数量 功能(从站返回数据描述) 下位机返回的数据(数据内容为各数据类型的机内编码) 长度 数据结构 00 00 00 02 瞬时流量 4 浮点数,单位:t/h 00 02 00 02 累积流量(高位) 4 浮点数(累积量高位),单位:参考表下说明 00 04 00 02 累积流量(低位) 4 浮点数(累积量低位), 单位: 参考表下说明 00 06 00 02 瞬时热量 4 浮点数,单位 00 08 00 02 累积累计热量(高位) 4 浮点数(累积量高位), 单位: 参考表下说明 00 0A 00 02 累积累计热量(低位) 4 浮点数(累积量低位),单位: 参考表下说明 00 0C 00 02 供水温度 4 浮点数,单位:℃ 00 0E 00 02 回水温度 4 浮点数,单位: ℃ 00 10 00 02 压力 4 浮点数,单位:KPa 00 12 00 02 差压 4 浮点数,单位:Pa 00 14 00 02 密度 4 浮点数,单位:Kg/m3 00 16 00 02 流速 4 浮点数,单位:m/s 00 18 00 02 供水热焓 4 浮点数,单位:MJ/kg 00 1A 00 02 回水热焓 4 浮点数,单位:MJ/kg 00 1C 00 02 累积运行时间 4 无符号长整形数,单位:秒 00 1E 00 02 累积掉电时间 4 无符号长整形数,单位:秒 “累积量“参数说明: 累积量(包括累积流量和累积热量)和输出参数(流量满量程值range)的对应关系如下所示: 流量范围对应 range=100时: 高位格式 99999 低位格式 9999.999 (即实际累积流量=高位得到的数*104 +低位); 流量范围对应 100 range=10时: 高位格式 99999 低位格式 999.999 (即实际累积流量=高位得到的数*103 +低位/10); 流量范围对应 10 range=1 高位格式 99999 低位格式 99.999 (即实际累积流量=高位得到的数*102 +低位/100); 流量范围对应 range 1 高位 99999 低位 9.999 (即实际累积流量=高位得到的数*101 +低位/1000); 4.串口Union {float f ; unsigned char c[4] ;} u1; 发送顺序:u1.c[0] , u1.c[1] , u1.c[2] , u1.c[3] 长整形数 有效值范围:0 ~ 999999999 定义:Union {long i ; unsigned char c[4] ;} u3; 发送顺序:u3.c[3] , u3.c[2] , u3.c[1] , u3.c[0] (注意:先发送LSB) 注:浮点数的字节顺序在组态王软件中swap寄存器选择“0”,长整形数为“2”. 6.CRC校验 使用RTU模式,消息包括了一基于CRC方法的错误检测域。CRC域检测了整个消息的内容。 CRC域是两个字节,包含一16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。 CRC是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。 CRC产生过程中,每个8位字符都单独和寄存器内容相或(OR),结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相或。最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。 CRC添加到消息中时,低字节先加入,然后高字节。 CRC简单函数如下: unsigned short CRC16(puchMsg, usDataLen) unsigned char *puchMsg ;

文档评论(0)

youshen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档