下面以發(fā)動(dòng)機(jī)組控制系統(tǒng)為例,介紹如何編輯和使用多重背景數(shù)據(jù)塊。
例 發(fā)動(dòng)機(jī)組控制系統(tǒng)設(shè)計(jì)——使用多重背景
設(shè)某發(fā)動(dòng)機(jī)組由1臺(tái)汽油發(fā)動(dòng)機(jī)和1臺(tái)柴油發(fā)動(dòng)機(jī)組成,現(xiàn)要求用plc控制發(fā)動(dòng)機(jī)組,使各臺(tái)發(fā)動(dòng)機(jī)的轉(zhuǎn)速穩(wěn)定在設(shè)定的速度上,并控制散熱風(fēng)扇的啟動(dòng)和延時(shí)關(guān)閉。每臺(tái)發(fā)動(dòng)機(jī)均設(shè)置一個(gè)啟動(dòng)按鈕和一個(gè)停止按鈕。
項(xiàng)目的編程步驟如下:
(1)創(chuàng)建S7項(xiàng)目。使用菜單“文件”à“新建工程”向?qū)?chuàng)建發(fā)動(dòng)機(jī)組 控制系統(tǒng)的S7項(xiàng)目,并命名為“多重背景”。CPU選擇CPU 315- 2DP,項(xiàng)目包含組織塊OB1。
(2)硬件配置。在“多重背景”項(xiàng)目內(nèi)打開“SIMATIC 300(1)”文件夾,打開硬件配置窗口,并按圖1完成硬件配置。

圖1 硬件配置
(3)編輯如圖2所示的符號(hào)表。

(4) 規(guī)劃程序結(jié)構(gòu)。程序結(jié)構(gòu)規(guī)劃如圖3所示。FB10為上層功能塊,它 把FB1作為其“局部實(shí)例”,通過二次調(diào)用本地實(shí)例,分別實(shí)現(xiàn)對(duì)汽 油機(jī)和柴油機(jī)的控制。這種調(diào)用不占用數(shù)據(jù)塊DB1和DB2,它將每次調(diào)用(對(duì)于每個(gè)調(diào)用實(shí)例)的數(shù)據(jù)存儲(chǔ)到體系的上層功能塊FB10的背景數(shù)據(jù)塊DB10中。

(5)編輯功能(FC)。FC1用來實(shí)現(xiàn)發(fā)動(dòng)機(jī)(汽油機(jī)或柴油機(jī))的風(fēng)扇控制,按照控制要求,當(dāng)發(fā)動(dòng)機(jī)啟動(dòng)時(shí),風(fēng)扇應(yīng)立即啟動(dòng);當(dāng)發(fā)動(dòng)機(jī)停止后,風(fēng)扇應(yīng)延時(shí)關(guān)閉。因此FC1需要一個(gè)發(fā)動(dòng)機(jī)啟動(dòng)信號(hào)、一個(gè)風(fēng)扇控制信號(hào)和一個(gè)延時(shí)定時(shí)器。
1) 定義局部變量聲明表。局部變量聲明表如表1所示,表中包含3個(gè)變量,兩個(gè)IN變量,1個(gè)OUT變量。
表1 變量聲明表

2) 編輯FC1的控制程序。FC1所實(shí)現(xiàn)的控制要求:發(fā)動(dòng)機(jī)啟動(dòng)時(shí)風(fēng)扇啟動(dòng),當(dāng)發(fā)動(dòng)機(jī)再次關(guān)閉后,風(fēng)扇繼續(xù)運(yùn)行4s,然后停止。定時(shí)器采用斷電延時(shí)定時(shí)器,控制程序如圖4所示。

圖4 FC1控制程序
(6)編輯共享數(shù)據(jù)塊。共享數(shù)據(jù)塊DB3可為FB10保存發(fā)動(dòng)機(jī)(汽油機(jī)和柴油機(jī))的實(shí)際轉(zhuǎn)速,當(dāng)發(fā)動(dòng)機(jī)轉(zhuǎn)速都達(dá)到預(yù)設(shè)速度時(shí),還可以保存該狀態(tài)的標(biāo)志數(shù)據(jù)。DB3的數(shù)據(jù)如圖5所示。

