現(xiàn)場總線控制系統(tǒng)功能塊實例化-功能塊模型
引言
現(xiàn)場總線是“安裝在生產(chǎn)過程區(qū)域的現(xiàn)場設(shè)備/儀表與控制室內(nèi)的自動控制裝置/系統(tǒng)之間的一種串行、數(shù)字化、多點通信的數(shù)據(jù)總線”。現(xiàn)場總線是一種新型的自動化控制系統(tǒng),是當今自動控制技術(shù)的發(fā)展方向?,F(xiàn)場總線技術(shù)可被廣泛應(yīng)用于制造業(yè)、流程工業(yè)、樓宇、交通等自動化控制系統(tǒng)中。
在眾多的現(xiàn)場總線技術(shù)當中,由現(xiàn)場總線基金會組織(FieldbusFoundation,F(xiàn)F)開發(fā)的基金會現(xiàn)場總線在工程自動化領(lǐng)域得到了廣泛的支持?;饡F(xiàn)場總線是一種是全分布式的自動化系統(tǒng),主要功能是對工業(yè)生產(chǎn)過程進行測量、信號變送、控制等。FF于1996年頒布了低速總線H1標準。隨著以太網(wǎng)技術(shù)的成熟,F(xiàn)F制定了FFHSE(HighSpeedEthernet)規(guī)范,該規(guī)范定義了一種基于高速以太網(wǎng)的現(xiàn)場總線技術(shù)。為實現(xiàn)自動控制系統(tǒng)的控制功能,在H1和HSE應(yīng)用層之上增加了用戶層。用戶層包括了FF所定義的標準化的功能塊和功能塊應(yīng)用進程,構(gòu)成了自動化控制系統(tǒng)中實現(xiàn)控制功能的主要部分。
功能塊模型
在FF現(xiàn)場總線系統(tǒng)中,工業(yè)控制系統(tǒng)的功能塊應(yīng)用進程(FunctionBlockApplicationProcess,F(xiàn)BAP)定義在用戶層,包括資源塊(ResouceBlock)、功能塊(FunctionBlock,F(xiàn)B)和變換塊(TransducerBlock),以及為滿足控制系統(tǒng)需要而增加的各種對象,如鏈接對象(LinkObject)、趨勢對象(TrendObject)等.
在現(xiàn)場設(shè)備應(yīng)用進程的體系結(jié)構(gòu)中,資源塊表示網(wǎng)絡(luò)硬件和軟件對象,包含現(xiàn)場設(shè)備的一些硬件和物理特性。資源塊定義了相應(yīng)的參數(shù)來描述所用資源的狀態(tài),并通過執(zhí)行特定的算法來控制對設(shè)備資源的操作。在用戶層應(yīng)用中,功能塊FB代表了應(yīng)用所執(zhí)行的基本的自動控制功能,是定義工業(yè)控制系統(tǒng)的監(jiān)控和控制功能的主要手段。通過定義功能塊,使工業(yè)控制系統(tǒng)的自動控制功能盡可能獨立于輸入\輸出(InputOutput,IO)設(shè)備。功能塊根據(jù)指定的算法并結(jié)合其內(nèi)含的參數(shù)來處理輸入?yún)?shù),得到的輸出提供給其它的功能塊或者變換塊執(zhí)行控制功能。
定義變換塊的目的是使功能塊和IO設(shè)備隔離開來,這些IO設(shè)備包括傳感器、執(zhí)行器和轉(zhuǎn)換開關(guān)。變換塊通過由功能塊使用的獨立接口控制對IO設(shè)備的訪問,同時,變換塊還執(zhí)行校準和線性化的功能。鏈接對象提供了功能塊輸入輸出間的對應(yīng)關(guān)系,作為在控制系統(tǒng)中交換信息的映射。在FF現(xiàn)場總線控制系統(tǒng)中,現(xiàn)場設(shè)備間或設(shè)備內(nèi)部進行交換的過程數(shù)據(jù)和事件都是通過連接對象來定義的。
功能塊實例化
在建立控制系統(tǒng)的過程中,控制應(yīng)用所需要的現(xiàn)場設(shè)備是不確定的。即便是一個構(gòu)建好的控制系統(tǒng),也可能會因為功能或者是性能上的需要而添加新的設(shè)備,這就需要現(xiàn)場設(shè)備比如IO設(shè)備等能夠提供完善的功能。但現(xiàn)場設(shè)備通常都是嵌入式設(shè)備,其操作系統(tǒng)采用嵌入式操作系統(tǒng)。因此現(xiàn)場設(shè)備的可用資源有限,同時實現(xiàn)所有功能對現(xiàn)場設(shè)備來要求太高。對于IO設(shè)備,多路模擬輸入(MultipleAnalogInput,MAI)功能塊負責(zé)模擬數(shù)據(jù)采集,多路離散輸入(MultipleDiscreteInput,MDI)功能塊負責(zé)數(shù)字數(shù)據(jù)的采集,每個MAI或者MDI功能塊所能采集的數(shù)據(jù)節(jié)點是一定的。一般情況下,每個現(xiàn)場設(shè)備中的功能塊類型和數(shù)目在出廠之前就已經(jīng)定制好了。如果控制系統(tǒng)的規(guī)模發(fā)生了變化,那么原先安裝的現(xiàn)場設(shè)備就可能滿足不了控制系統(tǒng)的需要。而如果允許控制工程師能夠根據(jù)實際的需要增加現(xiàn)場設(shè)備中功能塊的類型和數(shù)目,則能夠大大地降低控制系統(tǒng)的復(fù)雜性,節(jié)省控制系統(tǒng)升級所需要的時間和成本,從而提高生產(chǎn)效率和效益。
功能塊實例化機制
為實現(xiàn)功能塊和其它對象的實例化,在基金會現(xiàn)場總線用戶層規(guī)范中定義了Action對象。通過對Action對象進行操作,可以在控制系統(tǒng)需要某個對象或者功能塊時,在現(xiàn)場設(shè)備中創(chuàng)建所需要的對象或者功能塊。也可以通過Action對象刪除現(xiàn)場設(shè)備中存在的對象或功能塊。Action對象包含3個參數(shù),以結(jié)構(gòu)的形式定義為:
typedefstruct{unsignedcharucAction; unsignedlongulFunction; unsignedshortuOccurrence;?。鼺F_Action;
其中,第一個參數(shù)ucAction用來表示所采取的操作,取值為0、1或者2,0表示沒有任何操作,1表示實例化由參數(shù)ulFunction指定的功能塊或者是對象,2表示請求刪除由參數(shù)ulFunction指定的功能塊或者對象。第二個參數(shù)ulFunction表示實例化操作或者刪除操作時所操作的對象,該參數(shù)的取值是設(shè)備描述文件(DeviceDescription,DD)中針對具體的功能塊或者對象所定義的值。第3個參數(shù)uOccurrence在ucAction等于0或1時,其取值必須為0,在執(zhí)行刪除操作即ucAction等于2時,參數(shù)uOccurrence的值是要刪除的功能塊或?qū)ο蟮男蛱?,即表示要刪除第幾個由ulFunction指定的功能塊或?qū)ο?。實例化的操作通過組態(tài)軟件執(zhí)行,用戶選擇了要實例化的功能塊后,組態(tài)軟件向指定的現(xiàn)場設(shè)備發(fā)出FMS(FieldbusMessageSpecification)寫請求?,F(xiàn)場設(shè)備接收到FMS寫請求后,首先判斷本設(shè)備中是否已經(jīng)定義了實例化請求操作中指定類型的功能塊。如果本設(shè)備中定義了該類型的功能塊,則執(zhí)行實例化操作,動態(tài)申請一塊內(nèi)存,內(nèi)存的大小即實例化請求操作中指定類型功能塊的大小。然后將該類型功能塊的模板拷貝到新申請的內(nèi)存中。
功能塊數(shù)據(jù)保存和恢復(fù)
在現(xiàn)場總線控制系統(tǒng)中,由于種種原因,很可能會發(fā)生設(shè)備掉電的情況。由于組態(tài)的過程比較復(fù)雜,所以對于整個控制系統(tǒng)來說,實現(xiàn)現(xiàn)場設(shè)備的數(shù)據(jù)保存功能是非常必要的。特別是對于存在實例化的功能塊的現(xiàn)場設(shè)備,在設(shè)備重新上電后能夠恢復(fù)實例化的功能塊和組態(tài)數(shù)據(jù)顯得更為重要。