技术文章

当前页面: 首页 >技术文章 >OPC与XMLSocket技术在企业控制层与信息层集成的应用

OPC与XMLSocket技术在企业控制层与信息层集成的应用

供稿:中国工控网 2006/5/22 9:58:00

0 人气:3290

关键词:企业信息化;OPC;XMLSocket;过程监控
中图分类号:TP273 文献标识码:A
The application of OPC and XMLSocket technology in the integration of control network and information network of an enterprise
TANG Qi-wei, CHENG Liang-lun
(Facility of Automation,GuangDong University of Techunology,Guangzhou 510090,China)
Abstract: This paper presents in detail one of the ways of OPC and XMLSocket technology applying to the integration of control network and information network and its outstanding superiority, and also gives an example of applying it to putting the process data into information system and realizing Realtime Process Monitoring and Control through an enterprise LAN.
Key words: E - Enterprise; OPC; XMLSocket; Process Monitoring and Control
1 背景
随着企业管理现代化与企业信息化水平的不断提高,企业管理信息系统需要共享工业现场的实时信息,成为全面综合的信息系统;在企业内,除了值班人员需要通过操作站或监控中心对现场设备进行监控管理以外,管理层人员同样需要浏览工业现场的生产运行状况,以便管理和决策。
管理人员可通过企业局域网采用WEB浏览的方式,将中央控制室的操作员站作为WEB服务器,将要浏览生产状况的计算机作为WEB客户端。要实现这样的功能,可以考虑采用组态软件商提供的集成软件进行发布,不过这样的软件、比较昂贵,且有严格的用户数限制,所以应用成本相当高。
当然现代工业组态软件的开放性为我们对过程数据的获得与处理提供了极大的便利,我们可以利用其提供的广泛的开放接口,如OPC接口获取实时过程数据。采用上述第二种方式实现工业控制层与企业信息层的结合,把生产现场数据保存记录、汇总综合,并让企业管理人员通过公司局域网使用浏览器对现场的生产状况进行监视是一种灵活低成本的实现方式。
本文研究开发了一套基于某企业现有西门子 WinCC监控系统的实时过程数据集成到企业信息层的方案。该方案应用OPC接口技术把WinCC的实时过程数据集成到公司管理信息系统的数据库中实现信息资源共享,并弥补了B/S结构的不足,使用XML方式通过FLASH把实时数据发布到公司局域网上供管理人员随时使用浏览器获知生产过程的重要数据。此方案在某化工企业得到了成功的应用,从运行效果可知此方案是完全可行并且是优秀的。2应用OPC技术把WinCC过程数据集成到SOLServer OPC是OLE for Process Control的缩写,即用于过程控制的OLE。OPC是一个工业标准,它是一种利用微软的COM/DCOM技术来达成自动化控制的协定,由一些世界上著名的自动化系统和硬件、软件公司和微软公司紧密合作而建立的。
WinCC是西门子公司在自动化领域采用最先进的技术与微软公司共同开发的居于世界领先地位的工控软件。WinCC是一个功能强大的全面开
放的监控系统,既可以用来完成小规模的简单的过程监控应用,也可以用来完成复杂的应用。在任何情况下WinCC都可以生成漂亮而便捷的人机对话接口,使操作员能够清晰地管理和优化生产过程。它集成的OPC(OLE for Process Control)服务器使得过程数据可由其它应用程序(OPC客户机)访问。WinCC作为西门子自动化系统的一员,在我国工业自动化领域中得到非常广泛的应用。
我们将会用VB编写OPC客户端连接WinCC获得过程数据,并使用VB中的ADO控件把获得的实时数据记录到SQLServer数据库中。WinCC在安装时提供了OPC的客户端控件,即Siemens OPC DAAutomation 2.0,这个控件就是我们在VB中要用到的控件。



