在STEP7的編程中,經常會用到FC功能和FB功能塊來簡化程序編制,減少程序空間占用。本文通過現場實例詳細介紹了FC功能和FB功能塊的應用
1.FC和FB的主要區別
FC和FB的主要區別是FB有背景塊,能夠保存上一次執行的數據,調用一次就需要建立一個DB塊。FC沒有背景塊,多次調用可以共用一個DB塊
FC 功能是沒有存儲能力的,給定入口的參數,執行完畢后,從輸出參數讀出結果。FC功能也就完成了。就像計算機高級編程語言中的子函數。當然,FC可以訪問全局的存儲變量,M區,數據塊等等。但是影響程序的可移植性。FC的參數是沒有實際的地址的,只是在調用FC的時候,對應到一個實際的地址來讀取參數。而FB的參數都是有實際對應的地址的,也就是對應的背景數據塊的地址。FB參數傳遞的是數據。FB可以生成靜態變量,下次調用FB的時候,這些靜態變量可以被保留。而FC的變量只在調用期內有效。FB與FC的區別在于入口參數,出口參數和使用靜態變量。如果一個FB對入口參數,出口參數和使用靜態變量都不需要,那么與使用沒有入口參數和出口參數的FC基本一樣了。FB可以和多個背景數據塊配合使用,被用來控制多個對象。例如控制多個電機或者泵的運行。多個電機之間參數互不干擾。如果使用FC達成同樣功能,就需要不斷地修改共享數據塊,以避免對象的數據丟失。FC沒有一個永久的數據塊來存儲數據,只是在被調用的時候,被分配一個臨時的數據區。
2.FC功能編程及調用實例:
2.1在STEP7中完成硬件組態以后,開始編制PLC程序,插入一個功能FC,如圖所示。將FC設置成為一個模擬量數值超限報警程序,模擬量信號比較后輸出報警值。
2.2在FC中創建接口,IN 變量是外部輸入的,只能被本程序塊讀,不能被本程序塊寫,輸入參數只能在功能和功能塊中使用,以將數據傳送到調用塊進行處理。OUT 是本程序塊輸出的,他可以被本程序塊讀寫,其他程序通過引腳只能讀值不能寫,通過它將結果傳送到調用塊IN_OUT 輸入輸出變量 本程序塊和其他程序都可以讀寫這個引腳的值,輸入/輸出參數在功能和功能塊中使用,以將數據傳遞到調用塊中,在調用塊中處理數據,然后再將從調用塊中發送的結果存儲在相同的變量中。
TEMP 臨時變量是一種在塊執行時,用來暫時存儲數據的變量,這些數據存儲在CPU工作存儲區的局部數據堆棧(L堆棧)中。臨時變量可以在組織快OB、功能FC和功能塊FB中使用,當塊執行時它們被用來臨時存儲數據,一旦塊執行介紹,堆棧重新分配,臨時變量中的數據將丟失。臨時數據是塊的邏輯塊,并且在處理塊時將其存儲在本地的數據堆棧(L堆棧)。關閉塊并完成處理后,臨時數據就變得不再可訪問。
2.3編制FC功能程序,實現模擬量數值對比輸出報警信號
在其他功能中多次調用此功能程序,簡化程序的編制,此程序的含義為IN_WORD_1與IN_WORD_2之間的差值大于8,延時3S中進行報警輸出。
3.FB功能塊編程與調用實例:
3.1創建一個FB功能塊,數據接口定義與FC功能類似。
3.2編制一個速度調節功能塊程序,如圖所示
3.3創建DB32數據塊,作為FB的背景數據塊,在功能程序中調用FB功能塊,數據塊選擇必須為FB的背景數據塊,如圖所示,這樣就完成了FB的調用:
-
plc
+關注
關注
5011文章
13297瀏覽量
463340 -
編程
+關注
關注
88文章
3616瀏覽量
93734 -
編程語言
+關注
關注
10文章
1945瀏覽量
34736
原文標題:實例詳解FC與FB的編程及調用
文章出處:【微信號:GKB1508,微信公眾號:工控幫】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論