1、什么是流程
所謂單流程,是指狀態(tài)轉(zhuǎn)移只可能有一種順序。上個模塊介紹的臺車自動往返的控制過程只有一種順序: S0→S20→S21→S22→S23→S24→S0,沒有其他可能,所以叫單流程。
當(dāng)然,現(xiàn)實當(dāng)中并非所有的順序控制均為一種順序。含多種路徑的叫分支流程。本模塊即為并聯(lián)分支流程。
2、單流程狀態(tài)轉(zhuǎn)移圖的編程方法
a 狀態(tài)轉(zhuǎn)移圖的編程方法
(1)狀態(tài)的三要素 對狀態(tài)轉(zhuǎn)移圖進(jìn)行編程,不僅是使用STL,RET指令的問題,還要搞清楚狀態(tài)的特性及要素。
狀態(tài)轉(zhuǎn)移圖中的狀態(tài)有驅(qū)動負(fù)載、指定轉(zhuǎn)移目標(biāo)和指定轉(zhuǎn)移條件三個要素。其中指定轉(zhuǎn)移目標(biāo)和指定轉(zhuǎn)移條件是必不可少,而驅(qū)動負(fù)載則視具體情況,也可能不進(jìn)行實際的負(fù)載驅(qū)動。圖 5及圖6說明了狀態(tài)轉(zhuǎn)移圖和梯形圖的對應(yīng)關(guān)系。其中Y5為其驅(qū)動的負(fù)載,S21為其轉(zhuǎn)移目標(biāo),X3為其轉(zhuǎn)移條件。
圖 5狀態(tài)轉(zhuǎn)移圖SFC 圖6狀態(tài)梯形圖STL
(2)狀態(tài)轉(zhuǎn)移圖的編程方法 步進(jìn)順控的編程原則為:先進(jìn)行負(fù)載驅(qū)動處理,然后進(jìn)行狀態(tài)轉(zhuǎn)移處理。
圖 5的程序如下:
STL S20 使用STL指令
OUT Y5 進(jìn)行負(fù)載驅(qū)動處理
LD X3 轉(zhuǎn)移條件
SET X21 進(jìn)行轉(zhuǎn)移處理
從程序可看到,負(fù)載驅(qū)動及轉(zhuǎn)移處理,首先要使用 STL指令,這樣保證負(fù)載驅(qū)動和狀態(tài)轉(zhuǎn)均是在自母線上進(jìn)行。狀態(tài)的轉(zhuǎn)移使用SET指令,但若為向上緩役、向相連的下游轉(zhuǎn)移或向其他流程轉(zhuǎn)移,稱為順序不連續(xù)轉(zhuǎn)移,非連續(xù)轉(zhuǎn)移不能使用SET指令,而用OUT指令。如圖7所示。
b 狀態(tài)的開啟與關(guān)閉及狀態(tài)轉(zhuǎn)移圖執(zhí)行的特點
STL指令的含意是提供一個步進(jìn)接點,其對應(yīng)狀態(tài)的三個要素均在步進(jìn)接點之后的子母線上實現(xiàn)。若對應(yīng)的狀態(tài)是開啟的(即“激活”),則狀態(tài)的負(fù)載驅(qū)動和轉(zhuǎn)移才有可能。若對應(yīng)狀態(tài)是關(guān)閉的,則負(fù)載驅(qū)動和狀態(tài)轉(zhuǎn)移就不可能發(fā)生。因此,除初始狀態(tài)外,其他所有狀態(tài)只有在其前一個狀態(tài)處于激活切轉(zhuǎn)移條件成立時才能開啟。同時一旦下一個狀態(tài)被“激活”,上一個狀態(tài)會自動關(guān)閉。從PLC程序的循環(huán)掃描執(zhí)行原理出發(fā),在狀態(tài)編程程序段落中,所謂“激活”可以理解為該段程序被掃描執(zhí)行。而“關(guān)閉”則可以理解為該段程序被跳過,未能掃描執(zhí)行。這樣,狀態(tài)轉(zhuǎn)移圖的分析就變得條理十分清楚,無需考慮狀態(tài)時間的繁雜聯(lián)鎖關(guān)系,可以理解為:“只干自己需要干的事,無需考慮其他”。
另外,這也方便程序的閱讀理解,使程序的試運行、調(diào)試、故障檢查與排除變得非常容易,這就是運用狀態(tài)編程思想解決順控問題的優(yōu)點。
c 編程要點及注意事項

(a) (b) (c)
圖 7 非連續(xù)轉(zhuǎn)移狀態(tài)轉(zhuǎn)移圖
(1) 狀態(tài)編程順序為:先進(jìn)行驅(qū)動,再進(jìn)行轉(zhuǎn)移,不能顛倒。
(2) 對狀態(tài)處理,編程時必須使用步進(jìn)接點指令STL。
(3) 程序的最后必須使用步進(jìn)返回指令RET,返回主母線。
(4) 驅(qū)動負(fù)載使用OUT指令。當(dāng)同一負(fù)載需要連續(xù)多個狀態(tài)驅(qū)動,可使用多重輸出,也可使用STL指令將負(fù)載置位,等到負(fù)載不需驅(qū)動時用RST指令將其復(fù)位。在狀態(tài)程序中,不同時“激活”的“雙線圈”是允許的。另外相鄰狀態(tài)使用的T、C元件,編號不能相同。
(5) 負(fù)載的驅(qū)動、狀態(tài)轉(zhuǎn)移條件可能為多個元件的邏輯組合,視具體情況,按串、并聯(lián)關(guān)系處理,不遺漏。
(6) 若為順序不連續(xù)轉(zhuǎn)移,不能使用SET指令進(jìn)行狀態(tài)轉(zhuǎn)移,應(yīng)改用OUT指令進(jìn)行狀態(tài)轉(zhuǎn)移。
(7) 在STL與RET指令之間不能使用MC、MCR指令。
(8) 初始狀態(tài)可由其他狀態(tài)驅(qū)動,但運行開始必須用其他方法預(yù)先作好驅(qū)動,否則狀態(tài)流程不可能向下進(jìn)行。一般用系統(tǒng)的初始條件,若無初始條件,可用M8002(PLC從STOP→RUN切換時的初始脈沖)進(jìn)行驅(qū)動。
需在停電恢復(fù)后繼續(xù)原狀態(tài)運行時,可使用 S500→S899停電保持狀態(tài)元件。