2.1 用VB编写OPC客户端连接WinCC获得过程数据
OPC Server透过一组一组的接口(Interface)提供服务,在具体架构上,OPC Server共分为三层:分别是OPCServer(OPC服务器)、OPCGroup(OPC组)、OPCItem(OPC标签组)先在"32程 - >引用”把Siemens OPC DAAutomation 2.0加入,然后开始定义全局变量。在本示例程序中为便于说明,我们仅定义一个OPC组(OPCGroup)进行OPC访问一个WINCC过程变量(即OPCItem)。
我们要首先定义OPC服务类型与计算机结点名。定义OPC组与OPC标签组。并定义OPC的标签数组与值数,注意,值数组一定要设为Vari ant。StartClient()函数用于启动OPC客户端服务,StopClient()函数用于断开OPC连接,当不需要使用OPC时,我们把连接断开以释放OPC客户端连接后占用的服务器资源。我们可以在VB窗体添加两个按钮并组态相应的点击属性实现以上两个函数的调用。对OPC标签的读可以通过定义的MyOPCGroup组的DataChange事件来读取。
在OPC连接过程中只有数据发生变化时才会触发该事件,也只会传输发生了变化的数据,没有变化的数据不会出现在本事件的ItemValues中。具体程序代码给出如下:
全局变量的定义:
Dim WithEvents MyOPCServer As OPCServer
Dim WithEvents MyOPCGroup As OPCGroup
Dim MyOPCGroupColl As OPCGroups
Dim MyOPCItemColl As 0PCItems
Dim MyOPCItems As OPCItems
Dim MyOPCItem As OPCItem
Dim ClientHandles(1) As Long
Dim ServerHandles() As Long
Dim Values() As Variant
Dim Errors() As Long
Dim ItemIDs(1) AS String
Dim GroupName As String
Dim NodeName As String
Dim itemv(1) As Variant
StartClient()函数的定义:
Sub StartClient()’- - - 目的:连接至OPC-server,创建组和添加条目
ClientHandles(1)=1
GroupName=“MyGroup”
NodeName=“TQwPC”’- - -结点名,即计算机名
ItemtDs(1)=“WinCC-Tag”’- - -WinCC的一个变量
Set MyOPCServer=New OPCServer
MyOPCServer.Connect ServerName,NodeName
Set MyOPCGroupCoU=MyOPCServer.OPCGroups ’- - - 为添加组设置缺省的激活状态
MyOPCGroupColl.DefaultGroupIsActive=True’- - 添加组至收集
Set MyOPCGroup=MyOPCGroupcoll.Add(GroupName)
Set MyOPCItemcoll:MyOPCGroup.OPCItems
’- - -添加一个条目、返回ServerHandles
MyOPCItemC01I.AddItems 6,ItemIDs(),ClientHandles(),ServerHandles(),Errors
’- - -用于接受不同的信息组
MyOPCGroup.IsSubscribed:True
Exit Sub
ErrorHandler:
MsgBox“Error:”&Err.Description,vbCritical,“ERROR”
End Sub
StopClient()函数的定义:
Sub StopClient()’- - - 目的:从服务器释放对象并且断开连接
MyOPCGroupColl.RemoveAll’- - -释放组和服务器对象
MyOPCserver.Disconnect’- - -与服务器断开连接并且清除
Set MyOPCItemcoll=Nothing
Set MyOPCGroup=Nothing
Set MyOPCGroupColl=Nothing
Set MyOPCServer=Nothing
End Sub
Sub MyOPCGroup-DataChange()函数的定义:
Sub MyOPCGroup-DataChange(ByVal TransactionID As Long,ByVal Numltems As Long,Clen tHandles()As Long,itemvalues()As Variant,Qualities()As Long,TimeStamps()As Date) ’- - - 目的:组中的数值、质量或时间标志改变时,该事件激活
itemv(ClientHandles(1))=itemvalues(1)’- - -设置数据表单元值为数值读
Textl.Text=CStr(itemv(1))’- - -在VB窗体添加文本框以显示读取的WinCC变量值End Sub
2.2 使用ADO连接SQLServer存储从WinCC获得的实时数据
微软的数据库产品SQLserver2000无论是在系统性能还是易用性方面都具有突出的优势而受到人们的青睐,开发人员与管理人员对它都相当的熟悉,它是现今公司企业首选采用的数据库管理系统。
WinCC采用标准Sybase数据库进行生产数据的归档,公司管理信息系统已采用SQLServer2000数据库进行公司各项数据的管理,为满足本公司信息化的需求,便于企业对生产过程的重要数据进行集中而系统的管理,把WinCC的过程数据整合到
公司信息系统的SQLServer2000数据库的需求是很明显的。
上面我们已经把WinCC里的实时数据用OPC接口成功获取,接下来我们将使用数据库绑定控件 Adodc把数据记录到数据库中。这一控件不包括在常用的工具框中,我们需要通过“工程- >组件”添加Microsoft ADO Data Control6.0,添加完成后我们即可以在工具框中找到相应的控件。对添加的ADO控件设置几个重要属性:ConnectionString、 CommankType、RecordSource,通过Recordset与 Recordset.AddNew指定相应的字段即可把从OPC中获取的数据添加到SQLServer2000数据库中。
3 应用XML发布实时数据并通过Flash监控生产过程
工业企业中反映生产现场的数据与画面不但需要由值班与操作人员所掌握,同时也需要具有 Web浏览功能,可使经理、厂长等管理人员在办公室内就可掌握生产过程,从而更好的调度指挥生产,故生产流程具有Web浏览功能是工业企业中 CIMS和ERP系统中不可或缺的组成部分。
我们综合考虑了生产流程在WEB页面中编辑方式与生产流程在WEB浏览的实现手段,我们决定采用Flash。因为Flash能轻易的实现生产流程画面的编辑并且它内置的XMLSocket对象提供了一个实现WEB浏览的手段,能够解决B/S结构本身的弊端。
Flash现在已经成为制作高压缩、基于矢量的网络内容的行业标准,据统计有98.3%的网站用户使用Macromedia Flash Player。随着新版本 Flash MX(含Flash Player 6.0)的发布,Flash的应用领域得到了极大的扩展,使用Flash设计的内容可以在任意浏览器、系统平台和支持Macromedia
Flash Player的设备上使用。
用于Web浏览的生产流程通常需要我们在画面上把

更多内容请访问 中国工控网(http://www.gongkong.com)

手机扫描二维码分享本页

工控网APP下载安装

工控速派APP下载安装

 

我来评价

评价:
一般