1 引言
中国石化股份有限公司广州分公司6号罐区监控系统于2001年由常规仪表改造为PLC系统。其中工艺要求在监控系统中对瞬时流量FI101进行累积显示。经过对该流量累积的运算方法的多次测试,找到了在运算中最大限度减少误差的方法,并在逻辑梯形图成功实现累积运算。
2 监控系统简介
广州石化6#罐区监控系统采用ROCKWELL公司的可编程控制器和人机界面软件,用于实现对该液态烃罐区的24个球罐的各种工艺参数的实时监控、报警、联锁等功能。该系统从2000年10月开始设计,2001年4月系统安装、组态、调试工作全面完工。
该系统人机界面采用Rockwell software公司开发的RSView32软件。RSView32基于 Microsoft Windows NT和Windows 95/98平台设计,是一种易用的、可集成的,基于组件的人机对话系统,在编制人机交互界面方面具有极大的灵活性和极强的功能。
控制器采用ControlNet PLC-5/40C处理器热备系统。ControlNet PLC-5/40C处理器是PLC5系列中的新技术产品,处理器及I/O系统可以通过Redundant ControlNet总线交换数据。6#罐区监控系统将1号PLC和2号PLC配置为冗余控制器。在正常状态下,只有主处理器的输出数据对I/O系统进行控制,主从处理器通过ControlNet交换数据及状态保持同步,如果主处理器出错,从处理器将接替主处理器对网络及对I/O系统进行控制。
该PLC系统DI点采用1771-IBD开关量输入模块,DO点采用1771-OW16开关量输出模块,AI点采用1771-IFE模拟量输入模块,16点单边输入。采用1785-CHBM作为处理器热备模块,1771-ACNR15为带冗余网口的ControlNet适配器模块。
本系统有3台上位机,其中2台为操作站,1台为工程师站。每一台上位机都能通过ControlNet单独对PLC进行数据采集和控制。上位机还通过以太网实现文件和其他数据的共享。
ControlNet的组态使用软件RSNetWorx,PLC系统组态及控制逻辑组态使用软件RSLogix5。在ControlNet 网络中,可以组态预定的数据传送操作。这样要实现在处理器和外部设备之间的数据交换,如在1771-IFE卡和处理器之间,主备处理器之间的数据交换,并不需要在逻辑梯形图中使用块传送指令。
图1 6#罐区监控系统结构图概貌
3 FIQ101的累积实
3.1 流量FIQ101概述
广州石化6#罐区需要对进出罐的液化气流量FI101进行计量。就地仪表采用Micro Motion质量流量计。该流量计准确度±0.12%,除了可以就地显示外,同时可以将瞬时流量值输出为4-20mA信号。该信号接入PLC系统的1771-IFE模拟量输入模块,经过12bit 的模数转换后转换为0-4095的值。在1771-IFE中,还可以将0-4095的值定标为-9999到+9999的工程单位值。工艺要求在操作室除了可以监视瞬时流量值外,还要求有准确的流量累积值显示。我们在PLC中用梯形逻辑来实现流量累积的运算。
3.2 流量累积的原理
如何把瞬时流量(又称流率)经过累加运算为总流量,一般有如下一个公式:
瞬时流量×时间=总流量
我们知道,假设一个流量值为5m3/s在1min内不变化,则在这1min内的的总流量为:
(5m3/s) * 60s = 300m3
现在假设流量变化如下:
4m3/s有 30 s
5m3/s有 10 s
6m3/s有 20 s
则在这1min内的的总流量为:
(4m3/s)*30s+(5m3/s)*10 s+(6m3/s)*20s=290m3
假设流量随时都可能变化,那么就不能用上面的公式来计算总流量了。我们可以按一定的时间间隔采样流量值,然后计算这些值的总和。流量的采样时间越短,计算的结果就越准确。请看图2和图3。
在上面2个例子中,曲线下面的区域就是总流量。采样间隔时间越短,计算误差就越小。
在实际应用中,由于PLC计时器的限制,最短的时间间隔只有0.01s。然而采样间隔时间越短,计算次数就越多,这样就增加了PLC的程序扫描时间。
图3 短的采样间隔时间
3.3 在PLC 5/40C中流量累积运算的方法
我们用梯形逻辑来实现流量累积的运算时可以采用“可选定时中断子程序”来处理,这样采样间隔时间就是固定的了。但是在PLC 5/40C中只有一个可选定时中断子程序,其定时中断时间一般较难同时满足几种逻辑功能的需要。
我们也可以计时器指令来来作为采样间隔时间,每次计时器到了设定值就采样一次。计时器的精度不可能高于它的时基,因此每次计时器超时和再次开始计时的时候,都要产生一个时基的正或负的误差。例如,10ms为一个时基的计时器预定计10次,其时间计算将是100ms正或负10ms。
我们也可以采用一种技巧来减少因计时器精度带来的误差。我们采用长的时间计时来作。例如,10ms为一个时基的计时器预定计30000次(PLC 5/40C的计时器的预置值范围为0-32767),其时间计算将是300s正或负10ms。在这其中,我们可以预定一个采样间隔时间为10个时基(100ms)以上。每次程序扫描,处理器判断如果自从上次累积运算起,时间间隔超过预定时间(例如:100ms),就将这段时间乘以当前的瞬时流量值作为累加量。在这种算法中,采样间隔时间就不是固定的了。
另外要考虑的是运算所用到的数据格式。PLC 5/40C数据表按不同的格式和范围来存储不同类型的数据。有两种文件格式可以选择,一是N文件(整数型文件),值的范围为-32768到+32767,占1个16位字;因为在累积运算过程中,数的乘积和多次累加值一般都会超出+32767,所以我们尽量不用N文件。
另外是F文件(浮点数文件),值的范围为±1.175494e-38到 3.402823e+38,占1个32位字。浮点数在寄存器中32位的空间表示为:
S xxxxxxxx mmmmm
上面: s=符号 x=指数 m=尾数
可见用浮点数表示的值的十进制有效位数只有7位。因此,必须考虑有效位数问题。举例如下:
假设A代表计算的总流量,F代表计算上一次累加的流量,把F加到A上就会计算出一个新的总流量。在控制器的存储器中,A和F使用浮点数文件格式,有效数字是7位。一旦A比F大很多时,那么A和F的加数将会产生误差。
请看计算过程:
A=3.632523E+9
F=4.978E+3
3,632,523,000
+ 4,978
3,632,527,978
因为这个结果只能保留7个有效位,所以舍去最后几位数,写成3.632527E+9或3,632,527,000,数值978被丢失。为了避免出现这个问题,我们可以想办法使A和F在整个运算过程中不出现小数,数值不超过7个有效位。
4 结束语
流量累积的运算,要尽量避免计算过程中的误差,一是要选择正确的文件存储格式,二是要避免运算值超出数值范围和有效位数范围,三是尽可能减少采样时间的定时器带来的误差。在上面PLC5/40C的梯形逻辑中,我们按照以上几个原则,经过细致的考虑和计算,使用长预置值的参考定时器,并使所有被用到的浮点数文件的值的有效位数不超出范围,不出现小数,避免了丢失小的数值,从而实现高精度的累积运算,满足了工艺要求。
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容,以保证您的权益!联系电话:010-58612588 或 Email:editor@mmsonline.com.cn。
- 暂无反馈