上篇文章講述了什麼是順序功能圖(SFC),這次我們接著學習與其相關的步進指令和步進梯形圖吧!
所謂「步進」,顧名思義,其實就是狀態步的前進,即狀態步的順序執行,一步一步地往下走,直到整個順序控制程序執行完畢(個人理解,但我覺得非常有道理哈哈)。
步進梯形圖指令STL、RET
步進梯形圖指令包含步進指令STL和步進返回指令RET,在同一SFC的梯形圖中缺一不可,如圖19-1所示為它們的梯形圖形式。看到這種成對出現的指令,大家是不是覺得似曾相識?
其實在之前的文章中也出現過許多這種形影不離的指令對,如子程序調用指令(CALL、SRET)、循環指令(FOR、NEXT)等,但STL指令和RET指令和這些成對的指令有所不同,什麼?你問我哪裡不同?
別急,我們接著往下看。
STL指令和RET指令均無驅動條件,STL指令的適用軟元件為狀態繼電器S,如圖19-1中的S20,表示S20狀態步的開始,有多少個狀態步就有多少個STL,而RET指令在一個梯步進形圖只出現一次,而且是在步進梯形圖的結尾,表示步進梯形圖的結束。
所以,知道STL指令、RET指令與上文所提的子程序調用指令、循環指令等的區別了嗎?
簡單來說,雖然STL、RET指令在同一SFC的梯形圖中缺一不可,但STL指令可以多次出現,而RET指令只出現一次,如下圖19-2所示。
狀態的轉移指令SET、OUT
前面說到,有多少個狀態步就有多少個STL,那狀態步與狀態步之間的轉移條件與轉移方向又是怎樣實現的呢?
這就用到另外兩個指令了,那就是SET指令和OUT指令。SET指令和OUT指令都具有同樣的功能,就是自動復位上一個狀態,同時激活下一個狀態,但OUT指令是用於向分離的狀態轉移,至於什麼是分離的狀態,大家可以看上一篇的文章哦。
SET指令用於同一個SFC的梯形圖中實現各個狀態步之間的各種轉移,如圖19-3所示,其中STL與SET之間為狀態步的命令與動作,如SLT S20與SET S30之間的省略號部分內容。
轉移條件為X1的接通,轉移方向為SET所帶的狀態繼電器編號,如SET S30中的S30。
上篇文章提到,轉移條件不一定是單個觸點,也可以是一段程序,顯然,程序也被包含在省略號中了。
相關軟元件
與SFC的梯形圖有關的軟元件包括狀態繼電器S和部分特殊輔助繼電器M,下圖19-4所示為相關狀態繼電器的編號與功能,這在上一篇文章也有提及。
相關特殊輔助繼電器編號與功能在編程手冊的截圖如下圖19-5所示,各特殊繼電器的含義也寫得很詳細了,所示我在這裡也不再過多解釋。
不過M8000和M8002不僅是在SFC的梯形圖中被用到,在大多數梯形圖中,它們的身影也是很常見的。
看到這裡,結合上篇文章,我相信大家對於SFC的梯形圖也有了比較清晰的了解,圖19-6就是一個簡單的SFC的梯形圖示例。
這裡我就稍微考考大家好了,有哪位小可愛可以根據這個梯形圖畫出SFC嗎?當然啦,畫不出也沒關係,因為在編程軟體中,本就具有將梯形圖轉SFC或將SFC轉梯形圖的功能。
咦?好像有什麼不得了的東西混進來了!沒錯,就是在編程軟體中,本來就可以直接編寫SFC,然後讓軟體自動將SFC轉換為梯形圖。
這裡可能又有讀者提問了,那在編程軟體中怎麼編寫SFC圖呢?
編程軟體中的SFC圖
首先,編程軟體中怎麼編寫SFC圖我在和就不詳細講解了,因為那是軟體使用的問題,大家感興趣的可以看對應課程,因為只是操作問題,相信大家看一遍也就會了。我在這裡就針對幾點重點內容簡單講一下即可。
圖19-6所示為SFC的梯形圖的示例,其中開頭部分為初始化梯形圖塊,在SFC編程模式下直接獨立為一塊,因為它的編寫跟普通梯形圖一樣,如下圖19-7所示。
圖19-6中的STL S0 直至RET之間的梯形圖,在SFC編程模式下就以SFC塊的形式編寫,一個狀態步為一個SFC塊,例如S0狀態步中的程序段正如下圖19-8所示。
轉移條件雖然可以是程序段,但其在SFC圖中用短橫線表示的部分編寫基本是單個觸點或幾個觸點的串並聯組合,如下圖19-9所示,用於驅動轉移指令TRAN。
顯然,在SFC編程模式下,沒有用到STL指令和RET指,而且結構清晰明了,各個狀態步獨立編寫,非常有利於我們對順控程序進行設計和分析。
溫馨提示:如果你沒有用過編程軟體是嘗試編寫一下,那麼這部分的內容,你可能會完全看不懂喲。所以,大家非常有必要裝一個軟體玩一玩。
步進梯形圖中的相關注意事項
(1)輸出驅動的保持性
當狀態步內有驅動輸出時,一旦狀態發生轉移,該驅動輸出就會隨著其狀態步的復位而被復位。除非它用SET指令進行保持,在此情況下,即使所處狀態已經復位,該驅動輸出仍保持為ON。
如下圖19-10所示,S20狀態向S30狀態轉移時,Y0被復位為OFF,而Y1保持為ON。
(2)雙線圈輸出的處理
在普通梯形圖中,同一輸出繼電器線圈不能重複使用,但在SFC中卻可以,只要該輸出繼電器線圈處在不同狀態步中即可,但不建議使用重複線圈編程。
另外,對定時繼電器也可以使用重複編號,但在兩個狀態步之間的轉移時間為一個掃描周期,在該掃描周期內這兩個狀態步同時處於激活狀態。
所以,同一編號的定時繼電器不能出現在相鄰狀態步中,如下圖19-11所示。
(3)輸出驅動的互鎖
由於在狀態轉移的一個掃描周期內,兩個狀態同時處於激活狀態,所以對某些不能同時接通的輸出驅動,有必要設置互鎖環節,如下圖19-12所示,兩個狀態步中的Y1與Y2互鎖。
(4)狀態內指令的應用
對於無觸點的驅動輸出應先編寫,如下圖19-13所示,Y0、Y1均無觸點驅動,應放在前面先編寫。
另外,在每一個STL指令與SET指令之間的程序段,只有首行與左母線相連,對應在SFC編程模式下的每個狀態步內,也是只有首行與左母線相連。
圖19-13
說到這個首行與左母線相連的問題,我在聽課的時候聽到這個,就趕緊用編程軟體試了一下。你不是說只能首行嘛,那我就偏偏把每一行都與左母線相連,然後發現無法編譯,尷尬……
說到步進指令,就不得不提那個非常典型的案例了,就是電動機的順序啟動和逆序停下案例。如有4臺電動機,按下啟動按鈕,按每隔3秒時間順序啟動;按下停止按鈕,按每隔4秒時間逆序停止,其梯形圖如下圖19-14所示。
至此,本次關於步進指令與其梯形圖的學習分享已結束!
註:本文章內容都是基於三菱FX PLC 2N所寫
選自《三菱FX系列PLC順序控制應用》第二章第5~6課時
(技成培訓網原創,作者:楊思慧,未經授權不得轉載,違者必究)