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