杨晓光,刘明阳,张大为,王克斌
(1. 水力发电设备国家重点实验室,哈尔滨 150040;2. 哈尔滨电机厂有限责任公司,哈尔滨 150040)
OPC(OLE for Process Control)是用于过程控制的OLE ,OLE(Object Linking and Embedding)是对象连接和嵌入。OPC是基于微软的OLE/COM技术,为解决工业及其他客户机与各种设备驱动程序间相互通讯而产生的工业技术规范和标准。OPC技术规范是由OPC基金会制定的,它提供了标准的统一的数据访问软件及硬件的接口。由于OPC技术比传统的数据存储方式更具有开放性和先进性,已得到越来越多的工控领域硬件和软件制造商的认可。目前已经成为工业控制软件上各个软硬件制造商的公认标准。
在发电设备行业中有大量的非标准设备和专用设备。比如应用于冲片生产的冲槽机、涂漆线、点焊机、线圈的包带机、涨型机及四角焊机等很多专用的数控设备。这些设备无论是从工艺编程、设备的维护、生产的管理等都需要由专人专管。这样,在从生产的前期准备到生产的过程控制及设备的维护都要投入大量人力和物力来进行管理。为了能够实现设备的标准化管理,在哈电机的数控冲槽机上进行了尝试,引入了OPC技术进行软件的开发,使得OPC技术在数控冲槽机上得到了初步的实现。
在采用 OPC 技术以前,传统的数据存储方法主要是通过驱动程序和动态数据交换两种方法。
驱动程序法是在应用程序中挂接“驱动程序”来存取现场控制设备和数据库的数据。这种方法需要每一个特定的硬件必须为每一个应用程序编写“驱动程序”另外多个程序不能同时存取同一设备的数据。
动态数据交换法是基于 Windows的消息传递而建立的技术。所以具有数据的传递速度较慢,没有安全机制,数据传递安全性差,开发比较困难等缺点。
随着信息技术的发展,自动化系统对大范围信息共享的要求越来越强烈,因而对工业系统控制的开放性提出了越来越高的要求,因此需要一种通用的方法,使应用程序可以方便地存取任何一台设备或多台设备的数据,为不同厂商生产的软硬件提供系统集成和数据交换的途径。正是在这种情况下,OPC技术应运而生,其目的就是要建立大量数据源的标准机制,这些数据源可以是工厂的设备或控制室数据库。OPC 技术是 OPC基金会组织制定的工业控制软件相互操作性的规范,也是微软为了把 Windows 应用于控制系统共同推出的一项技术。它是以微软的COM/DCOM(组件对象模型和分布式组件对象模型)技术为基础,为工业控制软件定义了一套标准的对象、接口和属性。OPC 技术在硬件供应商和软件开发者之间搭上了一座桥梁,它提供一种机制从数据源并且以一个标准的方式将这些数据传送到任意客户端应用程序。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问。从而实现了系统的开放性,易于实现与其他系统的接口。利用OPC使接口标准化可以构成图1所示的系统。
图1
数控冲槽机是一种专为大型交直流电机生产铁心矽钢片的专用设备,是一种三轴联动的数控机床,该机床的数控系统采用西门子的 840D数控系统及S7-300 PLC硬件系统,伺服驱动系统采用611D,该设备不同于一般的通用数控机床。需要进行外部的工艺编程及控制。这些工作如果在西门子的840D数控系统上实现难度相当大,而且在产品发生变化时改变起来也非常麻烦,所以这些工作需要在上位机上进行,而不是在数控系统上完成。这样就存在一个上位机和西门子的840D及S7-300PLC进行通信的问题。为了能够实现上位机和西门子840D及S7-300 PLC通信。我们采用了西门子提供的标准的 OPC Server接口来实现,这样就完成了程序、数据的交换及控制过程的相互通信。
上位机是本项目中完成电机冲片生产工艺及加工程序的主要平台,还要完成和西门子 840D的程序数据的交换,以及和S7-300 PLC的控制联络及监控。我们采用Profibus DP 工业现场总线作为OPC的联络通道。西门子的数控及PLC产品也提供这种开放的接口,通过西门子提供的开放标准接口 OPC Server 在上位机上Windows XP操作系统采用 Visual Basic 6.0高级语言进行编程。既可以向西门子的840D数控系统传输程序和数据,同时也可以和S7-300 PLC进行控制联络。图2是OPC Server 在Visual Basic 中所提供的接口方式。
最上层是西门子向 WindowsXP 提供的 OPC Server,然后是OPC 组的集合,在组的集合下面分成了各个组,每个组里面有自己的标签集合,每一个标签集合分为标签变量。
这些变量可以通过OPC浏览器来进行编辑。
图2
下面是在Visual Basic 公共部分中声明OPC的变量以及设定OPC服务器的初始状态程序。
Dim WithEvents AnOPCServer As OPCServer
Dim ARealOPCServer As String
Dim ARealOPCNodeName As String
Dim AnOPCServerBrowser As OPCBrowser
Dim MyGroups As OPCGroups
Dim DefaultGroupUpdateRate As Long
Dim OneGroup As OPCGroup
Dim AnOPCItemCollection As OPCItems
Dim AnOPCItem As OPCItem
Dim ClientHandles(100)As Long
Dim AnOPCItemIDs(100)As String
Dim AnOPCItemServerHandles() As Long
Dim AnOPCItemServerErrors() As Long
Set AnOPCServer = New OPCServer
ARealOPCServer=“VendorX.DataAccessCustomSe rver”
ARealOPCNodeName=“SomeComputerNodeName”
AnOPCServer.Connect(ARealOPCServer,ARealOP CNodeName)
Set MyGroups = AnOPCServer.OPCGroups
MyGroups.DefaultGroupIsActive = True
Set OneGroup=MyGroups.Add(“AnOPCGroupName”)
Set AnOPCItemCollection = OneGroup.OPCItems
作为 OPC 的一个应用,首先必须要建立一个OPC服务器,这个OPC服务器包含了OPC组的集合和浏览器。然后客户端要在这个服务器中定义自己组的集合,这个组的集合包含了客户和OPC服务器连接的所有通道,也就是说在设备制造商通过OPC向用户开放的接口,在我们这个例子中也就是我们的上位机要与西门子840D 数控系统的S7-300PLC进行数据交换和联络的通道。
下面是Visual Basic 与S7的连接过程(部分程序)
在客户端上位机启动Station Configuration弹出对话框,如图3所示,我们可以对该窗口进行配置。
图3
我们可以在相应的槽号上选择组件,配置完成后就可以进行激活,当激活连接成功后连接相应的变量,这些变量可以是西门子840D S7-300PLC的各种变量。这样,我们就可以通过OPC进行数控设备和上位机的标准化连接。通过高级语言VC、VB、VBA等(我们这里使用的是 VB)就可以很方便地对专用设备进行各种操作。以上是连接西门子数控系统 S7-300 的部分VB程序,通过OPC Server 实现了用上位机和专用数控机床的连接过程,目前该设备已经在哈尔滨电机厂运行了4年,设备运行稳定,数据存储方便,为专用设备的标准化连接提供一条很方便实用的渠道。并且在专用设备的开发和改造上也起了非常大的作用,为哈电机专用设备的升级维修维护和改造起到非常大的作用。
在专用设备的标准化接口方面我们已经取得了一些有意义的经验,对生产企业在生产及设备方面的标准化管理提供了坚实的基础。为将来的远程设备数据交换,设计和工艺部门通过标准的接口实现CAD 和CAM 提供了有利的条件。设备部门通过标准接口实现远程实时监控。生产部门通过标准接口了解生产情况,收集生产数据提供了很好的渠道。