利用OPC技术实现双网冗余系统的通讯驱动
1 引言
随着计算机科学技术、工业控制等方面的新技术的迅速发展,计算机监控系统由早期的集中式监控向全分布式的方向发展,计算机监控系统软件也从早期面向功能的系统,随着面向对象技术、分布式对象计算、多层次Client/Server技术的成熟,发展为面向具体现场设备为特征的面向对象的计算机监控系统。
同时,计算机监控系统规模越来越大,不同厂家生产的现场设备的种类在不断的增加,
由于不同厂家所提供的现场设备的通讯机制并不相同,计算机监控系统软件需要开发的设备通信驱动程序也就越来越多,而基于COM/DCOM技术的OPC技术,提供了一个统一的标准,不同厂商只要遵循OPC技术标准就可以实现软硬件的互操作性。目前已有很多监控软件支持OPC技术。本文以ROCKWELL公司的Control Logix PLC在某水电厂计算机监控系统的应用为例浅谈基于OPC访问的双以太网的冗余实现。
2 双网系统的结构及功能
系统结构如下:
图1:双网系统结构图
该水电厂共有两台水轮发电机组,一套公用设备。
整个系统采用双以太网冗余设计,上位机系统采用南瑞自控公司自主开发的软件EC2000,采用双网卡的工业控制计算机作为操作员站,设有两台工业控制交换机,两台水电机组控制及公用设备的控制均采用ROCKWELL公司生产的配置双CPU,双网卡的CONTROL LOGIX PLC。系统结构如图1所示。
功能要求:
(1)常规单网系统的监视、控制功能。
(2)PLC 主CPU坏,自动切换到从CPU通讯。
(3)PLC 主以太网卡坏、主网络线坏,自动切换到从以太网卡通讯。
(4)主交换机坏,自动切换到从交换机通讯。
(5)操作员站主网卡坏,自动切换到从网卡通讯。
3 基于OPC的通讯软件开发及实现
3.1 OPC简介
OPC(OLE for Process Control)是为过程控制设计的OLE技术,由一些世界上占领先地位的自动化系统和硬件、软件公司与微软(Microsoft)紧密合作而建立的,OPC基金会负责OPC规范的制定和发布。OPC提出了一套统一的标准,采用CLIENT/SERVER模式,
针对硬件设备的驱动程序由硬件厂商或专门的公司完成,提供具有统一OPC接口的SERVER程序,软件厂商按照OPC标准访问SERVER程序,即可实现与硬件设备的通信。
3.2 OPC规范
基于COM/DCOM技术的OPC采用Client/Server结构,为各厂家提供了一个公用的数据交换标准和规范,各个硬件设备厂家为其设备提供一个符合OPC规范接口的服务器,其他应用程序通过OPC接口对OPC服务器的访问实现对硬件设备的读写,由此软件开发者只需要开发一套OPC CLIENT程序,而不需要了解各硬件设备的通讯协议,也不需要为市场上几百种的硬件设备写专门的驱动程序。详细的OPC规范可到OPC基金会网站下载。
OPC主要包括OPC服务器(SERVER)和OPC 应用程序(CLIENT)两部分。其中一个OPC CLIENT可以连接一个或多个OPC 服务器,而多个OPC CLIENT也可以同时连接一个OPC 服务器,如图2所示。
图2:OPC CLIENT/OPC SERVER关系
3.3 OPC服务器组成
OPC服务器由三类对象组成:服务器(SERVER)、组(GROUP)、和数据项(ITEM)。
服务器对象保存服务器和服务器作为OPC组对象容器的所有信息。
OPC组对象保存组对象的信息,并提供组织OPC数据项的机制。OPC组对象为客户提供了组织数据的一种方法。例如,一个组可能代表一个特殊设备的数据项。OPC CLIENT可以通过组对象来读写数据,并可以设定OPC服务器应该提供给OPC CLIENT的数据更新速率。OPC规范定义了2种组对象:公共组和私有组。公共组由多个客户共享,局部组只隶属于一OPC客户。全局组对所有连接在服务器的应用程序都有效,而私有组只能对建立他的CLIENT有效。在一个SERVER中,可以有若干个组。
OPC 数据项代表到OPC 服务器的数据源连接,并不是数据源,数据项是读写数据的最小逻辑单位(在实际应用中,可能是物理设备的寄存器或寄存器的某一位),数据项不提供对外接口,不能作为单独的对象供OPC CLIENT访问,必须隶属于某一个组,所有对OPC数据项的访问必须经过包含OPC数据项的组对象,即必须通过组对象才可以访问到OPC数据项。在一个组对象中,客户可以加入多个OPC数据项。每个数据项包括3个变量:值(Value)、品质(Quality)和时间戳(Time Stamp)。数据值是以VARIANT形式表示的。
图3:Server/Group/Item关系
3.4设计思想及实现
设计的基本思想:采用OPC技术,通过OPC规范访问RSLINX OPC SERVER服务器,实现与PLC的通讯,通过不同GROUP的切换来实现冗余系统的功能,因为数据量较大,为提高刷新速率。采用每套PLC一个通讯程序的原则。(RSLINX OPC SERVER为ROCKWELL公司提供的与ROCKWELL公司生产的通讯组件,提供标准的OPC接口)。通过采用OPC技术,开发人员不需要了解ROCKWELL公司PLC的低层通讯协议,不管PLC采用以太网还是其它网络,只要在RSLINX中配置好,只需要符合OPC规范的的程序即可通讯。因此大大提高了开发效率。
通过对系统结构和功能的分析,操作员站与PLC的通讯有下面四种通道:
1、 操作员站主网卡+主CPU主网卡
2、 操作员站主网卡+主CPU从网卡
3、 操作员站从网卡+从CPU主网卡
4、 操作员站从网卡+从CPU从网卡
因此,在对RSLINX OPC SERVER的访问时,需要建立4个GROUP,为了通讯效率,任何
时刻保证只有一个GROUP处于活动状态。根据故障出现的情况进行切换。程序结构如下(具体代码略):
(1) 创建OPC SERVER对象。
(2) 添加GROUP1对象。
(3) 添加ITEM。
(4) 重复(2)和(3)三次,添加三个新的GROUP对象,命名为GROUP2,GROUP3,GROUP4,并添加相应的ITEM。
(5) 获取GROUP1对象接口,设置GROUP1对象为活动状态,设置其它GROUP对象为非活动状态。
(6) 定时查询GROUP1的品质,若品质为坏,则表明第一条通道出现故障,获取GROUP2对象接口,设置GROUP2对象为活动状态,查询GROUP2品质,若品质为好,则通道2无故障。以此通道做为主通道通讯,若品质为坏,则以次类推,直到GROUP4(通道4)。检测到某通道故障的同时在操作员站上报警。
(7) 系统退出时,删除ITEM,删除GROUP对象,删除OPC SERVER对象,程序退出。
4 结束语
通过本文介绍的方法,很容易的实现了冗余系统的通讯,在水电厂计算机监控系统中得到了实际应用。除本次介绍的双网通讯外,基于OPC技术的单以太网通讯也已经应用到许多现场。从通讯开发来看,采用OPC技术,不要了解低层通讯协议,从而大大减轻了开发人员的工作量,提高了工作效率。因此本文对同类方案的系统的设计和开发有一定的借鉴作用。
图片详见相册OPC技术!