什麼手冊是警告你的是,在不正確的情況下,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。
http://www.fatek.com/Download%20Page/English/FBe_Manual/Basic/Chapter_4.pdf – SHANib 2012-02-21 10:14:47
沒有幫助。沒有解釋。我看到差分函數和條件標誌之間沒有區別 - 看起來是一樣的。 – KMC 2012-02-21 10:45:52