永发信息网

c#请问modbus-rtu返回的数据该如何解析

答案:1  悬赏:80  手机版
解决时间 2021-11-15 09:49
  • 提问者网友:孤山下
  • 2021-11-15 05:13
c#请问modbus-rtu返回的数据该如何解析
最佳答案
  • 五星知识达人网友:北城痞子
  • 2021-11-15 06:34
Modbus RTU返回的数据,第一个字节是设备ID,第二个字节是寄存器类型,第三第四字节是数据长度,最末的两个字节是CRC16校验码,中间的是数据。数据的解析,要看你读的是什么寄存器,以及寄存器存放的数据类型是什么,如果读的是线圈寄存器,也就是开关量,数据区第一个字节的最高位二进制位就对应着第一个开关量,0为关,1为开,依此类推。如果是保持寄存器,或者读写寄存器,数据类型可能是32位浮点,32位整数,16位整数等。一个寄存器包含两个字节,也就是说你读取一个寄存器,返回的数据是两个字节,32位浮点或者整数需要用到两个寄存器,也就是四个字节,四个字节的顺序可能与电脑的标准不同,有0123,1032,3210,2301等四种组合,都要调整顺序为0123才能被电脑正确转换。
浮点数使用BitConverter.ToSingle(Bdata, 0);进行转换。其中Bdata是一个长度为4的字节数组,保存着四字节的浮点数,用过这个方法可以将字节数组转换为浮点数据类型。整数也可用类似的方法。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