2012-02-21 83 views
1

我正在使用歐姆龍CP1L PLC和CX程序員程序。我很難理解究竟是什麼「差異說明」,從文檔:什麼是PLC中的差分指令?

憑藉差異化的指令,指令 反映在條件標誌執行結果,只有當執行條件滿足, 和結果先前的梯級(而不是 區分指令的執行結果)將反映在下一個週期的條件標誌 中。因此,如果要使用不同的 指令執行結果,您必須瞭解條件標誌 將在下一個週期中執行的操作。

我的理解是:指令總是在滿足條件時執行,當然如果條件標誌存在以從上一個梯級指令中獲得ON或OFF狀態,則下一梯級指令將被執行。所以我完全沒有把握文件中的解釋。而看到這兩者之間沒有什麼區別:

(A)在不使用差分

Without differential

(B)使用差分
enter image description here

+0

http://www.fatek.com/Download%20Page/English/FBe_Manual/Basic/Chapter_4.pdf – SHANib 2012-02-21 10:14:47

+0

沒有幫助。沒有解釋。我看到差分函數和條件標誌之間沒有區別 - 看起來是一樣的。 – KMC 2012-02-21 10:45:52

回答

2

什麼手冊是警告你的是,在不正確的情況下,Inst在C變爲真(區分指令)之後,變量A將僅被執行一次,但指令B的執行取決於來自在A中執行的指令的條件標誌的狀態。如果A僅被執行一次,則條件標誌僅對當前的PLC掃描。隨後的滿足C的PLC掃描將不執行差分指令A,但可以執行差分指令B - 如果先前的梯級執行比較操作並將全局條件標誌設置爲TRUE。

如果你明白全局變量的危險,這基本上是一回事。 PLC邏輯中的某些標誌是某些指令使用的全局標誌。它們僅在指令執行後立即保持有效,並且每次在不同數據上執行時都會更改。在不正確的情況下,未保護的梯級懸掛着全局條件標誌,用於不保證執行的操作。

在正確的情況下,執行條件被區分而不是指令。當C變爲真時,它會轉到[DIFU D]。這使得D僅適用於下一次PLC掃描 - 每次C從FALSE變爲TRUE時,D對於一次PLC掃描只會變爲真。這保證了指令A(產生條件標誌值)只執行一次,而且保證每次遇到條件標誌暴露指令B時執行。

編輯:有問題的執行流程 - CF的狀態是RANDOM(更準確地說:不受控制!),除非我們剛剛執行了比較操作。每次在程序中的任何位置執行比較指令時,整個程序中的所有其他比較操作都會改變其值!

STATE   C   Instruction A  CF(=) InstructionB 

Scan #1 : OFF    N/E   RANDOM  N/E 
Scan #2 : ON   EXECUTES > TRUE  TRUE  EXECUTES //desired 
Scan #3 : ON    N/E   RANDOM(T) N/E 
Scan #4 : ON    N/E   RANDOM(F) N/E 
Scan #5 : ON    N/E   RANDOM(T) *EXECUTES*!! //UNDESIRED 

在這裏,只要C保持ON,指令B會在每次從CF假變爲真切換時間執行由於在程序的其他區域的其他比較操作。這是不希望的 - 如果InstructionA已經執行並且已經將CF =返回爲TRUE,我們只希望執行InstructionB。

+0

你的意思是說,沒有使用差異,B不會在A的同一個循環中執行,但下一次運行?另外,當C在兩種情況下均爲真時,A總是執行一次?另外,「..隨後的PLC滿足C的掃描將不執行差分指令..」但是梯形圖從左到右從上到下,如果C滿足,那麼電力流動總是導致指令A.否? – KMC 2012-02-21 11:54:51

+0

是的,但是隻有當電流FIRST打開時纔會執行**差分**指令。在再次執行ONCE和ONLY ONCE之前,它不會再次執行,直到電流關閉然後再次打開。一個差分觸點在擴展時,只要底層標誌變爲TRUE,就會關閉一次。它不會再次關閉,直到底層標誌變爲FALSE,然後再次爲TRUE,等等。 – 2012-02-21 12:12:04

+0

但是不是所有的指令(差分指令或其他指令)在一個週期內不會執行或只執行一次嗎? 「在不正確的情況下,指令A只執行一次」,並且在正確的情況下「差分指令只執行一次」。那麼我的問題仍然存在 - 不正確和正確的圖達到相同的功能。一切都執行完畢,他們最終擁有相同的邏輯。 – KMC 2012-02-21 16:26:33