施洋
(山西工程職業(yè)學(xué)院 機(jī)電工程系,山西 太原 030032)
隨著計(jì)算機(jī)技術(shù)在工業(yè)領(lǐng)域的應(yīng)用逐漸普及,可編程控制技術(shù)在當(dāng)前工業(yè)生產(chǎn)中的應(yīng)用也越來越廣泛,它已經(jīng)成為實(shí)現(xiàn)工業(yè)自動(dòng)化的重要控制手段;而掌握可編程控制技術(shù)不僅需要了解其硬件組成和具體功能,而且要能靈活掌握可編程控制器軟件中常用的編程指令,只有這樣,才能完成電機(jī)控制等工業(yè)控制領(lǐng)域的控制功能。在可編程控制器的控制指令中,功能指令的使用場(chǎng)景較多,幾乎所有工業(yè)控制領(lǐng)域中都會(huì)用到基本控制指令,因此只有對(duì)基本的控制指令掌握透徹,才能舉一反三,搭建起有效的控制功能框架,最終完成簡(jiǎn)潔、高效的梯形圖程序編寫,實(shí)現(xiàn)自動(dòng)化控制。
在可編程控制器軟件指令集中的基本位操作指令是所有控制指令的基礎(chǔ),它是控制邏輯中必不可少的一部分。本研究以“西門子”S7-200系列可編程控制器為例,通過3個(gè)編程控制實(shí)例,介紹基本位操作指令中的跳變觸點(diǎn)指令的具體應(yīng)用。
“西門子”S7-200系列可編程控制器的基本位操作指令是CPU對(duì)輸入/輸出映像寄存器狀態(tài)進(jìn)行讀/寫操作的指令,能夠?qū)崿F(xiàn)基本的位邏輯運(yùn)算與控制[1]。其中,與觸點(diǎn)相關(guān)的指令有常開觸點(diǎn)指令、常閉觸點(diǎn)指令、負(fù)跳變觸點(diǎn)指令、正跳變觸點(diǎn)指令、取反指令[1],常開觸點(diǎn)指令是指可編程控制器內(nèi)部線圈未得電時(shí),內(nèi)部輔助觸點(diǎn)是斷開狀態(tài),而常閉觸點(diǎn)指令則恰恰相反,取反指令則是對(duì)輸入的邏輯狀態(tài)進(jìn)行取反后參與程序的邏輯運(yùn)算。
“西門子”系列可編程控制器的一個(gè)掃描周期主要由3個(gè)部分組成:輸入采樣、程序執(zhí)行和輸出刷新。“西門子”S7-200型可編程控制器的程序掃描過程是“集中批處理和順序掃描”。其中,集中批處理就是可編程控制器在程序一個(gè)掃描周期內(nèi),一次全部讀取輸入映像寄存器內(nèi)的數(shù)據(jù),完成數(shù)據(jù)運(yùn)算后,一次全部讀出運(yùn)算后的結(jié)果并將其輸出至輸出映像寄存器的過程。順序掃描的原則就是可編程控制器在進(jìn)行程序掃描時(shí)是由上往下逐條反復(fù)的掃描。在可編程控制器的一個(gè)掃描周期內(nèi)輸入采樣的數(shù)據(jù)和輸出刷新的數(shù)據(jù)是以集中批次的方式處理的;程序執(zhí)行的過程按“先左后右,從上至下”的順序依次掃描[2]。也就是說,跳變觸點(diǎn)指令的響應(yīng)具有時(shí)效性。
在單輸入按鈕/雙輸出信號(hào)燈控制場(chǎng)景中可以使用跳變觸電指令對(duì)信號(hào)燈進(jìn)行控制,具體控制要求是利用一個(gè)按鈕控制兩盞信號(hào)燈顯示,要求按鈕第一次按下后第一盞信號(hào)燈點(diǎn)亮;第二次按下后第二盞信號(hào)燈點(diǎn)亮,同時(shí)第一盞信號(hào)燈熄滅;第三次按下后兩盞信號(hào)燈同時(shí)點(diǎn)亮;第四次按下后兩盞信號(hào)燈同時(shí)熄滅。以后按此規(guī)律循環(huán)執(zhí)行[1]。
通過對(duì)控制任務(wù)的分析,兩盞信號(hào)燈有4個(gè)工作狀態(tài),說明一個(gè)開關(guān)要產(chǎn)生4種條件,每一種條件對(duì)應(yīng)一種工作狀態(tài)即可實(shí)現(xiàn)控制任務(wù)。可以考慮用置位與復(fù)位指令對(duì)兩盞信號(hào)燈實(shí)現(xiàn)工作狀態(tài)的切換,同時(shí)由于信號(hào)燈的4種工作狀態(tài)變換有先后順序,因此每按下一次開關(guān),產(chǎn)生一種工作狀態(tài),產(chǎn)生第一種工作狀態(tài)后,通過按鈕的常開觸點(diǎn)與第一種工作狀態(tài)串聯(lián)產(chǎn)生第二種工作狀態(tài),第二種工作狀態(tài)再與按鈕的常開觸點(diǎn)串聯(lián)產(chǎn)生第三種工作狀態(tài),依此類推,最終實(shí)現(xiàn)一個(gè)按鈕控制兩盞信號(hào)燈的控制任務(wù)。
對(duì)控制任務(wù)進(jìn)行分析后得出I/O分配及功能表(見表1)。

