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