本文轉載
作者:孫友
順序功能圖(Sequeential Function Chart)是一種新穎的、按工藝流程圖進行編程的圖形化編程語言,也是一種符合國際電工委員會(IEC)標准,被首選推薦地用於可編程控制器的通用編程語言,現在,在PLC的應用領域中得到廣泛的推廣和應用。
采用SFC進行PLC應用編程的優點是:
1、在程序中可以直觀地看到設備的動作順序。因為SFC程序是按照設備(或工藝)的動作順序編寫的,所以程序的規律性較強,容易讀懂,具有一定的可視性。
2、在設備發生故障時能很容易的找出故障所在位置。
3、不需要復雜的互鎖電路,更容易設計和維護系統。
根據國際電工委員會(IEC)標准,SFC的標准結構是:
步+該步工序中的動作或命令+有向連接+轉換和轉換條件=SFC,參見圖1:
圖1
SFC程序的運行規則是:從初始步開始執行,當每步的轉換條件成立時,就由當前步轉為執行下一步,在遇到END時結束所有步的運行。
現在大多PLC制造公司,都為自己的工控產品提供了相關的編程軟件,以便利用計算機實現在線編程。三菱公司提供的編程軟件GX Developer(版本號8.34)中,就提供了SFC編程方法,但由於相關書籍和學習資料跟不上,致使很多初學者不知道如果用該軟件來進行SFC編程,這給廣大的初學者學習PLC應用編程帶來了不便。這里,我們根據自己學習和掌握的知識,依據三菱公司提供的編程手冊,講解如何利用GX Developer軟件來進行SFC的編程,為初學者掌握SFC編程方法,提供一個入門的機會。
一、單流程結構編程方法
單流程結構是順序控制中最常見的一種流程結構,其結構特點是程序順着工序步,步步為序的向后執行,中間沒有任何的分支。掌握了單流程的SFC編程方法,也就是邁進了SFC的大門。這里,我們以“雙燈自動閃爍信號生成”為例,講解SFC編程的入門。
例題:雙燈自動閃爍信號生成。要求:在PLC上電后,其輸出Y0和Y1各以一秒鍾的時間間隔,周期交替閃爍。本例梯形圖和指令表見圖2。
在GX Developer中,一個完整的SFC程序是由初始狀態、有向線段、轉移條件和轉移方向等內容組成(見圖3)的,所以,我們的編程就是完整的獲得這幾個組成部分。
根據PLC的教程規定,SFC程序主要由初始狀態、通用狀態、返回狀態等幾種狀態來構成,但在編程中,這幾個狀態的編寫方式是不一樣的,這需要注意。SFC程序從初始狀態開始,所以,編程的第一步是給初始狀態設置合適的啟動條件。本例中,梯形圖的第一行表示的是如何啟動初始步,在SFC程序中,初始步的啟動采用梯形圖方式。
下面開始軟件中的程序輸入。
圖2閃爍信號梯形圖和指令表
圖3閃爍信號SFC程序
1、啟動GX Develop編程軟件,單擊“工程”菜單,點擊創建新工程菜單項或點擊新建工程按鈕見圖4。
圖4 GX Develop編程軟件窗口
2、彈出的創建新工程對話框見圖5中,要對三菱系列的CPU和PLC進行選擇,以符合對應系列的編程代碼,否則容易出錯。這里講述的主要是三菱FX2N系列的PLC,所以,需做如下幾個項目的選擇和輸入:
a.在PLC系列下拉列表框中選擇FXCPU;
b.在PLC類型下拉列表框中選擇FX2N(C);
c.在程序類型項中選擇SFC;
d.在工程設置項中設置好工程名和保存路徑
完成上述項目后之后點擊確定。
圖5新工程創建
3、完成上述工作后會彈出如圖6所示的塊列表窗口。
圖6塊列表窗口
按圖中所示,雙擊第零塊。
4、雙擊第零塊或其它塊后,會彈出塊信息設置對話框見圖7。
圖7塊信息設置對話框
這里,是對塊編輯進行類型進行選擇的進入窗口,有兩個選擇:SFC塊和梯形圖塊。
在編程理論中我們學到,SFC程序由初始狀態開始,故初始狀態必須激活,而激活的通用方法是利用一段梯形圖程序,且這一段梯形圖程序必須放在SFC程序的開頭部分。同理,在以后的SFC編程中,初始狀態的激活都需由放在SFC程序的第一部分(即第一塊)的一段梯形圖程序來執行,這是需要注意的一點。所以,在這里應點擊梯形圖塊,在塊標題欄中,填寫該塊的說明標題,也可以不填。
5、點擊執行按鈕彈出梯形圖編輯窗口見圖8,在右邊梯形圖編輯窗口中輸入啟動初始狀態的梯形圖。
在編程理論中曾學到,初始狀態的激活一般采用輔助繼電器M8002來完成,也可以采用其它觸點方式來完成,這只需要在它們之間建立一個並聯電路就可以實現。本例中我們利用PLC的輔助繼電器M8002的上電脈沖使初始狀態生效。
在梯形圖編輯窗口中單擊第零行輸入初始化梯形圖如圖9所示,輸入完成單擊“變換”菜單選擇“變換”項或按F4快捷鍵,完成梯形圖的變換。
圖8梯形圖編輯窗口
圖9梯形圖編輯窗口
圖10梯形圖輸入完畢窗口
需注意,在SFC程序的編制過程中每一個狀態中的梯形圖編制完成后必須進行變換,才能進行下一步工作,否則彈出出錯信息。
圖11出錯信息
6、在完成了程序的第一塊(梯形圖塊)編輯以后,雙擊工程數據列表窗口中的“程序”\“MAIN”見圖10,返回塊列表窗口見圖6。雙擊第一塊,在彈出的塊信息設置對話框中塊類型一欄中選擇SFC見圖12,在塊標題中可以填入相應的標題或什么也不填,點擊執行按鈕,彈出SFC程序編輯窗口見圖13。在SFC程序編輯窗口中光標變成空心矩形。
圖12 塊信息設置
圖13 SFC程序編輯窗口
7、轉換條件的編輯。
SFC程序中的每一個狀態或轉移條件都是以SFC符號的形式出現在程序中,每一種SFC符號都對應有圖標和圖標號,現在輸入使狀態發生轉移的條件。
在SFC程序編輯窗口將光標移到第一個轉移條件符號處(如圖13所標注)並單擊,在右側將出現梯形圖編輯窗口,在此中輸入使狀態轉移的梯形圖。讀者從圖13中可以看出,T0觸點驅動的不是線圈,而是TRAN符號,意思是表示轉移(Transfer),這一點提請注意。在SFC程序中,所有的轉移都用TRAN表示,不可以采用SET+S□語句表示,否則將告知出錯。
對轉換條件梯形圖的編輯,可按PLC編程的要求,按上面的敘述可以自己完成,需注意的是,每編輯完一個條件后應按F4快捷鍵轉換,轉換后梯形圖則由原來的灰色變成亮白色,完成轉換后再看SFC程序編輯窗口中1前面的問號(?)會消失。
8、通用狀態的編輯。
在左側的SFC程序編輯窗口中把光標下移到方向線底端,按工具欄中的工具按鈕或單擊F5快捷鍵彈出步序輸入設置對話框見圖14。
圖14 SFC符號輸入
輸入步序標號后點擊確定,這時光標將自動向下移動,此時,可看到步序圖標號前面有一個問號(?),這是表明此步現在還沒進行梯形圖編輯,同時右邊的梯形圖編輯窗口呈現為灰色也表明為不可編輯狀態,見圖15。
下面對通用工序步進行梯形圖編程。將光標移到步序號符號處,在步符號上單擊后右邊的窗口將變成可編輯狀態,現在,可在此梯形圖編輯窗口中輸入梯形圖。需注意,此處的梯形圖是指程序運行到此工序步時所要驅動哪些輸出線圈,在本例中,現在所要獲得的通用工
圖15 還沒有編輯的狀態步
序步20是驅動輸出線圈Y0以及T0線圈,參見圖2程序梯形圖和指令表。
用相同的方法把控制系統一個周期內所有的通用狀態編輯完畢。需說明的是,在這個編輯過程中,每編輯完一個通用步后,不需要再操作“程序”\“MAIN”而返回到塊列表窗口(見圖6),再次執行塊列表編輯,而是在一個初始狀態下,直接進行SFC圖形編輯。
9、系統循環或周期性的工作編輯。
SFC程序在執行過程中,無一例外的會出現返回或跳轉的編輯問題,這是執行周期性的循環所必須的。要在SFC程序中出現跳轉符號,需用或(JUMP)指令加目標號進行設計。
現在進行返回初始狀態編輯見圖16所示。輸入方法是:把光標移到方向線的最下端,按F8快捷鍵或者點擊按鈕,在彈出的對話框中填入要跳轉到的目的地步序號,然后單擊確定按鈕。
圖16 跳轉符號輸入
說明:如果在程序中有選擇分支也要用JUMP+“標號”來表示。
當輸入完跳轉符號后,在SFC編輯窗口中我們將會看到,在有跳轉返回指向的步序符號方框圖中多出一個小黑點兒,這說明此工序步是跳轉返回的目標步,這為我們閱讀SFC程序也提供了方便,參見圖18。
10,程序變換。
當所有SFC程序編輯完后,我們可點擊變換按鈕進行SFC程序的變換(編譯),如果在變換時彈出了塊信息設置對話框,可不用理會,直接點擊執行按鈕即可。經過變換后的程序如果成功,就可以進行仿真實驗或寫入PLC進行調試了。
如果想觀看SFC程序所對應的順序控制梯形圖,我們可以這樣操作:點擊工程\編輯數據\改變程序類型,進行數據改變(見圖19)。
圖18 完整的SFC程序
圖19數據變換
執行改變數據類型后,可以看到由SFC程序變換成的梯形圖程序見圖20。
圖20 轉化后的梯形圖
小結:以上介紹了單序列的SFC程序的編制方法,通過學習,我們已經基本了解了SFC程序中狀態符號的輸入方法。需要強調的是兩點:(1)在SFC程序中仍然需要進行梯形圖的設計;(2)SFC程序中所有的狀態轉移需用TRAN表示。