应用于多字节数据的解析或是生成格式,针对4字节以及8字节的数据变换才有效(则只针对Int32、Int64、UInt32、UInt64的数据有效)
譬如某PLC 以ABCD 方式存储一个数值1,另外一个PLC以CDAB方式将存储的BUFFER读出来,那读出来的值就变成了65536。
因此,我们需要在初始化的时候,了解PLC对于4字节8字节的数据是如何排序处理的。
搞清楚了,下面的MODBUS描述就可以看得懂了把?
7.2. 32位有符号整数
这结合了2个16位Modbus寄存器。它可以以4种不同的字/字节顺序显示。
- 有符号整数大端
- 有符号整数小端序
- 有符号整数大端字节交换
- 有符号整数小端字节交换
- 例
- 字节顺序:AB CD(大端)
十进制数字123456789或十六进制07 5B CD 15
在Modbus消息中通过线路时的顺序:07 5B CD 15
7.3. 32位无符号整数
这结合了2个16位Modbus寄存器。它可以以4种不同的字/字节顺序显示。
- 无符号整数大端字节序
- 无符号整数小端序
- 无符号整数大端字节交换
- 无符号整数小端字节交换
- 例
- 字节顺序:AB CD(大端)
十进制数字123456789或十六进制07 5B CD 15
在Modbus消息中通过线路时的顺序:07 5B CD 15
7.4. 64位有符号整数
这结合了4个16位Modbus寄存器。它可以以4种不同的字/字节顺序显示。
- 有符号整数大端
- 有符号整数小端序
- 有符号整数大端字节交换
- 有符号整数小端字节交换
- 例
- 字节顺序:AB CD EF GH(大端)
十进制数 -1,234,567,890,123,456,789 或十六进制EE DD EF 0B 82 16 7E EB
在 Modbus 消息中通过线路时的顺序:EE DD EF 0B 82 16 7E EB
7.5. 64位无符号整数
这结合了4个16位Modbus寄存器。它可以以4种不同的字/字节顺序显示。
- 无符号整数大端字节序
- 无符号整数小端序
- 无符号整数大端字节交换
- 无符号整数小端字节交换
- 例
- 字节顺序:AB CD EF GH(大端)
十进制数 1,234,567,890,123,456,789 或十六进制11 22 10 F4 7D E9 81 15
在 Modbus 消息中通过电线的顺序:11 22 10 F4 7D E9 81 15
7.6. 32位浮动
这结合了2个16位Modbus寄存器。它可以以4种不同的字/字节顺序显示。
- 浮子大端
- 浮动小端序
- 浮点大端字节交换
- 浮点小端字节交换
- 例
- 字节顺序:AB CD(大端)
浮点数 123456.00 或十六进制47 F1 20 00
在 Modbus 消息中通过线路时的顺序:47 F1 20 00
7.7. 64位双精度
这结合了4个16位Modbus寄存器。它可以以4种不同的字/字节顺序显示。
- 双大端
- 双小端序
- 双大端字节交换
- 双小端字节交换
- 例
- 字节顺序:AB CD EF GH(大端)
浮点数 123456789.00 或十六进制41 9D 6F 34 54 00 00 00
在 Modbus 消息中通过电线时的顺序:41 9D 6F 34 54 00 00 00