以下是个自定义的时钟程序,
1.为什么定时器复位指令RESET_TIMER不能用?300/400的SCL定时器复位指令是什么?
2.为什么边沿触发块中#IECTpPulseHigh.Q不能作为触发条件?
非常感谢!
IF (#I_CycleLength > T#0ms) THEN
#IECTpPulseHigh(IN := (NOT #IECTpPulseLow.Q AND #I_Enable),
PT := #I_CycleLength / 2);
IF NOT #I_Enable THEN
RESET_TIMER(#IECTpPulseHigh);
END_IF;
#NegitiveEdgeHigh(CLK := #IECTpPulseHigh.Q,
Q => #PulseFromHighToLow); // negitive position of IEC timer.
#IECTpPulseLow(IN := #PulseFromHighToLow AND #I_Enable,
PT := #I_CycleLength / 2);
IF NOT #I_Enable THEN
RESET_TIMER(#IECTpPulseLow);
END_IF;
//output results:
#PositiveEdgeHigh(CLK := #IECTpPulseHigh.Q,
Q => #O_PositivePulse);
#O_ClockPulse := #IECTpPulseHigh.Q;
END_IF;
图片说明:
最佳答案
300/400的SCL并不适用RESET_TIMER指令;可以考虑使用S_ODT指令,一样具有复位定时器的功能。
提问者对于答案的评价:
谢谢!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc285114.html