获取电能表到施耐德PLC的值



我正试图从电能表读取值,并将它们转换为REAL(32位浮点数)。在这种情况下,我正在读取1相电压。每个值在两个寄存器中读取。所以我已经收到了值17268的单词(MSW)和2456(LSW)将它们转换为DWORD,然后在乘以0.1后转换为REAL值,但我没有得到我所期望的答案。我应该得到245.0375伏特。然而,我得到1.13E+08请查看带有活动值的结构化文本的片段。剪断

问题是DWORD_TO_REAL正在尝试进行类型转换;即使DWORD的值与REAL的格式匹配。在您的情况下,MSWLSW的内容只是一个分成两半的IEEE754值,只需要强制进入REAL变量的相应位。使用TwinCAT (Beckhoff),我将进行直接内存复制:

MEMCPY(ADR(realValue)+2, ADR(MSW), 2);
MEMCPY(ADR(realValue), ADR(LSW), 2);

我认为Schneider也有类似的命令。

相关内容

  • 没有找到相关文章

最新更新