摘要:本文主要研究了目前水面艦艇上的各種智能儀表設備與主機通信的OPC技術。介紹了OPC技術的基本原理、發展現狀以及其在不同應用環境下所面臨的問題及其解決方案。此外,重點研究了OPC XML-DA、OPC UA技術的體系結構,及層次關系。最后,闡述了OPC技術在工控領域發展的廣闊前景與應用方向
關鍵詞:OPC XML-DA ;OPC UA; OPC 接口
中圖分類號:TP311文獻標志碼:B文章編號:1671-7953(2009)03-0095-04
隨著計算機科學技術、工業控制等方面的新技術的迅速發展,在大型艦船上如何安全可靠又高速的進行數據交換已經變得越來越重要。而目前先進的艦船上都配備各種類型的傳感器、智能儀表、大型監控裝置,這就有可能造成網絡擁塞,影響監控系統的實時性、可靠性等。因此,基于解決大型艦船多種智能設備與主機的數據交互問題,我們引入了用于過程工業控制的OPC[1] (OLE For Process Control)技術,它是基于Windows的OLE(Object Linking and Embedding)、COM(Component Object Model)技術,包括了自動化應用的一整套的接口、屬性和方法的標準。
1、OPC技術的發展現狀
經過國際OPC基金會成員十數年的努力,目前已經制定了一套適合過程控制應用的OPC協議標準,報警(AE)、事件與歷史數據訪問(HDA)、支持過程數據訪問(DA)、安全性標準、OPC XML、OPC Data eXchange以及尚未實施的OPC UA等標準,這些標準為系統提供了多種功能的接口。便于技術人員完成管控一體化系統的設計,向上可以面向企業級的高級應用及管理,向下可以管理設備級的儀表設備等。
2、COM/DCOM概述
2.1COM技術
現行的所有OPC技術都是以COM/DCOM技術為基礎的。實際上,OPC技術就是定義了一些用于數據訪問、事件和報警處理、歷史數據訪問的COM對象和接口。因此,要真正從底層掌握OPC規范,就必須清楚COM/DCOM技術。
首先,COM(Component Object Model)是一種以組件為發布單元的對象模型,這種模型可以用一種統一的方式進行交互。COM既提供了組件之間進行交互的規范,也提供了實現交互的環境。由于組件對象模型之間交互的規范不依賴于任何特定的語言,因此COM技術也可以作為不同語言協作開發的一種標準。
其次,COM技術采用組件化的設計結構,不僅繼承了組件易于定制和升級靈活等優點,而且引入面向對象的思想,規范了組件之間的通信接口。在COM規范中,COM對象和接口是兩個非常活躍的元素,一個COM組件通常是包含一個或多個COM對象,而在COM對象上則可實現多個接口。COM規范采用客戶/服務器通信模型,客戶端總是先創建服務器對象,然后獲得對象上的接口進行通信。
此外,COM規范還具有語言無關性、進程透明性和對象的可重用性三個非常重要的特性。
2.2分布式COM(DCOM)
DCOM是COM在分布式環境下的擴展,它可以支持不同計算機上組件對象與客戶程序之間或者組件對象之間的相互通信,這些計算機可以是在局域網內、廣域網內,甚至通過Internet進行連接。對于客戶程序而言,組件程序所處的位置是透明的,DCOM擴展了COM的位置透明性。因此,無論是本機上的組件程序,還是網絡上的組件程序,3在客戶端都可以采用同樣的方式進行訪問。
DCOM作為COM的擴展,它不僅繼承了COM,由于其本身應用環境的不同,還提供了一些新的特性,包括:網絡安全性、容錯性、跨平臺調用等等。從COM轉到DCOM,并不僅僅意味著客戶程序與組件程序通信線路的加長,而是協作運行的環境徹底地發生了變化。
3、OPC技術概況
OPC協議中包括了數據訪問規范、報警和事件規范、歷史數據存取規范、批量過程規范、OPC安全性規范、數據訪問標準的測試工具、過程數據的XML規范、數據交換規范、命令規范、公共I/O規范、合成數據規范等。
3.1OPC對象及接口
3.1.1OPC對象結構
OPC服務器對象用來提供關于服務器對象自身的相關信息,并作為OPC 組對象的容器。
OPC組對象除了提供關于組對象自身的相關信息外,還提供組織和管理項對象的機制。OPC組對象提供了OPC客戶程序用來組織數據的一組方法。此外,OPC規范定義了兩種組對象:公共組和私有組。公共組由多個客戶共享,局部組只隸屬于一個OPC客戶。全局組對所有連接在服務器的應用程序都有效,而私有組只能對建立他的CLIENT有效。這一特性類似于C++程序中的全局對象與局部對象的區別,便于公共數據共享與私有數據的保護。
OPC項對象至少包括值(Value)、品質(Quality)與時間戳(Time Stamp)三個變量。此外,要注意OPC項對象僅代表了OPC服務器到數據源的一個物理連接,它本身并不是數據源,僅僅是數據源的一個地址索引。最后,OPC數據項不能被直接訪問,而是要通過OPC組對象提供的接口進行訪問,這樣就避免了直接對數據項的操作,增加了系統的安全性。
3.1.2OPC接口結構
OPC規范定義了定制接口與自動化接口兩種接口,如圖2:
其中定制接口多為用C++語言編寫,實現功能的可定制,由于其編程語言的特性決定其運行效率高但開發難度大,同時要求開發者必須掌握COM的開發知識。而OPC規范明確規定此種接口是必須要實現的。而自動化接口的開發不要求開發者懂得COM技術,使得程序員可以從底層的COM開發中解脫出來,將精力集中在應用程序功能的開發上,大大加快了OPC應用程序的開發進度。
標準的服服務器對象與組對象接口結構如圖3:
自動化客戶通過使用WrapperDLL,訪問OPC DA服務器。WrapperDLL在客戶端進程內調用,將服務器提供的定制接口與客戶端要求的自動化接口進行協議轉換。
3.2OPC技術特點
OPC技術之所以能引領工控領域數據通信的發展方向,主要是由幾下幾點決定:
1)OPC技術采用了標準的Windows體系接口,這樣既有利于硬件制造商,也有利于軟件開發商。硬件制造商為其設備提供的接口程序的數量減少到一個,軟件開發商也僅需要開發一套通訊接口程序。
2)可以將各個子系統從物理上分開,分布于網絡的不同節點上。因為OPC規范以OLE/COM/DCOM為技術基礎,而OLE/DCOM支持TCP/IP等網絡協議。
3)可以使用戶完全從底層的開發中脫離出來。因為OPC按照面向對象的原則,將一個應用程序(OPC服務器)作為一個對象封裝起來,只將接口方法暴露在外面,客戶以統一的方式去調用這個方法,從而保證軟件對客戶的透明性。
4)可以使系統的應用范圍更廣。因為OPC實現了遠程調用,使得應用程序的分布與系統硬件的分布無關,便于系統硬件配置,使得系統的應用范圍更廣。
5)提高了系統的可維護性。因為采用OPC規范,便于系統的組態,將系統復雜性大大簡化,可以大大縮短軟件開發周期,提高軟件運行的可靠性和穩定性,便于系統的升級與維護。
6)實現了系統的開放性。因為OPC規范了接口函數,不管現場設備以何種形式存在,客戶都以統一的方式去訪問,從而實現系統的開放性,易于實現與其它系統的接口。
3.3OPC XML-DA協議標準
OPC XML-DA規范采用基于XML(eXtensible Markup Language)的Web Service技術,Web Services 是一套基于XML進行分布式數據交換、服務調用的標準,它定義了應用程序如何在Web上實現互操作性,是建立可互操作的分布式應用程序的平臺。此外,它還定義了數據表示(XML)、消息交換(SOAP)、服務描述(WSDL)、服務發現與發布(UDDI和WS-Inspection)等相關組成部分。Web Services的最大優點就是它在Internet上的無障礙傳輸。
Web Service提供了通過網絡直接獲取各種服務的接口,并通過標準的網絡協議提供給網絡用戶,在Internet上任何節點、任何平臺上的應用程序只要符合Web Service的標準都可以從它的公共接口獲取服務,使得不同的應用程序在Internet上共享和交換數據變得更加容易。其基本結構如圖4:
5OPC UA技術
隨著網絡技術的迅猛發展和企業管理系統對互操作性要求的提高,基于COM技術的OPC標準開始無法滿足要求,主要體現在以下三個方面:
1)缺少跨平臺通用性。由于COM技術對Microsoft平臺的依賴性,使得基于COM的OPC接口很難被應用到其它系統的平臺上。
2)較難與Internet應用程序集成。由于網絡防火墻會過濾掉大多數基于COM傳輸的數據,因此基于COM的OPC接口無法與Internet應用程序進行正常的交互。
3)較難與企業應用程序連接。企業應用程序(如ERP)需要實時的工業現場數據,這些數據通常來自OPC服務器。但是這些上層的應用程序缺少與OPC服務器交互的接口,因而不能進行通信連接,無法滿足企業更高層次的需求。
為了解決以上問題,OPC基金會提出了OPC UA標準。OPC UA(OPCUnified Architecture),顧名思義就是指OPC的統一架構,OPC UA在功能上集成了Data Access、Alarms and Events、Commands、Historical Data Access、Batch、Data Exchange的功能。實質上就是對OPC DA功能上進行了擴展,將多種功能接口集成在同一平臺上。
OPC UA不僅完成了設備之間現場級的整合,而且完成了企業級的垂直整合。它不僅可以為設備之間提供快速的數據通信,同時也可以為企業大型管理系統提供可靠的數據支持。
6結束語
隨著OPC協議的逐步完善,越來越多的國內外廠商給予了高度的重視, 很多公司都在原來產品的基礎上添加了對OPC協議的支持,它的應用范圍會越來越廣。由于OPC協議統一了數據訪問的接口,使控制系統進一步走向開放,實現信息的集成和共享。而且OPC協議技術改變了原有的控制系統模式,給工業自動化領域帶來了勃勃生機,也給國內系統生產廠商提出了一個發展的機遇和挑戰。
參考文獻
[1] OPC Data Access Specification2.0[S].OPC Foundation,2002.
[2] 朱海濤.OPC規范在Internet實時監控系統中的應用[D].北京:中國石油大學工程,2006.
[3] VU VANTAN,DAE SEUNGYOO, and MYEONGJAE YI. Modern Distributed Data Acquisition and Control Systems based on OPC Techniques[C].Proceedings of the 14th Annual IEEE International Conference.
[4] OPC Foundation.Data Access Custom Interface Standard Version 2.04[S].2000.
[5] OPC國際基金會中國辦事處.OPC技術綜述[M].北京:OPC國際基金會中國辦事處,2001.
[6] 姚望舒.OPC服務器開發[D].昆明:昆明理工大學,2001.
[7] 鄭立譯.OPC應用程序入門[M].日本OPC協會,OPC(中國)促進委員會,2002.
[8] OPC XML DA Specification1.0[S].OPC Foundation,2003.
[9] 革新,李炎新,邢建春,等.COM中連接點及其在OPC數據采集中的應用[J].工業控制計算機,