国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Visual?。茫5模希校每蛻舳藢崿F(xiàn)

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

朱立軍 安 娜 陳未如

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

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

中圖分類號:TP311.5文獻(xiàn)標(biāo)識碼:B

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

1 OPC 技術(shù)

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

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

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

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

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

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

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

1.2 OPC的接口方式

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

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

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

1.3 OPC通信方式

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

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

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

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

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

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

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

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

public OPCServerClass tOpcServer;

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

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

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

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

(3) 添加組

//增加一個名稱為 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ù)項

private OPCItem item1;

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

tOpcGroup.IsSubscribed = true;

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

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

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

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

OPCItem l.RemoveAll

OPCServerClass.Disconnect();

opc1.ServerShutDown+=new DIOPCServerEvent_ServerShutDownEventHandler(opc1_ServerShutDown);

采用C#開發(fā)工具,按照OPC規(guī)范來實現(xiàn)OPC客戶程序。OPC客戶程序?qū)崿F(xiàn)的功能有:通過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ù),并對這些數(shù)據(jù)進(jìn)行綜合處理,實現(xiàn)各種波形圖案,運(yùn)行程序結(jié)果如圖2所示。

3 結(jié) 語

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

參考文獻(xiàn)

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

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

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

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

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

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

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

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

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

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

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

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

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

尼玛县| 曲松县| 肃北| 石家庄市| 偏关县| 广南县| 翁牛特旗| 左贡县| 怀远县| 九龙县| 昔阳县| 渑池县| 乌兰察布市| 陵水| 丹阳市| 望城县| 雷波县| 资阳市| 两当县| 弥勒县| 浠水县| 溧阳市| 青龙| 岳阳县| 兴国县| 巴林左旗| 区。| 溧阳市| 定西市| 郧西县| 泊头市| 新郑市| 乌拉特前旗| 格尔木市| 鹤峰县| 墨玉县| 阳泉市| 吉安县| 青浦区| 高阳县| 屏东县|