97超碰人人草,欧美在线激情,日日日韩,chinese国产人妖ts,日韩爱爱免费视频,一级免费黄,日韩美精品

用Delphi開發(fā)OPC客戶端工具的方法研究

來源:網(wǎng)絡

點擊:951

A+ A-

所屬頻道:新聞中心

關鍵詞: Delphi 開發(fā) OPC 客戶端

    引言

        OPC(OLE for Process Control)是工業(yè)自動化過程中數(shù)據(jù)交換的一個標準,OPC的出現(xiàn)為基于Windows平臺的組態(tài)軟件和基于現(xiàn)場控制的控制器之間的數(shù)據(jù)交換提供了確實可行的方法。在OPC出現(xiàn)之前,組態(tài)軟件為了能夠存取現(xiàn)場控制設備的數(shù)據(jù),組態(tài)軟件必須提供每一種相連控制設備的通訊驅(qū)動程序,由于不同廠家控制設備使用的通訊協(xié)議不同,組態(tài)軟件必須為每一個控制設備開發(fā)專用的通訊DRIVER。目前流行的現(xiàn)場控制設備種類繁多,且產(chǎn)品不斷升級換代,往往給組態(tài)軟件的開發(fā)帶來了巨大的經(jīng)濟壓力和工作負擔。而不斷開發(fā)通訊DRIVER也不能滿足實際工作的需要,硬件開發(fā)商和組態(tài)軟件開發(fā)商急切需要一種具有高效性、可靠性、開放性、可互操作性的即插即用的設備驅(qū)動程序。在這樣的大背景下,OPC工業(yè)標準應運而生,OPC工業(yè)標準的出現(xiàn)把開發(fā)訪問設備接口的任務放在硬件開發(fā)商或?qū)iT從事軟件開發(fā)的第三方廠家,以OPC服務器的形式提供給,組態(tài)軟件可以按照OPC服務器提供的接口訪問現(xiàn)場控制設備的數(shù)據(jù),避免了不停開發(fā)通訊DRIVER的問題,提高了系統(tǒng)的開放性和可互操作性。

    1、OPC技術標準

        OPC技術是以Microsoft公司的OLE/COM/DCOM技術為基礎的通訊標準.OLE/COM是一種客戶/服務器模式,具有語言無關性、代碼重用性、易于集成性等優(yōu)點.如圖l所示,OPC服務器中的代碼確定了服務器所存取的設備、數(shù)據(jù)和數(shù)據(jù)項的命名規(guī)則和服務器存取數(shù)據(jù)的細節(jié),不管現(xiàn)場設備以何種形式存在,客戶都以統(tǒng)一的方式去訪問服務器,從而保證軟件對客戶的透明性,客戶應用程序僅需使用統(tǒng)一的標準接口和服務器通信,而并不需要知道底層的實現(xiàn)細節(jié)。通過OPC服務器,OPC客戶既可以直接讀寫現(xiàn)場控制設備的I/O數(shù)據(jù),也可操作SCADA、DCS等系統(tǒng)的端口變量(只要該系統(tǒng)提供OPC服務)。

    任何一個OPC客戶可連接到由多個OPC服務器上,每個OPC服務器也為多個OPC客戶服務。只要應用軟件符合OPC技術標準,不需要做任何修改就能訪問OPC服務器提供的數(shù)據(jù)。OPC技術標準包括客戶/服務器通訊使用的一整套的接口、屬性和方法。OPC技術支持分布式應用和異構環(huán)境下軟件的無縫連接和軟件的互操作性,使現(xiàn)場控制設備層、自動化層以及組態(tài)軟件層之間的協(xié)同工作成為了可能.并且提供了工業(yè)自動化應用領域的統(tǒng)一數(shù)據(jù)傳輸平臺,使異構系統(tǒng)之間的數(shù)據(jù)交換更為方便。

    2、OPC的對象模型

       OPC邏輯對象模型包括3類對象:OPC server對象、OPC group對象、OPC item對象,每類對象都包括一系列接口。

    OPC Server對象提供了一種訪問數(shù)據(jù)的方法,它通過Iopcserver 、Opcbrowser、Ipersistfile向客戶提供接口。主要功能為:1)創(chuàng)建和管理OPC Group對象;2)管理服務器內(nèi)部的狀態(tài)信息;3)將服務器的錯誤代碼翻譯成描述性語句;4)瀏覽OPC服務器內(nèi)部的數(shù)據(jù)組織結構。從OPC Server對象的功能可以看出,OPC Server對象面向OPC服務器的技術細節(jié),基本獨立于實時數(shù)據(jù)源,可以統(tǒng)一實現(xiàn),其中數(shù)據(jù)的組織結構與數(shù)據(jù)源屬性與具體數(shù)據(jù)源有關,需要從用戶處獲取信息。OPC Server對象主要實現(xiàn)IUnknown和IOPC Server接口,OPC客戶通過OPC服務器的接口與OPC對象進行通信.IOPCServer接口為OPC客戶提供了方便有效操作OPC組的方法。

    OPC Group對象的主要功能表現(xiàn)為:1)管理OPC Group對象的內(nèi)部狀態(tài)信息;2)創(chuàng)建和管理Items對象。3)OPC服務器內(nèi)部的實時數(shù)據(jù)存取服務(同步與異步方式)。從OPC Group對象的功能可以看出,該對象面向OPC服務器中的數(shù)據(jù)存取信息,對實時數(shù)據(jù)源的依賴性很強,需要從用戶數(shù)據(jù)源處獲取信息。OPC Group提供了客戶程序組織數(shù)據(jù)的手段.每個組中都可以定義一個或多個OPC Item。組有兩種類型:公共組(Public)和局部組(local),公共組可以被多個客戶共享,而局部組只能被一個客戶使用。OPC組中有以下幾個主要屬性:1)Name :組的名字 2)Active:組的激活狀態(tài)標志 3)Update Rate OPC:服務器向客戶程序提交數(shù)據(jù)變化的刷新速率4)Percent Dead band:數(shù)據(jù)死區(qū),即能引起數(shù)據(jù)變化的最小數(shù)值百分比。

        OPC ITEM 是非COM對象,在OPC標準中用來描述實時數(shù)據(jù),是客戶端不可見的對象。代表了與服務器中的數(shù)據(jù)的連接,它并不是數(shù)據(jù)源,而僅僅是與數(shù)據(jù)源的連接。每個項都有以下主要屬性:1) Active項的激活狀態(tài)2)Value項的數(shù)值3)類型為VARIANT;4)Quality項的品質(zhì),5)代表數(shù)值的可信度,類型為SHORT;6)TimeStamp時間戳,代表數(shù)據(jù)的存取時間。

    OPC技術基礎包含了兩套接口:客戶化接口(Custom Interface)和自動化接口(Automation Interface)??蛻艋涌谑且粋€OPC服務器所必須實現(xiàn)的接口,它描述了OPC組件對象的接口和其中的方法,適合C++和PASCAL語言設計,并可實現(xiàn)最佳運行性能的客戶應用程序。客戶化接口沒有項對象,它對項的操作都是通過包容此項的組對象進行的。自動化接口是可選接口,它提供的是一個自動配置和存取過程控制數(shù)據(jù)。只要是支持C0M對象的編程語言都能進行OPC客戶端的開發(fā)。OPC提供了客戶化接口和自動化接口,要進行客戶端開發(fā)實際上就是對這兩套接口的聲明和調(diào)用。 自動化接口封裝了C0M底層的許多實現(xiàn),使開發(fā)者能比較輕松的進行數(shù)據(jù)訪問。

    3、OPC客戶端的工作流程

        由于OPC的結構是一個典型的CLIENT/SERVER結構,其技術基礎是基于COM/DCOM技術的,所以OPC客戶端的開發(fā)與COM/DCOM編程大體相同。從OPC的工作機制可以知道,OPC客戶端的開發(fā)必須按下面的步驟處理。

    1. 客戶端程序必須對DCOM進行初始化設置,以保證OPC服務器端的回調(diào)函數(shù)不會被堵塞。

    2.在正確初始化DCOM的基礎上,創(chuàng)建客戶化接口(Custom Interface),自動化接口(Automation Interface)一般由已注冊在系統(tǒng)中的OPCProxy.dll文件自動處理。完成OPC Server的創(chuàng)建。

    3.在正確創(chuàng)建了客戶化接口(Custom Interface)后,客戶端程序可以為OPC Server對象創(chuàng)建一個OPC組對象(OPC GROUP)。

    4.在正確創(chuàng)建了OPC組對象后,客戶端程序可以為OPC GROUP對象創(chuàng)建多個OPC ITEM對象。

    5.為自動化接口實現(xiàn)兩個方法:OndataChange和Onasync_WriteComplete,在數(shù)據(jù)發(fā)生變化或異步寫操作完成后可被調(diào)用。

    6, 可以實現(xiàn)對OPC ITEM 數(shù)據(jù)的讀寫操作。

    7, 在客戶端工作結束時,清除OPC服務器對象中的GROUP對象,系統(tǒng)將會自動釋放。

    4、OPC客戶端開發(fā)工具的實現(xiàn)

        OPC客戶端開發(fā)工具的目的是將開發(fā)OPC客戶端的技術細節(jié)封裝起來,使客戶的開發(fā)工作集中在自己特定的數(shù)據(jù)處理任務上來。目前大多數(shù)小型控制系統(tǒng)的數(shù)據(jù)處理及顯示程序都由用戶自己編寫,而OPC技術在國際工業(yè)控制領域中的使用已經(jīng)相當廣泛,大多數(shù)硬件廠家度提供了OPC數(shù)據(jù)服務器,部分可以直接使用,而工控組態(tài)軟件雖然支持OPC技術,但這些組態(tài)軟件的價格十分昂貴,對于小型工控系統(tǒng)的成本過高,如果能提供OPC客戶端開發(fā)工具,小型工控的成本將會大幅下降。所以有必要研究OPC客戶端開發(fā)工具的開發(fā)方法。

        OPC客戶端開發(fā)工具通??梢苑忠詢煞N方式存在,一種以源代碼形式存在,另一種以二進制的形式存在(動態(tài)鏈接庫或組件形式)。以源代碼形式存在的OPC客戶端開發(fā)工具一般包括OPC客戶端實現(xiàn)的全部源代碼。這種形式使用起來對于程序設計來說比較靈活,用戶可以更具自己的需要進行開發(fā),但是源代碼往往是某一種語言的源代碼,用戶在開發(fā)OPC客戶端程序時一般要求使用與源代碼相同的開發(fā)語言,開發(fā)起來對用戶的要求很高,源代碼對于語言級的開發(fā)通用性低。而以二進制的形式存在(動態(tài)鏈接庫或組件形式)的OPC客戶端開發(fā)工具的通用性強,對開發(fā)環(huán)境的要求較小,可以在任意支持動態(tài)鏈接庫或組件形式的環(huán)境下使用,開發(fā)者只要使用動態(tài)連接庫的輸出函數(shù)或組件的接口函數(shù)即可完成OPC客戶端程序的開發(fā),這種方法使用簡單,缺少靈活性,但通常能夠滿足多數(shù)用戶的開發(fā)需求。

        根據(jù)OPC客戶端的工作流程,利用Delphi開發(fā)工具作者開發(fā)了一個完整的OPC客戶端開發(fā)工具,該工具分別以動態(tài)鏈接庫和組件形式存在,以供不同的開發(fā)者使用。不論是以動態(tài)鏈接庫形式還是以組件形式存在,它們的接口函數(shù)是一致的。

    1)OPC客戶端初始化函數(shù)InitializeServer的功能是在使用開發(fā)工具之前,必須使用初使化函數(shù)對開發(fā)工具進行初使化,提供OPC服務器刷新率、OPC服務器的程序信息(如CLSID)、服務器的版本信息等。

    2)OPC客戶端添加組對象函數(shù)ServerAddGroup的功能是在初始化函數(shù)成功之后,調(diào)用此函數(shù)完成客戶端在現(xiàn)有OPC服務器下完成對組對象的添加和命名,以便后面的函數(shù)使用。

    3)OPC客戶端添加組內(nèi)ITEM 對象函數(shù)GroupAddItem的功能是在ServerAddGroup函數(shù)執(zhí)行之后在添加的組對象內(nèi)添加ITEM對象,以保證OPC客戶端能利用ReadOPCGroupItemValue函數(shù)和WriteOPCGroupItemValue函數(shù)完成對OPC服務器端變量的讀寫。

    4)OPC客戶端刪除組內(nèi)ITEM 對象函數(shù)GroupRemoveItem的功能是在客戶端不需要對OPC服務器端的變量進行讀寫后,需要利用此函數(shù)刪除組對象的ITEM對象,此函數(shù)的執(zhí)行必須是在GroupAddItem執(zhí)行成功之后才能執(zhí)行。

    5)OPC客戶端通過IDATAOBJECT實現(xiàn)回調(diào)函數(shù)GroupAdviseTime的功能是建立一個由IDataObject接口實現(xiàn)的OPC客戶端的組對象建立回調(diào)功能,使OPC服務器端的數(shù)據(jù)發(fā)生變化時,會自動通知OPC客戶端。該功能非常重要,是完成實時數(shù)據(jù)交換的保證。

    6)OPC客戶端刪除已建立的由IDATAOBJECT接口實現(xiàn)回調(diào)函數(shù)GroupUnAdvise的功能是結束由GroupAdviseTime建立的回調(diào)功能。

    7)OPC客戶端通過IConnectionPointContainer接口實現(xiàn)回調(diào)函數(shù)GroupAdvise2的功能是建立一個由IConnectionPointContainer 接口實現(xiàn)的的OPC客戶端的組對象建立回調(diào)功能,當OPC服務器端的數(shù)據(jù)發(fā)生變化時,會自動通知OPC客戶端。該功能非常重要,是完成實時數(shù)據(jù)交換的保證。

    8)OPC客戶端刪除已建立的由IConnectionPointContainer接口實現(xiàn)回調(diào)函數(shù)GroupUnadvise2的功能是結束由GroupAdvise2函數(shù)建立的回調(diào)功能。

    9)OPC客戶端讀取OPC服務器變量函數(shù)ReadOPCGroupItemValue的功能是從指定的OPC服務器中讀取指定的ITEM對象值。通過此函數(shù),用戶可以及時獲得OPC服務器中的數(shù)據(jù)。

    10)OPC客戶端設定OPC服務器變量函數(shù)WriteOPCGroupItemValue的功能是將OPC客戶端的數(shù)據(jù)用異步方式寫入到OPC服務器中去。通過此函數(shù),用戶可以及時修改OPC服務器中的數(shù)據(jù)。

    11)OPC客戶端工作結束函數(shù)DestroyServer的功能是將由InitializeServer函數(shù)初始化的服務器釋放,服務器與客戶端的連結便斷開。

    5、結束語

        OPC開發(fā)工具的出現(xiàn),方便了工業(yè)控制軟件中的設計與集成,縮短了產(chǎn)品的開發(fā)周期。優(yōu)秀的OPC開發(fā)工具將是國內(nèi)工業(yè)控制領域中必不可少的工具軟件。同時OPC標準的本身也在不斷的改進,其范圍也越來越廣。OPC基金會現(xiàn)在已經(jīng)頒布了數(shù)據(jù)訪問和報警事件標準,其它的OPC標準,如歷史數(shù)據(jù)OPC標準,也正在醞釀之中。OPC基金會發(fā)布的與微軟公司BizTalk體系兼容的XML(Extensible Markup Laguage)綱要,將Internet技術應用在工業(yè)控制中。相信在不久的將來,OPC技術及標準將應用于更加廣泛的領域,OPC開發(fā)工具也將向著多元化發(fā)展。OPC技術必將賦予現(xiàn)代工業(yè)控制軟件更強的生命活力。

    (審核編輯: 智匯李)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡及各大主流媒體。版權歸原作者所有。如認為內(nèi)容侵權,請聯(lián)系我們刪除。