技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > OPC技術(shù)在HMI中的應(yīng)用

OPC技術(shù)在HMI中的應(yīng)用

時(shí)間:2015-08-04 15:31:52來源:馬磊 呂多勇 孫莉

導(dǎo)語:?本文介紹OPC技術(shù)的基本原理,重點(diǎn)論述了以VB6.0為基礎(chǔ)開發(fā)OPC客戶端,通過OPC Server訪問三菱FX1N PLC內(nèi)部多種軟元件的方法。

摘要:本文介紹OPC技術(shù)的基本原理,重點(diǎn)論述了以VB6.0為基礎(chǔ)開發(fā)OPC客戶端,通過OPCServer訪問三菱FX1NPLC內(nèi)部多種軟元件的方法。

關(guān)鍵詞:OPC;FX1N;通訊

一引言

隨著工業(yè)生產(chǎn)中自動(dòng)化程度的不斷加深,DCS、PLC和其他智能儀器儀表的應(yīng)用越來越多。但是,通常來自不同的廠商的工控產(chǎn)品采用的通訊協(xié)議和通訊方式不同,造成了它們相互之間的通訊非常復(fù)雜。因此我們在用高級(jí)編程語言做HMI(HumanMachineInteface)的時(shí)候不得不把很多的精力放到驅(qū)動(dòng)程序的選擇和通訊協(xié)議的編程中去。如果底層的硬件結(jié)構(gòu)發(fā)生變化,這樣使得HMI的升級(jí)和維護(hù)極其不便。因此,如何方便、有效、可靠、實(shí)時(shí)和高速地從各種自動(dòng)化設(shè)備上取得所需要的各種實(shí)時(shí)數(shù)據(jù)成為我們面前的一大難題。

計(jì)算機(jī)技術(shù)的發(fā)展為解決這個(gè)難題提供了技術(shù)基礎(chǔ)。1996年,一些世界上占領(lǐng)先地位的自動(dòng)化系統(tǒng)和硬件、軟件公司(包括Rockwell,Siemens等)與微軟(Microsoft)緊密合作,成立了OPC基金會(huì),推出了OPC數(shù)據(jù)訪問標(biāo)準(zhǔn)版1.0。

二OPC簡介

OPC是ObjectLinkingandEmbedding(OLE)forProcessControl的縮寫,由OPC基金會(huì)負(fù)責(zé)OPC規(guī)范的制定和發(fā)布。OPC提出了一套統(tǒng)一的標(biāo)準(zhǔn),采用CLIENT/SERVER模式,針對(duì)硬件設(shè)備的驅(qū)動(dòng)程序由硬件廠商或?qū)iT的公司完成,提供具有統(tǒng)一OPC接口的SERVER程序,軟件廠商按照OPC標(biāo)準(zhǔn)訪問SERVER程序,即可實(shí)現(xiàn)與硬件設(shè)備的通信。

OPC是以O(shè)LE/COM機(jī)制作為應(yīng)用程序的通訊標(biāo)準(zhǔn)。OLE/COM是一種客戶/服務(wù)器模式,具有語言無關(guān)性、代碼重用性、易于集成性等優(yōu)點(diǎn)。OPC規(guī)范了接口函數(shù),不管現(xiàn)場設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問,從而保證軟件對(duì)客戶的透明性,使得用戶完全從低層的開發(fā)中脫離出來。

應(yīng)用程序與OPC服務(wù)器之間必須有OPC接口,OPC規(guī)范提供了兩套標(biāo)準(zhǔn)接口:Custom標(biāo)準(zhǔn)接口和OLE自動(dòng)化標(biāo)準(zhǔn)接口,如圖2.1所示。通常在系統(tǒng)設(shè)計(jì)中采用OLE自動(dòng)化標(biāo)準(zhǔn)接口。

圖2.1OPC接口

OPC標(biāo)準(zhǔn)規(guī)定了基本OPC對(duì)象有三個(gè):OPCServer、OPCGroup和OPCItem。

圖2.2OPCServer的對(duì)象模型

OPC的數(shù)據(jù)采集方式有三種方式:訂閱,同步和異步。

