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

?

使用C#開(kāi)發(fā)OPCClient的研究和應(yīng)用

2013-01-01 00:00:00張曉科
科技資訊 2013年2期

摘 要:本文詳細(xì)介紹了OPC的各種特性,和使用c#開(kāi)發(fā)OPC Client的具體過(guò)程以及在實(shí)際工程中的應(yīng)用。

關(guān)鍵詞:OPC c# DCOM

中圖分類(lèi)號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2013)01(b)-0033-02

1 OPC和C#概述

1.1 OPC概述

OPC(OLE for Process Control)是一種利用微軟的 COM/DCOM 技術(shù)來(lái)達(dá)成自動(dòng)化控制的協(xié)議,根據(jù) OPC Specification 的定義,OPC is "a standard mechanism for communicating to numerous data sources, either devices on the factory floor, or a database in a control room."

現(xiàn)代化企業(yè)中自動(dòng)化程度越來(lái)越高,數(shù)據(jù)量也在成倍增長(zhǎng),為了能夠充分利用這些數(shù)據(jù),發(fā)展出了ERP/MES等信息化系統(tǒng),這些系統(tǒng)架構(gòu)大體如圖1。

OPC協(xié)議做為一種通訊轉(zhuǎn)換協(xié)議,介于下層控制系統(tǒng)與上層軟件之間;它隱藏下層系統(tǒng)的不同,為上層的數(shù)據(jù)應(yīng)用提供一個(gè)統(tǒng)一的接口,使得上層軟件在數(shù)據(jù)集成時(shí),無(wú)需考慮下層控制系統(tǒng)的協(xié)議和實(shí)現(xiàn)方式,只要符合OPC客戶(hù)端的接口規(guī)范即可,這大大節(jié)省了上層軟件在數(shù)據(jù)集成方面的工作。

OPC發(fā)展至今已有1.0、2.0、3.0等幾個(gè)版本,在目前工業(yè)自動(dòng)化中以2.0使用最為廣泛。

1.2 C#概述

C#(念法:C Sharp,音標(biāo)[∫a:p])是微軟公司在2000年6月發(fā)布的一種新的編程語(yǔ)言,并在微軟職業(yè)開(kāi)發(fā)者論壇(PDC)上登臺(tái)亮相。C#是微軟公司研究員Anders Hejlsberg的研究成果。C#看起來(lái)與Java有著驚人的相似;但是C#與Java也有著明顯的不同,它借鑒了Delphi的一個(gè)特點(diǎn),與COM(組件對(duì)象模型)是直接集成的,而且它是微軟公司.NET windows網(wǎng)絡(luò)框架的主角。

C#旨在設(shè)計(jì)成為一種“簡(jiǎn)單、現(xiàn)代、通用”,以及面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。此種語(yǔ)言的實(shí)現(xiàn),應(yīng)提供對(duì)于以下軟件工程要素的支持:強(qiáng)類(lèi)型檢查、數(shù)組維度檢查、未初始化的變量引用檢測(cè)、自動(dòng)垃圾收集(Garbage Collection,指一種自動(dòng)內(nèi)存釋放技術(shù))。軟件必須做到強(qiáng)大、持久,并具有較強(qiáng)的編程生產(chǎn)力。

C#適合為獨(dú)立和嵌入式的系統(tǒng)編寫(xiě)程序,從使用復(fù)雜操作系統(tǒng)的大型系統(tǒng)到特定應(yīng)用的小型系統(tǒng)均適用。

2 使用C#開(kāi)發(fā)OPC Client

2.1 OPC工作原理

OPC技術(shù)是基于微軟的COM/DCOM技術(shù)的,COM是一種發(fā)展軟件組件的方法,所謂組件,是指一個(gè)可以提供給其它組件或程序服務(wù)的二進(jìn)制可執(zhí)行程序。每一個(gè)開(kāi)發(fā)好的COM組件就像一塊積木,在開(kāi)發(fā)應(yīng)用程序時(shí),你可以選擇合適的組件來(lái)組成你的應(yīng)用程序,而不需要從頭開(kāi)發(fā)所有的源代碼。為使用組件的功能,每個(gè)COM組件都提供了一系列的接口,使用者通過(guò)這些接口,傳遞相應(yīng)的參數(shù),即可實(shí)現(xiàn)相應(yīng)的功能。

OPC基于COM技術(shù),在OPC的規(guī)格中定義了使用所需要的接口;OPC客戶(hù)端通過(guò)這些接口,連接到OPC Server以采取數(shù)據(jù)。這就是OPC Server/Client的運(yùn)行方式。(如圖2)

OPC Server透過(guò)一組一組的接口提供服務(wù),在實(shí)際應(yīng)用中,OPC Server共分為三層:分別是OPCServer,OPCGroup,和OPCItem。

OPCItem即對(duì)應(yīng)自動(dòng)化控制系統(tǒng)中的一個(gè)點(diǎn),包括外部點(diǎn)或系統(tǒng)內(nèi)部點(diǎn),可以是模擬量也可以是開(kāi)關(guān)量;OPCGroup是OPCItem的一個(gè)集合,這個(gè)集合中一般包含了同一類(lèi)型的OPCItem;而OPCServer則是OPCGroup的集合,它包含一個(gè)或多個(gè)OPCGroup。

