基于OPC的實時數據獲取技術
1 引言
組態軟件通過I/O驅動程序從現場I/O設備獲得實時數據,對數據進行必要的處理后,一方面以圖形方式直觀地顯示在計算機屏幕上,另一方面按照組態要求和操作人員的指令將控制數據送給I/O設備,對執行機構實施控制或調整控制參數[1,2]。
目前,企業辦公自動化已經基本普及,Windows操作平臺以及微軟的COM/DCOM/OLE 技術已成為應用軟件之間通信的事實上的標準。在生產控制領域,DCS、SCADA、PLC等技術已經成熟,各種現場總線標準正在迅速推廣。但是,管控一體化存在一個嚴重的制約因素,即現場設備與應用軟件之間難以實現開放的、無縫隙的連接。
在生產現場,存在著大量控制器和現場數字設備,這些設備來自不同的制造商,遵從不同的通訊標準,只能組成各自的控制系統,與特定的應用軟件通訊。雖然某些網絡之間可通過協議轉換實現互聯,但并不具有普遍性。
傳統的過程控制系統中,為使每一個應用程序與設備交換信息,必須為每個設備提供相應的驅動程序,在數據源與客戶程序之間分別建立一對一的驅動連接,如圖1所示。
圖1 傳統的應用軟件與數據源接口方式
由于設備多樣性和驅動程序不兼容性,這種方式存在以下缺陷:
(1) 應用程序開發者必須花費大量精力開發各種設備的驅動接口,計算機硬件廠家要為不同的應用軟件編寫不同的驅動程序,這種程序可復用程度低,不符合軟件工程的發展趨勢,典型的高級語言軟件開發過程約有25~30%的時間用于編寫這類接口,使開發時間和費用大大增加;
(2) 設備不具有互操作性,使用中硬件的升級、變更和增加都可能造成驅動程序的變化,從而在維護過程中引起二次投資;
(3) 由于每一驅動軟件有各自的驅動程序,當多個應用軟件讀取同一數據源時,經常生沖突;
(4) 設備廠商雖然可能提供驅動程序,但與用戶開發應用軟件往往不一致,限制了用戶對軟件和設備的自由選擇。
可見,在現場設備與應用軟件之間提供標準的接口,實現開放的、無縫隙的連接,是順利推進企業管控一體化的關鍵。為此,在微軟的倡導下,世界范圍內處于主導地位的硬件和軟件開發商組成了OPC基金會組織(OPC Fondation),制定硬件和應用軟件之間的接口標準-OPC規范。文章對有關問題作如下簡要討論。
2 OPC產生的背景
OPC(OLE for process control)即用于過程控制領域的對象鏈接和嵌入技術,這一概念是由Fisher Rosemount公司1995年首次提出的,它借用了微軟的OLE(Object Linking and Embedding)和COM(Component Object Model)/DCOM( Distributed Component Object Model ) 技術,并應用于過程控制中。它為過程控制和工業自動化領域提供了一套標準的接口、屬性和方法,是實現控制系統現場設備與過程監控級進行信息互連,實現控制系統開放性的關鍵技術[4,5]。
提出OPC技術最初是為了解決應用軟件與各種設備驅動程序的通信問題,簡化系統的I/O驅動開發方式。沒有采用OPC技術以前,對一個有M種應用程序、N種設備的系統,共需開發M×N個驅動程序,而OPC采用客戶/服務器體系,為服務器與客戶程序的鏈接提供統一、標準的接口規范。采用了OPC技術以后,只需要開發M+N個與OPC的接口,如圖2所示。
圖2 采用OPC方式的應用軟件與數據源接口方式
正是OPC的這種數據訪問特點使得使用OPC技術有很大的技術優勢和經濟優勢。它的優點概括起來大致有以下3個方面:開放性(Openness)、高生產率(Productivity)、和“即插即用”的可連接性(Connectivity),因此可以說
OPC=Openness+Productivity+Connectivity。
3 OPC的應用模式及意義
現在OPC技術的發展已經超出了原來取代驅動程序的初衷,而成為微軟公司的制造業分布式網間應用程序體系結構(DNA-M, Distributed internet Application Architecture for Manufacturing)的核心,如圖3所示。
圖3 微軟的DNA-M體系
在這個體系結構中,作為核心的OPC就相當于一塊軟件“主板”,它能夠直接連接現場的PLC、工業控制網絡、數據采集和WindowsCE設備,通過快速有效的方式從現場獲取實時數據。PC機內的各種監視應用、控制應用、管理應用等則像是插在OPC主板上的軟件“芯片”,這些芯片之間按照OPC協議進行通信,它們可以通過OPC獲取現場的實時數據,也可以通過OPC彼此交換信息。所以OPC為企業內部的信息交換提供了一個開放平臺。任何應用軟件只要能夠支持OPC接口就可以插入這塊OPC主板,就像是將芯片插入到計算機主板中一樣,只要芯片的管腳和協議遵從主板的要求,它就可以即插即用。
綜合而言,采用OPC技術的意義在于:
(1) 計算機硬件廠家只需要編寫一套驅動程序、提供一套符合OPC Serve規范的程序組就可以滿足不同用戶的需要;
(2) 對于一個應用程序,開發者只需要編寫一個驅動接口,設備便可以連接不同的設備,軟件開發商無需為硬件特性的修改或增加而重寫驅動程序;
(3) 用戶在開發集成制造系統時有了更多的軟件和設備選擇余地。
在現場總線應用方面,OPC技術作為實現控制系統現場設備層與過程監控層進行信息交互,是實現控制系統開放性的關鍵技術,其應用模式如圖4所示。
圖4 OPC在現場總線下的應用模式
有了OPC作為通用接口就可以把現場信號與SCADA上位監控軟件、HMI人機界面軟件方便地鏈接起來,還可以把它們與PC機的某些通用開發平臺和應用軟件平臺鏈接起來,如:VB、VC、C++、Excel、Access等。這幾部分的信號傳遞關系如圖5所示。
圖5 OPC方式的連接示例
OPC開發的目的是為了給工業控制系統應用程序之間的通訊建立一個接口標準,在工業控制設備與控制軟件之間建立統一的數據存取規范,這個接口規范不但能夠應用于單臺計算機內部,而且可以支持網絡上分布式應用程序之間通訊,以及不同平臺上應用程序間的通訊。OPC的基礎-微軟的OLE/COM及DCOM技術完全支持上述分布式應用和異構環境下應用的無縫集成。OPC服務器在企業信息系統中的作用表現為,OPC服務器在底層控制系統中采用統一標準,實現了應用程序與現場設備的有效連接,發揮了橋梁作用,促進了企業現場控制層和過程監控層、生產管理層以及經營決策層的集成。OPC服務器在企業信息系統內的作用如圖6所示。
圖6 OPC服務器在企業信息系統中的作用
4 OPC的技術本質-COM/DCOM技術
隨著計算機軟件科學的發展,應用系統功能日趨復雜,程序愈加龐大,軟件開發的難度也更大。為此,需要將應用程序化分為多個功能獨立的模塊,由各模塊協同完成實際的任務。這些模塊被稱為組件,它們可以被進行單獨設計、編輯和調試,因此具有開放性、易升性、易維護等優點。
COM(Component Object Model)—組件對象模型,是由微軟公司提出的編程模型,其設計目的是提高軟件組態之間的互操作性并提高代碼的可復用能力。COM標準包括規范和實現兩大部分,規范部分定義了組件之間通信的機制,這些規范不依賴于任何特定的語言和操作系統,具有語言無關性;COM標準的實現部分是COM庫,COM庫為COM規范的具體實現提供了一些核心服務。由于COM以客戶/服務器模型為基礎,因此具有良好的穩定性和很強的擴展能力。在COM模型中,軟件的功能被分解為一些組件,這些組件通過COM協議在一定條件下連接起來,實現相應的功能。一般來說,COM對象可分為客戶端和服務器兩類,客戶端通過COM接口實現對服務器的訪問。
DCOM(Distributed Component Object Model)—分布式組件對象模型是建立在COM之上的一種規范和服務,提供了一種使COM組件加入網絡環境的透明網絡協議,實現了在分布式計算環境下不同進程之間的通信與協作。
客戶程序和COM組件程序進行交互的實體是COM對象。COM對象類似C++中的對象的概念,它是某個類(class)的一個實例,包括一組邏輯相關函數的集合。客戶程序必須通過接口才能獲得COM對象的服務。
基于上述技術,OPC技術具有如下特點:
(1) 客戶/服務器結構,端組件之間的通信由COM/DCOM提供底層支持,使底層的通信過程對客戶端和服務器透明;
(2) 標準的訪問接口,接口標準由OPC基金會提供;
(3) 高速可靠的數據通信,對于本地服務器的訪問,如果采用奔騰P233CPU,典型的速度為每秒5000個數據項,此時客戶端和服務器的總CPU負載為8%;
(4) 可實現遠程通信,由于應用微軟的DCOM(分布式組件對象模型)技術,OPC可以方便地進行遠程通信。
5 OPC的接口方式
OPC規范提供了2套接口方案,即自定義接口(Custom Interface)和自動化接口(Automation Interface)。自定義接口是一組COM接口,可以通過C/C++來進行開發的訪問。OPC基金會提供了標準的接口函數,但對于服務器端的開發,在不改動原有接口函數的基礎上,也可以增加一些函數來擴展功能。自動化接口是對自定義進一步封裝,實際上是屏蔽了自定義的接口虛函數表,使自定義COM接口轉換為自動化的OLE接口。
這兩種接口的關系如圖7所示。對于服務器端開發,OPC技術規范規定OPC服務器必須提供自定義接口,而自動化接口可以有選擇地提供。對于客戶端開發,可以選擇訪問兩種接口的任意一種。一般來說,自定義接口的功能比較強大,需要掌握COM技術,而自動化接口的開發比較容易,缺點是易受接口本身功能的限制。
圖 7 OPC接口方式對比
OPC服務器對象被分為3層結構:服務器對象(Sever)、組(Group)和項(Item)。Server是Group的容器,Group是Item的容器。OPC規范定義了COM接口,規定了服務器程序和客戶程序通過接口交互的標準,但并沒有說明具體實現的方法。OPC服務商必須根據各自硬件特性實現這些接口的成員函數。不論定制接口還是自動化接口都可分為必選接口和可選接口。必選接口包括了客戶程序與服務器進行交換的最基本功能;可選接口則規定了一些額外的高級功能,可根據需要有選擇地實現。客戶程序應通過查詢接口的方式來判斷服務器程序是否實現了可選接口的功能。
6 結束語
采用OPC技術規范的產品實現了工業自動化系統之間的互操作、無縫集成和現場過程控制設備的即插即用,為這一領域的軟件和硬件生產廠商以及最終用戶帶來了直接和明顯的經濟利益。因此,國內工業自動化領域的研究機構和廠家應該加強OPC技術應用的研究,積極推廣使用具有OPC接口標準軟硬件產品,跟上世界先進自動化技術的潮流。
文章版權歸西部工控xbgk所有,未經許可不得轉載。