我正在使用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中对其进行转换。
提前致谢。
答案 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);
键是^
,它取消了指针的引用。