我需要从三菱输入模块 Q64AD 获得输入信号的平均值。我在结构化文本中的 GX Works 2 中工作。
这就是我过去在 Codesys 中获得平均值的方式:
timer_sr(IN:= NOT timer_sr.Q , PT:= T#5s );
SUM1:= SUM1 + napr1;
Nsum:=Nsum + 1;
IF timer_sr.Q THEN
timer_sr(IN:= NOT timer_sr.Q , PT:= T#5s);
outsr := SUM1 /Nsum;
Nsum := 0;
SUM1 := 0;
END_IF;
napr1 - 来自模块的值
这段代码在 GX Works 2 中不起作用,我认为因为 SUM1 不是 INT 数据类型,而只是 Word[signed] 类型。
有没有办法使 SUM1 成为 INT 类型,或者该解决方案可能有另一种逻辑?