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