1、什么是流程
所謂單流程,是指狀態轉移只可能有一種順序。上個模塊介紹的臺車自動往返的控制過程只有一種順序: S0→S20→S21→S22→S23→S24→S0,沒有其他可能,所以叫單流程。
當然,現實當中并非所有的順序控制均為一種順序。含多種路徑的叫分支流程。本模塊即為并聯分支流程。
2、單流程狀態轉移圖的編程方法
a 狀態轉移圖的編程方法
(1)狀態的三要素 對狀態轉移圖進行編程,不僅是使用STL,RET指令的問題,還要搞清楚狀態的特性及要素。
狀態轉移圖中的狀態有驅動負載、指定轉移目標和指定轉移條件三個要素。其中指定轉移目標和指定轉移條件是必不可少,而驅動負載則視具體情況,也可能不進行實際的負載驅動。圖 5及圖6說明了狀態轉移圖和梯形圖的對應關系。其中Y5為其驅動的負載,S21為其轉移目標,X3為其轉移條件。
(2)狀態轉移圖的編程方法 步進順控的編程原則為:先進行負載驅動處理,然后進行狀態轉移處理。
圖 5的程序如下:
STL |
S20 |
使用STL指令 |
OUT |
Y5 |
進行負載驅動處理 |
LD |
X3 |
轉移條件 |
SET |
X21 |
進行轉移處理 |
從程序可看到,負載驅動及轉移處理,首先要使用 STL指令,這樣保證負載驅動和狀態轉均是在自母線上進行。狀態的轉移使用SET指令,但若為向上緩役、向相連的下游轉移或向其他流程轉移,稱為順序不連續轉移,非連續轉移不能使用SET指令,而用OUT指令。如圖7所示。
b 狀態的開啟與關閉及狀態轉移圖執行的特點
STL指令的含意是提供一個步進接點,其對應狀態的三個要素均在步進接點之后的子母線上實現。若對應的狀態是開啟的(即“激活”),則狀態的負載驅動和轉移才有可能。若對應狀態是關閉的,則負載驅動和狀態轉移就不可能發生。因此,除初始狀態外,其他所有狀態只有在其前一個狀態處于激活切轉移條件成立時才能開啟。同時一旦下一個狀態被“激活”,上一個狀態會自動關閉。從PLC程序的循環掃描執行原理出發,在狀態編程程序段落中,所謂“激活”可以理解為該段程序被掃描執行。而“關閉”則可以理解為該段程序被跳過,未能掃描執行。這樣,狀態轉移圖的分析就變得條理十分清楚,無需考慮狀態時間的繁雜聯鎖關系,可以理解為:“只干自己需要干的事,無需考慮其他”。
另外,這也方便程序的閱讀理解,使程序的試運行、調試、故障檢查與排除變得非常容易,這就是運用狀態編程思想解決順控問題的優點。
[NextPage]
c 編程要點及注意事項
圖 7 非連續轉移狀態轉移圖
(1) 狀態編程順序為:先進行驅動,再進行轉移,不能顛倒。
(2) 對狀態處理,編程時必須使用步進接點指令STL。
(3) 程序的最后必須使用步進返回指令RET,返回主母線。
(4) 驅動負載使用OUT指令。當同一負載需要連續多個狀態驅動,可使用多重輸出,也可使用STL指令將負載置位,等到負載不需驅動時用RST指令將其復位。在狀態程序中,不同時“激活”的“雙線圈”是允許的。另外相鄰狀態使用的T、C元件,編號不能相同。
(5) 負載的驅動、狀態轉移條件可能為多個元件的邏輯組合,視具體情況,按串、并聯關系處理,不遺漏。
(6) 若為順序不連續轉移,不能使用SET指令進行狀態轉移,應改用OUT指令進行狀態轉移。
(7) 在STL與RET指令之間不能使用MC、MCR指令。
(8) 初始狀態可由其他狀態驅動,但運行開始必須用其他方法預先作好驅動,否則狀態流程不可能向下進行。一般用系統的初始條件,若無初始條件,可用M8002(PLC從STOP→RUN切換時的初始脈沖)進行驅動。
需在停電恢復后繼續原狀態運行時,可使用 S500→S899停電保持狀態元件。