999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Visual C#的OPC客戶端實現

2009-05-12 03:14:34朱立軍陳未如
現代電子技術 2009年2期

朱立軍 安 娜 陳未如

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

關鍵詞:OPC;OPC接口;OPC服務器;C#

中圖分類號:TP311.5文獻標識碼: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 引 言

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

1 OPC 技術

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

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

1.1 OPC服務器的組成

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

OPC服務器對象維護有關服務器信息,并作為OPC組對象的包容器,它提供了對數據源進行讀/寫和通信的接口方法,可以動態地創建或釋放組對象。

OPC組對象由客戶端定義和維護,它維護有關其自身的信息,提供包容OPC項對象的機制,從邏輯上實現對OPC項的管理。

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

1.2 OPC的接口方式

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

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

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

1.3 OPC通信方式

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

同步通信時,OPC客戶程序對OPC服務器進行讀寫操作時,OPC客戶程序必須等到OPC服務器對應的操作全部完成以后才能返回,在此期間OPC客戶程序一直處于等待狀態。如果有大量數據進行操作或者有大量OPC客戶程序對OPC服務器進行讀寫操作,必然造成OPC客戶程序的阻塞現象。因此同步通信適用于OPC客戶較少,數據量較小時的場合。

異步通信時,OPC客戶程序對服務器進行讀寫操作時,OPC客戶程序操作后立刻返回,不用等待OPC服務器的操作,可以進行其他操作。當OPC服務器完成操作后再通知OPC客戶程序。因此,相對于同步通信和異步通信的效率更高,適用于多客戶訪問同一OPC服務器和大量數據的場合。

2 OPC客戶端程序的設計方法

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

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

(2) 連接OPC服務器。

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

public OPCServerClass tOpcServer;

連接OPC服務器,生成一個OPC 服務器的實例

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

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

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

(3) 添加組

//增加一個名稱為 group的組

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

//激活該組,準備收發數據。

tOpcGroup.IsActive = true;

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

tOpcGroup.UpdateRate = 1;

(4) 添加數據項

private OPCItem item1;

//啟動數據訂閱功能,否則DataChange事件不能觸發

tOpcGroup.IsSubscribed = true;

(5) OPC數據的讀和寫。

對OPC服務器中的數據項數讀可以通過group組的DataChange 事件觸發來讀取。該事件有多個參數:其中:NumItems 是指數據項的個數;ItemValues為數據項的數據;Qualities為數據項的品質;TimeStamps為數據項的更改時間;ClientHandles 是數據項的標簽索引,其所指的OPC 標簽的值在ItemValues (1) 中,只有數據發生變化時才會觸發該事件。也只會傳輸發生了變化的數據,沒有變化的數據不會出現在本事件ItemValues 中。使用C#事件處理機制,將DataChange注冊到事件,一旦服務器端數據有變化,自動觸發此過程,觸發函數為:

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 服務器。

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

//刪除所有的數據項

OPCItem l.RemoveAll

OPCServerClass.Disconnect();

opc1.ServerShutDown+=new DIOPCServerEvent_ServerShutDownEventHandler(opc1_ServerShutDown);

采用C#開發工具,按照OPC規范來實現OPC客戶程序。OPC客戶程序實現的功能有:通過OPC標準接口與OPC數據服務器連接,按照OPC服務器提供的Sine,Triangle,R8等波形數據,并取得OPC服務器中相關OPC點的數據,并對這些數據進行綜合處理,實現各種波形圖案,運行程序結果如圖2所示。

3 結 語

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

參考文獻

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

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

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

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

[5]潘愛民.COM原理與應用.北京:清華大學出版社,1999.

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

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

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

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

[10]李善宣,李建兵.OPC技術在工業控制系統中的應用研究.成都:西南交通大學,2005.

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

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

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

主站蜘蛛池模板: 一区二区三区在线不卡免费| 日韩小视频在线播放| 91福利片| 91精品国产91久久久久久三级| 高清乱码精品福利在线视频| 999国内精品视频免费| 久久综合一个色综合网| 久热中文字幕在线| 中文字幕在线看| 婷婷中文在线| 伊人色天堂| 国产正在播放| 久热精品免费| 国产麻豆91网在线看| 91免费观看视频| 日本免费a视频| 男女男精品视频| 亚洲成人一区二区三区| 老汉色老汉首页a亚洲| 日韩国产综合精选| 草草线在成年免费视频2| 国产精品久久久久久久久久久久| 国产欧美综合在线观看第七页 | 视频二区国产精品职场同事| 尤物精品视频一区二区三区| 日韩在线2020专区| 久久国产精品嫖妓| 久久影院一区二区h| 国产理论一区| 成人91在线| 国产精品美女网站| 亚洲第七页| 国产在线一区视频| 国产精品欧美激情| 亚洲国产中文精品va在线播放| 91久久大香线蕉| 香蕉久久永久视频| 狠狠亚洲五月天| 97国内精品久久久久不卡| 国产麻豆精品手机在线观看| 国产精品浪潮Av| 欲色天天综合网| 青青极品在线| 国产精品尤物铁牛tv| 久久久噜噜噜| 制服丝袜无码每日更新| 亚洲无限乱码一二三四区| 小说区 亚洲 自拍 另类| 重口调教一区二区视频| 性视频一区| 欧美日韩午夜| 激情国产精品一区| 欧美高清国产| 色噜噜中文网| 免费女人18毛片a级毛片视频| 人妻精品久久久无码区色视| 婷婷午夜影院| 国产激情无码一区二区免费| 欧美日韩一区二区在线播放| 日本一区二区三区精品国产| 99视频在线观看免费| 国产91麻豆免费观看| 99偷拍视频精品一区二区| 国产精品视频白浆免费视频| 亚洲码一区二区三区| 欧美亚洲日韩不卡在线在线观看| 国产自在线拍| 免费观看精品视频999| 欧美成人免费| 无码高潮喷水专区久久| 特级毛片免费视频| 91网址在线播放| 亚洲av无码人妻| 片在线无码观看| 免费观看无遮挡www的小视频| 中文字幕乱码二三区免费| 制服丝袜一区| 亚洲视频无码| 少妇极品熟妇人妻专区视频| 午夜三级在线| 国产在线观看一区精品| 成人在线亚洲|