当前位置:编程学习 > VB >>

Modbus解码顺序

请教一下各位Modbus协议中解码顺序1234,3412是什么意思啊?12代表高位还是低位啊???
1、假设上位机要读01,02寄存器内的数据(浮点数)上位机发送命令:01 03 00 00 00 02 85 CA(校验码不一定对)
返回的数据为01 03 04 06 51 3F 9E 3B 32(校验码不一定对),返回的数据为1.234567,3F 9E 06 51四个字节即为1.234567的IEEE754格式单精度浮点形式。那么这个的解码顺序应该是什么呢????
2、假设上位机要读25,26寄存器内的数据(32位整数)上位机发送命令01 03 00 18 00 02 44 0C(校验码不一定对)
返回的数据为01 03 04 3F 31 00 0C A7 ED(校验码不一定对),返回的数据为802609,其4字节16进制表示为00 0C 3F 31,
那么这个的解码顺序应该是什么呢????
3、现在我同时读取1、2寄存器(浮点数)和25、26寄存器(32位整数)内的数据,我用串口调试工具拦截的数据如下:
08 03 00 01 00 19 D5 59 当我把读取寄存器的地址加1或者减1的时候第一个地址是对的,第二个地址不对,就是第六个字节不对。请高手指点。。。。。。。。。。 --------------------编程问答-------------------- MODBUS协议中文版详解.pdf

网上找找,比较详细 --------------------编程问答-------------------- 好的,谢谢。。。 --------------------编程问答-------------------- 01 03 04 06 51 3F 9E 3B 32(



01 主机号
03 功能号,读字
04 返回字节数为4
06 51  第一个字:06高字节,51低字节
3f 9e 同上

3B 32 CRC16  低字节  高字节  --------------------编程问答--------------------
引用 3 楼  的回复:
01 03 04 06 51 3F 9E 3B 32(



01 主机号
03 功能号,读字
04 返回字节数为4
06 51 第一个字:06高字节,51低字节
3f 9e 同上

3B 32 CRC16 低字节 高字节



谢谢你, --------------------编程问答-------------------- 问题的关键在于通信协议,没有通信协议,只是从字面上去破解有难度 --------------------编程问答--------------------
引用 5 楼  的回复:
问题的关键在于通信协议,没有通信协议,只是从字面上去破解有难度


通信协议就是MODBUS协议啊。。。
我就是想知道一个小数,比如0.52,转换成单精度浮点数是怎么存放的??? --------------------编程问答--------------------
引用 6 楼  的回复:
引用 5 楼 的回复:
问题的关键在于通信协议,没有通信协议,只是从字面上去破解有难度


通信协议就是MODBUS协议啊。。。
我就是想知道一个小数,比如0.52,转换成单精度浮点数是怎么存放的???


*100,读出来后/100 --------------------编程问答-------------------- 你用mudbos通讯软件直接读,可以直接看到寄存器中的数!
补充:VB ,  COM/DCOM/COM+
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,