2016-02-28 40 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一些其它位,適當地作出反應,然後解鎖狀態。