陆凤兰 浙江长兴发电有限责任公司
摘要: 本文在介绍国内大中型火力发电厂辅助控制系统的现状和分析OPC技术特点的基础上,提出了基于OPC标准通讯接口技术的发电厂辅控系统集成的总体设计方案,总结了开发OPC标准通讯接口的关键技术。
关键词: OPC;交换机; 工业以太网; 集成控制
Abstract:The paper introduces present situation of auxiliary control system in the thermal power plant, and analyzes the key technology of OPC。The paper puts forward the design scheme of auxiliary integrated control system,then summarizes the key technology of development Standard OPC server。
Key Words:OPC; Switch; Industrial Ethernet; Integrated Control
1 前言
由于每个电厂存在大量的、不同的计算机控制系统或称自动化“孤岛”,如DCS、PLC、FCS、SCADA等,随着技术的发展和管理要求的提高,要求电厂消除自动化“孤岛”现象,实现全厂自动控制系统的集中监控。而实现辅助车间集中监控系统,是实现全厂集中监控的前提和基础。
在OPC出现以前,要实现控制系统集成,系统集成商必须开发大量的通讯接口驱动程序来连接这些不同的控制系统或设备。由于不同控制系统甚至同一系统不同单元的驱动程序也有可能不同,系统集成商很难同时对这些系统进行访问以优化操作,因此也一直没有很好的解决方案。
2 OPC技术特点
自OPC提出后,这个问题终于得到解决。OPC基本思路是:将Microsoft的OLE/COM技术引入到过程控制领域,硬件厂商为其设备开发一个通用的符合OPC规范的数据接口(即OPC Server),供其它系统读写信息,应用软件也通过OPC规范的接口来读写硬件设备的信息(作为OPC Client)。用OPC技术可以实现全厂综合自动化,实现各种智能仪表、自动控制系统(DCS、PLC、FCS、SCADA)的无障碍连接。
综合起来说,OPC有以下几个特点:
1、计算机硬件厂商只需要编写一套驱动程序就可以满足不同用户的需要。硬件供应商只需提供一套符合OPC Server规范的程序组,无需考虑工程人员需求。
2、应用程序开发者只需编写一个接口便可以连接不同的设备。软件开发商无需重写大量的设备驱动程序。
3、工程人员在设备选型上有更多的选择。对于最终用户而言,选择面更宽一些,可以根据实际情况的不同,选择切合实际的设备。
OPC把硬件厂商和应用软件开发者分离开来,使得双方的工作效率都有了很大的提高,因此OPC在短时间内飞速发展。
3 基于OPC通讯技术的电厂辅机集控系统总体设计方案

由于各个辅助控制系统的通讯接口采用不同的通讯协议,甚至不同的物理接口,要实现集中监控,必须解决网络通讯协议的转换问题,保证在不同接口、协议之间,可靠准确地进行数据传送、交换。某发电厂辅机集成系统采用OPC标准通讯接口技术和工业以太环网,来互连各 个不同的辅助控制系统,实现外围辅助系统实现集中控制,整个系统如下图一所示。
本次需要集成的控制系统有:化学水处理控制系统、凝结水精处理控制系统、反渗透控制系统、加药和取样控制系统、制氢控制系统、体外再生控制系统等,下面简单介绍辅机集成控制系统架构
① 制氢控制系统通过在原GE 90-30控制系统的机架上插入工业以太网模块和车间工业交换机相连,通过车间交换机上连到集成系统服务器,数据采集和控制,通过远程OPC server for GE。
② 化学补给水控制系统、凝结水精处理控制系统、反渗透控制系统、消防泵控制都在化水车间,采用ENBT模板把ControlNet协议转换成ETH/IP协议,这些系统通过车间交换机上连到集成系统服务器,数据采集和控制,通过远程OPC server for AB TCP。
③ 温度巡测仪用两个232串口转换器,把232串口转换成以太网协议,然后通过车间SWITCHHUB上连到集成系统服务器,数据采集和控制,则通过专门开发的远程OPC server。
④ 上述整个集成控制系统的自动化软件采用了iFIX3.5,基本上所有的PLC控制系统与自动化软件iFIX3.5的接口都采用了商品化的基于DCOM的远程OPC Sever,但由于温度巡测仪为专用系统,没有现成的OPC通讯接口,为此,专门开发了符合OPC2.0规范的标准通讯接口。
4 基于OPC规范的串口通讯接口程序的开发
OPC数据通讯接口在自动化软件iFIX侧称为OPC客户,在PLC控制系统侧称为OPC数据服务器,OPC客户在iFIX侧是内置的,不需要专门开发,因此在此主要介绍OPC数据服务器的开发。

