(1)函數(shù)(FC)介紹
①函數(shù)(FC)是用戶編寫的程序塊,是不帶存儲器的代碼塊。由于沒有可以存儲塊參數(shù)值的數(shù)據(jù)存儲器,因此,調(diào)用函數(shù)時,必須給所有形參分配實參。
②FC里有一個局域變量表和塊參數(shù)。局域變量表里有:Input(輸入?yún)?shù))、Output(輸出參數(shù))、InOut (輸入/輸出參數(shù))、Temp(臨時數(shù)據(jù))、Return(返回值RET_VAL)。Input(輸入?yún)?shù))將數(shù)據(jù)傳遞到被調(diào)用的塊中進行處理。Output(輸出參數(shù))是將結(jié)果傳遞到調(diào)用的塊中。InOut(輸入/輸出參數(shù))將數(shù)據(jù)傳遞到被調(diào)用的塊中,在被調(diào)用的塊中處理數(shù)據(jù)后,再將被調(diào)用的塊中發(fā)送的結(jié)果存儲在相同的變量中。Temp(臨時數(shù)據(jù))是塊的本地數(shù)據(jù),并且在處理塊時將其存儲在本地數(shù)據(jù)堆棧。關(guān)閉并完成處理后,臨時數(shù)據(jù)就變得不再可訪問。Return包含返回值RET_VAL。
(2)函數(shù)(FC)的應(yīng)用
函數(shù)(FC)類似于VB語言中的子程序,用戶可以將具有相同控制過程的程序編寫在FC中,然后在主程序Main[OB1]中調(diào)用。創(chuàng)建函數(shù)的步驟是:先建立一個項目,再在TIA博途軟件項目視圖的項目樹中選中“已經(jīng)添加的設(shè)備”(如:PLC_1)→“程序塊”一“添加新塊”,即可彈出要插入函數(shù)的界面。以下用例1說明函數(shù)(FC)的應(yīng)用。
【例1】用函數(shù)FC實現(xiàn)電動機的啟停控制。
【解】①新建一個項目,本例為“啟停控制(FC)”。在TIA博途軟件項目視圖的項目樹中,選中并單擊已經(jīng)添加的設(shè)備“PLC_1”-“程序塊”-“添加新塊”,如圖1所示,彈出添加塊界面。
圖1
②如圖2所示,在“添加新塊”界面中,選擇創(chuàng)建塊的類型為“函數(shù)”,再輸入函數(shù)的名稱(本例為啟停控制),之后選擇編程語言(本例為LAD),最后單擊“確定”按鈕,彈出函數(shù)的程序編輯器界面。
圖2
③在“程序編輯器”中,輸入如圖3所示的程序,此程序能實現(xiàn)啟停控制,再保存程序。
圖3
④在TIA 博途軟件項目視圖的項目樹中,雙擊“Main[OB1]”,打開主程序塊“Main[OB1]”,選中新創(chuàng)建的函數(shù)“啟停控制(FC1)”,并將其拖拽到程序編輯器中,如圖4所示。至此,項目創(chuàng)建完成。
圖4
【例2】用函數(shù)實現(xiàn)電動機的啟停控制。
【解】本例的1、2步與例1相同。
③在TIA博途軟件項目視圖的項目樹中,雙擊函數(shù)塊“啟停控制(FC1)”,打開函數(shù),彈出“程序編輯器”界面,先選中Input(輸入?yún)?shù)),新建參數(shù)“Start”和“Stopl”,數(shù)據(jù)類型為“Bool”。再選中InOut (輸入/輸出參數(shù)),新建參數(shù)“Motor”,數(shù)據(jù)類型為“Bool”,如圖5所示。最后在程序段1中輸入程序.
圖5
如圖6所示,注意參數(shù)前都要加“#”。
圖6
④在TIA 博途軟件項目視圖的項目樹中,雙擊“Main[OBI]”,打開主程序塊“Main[OB1]”,選中新創(chuàng)建的函數(shù)“啟停控制(FC1)”,并將其拖拽到程序編輯器中,如圖7所示。
圖7
如果將整個項目下載到PLC中,就可以實現(xiàn)“啟停控制”。這個程序的函數(shù)“FC1”的調(diào)用比較靈活,與例1不同,啟動不只限于I0.0,停止不只限于I0.1,在編寫程序時,可以靈活分配應(yīng)用。
【例3】某系統(tǒng)采集一路模擬量(溫度),溫度的范圍是0~200℃,要求對溫度值進行數(shù)字濾波,算法是:把最新的三次采樣數(shù)值相加,取平均值,即是最終溫度值。
【解】①數(shù)字濾波的程序是函數(shù)FC1,先創(chuàng)建一個空的函數(shù),打開函數(shù),并創(chuàng)建輸入數(shù)“GatherV”,就是采樣輸入值;創(chuàng)建輸出參數(shù)“ResultV”,就是數(shù)字濾波的結(jié)果;創(chuàng)建輸入輸出參數(shù)“LastV”(上一個數(shù)值)、“LastesV”(上上一個數(shù)值)和“EarlyV”(當前數(shù)值)輸入輸出參數(shù)既可以在方框的輸入端,也可以在方框的輸出端,應(yīng)用比較靈活;創(chuàng)建臨時變量參數(shù)“Templ”,臨時變量參數(shù)既可以在方框的輸入端,也可以在方框的輸出端,應(yīng)用也比較靈活,如圖8所示。
圖8
②在FC1中,編寫濾波梯形圖程序,如下圖9所示:
圖9
③在Main[OB1]中,編寫梯形圖闖紅燈徐如下10所示:
圖10
審核編輯:劉清
-
存儲器
+關(guān)注
關(guān)注
38文章
7514瀏覽量
164004 -
PLC控制
+關(guān)注
關(guān)注
9文章
251瀏覽量
27315 -
SIMATIC
+關(guān)注
關(guān)注
1文章
231瀏覽量
15783 -
數(shù)據(jù)存儲器
+關(guān)注
關(guān)注
1文章
69瀏覽量
17792 -
S7-1500
+關(guān)注
關(guān)注
3文章
300瀏覽量
6453
原文標題:電工知識—SIMATIC S7-1500 函數(shù)(FC)及其應(yīng)用(2)
文章出處:【微信號:設(shè)備原理與維修俱樂部,微信公眾號:設(shè)備原理與維修俱樂部】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論