施洋
(山西工程職業(yè)學(xué)院 機電工程系,山西 太原 030032)
隨著計算機技術(shù)在工業(yè)領(lǐng)域的應(yīng)用逐漸普及,可編程控制技術(shù)在當(dāng)前工業(yè)生產(chǎn)中的應(yīng)用也越來越廣泛,它已經(jīng)成為實現(xiàn)工業(yè)自動化的重要控制手段;而掌握可編程控制技術(shù)不僅需要了解其硬件組成和具體功能,而且要能靈活掌握可編程控制器軟件中常用的編程指令,只有這樣,才能完成電機控制等工業(yè)控制領(lǐng)域的控制功能。在可編程控制器的控制指令中,功能指令的使用場景較多,幾乎所有工業(yè)控制領(lǐng)域中都會用到基本控制指令,因此只有對基本的控制指令掌握透徹,才能舉一反三,搭建起有效的控制功能框架,最終完成簡潔、高效的梯形圖程序編寫,實現(xiàn)自動化控制。
在可編程控制器軟件指令集中的基本位操作指令是所有控制指令的基礎(chǔ),它是控制邏輯中必不可少的一部分。本研究以“西門子”S7-200系列可編程控制器為例,通過3個編程控制實例,介紹基本位操作指令中的跳變觸點指令的具體應(yīng)用。
“西門子”S7-200系列可編程控制器的基本位操作指令是CPU對輸入/輸出映像寄存器狀態(tài)進行讀/寫操作的指令,能夠?qū)崿F(xiàn)基本的位邏輯運算與控制[1]。其中,與觸點相關(guān)的指令有常開觸點指令、常閉觸點指令、負跳變觸點指令、正跳變觸點指令、取反指令[1],常開觸點指令是指可編程控制器內(nèi)部線圈未得電時,內(nèi)部輔助觸點是斷開狀態(tài),而常閉觸點指令則恰恰相反,取反指令則是對輸入的邏輯狀態(tài)進行取反后參與程序的邏輯運算。
“西門子”系列可編程控制器的一個掃描周期主要由3個部分組成:輸入采樣、程序執(zhí)行和輸出刷新。“西門子”S7-200型可編程控制器的程序掃描過程是“集中批處理和順序掃描”。其中,集中批處理就是可編程控制器在程序一個掃描周期內(nèi),一次全部讀取輸入映像寄存器內(nèi)的數(shù)據(jù),完成數(shù)據(jù)運算后,一次全部讀出運算后的結(jié)果并將其輸出至輸出映像寄存器的過程。順序掃描的原則就是可編程控制器在進行程序掃描時是由上往下逐條反復(fù)的掃描。在可編程控制器的一個掃描周期內(nèi)輸入采樣的數(shù)據(jù)和輸出刷新的數(shù)據(jù)是以集中批次的方式處理的;程序執(zhí)行的過程按“先左后右,從上至下”的順序依次掃描[2]。也就是說,跳變觸點指令的響應(yīng)具有時效性。
在單輸入按鈕/雙輸出信號燈控制場景中可以使用跳變觸電指令對信號燈進行控制,具體控制要求是利用一個按鈕控制兩盞信號燈顯示,要求按鈕第一次按下后第一盞信號燈點亮;第二次按下后第二盞信號燈點亮,同時第一盞信號燈熄滅;第三次按下后兩盞信號燈同時點亮;第四次按下后兩盞信號燈同時熄滅。以后按此規(guī)律循環(huán)執(zhí)行[1]。
通過對控制任務(wù)的分析,兩盞信號燈有4個工作狀態(tài),說明一個開關(guān)要產(chǎn)生4種條件,每一種條件對應(yīng)一種工作狀態(tài)即可實現(xiàn)控制任務(wù)。可以考慮用置位與復(fù)位指令對兩盞信號燈實現(xiàn)工作狀態(tài)的切換,同時由于信號燈的4種工作狀態(tài)變換有先后順序,因此每按下一次開關(guān),產(chǎn)生一種工作狀態(tài),產(chǎn)生第一種工作狀態(tài)后,通過按鈕的常開觸點與第一種工作狀態(tài)串聯(lián)產(chǎn)生第二種工作狀態(tài),第二種工作狀態(tài)再與按鈕的常開觸點串聯(lián)產(chǎn)生第三種工作狀態(tài),依此類推,最終實現(xiàn)一個按鈕控制兩盞信號燈的控制任務(wù)。
對控制任務(wù)進行分析后得出I/O分配及功能表(見表1)。
表1 I/O分配及功能表
根據(jù)控制任務(wù)及I/O分配表可以繪制出控制系統(tǒng)的接線圖(如圖1所示)。
圖1 跳變觸點指令對信號燈控制硬件接線圖
由于每次按下按鈕都需要對應(yīng)一次信號燈的不同顯示狀態(tài),產(chǎn)生的狀態(tài)還需要參與后面的邏輯運算,因此可以考慮引入內(nèi)部狀態(tài)位幫助我們完成對不同狀態(tài)的標(biāo)記。考慮可以運用每一次開關(guān)按下后產(chǎn)生的下降沿觸發(fā)相應(yīng)的狀態(tài)標(biāo)志位,這樣就避免了按鈕按下后產(chǎn)生同時觸發(fā)4個按鈕按下的條件,實現(xiàn)了按鈕按下切換一次顯示狀態(tài),當(dāng)4次按鈕全部按下之后,運用復(fù)位按鈕將4個中間狀態(tài)位進行復(fù)位,至此一輪的信號燈狀態(tài)顯示完畢,也為下一輪次的狀態(tài)顯示做好準備??刂七壿嬏菪螆D如圖2所示。
圖2 跳變觸點指令對信號燈控制梯形圖
當(dāng)按鈕按下后,在按鈕彈開的瞬間,給可編程控制器輸入一個下降沿,使中間狀態(tài)位繼電器M0.1置位,與此同時按鈕已經(jīng)彈開,這樣在網(wǎng)絡(luò)2中并未檢測到下降沿,所以M0.2沒有被置位,此時只有M0.1被置位,然后通過網(wǎng)絡(luò)5將Q0.1置位,第一盞信號燈點亮。當(dāng)?shù)诙伟聪掳粹o后,同理只使M0.2置位,通過網(wǎng)絡(luò)6把Q0.1復(fù)位,而將Q0.2置位,因此第一盞燈熄滅,第二盞信號燈點亮。當(dāng)?shù)谌伟聪掳粹o后,同理只使M0.3置位,通過網(wǎng)絡(luò)7把Q0.1和Q0.2同時置位,兩盞信號燈同時點亮。當(dāng)?shù)谒拇伟聪掳粹o后,同理只使M0.4置位,通過網(wǎng)絡(luò)8把Q0.1和Q0.2同時復(fù)位,兩盞信號燈同時熄滅,從而實現(xiàn)了任務(wù)中的控制要求。
跳變觸點還可以用于對圓盤轉(zhuǎn)動的控制,例如通過可編程控制器控制圓盤轉(zhuǎn)5圈:用可編程控制器控制一個圓盤如圖3所示,圓盤的旋轉(zhuǎn)由電動機控制,圓盤用一個限位開關(guān)檢測旋轉(zhuǎn)圈數(shù)。初始狀態(tài)下,限位開關(guān)在圓盤碰塊的作用下處于動作狀態(tài),要求按下啟動按鈕后每轉(zhuǎn)一圈后停3 s,轉(zhuǎn)5圈后停止[3]。
根據(jù)控制任務(wù)及控制示意圖可以繪制出控制系統(tǒng)的接線圖(如圖4所示)。
圖3 圓盤控制示意圖
圖4 跳變觸點指令對圓盤控制硬件接線圖
其中,KM為接觸器線圈,控制電動機的啟動和停止。根據(jù)控制要求編寫出控制邏輯梯形圖(如圖5所示)。初始狀態(tài)下,圓盤在原位時限位開關(guān)I0.0壓下時,梯形圖中I0.0觸點閉合,但是計數(shù)器C0不計數(shù),定時器也不得電。當(dāng)按下啟動按鈕I0.1后,Q0.0線圈置位得電,圓盤旋轉(zhuǎn),限位開關(guān)I0.0復(fù)位,計數(shù)器C0復(fù)位為0,M0.0得電自鎖,將定時器T37接入電路,但是限位開關(guān)I0.0觸點斷開,定時器T37不得電。
圖5 跳變觸點指令對圓盤控制梯形圖
圓盤旋轉(zhuǎn)一圈,當(dāng)碰塊碰到并壓下限位開關(guān)I0.0時,I0.0常開觸點發(fā)一個脈沖使Q0.0復(fù)位,圓盤停轉(zhuǎn),I0.0常開觸點閉合,C0記一次數(shù),定時器T37線圈得電,延時3 s后發(fā)出一個脈沖,使Q0.0線圈再次復(fù)位,圓盤旋轉(zhuǎn),圓盤每轉(zhuǎn)一圈計數(shù)一次,當(dāng)計數(shù)值為5時,計數(shù)器C0常開觸點閉合,使Q0.0始終處于復(fù)位狀態(tài),全部過程結(jié)束。在運行過程中,如要停止,則按下停止按鈕I0.2,I0.2常開觸點閉合,使Q0.0復(fù)位,I0.2常閉觸點斷開,M0.0失電,斷開定時器T37,恢復(fù)初始狀態(tài)。
跳變觸點指令還可用于電動機的控制,例如雙按鈕安全順序啟動3臺電動機控制:為了避免多臺電動機同時啟動,造成啟動電流過高,要求用一個啟動按鈕分時順序啟動3臺電動機,3臺電動機全部啟動以后,再按一次啟動按鈕,3臺電動機全部停止運行。為了保證啟動的安全性及其他人誤啟動,啟動時要求雙手操作,即一手按住安全按鈕,一手按啟動按鈕,全部啟動以后松開安全按鈕。啟動過程中如果要停止電動機,按下安全按鈕即可停止電動機[3]。
對控制任務(wù)分析后得出I/O分配及功能表(見表2)。
表2 I/O分配及功能表
根據(jù)控制任務(wù)可以繪制出控制系統(tǒng)的接線圖(如圖6所示)。根據(jù)控制要求編寫出控制邏輯梯形圖(如圖7所示)。
圖6 跳變觸點指令對電動機控制硬件接線圖
圖7 跳變觸點指令對電動機控制梯形圖
啟動時按住安全按鈕SB2,I0.1觸點閉合。按下啟動按鈕SB1,I0.0觸點閉合,接通一個掃描周期,使Q0.0置位,第一臺電動機啟動。與此同時,Q0.0常開觸點閉合,為第二臺電動機的啟動做好了準備,再按一下啟動按鈕SB1,使Q0.1置位,第二臺電動機啟動,同時Q0.1常開觸點閉合,為第三臺電動機啟動做好了準備,再按下啟動按鈕SB1,使Q0.2置位,第三臺電動機啟動。松開安全按鈕SB1,啟動過程結(jié)束。同時,Q0.2常開觸點閉合,為電動機停止做好了準備。再按下啟動按鈕SB1,M0.0線圈得電,Q0.0至Q0.2全部復(fù)位,3臺電動機全部停止運行。啟動過程中若要停止電動機的運行,則松開啟動按鈕SB1,按一下安全按鈕SB2,I0.1產(chǎn)生一個脈沖,使Q0.0至Q0.2全部復(fù)位,則3臺電動機全部停止運行。
可編程控制器的程序設(shè)計是一個探索式前進的過程,不可能一蹴而就。在實際編程的過程中,掌握好基本功和理解各個指令的功能至關(guān)重要。跳變觸點指令看似理解容易,但實際應(yīng)用起來存在一定的難度。跳變觸點指令在對信號燈控制的程序中通過觸點跳變指令將接通式能流傳導(dǎo)轉(zhuǎn)換為脈沖式能流傳導(dǎo),將4種工作狀態(tài)有序地切分開,避免了誤導(dǎo)通,使程序執(zhí)行更加高效;在對圓盤控制的程序中通過觸點跳變指令巧妙地應(yīng)對了圓盤初始狀態(tài)時對限位開關(guān)的動作,將靜態(tài)信號轉(zhuǎn)化為動態(tài)信號,使程序更加簡潔;對電動機進行控制的程序中,利用觸點跳變指令出發(fā)后的導(dǎo)通時間只有一個掃描周期的特性,解決了雙按鈕按下順序不同導(dǎo)致無法順序啟動的問題。
總而言之,合理利用正負跳變觸點指令可以使程序邏輯功能產(chǎn)生事半功倍的效果。在實際應(yīng)用中,首先要將控制功能分解為一個可執(zhí)行的小步驟,然后通過對各個小步驟之間的銜接過程進行分析,合理利用正負跳變觸點指令“邊沿觸發(fā)及一個掃描周期內(nèi)正負跳變觸點指令功能起作用”的特點,最后將每一個小步驟做好有效的銜接,避免產(chǎn)生誤動作,從而實現(xiàn)簡單指令完成較為復(fù)雜的功能。