梯形圖的編程方式是指根據(jù)功能表圖設(shè)計出梯形圖的方法。為了適應(yīng)各廠家的在編程元件、指令功能和表示方法上的差異,下面主要介紹使用通用指令的編程方式、以轉(zhuǎn)換為中心的編程方式、使用stl指令的編程方式和仿stl指令的編程方式。
為了便于分析,我們假設(shè)剛開始執(zhí)行用戶程序時,系統(tǒng)已處于初始步(用初始化脈沖m8002將初始步置位),代表其余各步的編程元件均為off,為轉(zhuǎn)換的實現(xiàn)做好了準(zhǔn)備。
1.使用通用指令的編程方式
編程時用輔助來代表步。某一步為活動步時,對應(yīng)的輔助繼電器為“1”狀態(tài),轉(zhuǎn)換實現(xiàn)時,該轉(zhuǎn)換的后續(xù)步變?yōu)榛顒硬?。由于轉(zhuǎn)換條件大都是短信號,即它存在的時間比它激活的后續(xù)步為活動步的時間短,因此應(yīng)使用有記憶(保持)功能的電路來控制代表步的輔助繼電器。屬于這類的電路有“起保停電路”和具有相同功能的使用set、rst指令的電路。
如圖1a所示mi-1、mi和mi+l是功能表圖中順序相連的3步,xi是步mi之前的轉(zhuǎn)換條件。

圖1使用通用指令的編程方式示意圖
編程的關(guān)鍵是找出它的起動條件和停止條件。根據(jù)轉(zhuǎn)換實現(xiàn)的基本規(guī)則,轉(zhuǎn)換實現(xiàn)的條件是它的前級步為活動步,并且滿足相應(yīng)的轉(zhuǎn)換條件,所以步mi變?yōu)榛顒硬降臈l件是mi-1為活動步,并且轉(zhuǎn)換條件xi=1,在梯形圖中則應(yīng)將mi-1和xi的常開觸點串聯(lián)后作為控制mi的起動電路,如圖1b所示。當(dāng)mi和xi+1均為“l(fā)”狀態(tài)時,步mi+1變?yōu)榛顒硬?,這時步mi應(yīng)變?yōu)椴换顒硬?,因此可以將mi+1=1作為使mi變?yōu)椤?”狀態(tài)的條件,即將mi+1的常閉觸點與mi的線圈串聯(lián)。也可用set、rst指令來代替“起保停電路”,如圖1c所示。
這種編程方式僅僅使用與觸點和線圈有關(guān)的指令,任何一種plc的指令系統(tǒng)都有這一類指令,所以稱為使用通用指令的編程方式,可以適用于任意型號的plc。
如圖2所示是根據(jù)液壓滑臺系統(tǒng)的功能表圖使用通用指令編寫的梯形圖。開始運行時應(yīng)將m300置為“1”狀態(tài),否則系統(tǒng)無法工作,故將m8002的常開觸點作為m300置為“1”條件。m300的前級步為m303,后續(xù)步為m301。由于步是根據(jù)輸出狀態(tài)的變化來劃分的,所以梯形圖中輸出部分的編程極為簡單,可以分為兩種情況來處理:
1)某一輸出繼電器僅在某一步中為“1”狀態(tài),如y1和y2就屬于這種情況,可以將y1線圈與m303線圈并聯(lián),y2線圈與m302線圈并聯(lián)??雌饋碛眠@些輸出繼電器來代表該步(如用y1代替m303),可以節(jié)省一些編程元件,但plc的輔助繼電器數(shù)量是充足、夠用的,且多用編程元件并不增加硬件費用,所以一般情況下全部用輔助繼電器來代表各步,具有概念清楚、編程規(guī)范、梯形圖易于閱讀和容易查錯的優(yōu)點。
2)某一輸出繼電器在幾步中都為“1”狀態(tài),應(yīng)將代表各有關(guān)步的輔助繼電器的常開觸點并聯(lián)后,驅(qū)動該輸出繼電器的線圈。如y0在快進、工進步均為“1”狀態(tài),所以將m301和m302的常開觸點并聯(lián)后控制y0的線圈。注意,為了避免出現(xiàn)雙線圈現(xiàn)象,不能將y0線圈分別與m301和m302的線圈并聯(lián)。