表1 I/O分配及功能表
根據(jù)控制任務(wù)及I/O分配表可以繪制出控制系統(tǒng)的接線圖(如圖1所示)。

圖1 跳變觸點(diǎn)指令對(duì)信號(hào)燈控制硬件接線圖
由于每次按下按鈕都需要對(duì)應(yīng)一次信號(hào)燈的不同顯示狀態(tài),產(chǎn)生的狀態(tài)還需要參與后面的邏輯運(yùn)算,因此可以考慮引入內(nèi)部狀態(tài)位幫助我們完成對(duì)不同狀態(tài)的標(biāo)記。考慮可以運(yùn)用每一次開關(guān)按下后產(chǎn)生的下降沿觸發(fā)相應(yīng)的狀態(tài)標(biāo)志位,這樣就避免了按鈕按下后產(chǎn)生同時(shí)觸發(fā)4個(gè)按鈕按下的條件,實(shí)現(xiàn)了按鈕按下切換一次顯示狀態(tài),當(dāng)4次按鈕全部按下之后,運(yùn)用復(fù)位按鈕將4個(gè)中間狀態(tài)位進(jìn)行復(fù)位,至此一輪的信號(hào)燈狀態(tài)顯示完畢,也為下一輪次的狀態(tài)顯示做好準(zhǔn)備。控制邏輯梯形圖如圖2所示。

圖2 跳變觸點(diǎn)指令對(duì)信號(hào)燈控制梯形圖
當(dāng)按鈕按下后,在按鈕彈開的瞬間,給可編程控制器輸入一個(gè)下降沿,使中間狀態(tài)位繼電器M0.1置位,與此同時(shí)按鈕已經(jīng)彈開,這樣在網(wǎng)絡(luò)2中并未檢測(cè)到下降沿,所以M0.2沒有被置位,此時(shí)只有M0.1被置位,然后通過網(wǎng)絡(luò)5將Q0.1置位,第一盞信號(hào)燈點(diǎn)亮。當(dāng)?shù)诙伟聪掳粹o后,同理只使M0.2置位,通過網(wǎng)絡(luò)6把Q0.1復(fù)位,而將Q0.2置位,因此第一盞燈熄滅,第二盞信號(hào)燈點(diǎn)亮。當(dāng)?shù)谌伟聪掳粹o后,同理只使M0.3置位,通過網(wǎng)絡(luò)7把Q0.1和Q0.2同時(shí)置位,兩盞信號(hào)燈同時(shí)點(diǎn)亮。當(dāng)?shù)谒拇伟聪掳粹o后,同理只使M0.4置位,通過網(wǎng)絡(luò)8把Q0.1和Q0.2同時(shí)復(fù)位,兩盞信號(hào)燈同時(shí)熄滅,從而實(shí)現(xiàn)了任務(wù)中的控制要求。
跳變觸點(diǎn)還可以用于對(duì)圓盤轉(zhuǎn)動(dòng)的控制,例如通過可編程控制器控制圓盤轉(zhuǎn)5圈:用可編程控制器控制一個(gè)圓盤如圖3所示,圓盤的旋轉(zhuǎn)由電動(dòng)機(jī)控制,圓盤用一個(gè)限位開關(guān)檢測(cè)旋轉(zhuǎn)圈數(shù)。初始狀態(tài)下,限位開關(guān)在圓盤碰塊的作用下處于動(dòng)作狀態(tài),要求按下啟動(dòng)按鈕后每轉(zhuǎn)一圈后停3 s,轉(zhuǎn)5圈后停止[3]。
根據(jù)控制任務(wù)及控制示意圖可以繪制出控制系統(tǒng)的接線圖(如圖4所示)。