(7) 編輯功能塊(FB)。在該系統(tǒng)的程序結(jié)構(gòu)內(nèi),有2個(gè)功能塊:FB1和FB10。FB1為底層功能塊,所以應(yīng)首先創(chuàng)建并編輯;FB10為上層功能塊,可以調(diào)用FB1。
1) 編輯底層功能塊FB1。在項(xiàng)目內(nèi)創(chuàng)建FB1,符號(hào)名“Engine”。定義功能塊FB1的變量聲明表如表2所示。

FB1主要實(shí)現(xiàn)發(fā)動(dòng)機(jī)的啟停控制及速度監(jiān)視功能,其控制程序如圖6所示。

圖6 FB1程序
2) 編輯上層功能塊FB10。在項(xiàng)目內(nèi)創(chuàng)建FB10,符號(hào)名“Engines”。在FB10的屬性對(duì)話框內(nèi)激活“多情景標(biāo)題”選項(xiàng),如圖7所示。

圖7 將FB10設(shè)置成使用多重背景的功能塊
要將FB1作為FB10的一個(gè)“局部背景”調(diào)用,需要在FB10的變量聲明表中為FB1的調(diào)用聲明不同名稱的靜態(tài)變量,數(shù)據(jù)類型為FB1(或使用符號(hào)名“Engine”),如表3所示。
表3 FB10的變量聲明表


在變量聲明表內(nèi)完成FB1類型的局部實(shí)例:“Petrol_Engine”和“Diesel_Engine”的聲明以后,在程序元素目錄的“多重實(shí)例”目錄中就會(huì)出現(xiàn)所聲明的多重實(shí)例,如圖8所示。接下來可在FB10的代碼區(qū),調(diào)用FB1的“局部實(shí)例”。

編寫功能塊FB10的控制程序如圖9所示。調(diào)用FB1局部實(shí)例時(shí),不再使用獨(dú)立的背景數(shù)據(jù)塊,F(xiàn)B1的實(shí)例數(shù)據(jù)位于FB10的實(shí)例數(shù)據(jù)塊DB10中。發(fā)動(dòng)機(jī)的實(shí)際轉(zhuǎn)速可直接從共享數(shù)據(jù)塊中得到,如DB3.DW0(符號(hào)地址為“S_Data”.PE_Actual_Speed)。

圖9 FB10的控制程序
(8) 生成多重背景數(shù)據(jù)塊DB10。在項(xiàng)目內(nèi)創(chuàng)建一個(gè)與FB10相關(guān)聯(lián)的多重背景數(shù)據(jù)塊DB10,符號(hào)名“Engine_Data”。如圖10所示。

圖10 DB10的數(shù)據(jù)結(jié)構(gòu)
(9) 在OB1中調(diào)用功能(FC)及上層功能塊(FB)。OB1控制程序如圖11所示,“程序段4”中調(diào)用了FB10。

圖11 OB1控制程序
使用多重背景時(shí)應(yīng)注意以下問題:
(1) 首先應(yīng)生成需要我次調(diào)用的功能塊(如例中的FB1)。
(2) 管理多重背景的功能塊(如例中的FB10)必須設(shè)置為有多重背景功能。
(3) 在管理多重背景的功能塊的變量聲明表中,為被調(diào)用的功能塊的每一次調(diào)用定義一個(gè)靜態(tài)(STAT)變量,以被調(diào)用的功能塊的名稱(如FB1)作為靜態(tài)變量的數(shù)據(jù)類型。
(4) 必須有一個(gè)背景數(shù)據(jù)塊(如DB10)分配給管理多重背景的功能塊。背景數(shù)據(jù)塊中的數(shù)據(jù)是自動(dòng)生成的。
(5) 多重背景只能聲明為靜態(tài)變量(聲明類型為“STAT”)。


返回頂部
刷新頁面
下到頁底