SIS系统中的SOE常见问题与SOE组态策略

2018/4/22 18:41:29 人评论 次浏览 分类:技术方案  文章地址:http://yunrun.com.cn/tech/1934.html

SIS系统是Safety Instrumented System安全仪表系统的简称,它是从ESD(Emergency Shutdown Device 紧急停车系统)发展过来的,目的是对生产装置提供开停车全过程全方位的安全保护。随着石油化工装置的大型化,联锁保护系统的复杂化,SIS系统得到越来越多的应用。SOE是Sequence Of Event事件顺序记录的缩写,用于记录故障(停车)发生的时间和类型,一般SIS系统都配套提供自己的SOE软件,用于事故分析和故障查找。由于现代化工装置越来越复杂,造成停车的原因很多,因此不管是工艺还是仪表越来越依赖SOE记录来帮助查找停车原因。

1、目前SIS系统中SOE形同虚设的原因
在很多生产实例中,相对于对联锁逻辑的完整、严谨、细致,多数项目对SOE的组态重视程度不够,导致SOE系统形同摆设,不能有效的帮助分析、查找事故原因。主要表现在以下几个方面:
①SOE事件杂乱无序;
②SOE变量较多,部分与停车事件无关的变量掺杂其中;
③SOE记录时间和DCS(Distributed Control System)趋势记录时间不一致;
④事件触发时锁定,恢复时未能锁定;
⑤输入变量和输出变量混在一起;
凡此种种,主要原因就是在工程组态时对SOE缺乏总体规划,既不利于后期的逻辑测试,也不便于投产后的事件分析。

2、SIS系统中的SOE组态策略
针对以上问题,昌晖仪表根据多年维护经验,总结了以下几点SOE组态策略。
①优化SOE变量
SOE的目的就是帮助分析事件的触发顺序,特别是停车事故的分析。并不是所有的SIS变量都需要作为SOE变量。通过仔细遴选SOE变量,使其数量最精简,这是SOE组态最重要的前期工作。遴选的标准就是它是否是帮助我们分析事故的必要变量,对于那些参与逻辑但与停车事件无关的变量,诸如时间计时器、通道状态、开车条件、到DCS的提示变量、到辅操台的报警提示灯等尽量不加入SOE变量去。保证SOE变量都是我们分析事故,查找故障所必须的重要数据。

②优化SIS系统运行周期
SIS系统都是基于PLC(Programmable Logic Controller)硬件基础上发展而来,系统扫描周期是根据程序实际运行响应时间再加上合适的裕量制定的。SIS系统的任务是监视工艺参数,对可能的导致恶性后果的“越界”进行最终“控制”,其动作大部分是不可逆的。一旦停车条件激活,要求所保护的装置能够快速、安全、稳定的停下来,处于安全状态。因此我们要求系统有较快的响应周期,较低的系统负荷,期望达到较高的安全可靠性。

系统的扫描周期越短,在SOE记录中单个周期出现的记录数量也就越少,这样可以有效减少同一扫描周期多个停车信号的出现,方便事故的查找。按照《GB/T50770-2013石油化工安全仪表系统设计规范》要求,控制器的响应时间(输入、输出扫描加上运算时间)宜为100-300ms;控制器的负荷不超过50%。

在保证逻辑完整性、可靠性以及可读性的前提下如何降低程序运行周期,是工程组态的另一个重要任务。
a、减少输入数据的预处理工作
对于在DCS系统中常见的信号开方、线性化、噪声和阻尼处理等尽可能放在SIS系统外面。比如在现场变送器实现信号开方和阻尼处理,温度信号提前转化成标准信号等,这样尽可能减少SIS系统负荷。
b、灵活使用简单数据类型和数据结构
在工程组态时灵活使用数据类型,可以有效较少占用内存容量,减少运算时间。比如在逻辑组态时,尽可能少用算数运算,代之以逻辑运算;必须用算数运算时,多用加减,少用乘除;没有乘除、开方等运算时,优先使用整型数;仅仅用于联锁的模拟量,如果选用整型数时量程很小造成精度不够,可以适当扩大(整数倍)。
在进行数值的条件判断运算时,尽可能使用比较模块,少用或不用等值判断;
此外对各种数据类型运算处理时应区别对待,防止控制器错误溢出和出现较大偏差,比如除法运算应检查除数是否为零;开方运算检查开方数是否为负数;使用乘除、开方等运算时,必须使用浮点数,否则会造成较大运算误差。
c、谨慎使用复杂数据类型和算法
现在的SIS系统支持多种组态语言,出于知识产权保护、可读性等原因也推出了许多函数库。这些组态工具极大方便了逻辑功能的实现。但在使用时应避免逻辑的臃肿,增加控制器的负荷。比如尽可能使用系统函数库,少用构造函数;少用功能块(Function Blocks或FB),多用功能(Function或FC),因为功能块要占用单独的存储空间;减少或避免PID运算;减少循环语句的使用;严禁使用递归算法等。在逻辑保持正确、安全、可读的前提下,尽可能简化逻辑结构以达到降低控制器负荷的目的。

