在加工制造业和运输业的生产与经营过程中,储运是一个不可缺少的重要环节,特别是液态介质(如原油、成品油、轻烃等)的存储、计量、核算和管理尤为重要。围绕着储罐乃至整个罐区的监控与管理,是储运作业中最基本的工作内容。提高储运自动化及其管理水平,对企业减少损耗、降低成本、增加效益具有明显的作用。
下面以大庆林源炼油厂罐区自动化监控管理系统为例,介绍一下力控®在储运自动化监控管理系统中的实现方法。
一、罐区概况与监控要求
罐区概况
林源炼油厂罐区分为西、北罐两个罐区。西罐区有38个罐,北罐区有18个罐。原监控系统采用的是盘装二次仪表,基本分布情况是:在西罐区有光导液位计13块,钢带液位计24块,电磁阀104点,电磁阀回讯104点,报警32点;在北罐区有光导液位计4块,钢带液位计12块,电磁阀144点,电磁阀回讯144点,报警16点。
监控要求
1.信号采集:标准信号的采集;对钢带液位计非标准信号数据的采集,并通过软件加以处理和运算,达到原仪表的技术要求;对具备智能通讯接口的光导液位计数据的采集和转换处理。
2.监控操作:操作控制;参数设定;阀门自动开启与关闭;油品自动调合,自动比值调节。
3.动态显示:动态立体流程图显示,能够区分不同油品介质的流向;以图形方式区分动罐与静罐;报警显示;趋势显示。
4.操作画面:罐容量表的查询与管理;打印实时报表和历史报表,并可任意设定打印时历史报表的时刻;
5.系统具备可扩展性。
二、系统方案
根据罐区的实际情况和监控要求,我们设计了(图1)所示的控制系统。
1.控制站
要实现计算机控制和管理,仪表应具备标准输出信号或智能通讯功能。光导液位计和钢带液位计具有智能通讯接口,阀门的状态检测和控制使用标准的干接点信号,采用plc实现。
开关量控制
对于现场电磁阀控制、电磁阀回讯及报警信号检测采用c200h系列的plc完成,力控®i/o驱动程序负责完成plc数据的读/写。
标准4~20ma信号
油品车间各种压力、流量的标准4~20ma信号通过plc模拟量卡件的转换,再经过plc的通讯接口传送到操作站的监控软件中。
智能通讯传送
钢带液位计采用大连仪表五厂的产品,由于从一次仪表输出的信号是一组串行bcd码,计算机操作站不能直接接收该bcd码,必须使用三维公司研制的智能转换器sbb-100,将现场一次表传送的串行bcd转换成数字信号,通过rs-485将数据传送到操作站上。 光导液位计和温度巡检仪采用rs-485直接与操作站上的力控®软件通讯。数据的转换处理、流量累计由力控®软件处理。
2.操作站
本系统设立两个操作站,主机采用工业控制机,操作系统采用windows98,监控组态软件采用,操作站内增加rs485通讯接口卡连接plc、sbb及智能仪表。
三、软件设计说明
根据工艺提出的生产要求,力控®软件操作画面的设计采用主菜单的形式,在每幅画面下分别有按纽进行切换,画面包括主菜单画面、动态流程画面、操作画面、报表画面、罐容量表、报警等。
1.动态流程显示
根据各阀门的开闭状态可以确定管道的流动状态和流向,用不同的颜色来表示,如图2所示。
由于许多管道为各种介质的公用管道,当满足不同条件时,管道显示不同颜色。例如下面4个db变量代表两个阀的开闭状态:
hi303c_6----hc303c汽缸阀关
hi303c_4----hc303c汽缸阀开
hi304c_6----hc304c汽缸阀关
hi304c_4----hc304c汽缸阀开
当这两个阀中有一个关闭时,连接这2个阀的管道就变成不流动状态,它的变色条件是:
((hi303c_6^hi303c_4)&hi303c_6)|((hi304c_6^hi304c_4)&hi304c_6)
这个条件表达式由2部分的“或”运算组成,其中每一部分表示一个阀的“关”条件,在这个“关”条件中使用了一个异或运算(^),是对阀状态合法性的检查,因为这种阀的回讯由2个取值相反的开关量组成,如果这2个开关量的输入状态相同,则表明这个阀处于非法状态(见图3)。
1.报警的处理
除了在报警画面和实时数据库中组态过程变量的报警限值和报警图形对象外,本应用还特别使用了力控®的语音报警功能。根据不同的罐号录制了不同的声音文件,通过力控®软件的脚本函数在一定的条件下进行播放。播放声音的函数为playsound(aviname,flag)。
说明:播放一段由文件名aviname指定的声音文件
aviname:avi文件名。
flag:播放方式取值为0或1。0:代表异步;1:代表同步。
例如:if (li101.alm) then playsound(avi01,0);
endif;
表示当变量li101处于报警状态时则以异步方式播放avi文件avi01。
2.报表的处理
报表是利用力控®软件的历史报表工具来进行定制的。内部的核算是通过脚本函数实现的。
3.容量表的处理
由于油罐的计量是通过罐的液位查找罐表来求得罐内油品的体积,一般的罐表都是每隔1毫米对应一个体积值,一个20米高的油罐要有2万条数据。由工艺人员在力控®的标准罐表画面中录入。当组态软件从i/o设备得到罐的液位值后,将它换算成以毫米为单位的液位高度,然后就直接从容积表中取出与液位值对应的体积,如果液位的毫米高度值不是整数,则可以首先取出整数液位值对应的体积,再加上小数部分的插值计算结果。
录入罐表时是通过写文件函数filewrite(filename, varname,offset ,num)实现的,功能是向指定的文件中的offset位置写数据。其中,filename是文件名,varname是要写入的起始变量,按照变量的内部存储顺序依次写入多个变量,变量数目由num确定。
例如:filewrite(dat01,var01, 0,10),从var01开始依次向文件dat01的开头写入10个数据,这10个数据依次是dat01、dat02、dat03、dat04、dat05……dat10。
通过读文件函数fileread(filename,varname,offset,num)将液位对应的体积值从罐表文件中读出。其中filename是文件名;offset指定从文件的哪个位置读数据,在这里就是罐的液位值(以毫米为单位);num是要读取的数据个数,一般为1;varname指定将读取的数值赋给哪个变量,这里就是体积变量。
例如:fileread(dat01,vi101,li101,1),从文件dat01中读取1个数据,读取数据在文件中的位置由变量li101的值决定,结果送给体积变量vi101。
4.流量累积
流量累积既可以用脚本程序实现,也可以在实时数据库中用累积点来实现,实时数据库的累积点在进行流量累积时精度会更高一些,这里给出用脚本程序实现累积的程序清单:
进入应用程序时执行的动作:
mesc0=$msec;($msec是计算机的毫秒时钟)
应用程序运行期间周期运行的动作:
说明:fi101l为累积量,fi101为瞬时量。
if fi101>0&&$msec>mesc0 then
fi101l=fi101l+fi101/3600000*($msec-mesc0);
mesc0=$msec;
endif
5.油品调合控制程序
调合是对汽油和mtbe的流量进行比值调节,基本单回路pid控制利用plc的pid指令进行,而无扰动的切换利用力控®软件进行跟踪,plc进行相关的逻辑处理。
通过质量流量计采集汽油与mtbe的流量信号,两者的比值作为pid控制模块的设定值,mtbe的流量作为pid控制模块的测量值。
输出根据配比的不同来调节mtbe的流量,以达到调合汽油的目的,根据汽油的累积量的多少来自动控制输油泵的启停,并且具备自动/手动两种切换方式。
四、系统调试及运行情况
应用脚本程序编制时,一定要考虑通讯的速度,不停地循环向控制器(plc)下置数据会影响采集速度,因此,向plc发送控制命令的程序动作应尽量放在数据改变脚本中执行。
系统参数的配置根据不同的设备可反复调整使之达到最佳工作状态,因为不同的设备对采集速率有不同的要求。
重要的控制功能放到稳定可靠的plc去完成,操作站出现故障时不会影响控制,做到危险分散,集中控制。
制作hmi画面时,一定要符合用户的操作需求和习惯。
2年的实际应用结果表明,系统运行稳定,操作简洁方便,有效地降低了工人的劳动强度,减少了盘装仪表的维护量,达到了预期的控制效果。为装置的安全、稳定和长周期运行发挥了极大的作用。