復雜的控制系統不僅I/O 點數多, 順序功能圖一般也相當復雜, 除了常見的單序列外, 還有選擇序列、并行序列、跳步以及循環控制等。在PLC的編程過程中, 編程人員必須格外小心, 否則很容易出錯。PLC 的編程方式也多種多樣, 在對順序控制編程時, 常采用步進指令。步進指令屬于專用指令, 有些類型的PLC 提供了這種指令, 而有些卻沒有提供。不同類型PLC 的步進指令表示也不同, 不能通用。但所有類型的PLC 都提供了基本邏輯指令, 用這些指令也可以很方便地編寫順序控制的程序。用起保停電路設計的梯形圖程序, 通用性強, 可以用于任意一種型號的PLC。利用起保停電路對單序列控制系統的編程許多教科書上已做了較詳細的分析介紹, 在此不再討論。下面我們以三菱公司FX 系列PLC 為例, 介紹幾種復雜控制系統的編程。
1 起保停電路
起保停電路實際上是沿用了繼電器- 接觸器控制電路中的自鎖電路。因為在順序控制中很多轉換條件都是短信號(如按鈕、行程開關等) , 為了保證后續步能被可靠激活, 應使用有記憶功能的電路來控制代表步的輔助繼電器。而起保停電路的保持功能就可實現這種控制。
假設M 1、M 2 和M 3 是順序相連的3 步, X1、X2 是其相應的轉換條件, 如圖1 所示。設計起保停電路的關鍵是找出它的起動條件和停止條件。根據轉換實現的基本規則, 只有當前級步為活動步且轉換條件滿足, 則相應的后續步被置為活動步。同時, 前級步自身被置為不活動步。即, 當M 1為活動步且X1= 1, 則M 2 為活動步。當M 2 和X2均為1, 則M 3 變為活動步,M 2 變為不活動步。故,用M 1 和X1 的常開觸點串聯作為M 2 的起動條件, 用M 3 的常閉觸點與M 2 線圈串聯作為M 2 的停止條件, 其梯形圖如圖2。所以, 寫成邏輯表達式為:
根據這種編程方式和順序功能圖, 很容易設計出梯形圖程序。
2 選擇序列的編程方式
圖3 是具有選擇序列的順序功能圖。在設計梯形圖程序時, 關鍵是處理好選擇序列的分支與合并。在步M 20 后有一選擇序列分支, 設步M 20為活動步, 當后續步M 21 或M 23 變為活動步時,它都應變為不活動步。所以, 應將M 21 和M 23 的常閉觸點串聯作為M 20 的停止條件。
如果某一步后面有一個N 條分支組成的選擇序列, 該步可能轉換到N 個后續步中的任意一步,故應將N 個后續步對應的輔助繼電器的常閉觸點與該步的線圈串聯, 作為該步的停止條件。同理,在選擇序列合并時, 如果某一步之前有N 個轉換,則任意一個轉換滿足該步都將成為活動步。故該步的起動條件應為N 條支路并聯, 各條支路都由其對應的前級步的輔助繼電器的常開觸點與相應轉換條件對應的觸點串聯而成。
如上述順序功能圖中的步M 22, 其起動條件為M 21·X1+ M 23·X4。根據該原則, 可編制出與上述順序功能圖相對應的梯形圖程序, 如圖4。
3 并行序列的編程方式
并行序列的編程也需要處理好分支與合并。如圖5 所示,M 30 后為一并行序列的分支。當M 30為活動步且X0= 1 時,M 31、M 34 將同時被置為活動步,M 30 變為不活動步。故可用M 30 和X0 的常開觸點串聯作為M 31、M 34 的起動條件, 而在M 31 和M 34 中任取一個常閉觸點作為M 30 的停止條件。在M 33 前是并行序列的合并, 當M 32、M 35 都為活動步, 且X2= 1 時,M 33 被置為活動步, 故可將M 32、M 35、X2 的常開觸點串聯作為M 33 的起動條件。其對應的梯形圖如圖6。
4 具有跳步和循環控制環節的編程方式
圖7 為某專用銑床工作臺運動的順序功能圖, 用于銑削圓盤狀零件上均勻分度的8 個槽。工作過程為: 快速進給X1工作進給(銑削一個槽)X4工件旋轉45°X6分度缸返回X7反向進給(再銑削一個槽)X3工件旋轉45°X6分度缸返回X7又進入工作進給。如此循環, 銑削完8 個槽C0快退工作臺返回原位, 松開工件。
從順序功能圖中可看出, 由步M 43、M 44、M 45、M 46、M 47、M 48 構成循環, 循環次數為4。在設計梯形圖程序時, 可用計數器(C0) 來控制循環次數。它的設定值等于循環次數4, 每執行一次循環, 在步M 46 中使C0 的當前值加1, 這一操作是用M 46 的常開觸點去驅動C0 的線圈(相當于計數脈沖輸入) 來實現的, 當步M 46 變為活動步時, 其常開觸點閉合, C0 的當前值加1。當C0 的當前值為4 時, 循環結束。判別時可用C0 的觸頭與該步的轉換條件X3 的觸點串聯, 作為選擇的條件。當循環次數不等于4 時, C0= 0, C0= 1; 當X3= 1 時,X3·C0= 1, 而,X3·C0= 0 選擇繼續循環。當循環次數等于4 時, C0= 1, C0= 0; 當X3= 1 時, X3.C0= 0, X3·C0= 1, 跳出循環, 轉入步M 50。
在循環程序執行之前或執行完畢后, 應將控制循環的計數器復位, 使當前值恢復為0。復位操作應放在循環之外, 在圖中可用M 50 的常開觸點使C0 復位。
跳步的程序設計與選擇序列的分支、合并的程序設計方法一致。根據上述設計方法設計的梯形圖程序如圖8 所示。
5 結束語
使用起保停電路編程方法簡單、易寫、有規律, 且通用性強, 對不同類型的PLC 只需改變軟元件編號, 而無需更改程序就可以運行。故實用性較強。
在編程過程中還需要注意, 這種編程方式不允許雙線圈輸出, 即同一元件的線圈只能在梯形圖中出現一次, 如果某一輸出繼電器在幾步中都為1 狀態, 則只能用相應的代表各步的輔助繼電器的常開觸點并聯去驅動這一輸出繼電器的線圈。