0 引言
2002 年春天,在漢諾威博覽會上,由OPC基金會開發(fā)的OPC DX(Data exchange)數(shù)據(jù)交換規(guī)范演示系統(tǒng)成功實(shí)現(xiàn)了Profibus國際(PI)的Profinet, ODVA的EtherNet/IP, 以及基金現(xiàn)場總線FF的HSE三種工業(yè)以太網(wǎng)之間的實(shí)時數(shù)據(jù)交換[1]。2003年5月,OPC Data eXchange 1.0規(guī)范正式發(fā)布。基于以太網(wǎng)數(shù)據(jù)交換的標(biāo)準(zhǔn)的提出,并得到三大國際性工業(yè)通信組織一致共同支持OPC DX雖然是折衷的結(jié)果,但是OPC DX在工業(yè)控制系統(tǒng)中的應(yīng)用將為最終解決數(shù)據(jù)共享與設(shè)備互操作問題帶來希望。
文中研究了基于OPC DX的多總線控制系統(tǒng)的集成方案、OPC-DX服務(wù)器設(shè)計(jì)的總體構(gòu)架、OPC DX源服務(wù)器數(shù)據(jù)項(xiàng)到目標(biāo)服務(wù)器數(shù)據(jù)項(xiàng)數(shù)據(jù)傳輸以及更新的控制策略以及設(shè)計(jì)OPC DX服務(wù)器的總體思路等關(guān)鍵問題。
1 現(xiàn)場總線與工業(yè)以太網(wǎng)
隨著自動化的發(fā)展,工業(yè)控制系統(tǒng)的互操作性和開放性的要求越來越高。
自80年代以來,有幾種現(xiàn)場總線技術(shù)已逐漸形成,在一些特定的應(yīng)用領(lǐng)域顯示了各自的優(yōu)勢。顯然某一種現(xiàn)場總線不可能解決所有工業(yè)問題,這意味著今后現(xiàn)場總線的發(fā)展將持續(xù)多種總線并存的趨勢。由于使用的各自專用的協(xié)議,現(xiàn)場總線的開放性是有條件,是不徹底的,難以沿開放的方向發(fā)展。
當(dāng)現(xiàn)場總線的發(fā)展遇到阻礙時以太網(wǎng)技術(shù)卻得到了迅猛發(fā)展,在工業(yè)界有越來越多的通信與自動化應(yīng)用正逐漸形成一股采用以太網(wǎng)絡(luò)作為主要通信干網(wǎng)的新趨勢。但是,以太網(wǎng)本質(zhì)上只是一個物理層標(biāo)準(zhǔn),它只定義了OSI參考模型的物理層和數(shù)據(jù)鏈路層。目前,在工業(yè)現(xiàn)場控制網(wǎng)絡(luò)領(lǐng)域,以太網(wǎng)最典型的應(yīng)用是采用以太網(wǎng)和TCP/IP兩種技術(shù)結(jié)合的模式,即靈活的Ethernet底層加上幾乎成為通用標(biāo)準(zhǔn)的網(wǎng)絡(luò)傳輸協(xié)議TCP/IP,使得以太網(wǎng)能夠非常容易地集成到以Internet和 Web技術(shù)為代表的信息網(wǎng)絡(luò)中。即便如此,若在應(yīng)用層其協(xié)議規(guī)范不統(tǒng)一,依然不能實(shí)現(xiàn)數(shù)據(jù)的共享[2 ]。
事實(shí)上,由于工業(yè)以太網(wǎng)顯而易見的發(fā)展前景,幾大現(xiàn)場總線國際組織紛紛推出各自現(xiàn)場總線在以太網(wǎng)上的應(yīng)用方案,如PI的Profinet, ODVA的EtherNet/IP, 以及FF的HSE等。盡管工業(yè)以太網(wǎng)允許不同的應(yīng)用層協(xié)議運(yùn)行在同一套網(wǎng)絡(luò)硬件上,但是不同機(jī)構(gòu)推出的工業(yè)以太網(wǎng)協(xié)議采用了不同的應(yīng)用層協(xié)議,相互之間無法直接溝通[3]。
2 OPC DX數(shù)據(jù)交換規(guī)范介紹
OPC(OLE for Process Control)是用于過程控制的對象鏈接和嵌入(OLE, Object Linking and Embedding)技術(shù),是自動化領(lǐng)域許多世界領(lǐng)先的軟、硬件公司與微軟公司合作開發(fā)的一個工業(yè)過程控制應(yīng)用程序通信標(biāo)準(zhǔn)。OPC是基于Microsoft公司的Distributed Internet Application (DNA)構(gòu)架和Component Object Model(COM)技術(shù),根據(jù)易于擴(kuò)展性而設(shè)計(jì)。該標(biāo)準(zhǔn)定義了應(yīng)用Microsoft操作系統(tǒng)在基于PC 的客戶機(jī)之間交換自動化實(shí)時數(shù)據(jù)的方法,它為過程控制提供了一套標(biāo)準(zhǔn)的接口、屬性和方法,是實(shí)現(xiàn)控制系統(tǒng)開放性的關(guān)鍵技術(shù)。
OPC出現(xiàn)以前,要從種類繁多的現(xiàn)場設(shè)備獲得數(shù)據(jù),應(yīng)用軟件開發(fā)者不得不了解各種硬件細(xì)節(jié),針對不同的硬件開發(fā)不同的驅(qū)動程序。OPC定義了一套標(biāo)準(zhǔn)接口,在現(xiàn)場總線和計(jì)算機(jī)之間建立了信息傳遞的專用通道。
OPC DA(Data Access)提供了一種縱向的通信,也即OPC 服務(wù)器和OPC 客戶端之間的通信。OPC DA服務(wù)器作為數(shù)據(jù)源,利用廠家提供的特殊的物理I/O網(wǎng)絡(luò)和協(xié)議,與現(xiàn)場的控制設(shè)備相連接。這樣,使任何帶有OPC標(biāo)準(zhǔn)接口的客戶端程序能夠借助與OPC服務(wù)器的通信訪問任意來自底層的數(shù)據(jù)源。
但在不同現(xiàn)場總線網(wǎng)段上的設(shè)備之間需要進(jìn)行信息交流時,一般要借助于中間件來完成。這種橋接技術(shù)中,中間件實(shí)際上就是一個OPC客戶端,從一個服務(wù)器(源服務(wù)器)讀取數(shù)據(jù),再寫入另一服務(wù)器(目標(biāo)服務(wù)器)。采用這樣的訪問手段,一方面難以保證系統(tǒng)的實(shí)時性;另一方面,它為通信系統(tǒng)增加了額外的故障點(diǎn),錯誤發(fā)生時,需要終端用戶對其進(jìn)行故障診斷和維護(hù);此外,終端用戶還必須依賴中間件不同開發(fā)商提供的繁多組態(tài)接口,這恰好有悖于OPC的接口標(biāo)準(zhǔn)化的初衷[4]。OPC DX正是由此而提出的解決方案。
OPC DX是相對于OPC DA的客戶端-服務(wù)器通信模式推出的服務(wù)器-服務(wù)器模式,提供了在以太網(wǎng)上服務(wù)器到服務(wù)器可互操作的數(shù)據(jù)通信方法,使系統(tǒng)間可用相同的標(biāo)準(zhǔn)實(shí)時交換數(shù)據(jù),其實(shí)質(zhì)就是基于高速以太網(wǎng)的軟件網(wǎng)關(guān)技術(shù)。由于不需要數(shù)據(jù)存儲和發(fā)送的中間環(huán)節(jié),而不必?fù)?dān)心不同協(xié)議間的轉(zhuǎn)換問題,這樣一個OPC服務(wù)器就能直接與另一個OPC服務(wù)器直接相連,使駐留在不同體系的現(xiàn)場總線控制器上的服務(wù)器數(shù)據(jù)可以直接交換。
OPC DX標(biāo)準(zhǔn)向需要跨網(wǎng)絡(luò)訪問數(shù)據(jù)的用戶提供了系統(tǒng)的互操作性,但是隱藏了網(wǎng)絡(luò)技術(shù)的細(xì)節(jié)。任何遵循OPC DX標(biāo)準(zhǔn)控制網(wǎng)絡(luò)系統(tǒng)和應(yīng)用控制軟件都可以和帶有OPC DX服務(wù)器的現(xiàn)場總線進(jìn)行數(shù)據(jù)交換。此外,OPC DX 最大的好處在于它可以使DCS、PLC等老系統(tǒng)與工業(yè)以太網(wǎng)、現(xiàn)場總線控制系統(tǒng)無縫地融合在一個可以互操作的系統(tǒng)里[5]。如圖1所示。
顯然,OPC DX只是定義了一套不同廠家的設(shè)備和控制系統(tǒng)基于系統(tǒng)管理層進(jìn)行數(shù)據(jù)交換的接口標(biāo)準(zhǔn),并不替代各個現(xiàn)場總線的作用[4]。因此,OPC DX將與現(xiàn)場總線以及工業(yè)以太網(wǎng)共存在自動化控制網(wǎng)絡(luò)中。
3 OPC DX服務(wù)器的結(jié)構(gòu)模型
OPC DX服務(wù)器的實(shí)際上是與OPC DA服務(wù)器兼容的功能擴(kuò)充服務(wù)器[6],它增加了如下幾個
(1) DX數(shù)據(jù)庫:在DX服務(wù)器的地址空間里維護(hù)DX數(shù)據(jù)庫,用于描述DX服務(wù)器、DX連接的狀態(tài)以及源服務(wù)器;
(2) 組態(tài)接口:OPC DX通過該接口實(shí)現(xiàn)增加、修改、刪除DX連接和源數(shù)據(jù)服務(wù)器等操
(3) 源數(shù)據(jù)存取:DX服務(wù)器通過源數(shù)據(jù)存取組件訂閱源數(shù)據(jù),DX服務(wù)器支持訂閱多種源服務(wù)器類型;
(4)運(yùn)行期間操作:運(yùn)行期間操作包括源數(shù)據(jù)項(xiàng)向目標(biāo)項(xiàng)的復(fù)制、更新等,并規(guī)定了源數(shù)據(jù)的訂閱的開始、停止、操作失敗后的動作等;
(5)對控制與監(jiān)視的支持:該功能專門用于DX服務(wù)器、源服務(wù)器和一些獨(dú)立的DX連接作運(yùn)行期間控制和監(jiān)視的DA項(xiàng),這些項(xiàng)通過DX服務(wù)器的DA接口訪問。
圖2顯示了其總體架構(gòu),在這里OPC DX服務(wù)器實(shí)際上扮演了3種角色:
(1)它要實(shí)現(xiàn)OPC DA服務(wù)器的功能,OPC DX服務(wù)器為組態(tài)客戶端提供了OPC DA接口來瀏覽和訪問數(shù)據(jù),這些數(shù)據(jù)來自現(xiàn)場設(shè)備、OPC服務(wù)器、或者是其它相連的數(shù)據(jù)源;
(2)作為OPC DX服務(wù)器,OPC DX增加了服務(wù)器組態(tài)和管理的標(biāo)準(zhǔn)接口,使得任何供應(yīng)商提供的OPC DX服務(wù)器組態(tài)工具可以方便地增加、修改、和刪除DX連接,建立源項(xiàng)和目標(biāo)項(xiàng)的連接
(3)OPC DX服務(wù)器還作為源數(shù)據(jù)存取實(shí)體,管理DX數(shù)據(jù)庫, OPC DX服務(wù)器檢測所有的DX連接以決定其是否支持訪問來自源服務(wù)器的數(shù)據(jù),如果支持,則訪問源服務(wù)器并傳輸數(shù)據(jù)。
4 基于OPC DX的數(shù)據(jù)交互的實(shí)現(xiàn)
OPC DX實(shí)現(xiàn)異種網(wǎng)絡(luò)的橫向的數(shù)據(jù)交換,需要實(shí)現(xiàn)以下兩個主要的功能[7]。首先,為了解決OPC DX目標(biāo)服務(wù)器如何從源服務(wù)器中獲取數(shù)據(jù)的問題,OPC DX服務(wù)器不但具有DA服務(wù)器所有的功能,而且OPC DX服務(wù)器內(nèi)還作為帶有DX接口OPC DA客戶端,負(fù)責(zé)向其他服務(wù)器讀取數(shù)據(jù),這樣就消除了對中間件的依賴以及橋接技術(shù)給系統(tǒng)帶來的不穩(wěn)定因素。其次,為了建立數(shù)據(jù)橫向交互的聯(lián)系,要進(jìn)行DX組態(tài)配置接口和實(shí)時監(jiān)視接口的標(biāo)準(zhǔn)化設(shè)計(jì)。圖3 顯示了OPC DX服務(wù)器內(nèi)DA服務(wù)器和客戶端的層次及OPC DX服務(wù)器之間的數(shù)據(jù)交互原理,同時描述了利用通用組態(tài)工具建立兩個OPC DX服務(wù)器間通信聯(lián)系。
OPC DX通過DX連接來描述數(shù)據(jù)從源項(xiàng)到目標(biāo)項(xiàng)的傳輸。DX連接由源項(xiàng)和目標(biāo)項(xiàng)的標(biāo)識、兩者間傳遞的特征數(shù)據(jù)、DX連接的描述性信息等多項(xiàng)屬性共同構(gòu)成,在服務(wù)器中表現(xiàn)為一些只讀的DA項(xiàng),OPC DX組態(tài)客戶端可通過OPC DA接口對其組態(tài)配置、控制和監(jiān)視。DX連接的信息儲存在DX服務(wù)器中,用OPC DA地址空間中的枝或節(jié)點(diǎn)組成的邏輯組來代表DX連接。
在DX接口的實(shí)現(xiàn)上,應(yīng)支持DA1.0、DA2.05、DA3.0等服務(wù)器類型,利用連接點(diǎn)的方式跟OPC服務(wù)器連接。另外,OPC DX服務(wù)器和客戶端總體還有以下功能和特點(diǎn)。
4.1 瀏覽源項(xiàng)、目標(biāo)項(xiàng)和DX數(shù)據(jù)庫
組態(tài)客戶端利用OPC DA接口瀏覽所有OPC服務(wù)器中的源項(xiàng)和目標(biāo)項(xiàng)。通常,目標(biāo)項(xiàng)只能在DX服務(wù)器中,源數(shù)據(jù)項(xiàng)包含在OPC DA或OPC DX服務(wù)器中。組態(tài)客戶端按需要選擇源項(xiàng)和目標(biāo)項(xiàng)對DX連接組態(tài),設(shè)置數(shù)據(jù)交互相關(guān)的屬性。選取數(shù)據(jù)源的時候,采用樹型的地址空間瀏覽方式,顯示OPC數(shù)據(jù)項(xiàng)。
OPC DX客戶端和服務(wù)器都必須能夠支持地址空間瀏覽功能。在OPC DA的實(shí)現(xiàn)中,服務(wù)器地址瀏覽功能只是可選的,而在DX服務(wù)器連接的組態(tài)中,被讀的項(xiàng)必須由服務(wù)器地址空間瀏覽來記錄。
OPC DA客戶端通過OPC DA瀏覽接口瀏覽DX服務(wù)器的DX數(shù)據(jù)庫,利用瀏覽路徑方式直接構(gòu)造訪問DX連接的路徑,并且客戶端可以為DX連接構(gòu)造多條路徑。DX數(shù)據(jù)庫中還包含有OPC DX所支持的接口表列和源服務(wù)器地址。
4.2 組態(tài)
DX組態(tài)客戶端設(shè)計(jì)成可選擇的瀏覽和監(jiān)視兩種模式。
多個組態(tài)客戶程序可以同時對DX連接和DX數(shù)據(jù)庫中源服務(wù)器設(shè)置進(jìn)行組態(tài)和維護(hù)操作。DX連接、源服務(wù)器都設(shè)定有版本屬性,當(dāng)客戶程序增加或修改DX連接或源服務(wù)器時,給定了一個標(biāo)識符也就是版本,如果要修改或刪除項(xiàng)必須驗(yàn)證該標(biāo)識密碼,否則修改要求會被拒絕。
DX服務(wù)器中的DX連接可以永久的存儲,服務(wù)器不斷的維護(hù)該數(shù)據(jù)信息。當(dāng)出現(xiàn)斷電情況下,重新啟動機(jī)器以后,就可以使DX服務(wù)器之間的通信重新建立連接,立即恢復(fù)原來的狀態(tài),這樣就保持操作的連續(xù)性。
4.3 橫向數(shù)據(jù)傳遞
一旦DX連接組態(tài)完成,DX服務(wù)器就可以訪問源服務(wù)器,獲取源數(shù)據(jù)項(xiàng)的值。每個DX連接都有源數(shù)據(jù)列表,按照FIFO(先進(jìn)先出)的次序,更新目標(biāo)項(xiàng)。服務(wù)器啟動時,用戶可以組態(tài)源數(shù)據(jù)項(xiàng)的上下限。如遇到DX組態(tài)的數(shù)據(jù)DX服務(wù)器無法識別,就按設(shè)定的標(biāo)準(zhǔn)類型轉(zhuǎn)換數(shù)據(jù)。
DX服務(wù)器負(fù)責(zé)管理源數(shù)據(jù)項(xiàng)到目標(biāo)項(xiàng)的更新過程。通常的過程是訂閱數(shù)據(jù)到達(dá)→復(fù)制數(shù)據(jù)。當(dāng)外界用戶需要使用“替代值”、“覆蓋值”時,文中采用如下開關(guān)真值數(shù)據(jù)流串并聯(lián)策略:
源項(xiàng)→“數(shù)據(jù)源連接”→“有無替代值”→“有無覆蓋值”→“目標(biāo)項(xiàng)連接”→目標(biāo)項(xiàng)
只有源項(xiàng)和目標(biāo)項(xiàng)之間開關(guān)量為真時,才可更新目標(biāo)項(xiàng)。
4.4控制與監(jiān)視
在系統(tǒng)運(yùn)行期間,OPC客戶端訂閱相應(yīng)的屬性項(xiàng),以監(jiān)視DX服務(wù)器、源服務(wù)器和DX連接的狀態(tài)。通過OPC DA接口訪問數(shù)據(jù)項(xiàng)時,品質(zhì)、時間戳等屬性參照OPC DA規(guī)范的相關(guān)策略,并可完成連接/斷開源服務(wù)器、手動設(shè)定省卻值等。DA客戶端的寫入值和DX服務(wù)器的返回值都可以修改狀態(tài)屬性。
如果接收到源服務(wù)器的關(guān)閉事件,此后的一段時間,在每分鐘內(nèi),DX服務(wù)器都會與“離線”服務(wù)器進(jìn)行一次連接嘗試,如果連接全部失敗,則確認(rèn)源服務(wù)器關(guān)閉。DX服務(wù)器就斷開與它的所有連接,相應(yīng)的DX連接標(biāo)為“離線”。
5 結(jié)束語
隨著OPC 的不斷完善和發(fā)展,這項(xiàng)技術(shù)已經(jīng)廣泛應(yīng)用于工業(yè)自動化領(lǐng)域。在現(xiàn)場級的控制網(wǎng)絡(luò)中,OPC DA規(guī)范將底層硬件驅(qū)動程序和與之配套上層應(yīng)用程序的開發(fā)有效的分隔開,使用統(tǒng)一的接口為不同硬件設(shè)備與任意上層應(yīng)用程序到現(xiàn)場設(shè)備中數(shù)據(jù)的垂直訪問的“橋梁”,不僅易于系統(tǒng)維護(hù)和升級,而且縮短了開發(fā)時間;在以太網(wǎng)現(xiàn)場總線網(wǎng)絡(luò)中,OPC DX是現(xiàn)場總線協(xié)議之間互連與互操作的一個重要手段,并為包括DCS和PLC在內(nèi)的系統(tǒng)集成提供有效方案。OPC DX將和高速現(xiàn)場總線和以太網(wǎng)一起,為工業(yè)自動化數(shù)據(jù)交換提供更開放的通訊標(biāo)準(zhǔn)。此外,借助SOAP/XML,OPC還可以應(yīng)用于廣域網(wǎng)進(jìn)行數(shù)據(jù)訪問,以及研發(fā)不依賴Windows平臺的OPC技術(shù)在嵌入式系統(tǒng)中的解決方案。
[參 考 文 獻(xiàn)]
[1] OPC動態(tài)[J].自動化博覽,2002,19(2):5.
[2] 郝曉弘,侯順紅.工業(yè)以太網(wǎng)認(rèn)識的三大誤區(qū)[J].自動化與儀表,2004,(3):38-42.
[3] D Holley.OPC DX glues fieldbuses together[EB/OL]. http://ethernet.industrial-networking.com.
[4] Jonas Berge. OPC DX is the soft gateway [EB/OL].http://www.isa.org.
[5] Don Holley. A universal translator?-OPC Data eXchange specification for Ethernet networks[EB/OL]. http://www.sensorsmag.com.
[6] OPC Foundation. OPC Data exchange(DX) Specification Version1.0[S].http:∥www.opcfoundation.org .2003.
[7] Li Zheng, Nakagawa H.OPC (OLE for process control) specification and its developments[A]. SICE2002.Proceedings of the 41st SICE Annual Conference[C].2002.2:917-926.