PLC中構造雙穩態按鈕
1 引言
在機床的控制中,經常遇到類似如工件的夾緊/放松,冷卻液的啟動/停止,頂針的前進/后退等等的操作。對于這類動作,操作者往往希望通過一個按鈕來實現:按一下按鈕,工件夾緊;再按一下按鈕,工件放松;再按一下按鈕,工件又夾緊;如此循環往復。把這樣的按鈕稱為雙穩態按鈕,即有兩種穩定狀態:接通和斷開,而且兩種狀態都能保持。在數控系統中,機床控制面板上一般會提供一些按鍵供用戶自由定義,但按鍵的數量往往是非常有限的,所以對按鍵的分配不得不斟酌再三。如果在PLC程序中把按鍵做成雙穩態的,一個按鍵身兼二職,就會使許多問題迎刃而解了??梢?,PLC程序把按鈕做成雙穩態,還可以節省輸入點的數量,這樣在經濟上也是很合算的。
2 構成雙穩態按鈕的三種方法
在PLC程序中構造雙穩態按鈕,有多種實現的方案,現在就介紹其中的三種方法。
2.1 通過SET和RESET指令來實現
圖1 通過SET和RESET指令來實現雙穩態按鈕功能
圖1程序中,當第一次按下按鈕I0.0,此時第一條支路因串聯的M0.1為常閉點,而使M0.0接通條件滿足置位。第二條支路的執行條件不滿足,暫且不去理會。再看第三條支路,假設持續按著按鈕不釋放,因支路中串聯進I0.0的常閉點而使接通條件不滿足,直到釋放按鈕I0.0,因串聯的M0.0已經置位,從而使M0.1和Q0.0輸出保持為“1”。當第二次按下按鈕I0.0時,因為M0.0的狀態為“1”,第一條支路執行條件不滿足,第三條支路因I0.0的按下而使M0.1和Q0.0輸出為“0”,M0.1由“1”變為“0”產生一個下降沿,使M0.0復位為“0”,從而使M0.1和Q0.0的“0”狀態得以保持,即使釋放按鈕I0.0以后。之后對按鈕I0.0的操作,又重復上述過程??梢?,得到的是一個雙穩態按鈕。
2.2 利用PLC基本邏輯指令來實現
PLC程序是按照一定的PLC掃描周期循環往復地的執行程序代碼。在每一個PLC掃描周期內,先讀入輸入映像區內的信號狀態,然后執行用戶程序,最后刷新輸出映像區的信號狀態。用戶程序的執行是按照代碼的先后順序自上往下依次執行的。
圖2 利用PLC基本邏輯指令來實現雙穩態按鈕功能
圖2程序中正是充分利用了PLC程序的執行的特點,現在分析一下它的工作過程。按一下按鈕,使I0.1變為“1”,在第一個PLC掃描周期內,M0.0變為“1”,M0.1變為“1”,M0.1等于“1”會使M0.0變為“0”,但M0.0的狀態變化要到下一個PLC掃描周期才會執行,可見M0.0是寬度為1個PLC掃描周期的脈沖信號。因為M0.0等于“1”,這樣會使原來狀態為“0”的Q0.0變為“1”。從第二個PLC掃描周期起,不論I0.1變為“0”或保持為“1”,M0.0變為“0”并穩定在“0”上,這樣Q0.0通過M0.0常閉點與Q0.0常開點串聯的支路保持為“1”狀態。再按一下按鈕,M0.0又產生寬度為1個PLC掃描周期的脈沖信號,這個脈沖信號使原來狀態為“1”的Q0.0變為“0”并穩定在“0”上。如此每次按一下按鈕,Q0.0就在“0”和“1”之間切換一次,形成雙穩態信號。
這一段程序中使用的指令是所有PLC系統都支持的最基本的指令,可以說在任何類型的PLC上都可以實現,非常具有代表性,值得借鑒。
2.3 借助于算術運算指令來實現
在數字電路中,如果把輸出的“非”端反饋到D觸發器的“D”輸入端,則每來一個時鐘脈沖,D觸發器的狀態就翻轉一次。
圖3 利用算術運算指令實現雙穩態按鈕功能
圖3所示的程序借鑒了數字電路中的D觸發器的工作原理,按鈕I0.0每按下一次,就相當于給觸發器的CP端輸入一個觸發脈沖,相加所得“和”的最低位狀態就翻轉一次,如果Q0.0取自最低位,就可得到周期性狀態在“0”、“1”之間改變的雙穩態信號。為了避免加法的計算結果溢出,判斷如果累加到16位整數所能表示的最大值32767,就重新開始累加。
3 結束語
文章開始提到的控制閥的兩種狀態,也可以選用具有保持功能的三位選擇開關,這是一種硬件實現方案。當然可以選用本文所述的軟件實現方案,殊途同歸。但通過軟件的方式,卻節省了PLC輸入點的開銷,如果PLC的輸入非常緊張,這是一種行之有效的方法,但若是輸入點最后還綽綽有余,這樣做就有畫蛇添足之嫌了。
硬件方案、軟件方案,很難說究竟何者是最佳方案。正如計算機的發展史,如果硬件非常昂貴,那就通過軟件來實現這一功能;如果硬件的成本非常低了,何不充分發揮硬件的功能,這樣還可以縮短一下程序代碼。PLC輸入點的問題正是如此,適合的才是最佳的。
文章版權歸西部工控xbgk所有,未經許可不得轉載。