火电厂语音报警系统中的数据通信研究与实现

2017-03-01 08:58刘钢刘冯洋
中国新通信 2016年23期
关键词:数据通信火电厂机组

刘钢+刘冯洋

【摘要】 在回顾控制系统报警功能的基础上上,综合分析了基于Modbus的DCS数据通信、基于OPC的DCS数据通信和基于实时历史数据库的数据采集,给出了数据通信在火电厂语音报警系统中的应用方法和实例。

【关键词】 语音报警数据采集 ModbusOPC

一、引言

报警系统作为流程型生产企业安全生产不可或缺的重要环节,是大型火电单元机组热工自动化控制、报警、监测、保护的四大功能之一[1],也是火电厂运行人员实际集中监控过程中依赖程度很高的重要系统。国内外的主要分散控制系统(DCS)中均设置了专门的报警模块,但DCS中的报警模块一般采用显示器或光字牌等形式实现,这类实现方式对运行人员的主动性要求较高,即使通过声音方式进行提醒,也往往是单一的警示声,这并不利于运行人员快速发现异常并定位异常位置进而快速确认报警进行下一步工作,因此在传统的DCS系统之外,需要加装专门的语音报警系统以语音的方式明确地播报报警类型[2-3]。DCS是火电厂信息化框架中的底层现场数据来源,以外加装置形式存在的语音报警系统需要通过数据通信的方式从DCS(或辅控等其它主要控制系统)中获取生产数据并进行处理,本文主要讨论火电厂1000MW机组DCS加装语音报警系统中的数据通信问题。

二、基于Modbus的DCS数据通信

Modbus是由Modicon提出并实现的工业现场总线协议,是各家DCS生产厂商均支持的通用工业标准,因此Modbus是从DCS进行数据采集的首选通信方式。若语音报警系统设置在电子间或工程师站,距离作为通信站的DCS控制站较近,一般采用基于串行异步通信的Modbus协议,如果距离较远,则可采用基于TCP/IP协议栈的Modbus-TCP协议,本文重点讨论基于串口的情况。

标准Modbus端口采用的是定义了连接器、连接电缆、波特率、基本校验方法、信号等级的RS232兼容串口,Modbus控制器使用“主-从”模式进行通信的,即主站以查询方式主動发起数据连接,从站根据现场情况和主站指令进行响应。在语音报警系统的数据采集过程中,语音报警系统的数据采集程序以主站方式存在,DCS通信模件以从站的方式存在,通信的发起是由语音报警系统发起的。

由于DCS中的Modbus模件采用的通讯模式是RTU(远程终端单元),因此语音报警系统主要采用RTU方式进行通信,典型的Modbus信息帧如图1所示。其中ADU是应用数据单元,PDU是协议数据单元[4]。

根据以上分析,可知基于Modbus的数据采集过程,如图2所示。

为了确保DCS中报警信息与语音报警系统中报警信息的一致性,语音报警系统仅从DCS中获取开关量(线圈状态)而不是获取模拟量进行比对,因此,整个通讯过程仅需要使用功能码“01”读线圈状态。当DCS从站地址为1时,典型的请求指令(请求起始地址为1的16个数据点)和回应指令如图3所示。

三、基于OPC的DCS数据通信

OPC是基于微软DCOM实现的工业通信标准,一般由DCS实现OPC服务器并通过专门内部协议与OPC服务器进行通信,客户端通过OPC服务器获取现场数据。在语音报警系统中实现OPC客户端即可完成现场数据采集。在编制OPC客户端时,首先实现OPC对象,由此靠右使用OPC对象的各类属性和方法[5],典型的OPC服务器对象如图4所示。

