張媛媛,黨麗峰
(江蘇聯(lián)合職業(yè)技術(shù)學(xué)院鎮(zhèn)江分院 機(jī)電工程系,江蘇 鎮(zhèn)江 212016)
可編程控制器(PLC)是中控系統(tǒng)常用的控制器之一,已成為現(xiàn)代工業(yè)自動(dòng)化控制的三大支柱之一[1]。很多職業(yè)院校開(kāi)設(shè)了“PLC應(yīng)用技術(shù)”課程。對(duì)PLC編程而言,可以使用多種方法實(shí)現(xiàn)同一種控制功能,每種方法各有優(yōu)缺點(diǎn)。學(xué)生從簡(jiǎn)單的基本指令入手,進(jìn)而學(xué)習(xí)步進(jìn)指令、功能指令,循序漸進(jìn)[2]。分析控制流程,使用程序?qū)崿F(xiàn)控制功能,達(dá)到最優(yōu)設(shè)計(jì),是一個(gè)長(zhǎng)期積累的過(guò)程。
搶答器要求實(shí)時(shí)、準(zhǔn)確、快速、公正[3]。搶答器系統(tǒng)是“PLC應(yīng)用技術(shù)”課程中的典型案例。以知識(shí)競(jìng)賽現(xiàn)場(chǎng)用4組搶答器控制系統(tǒng)為例,使用三菱FX2N系列PLC設(shè)計(jì)控制系統(tǒng),使用3種方法編程,研究使用不同指令實(shí)現(xiàn)同一控制要求的設(shè)計(jì)思路。
知識(shí)競(jìng)賽現(xiàn)場(chǎng)4組搶答器系統(tǒng)控制要求:按下“啟動(dòng)”鍵,系統(tǒng)啟動(dòng),主持人發(fā)出搶答信號(hào),任意一組搶先按下按鍵后,顯示器及時(shí)顯示該組編號(hào),同時(shí)蜂鳴器鳴叫提示該組搶答成功,此時(shí)其他組按鍵無(wú)效,主持人按下“復(fù)位”按鈕后可再次搶答,按下“停止”按鈕,系統(tǒng)停止工作。
使用PLC控制程序時(shí),需要將所有的輸入(輸出)器件連接到PLC的輸入(輸出)端口,并對(duì)端口進(jìn)行說(shuō)明。該系統(tǒng)的I/O地址分配表如表1所示,PLC控制電路端口接線如圖1所示。
表1 I/O地址分配表
使用基本邏輯指令編寫(xiě)PLC程序時(shí),只使用基本的軟元件,需注意軟元件的關(guān)聯(lián)性和邏輯性。圖2為系統(tǒng)的啟動(dòng)和搶答程序。使用典型的起保停電路實(shí)現(xiàn)系統(tǒng)啟動(dòng)。搶答器系統(tǒng)存在2組或多組同時(shí)搶答成功的問(wèn)題,需要使用互鎖解決,即利用一組的運(yùn)行信號(hào)進(jìn)行其他組的運(yùn)行信號(hào)控制[4]。控制程序?yàn)橄韧V购筠D(zhuǎn)換的梯形圖程序,從輸出M1到輸出M2運(yùn)行,先按下復(fù)位按鈕“X0”,停止M1的輸出,再按下啟動(dòng)按鈕“X2”,轉(zhuǎn)換到M2運(yùn)行?;ユi各方只要有一方為“ON”,其他組均被鎖,具有“先到先得,后到不得”的功能。
圖2 搶答器系統(tǒng)的啟動(dòng)和搶答程序
組號(hào)顯示使用七段數(shù)碼管實(shí)現(xiàn)。七段數(shù)碼管由7個(gè)條形發(fā)光二極管組成,通過(guò)各段的亮滅實(shí)現(xiàn)數(shù)字顯示[5]。在程序中,M1,M2,M3,M4分別對(duì)應(yīng)4個(gè)組搶答成功信號(hào),LED顯示數(shù)字字符需要把每個(gè)組的狀態(tài)轉(zhuǎn)換成LED對(duì)應(yīng)的輸出,如表2所示。
數(shù)碼管顯示程序中需要處理雙線圈輸出問(wèn)題,如第2組搶答成功和第3組搶答成功均要求數(shù)碼管顯示A段,按順序編寫(xiě)程序時(shí)用OUT指令驅(qū)動(dòng)兩次Y1輸出。由PLC運(yùn)行的工作原理可知,輸出繼電器Y的狀態(tài)是最后檢測(cè)到的狀態(tài)刷新結(jié)果輸送到相應(yīng)的輸出端子的。雙線圈處理后的數(shù)碼管顯示程序如圖3所示。值得注意的是,在程序中加了定時(shí)器T0,用來(lái)實(shí)現(xiàn)搶答成功時(shí)蜂鳴器鳴叫1s提示。
表2 七段數(shù)碼管字符顯示
工業(yè)控制中大多是順序控制,大多使用步進(jìn)指令。搶答器控制系統(tǒng)是選擇最先搶答的一組執(zhí)行,是典型的選擇分支,可以使用步進(jìn)程序的選擇分支編寫(xiě)程序,程序結(jié)構(gòu)如圖4所示。M8002上電后“S0”狀態(tài)激活,若第2組搶先按下,X2得電,程序進(jìn)入第2個(gè)分支,其他分支不得電,按下復(fù)位按鈕“X0”后,程序跳轉(zhuǎn)到“S0”重新進(jìn)行搶答。使用步進(jìn)指令編程,無(wú)需考慮互鎖及雙線圈問(wèn)題,可讀性較強(qiáng)。
圖4 狀態(tài)轉(zhuǎn)移圖
使用步進(jìn)指令編寫(xiě)PLC程序,運(yùn)行步驟一目了然,但輸出元件Y多次重復(fù)使用,效率低。在PLC中,功能指令主要用于模擬量控制、運(yùn)動(dòng)控制、通訊控制等[6]。功能指令數(shù)量多、門(mén)類廣,而且有些功能指令涉及專業(yè)知識(shí)和PLC擴(kuò)展領(lǐng)域。但功能指令可以實(shí)現(xiàn)PLC的很多擴(kuò)展功能,大大提高了編程效率及PLC的使用價(jià)值。七段數(shù)碼管可通過(guò)SEGD七段解碼功能指令實(shí)現(xiàn)數(shù)字顯示,程序如圖5所示。按下復(fù)位按鈕“X0”時(shí),通過(guò)區(qū)間復(fù)位指令“ZRST”將七段數(shù)碼管清零。
圖5 七段解碼指令實(shí)現(xiàn)數(shù)字顯示程序
可通過(guò)數(shù)據(jù)傳送指令MOV和位組合元件實(shí)現(xiàn)數(shù)字顯示,程序如圖6所示。
用數(shù)據(jù)傳送指令設(shè)計(jì)程序時(shí),用位元件的組合K2Y001控制七段數(shù)碼管的輸出,當(dāng)數(shù)碼管顯示數(shù)字“1”時(shí),Y7—Y1顯示的二進(jìn)制信息為“0000110”,轉(zhuǎn)化為十進(jìn)制信息為“K6”,然后,將數(shù)據(jù)通過(guò)MOV指令傳送到數(shù)碼管進(jìn)行顯示。
使用基本邏輯指令編寫(xiě)程序,強(qiáng)調(diào)軟元件之間的邏輯關(guān)系,初學(xué)者易上手,但對(duì)于復(fù)雜的控制系統(tǒng),存在邏輯關(guān)系復(fù)雜、程序可讀性差的缺點(diǎn)。使用步進(jìn)指令編寫(xiě)PLC程序,結(jié)構(gòu)清楚,只需考慮轉(zhuǎn)移條件和每步需完成的動(dòng)作即可,但軟元件多次重復(fù)使用,編寫(xiě)效率低。使用功能指令時(shí),程序可擴(kuò)展性強(qiáng),步驟少,適合模擬控制、過(guò)程控制、通訊控制。但PLC功能指令數(shù)量多、門(mén)類廣,很難快速掌握。PLC的編程必須與實(shí)踐相結(jié)合,“做中學(xué),學(xué)中做”。