一、單流程狀態(tài)轉(zhuǎn)移圖的編程
(一)什么是單流程
所謂單流程,是指狀態(tài)轉(zhuǎn)移只可能有一種順序。例如臺(tái)車自動(dòng)往返的控制過程只有一種順序:S0→S20→S21→S22→S23→S24→S0,沒有其他可能,所以叫單流程。
(二)單流程狀態(tài)轉(zhuǎn)移圖的編程方法
1.狀態(tài)的三要素
狀態(tài)轉(zhuǎn)移圖中的狀態(tài)三要素是指驅(qū)動(dòng)、狀態(tài)轉(zhuǎn)移條件和狀態(tài)轉(zhuǎn)移方向三個(gè)要素。其中指定狀態(tài)轉(zhuǎn)移條件和狀態(tài)轉(zhuǎn)移方向是不可缺少的。
表達(dá)本狀態(tài)的工作任務(wù)(負(fù)載驅(qū)動(dòng))時(shí)可以使用OUT指令也可以使用SET指令。
OUT指令和SET指令的區(qū)別:OUT指令驅(qū)動(dòng)的輸出在本狀態(tài)關(guān)閉后自動(dòng)關(guān)閉,使用SET指令驅(qū)動(dòng)的輸出可保持到其他狀態(tài)執(zhí)行,直到在程序的別的地方使用RST指令使其復(fù)位。
狀態(tài)三要素
2.狀態(tài)轉(zhuǎn)移圖的編程方法
步進(jìn)順控指令的編程原則:先進(jìn)行驅(qū)動(dòng)處理,然后進(jìn)行狀態(tài)轉(zhuǎn)移處理。狀態(tài)轉(zhuǎn)移處理就是根據(jù)轉(zhuǎn)移方向和轉(zhuǎn)移條件實(shí)現(xiàn)向下一個(gè)狀態(tài)的轉(zhuǎn)移。
步進(jìn)順控指令的編程原則
二、編程要點(diǎn)和注意事項(xiàng)
(1) 對(duì)狀態(tài)進(jìn)行編程處理,必須使用步進(jìn)接點(diǎn)指令STL,它表示這些處理(包括驅(qū)動(dòng)、轉(zhuǎn)移)均在該狀態(tài)接點(diǎn)形成的子母線上進(jìn)行。
(2)與STL步進(jìn)接點(diǎn)相連的觸點(diǎn)應(yīng)使用LD或LDI指令,下一條STL指令的出現(xiàn)意味著當(dāng)前STL程序區(qū)的結(jié)束和新的STL程序區(qū)的開始。
RET指令意味著整個(gè)STL程序區(qū)的結(jié)束,LD點(diǎn)返回左側(cè)母線。每個(gè)STL步進(jìn)接點(diǎn)驅(qū)動(dòng)的電路一般放在一起,最后一個(gè)STL電路結(jié)束時(shí)(即步進(jìn)程序的最后),一定要使用RET指令,否則將出現(xiàn)“程序語法錯(cuò)誤”信息,PLC不能執(zhí)行用戶程序。
(3)狀態(tài)編程順序?yàn)椋合冗M(jìn)行驅(qū)動(dòng)處理,再進(jìn)行轉(zhuǎn)移處理,不能顛倒。驅(qū)動(dòng)處理就是該狀態(tài)的輸出處理,轉(zhuǎn)移處理就是根據(jù)轉(zhuǎn)移方向和轉(zhuǎn)移條件實(shí)現(xiàn)下一個(gè)狀態(tài)的轉(zhuǎn)移。
(4)初始狀態(tài)可由其他狀態(tài)驅(qū)動(dòng),但運(yùn)行開始時(shí),必須用其他方法預(yù)先作好驅(qū)動(dòng),否則狀態(tài)流程不可能向下進(jìn)行。一般用控制系統(tǒng)的初始條件,若無初始條件,可用M8002或M8000進(jìn)行驅(qū)動(dòng)。
M8002是一個(gè)初始脈沖,它只在PLC運(yùn)行開關(guān)由STOP→RUN時(shí)有電一個(gè)掃描周期,故初始狀態(tài)S0就只被它“激活”一次,因此,初始狀態(tài)S0就只有初始復(fù)位的功能。M8000是運(yùn)行監(jiān)視,它在PLC的運(yùn)行開關(guān)由STOP→RUN后一直有電,直到PLC停電或PLC的運(yùn)行開關(guān)由RUN→STOP,故初始狀態(tài)S0就一直處在被“激活”的狀態(tài)。有的時(shí)候還用其他觸點(diǎn)進(jìn)行組合來驅(qū)動(dòng)S0。
(5)STL步進(jìn)接點(diǎn)可以直接驅(qū)動(dòng)或通過別的觸點(diǎn)驅(qū)動(dòng)Y、M、S、T等元件的線圈和應(yīng)用指令。驅(qū)動(dòng)負(fù)載使用OUT指令時(shí),若同一負(fù)載需要連續(xù)在多個(gè)狀態(tài)下驅(qū)動(dòng),則可在各個(gè)狀態(tài)下分別輸出,也可以使用SET指令將負(fù)載置位,等到負(fù)載不需要驅(qū)動(dòng)時(shí),用RST指令將其復(fù)位。負(fù)載的驅(qū)動(dòng)或狀態(tài)轉(zhuǎn)移的條件也可能是多個(gè),要視其具體邏輯關(guān)系,將其進(jìn)行串、并聯(lián)組合。
單流程狀態(tài)轉(zhuǎn)移圖及指令表
(6)若為順序不連續(xù)轉(zhuǎn)移(即跳轉(zhuǎn)),不能使用SET指令進(jìn)行狀態(tài)轉(zhuǎn)移,應(yīng)改用OUT指令進(jìn)行狀態(tài)轉(zhuǎn)移。
非連續(xù)轉(zhuǎn)移狀態(tài)轉(zhuǎn)移圖
(7)由于CPU只執(zhí)行活動(dòng)步對(duì)應(yīng)的電路塊,因此,使用STL指令時(shí)允許雙線圈輸出,即不同的STL觸點(diǎn)可以驅(qū)動(dòng)同一軟元件的線圈,但是同一軟元件的線圈不能在同時(shí)為活動(dòng)步的STL區(qū)內(nèi)出現(xiàn)。在有并行流程的狀態(tài)轉(zhuǎn)移圖中,應(yīng)特別注意這一問題。另外,狀態(tài)軟元件S在狀態(tài)轉(zhuǎn)移圖中不能重復(fù)使用,否則會(huì)引起程序執(zhí)行錯(cuò)誤。
(8)在步的活動(dòng)狀態(tài)的轉(zhuǎn)移過程中,相鄰兩步的狀態(tài)繼電器會(huì)同時(shí)ON一個(gè)掃描周期,可能會(huì)引發(fā)瞬時(shí)的雙線圈問題。所以,要特別注意如下兩個(gè)問題:
一是定時(shí)器在下一次運(yùn)行之前,應(yīng)將它的線圈“斷電”復(fù)位后才能開始下一次的運(yùn)行,否則將導(dǎo)致定時(shí)器的非正常運(yùn)行。所以,同一定時(shí)器的線圈可以在不同的步使用,但是同一定時(shí)器的線圈不可以在相鄰的步使用。若同一定時(shí)器的線圈用于相鄰的兩步,在步的活動(dòng)狀態(tài)轉(zhuǎn)移時(shí),該定時(shí)器的線圈還沒有來得及斷開,又被下一活動(dòng)步起動(dòng)并開始計(jì)時(shí),這樣,導(dǎo)致定時(shí)器的當(dāng)前值不能復(fù)位,從而導(dǎo)致定時(shí)器的非正常運(yùn)行。
二是為了避免不能同時(shí)接通的兩個(gè)輸出(如控制異步電動(dòng)機(jī)正反轉(zhuǎn)的交流接觸器線圈)同時(shí)動(dòng)作,除了在梯形圖中設(shè)置軟件互鎖電路外,還應(yīng)在PLC外部設(shè)置由常閉觸點(diǎn)組成的硬件互鎖電路。
(9)并行流程或選擇流程中每一分支狀態(tài)的支路數(shù)不能超過8條,總的支路數(shù)不能超過16條。
(10)STL步進(jìn)接點(diǎn)右邊不能緊跟著使用MPS指令。STL指令不能與MC、MCR指令一起使用。在FOR、NEXT結(jié)構(gòu)中、子程序和中斷程序中,不能有STL程序塊,但STL程序塊中可允許使用最多4級(jí)嵌套的FOR、NEXT指令。雖然并不禁止在STL步進(jìn)接點(diǎn)驅(qū)動(dòng)的電路塊中使用CJ指令,但是為了不引起附加的和不必要的程序流程混亂,建議不要在STL程序中使用跳轉(zhuǎn)指令。
(11)需要在停電恢復(fù)后繼續(xù)維持停電前的運(yùn)行狀態(tài)時(shí),可使用S500~S899停電保持狀態(tài)繼電器。