訂閱方式是OPCServer周期性地掃描緩沖區(qū)的數(shù)據(jù),如果發(fā)現(xiàn)數(shù)據(jù)變化超過一定的幅度時(shí),則更新數(shù)據(jù)緩沖器,并自動(dòng)通知OPCClient。這樣OPCClient就可以自動(dòng)接到OPCServer送來的變化通知的訂閱方式數(shù)據(jù)采集(Subscription)。訂閱式數(shù)據(jù)采集方式實(shí)際上也屬于異步讀取方式的一種。

同步方式是OPCServer把按照OPCClient的要求得到的數(shù)據(jù)訪問結(jié)果作為方法的參數(shù)返回給OPCClient,OPCClient在結(jié)果被返回之前必須處于等待狀態(tài)。

異步方式是OPCClient向OPCServer的發(fā)出要求后,立即返回,OPCClient隨后可以進(jìn)行其他處理。當(dāng)OPCServer完成數(shù)據(jù)訪問時(shí),OPCServer主動(dòng)觸發(fā)OPCClient的異步訪問完成事件,將數(shù)據(jù)訪問結(jié)果傳送給OPCClient。

通過以上的介紹可以看出在開發(fā)OPCClient程序時(shí),實(shí)現(xiàn)異步方式和訂閱式方式比同步通信復(fù)雜,但OPCClient的請(qǐng)求數(shù)大大減少,有效降低了對(duì)服務(wù)器的重復(fù)訪問次數(shù),對(duì)于數(shù)據(jù)量很大時(shí),異步或者訂閱式數(shù)據(jù)采集方式是最適宜的。同步方式適合OPCClient與OPCServer之間的數(shù)據(jù)交換比較少的場合。

本文采用訂閱方式訪問OPCServer。

三OPCServer的配置

我們選擇Kepware公司的KepwareEXOPCServer作為OPC服務(wù)器。KepwareEXOPCServer內(nèi)置了三菱的FX系列PLC的驅(qū)動(dòng),我們要首先配置OPC服務(wù)器。

1、運(yùn)行KepwareEXOPCServerOPC,新建一個(gè)“Channl1”。然后再配置“Channel”,接下來的畫面中選擇“DeviceDriver”為“MitsubishiFX”,然后再設(shè)置通訊,如圖3.1所示。

圖3.1設(shè)備的選擇和通訊端口的設(shè)置

2、增加一個(gè)Device,命名為“Device1”,“DeviceModel”選擇“FX”。

至此,我們的OPCServer配置完成。為保證我們的設(shè)置正確,請(qǐng)用KepwareExOPCServer自帶的OPCclient(“請(qǐng)單擊工具欄的”)測試我們的配置是否正確。

四、用VB6.0實(shí)現(xiàn)OPCClient

1、建立新工程,在“工程”菜單下選擇“引用”,如圖4.1所示。選擇“OPCDAAutomationWrapper2.02”。

圖4.1

當(dāng)我們安裝好KepwareEx后,它會(huì)在“引用”中添加一個(gè)“KepwareOPCAutomation2.0”的項(xiàng),它是Kepware公司根據(jù)OPC基金會(huì)發(fā)布的規(guī)范自己開發(fā)的自動(dòng)化程序接口。“KepwareOPCAutomation2.0”不僅具有“OPCDAAutomationWrapper2.02”的全部功能,而且由于Kepware公司對(duì)硬件特征比較了解,從而能夠最大限度地挖掘硬件的潛力,全面支持硬件特性,提高驅(qū)動(dòng)程序的性能。但在本例中我們選擇“OPCDAAutomationWrapper2.02”。

2、由于OPC自動(dòng)化接口的數(shù)組的索引要求必須從1開始,而系統(tǒng)默認(rèn)是從0開始,為了避免錯(cuò)誤要在代碼的最初加上“OptionBase1”語句。為了使對(duì)象可以處理事件,必須將objTestGrp和objServer的聲明中加上“WithEvents”語句,表示聲明的對(duì)象可以響應(yīng)事件。如下

OptionExplicit

OptionBase1

DimWithEventsConnectedOPCserverAsOPCServer’定義OPCServer

DimConnectGroupsAsOPCGroups’定義OPCGroups

DimWithEventsConnectGroupAsOPCGroup’定義OPCGroup

