張建平 馬芳 馬利
摘 要
本文基于OPC技術,通過VB 結合sql server等相關軟件完成了一套工業現場異構系統集成軟件的開發。通過本軟件可以有效的將工業現場中不同的OPC server設備間的數據轉存到數據庫中,從而實現了工業現場之間異構系統的集成。利用本軟件可以有效的降低企業異構系統集成的成本,提高了企業的工作效率,同時為將來工業現場遠程監控提供了一個很好的平臺。
【關鍵詞】異構系統 集成 OPC VB SQL Server
1 引言
隨著計算機技術的高速發展,在工業現場領域,一套工業控制系統可能會選用很多不同公司的控制設備來集成一個系統,但由于標準不同,開發者必須對系統的所有設備都編寫對應的驅動,這無疑加大了開發的難度,同時由于驅動程序不同,使得不同設備之間通訊的時候容易造成數據擁堵,降低了系統的穩定性。
而OPC技術的出現可以有效的解決存在這些問題。OPC技術為各種軟硬件廠商之間提供了明確的分工,軟件廠商只需針對相應的接口進行編程,就可連接不同的設備。同時硬件設備廠商只需在設備中提供符合OPC規范的接口即可。這樣極大提高了設備之間的互操作性。有效的解決了工業現場異構系統的集成問題。
2 系統整體結構
為了解決工業現場異構系統的集成,本文利用VB 6.0 開發了一套基于OPC技術的工業現場異構系統集成軟件,該系統整體結構如圖1所示,通過VB編寫的客戶端軟件,可以將符合OPC規范的不同設備之間的數據都存儲到數據庫中,從而有效的完成了工業現場異構系統之間的數據的集成。
3 軟件的設計及實現
3.1 軟件的設計
本軟件設計的重點是如何利用VB來實現讀取OPC server中的數據,并將讀取到的數據轉存到數據庫中。
3.2 軟件的實現
3.2.1 OPC 技術原理
本軟件設計主要是開發OPC 客戶端軟件,而OPC 服務器端一般通過相應的組態軟件來實現。對于OPC服務器通常有兩種訪問接口,一種是OPC自定義接口,一種是OPC自動化接口。OPC自定義接口一般用c或者c++等程序來編寫。而OPC自動化接口主要采用VB或dephi等軟件來編寫。實際應用中,并不是所有的OPC服務器都提供自動化接口,如果要采用自動化接口,需要對自定義接口進行進一步的封裝,使其成為自動化接口,本次軟件設計中,采用的是OPC自動化接口完成對OPC Server的訪問。
3.2.2 利用VB 編寫OPC 客戶端的原理和代碼
使用VB編寫OPC客戶端的原理主要是通過創建OPC服務器對象,然后進行連接。進而創建OPC的組對象,在組對象中添加OPC數據項標簽,在OPC數據項標簽中進行數據的讀寫。
其中對數據項標簽的讀寫又分為異步和同步兩種方式。在本次軟件設計中,由于為了提高效率,因此采用同步的方式來讀取數據。
相關代碼的實現:
(1)連接OPC服務器。
Dim MyOPCServer As OPCServer ‘定義服務器對象變量MyOPCServer
Dim MyOPCGroup As OPCGroup ‘定義OPC組對象變量MyOPCGroup
Set MyOPCServer = New OPCServer
MyOPCServer.Connect " OPCServer.WinCC.1" ‘連接OPC服務器
(2)添加OPC組對象。
Set MyOPCGroup="MyOPCServer".OPCGroups.Add("Group1")
‘添加OPC組對象
MyOPCGroup.IsSubscribed= True‘設置該組數據為后臺刷新
MyOPCGroup.IsActive = True‘設置該組為激活狀態
MyOPCGroup.UpdateRate=1000‘設置數據刷新時間為1000
(3)添加數據項。
Dim ItemIDs() As String
Dim ClientHandles() As Long‘客戶端句柄
Dim ServerHandles() As Long‘服務器端句柄
Dim Errors() As Long
Dim i As Long
ItemCount=4
ClientHandles(i) = I
…………………..
MyOPCGroup.OPCItems.AddItems ItemCount, ItemIDs, ClientHandles, ServerHandles, Errors‘添加數據項操作
(4)同步數據讀寫。
……………………
MyOPCGroup.SyncRead OPCCache, ItemCount, ServerHandles, ReadValue, Errors‘同步讀數據
MyOPCGroup.SyncWrite ItemCount, ServerHandles, valuess, Errors‘同步寫數據
(5)斷開OPC服務器。
MyOPCServer.OPCGroups.RemoveAll‘移除所有OPC Group
Set MyOPCGroup = Nothing
MyOPCServer.Disconnect‘斷開連接
3.2.3 利用vb的ADO技術進行數據的轉存endprint
在VB 6.0主要利用ADO技術來完成對數據庫的訪問,在VB 中如果想使用ADO技術首先應該創建該對象,然后通過對相關控件屬性的設置即可進行數據庫的連接。相關的核心代碼為:
Private Sub Command7_Click()
Dim Value1 As Variant, Quality As Variant, TimeStamp As Variant
……………………………………
Form7.Adodc1.Recordset.Fields("采集值1") = Value1
Form7.Adodc1.Recordset.Fields("采集值2") = Value2
Form7.Adodc1.Recordset.Fields("采集值3") = Value3
Form7.Adodc1.Recordset.Fields("采集值4") = Value4
Form7.Adodc1.Recordset.Fields("采集時間") = TimeStamp4
Form7.Adodc1.Recordset.Update
Form7.Adodc1.Refresh
………………………………..
End Sub
4 結論
在工業現場領域中,OPC的作用已經越來越重要。它給硬件和軟件提供商提供了一套標準,本次軟件的設計正是基于這一標準,成功的利用vb開發一套OPC客戶端軟件,可以有效的將不同系統中OPC服務端的數據轉存到數據庫中,從而為工業現場異構系統之間數據集成提供了可能。
眾所周知,工業現場正在向信息化和網絡化發展,而企業對工業現場的遠程監控的需求越來越多,而本次軟件的設計,已經將異構系統之間的數據很好的轉存到了數據庫中,這就為將來工業現場異構系統之間的遠程監控提供了一個很好的平臺。
參考文獻
[1]王德康,蘇宏業,褚健.基于OPC技術的先進控制軟件設計與研究[J].化工自動化及儀表,2000,27(4):27-30.
[2]王飽,袁中凡.OPC接口技術在工業自動化系統中的應用[J].中國測試技術,2005,31(1):95-97.
[3]吳曉蕾,李逸,胡國軍,劉渤,張細蘭.通過OPC實現VB訪問WINCC數據[J].電氣傳動,2009,39(12):63-66.
[4]劉偉,田雨.OPC技術在檢測控制系統中的應用[J].電子設計工程,2009,17(8):100-106.
[5]吳連杰.實時通信技術在廠級監控信息系統中的研究與應用[D].(碩博學位論文),2009.
[6]Xu H.An Extendable Data Engine Based on OPC Specification[J].Computer Standards and Interfaces,2008,26 (6):515-525.
[7]W.F.Chang,Y.C.Wu,C.W.Chiu.Development of a web-based remote load supervision and control system Electrical Power & Energy Systems[J],2007,8:pp.386-395.
[8]Z-Word Inc.Dynamic C premier for semiconductor microprocessor integrated C development system user's manual[M].Califomia:Z-Word Corporation,1999.
作者單位
1.中州大學 信息工程學院 河南省鄭州市 450044
2.河南工業大學 電氣工程學院 河南省鄭州市 450007endprint