③SOE变量分组
设置SOE变量主要是为了帮助分析事件产生的原因,动作执行的先后顺序等。以上查询不是同时用到,比如我们查找停车原因,只需要输入变量的先后顺序;分析动作情况,只需要排列出输出变量的时间顺序。如果不事先对SOE变量分组,SOE记录可能是输入变量和输出变量以及中间变量混在一起,不利于事件的查找和分析。此外,有时一套SIS系统同时容纳多套相对独立的装置或功能区域的逻辑,也需要对SOE变量分组。需要说明的是,根据系统的不同,很多系统的SOE变量在定义时就需要分组。因此在项目组态初期,对SOE变量提前分组是必要的。
a、首先按照系统内不同功能区域分组,比如并行的几个生产系列,相对独立的几台机组的控制等。即使这些生产系列或机组控制分布在不同的SIS控制器中,SOE变量的分组也是必要的,因为这几套SIS控制器可能共用一套SOE服务器。
b、按照输入输出类型分组,中间变量不要加入;对于参与联锁的模拟量,其经过比较模块表决后的布尔量视作DI点,不视为中间变量;
c、对于有严格时序控制的项目,顺控步序号也是分析事件过程的重要参数,应单独分组。

④时钟同步(Time Synchronize)
为了保证同一装置内不同系统间历史趋势、SOE数据时间的一致性,需要在系统间做时钟同步。比如SOE记录中变量的时间是从控制器中带上来的时间标签(Time Stamp),它以控制器时钟为基准;而SOE站的时钟可能是当前工程师站PC机的时钟,二者未必一致;同样它和操作员站时钟也不一定相同。只有在一个时间基准的前提下才有条件对模拟量的趋势记录和SOE事件记录进行比较、判断。时钟同步的方法有很多种,比如GPS(Global Positioning System)授时、NTP(Network time Protocol)授时、DCS纠偏授时等,有时候是需要几种授时方法同时配合使用。

在做时钟同步时应注意以下几点:

a、时钟源的唯一。在DCS、SIS、ITCC等多个系统共存,不同系统的操作站、控制站、工程师站、SOE站等保持同一个时间基准,避免重复授时。
b、单一系统注意操作站、控制站上下层授时的一致性和单向性。
c、采用纠偏授时要注意避开整点(整天、整周等)授时,防止信号跳变造成较大误差。
d、纠偏授时在保证授时信号稳定抗干扰的同时,应正确使用延时模块,避免造成授时延误。
e、定期检查时钟信号的一致性,及时发现授时错误。由于干扰、交换机故障、电缆故障、IP地址冲突等原因,授时信号会发生中断,需要维护人员定期检查,及时重启授时服务或者人工纠正授时偏差。

⑤SOE记录的启停
对于一套SOE服务器有多套SIS控制器或者有多个相对独立的控制单元或装置,这种SOE系统每个单元(装置)的SOE记录不一定是同时的。比如多个系列的生产装置,有的系列正常生产,有的正在例行检修;有的机组(单元、装置)会有短停。这些检修或短停的装置,其系统的SOE记录应该停止,否则停车期间会因为联锁实验、阀门测试、系统调试等产生大量无效的记录,这些记录对于我们分析事故、故障没有意义,但是确占用大量存储空间。

事实
上,多数系统厂商缺省的设置都是在DCS系统上电后自动启动SOE记录。所以这部分有很大的优化空间。比如Tricon的TS3000,系统提供了多达16组SOE记录,每一组最多可以保存20000条(缓冲区,先进先出)记录。每组SOE记录都可以设置启动、停止和清除功能。这样对于有很多相对独立的装置、单元、系列或者机组的SOE站,可以合理设置SOE变量分组,分别设置适宜的SOE记录启动(停止、清除)条件,确保SOE站只记录我们需要的那部分。

对于某些SIS系统得SOE采用第三方软件的,它的SOE记录启停是在上位机实现的,要注意提前和厂家沟通,确保这些功能的实现。
此外在SOE组态时还需要注意有的系统软件缺省只记录报警时间,不记录恢复时间,这样重要变量需要手动设置。

以上几点是SOE组态中的主要问题,也是日常维护中发现经常出问题的地方。总之,SIS系统通过合理优化逻辑、减少SOE变量、降低控制器负荷、有效分组等组态策略,才能充分发挥SOE记录的作用,使其真正成为分析、判断故障的工具。
作者:中国石化齐鲁分公司运维中心 徐强