我使用的是 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。
提前致谢。
省略下面交换单词的逻辑是您如何将您的转换POINTER TO REAL
为 aREAL
以转换为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);
关键是^
取消引用指针的内容。