1 引言
现代工业控制系统通常以PC机为上位机,通过与现场工控设备如PLC的数据交换与处理,实现对生产过程的自动控制。对于小型控制系统,采用专门的组态软件成本太高,用VB设计监控系统则可以降低成本控制工程网版权所有,但首先要解决上位机与PLC之间通信问题。以往使用较多的进程间通信方式是DDE(动态数据交换)方式,随着OPC技术的发展和普及,它已成为工业过程控制的通信标准。OPC服务器有两类接口,其中自动化接口主要用于VB、Delphi等开发工具。本文利用罗克韦尔公司提供的OPC接口,用VB编写了客户端应用程序控制工程网版权所有,实现了上位机与AB可编程控制器之间的数据交换。
2 OPC技术简介
OPC(OLE for Process Control—用于过程控制的对象连接与嵌入)是一套以微软对象连接与嵌入OLE、组件对象模型COM、分布式组件对象模型DCOM(Distributed COM)技术为基础,基于Windo
OPC服务器有两类接口:定制接口和自动化接口。定制接口为C++程序服务,自动化接口为VB这一类可使用自动化对象的程序服务。定制接口是服务商必须提供的,而自动化接口则是可选的,不过OPC基金会提供了一个叫做“自动化包装器”的动态连接库,用于在两者间转换。
OPC数据存取规范规定的基本对象有三类:服务器(server)、组(group)和数据项(item)。服务器对象包含服务器的所有信息,也是组对象的容器,一个服务器对应于一个OPC server,即一种设备的驱动程序。组对象除了包含它自身信息外,还负责管理数据项。每一个数据项代表到数据源的一个连接,但它没有提供外部接口,客户端程序无法对数据项直接进行操作,应用程序必须依靠数据项的容器组对象来对它进行操作。
3 通信实现
3.1 RSLinx的配置
RSLinx是AB可编程控制器在Windows环境下建立工厂所用通信方案的工具,它不仅提供了多种网络驱动程序,而且提供了最快速的OPC、DDE和Custom C/C++接口。本设计中上位机与Logix5550控制器采用RS-232串口方式连接,在RSLinx中要对DF1网络驱动程序组态,设置串口特性:COM1、波特率19200bps、一个停止位、无奇偶校验、全双工、BCC校验码。此外要使用RSLinx的OPC接口作为服务器,还要在RSLinx中对OPC进行配置。
3.2 安装OPC自动化接口服务
若要用VB开发OPC应用程序,必须安装OPC自动化接口服务,保证计算机系统目录下有OPCDAAuto.dll。OPC基金会提供了一个叫做“自动化包装器”的动态连接库,从OPC基金会的网站(www.opcfoundation.org)可下载。在VB环境中,按“工程”的子菜单“引用…”后,弹出对话框www.cechina.cn,选择其中的“RSLinx OPC Automation 2.0”项,这样才能使用自动化接口。
3.3 程序设计
用VB编写了OPC客户端应用程序,实现了上位机与Logix5550控制器之间的通信。主要程序代码如下:
(1) 连接OPC服务器
Dim WithEvents MyOPCServer As OPCServer ‘定义服务器对象变量MyOPCServer
Dim WithEvents MyOPCGroup As OPCGroup ‘定义OPC组对象变量MyOPCGroup
Set MyOPCServer = New OPCServer
MyOPCServer.Connect "RSLinx OPC Server" ‘连接RSLinx 的OPC服务器