順序控制繼電器SCR( Sequence Control Relay)指令對于一個復雜的控制系統,尤其是順序控制程序,由于內部的連鎖、互動關系極其復雜,用梯形圖或語句表方式編寫通常要由熟練的電氣工程師才能編制,這樣的程序如果不加注釋,其程序的可讀性會大大降低,也為調試、試運行帶來困難。
近年來,許多PLC增加了順序控制指令,用于編制復雜的順序控制程序,利用這種方法,使初學者也很容易編寫復雜的順序控制程序。這種方法也為調試、運行帶來許多難以言傳的方便。
西門子plc S7-200 CPU含有256個順序控制繼電器(S0.0~S31.7)用于順序控制,在順序控制或步進控制中,常常將控制過程分成若干個順序控制繼電器( SCR)段,一個SCR段有時也稱為一個控制功能步,簡稱步。每個SCR都是一個相對穩定的狀態,都有段開始,段轉移,段結束。在S7-200中,有3條簡單的SCR指令與之對應。
1)順序控制指令
①段開始指令LSCR( Load Sequence Control Relay)。段開始指令的功能是標記一個SCR段(或一個步)的開始,其操作數是狀態繼電器Sx.y(范圍為:S0.0~S31.7),Sx.y是當前SCR段的標志位,當Sx.y為1時,允許該SCR段工作。
②段轉移指令SCRT( Sequence Control Relay Transition)。段轉移指令的功能是將當前的SCR段切換到下一個SCR段,其操作數是下一個SCR段的標志位Sx.y(如S0.1)。當允許輸入有效時,進行切換,即停止當前SCR段工作(復位),啟動下一個SCR段工作(置位)。
③段結束指令SCRE( Sequece Control Relay End)。段結束指令的功能是標記一個SCR段(或一個步)的結束。段結束指令和段開始指令必須成對出現,否則無法下載程序。
順序控制指令的格式如圖4-64所示。
圖4-64 順序控制指令
2) SCR指令的特點
①SCR指令的操作數(或編程元件)只能是狀態繼電器Sx.y;反之,狀態繼電器S可應用的指令并不僅限于SCR,它還可以應用LD、LNN、A、AN、O、ON、=、S、R等指令。
②1個狀態繼電器Sx.y作為SCR段標志位,可以用于主程序、子程序或者中斷程序中,但是只能使用1次,不能重復使用。
③在一個SCR段中,禁止使用循環指令FOR/NEXT、跳轉指令JMP/LBL和條件結束指令END。
3)狀態流程圖。狀態流程圖是用狀態繼電器(即S繼電器)代表工程中的工序,一個工序的任務就是一個狀態的控制過程(即一步),確定每步的啟動條件和轉換條件。每個獨立的步分別用方框表示,根據動作順序用箭頭將各個方框連接起來,在相鄰的兩步之間用短橫線表示轉換條件。在每步的右邊畫上要執行的控制程序。一個工序的完成就意味著一個狀態的結束,另一狀態的開始。
在大中型PLC中,可直接使用S7-GRAPH語言處理比較復雜的順序控制或步進控制問題。而在小型PLC的程序設計中,對于大量遇到的順序控制或步進控制問題,如果能采用狀態流程圖的設計方法,再使用步進指令將很容易地轉化成梯形圖程序,就可完成比較復雜的順序控制或步進控制任務。
【例4-28】 圖4-65是一個單一流程狀態轉移圖轉化成梯形圖的例子。系統初始進入S0.0,當S0.0=1時,系統進入S0.0段,在這一程序段中,使Q0.1輸出1,使Q0.2置位。當I0.1=1時,狀態由S0.0轉為S0.1(S0.0先復位,S0.1再置位)。
注意:
①用OUT指令輸出只能在本程序段內保持(即只在本工序有輸出),為了能在段外也有輸出,應該使用置位指令S,但一定要有復位指令R配合使用。
圖4-65 單一流程編程方法
②段內輸出一般直接用常開點( SM0. 0)控制,不再設置其他條件,否則即使進入該步也不會有輸出。
③是段轉移指令使本步復位,而不是段結束指令。所以應該注意各語句的先后位置,應該是:段開始,段輸出,段轉移,段結束。
④狀態轉移圖可以轉化成梯形圖程序,也可以直接寫成語句表程序,梯形圖程序需要畫到6個網絡里,而語句表程序都寫到1個網絡里也能編輯運行。所以建議直接轉化成語句表來編輯運行,會減少大量的輸入、調試時間。
4)多流程順序控制的步進指令編程方法
在順序控制中,任何復雜的控制流程都可以分解為以下幾種基本組合形式。
①單一流程編程方法。單一流程由一系列相繼執行的工步組成。每一工步的后面只能接一個轉移條件;而每一轉移條件之后僅有一個工步,其結構及轉化成梯形圖及語句表的方法如圖4-65所示,分析見例4-27。
②選擇分支結構。從多個分支流程中選擇某一個分支,稱為選擇分支,同一時刻只允許選擇一個分支。如圖4-66a示例,若S1.0動作時,一旦I0.1接通,動作狀態就向S1.1轉移,則S1.0變為0狀態;此后即使I0.0閉合,S2.0也不動作。分支結束稱為匯合,任一分支流程結束時的轉移條件成立(I0.2或I0.4接通),均可轉移到匯合狀態S1.3。
在將選擇分支轉化成梯形圖及語句表時應注意以下幾點:
·各個程序段中的操作應根據實際工程要求去編輯,在梯形圖中應處在各段的段開始( LSCR)和段轉移(SCRT)之間,用常開點(SM0.0)控制。本圖中省略了這方面的編程內容。
·該種結構最需注意的是選擇分支開始的梯形圖轉化,當S1.0動作時,下一步有可能轉移到S1.1或S2.0,所以在S1.0段編程時,要有兩個段轉移指令,然后才是段結束指令。
·多個選擇分支應按著從左到右的順序轉化為梯形圖,當左邊支路按著順序結構轉化方法編輯完成后,才轉化右邊支路。
·將每個支路的結束段(S1.2和S2.0)的段轉移(SCRT)的目標段都指向匯合處(S1.3),則完成了選擇結構匯合點的轉化。
圖4-66 選擇分支結構編程方法
③并行分支的開始與匯合。滿足某個條件后導致幾個分支同時動作,稱為并行分支。如圖4-67a示例中,若S1.0動作時,I0.1一接通,S1.1和S1.4就同時接通,并按各自分支的條件向下轉移,待各分支流程的動作全部結束時,若I0.3接通,匯合狀態S2.0動作,同時將S1.2和S1.6全部復位。為了強調轉移的同步實現,分支開始和匯合處的水平連線用雙線表示。各個程序段中的操作應根據實際工程要求去編輯,本圖中省略了這方面的編程內容。
圖4-67 并行結構編程方法
在將并行結構轉化成梯形圖及語句表時應注意以下幾點:
·首先需要注意的是并行分支的開始的轉化,在S1.0程序段當I0.1接通時,同時激活S1.1和S1.4,如圖4-67b的第一個“*”所示。
·如果系統有n條并行支路,在前n-1條支路的結束段不要使用段轉移指令使該段復位,但要有段結束指令(格式需要),如圖4-67b的第二個“*”所示。
·并行分支結束要求必須保證全部并行支路均已完成,且并行結束條件接通(I0.3=1),才能使各并行支路結束段同時復位,同時置位并行匯集段(采用R、S指令)。如圖4-67b的第三個“*”所示。
④跳轉與循環。跳轉與循環是選擇分支的一種特殊形式。圖4-68a的示例中,在S1.0動作時,若轉移條件I0.3接通,將跳過S1.1去執行S1.2,這種情況為正向跳轉;當順序執行完S1.2和S1.3后,I0.4仍未閉合,將返回去再執行S1.2和S1.3,直到I0.4閉合后,才轉向下一步S1.4,這時為逆向跳轉。S1.4完成后,若I0.5閉合,將轉移到初始步S1.0,開始新一個工作循環。
由圖4-68可以看出,將跳轉與循環結構的狀態轉移圖轉化為梯形圖是非常簡單的,是單一流程和選擇分支的組合,其中正跳轉、逆跳轉及循環的轉化方法如圖4-68b的標注處。
圖4-68 跳轉與循環的編程方法
【例4-29】 步進控制指令應用舉例。
控制要求:
控制3臺電動機M1(Q0. 0)、M2( Q0.1)、M3(Q0. 2)的起動/停止,要求依次延時順序起動/逆序停止3臺電動機,即按下起動按鈕(I0.0)后,M1立即起動,延時3s起動M2,再延時4s起動M3;按下停止按鈕(I0.1)后,M3立即停止,延時4s停止M2,再延時3s停止M1。
如果在起動的過程中,想終止起動過程,按下停止按鈕,也要求逆序停車。例如在M1、M2已經起動,M3還沒起動時,按下停止按鈕,則終止起動過程,并立即停止M2,延時3s停止M1。
分析:
①系統要求延時起動,延時停車,所以必須在步進控制中用到延時,為了節省系統資源及便于調試、監控,可以將相同設定值的延時段采用一個定時器來完成,即只用兩個定時器(T37為3s定時器,T38為4s定時器)。
②PLC運行初試(SM0.1 =1),應使第一步(初始化步)置位,其他系統工作步復位。目的是即使中途切斷程序的運行(斷電、PLC停止運行),下次再運行時,仍然能保證系統能從頭開始工作。
③由于允許在起動過程中終止起動過程,并要求逆序停車,所以系統的狀態流程圖應含有跳轉結構。由于系統停車后必須回到初試狀態,準備下次起動,所以應包含循環部分。根據控制要求繪制的步進控制狀態流程圖如圖4-69a所示。
④由于將延時時間相同的時間段采用一個定時器來控制,所以在將狀態轉移圖轉化成梯形圖或語句表時,必須使定時器在段外編程(可以放置在程序的結尾處),將所有啟用該
定時器的段(狀態繼電器S)并聯后來控制定時器的運行。對應的語句表如圖4-69b所示。
圖4-69 步進控制應用舉例