【正文】
OM是一種客戶/服務(wù)器模式,具有語言無關(guān)性、代碼重用性、易于集成性等優(yōu)點(diǎn)。采用OPC標(biāo)準(zhǔn)后,針對硬件的驅(qū)動(dòng)程序不再由軟件開發(fā)商開發(fā),而是由硬件開發(fā)商根據(jù)硬件的特征提供統(tǒng)一的OPC接口程序。同時(shí),為一種語言開發(fā)的類庫以及函數(shù)庫都不能夠?yàn)槠渌Z言所用,也大大限制了軟件的重用。然后重點(diǎn)介紹了 OPC數(shù)據(jù)訪問規(guī)范及訪問方法,OPC服務(wù)器對象和客戶端對象接口及OPC客戶端與服務(wù)器的通信。但是目前工業(yè)自動(dòng)化系統(tǒng)絕大多數(shù)是封閉的系統(tǒng),缺乏統(tǒng)一、標(biāo)準(zhǔn)的開放式接口。因此也沒有真正實(shí)現(xiàn)不同廠家的軟件共享。采用OPC標(biāo)準(zhǔn)后,由硬件開發(fā)商提供統(tǒng)一的OPC接口程序,從而避免了開發(fā)重復(fù)性,使開發(fā)費(fèi)用大大降低。它以微軟的COM/DCOM(組件對象模型和分布式組件對象模型)技術(shù)為基礎(chǔ),為工業(yè)控制軟件定義了一套標(biāo)準(zhǔn)的對象、接口和屬性,通過這些對象接口,應(yīng)用軟件之間能夠無縫地集成在一起,實(shí)現(xiàn)了應(yīng)用程序之間數(shù)據(jù)交換方式的標(biāo)準(zhǔn)化,極大的提高了自動(dòng)化系統(tǒng),現(xiàn)場設(shè)備系統(tǒng),商業(yè)辦公系統(tǒng)之間的互操作性??蛻舫绦蛑荒芡ㄟ^接口與COM 對象進(jìn)行通信,雖然客戶程序可以不管對象內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),但它要控制對象的存在與否。COM客戶程序和COM服務(wù)器可以用完全不同的語言開發(fā)。OPC數(shù)據(jù)訪問規(guī)范描述了由OPC服務(wù)器實(shí)現(xiàn)的OPC /COM 對象及相應(yīng)接口??蛻舳嗽L問OPC Server 對象的接口函數(shù)組織管理OPC Group對象。OPC應(yīng)用程序在VB的事件處理程序中接受從OPC服務(wù)器傳送來的數(shù)據(jù)。RemoveGroup;刪除不再使用的組對象。RemovePublicGroup;刪除一個(gè)公共組對象。IOPCGroupStateMgt此接口允許客戶程序管理組對象的所有狀態(tài)?;卣{(diào)中的信息指出了事務(wù) ID 和操作結(jié)果。服務(wù)器內(nèi)有一個(gè)數(shù)據(jù)緩沖區(qū),其中存有最新的數(shù)據(jù)值、數(shù)據(jù)質(zhì)量戳和時(shí)間戳。近來清洗作業(yè)為提高生產(chǎn)能力,有高速化,大型化,和自動(dòng)化的傾向。卸卷小車把卷取機(jī)上的卷先運(yùn)至打捆位,由門型吊車把卷運(yùn)走入庫。 clsid);//以服務(wù)器的名字創(chuàng)建Server對象 COPCGroup AddGroup(DWORD dwUpdateRate);//添加組對象 OPCServerStatus GetStatus();//得到Server的信息,如:啟動(dòng)時(shí)間,上一次更新時(shí)間,組個(gè)數(shù)}。 DWORD hServer。 void notify()。 (this)。OPC 技術(shù)以其巨大的優(yōu)勢越來越受到工控領(lǐng)域廣大廠商與用戶的青睞,在未來的發(fā)展中,OPC 技術(shù)肯定要取代傳統(tǒng)的驅(qū)動(dòng)程序技術(shù),這是不可阻擋的,未來的工控領(lǐng)域的產(chǎn)品會越來越多的應(yīng)用 OPC 技術(shù)。感謝百忙之中審閱本文的各位老師!參考文獻(xiàn)[1] Renee Pale. OPC——the standard for real time munication[Z]. 1995[2] OPC(中國)促進(jìn)委員會. OPC 應(yīng)用程序入門[M].2002[3] 潘愛民. COM 原理與應(yīng)用[M]. 北京:清華大學(xué)出版社, 1999[4] 張烈平,吳名歡,周德儉. 基于COM的OPC技術(shù)及其應(yīng)用程序的開發(fā)[R].桂林:桂林工學(xué)院電子與計(jì)算機(jī)系,2004[5] 顧 鍵,王京春,黃德先. OPC——COM技術(shù)在工業(yè)自動(dòng)化軟件中的應(yīng)用[R].北京:清華大學(xué)自動(dòng)化系,2001[6] 劉 杉. OPC數(shù)據(jù)訪問標(biāo)準(zhǔn)[D]. 上海:同濟(jì)大學(xué)電氣工程系,2003[7] 李曉虹. OPC 技術(shù)及實(shí)時(shí)數(shù)據(jù)平臺軟件的研究與開發(fā)[D]. 北京:中國科學(xué)院自動(dòng)化研究所,2001[8] OPC Common Definitions and Interfaces Version [Z]. OPC Foundation,1998[9] 李 鵬. OPC數(shù)據(jù)訪問客戶端開發(fā)庫的研究與實(shí)現(xiàn)[D]. 北京:華北電力大學(xué),2004[10] 劉 庚. OPC及在工業(yè)控制中的應(yīng)用研究[D]. 南京:河海大學(xué),2005[11] OPC Data Access Custom Interface Specification [Z].OPC Foundation. 2002附 錄A (OPC——the standard for real time munication)1. Initial Position in many EnterprisesIn more and more enterprises, there is a growing focus on minimizing general costs as well as maximizing product quality and optimizing productivity. Clearly, optimizing the all systems dealing with automation within a pany, from the enterprise management level through the process supervision level right down to the control equipment on the plant floor, will have a direct and positive influence on the pany operations.The software used in pany administration and that used in process automation are moving closer and closer to each other. This development is largely due to the widespread and growing use of Windows NT as the single operating system in many organizations. Windows applications are so widely used today, especially in the administrative environment, that it would be hard to imagine running a business without them. The next level we are aiming at is the standardization of munication between the different levels in a pany. With the fast developments in both PC hardware and software technology, powerful and integrated systems (such as Microsoft with Windows NT and lntellution with FIX and Visual Batch) are available that, earlier, were only possible with high investments. Earlier systems also had the disadvantage of frequently offering only island solutions. The greatest amount of effort and therefore costs involved with implementing automation systems has been related to solving the problem of interfaces between different types of equipment hardware and software.The historical problem has always been that the data of different systems all have different formats and munication protocols. This is very important when, for example, drives are connected to a PCbased SCADA system. Software vendors, such as Intellution, with their process monitoring, control, and data management system, the FIX, were required to develop an individual I/O driver for each protocol. This I/O driver would then allow for the connection of the SCADA software to each of the different field I/O devices (PLC39。正是在戴老師的指導(dǎo)和幫助下,論文才得以順利完成。我國各大工業(yè)控制軟件商也在各自的產(chǎn)品中應(yīng)用該技術(shù)。 for (int i = 0。 ~Level1()。//建立連接,返回給IUnknown接口指針pSink}}。下面介紹這個(gè)4個(gè)重要類,具體實(shí)現(xiàn)看附錄C,D。 冷軋清洗線工藝流程圖工藝段:從堿洗槽入口壓輥到2導(dǎo)向夾送輥整個(gè)清洗的過程。服務(wù)器獲得IOPCShutdown 接口指針的方法 IOPCDataCallback出接口相同。由于OPC服務(wù)端和客戶端之間的接口是標(biāo)準(zhǔn)的,所以就可以開發(fā)出通用的OPC客戶端,使不同的應(yīng)用程序訪問同一臺設(shè)備或者使同一個(gè)應(yīng)用程序訪問不同的設(shè)備??梢詮膬?nèi)存(CHCHE)中讀取,也可以從設(shè)備內(nèi)直接讀取。SetClientHandles;改變項(xiàng)對象的客戶句柄。IOPCServerPublicGroups(可選)公共組對象為客戶和服務(wù)器提供了共享數(shù)據(jù)的一種機(jī)制,可被多個(gè)客戶程序訪問,它可由服務(wù)器或客戶程序創(chuàng)建。GetGroupByName;通過組名獲得一個(gè)已有私有組對象的接口指針,從而與之建立連接。,OPC服務(wù)器把按照OPC應(yīng)用程序的要求得到的數(shù)據(jù)訪問結(jié)果作為方法的參數(shù)返回給OPC應(yīng)用程序,OPC應(yīng)用程序在結(jié)果被返回之前必須處于等待狀態(tài)。對數(shù)據(jù)項(xiàng)可進(jìn)行讀寫操作并可根據(jù)需要使其激活或失活。同時(shí)可以更加容易地實(shí)現(xiàn)由不同供應(yīng)廠商提供的設(shè)備所混合構(gòu)成的工業(yè)控制系統(tǒng)。OPC規(guī)范了接口函數(shù),不管現(xiàn)場設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問,從而保證軟件對客戶的透明性,使得用戶完全從低層的開發(fā)中脫離出來[4]。COM對象不同于像C++等面向?qū)ο笳Z言中對象的概念,COM對象是建立在二進(jìn)制可執(zhí)行代碼級的基礎(chǔ)上,而C++等語言中的對象是建立在源代碼級基礎(chǔ)上的,因此COM對象是語言無關(guān)的,這一特性使用不同編程語言開發(fā)組件對象進(jìn)行成為可能。OPC是以O(shè)LE/COM機(jī)制作為應(yīng)用程序的通訊標(biāo)準(zhǔn)。但是由于客戶協(xié)議的不一致,這項(xiàng)工作至今沒有取得成功,OPC和現(xiàn)場總線標(biāo)準(zhǔn)的制定正好為上述問題的解決開辟了新的道路。但這些重用只是對源代碼級的重用而不是對可執(zhí)行文件級的重用,對每一類庫都要重新編譯,所以并沒有真正實(shí)現(xiàn)資源共享,并且對某個(gè)模塊中某個(gè)類庫的修改將“觸一發(fā)而動(dòng)全身”,引起所有引用該類庫的模塊的修改,因此非常難以實(shí)現(xiàn)某個(gè)模塊的升級。本文介紹了OPC技術(shù)產(chǎn)生的背景,以及它的主要特點(diǎn)與發(fā)展?fàn)顩r,并剖析了其核心COM/DCOM技術(shù)。不同廠家的產(chǎn)品如果要集成在一起,必須為它們開發(fā)專用的接口。從更廣泛的意義上看,新的過程控制信息體系的各層都有著各自的要求,他們都要求信息的一致性。OPC 規(guī)范采用客戶/服務(wù)器模型,其實(shí)質(zhì)是在硬件供應(yīng)商和軟件供應(yīng)商之間建立一套“游戲規(guī)則”,只要遵循這套規(guī)則,數(shù)據(jù)交互對兩者來說都是透明的。OPC接口既可以用于應(yīng)用程序的最低級,即通過該接口將現(xiàn)場實(shí)時(shí)數(shù)據(jù)采集到DCS或SCADA中來,又可用于應(yīng)用程序的中級環(huán)節(jié),即通過該接口將數(shù)據(jù)從DCS或SCADA系統(tǒng)采集到上位機(jī)應(yīng)用程序中來,還可將OPC應(yīng)用于網(wǎng)絡(luò)計(jì)算機(jī)來采集數(shù)據(jù),設(shè)計(jì)一個(gè)OPC服務(wù)器,允許客戶應(yīng)用程序從該服務(wù)器或網(wǎng)上運(yùn)行OPC服務(wù)器的其它節(jié)點(diǎn)計(jì)算機(jī)上采集數(shù)據(jù)。如果客戶還要繼續(xù)對對象進(jìn)行操作,則它必須保證對象能一直存在于內(nèi)存中;如果客戶對對象的操作已經(jīng)完成,以后也不再需要該對象了則它必須及時(shí)地把對象釋放掉,以提高資源的利用率。這樣使利用C++,Visual Basic,以及Excel中作為宏使用的應(yīng)用程序的Visual Basic等不同語言所開發(fā)的程序可以相互連接。規(guī)范指出一個(gè)OPC客戶程序可以連接到一個(gè)或多個(gè)由不同廠家提供的OPC服務(wù)器程序,而多個(gè)OPC客戶程序也可以連接到一個(gè)OPC服務(wù)器程序上,服務(wù)器所要訪問的設(shè)備、數(shù)據(jù)源、數(shù)據(jù)名及服務(wù)器程序如何進(jìn)行數(shù)據(jù)的訪問由廠商提供的代碼決定。OPC Group對象用于組織管理服務(wù)器內(nèi)部的實(shí)時(shí)數(shù)據(jù)信息。 異步數(shù)據(jù)訪問處理除了上述的同步和異步數(shù)據(jù)訪問以外,就可以自動(dòng)接到從OPC服務(wù)器送來的變化通知的訂閱方式數(shù)據(jù)采集(Subscription)。當(dāng)所有的組對象接口都釋放后客戶再調(diào)用此函數(shù),使相應(yīng)組對象在內(nèi)存中徹底刪除。IOPCBrowseServerAddressSpace(可選)此接口為OPC客戶提供了一個(gè)有效訪問OPC服務(wù)器數(shù)據(jù)的方式,能夠?yàn)橛脩籼峁┫鄳?yīng)的ITEMID列表。最基本的是改變組對象的更新率和活動(dòng)狀態(tài)。IConnectionPointContainer數(shù)據(jù)訪問規(guī)范 組對象必須實(shí)現(xiàn)此接口,與服務(wù)器對象的此接口的唯一區(qū)別是管理得出接口不一樣,組對象管理的出接口是IOPCDataCal