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