摘要:以FX型PLC為例,對四選一程序的編制方法進行了介紹;給出了用SUB指令進行單個信號接通判別的一個方法,例舉了用步進梯形圖指令STL編制的四選一程序。
關鍵詞:輸入輸出;SUB指令;STL指令;軟件仿真
在某些設備中,有多個工位、而每次只允許一個工位工作,例如
《自學自會PLC指令——三菱FX2N編程技術及應用》 (莫操君 編著)一書中(下稱文獻[1]),圖6-11所示的情況。
而在文獻[1]的第6.3節,還專門談到了“多選一程序的編寫”;據此,本文以四選一為例,就FX型PLC談談程序的編制方法。
1.問題描述 實際問題中,隨著工藝要求、產品對象的不同,對程序會有針對性的個體要求。由于本文主旨是編程方法的介紹,為具一般性,故把問題歸結為輸入對輸出的控制,即:
給定四個輸入X0、X1、X2、X3,四個輸出Y0、Y1、Y2、Y3;每個輸入對應一個輸出,但每次最多僅允許一個輸出接通;當輸入X0~X3全部斷開時,輸出Y0~Y3保持前一狀態不變;參見表1。
從表1可看出,輸入信號的正確,是保證輸出正確的前提。所以,對于該問題的編程思路,可以是:
(1)判斷信號是否正確;
(2)根據輸入信號狀態決定輸出。
也就是,有且僅有一個輸入接通時,將轉換到對應的輸出。例如,開始時,X0~X3、Y0~Y3全是斷開的;接通X0、則Y0接通,斷開X0、Y0保持接通;再接通X1,則Y0斷開、Y1接通;如此類推。
當然,在X0~X3全斷開的情況下,也可以設定條件使Y0~Y3全斷開。
2. 判別是否只有一個輸入接通 對于輸入信號數量的判別,文獻[1]分別用SUM、ADD、FOR、LD=、INC等指令進行了介紹;按照文獻[1]的思路,本文試用減法指令(SUB)來判別是否只有一個輸入接通。
參見圖1,M8020是零標志,當SUB指令運算結果為0時,M8020接通。例如,當X1接通,則M1接通,由位元件組合成的字(K4M0)=1,所以M20接通。
同樣地,(K4M0)分別等于2、4、8時,有對應M21、M22、M23接通。
由于X1~X3有接通者時,(K4M0)有確定的值。也就是,當(K4M0)等于1,就不會等于2、4、8;等于8,就不會等于1、2、4。
因此,當M30接通時,就表示只有一個輸入接通;若有輸入接通而M30不通,則表示輸入信號不正確。
在出現錯誤信號時,可以給出提示信號,或者將信號鎖定、等待處理。具體如何編程,應根據試驗要求或工藝要求而定。
3 對應輸出的實現
3. 1 主要用基本指令編程
接圖1程序,用基本指令實現四選一輸出的程序見圖2。該程序,當有多個接通信號時,輸出保持原狀態不變,后接通的信號無效。
倘若圖2程序中的Y0~Y3,分別代表一個過程、或者一系列輸出,則再按這種思路編程,程序將會比較復雜。
這時,可以試用其他方法編程,例如三菱FX系列PLC的步進梯形圖指令(STL、RET)。
3. 2 采用STL指令編程
采用選擇性分支,其狀態轉換圖參見圖3。當輸入信號正確時,轉換到相應的流程。例如,當僅有X0接通時,M0接通,則狀態器轉換到S21接通。實際程序中,在STL 21之后,還可以設立一系列動作或狀態。
根據圖3,接圖1編制一個示意程序如圖4所示。同樣地,當有多個輸入信號接通時,該程序將保持原輸出不變。
將圖1、圖4程序結合,用“梯形圖邏輯測試”進行仿真。
運行程序,強制接通X0,可見到Y0接通;同樣,單個接通X1、X2、X3,則分別對應有Y1、Y2、Y3單個接通。
若需在多于一個輸入接通信號時,禁止輸出或作其他處理,可另編制相應的程序。圖4程序可由編程軟件轉換為SFC程序。
4.后語 本文已將實際問題進行了簡化,僅是一種思路的介紹,主要供初學者學習參考。實際編程時,根據要求的不同,會有更多的考慮。
圖4程序,與文獻[1]圖6-18類似;關于該問題的更多討論,可參見文獻[1]。
(于2009年11月27日)
參考文獻:
[1] 莫操君.自學自會PLC指令——三菱FX2N編程技術及應用[M].2009. [ 此帖被qlin在2009-12-08 12:44重新編輯 ]