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