问题描述:
如何将Modbus或者其他通讯协议传输来的字节Bytes或者字Words转换为浮点型数据?
如通过ModbusTCP接收到目标系统单精度浮点型的源内存数据的4个字节,想在TwinCAT中还原为浮点型后使用。
回答:
可以使用自定义数据结构中的“共用体”来实现。
也可以使用更普遍的内存复制的方法,原理上变量的值是由系统根据内存中的二进制按照变量的数据类型进行解析计算出的,所以当变量在内存中的二进制相同,但是数据类型不同时,也会因解析方法不一样输出不一样的结果。
所以,为解决问题描述中的情况,我们可以将原本的4个字节的内存数据复制到一个Real浮点型(它的内存占用也是4字节)中,这样就可以让这部分内存数据以浮点型的方式来解析了。
代码的实现方法:
Memcpy使用方法:
https://infosys.beckhoff.com/content/1033/tcplclib_tc2_system/31041163.html?id=1342802077509225213同样的字符串转换为ASCII码值也可以使用该方法:
2025.3.31 云龙 供稿