圖2使用通用指令編程的液壓滑臺系統(tǒng)梯形圖。
2.以轉(zhuǎn)換為中心的編程方式
如圖3所示為以轉(zhuǎn)換為中心的編程方式設(shè)計的梯形圖與功能表圖的對應(yīng)關(guān)系。圖中要實現(xiàn)xi對應(yīng)的轉(zhuǎn)換必須同時滿足兩個條件:前級步為活動步(mi-1=1)和轉(zhuǎn)換條件滿足(xi=1),所以用mi-1和xi的常開觸點串聯(lián)組成的電路來表示上述條件。兩個條件同時滿足時,該電路接通時,此時應(yīng)完成兩個操作:將后續(xù)步變?yōu)榛顒硬剑ㄓ胹et mi指令將mi置位)和將前級步變?yōu)椴换顒硬?用rst mi-1指令將mi-1復(fù)位)。這種編程方式與轉(zhuǎn)換實現(xiàn)的基本規(guī)則之間有著嚴(yán)格的對應(yīng)關(guān)系,用它編制復(fù)雜的功能表圖的梯形圖時,更能顯示出它的優(yōu)越性。

圖3以轉(zhuǎn)換為中心的編程方式
如圖4所示為某信號燈控制系統(tǒng)的時序圖、功能表圖和梯形圖。初始步時僅紅燈亮,按下起動按鈕x0,4s后紅燈滅、綠燈亮,6s后綠燈和黃燈亮,再過5s后綠燈和黃燈滅、紅燈亮。按時間的先后順序,將一個工作循環(huán)劃分為4步,并用定時器t0~t3來為3段時間定時。開始執(zhí)行用戶程序時,用m8002的常開觸點將初始步m300置位。按下起動按鈕x0后,梯形圖第2行中m300和x0的常開觸點均接通,轉(zhuǎn)換條件x0的后續(xù)步對應(yīng)的m301被置位,前級步對應(yīng)的輔助繼電器m300被復(fù)位。m301變?yōu)椤?”狀態(tài)后,控制y0(紅燈)仍然為“l(fā)”狀態(tài),定時器t0的線圈通電,4s后t0的常開觸點接通,系統(tǒng)將由第2步轉(zhuǎn)換到第3步,依此類推。

圖4某信號燈控制系統(tǒng)
a)時序圖b)功能表圖c)以轉(zhuǎn)換為中心編程的梯形圖
使用這種編程方式時,不能將輸出繼電器的線圈與set、rst指令并聯(lián),這是因為圖4中前級步和轉(zhuǎn)換條件對應(yīng)的串聯(lián)電路接通的時間是相當(dāng)短的,轉(zhuǎn)換條件滿足后前級步馬上被復(fù)位,該串聯(lián)電路被斷開,而輸出繼電器線圈至少應(yīng)該在某一步活動的全部時間內(nèi)接通。
3.使用stl指令的編程方式
許多plc廠家都設(shè)計了專門用于編制順序控制程序的指令和編程元件,如美國ge公司和gould公司的鼓形控制器、日本東芝公司的步進順序指令、三菱公司的步進梯形指令等。
步進梯形指令(step ladder instruction)簡稱為stl指令。fx系列就有stl指令及ret復(fù)位指令。利用這兩條指令,可以很方便地編制順序控制梯形圖程序。
fx2n系列plc的狀態(tài)器s0~s9用于初始步,s10~s19用于返回原點,s20~s499為通用狀態(tài),s500~s899有斷電保持功能,s900~s999用于報警。用它們編制順序控制程序時,應(yīng)與步進梯形指令一起使用。fx系列還有許多用于步進順控編程的特殊輔助繼電器以及使?fàn)顟B(tài)初始化的功能指令ist,使stl指令用于設(shè)計順序控制程序更加方便。
使用stl指令的狀態(tài)器的常開觸點稱為stl觸點,它們在梯形圖中的元件符號如圖5所示。圖中可以看出功能表圖與梯形圖之間的對應(yīng)關(guān)系,stl觸點驅(qū)動的電路塊具有三個功能:對負(fù)載的驅(qū)動處理、指定轉(zhuǎn)換條件和指定轉(zhuǎn)換目標(biāo)。

