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