圖3 圓盤控制示意圖

圖4 跳變觸點(diǎn)指令對(duì)圓盤控制硬件接線圖
其中,KM為接觸器線圈,控制電動(dòng)機(jī)的啟動(dòng)和停止。根據(jù)控制要求編寫出控制邏輯梯形圖(如圖5所示)。初始狀態(tài)下,圓盤在原位時(shí)限位開關(guān)I0.0壓下時(shí),梯形圖中I0.0觸點(diǎn)閉合,但是計(jì)數(shù)器C0不計(jì)數(shù),定時(shí)器也不得電。當(dāng)按下啟動(dòng)按鈕I0.1后,Q0.0線圈置位得電,圓盤旋轉(zhuǎn),限位開關(guān)I0.0復(fù)位,計(jì)數(shù)器C0復(fù)位為0,M0.0得電自鎖,將定時(shí)器T37接入電路,但是限位開關(guān)I0.0觸點(diǎn)斷開,定時(shí)器T37不得電。

圖5 跳變觸點(diǎn)指令對(duì)圓盤控制梯形圖
圓盤旋轉(zhuǎn)一圈,當(dāng)碰塊碰到并壓下限位開關(guān)I0.0時(shí),I0.0常開觸點(diǎn)發(fā)一個(gè)脈沖使Q0.0復(fù)位,圓盤停轉(zhuǎn),I0.0常開觸點(diǎn)閉合,C0記一次數(shù),定時(shí)器T37線圈得電,延時(shí)3 s后發(fā)出一個(gè)脈沖,使Q0.0線圈再次復(fù)位,圓盤旋轉(zhuǎn),圓盤每轉(zhuǎn)一圈計(jì)數(shù)一次,當(dāng)計(jì)數(shù)值為5時(shí),計(jì)數(shù)器C0常開觸點(diǎn)閉合,使Q0.0始終處于復(fù)位狀態(tài),全部過程結(jié)束。在運(yùn)行過程中,如要停止,則按下停止按鈕I0.2,I0.2常開觸點(diǎn)閉合,使Q0.0復(fù)位,I0.2常閉觸點(diǎn)斷開,M0.0失電,斷開定時(shí)器T37,恢復(fù)初始狀態(tài)。
跳變觸點(diǎn)指令還可用于電動(dòng)機(jī)的控制,例如雙按鈕安全順序啟動(dòng)3臺(tái)電動(dòng)機(jī)控制:為了避免多臺(tái)電動(dòng)機(jī)同時(shí)啟動(dòng),造成啟動(dòng)電流過高,要求用一個(gè)啟動(dòng)按鈕分時(shí)順序啟動(dòng)3臺(tái)電動(dòng)機(jī),3臺(tái)電動(dòng)機(jī)全部啟動(dòng)以后,再按一次啟動(dòng)按鈕,3臺(tái)電動(dòng)機(jī)全部停止運(yùn)行。為了保證啟動(dòng)的安全性及其他人誤啟動(dòng),啟動(dòng)時(shí)要求雙手操作,即一手按住安全按鈕,一手按啟動(dòng)按鈕,全部啟動(dòng)以后松開安全按鈕。啟動(dòng)過程中如果要停止電動(dòng)機(jī),按下安全按鈕即可停止電動(dòng)機(jī)[3]。
對(duì)控制任務(wù)分析后得出I/O分配及功能表(見表2)。

表2 I/O分配及功能表
根據(jù)控制任務(wù)可以繪制出控制系統(tǒng)的接線圖(如圖6所示)。根據(jù)控制要求編寫出控制邏輯梯形圖(如圖7所示)。

