定时器输入复位要用 #IEC_Timer_0_Instance_1(IN := 0, PT := t#1s);形式
#IEC_Timer_0_Instance_1.IN:=0; 写法无法把定时器Q断开。 之前程序确实执行不正确,原因就是定时器语法问题。
***********************************************************************************)
#IEC_Timer_0_Instance_1(IN := 0,
PT := t#1s);
#iSumArrayMean30Seconds := #iSumArrayMean30Seconds - #iArrayMean30Seconds[#i];
#iArrayMean30Seconds[#i] := REAL_TO_DINT(#IN * 100);
#iSumArrayMean30Seconds := #iSumArrayMean30Seconds + #iArrayMean30Seconds[#i];
#OUT := DINT_TO_REAL(#iSumArrayMean30Seconds) / (#k * 100);
If #i < 30 Then
#i := #i + 1;
Else
#i := 1;
End_If;
(*Anzahl der Werte im Array*)
If #k < 30 Then
#k := #k + 1;
Else
#k := 30;
End_If;
End_If;
(*----------END FUNKTIONBLOCK----------*)
END_FUNCTION_BLOCK
以上是一段老外编写的30S平均值得程序,这时大概10年前编的,用的是巴赫曼PLC写的,我给编译成TIA14的,编译时仅仅改动一点点,真是太方便了。以下是源程序截图。