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