2.2 實(shí)現(xiàn)過(guò)程

首先,需要在c#中添加對(duì)OPC自動(dòng)化接口OPCAutomation的引用,該文件是OPC基金會(huì)提供的OPC自動(dòng)化接口標(biāo)準(zhǔn)文件。只有在引用該文件后,方可在c#中對(duì)OPC接口進(jìn)行訪問(wèn)。

在定義完這些對(duì)象后,下面就需要進(jìn)行連接OPC Server了。要連接到OPC Server,需要首先查看要連接的OPC Server所在計(jì)算機(jī)的IP地址以及在該計(jì)算機(jī)上注冊(cè)的名稱(chēng);OPCServer注冊(cè)名稱(chēng)的查看方法是在運(yùn)行中輸入“DCOMCNFG”—“組件服務(wù)”—“計(jì)算機(jī)”—“我的電腦”—“DCOM配置”下查找,也可以通過(guò)OPCServer的供應(yīng)商找到。例如西門(mén)子WinCC中的OPCServer的注冊(cè)名稱(chēng)是OPCServer.WinCC;和利時(shí)MACSV系統(tǒng)的OPCServer的注冊(cè)名稱(chēng)是Hollysys.MacsOPCSvr.1。

在明確了要連接的OPCServer的注冊(cè)名稱(chēng)及所在的計(jì)算機(jī)的IP地址后,我們就可以使用。

當(dāng)OPCServer端的Item的數(shù)值產(chǎn)生變化時(shí),將會(huì)以Group1_DataChange()事件來(lái)通知Client,同時(shí)將發(fā)生變化的Item的個(gè)數(shù)、變化的數(shù)值、時(shí)間標(biāo)簽、客戶(hù)端句柄等信息發(fā)回,用戶(hù)可在該事件中對(duì)變化的數(shù)值進(jìn)行處理。

這是稱(chēng)之為異步讀的方式,還有一種同步讀取數(shù)據(jù)的方式,如以下代碼所示: Group1.OPCItems.Item(i).Read(1, out Value, out Quality, out TimeStamp)

這句代碼就是以同步讀取方式的方式將Item(i)的值、數(shù)據(jù)質(zhì)量和事件標(biāo)簽從OPCServer端讀取出來(lái)。

2.3 DCOM配置

因?yàn)镺PC是基于微軟的COM技術(shù),如果OPC Server和Client不在同一個(gè)計(jì)算機(jī)時(shí),就需要對(duì)Server和Client所在的兩臺(tái)計(jì)算機(jī)分別做DCOM設(shè)置,才能實(shí)現(xiàn)數(shù)據(jù)互通,否則Client將不能正常訪問(wèn)到Server。

配置DCOM,依據(jù)系統(tǒng)的不同需要做不同的配置。但是通用的原則是在Server和Client所在的兩臺(tái)計(jì)算機(jī)上首先需要保證能夠互相訪問(wèn)到共享文件夾,然后在各自的計(jì)算機(jī)上增加一個(gè)密碼不為空,并且用戶(hù)名和密碼都相同的用戶(hù)。另外需要在DCOM配置屬性中添加上everyone的訪問(wèn)權(quán)限,以實(shí)現(xiàn)Client的連接。同時(shí)需要注意的是,如果已啟用防火墻軟件,則需要在所有的防火墻中添加例外,防止防火墻對(duì)OPC的阻塞。

3 結(jié)語(yǔ)

使用c#開(kāi)發(fā)OPC Client相比其它工具而言,比較方便而且快捷,而且在穩(wěn)定性和數(shù)據(jù)讀取的速度上,也有不小的優(yōu)勢(shì)。我們開(kāi)發(fā)的這個(gè)Client,通過(guò)在實(shí)際項(xiàng)目中的應(yīng)用,已經(jīng)完全證實(shí)了其可靠性,并且實(shí)現(xiàn)了一個(gè)Client同時(shí)讀取四個(gè)不同的OPCServer,總點(diǎn)數(shù)大概5000點(diǎn)的項(xiàng)目。

OPC依靠它自身的功能和簡(jiǎn)便,使其迅速發(fā)展壯大,并占據(jù)了主流的位置,今后對(duì)于OPC的應(yīng)用,將會(huì)越來(lái)越多,越來(lái)越普遍。

阿克陶县| 平塘县| 筠连县| 榆社县| 银川市| 武陟县| 正镶白旗| 丽江市| 宜昌市| 建阳市| 肇源县| 公主岭市| 佛山市| 大厂| 姜堰市| 揭西县| 福泉市| 攀枝花市| 新疆| 泰来县| 灵宝市| 昭平县| 新宁县| 永州市| 新安县| 黄冈市| 永丰县| 商都县| 万荣县| 楚雄市| 龙岩市| 育儿| 双柏县| 汝南县| 出国| 咸丰县| 商南县| 横峰县| 桂平市| 云阳县| 科尔|