IEEE 754单精度到REAL Codesys

时间:2016-02-24 00:14:03

标签: plc codesys

我正在使用Wago 750 PLC,实际上我通过ModBus从其他设备读取32位寄存器并将值保存到var POINT TO REAL中,在这种特定情况下,值为0000 40A0。我将MSW和LSW反转为40A0 0000(IEEE 754),十进制为5.0。我的问题是我不知道如何使用CODESYS将此POINTER TO REAL格式化为REAL变量,以便在STRING中对其进行转换。

提前致谢。

1 个答案:

答案 0 :(得分:0)

省略下面交换字词的逻辑,就是如何将POINTER TO REAL转换为REAL以转换为STRING

VAR
   realVal:REAL:=5.0;
   pRealVal:POINTER TO REAL;
   newReal:REAL;
   someString:STRING;
END_VAR

(*save real value to pointer *)
pRealVal:=ADR(realVal);

(*dereference the pointer to some other real value *)
someOtherReal:=pRealVal^;

(*convert real value to string *)
aString:=REAL_TO_STRING(someOtherReal);

键是^,它取消了指针的引用。