梯形圖的編程方式是指根據(jù)功能表圖設(shè)計出梯形圖的方法。為了適應(yīng)各廠家的plc在編程元件、指令功能和表示方法上的差異,下面主要介紹使用通用指令的編程方式、以轉(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)榛顒硬健S捎谵D(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)椴换顒硬剑虼丝梢詫i+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)初始化的功能指令I(lǐng)ST,使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)來控制該輸出繼電器的線圈。