亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Visual C#的OPC客戶(hù)端實(shí)現(xiàn)

        2009-05-12 03:14:34朱立軍陳未如
        現(xiàn)代電子技術(shù) 2009年2期

        朱立軍 安 娜 陳未如

        摘 要:OPC是連接數(shù)據(jù)源(OPC服務(wù)器)和數(shù)據(jù)的使用者(OPC應(yīng)用程序)之間的軟件接口標(biāo)準(zhǔn)。這里以C#為開(kāi)發(fā)工具,按照OPC技術(shù)的規(guī)范標(biāo)準(zhǔn),將OPC技術(shù)應(yīng)用到虛擬儀器顯示組件中。具體實(shí)現(xiàn)了OPC客戶(hù)端數(shù)據(jù)訪(fǎng)問(wèn)服務(wù)器的過(guò)程,接口步驟及其讀寫(xiě)數(shù)據(jù)的方法,并根據(jù)OPC服務(wù)器提供的數(shù)據(jù),最終在虛擬儀器顯示組件中生成了虛擬的正弦波、方波、鋸齒波、三角波等。

        關(guān)鍵詞:OPC;OPC接口;OPC服務(wù)器;C#

        中圖分類(lèi)號(hào):TP311.5文獻(xiàn)標(biāo)識(shí)碼:B

        文章編號(hào):1004 373X(2009)02 171 03

        Implementation of OPC Client Based on Visual C#

        ZHU Lijun,AN Na,CHEN Weiru

        (Shenyang Institute of Chemical Technology,Shenyang,110042,China)

        Abstract:OPC is the software interface standard between data sources (OPC server) and data users (OPC application).Based on OPC technology standards, the virtual instrument is proposed and is applied to the virtual instrument display components by using C# language.The OPC client data access server process,the method of write and read data and interface steps are realized.According to the data provided by OPC server,finally,the waveform of sine,square,sawtooth,triangle are generated in the display components of virtual instrument.

        Keywords:OPC;OPC iterface;OPC server;C#

        0 引 言

        隨著計(jì)算機(jī)技術(shù)和數(shù)字信號(hào)處理技術(shù)的發(fā)展,人們可以用計(jì)算機(jī)軟件替代傳統(tǒng)的硬件實(shí)現(xiàn)的一些功能,將計(jì)算機(jī)硬件和軟件有機(jī)的融合為一體,這就是所謂的虛擬儀器。近年來(lái),世界各國(guó)的虛擬儀器公司開(kāi)發(fā)了不少基于LabVIEW,Matlab,VC++,VB等虛擬儀器開(kāi)發(fā)平臺(tái)軟件,當(dāng)硬件操作的設(shè)備驅(qū)動(dòng)改變時(shí),軟件開(kāi)發(fā)人員需要修改大量的驅(qū)動(dòng)程序來(lái)連接此設(shè)備,因此使得虛擬儀器開(kāi)發(fā)平臺(tái)開(kāi)發(fā)難度大、通用性差。為此,提出了基于OPC技術(shù)的虛擬儀器,它是由硬件供應(yīng)商和軟件開(kāi)發(fā)商之間建立一套完整的“規(guī)則”,只要遵循這套規(guī)則,數(shù)據(jù)交互對(duì)兩者來(lái)說(shuō)都是透明的,硬件供應(yīng)商無(wú)需考慮應(yīng)用程序的多種需求和傳輸協(xié)議,軟件開(kāi)發(fā)商也無(wú)需了解硬件的實(shí)質(zhì)和操作過(guò)程[1]。

        1 OPC 技術(shù)

        OPC(OLE Process Control )是OPC基金會(huì)組織倡導(dǎo)的工業(yè)控制和生產(chǎn)自動(dòng)化領(lǐng)域中使用的硬件和軟件的接口標(biāo)準(zhǔn),以便有效地在應(yīng)用和過(guò)程控制設(shè)備之間讀寫(xiě)數(shù)據(jù),具體的功能實(shí)現(xiàn)要由開(kāi)發(fā)商根據(jù)需要自主的進(jìn)行研究與開(kāi)發(fā)。換句話(huà)說(shuō)OPC規(guī)范是一套公共的軟件標(biāo)準(zhǔn),任何OPC開(kāi)發(fā)人員所開(kāi)發(fā)的OPC軟件都要符合這個(gè)標(biāo)準(zhǔn)。

        OPC技術(shù)的特點(diǎn)可概括為如下3個(gè)方面:開(kāi)放性(Openness)、產(chǎn)業(yè)性(Productivity)和“即插即用”的互聯(lián)性(Connectivity),因此可以說(shuō),“OPC= Openness+ Productivity+Connectivity”,這也是對(duì)OPC優(yōu)點(diǎn)最概括的描述。因此OPC在短時(shí)間內(nèi)取得了飛速的發(fā)展。

        1.1 OPC服務(wù)器的組成

        OPC標(biāo)準(zhǔn)采用C/S模式,OPC服務(wù)器負(fù)責(zé)向OPC客戶(hù)端不斷的提供數(shù)據(jù)。OPC服務(wù)器包括3類(lèi)對(duì)象(Object) :服務(wù)器對(duì)象(Server) 、組對(duì)象(roup)和項(xiàng)對(duì)象(Item)。3類(lèi)對(duì)象都包括一系列接口,關(guān)系如圖1所示。

        OPC服務(wù)器對(duì)象維護(hù)有關(guān)服務(wù)器信息,并作為OPC組對(duì)象的包容器,它提供了對(duì)數(shù)據(jù)源進(jìn)行讀/寫(xiě)和通信的接口方法,可以動(dòng)態(tài)地創(chuàng)建或釋放組對(duì)象。

        OPC組對(duì)象由客戶(hù)端定義和維護(hù),它維護(hù)有關(guān)其自身的信息,提供包容OPC項(xiàng)對(duì)象的機(jī)制,從邏輯上實(shí)現(xiàn)對(duì)OPC項(xiàng)的管理。

        OPC項(xiàng)對(duì)象包含在OPC組中,可由客戶(hù)端定義和維護(hù)。項(xiàng)代表了與數(shù)據(jù)源的連接,所有的OPC項(xiàng)的操作都是通過(guò)包容此項(xiàng)的OPC組對(duì)象完成的。

        1.2 OPC的接口方式

        OPC服務(wù)器通常支持兩種類(lèi)型的訪(fǎng)問(wèn)接口:自定義接口(The OPC Custom Interfaces)和自動(dòng)化接口(The OPC Automation Interfaces),它們分別為不同的編程語(yǔ)言環(huán)境提供訪(fǎng)問(wèn)機(jī)制。

        自定義接口是任何OPC服務(wù)器所必須實(shí)現(xiàn)的接口,它描述了OPC組件對(duì)象的接口和其實(shí)現(xiàn)的方法,適合C++語(yǔ)言設(shè)計(jì),并可實(shí)現(xiàn)最佳運(yùn)行性能的客戶(hù)應(yīng)用程序。

        自動(dòng)化接口是可選接口(Optional Interface),它提供了自動(dòng)配置和存取過(guò)程控制數(shù)據(jù)的接口,方便了Visual Basic,Delphi,C#及其他可以使用自動(dòng)化服務(wù)器應(yīng)用程序接口的高級(jí)商業(yè)軟件使用。自動(dòng)化接口實(shí)際上是定制接口上的自動(dòng)化封裝,OPC規(guī)范通過(guò)提供一套標(biāo)準(zhǔn)的自動(dòng)化接口包裝器來(lái)實(shí)現(xiàn)這一功。

        1.3 OPC通信方式

        OPC規(guī)范規(guī)定了兩種通信方式:同步通信方式和異步通信方式。

        同步通信時(shí),OPC客戶(hù)程序?qū)PC服務(wù)器進(jìn)行讀寫(xiě)操作時(shí),OPC客戶(hù)程序必須等到OPC服務(wù)器對(duì)應(yīng)的操作全部完成以后才能返回,在此期間OPC客戶(hù)程序一直處于等待狀態(tài)。如果有大量數(shù)據(jù)進(jìn)行操作或者有大量OPC客戶(hù)程序?qū)PC服務(wù)器進(jìn)行讀寫(xiě)操作,必然造成OPC客戶(hù)程序的阻塞現(xiàn)象。因此同步通信適用于OPC客戶(hù)較少,數(shù)據(jù)量較小時(shí)的場(chǎng)合。

        異步通信時(shí),OPC客戶(hù)程序?qū)Ψ?wù)器進(jìn)行讀寫(xiě)操作時(shí),OPC客戶(hù)程序操作后立刻返回,不用等待OPC服務(wù)器的操作,可以進(jìn)行其他操作。當(dāng)OPC服務(wù)器完成操作后再通知OPC客戶(hù)程序。因此,相對(duì)于同步通信和異步通信的效率更高,適用于多客戶(hù)訪(fǎng)問(wèn)同一OPC服務(wù)器和大量數(shù)據(jù)的場(chǎng)合。

        2 OPC客戶(hù)端程序的設(shè)計(jì)方法

        (1) 安裝OPC自動(dòng)化接口服務(wù)。

        在.NET環(huán)境下,點(diǎn)擊“項(xiàng)目”子菜單下,“添加引用”,在彈出的對(duì)話(huà)框COM中選中“OPC DA Automation Wrapper2.02”項(xiàng),點(diǎn)擊“確定”按鈕,這樣才能使用自動(dòng)化接口的服務(wù)。

        (2) 連接OPC服務(wù)器。

        本例中使用的OPC服務(wù)器名為“ICONICS.Simulator OPCDA.2”。首先聲明變量,這樣才能觸發(fā)事件(DataChange)來(lái)獲取實(shí)時(shí)數(shù)據(jù)。

        public OPCServerClass tOpcServer;

        連接OPC服務(wù)器,生成一個(gè)OPC 服務(wù)器的實(shí)例

        OPCServerClass.Connect("ICONICS.SimulatorOPCDA.2",obj1);

        browse = OPCServerClass.CreateBrowser();//瀏覽服務(wù)器

        連接不同的OPC 服務(wù)器只要改變其服務(wù)器名稱(chēng)和OPC 服務(wù)器所在的計(jì)算機(jī)名稱(chēng)即可。

        (3) 添加組

        //增加一個(gè)名稱(chēng)為 group的組

        tOpcGroup=(OPCGroupClass) OPCServerClass.OPCGroups.Add("group");

        //激活該組,準(zhǔn)備收發(fā)數(shù)據(jù)。

        tOpcGroup.IsActive = true;

        //設(shè)置組的刷新頻率,單位為ms,本例中使用的刷新頻率最小為1 ms

        tOpcGroup.UpdateRate = 1;

        (4) 添加數(shù)據(jù)項(xiàng)

        private OPCItem item1;

        //啟動(dòng)數(shù)據(jù)訂閱功能,否則DataChange事件不能觸發(fā)

        tOpcGroup.IsSubscribed = true;

        (5) OPC數(shù)據(jù)的讀和寫(xiě)。

        對(duì)OPC服務(wù)器中的數(shù)據(jù)項(xiàng)數(shù)讀可以通過(guò)group組的DataChange 事件觸發(fā)來(lái)讀取。該事件有多個(gè)參數(shù):其中:NumItems 是指數(shù)據(jù)項(xiàng)的個(gè)數(shù);ItemValues為數(shù)據(jù)項(xiàng)的數(shù)據(jù);Qualities為數(shù)據(jù)項(xiàng)的品質(zhì);TimeStamps為數(shù)據(jù)項(xiàng)的更改時(shí)間;ClientHandles 是數(shù)據(jù)項(xiàng)的標(biāo)簽索引,其所指的OPC 標(biāo)簽的值在ItemValues (1) 中,只有數(shù)據(jù)發(fā)生變化時(shí)才會(huì)觸發(fā)該事件。也只會(huì)傳輸發(fā)生了變化的數(shù)據(jù),沒(méi)有變化的數(shù)據(jù)不會(huì)出現(xiàn)在本事件ItemValues 中。使用C#事件處理機(jī)制,將DataChange注冊(cè)到事件,一旦服務(wù)器端數(shù)據(jù)有變化,自動(dòng)觸發(fā)此過(guò)程,觸發(fā)函數(shù)為:

        void tOpcGroup_DataChange(int TransactionID,int NumItems,ref Array ClientHandles,ref Array ItemValues,ref Array Qualities,ref Array TimeStamps)

        tOpcGroup.DataChange += new DIOPCGroupEvent_DataChangeEventHandler(tOpcGroup_DataChange);

        (6) 斷開(kāi)OPC 服務(wù)器。

        OPC客戶(hù)端連接后占用服務(wù)器的資源,所以長(zhǎng)時(shí)間不需要使用的OPC讀寫(xiě)數(shù)據(jù),則應(yīng)及時(shí)斷開(kāi)OPC連接以釋放資源。

        //刪除所有的數(shù)據(jù)項(xiàng)

        OPCItem l.RemoveAll

        OPCServerClass.Disconnect();

        opc1.ServerShutDown+=new DIOPCServerEvent_ServerShutDownEventHandler(opc1_ServerShutDown);

        采用C#開(kāi)發(fā)工具,按照OPC規(guī)范來(lái)實(shí)現(xiàn)OPC客戶(hù)程序。OPC客戶(hù)程序?qū)崿F(xiàn)的功能有:通過(guò)OPC標(biāo)準(zhǔn)接口與OPC數(shù)據(jù)服務(wù)器連接,按照OPC服務(wù)器提供的Sine,Triangle,R8等波形數(shù)據(jù),并取得OPC服務(wù)器中相關(guān)OPC點(diǎn)的數(shù)據(jù),并對(duì)這些數(shù)據(jù)進(jìn)行綜合處理,實(shí)現(xiàn)各種波形圖案,運(yùn)行程序結(jié)果如圖2所示。

        3 結(jié) 語(yǔ)

        OPC規(guī)范的應(yīng)用簡(jiǎn)化了OPC客戶(hù)/服務(wù)器的開(kāi)發(fā)過(guò)程,統(tǒng)一了數(shù)據(jù)存取的接口標(biāo)準(zhǔn),將硬件供應(yīng)商與應(yīng)用軟件開(kāi)發(fā)者分離,使得軟件開(kāi)發(fā)者無(wú)需了解硬件的實(shí)質(zhì)和操作過(guò)程,只要遵循OPC標(biāo)準(zhǔn)進(jìn)行開(kāi)發(fā),就能夠訪(fǎng)問(wèn)OPC服務(wù)器中的數(shù)據(jù),大大簡(jiǎn)化了過(guò)去傳輸數(shù)據(jù)的復(fù)雜過(guò)程。在此介紹了在Visual C#環(huán)境下,遵循OPC標(biāo)準(zhǔn)提出了基于OPC技術(shù)的系統(tǒng)設(shè)計(jì)方案及數(shù)據(jù)接口開(kāi)發(fā)關(guān)鍵代碼,以快速、高效地進(jìn)行底層數(shù)據(jù)采集,安全、靈活的數(shù)據(jù)處理,便捷的圖形界面,為虛擬儀器提供了嶄新的解決方案,具有較大的應(yīng)用價(jià)值。

        參考文獻(xiàn)

        [1]盧宏,汪金良,曾青云.基于OPC技術(shù)的WinCE實(shí)時(shí)數(shù)據(jù)采集.自動(dòng)化博覽,2006(8):58-60.

        [2]黃珍,王永驥,潘瑞,等.OPC技術(shù)及其在工程船舶實(shí)時(shí)監(jiān)控系統(tǒng)中的應(yīng)用.船電技術(shù),2006(3):43-46.

        [3]李福軍,錢(qián)東海.OPC技術(shù)應(yīng)用于工業(yè)測(cè)試系統(tǒng)的研究.自動(dòng)化儀表,2006,27(2):43-46.

        [4]喬加新.OPC客戶(hù)端與OPC服務(wù)器的交互方式的研究.信息技術(shù),2005(8):122-124.

        [5]潘愛(ài)民.COM原理與應(yīng)用.北京:清華大學(xué)出版社,1999.

        [6]OPC Fundation.OPC Data Access Specification 1.0A.1997.

        [7]李蕾,戴瑜興.OPC數(shù)據(jù)存取服務(wù)器的實(shí)現(xiàn).湖南工程學(xué)院學(xué)報(bào),2005,15(2):19-22.

        [8]李蕾,戴瑜興.COM技術(shù)在OPC服務(wù)器中的應(yīng)用及實(shí)現(xiàn).控制工程,2005,12(3):238-240.

        [9]張建武,高國(guó)琴.OPC客戶(hù)/服務(wù)器模型設(shè)計(jì).計(jì)算機(jī)仿真,2005,22(4):152-154.

        [10]李善宣,李建兵.OPC技術(shù)在工業(yè)控制系統(tǒng)中的應(yīng)用研究.成都:西南交通大學(xué),2005.

        作者簡(jiǎn)介 朱立軍 男,1972年出生,遼寧人,講師,碩士。主要從事計(jì)算機(jī)測(cè)量與控制方面的研究。

        安 娜 女,1983年出生,遼寧人,在讀碩士研究生。主要從事計(jì)算機(jī)軟件的研究。

        陳未如 男,1963年出生,遼寧人,教授,碩士。主要從事構(gòu)件平臺(tái)技術(shù)與程序設(shè)計(jì)方法的研究。

        99久久免费只有精品国产| 西西少妇一区二区三区精品| 国产成人综合久久大片| 国产 一二三四五六| 亚洲国产精品福利片在线观看| 亚洲AV永久无码精品导航| 国产一区二区三区涩涩涩| 五月天婷婷一区二区三区久久| 男子把美女裙子脱了摸她内裤| 国产亚洲精品在线视频| 色先锋av影音先锋在线| 中文字幕一区二区三区久久网站| 妺妺窝人体色www在线直播| 日本一区二区高清在线观看| 亚洲视频网站大全免费看| 四虎影视免费观看高清视频| 美国黄色片一区二区三区| av大片网站在线观看| 亚洲欧洲av综合色无码| 伊人色综合视频一区二区三区| 日日爽日日操| 日本精品一区二区三区在线播放| 丰满巨臀人妻中文字幕| 国产av一区二区三区天堂综合网| 日本三级欧美三级人妇视频 | 日日碰狠狠躁久久躁9| 国产精品福利久久香蕉中文| 一本色道久久综合亚州精品| 精品人妻一区二区三区久久| 国产熟女露脸大叫高潮| 亚洲一区二区三区在线观看播放| 国产一区二区资源在线观看| 国产精品多人p群无码| 丁香花在线影院观看在线播放| 少妇的诱惑免费在线观看| 精品国产免费一区二区久久 | 尤物视频在线观看| 久久青草国产精品一区| 国产女人精品一区二区三区| 激情伊人五月天久久综合| 国产免费资源高清小视频在线观看|