DWORD到REAL转换

时间:2016-04-14 05:17:53

标签: plc

我一直在编写一个程序,它通过Modbus RTU分析功率读取无功功率值。

无功功率由32位表示,而MSb确定符号。程序不读取整个32位而不是读取两个16位字。

读取32位后,我需要将值转换为REAL 数据类型。所以我在结构化文本中写了以下转换代码:

rQs: REAL := 0.0;
rQs := DINT_TO_REAL(DWORD_TO_DINT((SHL(WORD_TO_DWORD(stLovato_power.iQ_HW),16) + WORD_TO_DWORD(stLovato_power.iQ_LW))))/100.0;

(结构stLovato_power在其项目中包含16位字,其形成32位无功功率表示)。

似乎阅读没问题,但转换中的某些内容是错误的。尽管iQ_HW和iQ_LW中的值都非零,我仍然得到0。有人可以告诉我

我犯了哪个错误?

感谢。

1 个答案:

答案 0 :(得分:0)

我刚刚解决了这个问题。代码是正确的,但程序模块没有由处理器处理。大多数模块变量都有一些值(这些值实际上是在不同的模块中计算的),因为我的意思是模块已被处理。劳驾。

相关问题