OPC数据服务器的设计与实现是一个较为复杂与繁重的任务。设计者既需要有很高的编程水平,同时也必须掌握相应的硬件产品特性。现在有各种OPC数据服务器开发工具,其目的是将MicroSoft公司的OLE/COM/DCOM技术和OPC的技术细节隐藏起来,使用户开发OPC服务器的工作集中在自己特定的数据采集任务上来。我们采用中国科学院沈阳自动化研究所的OPC服务 器快速开发工具SmartOPC,该开发工具是通过提供API 函数完成OPC 服务器的开发任务。
下面以我们开发的基于串口的发电机温度巡测仪OPC Server为例,简单说明OPC Server程序的开发过程。温度巡测仪型号为SRE-64B,对外提供232串口通讯。由于电厂建设辅机集成控制系统项目的需要,要把巡测仪接入以太网,因此必须把232串口转换到以太网,同时在系统服务器上运行OPC Server,用以采集巡测仪串口送出的数据,结构框图如下:
通过串口转以太网服务器,把温度巡测仪的串口转换成以太网,然后能在辅控数据服务器上看到巡测仪的虚拟串口,对串口的数据采集OPC Server程序开发如同在本机上一样,下面简单说明OPC Server的开发过程。
⑴首先安装SmartOPC 开发工具,安装后程序将在用户VC 环境下,安装一个“SmartOPC AppWizard ”向导,用户使用向导即可生成一个简单的OPC 程序。
在使用向导过程中,需要要对下列参数进行设置:
l OPC服务器CLSID:生成的OPC服务器的唯一一个CLSID。
l OPC服务器刷新率。
l OPC服务器程序标识。
l OPC服务器描述。
l OPC开发厂商描述
l OPC版本独立标识。
⑵在完成这些设置后,一个树型结构的数据地址变量的OPC 服务器程序创建成功。这时,要按照工程要求来修改三处函数:
①void CALLBACK EXPORT WriteProc (HANDLE handle,VARIANT& var )
该函数是SmartOPC 开发工具同现场设备交互的接口函数,用户可以重新修改函数体。
②BOOL CABCApp::CreateAddressSpace ()
该函数是定义SmartOPC 开发工具所产生的OPC 服务器浏览地址空间,OPC 服务器浏览地址空间采用树状结构,定义如下:
[Branch] [. ] [Branch ][…] [ . ]Leaf
其中“.” :是分支节点与子分支节点或叶子节点的分隔符号。
例如:a.b.c.d 的树状结构如下图:root 是根,a ,b ,c 为分支(Branch ),d 为叶子(Leaf ),用户可以定义和修改OPC 服务器浏览地址空间,例如,可以添加变量:
Ctag* pTag = NULL;
pTag = new Ctag();
theTagList.AddTail(pTag);
pTag->m_value.vt=VT_I2;
pTag->m_value.iVal=1;
pTag->m_name = “a.c”;
pTag->m_handle = AddTag(pTag->m_ name,pTag->m_value,FALSE);
pTag = new Ctag();
theTagList.AddTail(pTag);
pTag->m_value.vt=VT_I2;
pTag->m_value.iVal=1;
pTag->m_name = “b.d”;
pTag->m_handle = AddTag(pTag->m_ name,pTag->m_value,FALSE);
这样将生成两个分支a 和b (Branch ),相应的变量为c 和d (Leaf )
③void CMainFrame::OnTimer (UINT nIDEvent )
用户可以使用定时器函数或线程函数更新和维护Smart OPC 中已经添加的数据变量的值、时间戳、质量。
SmartOPC 开发工具向导自动生成了定时器函数维护OPC 服务器中的实时变量。
⑶除了上述三个函数外,用户还可能需要使用的函数有以下几个:
l 初使化动态连接库。
l 注册与注册删除。使用Smart OPC 开发工具所开发的OPC 服务器程序为自注册服务器。在DOS 提示符下运行如下命令完成注册与注册删除。
l 启动Smart OPC 开发工具
调用启动API 函数BOOL StartServer DLL()启动Smart OPC 开发工具。
l 传递回调函数指针
为了完成OPC 客户程序对现场设备中参数的修改,用户程序需要提供相应的函数指针,供Smart OPC 工具调用。
l 添加及删除数据变量

数据变量是用户提供给OPC 客户的数据访问点,用户程序需要维护数据点的变化,根据现场数据的变化及时更新。用户通过下列函数添加及删除数据变量。
HANDLE AddTag(CString name,VARIANT value,BOOL readOnly);
BOOL RemoveTag(HANDLE hTag);
l 数据变量的更新
用户通过更新函数可以及时更新和维护Smart OPC 中已经添加的数据变量的值、时间戳、质量。
BOOL UpdateTag(HANDLE handle,VARIANT & var,WORD quality,FILETIME timeStamp);
l Smart OPC 开发工具的停止
在用户程序退出之前,应该获取Smart OPC 的运行状态,决定是否退出程序。用户可以调用 BOOL ServerDLLInUse(); 函数,观察是否有OPC 客户程序与OPC 服务器连接。在用户决定退出之前,需要调用BOOL StopServerDLL()函数来SmarOPC。
根据上述步骤开发好OPC Server安装于辅控数据服务器上运行,采集温度巡测仪从串口送出的温度信号,然后通过iFIX的OPC Client连接OPC Server,把温度信号保存到iFIX的PDB过程数据库,供运行人员监视发电机线圈温度。
上述开发基于串口的OPC Server和电厂Controllogix、GE90-30等PLC的OPC Server一起,构成了基于OPC规范的电厂辅机集成控制系统的开放式数据采集、控制和通讯系统,至今运行稳定可靠,维护方便,可以任意增删控制系统的采集点(TAG点)。
5 结束语
由于辅机控制系统类型各异,接口数量众多,因此采用OPC和工业以太网技术是实现发电厂辅助车间集中监控的关键技术之一。同时,必须选择一个可靠、开放的、具有二次开发能力的控制系统平台,用于开发与各种控制系统接口程序也是关键之一。而iFIX具有MODBUS以太网、工业以太网和基于以太网的OPC开发工具和驱动程序,是用于控制系统集成的理想平台。本项目以OPC、工业以太网、TCP/IP技术为基础,实现了与ControlLogix、GE 90-30等PLC,以及其它具有232和485通讯口的控制设备的互连。
另外,采用OPC和工业以太网技术,实现电厂辅机集成控制,大大提高了电厂自动化水平,也为电厂减人增效创造条件,使电厂更加适应厂网分开、竞价上网的要求。
参考文献:
[1] 邱公伟.可编程控制器网络通讯及应用.北京:清华大学出版社.2000年
|