假设我有一个可以自动切换其状态的布尔输入。从 0 切换到 1 和从 1 切换到 0 设置一个循环。要确定该循环是否有效,循环时间必须至少为 10 秒。
我可以确定一个半球是否无效,但我不知道如何在循环结束时确定它是否无效。
这就是我所拥有的:
您似乎在说如果输入信号的状态在 10 秒内不稳定,则说明您的循环无效,您想检查一下。
为此,您显然需要一个由每次转换触发的计时器。(我对你的 PLC 不是特别熟悉,但它们都非常相似,所以我假设这就是你所拥有的,并且你适当地有两个,在不同的转换时触发。
正向转换的无效转换条件是:
positive_input_transition_timer_q and not input
也就是说,定时器必须在运行并且输入必须进入错误状态。
现在,输入可能会突然变低,然后立即再次变高;您可能不想失去您进行无效转换的事实。所以你真正想做的是锁定无效转换的检测。
我不擅长漂亮的梯形逻辑图形,所以我会用旧风格写:
--+----[ ]----[TON]----+------[/]-----[/]------( )------
| Input Positive | Unlatch Input Invalid
| Transition | Invalid Positive
| | Positive Cycle
+--------[]----------+ Cycle
Invalid
Positive
Cycle
负转换需要相应的梯级。
据推测,其他一些代码会注意到 InvalidPositive,做出适当的响应,然后解锁条件。