梯形圖的編程方式是指根據(jù)功能表圖設(shè)計(jì)出梯形圖的方法。為了適應(yīng)各廠家的plc在編程元件、指令功能和表示方法上的差異,下面主要介紹使用通用指令的編程方式、以轉(zhuǎn)換為中心的編程方式、使用STL指令的編程方式和仿STL指令的編程方式。
為了便于分析,我們假設(shè)剛開始執(zhí)行用戶程序時(shí),系統(tǒng)已處于初始步(用初始化脈沖M8002將初始步置位),代表其余各步的編程元件均為OFF,為轉(zhuǎn)換的實(shí)現(xiàn)做好了準(zhǔn)備。
1.使用通用指令的編程方式
編程時(shí)用輔助繼電器來(lái)代表步。某一步為活動(dòng)步時(shí),對(duì)應(yīng)的輔助繼電器為“1”狀態(tài),轉(zhuǎn)換實(shí)現(xiàn)時(shí),該轉(zhuǎn)換的后續(xù)步變?yōu)榛顒?dòng)步。由于轉(zhuǎn)換條件大都是短信號(hào),即它存在的時(shí)間比它激活的后續(xù)步為活動(dòng)步的時(shí)間短,因此應(yīng)使用有記憶(保持)功能的電路來(lái)控制代表步的輔助繼電器。屬于這類的電路有“起保停電路”和具有相同功能的使用SET、RST指令的電路。
如圖1a所示Mi-1、Mi和Mi+l是功能表圖中順序相連的3步,Xi是步Mi之前的轉(zhuǎn)換條件。
圖1 使用通用指令的編程方式示意圖
編程的關(guān)鍵是找出它的起動(dòng)條件和停止條件。根據(jù)轉(zhuǎn)換實(shí)現(xiàn)的基本規(guī)則,轉(zhuǎn)換實(shí)現(xiàn)的條件是它的前級(jí)步為活動(dòng)步,并且滿足相應(yīng)的轉(zhuǎn)換條件,所以步Mi變?yōu)榛顒?dòng)步的條件是Mi-1為活動(dòng)步,并且轉(zhuǎn)換條件Xi=1,在梯形圖中則應(yīng)將Mi-1和Xi的常開觸點(diǎn)串聯(lián)后作為控制Mi的起動(dòng)電路,如圖1b所示。當(dāng)Mi和Xi+1均為“l(fā)”狀態(tài)時(shí),步Mi+1變?yōu)榛顒?dòng)步,這時(shí)步Mi應(yīng)變?yōu)椴换顒?dòng)步,因此可以將Mi+1=1作為使Mi變?yōu)椤?”狀態(tài)的條件,即將Mi+1的常閉觸點(diǎn)與Mi的線圈串聯(lián)。也可用SET、RST指令來(lái)代替“起保停電路”,如圖1c所示。
這種編程方式僅僅使用與觸點(diǎn)和線圈有關(guān)的指令,任何一種PLC的指令系統(tǒng)都有這一類指令,所以稱為使用通用指令的編程方式,可以適用于任意型號(hào)的PLC。
如圖2所示是根據(jù)液壓滑臺(tái)系統(tǒng)的功能表圖使用通用指令編寫的梯形圖。開始運(yùn)行時(shí)應(yīng)將M300置為“1”狀態(tài),否則系統(tǒng)無(wú)法工作,故將M8002的常開觸點(diǎn)作為M300置為“1”條件。M300的前級(jí)步為M303,后續(xù)步為M301。由于步是根據(jù)輸出狀態(tài)的變化來(lái)劃分的,所以梯形圖中輸出部分的編程極為簡(jiǎn)單,可以分為兩種情況來(lái)處理:
1)某一輸出繼電器僅在某一步中為“1”狀態(tài),如Y1和Y2就屬于這種情況,可以將Y1線圈與M303線圈并聯(lián),Y2線圈與M302線圈并聯(lián)。看起來(lái)用這些輸出繼電器來(lái)代表該步(如用Y1代替M303),可以節(jié)省一些編程元件,但PLC的輔助繼電器數(shù)量是充足、夠用的,且多用編程元件并不增加硬件費(fèi)用,所以一般情況下全部用輔助繼電器來(lái)代表各步,具有概念清楚、編程規(guī)范、梯形圖易于閱讀和容易查錯(cuò)的優(yōu)點(diǎn)。
2)某一輸出繼電器在幾步中都為“1”狀態(tài),應(yīng)將代表各有關(guān)步的輔助繼電器的常開觸點(diǎn)并聯(lián)后,驅(qū)動(dòng)該輸出繼電器的線圈。如Y0在快進(jìn)、工進(jìn)步均為“1”狀態(tài),所以將M301和M302的常開觸點(diǎn)并聯(lián)后控制Y0的線圈。注意,為了避免出現(xiàn)雙線圈現(xiàn)象,不能將Y0線圈分別與M301和M302的線圈并聯(lián)。
圖2 使用通用指令編程的液壓滑臺(tái)系統(tǒng)梯形圖。
2.以轉(zhuǎn)換為中心的編程方式
如圖3所示為以轉(zhuǎn)換為中心的編程方式設(shè)計(jì)的梯形圖與功能表圖的對(duì)應(yīng)關(guān)系。圖中要實(shí)現(xiàn)Xi對(duì)應(yīng)的轉(zhuǎn)換必須同時(shí)滿足兩個(gè)條件:前級(jí)步為活動(dòng)步(Mi-1=1)和轉(zhuǎn)換條件滿足(Xi=1),所以用Mi-1和Xi的常開觸點(diǎn)串聯(lián)組成的電路來(lái)表示上述條件。兩個(gè)條件同時(shí)滿足時(shí),該電路接通時(shí),此時(shí)應(yīng)完成兩個(gè)操作:將后續(xù)步變?yōu)榛顒?dòng)步(用SET Mi指令將Mi置位)和將前級(jí)步變?yōu)椴换顒?dòng)步(用RST Mi-1 指令將Mi-1復(fù)位)。這種編程方式與轉(zhuǎn)換實(shí)現(xiàn)的基本規(guī)則之間有著嚴(yán)格的對(duì)應(yīng)關(guān)系,用它編制復(fù)雜的功能表圖的梯形圖時(shí),更能顯示出它的優(yōu)越性。
圖3 以轉(zhuǎn)換為中心的編程方式
如圖4所示為某信號(hào)燈控制系統(tǒng)的時(shí)序圖、功能表圖和梯形圖。初始步時(shí)僅紅燈亮,按下起動(dòng)按鈕X0,4s后紅燈滅、綠燈亮,6s后綠燈和黃燈亮,再過(guò)5s后綠燈和黃燈滅、紅燈亮。按時(shí)間的先后順序,將一個(gè)工作循環(huán)劃分為4步,并用定時(shí)器T0~T3來(lái)為3段時(shí)間定時(shí)。開始執(zhí)行用戶程序時(shí),用M8002的常開觸點(diǎn)將初始步M300置位。按下起動(dòng)按鈕X0后,梯形圖第2行中M300和X0的常開觸點(diǎn)均接通,轉(zhuǎn)換條件X0的后續(xù)步對(duì)應(yīng)的M301被置位,前級(jí)步對(duì)應(yīng)的輔助繼電器M300被復(fù)位。M301變?yōu)椤?”狀態(tài)后,控制Y0(紅燈)仍然為“l(fā)”狀態(tài),定時(shí)器T0的線圈通電,4s后T0的常開觸點(diǎn)接通,系統(tǒng)將由第2步轉(zhuǎn)換到第3步,依此類推。
圖4 某信號(hào)燈控制系統(tǒng)
a)時(shí)序圖 b)功能表圖 c)以轉(zhuǎn)換為中心編程的梯形圖
使用這種編程方式時(shí),不能將輸出繼電器的線圈與SET、RST指令并聯(lián),這是因?yàn)閳D4中前級(jí)步和轉(zhuǎn)換條件對(duì)應(yīng)的串聯(lián)電路接通的時(shí)間是相當(dāng)短的,轉(zhuǎn)換條件滿足后前級(jí)步馬上被復(fù)位,該串聯(lián)電路被斷開,而輸出繼電器線圈至少應(yīng)該在某一步活動(dòng)的全部時(shí)間內(nèi)接通。
3.使用STL指令的編程方式
許多PLC廠家都設(shè)計(jì)了專門用于編制順序控制程序的指令和編程元件,如美國(guó)GE公司和GOULD公司的鼓形控制器、日本東芝公司的步進(jìn)順序指令、三菱公司的步進(jìn)梯形指令等。
步進(jìn)梯形指令(Step Ladder Instruction)簡(jiǎn)稱為STL指令。FX系列就有STL指令及RET復(fù)位指令。利用這兩條指令,可以很方便地編制順序控制梯形圖程序。
FX2N系列PLC的狀態(tài)器S0~S9用于初始步,S10~S19用于返回原點(diǎn),S20~S499為通用狀態(tài),S500~S899有斷電保持功能,S900~S999用于報(bào)警。用它們編制順序控制程序時(shí),應(yīng)與步進(jìn)梯形指令一起使用。FX系列還有許多用于步進(jìn)順控編程的特殊輔助繼電器以及使?fàn)顟B(tài)初始化的功能指令I(lǐng)ST,使STL指令用于設(shè)計(jì)順序控制程序更加方便。
使用STL指令的狀態(tài)器的常開觸點(diǎn)稱為STL觸點(diǎn),它們?cè)谔菪螆D中的元件符號(hào)如圖5所示。圖中可以看出功能表圖與梯形圖之間的對(duì)應(yīng)關(guān)系,STL觸點(diǎn)驅(qū)動(dòng)的電路塊具有三個(gè)功能:對(duì)負(fù)載的驅(qū)動(dòng)處理、指定轉(zhuǎn)換條件和指定轉(zhuǎn)換目標(biāo)。
圖5 STL指令與功能表圖
除了后面要介紹的并行序列的合并對(duì)應(yīng)的梯形圖外,STL觸點(diǎn)是與左側(cè)母線相連的常開觸點(diǎn),當(dāng)某一步為活動(dòng)步時(shí),對(duì)應(yīng)的STL觸點(diǎn)接通,該步的負(fù)載被驅(qū)動(dòng)。當(dāng)該步后面的轉(zhuǎn)換條件滿足時(shí),轉(zhuǎn)換實(shí)現(xiàn),即后續(xù)步對(duì)應(yīng)的狀態(tài)器被SET指令置位,后續(xù)步變?yōu)榛顒?dòng)步,同時(shí)與前級(jí)步對(duì)應(yīng)的狀態(tài)器被系統(tǒng)程序自動(dòng)復(fù)位,前級(jí)步對(duì)應(yīng)的STL觸點(diǎn)斷開。
使用STL指令時(shí)應(yīng)該注意以下一些問(wèn)題:
1)與STL觸點(diǎn)相連的觸點(diǎn)應(yīng)使用LD或LDI指令,即LD點(diǎn)移到STL觸點(diǎn)的右側(cè),直到出現(xiàn)下一條STL指令或出現(xiàn)RET指令,RET指令使LD點(diǎn)返回左側(cè)母線。各個(gè)STL觸點(diǎn)驅(qū)動(dòng)的電路一般放在一起,最后一個(gè)電路結(jié)束時(shí)—定要使用RET指令。
2)STL觸點(diǎn)可以直接驅(qū)動(dòng)或通過(guò)別的觸點(diǎn)驅(qū)動(dòng)Y、M、S、T等元件的線圈,STL觸點(diǎn)也可以使Y、M、S等元件置位或復(fù)位。
3)STL觸點(diǎn)斷開時(shí),CPU不執(zhí)行它驅(qū)動(dòng)的電路塊,即CPU只執(zhí)行活動(dòng)步對(duì)應(yīng)的程序。在沒(méi)有并行序列時(shí),任何時(shí)候只有一個(gè)活動(dòng)步,因此大大縮短了掃描周期。
4)由于CPU只執(zhí)行活動(dòng)步對(duì)應(yīng)的電路塊,使用STL指令時(shí)允許雙線圈輸出,即同一元件的幾個(gè)線圈可以分別被不同的STL觸點(diǎn)驅(qū)動(dòng)。實(shí)際上在一個(gè)掃描周期內(nèi),同一元件的幾條OUT指令中只有一條被執(zhí)行。
5)STL指令只能用于狀態(tài)寄存器,在沒(méi)有并行序列時(shí),一個(gè)狀態(tài)寄存器的STL觸點(diǎn)在梯形圖中只能出現(xiàn)一次。
6)STL觸點(diǎn)驅(qū)動(dòng)的電路塊中不能使用MC和MCR指令,但是可以使用CJP和EJP指令。當(dāng)執(zhí)行CJP指令跳人某一STL觸點(diǎn)驅(qū)動(dòng)的電路塊時(shí),不管該STL觸點(diǎn)是否為“1”狀態(tài),均執(zhí)行對(duì)應(yīng)的EJP指令之后的電路。
7)與普通的輔助繼電器一樣,可以對(duì)狀態(tài)寄存器使用LD、LDI、AND、ANI、OR、ORI、SET、RST、OUT等指令,這時(shí)狀態(tài)器觸點(diǎn)的畫法與普通觸點(diǎn)的畫法相同。
8)使?fàn)顟B(tài)器置位的指令如果不在STL觸點(diǎn)驅(qū)動(dòng)的電路塊內(nèi),執(zhí)行置位指令時(shí)系統(tǒng)程序不會(huì)自動(dòng)將前級(jí)步對(duì)應(yīng)的狀態(tài)器復(fù)位。
如圖6所示小車一個(gè)周期內(nèi)的運(yùn)動(dòng)路線由4段組成,它們分別對(duì)應(yīng)于S31~S34所代表的4步,S0代表初始步。
圖6 小車控制系統(tǒng)功能表圖與梯形圖
假設(shè)小車位于原點(diǎn)(最左端),系統(tǒng)處于初始步,S0為“1”狀態(tài)。按下起動(dòng)按鈕X4,系統(tǒng)由初始步S0轉(zhuǎn)換到步S31。S31的STL觸點(diǎn)接通,Y0的線圈“通電”,小車右行,行至最右端時(shí),限位開關(guān)X3接通,使S32置位,S31被系統(tǒng)程序自動(dòng)置為“0”狀態(tài),小車變?yōu)樽笮校≤噷⑦@樣一步一步地順序工作下去,最后返回起始點(diǎn),并停留在初始步。圖6中的梯形圖對(duì)應(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<指令的編程方式
對(duì)于沒(méi)有STL指令的PLC,也可以仿照STL指令的設(shè)計(jì)思路來(lái)設(shè)計(jì)順序控制梯形圖,這就是下面要介紹的仿STL指令的編程方式。
如圖7所示為某加熱爐送料系統(tǒng)的功能表圖與梯形圖。除初始步外,各步的動(dòng)作分別為開爐門、推料、推料機(jī)返回和關(guān)爐門,分別用Y0、Y1、Y2、Y3驅(qū)動(dòng)動(dòng)作。X0<是起動(dòng)按鈕,X1~X4分別是各動(dòng)作結(jié)束的限位開關(guān)。與左側(cè)母線相連的M300~M304的觸點(diǎn),其作用與STL觸點(diǎn)相似,它右邊的電路塊的作用為驅(qū)動(dòng)負(fù)載、指定轉(zhuǎn)換條件和轉(zhuǎn)換目標(biāo),以及使前級(jí)步的輔助繼電器復(fù)位。
圖7 加熱爐送料系統(tǒng)的功能表圖與梯形圖
由于這種編程方式用輔助繼電器代替狀態(tài)器,用普通的常開觸點(diǎn)代替STL觸點(diǎn),因此,與使用STL指令的編程方式相比,有以下的不同之處:
1)與代替STL觸點(diǎn)的常開觸點(diǎn)(如圖5-33中M300~M304的常開觸點(diǎn))相連的觸點(diǎn),應(yīng)使用AND或ANI指令,而不是LD或LDI指令。
2)在梯形圖中用RST指令來(lái)完成代表前級(jí)步的輔助繼電器的復(fù)位,而不是由系統(tǒng)程序自動(dòng)完成。
3)不允許出現(xiàn)雙線圈現(xiàn)象,當(dāng)某一輸出繼電器在幾步中均為“1”狀態(tài)時(shí),應(yīng)將代表這幾步的輔助繼電器常開觸點(diǎn)并聯(lián)來(lái)控制該輸出繼電器的線圈。