张建平 马芳 马利
摘 要
本文基于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