圖6 跳變觸點(diǎn)指令對(duì)電動(dòng)機(jī)控制硬件接線圖

圖7 跳變觸點(diǎn)指令對(duì)電動(dòng)機(jī)控制梯形圖
啟動(dòng)時(shí)按住安全按鈕SB2,I0.1觸點(diǎn)閉合。按下啟動(dòng)按鈕SB1,I0.0觸點(diǎn)閉合,接通一個(gè)掃描周期,使Q0.0置位,第一臺(tái)電動(dòng)機(jī)啟動(dòng)。與此同時(shí),Q0.0常開觸點(diǎn)閉合,為第二臺(tái)電動(dòng)機(jī)的啟動(dòng)做好了準(zhǔn)備,再按一下啟動(dòng)按鈕SB1,使Q0.1置位,第二臺(tái)電動(dòng)機(jī)啟動(dòng),同時(shí)Q0.1常開觸點(diǎn)閉合,為第三臺(tái)電動(dòng)機(jī)啟動(dòng)做好了準(zhǔn)備,再按下啟動(dòng)按鈕SB1,使Q0.2置位,第三臺(tái)電動(dòng)機(jī)啟動(dòng)。松開安全按鈕SB1,啟動(dòng)過程結(jié)束。同時(shí),Q0.2常開觸點(diǎn)閉合,為電動(dòng)機(jī)停止做好了準(zhǔn)備。再按下啟動(dòng)按鈕SB1,M0.0線圈得電,Q0.0至Q0.2全部復(fù)位,3臺(tái)電動(dòng)機(jī)全部停止運(yùn)行。啟動(dòng)過程中若要停止電動(dòng)機(jī)的運(yùn)行,則松開啟動(dòng)按鈕SB1,按一下安全按鈕SB2,I0.1產(chǎn)生一個(gè)脈沖,使Q0.0至Q0.2全部復(fù)位,則3臺(tái)電動(dòng)機(jī)全部停止運(yùn)行。
可編程控制器的程序設(shè)計(jì)是一個(gè)探索式前進(jìn)的過程,不可能一蹴而就。在實(shí)際編程的過程中,掌握好基本功和理解各個(gè)指令的功能至關(guān)重要。跳變觸點(diǎn)指令看似理解容易,但實(shí)際應(yīng)用起來存在一定的難度。跳變觸點(diǎn)指令在對(duì)信號(hào)燈控制的程序中通過觸點(diǎn)跳變指令將接通式能流傳導(dǎo)轉(zhuǎn)換為脈沖式能流傳導(dǎo),將4種工作狀態(tài)有序地切分開,避免了誤導(dǎo)通,使程序執(zhí)行更加高效;在對(duì)圓盤控制的程序中通過觸點(diǎn)跳變指令巧妙地應(yīng)對(duì)了圓盤初始狀態(tài)時(shí)對(duì)限位開關(guān)的動(dòng)作,將靜態(tài)信號(hào)轉(zhuǎn)化為動(dòng)態(tài)信號(hào),使程序更加簡(jiǎn)潔;對(duì)電動(dòng)機(jī)進(jìn)行控制的程序中,利用觸點(diǎn)跳變指令出發(fā)后的導(dǎo)通時(shí)間只有一個(gè)掃描周期的特性,解決了雙按鈕按下順序不同導(dǎo)致無法順序啟動(dòng)的問題。
總而言之,合理利用正負(fù)跳變觸點(diǎn)指令可以使程序邏輯功能產(chǎn)生事半功倍的效果。在實(shí)際應(yīng)用中,首先要將控制功能分解為一個(gè)可執(zhí)行的小步驟,然后通過對(duì)各個(gè)小步驟之間的銜接過程進(jìn)行分析,合理利用正負(fù)跳變觸點(diǎn)指令“邊沿觸發(fā)及一個(gè)掃描周期內(nèi)正負(fù)跳變觸點(diǎn)指令功能起作用”的特點(diǎn),最后將每一個(gè)小步驟做好有效的銜接,避免產(chǎn)生誤動(dòng)作,從而實(shí)現(xiàn)簡(jiǎn)單指令完成較為復(fù)雜的功能。