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