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