2016-02-28 114 views
1

比方说,我有一个布尔输入,可以自动切换其状态。从0到1和从1到0的切换设置了一个循环。要确定该周期是否有效,周期时间必须至少为10秒。西门子PLC S7 1200 TOF问题

我可以确定一个semicicle是否无效,但我无法弄清楚如何能够在周期结束时确定它是否无效。

这是我有:

enter image description here

+0

我不知道我完全理解你的问题。你是说如果你将'TBx_state'从0切换到1,如果应该运行至少10秒,否则它是无效的。如果你从1切换到0,它应该运行至少10秒,否则它是无效的?你只想指出它是否无效? – mrsargent

回答

1

你似乎在说,如果输入信号的状态不是10秒稳定的,你有一个无效的周期,要检查该。

要做到这一点,您显然需要一个由每次转换触发的计时器。 (我不是特别熟悉你的PLC,但他们都非常相似,所以我会认为这是你有什么,你适当地有两个,引发了不同的转变。

正过渡无效的转换条件是:

 positive_input_transition_timer_q and not input 

也就是说,定时器必须运行输入必须转到错误状态

现在,输入可能秒杀低则立即再次高走;你可能不希望。失去了一个无效过渡的事实,所以你真正想要做的是latch无效转换的检测。

我不擅长漂亮的梯形逻辑图形,所以我会在旧式写:需要负过渡

--+----[ ]----[TON]----+------[/]-----[/]------()------ 
    | Input Positive |  Unlatch Input Invalid 
    |   Transition |  Invalid   Positive 
    |     |  Positive  Cycle 
    +--------[]----------+  Cycle 
      Invalid 
      Positive 
      Cycle 

了相应的梯级。

据推测,的代码会注意到InvalidPositive一些其它位,适当地作出反应,然后解锁状态。