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