黃禮超,巫 茜
(1.重慶工業(yè)職業(yè)技術(shù)學(xué)院機械工程學(xué)院,重慶 401120;2.重慶理工大學(xué) 計算機科學(xué)與工程學(xué)院,重慶 400054)
在復(fù)雜的大型工程項目中,為實現(xiàn)對生產(chǎn)過程的控制,配置了眾多處于底層控制網(wǎng)絡(luò)的SCADA、PLC及DCS等控制系統(tǒng)。同時,為強化對企業(yè)的管理,基于信息網(wǎng)絡(luò),還構(gòu)建了各種高層管理及輔助決策的管理信息系統(tǒng)。在復(fù)雜的工業(yè)控制大系統(tǒng)中,既有用于反映控制系統(tǒng)運行狀態(tài)的實時控制信息,也有用于為管理決策提供支持、反映管理狀況的非實時管理信息。由于各子系統(tǒng)功能不同,結(jié)構(gòu)各異,數(shù)據(jù)格式差別極大,通信協(xié)議不一定統(tǒng)一,導(dǎo)致系統(tǒng)之間難以實現(xiàn)數(shù)據(jù)交換和集成,給管控一體化系統(tǒng)的實現(xiàn)帶來了不少困難。一般實現(xiàn)控制網(wǎng)與信息網(wǎng)集成的基本技術(shù)有互聯(lián)技術(shù)、遠(yuǎn)程通信技術(shù)、動態(tài)數(shù)據(jù)交換技術(shù)、數(shù)據(jù)庫訪問技術(shù)等。針對異構(gòu)工控系統(tǒng)群軟件功能集成,基于OPC(OLE for process control)的軟件系統(tǒng)集成受到了廣泛的關(guān)注[1-10]。為使用戶從底層通信模塊開發(fā)直接轉(zhuǎn)向軟件系統(tǒng)的功能開發(fā),本文對基于OPC的系統(tǒng)集成進(jìn)行了研究。
盡管Windows與COM/DCOM/OLE等技術(shù)已成為應(yīng)用軟件之間通信事實上的標(biāo)準(zhǔn),但是要實現(xiàn)復(fù)雜工控系統(tǒng)管控一體化仍然較為困難。由于各種原因,生產(chǎn)現(xiàn)場的大量數(shù)字化設(shè)備與控制器幾乎不可能都選自同一個產(chǎn)品制造商,不同制造商生產(chǎn)的產(chǎn)品往往各自遵從不同的通訊標(biāo)準(zhǔn),其通信協(xié)議一般是不開放的,軟硬件產(chǎn)品自成體系,各自組成自己的控制系統(tǒng),因此導(dǎo)致各應(yīng)用軟件與現(xiàn)場設(shè)備之間難以實現(xiàn)系統(tǒng)的無縫隙連接。盡管通信協(xié)議不同的系統(tǒng)也可通過協(xié)議轉(zhuǎn)換實現(xiàn)系統(tǒng)之間的互聯(lián),但是由于協(xié)議轉(zhuǎn)換實現(xiàn)的軟件開發(fā)工作量大,事實上這種實現(xiàn)模式并不具有普遍性。數(shù)據(jù)源與客戶程序之間要實現(xiàn)數(shù)據(jù)交換首先必須建立驅(qū)動連接,在驅(qū)動程序的驅(qū)動下才能完成設(shè)備與應(yīng)用程序的數(shù)據(jù)信息交換,但是各個廠商的驅(qū)動程序往往是不公開的,互不兼容,再加之設(shè)備的多樣性,因此這種驅(qū)動連接方式的缺陷是明顯的。在工業(yè)控制現(xiàn)場的控制系統(tǒng)一般采用工控組態(tài)軟件,通過I/O驅(qū)動從現(xiàn)場設(shè)備獲取實時數(shù)據(jù),再經(jīng)必要數(shù)據(jù)處理后一方面送計算機屏幕顯示,另一方面還要將相關(guān)數(shù)據(jù)上傳后臺數(shù)據(jù)庫以滿足管理系統(tǒng)的需要,此外還必須將經(jīng)過運算處理后的控制數(shù)據(jù)送給I/O設(shè)備,對現(xiàn)場控制系統(tǒng)的控制參數(shù)進(jìn)行調(diào)整[9-15]。如果應(yīng)用軟件與現(xiàn)場設(shè)備之間沒有驅(qū)動程序,那么系統(tǒng)之間的數(shù)據(jù)交換是非常困難的。這表明實現(xiàn)管控一體化的關(guān)鍵是在現(xiàn)場設(shè)備與應(yīng)用軟件之間要提供一個統(tǒng)一標(biāo)準(zhǔn)的數(shù)據(jù)接口。OPC規(guī)范[16-17]彌補了上述缺陷。該規(guī)范制定了硬件和應(yīng)用軟件之間的接口標(biāo)準(zhǔn),以方便系統(tǒng)實現(xiàn)開放的、無縫隙的連接[18-19]。
系統(tǒng)集成要解決的首要問題是應(yīng)用軟件與各種設(shè)備驅(qū)動程序之間的通信問題。按照傳統(tǒng)鏈接方法,如果一個系統(tǒng)有n個設(shè)備、m種應(yīng)用程序,那么要實現(xiàn)其間的數(shù)據(jù)交換,需要有n×m條鏈接,也就是說必須開發(fā)n×m個驅(qū)動程序。OPC技術(shù)是實現(xiàn)控制系統(tǒng)開放性的關(guān)鍵技術(shù),如圖1所示。它采用客戶/服務(wù)器體系,其統(tǒng)一標(biāo)準(zhǔn)的接口規(guī)范極大地方便了客戶程序與服務(wù)器的鏈接。采用OPC技術(shù),完成n個設(shè)備與m種應(yīng)用程序之間的鏈接,只需要開發(fā)n+m個驅(qū)動程序與OPC的接口即可。由此可見,基于OPC的數(shù)據(jù)訪問有強大的技術(shù)與經(jīng)濟(jì)優(yōu)勢,這就是OPC技術(shù)在系統(tǒng)集成中被廣泛采用的優(yōu)勢所在。
圖1 C/S模式下基于OPC的接口
隨著技術(shù)的進(jìn)步,應(yīng)用系統(tǒng)需要解決的問題會愈來愈多,程序也愈來愈龐大,系統(tǒng)功能也變得更加復(fù)雜。為降低軟件開發(fā)難度,通常是借助分解協(xié)調(diào)原理,將應(yīng)用程序的功能分解為若干獨立的模塊,應(yīng)用軟件承擔(dān)的任務(wù)由各個獨立的模塊共同協(xié)同完成。這些模塊通常稱為組件,即COM(component object model)與DCOM(distributed component object model)組件,它們明顯地具有易維護(hù)、易升級和開放性等特點,并且可各自獨立地設(shè)計、編輯和調(diào)試。
COM是組件對象模型,有客戶端和服務(wù)器??蛻舳私柚鶦OM接口實現(xiàn)對服務(wù)器的訪問。COM規(guī)范定義了組件間的通信機制,旨在提高互操作性和代碼可復(fù)用能力,它不依賴于任何特定的操作系統(tǒng),具有語言無關(guān)性,實現(xiàn)的核心是COM庫,為規(guī)范實現(xiàn)提供核心服務(wù)。COM由若干組件組成,每個組件有自己的獨立軟件功能,在一定條件下將其連接,就可實現(xiàn)相應(yīng)的功能,因其基于客戶/服務(wù)器模型,所以穩(wěn)定性好,擴展能力強。
DCOM是分布式組件對象模型,是基于COM組件對象模型之上的一種規(guī)范和服務(wù),旨在提供使COM組件加入網(wǎng)絡(luò)環(huán)境的透明網(wǎng)絡(luò)協(xié)議,使不同進(jìn)程之間的通信與協(xié)作可在分布式計算環(huán)境下實現(xiàn)。DCOM的編程模型決定了客戶程序只有通過接口才能獲得COM對象的服務(wù),因此進(jìn)行交互的實體是COM對象?;贑OM與DCOM,OPC技術(shù)有如下技術(shù)特性:① 借助DCOM技術(shù),OPC可方便地實現(xiàn)遠(yuǎn)程通信;② OPC技術(shù)提供了標(biāo)準(zhǔn)的訪問接口;③ 基于客戶/服務(wù)器結(jié)構(gòu),其底層通信由COM/DCOM提供支持,其過程對客戶端和服務(wù)器是透明的;④ 高速可靠的數(shù)據(jù)通信可借助OPC技術(shù)實現(xiàn)。
OPC規(guī)范有2種訪問接口方式:其一是自定義接口或定制接口(custom interface);其二是自動化接口(automation interface)。實際上自定義接口是一組COM接口,它有標(biāo)準(zhǔn)的接口函數(shù),只要標(biāo)準(zhǔn)的接口函數(shù)不改動,也可以增加一些函數(shù)以擴展其功能,有利于對服務(wù)器端的開發(fā),COM接口可借助C/C++等高級編程語言開發(fā)的程序?qū)ζ溥M(jìn)行訪問。自動化接口是基于腳本編程語言而定義的標(biāo)準(zhǔn)接口,實際上是對自定義接口的進(jìn)一步封裝,使自定義的COM接口轉(zhuǎn)換為自動化的OLE接口,它屏蔽了定制接口的接口虛函數(shù)表。2種訪問接口的關(guān)系是:對服務(wù)器端開發(fā)而言,選擇性地提供了自動化接口,也規(guī)定了OPC服務(wù)器必須提供的定制接口;對于客戶端程序開發(fā)而言,可以選擇任意一種接口進(jìn)行訪問。2種方式各有所長,其中自定義接口功能強大,但是需要應(yīng)用軟件開發(fā)者對COM技術(shù)有很好的掌握;自動化接口有易于開發(fā)的優(yōu)勢,但也存在易受接口本身功能限制的缺陷。
OPC服務(wù)器擁有服務(wù)器對象的所有信息,其對象是一種層次結(jié)構(gòu),層與層相互之間的關(guān)系是:Server為Group的容器,向OPC客戶端提供創(chuàng)建和操作OPC組對象的功能;Group為Item的容器,擁有本組對象的所有信息,提供組織和管理數(shù)據(jù)項的機制。數(shù)據(jù)項(Item)是讀寫數(shù)據(jù)的最小單位,它代表OPC服務(wù)器到數(shù)據(jù)源的一個物理連接,是一個具體的過程變量,客戶程序是不能直接訪問的,只有通過對組對象的訪問才能實現(xiàn)對數(shù)據(jù)項(Item)的訪問,其數(shù)據(jù)結(jié)構(gòu)包含值(value)、品質(zhì)(quality)和時間戳(time stamp)等3個變量。盡管OPC規(guī)定了客戶與服務(wù)器程序借助接口進(jìn)行數(shù)據(jù)交互的標(biāo)準(zhǔn),也定義了COM接口,但是OPC并沒有給出如何具體地實現(xiàn)的方法。接口可分為必選的和可選的,前者包括了客戶程序與服務(wù)器進(jìn)行數(shù)據(jù)交換的最基本功能,后者規(guī)定了一些額外的高級功能,用戶可自行選擇。因此在系統(tǒng)開發(fā)中OPC服務(wù)商可按照各自硬件特性實現(xiàn)其接口的成員函數(shù),在客戶程序端也可通過查詢以判斷服務(wù)器程序是否實現(xiàn)了可選接口的功能。
OPC技術(shù)在工業(yè)自動化系統(tǒng)中有廣泛的應(yīng)用,一種典型的DNA-M(distributed internet application architecture for manufacturing)體系結(jié)構(gòu)如圖2所示。OPC在該系統(tǒng)DNA-M中的地位相當(dāng)于一塊軟件“主板”,它已經(jīng)遠(yuǎn)遠(yuǎn)超出了OPC技術(shù)初期取代驅(qū)動程序的設(shè)計初衷。從圖2可以看出,在這種典型的制造業(yè)分布式網(wǎng)應(yīng)用程序體系結(jié)構(gòu)中,位于控制現(xiàn)場的WindowsCE設(shè)備、工業(yè)控制網(wǎng)絡(luò)、PLC控制系統(tǒng)以及數(shù)據(jù)采集系統(tǒng)等可直接與DNA-M連接,借助OPC方式獲取控制過程監(jiān)控數(shù)據(jù)。在該應(yīng)用案例中,各種管理、監(jiān)視與控制應(yīng)用等類似于插在PC機內(nèi)OPC主板上的軟件“芯片”,其間通信遵從OPC協(xié)議,借助OPC各個“芯片”可獲取現(xiàn)場的相關(guān)實時數(shù)據(jù),并且各個“芯片”之間彼此能方便地交換數(shù)據(jù)信息。
圖2 OPC在DNA-M體系中的應(yīng)用
在圖2中,OPC應(yīng)用的重要意義可體現(xiàn)在以下方面:①在系統(tǒng)設(shè)計中,用戶對軟件和設(shè)備有了更多的選擇余地,特別在集成制造系統(tǒng)開發(fā)中,可使設(shè)計變得更加靈活;②設(shè)備應(yīng)用程序只需編寫驅(qū)動接口程序就可連接不同設(shè)備,用不著為硬件特性增加或修改重寫驅(qū)動程序;③計算機硬件廠商只需提供一套符合OPC Server規(guī)范的程序組并編寫一套驅(qū)動程序,就可以滿足不同用戶開發(fā)應(yīng)用系統(tǒng)的需要,極大地方便了用戶的程序開發(fā)。
在工業(yè)自動化系統(tǒng)控制中,現(xiàn)場設(shè)備層與過程監(jiān)控層的數(shù)據(jù)信息交互是實現(xiàn)管理控制一體化的關(guān)鍵。反映工業(yè)生產(chǎn)現(xiàn)場系統(tǒng)設(shè)備運行狀態(tài)的信號、上位監(jiān)控軟件SCADA系統(tǒng)、人機界面軟件HMI以及相關(guān)的開發(fā)平臺和應(yīng)用軟件平臺等,均可借助OPC通用接口方便地與其進(jìn)行鏈接,其間的信號傳遞關(guān)系如圖3所示,從而可方便地使現(xiàn)場總線技術(shù)在工業(yè)自動化系統(tǒng)中獲得更廣泛的應(yīng)用。
從分析上述應(yīng)用案例可以看出,OPC在工業(yè)控制系統(tǒng)應(yīng)用中的作用,實際上就是在控制設(shè)備與控制軟件之間建立一個統(tǒng)一的數(shù)據(jù)信息存取規(guī)范和一個應(yīng)用軟件程序間通訊的接口標(biāo)準(zhǔn),該接口規(guī)范不僅支持網(wǎng)絡(luò)上分布式應(yīng)用程序間的通訊,也可用于單臺計算機的內(nèi)部通訊以及不同平臺上應(yīng)用程序間的通訊。OLE/COM及DCOM技術(shù)是OPC的基石,管控一體系統(tǒng)能夠?qū)崿F(xiàn)異構(gòu)環(huán)境下應(yīng)用系統(tǒng)的無縫集成,就是因為OLE/COM及DCOM完全支持上述分布式的應(yīng)用。
圖3 基于OPC的現(xiàn)場信號鏈接
在生產(chǎn)企業(yè)控制現(xiàn)場中有各種各樣的信息系統(tǒng),承載其數(shù)據(jù)信息的應(yīng)用程序與現(xiàn)場設(shè)備通過OPC可有效地進(jìn)行鏈接,其關(guān)鍵在于服務(wù)器在底層控制系統(tǒng)中采用了統(tǒng)一的OPC標(biāo)準(zhǔn),因此基于OPC可方便地將企業(yè)的現(xiàn)場控制層和過程監(jiān)控層、生產(chǎn)管理層以及經(jīng)營決策層進(jìn)行有效的、管控一體化的無縫集成。由圖4可以看出,OPC技術(shù)在企業(yè)信息系統(tǒng)應(yīng)用中的重要地位。
圖4 OPC在企業(yè)信息系統(tǒng)中的應(yīng)用
管控一體化集成系統(tǒng)的實現(xiàn)依賴于軟件應(yīng)用系統(tǒng)的無縫集成,隨著自動化軟硬件設(shè)備快速升級換代,更新周期越來越短,其設(shè)備種類必將隨著技術(shù)的發(fā)展越來越多。大量工程實踐表明,基于OPC技術(shù)規(guī)范和接口標(biāo)準(zhǔn)的產(chǎn)品,在現(xiàn)場過程控制中可即插即用,具有互操作性,可解決不同監(jiān)控系統(tǒng)間實時數(shù)據(jù)交換難題,有利于實現(xiàn)工業(yè)自動化系統(tǒng)的無縫集成。
[1]Qiao Jiaxin.Application research on enterprise integrated automation based on OPC & OPC-XML[C]//Automation and Logistics,2009,ICAL'09.[S.l.]:IEEE International Conference,2009:747-751.
[2]劉玉成,劉玉斌,李太福.基于OPC的復(fù)雜工控系統(tǒng)的軟件集成技術(shù)[J].西南師范大學(xué)學(xué)報:自然科學(xué)版,2006,31(5):132-135.
[3]唐恩.基于OPC和Winsock API的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計[J].自動化與儀器儀表,2011(5):52-54.
[4]宋承周,顏小軍,王佳軍.基于OPC通信技術(shù)的智能建筑信息集成的實現(xiàn)[J].機電工程,2010,27(1):41-43.
[5]譚元飛,王再英.基于OPC的以MATLAB為計算平臺的工業(yè)監(jiān)控系統(tǒng)設(shè)計[J].自動化與儀器儀表,2011(4):54-55.
[6]范新強.OPC技術(shù)及其集成方案設(shè)計分析[J].自動化與儀器儀表,2011(1):45-48.
[7]李春洋,周寧.面向BACnet協(xié)議的工控OPC服務(wù)器設(shè)計[J].武漢理工大學(xué)學(xué)報,2010,32(3):377-381.
[8]蘇延召,李艾華.基于OPC和Web Services的陣地一體化管理系統(tǒng)集成[J].國外電子測量技術(shù),2010,29(8):53-56.
[9]王國富.基于OPC和B/S的生產(chǎn)管理網(wǎng)絡(luò)研究與實現(xiàn)[J].自動化與儀器儀表,2010(3):135-137.
[10]趙武,馬建偉.基于OPC的MATLAB與WINCC實時數(shù)據(jù)交換設(shè)計與實現(xiàn)[J].通信技術(shù),2008,41(12):98-100.
[11]Mohammad Ali Livani.Scheduling hard and soft real-time communication in a controller area network[J].Control Engineering Practice,2000(7):1515-1523.
[12]Eduardo Tovar.Supporting real-time distributed computer-controlled systems with multi-hop P-NET networks[J].Control Engineering Practice,2000(7):1015-1025.
[13]梁爽,姚錫凡.基于OPC技術(shù)的柔性制造系統(tǒng)集成平臺研究[J].機械設(shè)計與制造,2010(6):252-253.
[14]楊明極,郭劍虹,沈強,等.OPC技術(shù)在工業(yè)控制領(lǐng)域的研究[J].哈爾濱理工大學(xué)學(xué)報,2009,13(4):29-31.
[15]陸會明,張冬練.基于SCADA系統(tǒng)OPC通信的控制系統(tǒng)實時仿真[J].現(xiàn)代電力,2008,25(3):60-63.
[16]OPC Foundation.OPC Data Access Automation Interface Standard Version 2.03[EB/OL].[2000-07-27].http://www.opcfoundation.org/OPC_specification.htm.
[17]OPC Foundation.OPC White Paper.DCOM,OPC and Performance Issues[EB/OL].[2001-06-14].http://www.opcfoundation.org/OPC_specification.htm.
[18]邢建春,王平.工業(yè)控制軟件互操作標(biāo)準(zhǔn)OPC和DDE綜述[J].工業(yè)控制計算機,2001(12):31-34.
[19]Perez F,Orive D,Marcos M,et al.Access to process data with OPC-DA using IEC61499 Service Interface Function Blocks[C]//Emerging Technologies & Factory Automation,2009.[S.l.]:IEEE Conference,2009:1-4.