0

我使用的是 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。

提前致谢。

4

1 回答 1

0

省略下面交换单词的逻辑是您如何将您的转换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);

关键是^取消引用指针的内容。

于 2016-02-24T14:46:00.977 回答