定时器如何在PLC结构化文本(ST)中工作?我们怎么申报?
我一直在研究可编程控制器的标准(IEC 61131-3),他们没有提到ST的计时器。我知道绝大多数PLC程序员都是用梯形逻辑来实现的,但在这种情况下,我确实需要在ST中声明定时器。
我用的是洛克威尔公司的PLC。
发布于 2015-02-07 18:36:02
您可以在IDE的帮助系统中找到关于计时器和如何使用(声明)定时器的说明。例如,在CODESYS帮助中,您可以阅读标准库的计时器。
通常,您可以将计时器延迟(TON)声明为:
VAR
MY_TON: TON;
END_VAR
(* standard.library should be added to the project *)然后你可以使用它:
MY_TON(IN:= IN_VALUE,PT:= TIME_SET);
(*IN_VALUE - is BOOL variable that activates your timer
TIME_SET - is TIME variable*)
SOME_OUTPUT := MY_TON.Q;
(*Q - is the timer's output, and it can be used as BOOL variable. *)还可以使用常量来设置计时器:
MY_TON(IN:= True, PT:= t#5s);作为BOOL变量,计时器的输出可以用于IF和WHILE语句:
IF MY_TON.Q THEN
(*Some statements...*)
END_IF
WHILE MY_TON.Q DO
(*Some statements...*)
END_WHILE所有示例都运行在CODEsyv3.5 SP5和v2.3中。对于其他IDE来说,可能会有细微差别。
发布于 2015-01-10 17:39:28
我在Gx-Works(三菱/FXCPU)中这样解决了这个问题:
TON_1(IN:= Enable_Timer,PT:= PresetTime ,Q:= Output,ET:= TimeLeft);请记住声明TON_1 :)
发布于 2016-06-30 12:04:09
计时器的工作原理是,只有在TON.Q持续高(至少在TON.PT的持续时间)的情况下,才能使TON.PT变得更高。
这确保只有当TON.Q处于稳定的高状态时,TON.IN才会升高。
例如,这可能有助于确保只有当按钮至少按了一个TON.PT时才启用输出。
https://stackoverflow.com/questions/25682962
复制相似问题