時間:2015-08-04 15:31:52來源:馬磊 呂多勇 孫莉
摘要:本文介紹OPC技術的基本原理,重點論述了以VB6.0為基礎開發OPC客戶端,通過OPCServer訪問三菱FX1NPLC內部多種軟元件的方法。
關鍵詞:OPC;FX1N;通訊
一引言
隨著工業生產中自動化程度的不斷加深,DCS、PLC和其他智能儀器儀表的應用越來越多。但是,通常來自不同的廠商的工控產品采用的通訊協議和通訊方式不同,造成了它們相互之間的通訊非常復雜。因此我們在用高級編程語言做HMI(HumanMachineInteface)的時候不得不把很多的精力放到驅動程序的選擇和通訊協議的編程中去。如果底層的硬件結構發生變化,這樣使得HMI的升級和維護極其不便。因此,如何方便、有效、可靠、實時和高速地從各種自動化設備上取得所需要的各種實時數據成為我們面前的一大難題。
計算機技術的發展為解決這個難題提供了技術基礎。1996年,一些世界上占領先地位的自動化系統和硬件、軟件公司(包括Rockwell,Siemens等)與微軟(Microsoft)緊密合作,成立了OPC基金會,推出了OPC數據訪問標準版1.0。
二OPC簡介
OPC是ObjectLinkingandEmbedding(OLE)forProcessControl的縮寫,由OPC基金會負責OPC規范的制定和發布。OPC提出了一套統一的標準,采用CLIENT/SERVER模式,針對硬件設備的驅動程序由硬件廠商或專門的公司完成,提供具有統一OPC接口的SERVER程序,軟件廠商按照OPC標準訪問SERVER程序,即可實現與硬件設備的通信。
OPC是以OLE/COM機制作為應用程序的通訊標準。OLE/COM是一種客戶/服務器模式,具有語言無關性、代碼重用性、易于集成性等優點。OPC規范了接口函數,不管現場設備以何種形式存在,客戶都以統一的方式去訪問,從而保證軟件對客戶的透明性,使得用戶完全從低層的開發中脫離出來。
應用程序與OPC服務器之間必須有OPC接口,OPC規范提供了兩套標準接口:Custom標準接口和OLE自動化標準接口,如圖2.1所示。通常在系統設計中采用OLE自動化標準接口。
圖2.1OPC接口
OPC標準規定了基本OPC對象有三個:OPCServer、OPCGroup和OPCItem。
圖2.2OPCServer的對象模型
OPC的數據采集方式有三種方式:訂閱,同步和異步。
訂閱方式是OPCServer周期性地掃描緩沖區的數據,如果發現數據變化超過一定的幅度時,則更新數據緩沖器,并自動通知OPCClient。這樣OPCClient就可以自動接到OPCServer送來的變化通知的訂閱方式數據采集(Subscription)。訂閱式數據采集方式實際上也屬于異步讀取方式的一種。
同步方式是OPCServer把按照OPCClient的要求得到的數據訪問結果作為方法的參數返回給OPCClient,OPCClient在結果被返回之前必須處于等待狀態。
異步方式是OPCClient向OPCServer的發出要求后,立即返回,OPCClient隨后可以進行其他處理。當OPCServer完成數據訪問時,OPCServer主動觸發OPCClient的異步訪問完成事件,將數據訪問結果傳送給OPCClient。
通過以上的介紹可以看出在開發OPCClient程序時,實現異步方式和訂閱式方式比同步通信復雜,但OPCClient的請求數大大減少,有效降低了對服務器的重復訪問次數,對于數據量很大時,異步或者訂閱式數據采集方式是最適宜的。同步方式適合OPCClient與OPCServer之間的數據交換比較少的場合。
本文采用訂閱方式訪問OPCServer。
三OPCServer的配置
我們選擇Kepware公司的KepwareEXOPCServer作為OPC服務器。KepwareEXOPCServer內置了三菱的FX系列PLC的驅動,我們要首先配置OPC服務器。
1、運行KepwareEXOPCServerOPC,新建一個“Channl1”。然后再配置“Channel”,接下來的畫面中選擇“DeviceDriver”為“MitsubishiFX”,然后再設置通訊,如圖3.1所示。
圖3.1設備的選擇和通訊端口的設置
2、增加一個Device,命名為“Device1”,“DeviceModel”選擇“FX”。
至此,我們的OPCServer配置完成。為保證我們的設置正確,請用KepwareExOPCServer自帶的OPCclient(“請單擊工具欄的”)測試我們的配置是否正確。
四、用VB6.0實現OPCClient
1、建立新工程,在“工程”菜單下選擇“引用”,如圖4.1所示。選擇“OPCDAAutomationWrapper2.02”。
圖4.1
當我們安裝好KepwareEx后,它會在“引用”中添加一個“KepwareOPCAutomation2.0”的項,它是Kepware公司根據OPC基金會發布的規范自己開發的自動化程序接口。“KepwareOPCAutomation2.0”不僅具有“OPCDAAutomationWrapper2.02”的全部功能,而且由于Kepware公司對硬件特征比較了解,從而能夠最大限度地挖掘硬件的潛力,全面支持硬件特性,提高驅動程序的性能。但在本例中我們選擇“OPCDAAutomationWrapper2.02”。
2、由于OPC自動化接口的數組的索引要求必須從1開始,而系統默認是從0開始,為了避免錯誤要在代碼的最初加上“OptionBase1”語句。為了使對象可以處理事件,必須將objTestGrp和objServer的聲明中加上“WithEvents”語句,表示聲明的對象可以響應事件。如下
OptionExplicit
OptionBase1
DimWithEventsConnectedOPCserverAsOPCServer’定義OPCServer
DimConnectGroupsAsOPCGroups’定義OPCGroups
DimWithEventsConnectGroupAsOPCGroup’定義OPCGroup
DimOPCItemsAsOPCItems’定義OPCItems
初始化各種OPC對象
IfConnectedOPCserverIsNothingThen
SetConnectedOPCserver=NewOPCServer‘實例化OPCServer對象
ConnectedOPCserver.Connect"KEPware.KEPServerEx.V4"’通過connection方法連接到
ElseKepwareExOPCServer
ExitSub
EndIf
IfConnectGroupsIsNothingThen
SetConnectGroups=ConnectedOPCserver.OPCGroups‘增加組集合對象
'ConnectGroups.DefaultGroupIsActive=True
ConnectGroups.DefaultGroupDeadband=0
Else
ExitSub
EndIf
IfConnectGroupIsNothingThen
SetConnectGroup=ConnectGroups.Add("Group1")’增加組對象
ConnectGroup.UpdateRate=100‘設置更新周期為100ms
ConnectGroup.DeadBand=0’設置組的死區
ConnectGroup.IsActive=True’設置組為活動的
ConnectGroup.IsSubscribed=True‘啟用訂閱方式。它決定DataChange事件是否發生
Else
ExitSub
EndIf
IfOPCItemsIsNothingThen
SetOPCItems=ConnectGroup.OPCItems‘為組增加標簽集合
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’增加
標簽
組的DataChange事件的處理
SubConnectGroup_DataChange(ByValTransactionIDAsLong,ByValNumItemsAsLong,ClientHandles()As
Long,ItemValues()AsVariant,Qualities()AsLong,TimeStamps()AsDate)
DimiAsInteger
List1.Clear
Fori=1ToNumItems
List1.AddItemItemValues(i)
Nexti
EndSub
經過簡單的設置后,我們可以在圖4.2中看到結果。
圖4.2
五結論
OPC技術的使用,使得工控軟件的設計人員從繁瑣的通訊協議和硬件驅動中解放出來,僅需要一個OPC接口就可以訪問硬件設備而不需要考慮硬件設備的提供廠商,可以使他們更專心的進行HMI的設計;同時降低了硬件廠商的驅動開發成本,是硬件廠商僅提供一個OPCServer就可以滿足用戶的各種需求。OPC技術促進了工控領域內信息的共享和控制系統的開放,為HMI軟件的編寫提供了一種新的解決方案和技術思路。
參考文獻
[1]王棟,VisualBasic6.0程序設計實用教程[M],清華大學出版社,2003
[2]DataAccessAutomationInterfaceStandardVersion2.02,OPC基金會
[3]三菱FX系列可編程控制器編程手冊
[4]詹根基,OPC技術在列車上水控制系統中的應用研究
作者簡介:
馬磊(1981.10),女(漢族),山東省濱州市鄒平縣,研究生,講師,從事自動化專業的教學工作。
標簽:
下一篇:基于神經網絡的開關磁阻電機...
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-05-19
2025-04-30
2025-04-11
2025-04-08
2025-03-31
2025-03-26