作為生產(chǎn)過(guò)程自動(dòng)化的基礎(chǔ),過(guò)程控制系統(tǒng)從最初采用基地式儀表的就地控制,發(fā)展到采用單元組合式儀表的集中控制。隨著計(jì)算機(jī)的出現(xiàn)和微型計(jì)算機(jī)性能/價(jià)格比的不斷提高,集散控制系統(tǒng)(DCS)逐漸成為過(guò)程控制系統(tǒng)的主流。近年來(lái),隨著智能儀表及現(xiàn)場(chǎng)總線技術(shù)的引入,控制系統(tǒng)以計(jì)算機(jī)為中心的特征日益明顯。
既然工業(yè)自動(dòng)化體系,在硬件方面日趨計(jì)算機(jī)化,那么工業(yè)自動(dòng)化系統(tǒng)的軟件開(kāi)發(fā),亦必然會(huì)體現(xiàn)計(jì)算機(jī)領(lǐng)域的軟件開(kāi)發(fā)特點(diǎn)。在計(jì)算機(jī)領(lǐng)域,隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,應(yīng)用程序和操作系統(tǒng)環(huán)境所具有的功能和復(fù)雜程度在迅速增加,傳統(tǒng)的軟件開(kāi)發(fā)技術(shù)已難以適應(yīng)軟件開(kāi)發(fā)的要求,面向?qū)ο蠹夹g(shù)成為重要的軟件開(kāi)發(fā)方法。面向?qū)ο蠓椒ň哂辛己玫男畔㈦[蔽性、模塊獨(dú)立性和可重用性,使應(yīng)用程序的集成更加容易,而且能在不同軟件廠商提供的應(yīng)用程序中更為容易地對(duì)信息進(jìn)行交換、合成和處理,可以大大提高軟件的開(kāi)發(fā)效率。在這方面微軟的OLE(Object Linkingand Embedding)/COM(Component Object Module)技術(shù)是大家所熟知的面向?qū)ο箝_(kāi)發(fā)的框架,并且已在計(jì)算機(jī)領(lǐng)域的軟件開(kāi)發(fā)中得到了卓有成效的應(yīng)用。
OPC(OLEfor Process Control)是微軟公司的對(duì)象鏈接和嵌入技術(shù)在過(guò)程控制方面的應(yīng)用,為工業(yè)自動(dòng)化軟件面向?qū)ο蟮拈_(kāi)發(fā)提供一項(xiàng)統(tǒng)一的標(biāo)準(zhǔn)。采用這項(xiàng)標(biāo)準(zhǔn)后,針對(duì)硬件的驅(qū)動(dòng)程序不再由軟件開(kāi)發(fā)商開(kāi)發(fā),而是由硬件開(kāi)發(fā)商根據(jù)硬件的特征提供統(tǒng)一的OPC接口程序。由于硬件開(kāi)發(fā)商對(duì)自己的硬件特征了如指掌,從而能夠最大限度地挖掘硬件的潛力,提高驅(qū)動(dòng)程序的性能。采用OPC標(biāo)準(zhǔn)后,由硬件開(kāi)發(fā)商提供統(tǒng)一的OPC接口程序,從而避免了開(kāi)發(fā)重復(fù)性,使開(kāi)發(fā)費(fèi)用大大降低[1]。
1 產(chǎn)生背景
在傳統(tǒng)的控制系統(tǒng)中,智能設(shè)備之間及智能設(shè)備與控制系統(tǒng)軟件之間的信息共享是通過(guò)驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)的。由于軟件開(kāi)發(fā)商對(duì)驅(qū)動(dòng)程序的要求各不相同,硬件供貨商不可能為所有的軟件開(kāi)發(fā)商提供驅(qū)動(dòng)程序,所以這項(xiàng)工作主要只能由控制系統(tǒng)的軟件開(kāi)發(fā)商承擔(dān)。
隨著現(xiàn)場(chǎng)總線技術(shù)和PC機(jī)在過(guò)程控制系統(tǒng)中的應(yīng)用,一方面網(wǎng)絡(luò)中需進(jìn)行數(shù)據(jù)訪問(wèn)的智能設(shè)備不斷增加,另一方面,企業(yè)中越來(lái)越多來(lái)自不同部門的員工通過(guò)PC機(jī)對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)。這就需要更多的驅(qū)動(dòng)程序,以滿足以上的需要,而這勢(shì)必會(huì)加重軟件開(kāi)發(fā)商的負(fù)擔(dān),使其無(wú)法全身心地投入到其核心產(chǎn)品的開(kāi)發(fā)中去。這種開(kāi)發(fā)方式主要存在以下弊端:
(1)重復(fù)開(kāi)發(fā)
每個(gè)軟件系統(tǒng)開(kāi)發(fā)商必須為每個(gè)特定的硬件開(kāi)發(fā)一個(gè)驅(qū)動(dòng)程序。
(2)不同開(kāi)發(fā)商之間的驅(qū)動(dòng)程序的不一致性
軟件開(kāi)發(fā)商各自從自己的需要出發(fā),采用不同的數(shù)據(jù)交換協(xié)議開(kāi)發(fā)驅(qū)動(dòng)程序,從而使各開(kāi)發(fā)商之間的驅(qū)動(dòng)程序不一致,并且驅(qū)動(dòng)程序并不支持所有的硬件特性。
(3)不支持硬件特征的變化
由于驅(qū)動(dòng)程序由軟件開(kāi)發(fā)者開(kāi)發(fā),硬件特征的變化將會(huì)使有的驅(qū)動(dòng)程序失效,為適應(yīng)硬件特征的新變化,軟件開(kāi)發(fā)者必須為硬件開(kāi)發(fā)新的驅(qū)動(dòng)程序。
(4)訪問(wèn)沖突
一般來(lái)說(shuō),兩個(gè)軟件包不能同時(shí)訪問(wèn)同一設(shè)備,因?yàn)樗鼈兪褂貌煌尿?qū)動(dòng)程序。為了解決這一問(wèn)題,硬件開(kāi)發(fā)商試圖以開(kāi)發(fā)驅(qū)動(dòng)程序的方法來(lái)解決這一問(wèn)題,但由于不同的客戶采用不同的客戶協(xié)議而無(wú)法實(shí)現(xiàn)[2]。
控制系統(tǒng)軟件開(kāi)發(fā)商構(gòu)造一個(gè)完整的控制系統(tǒng)需要大量的驅(qū)動(dòng)程序,如果再考慮兼容不同硬件廠商的產(chǎn)品,那么驅(qū)動(dòng)程序的數(shù)量將更加龐大。為解決這一控制系統(tǒng)軟件開(kāi)發(fā)中的瓶頸問(wèn)題,需要一項(xiàng)為業(yè)界所公認(rèn)的數(shù)據(jù)交換標(biāo)準(zhǔn)來(lái)規(guī)范驅(qū)動(dòng)程序的開(kāi)發(fā)。現(xiàn)在OPC作為這方面的標(biāo)準(zhǔn)已邁出了堅(jiān)實(shí)的一步。傳統(tǒng)方式和OPC方式下的驅(qū)動(dòng)程序開(kāi)發(fā)的對(duì)比如圖1所示。
2 產(chǎn)生歷程
1995年由來(lái)自Intellution、Fisher-Rosemount、Intuitive Technology、Opto22、Rockwell Software等5家控制類公司及它們的技術(shù)顧問(wèn)微軟公司共同發(fā)起成立了OPC標(biāo)準(zhǔn)化組織OPC Task Force,并將其起草的有關(guān)OPC標(biāo)準(zhǔn)的幾項(xiàng)規(guī)定發(fā)布到其Web站點(diǎn)(www.industry.net/opc)上,向來(lái)自用戶和制造商的260余個(gè)OPC評(píng)論單位征詢意見(jiàn),根據(jù)收集到的反饋意見(jiàn),OPC Task Force對(duì)標(biāo)準(zhǔn)草案進(jìn)行了修改,最后經(jīng)其顧問(wèn)微軟公司的OLE專家進(jìn)行認(rèn)證,頒布了OPC1.0。
為進(jìn)一步擴(kuò)大OPC標(biāo)準(zhǔn)的影響,1996年在芝加哥舉行的ISA/96會(huì)議上成立了OPC基金會(huì)(OPC Foundation),接替OPC Task Force的工作,以吸收更多的會(huì)員單位參加,使其真正成為一項(xiàng)為各方所接受的、開(kāi)放的標(biāo)準(zhǔn)。OPC基金會(huì)下設(shè):技術(shù)籌劃委員會(huì)、市場(chǎng)籌劃委員會(huì)、OPC1.01版修訂委員會(huì)、一致性測(cè)試委員會(huì)、歷史數(shù)據(jù)訪問(wèn)委員會(huì)、事務(wù)登錄委員會(huì)、報(bào)警處理委員會(huì)、安全委員會(huì)、標(biāo)準(zhǔn)命名協(xié)議委員會(huì)等,開(kāi)展與OPC標(biāo)準(zhǔn)有關(guān)的各方面的工作。現(xiàn)在最新的OPC標(biāo)準(zhǔn)是于1997年9月11日發(fā)布的OPC1.0A。
3 主體框架
OPC利用微軟公司的COM/DCOM對(duì)象模型和ActiveX技術(shù),為實(shí)現(xiàn)世界范圍內(nèi)所有的自動(dòng)化軟硬件的互操作性,提供一項(xiàng)規(guī)定。簡(jiǎn)而言之,它位于數(shù)據(jù)源和數(shù)據(jù)使用者之間,是不同制造商的產(chǎn)品之間進(jìn)行對(duì)話的通行證。
3.1 對(duì)象和接口
OPC邏輯對(duì)象模型包括3類對(duì)象:OPC服務(wù)器對(duì)象、OPC組對(duì)象、OPC項(xiàng)目對(duì)象,每類對(duì)象都包括一系列接口,見(jiàn)圖2(帶[]的為可選項(xiàng))。
OPC服務(wù)器對(duì)象提供了一種訪問(wèn)數(shù)據(jù)源的方法,它通過(guò)IOPCServer,OPC Browser,IPersist File向客戶提供接口。OPC組對(duì)象包含在OPC服務(wù)器對(duì)象中,并由客戶端定義和維護(hù),每個(gè)服務(wù)器可以包含多個(gè)組對(duì)象。OPC組對(duì)象可以通過(guò)IOPCGROUNP增加或刪除OPC項(xiàng)目對(duì)象,OPC項(xiàng)目對(duì)象包含在OPC組對(duì)象中,1個(gè)組對(duì)象可以包含多個(gè)項(xiàng)目對(duì)象,它同樣由客戶端定義和維護(hù)。
OPC客戶端與OPC服務(wù)器連接并通過(guò)接口與OPC服務(wù)器通信,OPC服務(wù)器對(duì)象向OPC客戶端提供創(chuàng)建和操縱OPC組對(duì)象的功能。這些組允許OPC客戶對(duì)它們要訪問(wèn)的數(shù)據(jù)進(jìn)行組織。1個(gè)組可以作為1個(gè)單元被激活或失活。1個(gè)組也可以提供1種方法允許客戶“訂閱”項(xiàng)目列表,以便在項(xiàng)目變化時(shí)它能得到通知。
客戶只能看到接口,所有的COM對(duì)象只能通過(guò)接口進(jìn)行訪問(wèn)。這樣,這里所描述的對(duì)象只是邏輯表示,可能與服務(wù)器的內(nèi)部執(zhí)行無(wú)關(guān)。
3.2 數(shù)據(jù)訪問(wèn)機(jī)制
OPC標(biāo)準(zhǔn)中的接口主要有兩種:客戶端和服務(wù)器程序員所使用的OPC自定義接口(OPCCOM custom interfaces)和支持用高端商業(yè)應(yīng)用(如用Visualbasic、Delphi、Excel等)開(kāi)發(fā)的客戶程序的OPC自動(dòng)化接口(OPC OLE Automation interfaces)。OPC自定義接口是OPC服務(wù)器必須提供的,而OPC自動(dòng)化接口則不一定提供。利用這兩種接口與OPC服務(wù)器通信的方式見(jiàn)圖3。
對(duì)于在分布式結(jié)構(gòu)中不同的結(jié)點(diǎn)上客戶和服務(wù)器的操作,OPC標(biāo)準(zhǔn)利用分布式結(jié)構(gòu)DCOM使客戶應(yīng)用與遠(yuǎn)程服務(wù)器接口。
4 帶來(lái)的變化
4.1 對(duì)用戶和開(kāi)發(fā)商的影響
對(duì)用戶來(lái)說(shuō),OPC意味著開(kāi)放性。只要用戶選擇了符合OPC標(biāo)準(zhǔn)的工具箱,就可以選擇最好的設(shè)備和軟件(不管它是服務(wù)器還是客戶端,也不管它的作者是誰(shuí))。集成已經(jīng)存在的不同的系統(tǒng)將變得非常容易。大量的32位Windows應(yīng)用程序使得用戶有更大的選擇余地,以更有效、快捷的方式構(gòu)造、定制滿足其需要的集成制造系統(tǒng)。
硬件制造者只需開(kāi)發(fā)1套通用的驅(qū)動(dòng)程序,并且其驅(qū)動(dòng)程序比以往由軟件開(kāi)發(fā)商開(kāi)發(fā)的驅(qū)動(dòng)程序具有更高的性能。而軟件開(kāi)發(fā)者可以免除開(kāi)發(fā)驅(qū)動(dòng)程序的工作,從而使他們能夠把更大的精力投入到其核心產(chǎn)品的開(kāi)發(fā)上,充分發(fā)揮他們的特長(zhǎng),使其核心產(chǎn)品具有更高的性能;同時(shí)由于采用OPC標(biāo)準(zhǔn)開(kāi)發(fā)的軟件之間具有良好的通信能力,這樣就使原先相互分割的商務(wù)系統(tǒng)和控制系統(tǒng)的集成成為可能,把企業(yè)的商務(wù)系統(tǒng)、控制執(zhí)行系統(tǒng)、監(jiān)視系統(tǒng)和控制系統(tǒng)無(wú)縫地集成為一體,構(gòu)造1個(gè)兩層的工業(yè)自動(dòng)化體系(如圖4所示),大大提高企業(yè)的運(yùn)營(yíng)效率。
4.2 價(jià)格的下降
在傳統(tǒng)的開(kāi)發(fā)方式下,由于缺乏信息和數(shù)據(jù)共享的統(tǒng)一標(biāo)準(zhǔn),驅(qū)動(dòng)程序由軟件廠商開(kāi)發(fā),每個(gè)驅(qū)動(dòng)程序?qū)?yīng)一個(gè)特定的硬件產(chǎn)品和一個(gè)特定的應(yīng)用程序。這樣每個(gè)軟件開(kāi)發(fā)商需要針對(duì)不同的硬件產(chǎn)品獨(dú)立開(kāi)發(fā)1套驅(qū)動(dòng)程序,工作量變得非常龐大,而且各開(kāi)發(fā)商重復(fù)開(kāi)發(fā),導(dǎo)致工業(yè)自動(dòng)化軟件的開(kāi)發(fā)費(fèi)用居高不下。采用OPC標(biāo)準(zhǔn)后,這項(xiàng)工作改由硬件廠商承擔(dān),提供統(tǒng)一的OPC接口程序,從而使整個(gè)系統(tǒng)的開(kāi)發(fā)費(fèi)用得以分散,工業(yè)自動(dòng)化軟件的價(jià)格也必將大幅度下降。
4.3 性能的改善
在OPC開(kāi)發(fā)模式下,驅(qū)動(dòng)程序由硬件廠商開(kāi)發(fā),由于硬件廠商了解自己產(chǎn)品的細(xì)節(jié),所以提供的接口程序的性能與以前由軟件廠商提供的驅(qū)動(dòng)程序相比有了明顯的改善。以往控制軟件開(kāi)發(fā)商的大部分精力花在了驅(qū)動(dòng)程序的開(kāi)發(fā)上,采用OPC標(biāo)準(zhǔn)后,這部分工作改由硬件產(chǎn)品供應(yīng)商承擔(dān),軟件開(kāi)發(fā)商可以把精力集中在MMI、SCADA、MES等軟件包的開(kāi)發(fā)與集成上,提供性能更好的軟件產(chǎn)品。
5 發(fā)展近況及前景
OPC標(biāo)準(zhǔn)的制定雖然主要由少數(shù)幾家公司所推動(dòng),但是已制定的OPC標(biāo)準(zhǔn)由來(lái)自90多家公司的專家參與,并參考了來(lái)自200多個(gè)合作伙伴的評(píng)論意見(jiàn),所以具有廣泛的代表性。一批國(guó)際知名的控制類公司,如ABB、AspenTech、Eurotherm、Foxboro、Honeywell、National Instruments、Siemens、Toshiba、Johnson-Yokogawa、GEFanuc等相繼宣布支持OPC標(biāo)準(zhǔn)。在這種情況下,毫無(wú)疑問(wèn)OPC將會(huì)在控制領(lǐng)域發(fā)揮重大的作用,OPC將會(huì)成為大勢(shì)所趨。
現(xiàn)在許多公司正在致力于利用OPC標(biāo)準(zhǔn)開(kāi)發(fā)產(chǎn)品[3]。Wonderware公司原來(lái)一直采用NetDDE開(kāi)發(fā)其軟件產(chǎn)品,并且做得相當(dāng)成功,但鑒于OPC正在成為業(yè)界標(biāo)準(zhǔn)的形式,現(xiàn)在正逐步轉(zhuǎn)向采用OPC標(biāo)準(zhǔn)開(kāi)發(fā)其軟件產(chǎn)品。USDATA公司開(kāi)發(fā)了1種叫做OPC友好插座的產(chǎn)品,該產(chǎn)品允許任何符合OPC標(biāo)準(zhǔn)的對(duì)象加入到該公司的軟件中。在已開(kāi)發(fā)成功的Fisher-Rosemount的DeltaV過(guò)程系統(tǒng)中采用了OPC技術(shù)。Intellution作為OPC董事會(huì)成員,在推行OPC標(biāo)準(zhǔn)方面始終是不遺余力,現(xiàn)已利用OPC技術(shù)開(kāi)發(fā)出了VisualBatch、FIXDynamics等組件產(chǎn)品[4]。目前國(guó)內(nèi)工業(yè)過(guò)程控制和儀器儀表行業(yè)在OPC標(biāo)準(zhǔn)的推廣和應(yīng)用方面尚沒(méi)有見(jiàn)到有大的動(dòng)作。我們認(rèn)為,作為一項(xiàng)逐漸成型的過(guò)程控制領(lǐng)域軟硬件接口的數(shù)據(jù)通信標(biāo)準(zhǔn),OPC應(yīng)當(dāng)受到國(guó)內(nèi)同行足夠的重視。
OPC是一項(xiàng)嶄新的技術(shù),發(fā)展日新月異,如欲獲得有關(guān)OPC技術(shù)的最新信息,可參閱以下Web站點(diǎn):http://www.opc foundation.org是OPC基金會(huì)站點(diǎn),專門發(fā)布有關(guān)OPC標(biāo)準(zhǔn)的最新信息;http://www.intellution.com/opcsample.html是Intellution公司為推動(dòng)OPC發(fā)展進(jìn)程用于發(fā)布OPC樣本代碼的Web站點(diǎn),可使用戶感受OPC標(biāo)準(zhǔn)的優(yōu)勢(shì)及建立OPC的概括印象;http://dspace.dial.pipex.com/opc/是由Eurotherm的一些軟件工程師發(fā)起的OPC程序員集散地,用于供OPC程序開(kāi)發(fā)人員交流經(jīng)驗(yàn)和體會(huì)。
參考文獻(xiàn)
1 Al Chilsholm. OLE for Process Control takes first step to ward data sharing standards.I& CS, 1996,69(9):49~ 53
2 Brian Tinham. Why OPC for systems. C& I, 1997,29(4):24~ 26
3 http://www.opcfoundation.org 1998.
4 http://www.intellution.com 1998.