DimOPCItemsAsOPCItems’定義OPCItems

初始化各種OPC對(duì)象

IfConnectedOPCserverIsNothingThen

SetConnectedOPCserver=NewOPCServer‘實(shí)例化OPCServer對(duì)象

ConnectedOPCserver.Connect"KEPware.KEPServerEx.V4"’通過connection方法連接到

ElseKepwareExOPCServer

ExitSub

EndIf

IfConnectGroupsIsNothingThen

SetConnectGroups=ConnectedOPCserver.OPCGroups‘增加組集合對(duì)象

'ConnectGroups.DefaultGroupIsActive=True

ConnectGroups.DefaultGroupDeadband=0

Else

ExitSub

EndIf

IfConnectGroupIsNothingThen

SetConnectGroup=ConnectGroups.Add("Group1")’增加組對(duì)象

ConnectGroup.UpdateRate=100‘設(shè)置更新周期為100ms

ConnectGroup.DeadBand=0’設(shè)置組的死區(qū)

ConnectGroup.IsActive=True’設(shè)置組為活動(dòng)的

ConnectGroup.IsSubscribed=True‘啟用訂閱方式。它決定DataChange事件是否發(fā)生

Else

ExitSub

EndIf

IfOPCItemsIsNothingThen

SetOPCItems=ConnectGroup.OPCItems‘為組增加標(biāo)簽集合

Else

ExitSub

EndIf

DimiAsInteger

DimDataType(10)AsInteger

Fori=0To9

OPCItemIDs(i+1)="Channel1.Device1.D0"

ClentHangles(i+1)=i

DataType(i+1)=11

Nexti

OPCItemIDs(8)="Channel1.Device1.D8124"‘此名稱要與OPCServer中定義的名稱相同

DataType(8)=2

OPCItemIDs(9)="Channel1.Device1.T0"

DataType(9)=2

OPCItemIDs(10)="Channel1.Device1.D2"

DataType(10)=3

OPCItems.AddItems10,OPCItemIDs,ClentHangles,ItemServerHandles,ItemServerErrors,DataType’增加

標(biāo)簽

組的DataChange事件的處理

SubConnectGroup_DataChange(ByValTransactionIDAsLong,ByValNumItemsAsLong,ClientHandles()As

Long,ItemValues()AsVariant,Qualities()AsLong,TimeStamps()AsDate)

DimiAsInteger

List1.Clear

Fori=1ToNumItems

List1.AddItemItemValues(i)

Nexti

EndSub

經(jīng)過簡單的設(shè)置后,我們可以在圖4.2中看到結(jié)果。

圖4.2

五結(jié)論

OPC技術(shù)的使用,使得工控軟件的設(shè)計(jì)人員從繁瑣的通訊協(xié)議和硬件驅(qū)動(dòng)中解放出來,僅需要一個(gè)OPC接口就可以訪問硬件設(shè)備而不需要考慮硬件設(shè)備的提供廠商,可以使他們更專心的進(jìn)行HMI的設(shè)計(jì);同時(shí)降低了硬件廠商的驅(qū)動(dòng)開發(fā)成本,是硬件廠商僅提供一個(gè)OPCServer就可以滿足用戶的各種需求。OPC技術(shù)促進(jìn)了工控領(lǐng)域內(nèi)信息的共享和控制系統(tǒng)的開放,為HMI軟件的編寫提供了一種新的解決方案和技術(shù)思路。

參考文獻(xiàn)

[1]王棟,VisualBasic6.0程序設(shè)計(jì)實(shí)用教程[M],清華大學(xué)出版社,2003

[2]DataAccessAutomationInterfaceStandardVersion2.02,OPC基金會(huì)

[3]三菱FX系列可編程控制器編程手冊

[4]詹根基,OPC技術(shù)在列車上水控制系統(tǒng)中的應(yīng)用研究

作者簡介:

馬磊(1981.10),女(漢族),山東省濱州市鄒平縣,研究生,講師,從事自動(dòng)化專業(yè)的教學(xué)工作。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:2×1600KN尾水門機(jī)安全監(jiān)控系...

下一篇:基于神經(jīng)網(wǎng)絡(luò)的開關(guān)磁阻電機(jī)...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)