1 引言
石油化工生产过程具有易燃、易爆、有毒、有害的特点。为了确保企业生产安全、稳定、长周期生产www.cechina.cn,保护国家财产,保障职工人身安全和健康,提高经济效益,必须加强安全生产管理,不断提高安全生产监督水平。
随着生产过程自动化水平不断提高,设备综合管理和重要性与日俱增。在广州石化的生产实践中,近年来,大量采用SCADA(supervisory control and data acquistion)系统作为生产过程管理自动化控制系统。作为监督控制与数据采集系统,scada系统将先进的计算机技术、工业控制技术和通讯技术有机地结合在一起控制工程网版权所有,既具有强大的现场测控功能,又具有极强的组网通讯能力,是自动化领域中广泛应用的重要系统之一。结合我厂的生产特点,生产过程中的报警和事件的监督管理是一个极为重要的环节。因此本文将scada系统的报警和事件管理作为重点来论述。
2 scada系统在广州石化的应用简介
scada系统在广州石化的成功应用实例很多,最典型的应用包括原油码头、油库及输油管线监控系统、原油罐区监控系统、液烃罐区监控系统、水处理控制系统和烟机机组控制系统等。虽然这些系统所监控的生产工艺过程各有不同,而且所使用的系统硬件及scada软件也有区别,但它们一般都具有如图1所示的基本结构:基于pc机windows平台的scada上位机系统,通过通讯网络连接到各主流厂家plc系统平台作为下位机系统。
图1 plc监控系统结构图
上位机系统的scada软件主要是采用wonderware的intouch和西门子公司的wincc。下位机系统平台则是各主流厂家的各种型号的plc控制系统,它们既有自己封闭的网络又有开放接口。上位机通常通过i/o接口卡或标准串口运行专用的上层采集模块,从下位机中实时地采集设备的各种参数。上位机系统在接受这些信息后,以适当的形式如图形、图象或声音等方式显示给用户,以达到监视的目的;同时数据经过处理后,告知用户设备各种参数的状态(报警、正常或报警恢复);上位机同时还可以接受操作人员的指示,将控制信号发送到下位机中,以达到控制的目的。
对于设备的操作方式, scada系统能够方便地实现三种操作方式:
“远程操作”—也就是在现场控制室操作员站上能对现场设备、阀门等的启停、开关进行操作,即在计算机屏幕上操作。
“就地操作”—某些设备也可以实现就地操作,在现场电气柜或机旁操作箱上的按钮进行操作。
“自动操作”—某些工艺过程比如由于液位低等外部原因引起,通过plc系统直接输出停泵等操作,以保护现场设备和工艺安全。
3 scada系统的报警和事件管理
3.1 系统的软硬件的组成
作为本节所引用的实例,其系统的软硬件组成结构和图1相同。其中系统的上位机采用的scada软件包,包括wonderware公司的intouch8.0和rockwell公司的rslogix5等,它们可以在pc-base的任何平台上运行,每单项功能设计均为模块化设计,用户可以在系统中进行各种新的开发和修改而不影响系统的正常运行;而系统的下位机采用allen-bradley公司的plc5控制系统。
3.2 系统的报警和事件
intouch有两种方式来通知操作员过程活动:报警与事件。报警是过程状态出现问题时发出的警告,同时要求操作人员做出响应。当一过程值超出用户自定义的极限时,譬如模拟量超出了上限值,报警即被触发。它触发了未确认报警状态,可以通知操作人员发生了什么问题。如果加入配置,intouch能够将报警写入到磁盘文件中,并将它打印出来。一旦操作人员确认了报警控制工程网版权所有,系统返回确认状态。事件表示了系统正常状态时的消息,当某一系统条件满足时,事件即被触发,它不要求操作人员响应,其查询和记录方法与报警相同。
3.3 报警和事件的显示与查询
intouch提供两种报警显示系统:标准报警显示和分布式报警显示。由于分布式报警显示系统界面更丰富、功能更为强大,而且在运行时进行各种查询更为方便灵活,因此即使在独立式应用程序系统中亦推荐使用分布式报警显示对象。图2所示就是一个典型应用的报警显示画面示意图。
图2 系统报警显示与操作界面
为了在系统运行中方便操作员进行各种分类查询和操作,在图2的报警显示画面中设置了许多功能按钮(用户可根据各系统的实际要求不同而进行增减)。在这一实例中过程系统只划分为:a1www.cechina.cn,a2,a3三个单元(在intouch中亦称为报警组)。下面是具体的实施要点:
首先,在标记名字典中创建消息标记名alarm_group和querytype。alarm_group用来定义报警组名:在图2画面中,如按下单元报警按钮“a1”执行action脚本:alarm_group=“a1”;
按下单元报警按钮“a2”执行action脚本:alarm_group=“a2”;
按下“返回系统报警总汇”执行action脚本:alarm_group=“$system”等。querytype用来定义查询类型:按下“报警摘要”按钮执行action脚本:querytype=“summ”;
按下“报警历史”按钮执行action脚本:querytype=“hist”。按下以上按钮及“a3”按钮均要执行共同的action脚本:almquery(“almobj_main”,“intouch!”+alarm_group, 1, 999,“all”,querytype),以动态地切换报警显示画面,脚本中almobj_main为在图2中嵌入的报警对象名称。
为了确认系统中发生的报警,在“确认全系统报警”按钮上链接action脚本:$system.ack=1;在“确认当前报警组报警”按钮上链接action脚本:groupvar.name=alarm_group,groupvar.ack=1;其中groupvar报警组组变量。此外,为了方便操作员操作,根据对应报警组是否存在未确认的报警在单元报警按钮a1www.cechina.cn,a2,a3上添加颜色动画链接,让操作员直观了解系统单元报警状态并能直接进入有未确认报警的单元细目显示画面,确认该单元的报警。
3.4 报警确认的操作站通知
intouch的设计支持创建独立式和分布式应用程序。分布式应用系统通常有好几层网络CONTROL ENGINEERING China版权所有,而且分布式应用程序亦要复杂得多,但其分布式报警功能在各操作站和服务器之间能自动实现报警确认的“通知”功能。相反,独立式应用程序一般较容易配置,需最少网络,只需要简单的维护,各工作站独立工作,自动实现操作站冗余功能。因此,在中、小型scada系统中大多都将上位机系统配置成独立式应用程序。
但是,对于独立式应用,系统中各操作站的报警确认在intouch应用程序中与其他操作站是无关的。为了实现类似分布式应用程序报警确认的“通知”功能,需要在独立式应用系统中手工增加报警确认的操作站通知功能。
以单元a1的报警确认为例,该单元所有的报警属于报警组a1。首先在标记名字典创建离散i/o标记名:a1alarm-ack,其dde访问项目为:b3:301/1。并在apllication script中添加脚本:a1alarm-ack = a1.ack。而在plc梯形图程序中添加图3所示的梯级。
图3 报警确认操作站通知
这样,不论系统中哪一个操作站触发a1单元的报警确认:a1.ack=1,则有a1alarm-ack=1,均会使plc处理器中的位b3:301/1=1,通过dde自动更新其他操作站的标记名a1alarm-ack的值,从而确认系统所有工作站a1单元的所有报警(a1.ack=1)。图3中的定时器t48:1的作用是当触发报警确认后2秒钟,自动解锁plc位b3:301/1,以接受a1单元的新报警。
3.5 现场设备的报警显示
在装置的控制系统改造中,工艺往往会要求保留现场报警指示灯。现以仪表位号tag1为例说明一个现场报警指示灯的实现方法:首先在标记名字典创建离散i/o标记名:tag1-unack,tag1-lamp,其dde访问项目分别为b3:301/2,o:101/1。在plc梯形图程序中添加以下梯级:
在图4中,tag1是报警指示灯tag1-lamp的报警源,o:101/1为报警指示灯的输出通道。标记名square-wave-signal是系统共用的频率为1hz的方波信号源(它是采用定时器方式在plc梯形图的其他梯级中实现)。图4梯级的功能是:当系统存在位号tag1的未确认报警时,tag1-unack=1,报警指示灯tag1-lamp输出频率1hz的闪光信号到现场报警指示面板显示;当tag1报警已确认时,tag1=1和tag1-unack=0,那么tag1-lamp输出报警常亮信号;正常时o:101/1=0,tag1-lamp输出报警灭灯信号。test是现场报警指示灯面板上的公用试灯按钮。
图4 现场设备报警显示
为了不断地扫描该仪表位号是否存在新的未确认报警状态,需apllication script的运行时脚本中添加语句:tag1-unack=tag1.unack。
4 结束语
本文所论述的报警与事件管理方法综合了目前广州石化多套运行中的scada系统的相关方法和技巧,在多年的生产实践中已经证明是行之有效的,对于其他中、小型系统的scada-plc改造具有普遍性的参考意义。