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