圖5 stl指令與功能表圖
除了后面要介紹的并行序列的合并對應(yīng)的梯形圖外,stl觸點是與左側(cè)母線相連的常開觸點,當(dāng)某一步為活動步時,對應(yīng)的stl觸點接通,該步的負(fù)載被驅(qū)動。當(dāng)該步后面的轉(zhuǎn)換條件滿足時,轉(zhuǎn)換實現(xiàn),即后續(xù)步對應(yīng)的狀態(tài)器被set指令置位,后續(xù)步變?yōu)榛顒硬剑瑫r與前級步對應(yīng)的狀態(tài)器被系統(tǒng)程序自動復(fù)位,前級步對應(yīng)的stl觸點斷開。
使用stl指令時應(yīng)該注意以下一些問題:
1)與stl觸點相連的觸點應(yīng)使用ld或ldi指令,即ld點移到stl觸點的右側(cè),直到出現(xiàn)下一條stl指令或出現(xiàn)ret指令,ret指令使ld點返回左側(cè)母線。各個stl觸點驅(qū)動的電路一般放在一起,最后一個電路結(jié)束時—定要使用ret指令。
2)stl觸點可以直接驅(qū)動或通過別的觸點驅(qū)動y、m、s、t等元件的線圈,stl觸點也可以使y、m、s等元件置位或復(fù)位。
3)stl觸點斷開時,cpu不執(zhí)行它驅(qū)動的電路塊,即cpu只執(zhí)行活動步對應(yīng)的程序。在沒有并行序列時,任何時候只有一個活動步,因此大大縮短了掃描周期。
4)由于cpu只執(zhí)行活動步對應(yīng)的電路塊,使用stl指令時允許雙線圈輸出,即同一元件的幾個線圈可以分別被不同的stl觸點驅(qū)動。實際上在一個掃描周期內(nèi),同一元件的幾條out指令中只有一條被執(zhí)行。
5)stl指令只能用于狀態(tài)寄存器,在沒有并行序列時,一個狀態(tài)寄存器的stl觸點在梯形圖中只能出現(xiàn)一次。
6)stl觸點驅(qū)動的電路塊中不能使用mc和mcr指令,但是可以使用cjp和ejp指令。當(dāng)執(zhí)行cjp指令跳人某一stl觸點驅(qū)動的電路塊時,不管該stl觸點是否為“1”狀態(tài),均執(zhí)行對應(yīng)的ejp指令之后的電路。
7)與普通的輔助繼電器一樣,可以對狀態(tài)寄存器使用ld、ldi、and、ani、or、ori、set、rst、out等指令,這時狀態(tài)器觸點的畫法與普通觸點的畫法相同。
8)使?fàn)顟B(tài)器置位的指令如果不在stl觸點驅(qū)動的電路塊內(nèi),執(zhí)行置位指令時系統(tǒng)程序不會自動將前級步對應(yīng)的狀態(tài)器復(fù)位。
如圖6所示小車一個周期內(nèi)的運動路線由4段組成,它們分別對應(yīng)于s31~s34所代表的4步,s0代表初始步。

圖6小車控制系統(tǒng)功能表圖與梯形圖
假設(shè)小車位于原點(最左端),系統(tǒng)處于初始步,s0為“1”狀態(tài)。按下起動按鈕x4,系統(tǒng)由初始步s0轉(zhuǎn)換到步s31。s31的stl觸點接通,y0的線圈“通電”,小車右行,行至最右端時,限位開關(guān)x3接通,使s32置位,s31被系統(tǒng)程序自動置為“0”狀態(tài),小車變?yōu)樽笮?,小車將這樣一步一步地順序工作下去,最后返回起始點,并停留在初始步。圖6中的梯形圖對應(yīng)的指令表程序如表所示.。
表小車控制系統(tǒng)指令表
| ld set stl ld set stl | m8002 s0 s0 x4 s31 s31 | out ld set stl out ld | y0 x3 s32 s32 y1 x1 | set stl out ld set stl | s33 s33 y0 x2 s34 s34 | out ld set ret | y1 x0 s0 |
| 4.仿stl指令的編程方式 對于沒有stl指令的plc,也可以仿照stl指令的設(shè)計思路來設(shè)計順序控制梯形圖,這就是下面要介紹的仿stl指令的編程方式。 如圖7所示為某加熱爐送料系統(tǒng)的功能表圖與梯形圖。除初始步外,各步的動作分別為開爐門、推料、推料機返回和關(guān)爐門,分別用y0、y1、y2、y3驅(qū)動動作。x0是起動按鈕,x1~x4分別是各動作結(jié)束的限位開關(guān)。與左側(cè)母線相連的m300~m304的觸點,其作用與stl觸點相似,它右邊的電路塊的作用為驅(qū)動負(fù)載、指定轉(zhuǎn)換條件和轉(zhuǎn)換目標(biāo),以及使前級步的輔助繼電器復(fù)位。
圖7加熱爐送料系統(tǒng)的功能表圖與梯形圖 由于這種編程方式用輔助繼電器代替狀態(tài)器,用普通的常開觸點代替stl觸點,因此,與使用stl指令的編程方式相比,有以下的不同之處: 1)與代替stl觸點的常開觸點(如圖5-33中m300~m304的常開觸點)相連的觸點,應(yīng)使用and或ani指令,而不是ld或ldi指令。 2)在梯形圖中用rst指令來完成代表前級步的輔助繼電器的復(fù)位,而不是由系統(tǒng)程序自動完成。 3)不允許出現(xiàn)雙線圈現(xiàn)象,當(dāng)某一輸出繼電器在幾步中均為“1”狀態(tài)時,應(yīng)將代表這幾步的輔助繼電器常開觸點并聯(lián)來控制該輸出繼電器的線圈。 |











