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