典型的访问OPC服务器数据代码如下(以C#为例):

//建立OPC服务器

pIOPCServer = (IOPCServer)Activator.CreateInstance(svrCo mponenttyp);

//建立OPC组

p I O P C S e r v e r . A d d G r o u p ( G R O U P _ N A M E , 0 , d w R e q u e s t e d U p d a t e R a t e , h C l i e n t G r o u p , h T i m e B i a s . A d d r O f P i n n e d O b j e c t ( ) , h D e a d b a n d . AddrOfPinnedObject(),LOCALE_ID, out pSvrGroupHandle, out pRevUpdateRate, ref iidRequiredInterface, out pobjGroup1);

//定义OPC点并进行初始化,初始化内容包括:szItemID、hClient、bActive、dwBlobSize

OPCITEMDEF opcitem = new OPCITEMDEF();

//添加数据点

((IOPCItemMgt)pobjGroup1).AddItems(LO.Count, ItemDeffArray, out pResults, out pErrors);

//读取数据值

OPCITEMRESULT result = (OPCITEMRESULT)Marshal. PtrToStructure(pos, typeof(OPCITEMRESULT));

四、基于实时历史数据库应用开发接口的数据通信

在诸如DCS负荷较高、DCS通信模件不足等情况下,需要从SIS(厂级监控信息系统)中间接获取现场数据。SIS中一般采用诸如PI、eDNA等实时历史数据库作为核心,通过这些实时历史数据库提供的API(应用开发接口)可获取数据。

对于eDNA数据库,一般采用DNAGetRTValue方法获取实时值。该函数的原型为:

IntWINAPI DNAGetRTValue(const char *szPoint,double*pdValue);

在使用时打包为C#函数

[DllImport(“ezdnaapi.dll”,EntryPoint=”DNAGetRTVal ue”)]

Public static extern intDNAGetRTValue(string szPoint,ref double pdValue);

其中szPoint是要获取数据点的点名,通过对报警点表循环调用该函数,即可获取各个开关量的状态,从而进行报警。

对于PI数据库,可以选择使用PI-SDK进行访问,一般的访问步骤包括:

1)连接到PI

PISDK.IPISDK piSDK= new PISDK.PISDKClass();

PISDKDlg.ConnectionspiConn=new PISDKDlg. ConnectionsClass();

PISDK.ServerpiServer;

piServer=piSDK.Servers[“192.168.103.101”];

piConn.Login(ref piServer,refUID,refPWD,true,false);

2)读取数据

PISDK.PIPointpiPoint;

piPoint=piServer.PIPoints[“TagName”];

piTagValue=Convert.ToDouble(piPoint.Data.Snapshot.Value);

五、现场应用

以上对语音报警系统中现场数据采集常用方法进行了分析,在实际应用中需要根据现场实际情况进行分析。以平圩电厂三期2*1000MW机组工程为例,该工程采用Ovation作为DCS,以DCS为监控核心,实现对单元机组机、炉、电集中控制。Ovation按照开放式网络标准建立了整套工业系统[6],在设计期加装了Mobus串口通信模件并提供了开放的工業化通信环境,因此在该工程中采用Modbus与DCS进行通信,通信数据点每台机组232个,其中备用点80个,数据点涵盖了电力生产的各个重要环节,通信速度可以达到每秒1000点次,完全可以满足语音报警的数据要求。

参 考 文 献

[1]黄勇. 火电厂热工自动化的安全系统研究[J]. 硅谷,2011,20:81.

[2]李延华.1000MW机组热控自动化设计方案探讨[J].中国高新技术企业,2013,36:49-51.

[3]王君宇,王明春.电厂新型语音报警系统的研究和开发[J].发电设备,2014,06:421-423+427.

[4] 于树新,戴毅姜,周黎辉,陈洁.Modbus协议在DCS通信中的应用[J].仪器仪表与分析监测,2007,01:1-2+6.

[5] 刘志强.OPC数据存取服务器和客户端的研究与设计[D].内蒙古大学,2011.

[6] 李滨.OVATION控制系统在1000MW超超临界机组的应用[J].华东电力,2012,08:1452-1455.

猜你喜欢
数据通信火电厂机组
火电厂环保设施节能改造技术探索
关于间接蒸发冷机组在数据中心中应用的节能分析
考虑故障相关性的风电机组维修策略
先导式输灰技术在某火电厂的应用
火电厂600MW机组集控运行现状及改善对策分析
田湾核电5号机组首次并网成功
川航备降机组获“英雄机组”称号,机长刘传健被授英雄机长
加强火电厂行政事务管理工作的策略
基于EDA技术的通用异步收发器设计
北斗卫星同步技术在电力行业中的运用简析