PLC在流量显示和累积计量上的应用
- 格式:docx
- 大小:56.96 KB
- 文档页数:3
PLC计算流量累计不准?本文解释得很清楚!实例讲解程序!以前我们讲过西门子S7-200在流量累计中的应用,今天我们来学习一下S7-300系列的应用。
打开今日头条,查看更多图片理论来说,博途系列PLC的编程思路与S7-300一致,只是软件有一些区别而已。
那么PLC计算累计流量有多种方法。
常用的有使用中断计算和脉冲数计算。
今天我们来学习一下利用中断计算。
项目实例,A厂有一燃气流量机,需要使用该表计算其燃气用量。
思路大概如下;因PLC可以接收到其时时流量,因此可以使用100ms的中断去累加该流量,当然1s的中断也可以,不过扫描周期越短,数值越精确。
例如;一块流量计的瞬时流量是10m3/h,那么将该流量值除以36000,那就是100ms的流量,每100ms将该值累加,得到的数值就是累计量,理论来说,中断时间越短,数值越精确。
但考虑PLC负担也增加,因此建议使用100ms-1s的中断。
然后我们进行实例解说。
一流量计信号接线,流量计一般使用模拟量输入的方式连接,如果是电流信号则分为两线制和四线制,二线制信号是指;信号的两根线既是电源线又同时是信号线。
二线制的优点是接线简单,只适用一般功率小的一次传感器,如:压变、差压变、温变、电容式液位计、射频导纳、电磁流量计、涡街流量计等。
传感器本身用电由二线制中得到,是必影响其带载能力。
四线制信号是指;电源两根线,信号两根线。
电源和信号是分开工作的。
四线制的优点是由于是将电源和功率分开,所以本机的功率与信号是没有功率上的关联的,适用于大功率的的传感器,如超声波(由于其为了加大抗干扰能力,所以发射的功率会很大,所以此款产品选型时要尽量四线的,二线的一般抗干扰能力较弱),就不能作成2线的,只能是4线,分别是工作电源2个,输出2个。
按照流量计要求将模拟量信号接入到PLC系统。
二编程;打开程序该程序包含OB1,OB35,FB1,FC105,DB1。
其中OB1是PLC程序必备,对于本实例不需要,空程序即可。
89中国仪器仪表 CHINA INSTRUMENTATION2009年 第10期2 采用PLC进行流量累积需要注意的问题流量计输出的信号一般是脉冲信号或4~20mA 电流信号,这两种信号输出的都是瞬时流量,我们的目的是在PLC 中计算和显示瞬时流量值和计算累积量值,当输入信号是脉冲信号时,计算瞬时流量,必须按照一个严格的时间间隔计算才能保证瞬时流量的准确性,因此,计算瞬时流量必须用定时中断来进行,而且,在PLC 系统中只能运行这一个中断程序,不允许再产生其它中断(即使是低优先级的中断也不允许运行),以防止干扰定时中断的时间间隔的准确性。
计算瞬时流量就是将这个时间段的累计脉冲个数换算成累计流量,再除以时间,对于4~20mA 输入只需按照其对应的量程进行换算就可以直接得到瞬时流量。
将每个时间段内的累积流量累加起来就是累积流量。
在实际使用PLC 编程的过程中必须注意以下几个问题。
2.1 输入脉冲频率范围是否超出PLC 接收的范围在设计软件之前,首先要知道所接收的信号频率范围是否超出了PLC 高速计数器的频率范围,因为当输入的频率超出PLC 的最高频率接收上限的时候,会导致频率信号丢失,从而产生很大的误差。
一般查看流量仪表的用户手册就可以了解到其频率输出的范围,多数情况下流量仪表的频率输出范围是可设置的,只需将频率范围设置成对应的流量范围即可,在设置其频率输出时要注意:(1)流量上限设置成刚好大于该仪表所测量的最大流量,一般取整数;(2)频率输出上限设置成PLC 能接收的最大频率或其2/3处,频率输出上限不要设置得太小,会导致PLC 计算误差变大。
2.2 PLC 高速计数器在达到最大计数值时如何保证计PLC在流量显示和累积计量上的应用PLC Application in the Flow Measurement and Totalling1 引言在工程实践中经常遇到对流体流量进行远程显示、累积的情况,而工程实际中大量使用的是PLC ,因此,如何使用PLC 将流量计输出的脉冲信号或模拟量(4~20mA )信号进行处理,从而准确计算瞬时流量和累积量就成为编程工作的重点和难点,作者以多年从事自动控制工程的经验介绍这部分工作的原则和方法,包括在西门子S7-200CPU 上编程的例子。
PLC在流量控制系统中的应用案例流量控制系统是自动化控制中的一个重要应用领域,可以应用于水处理、工业生产、环保等诸多领域。
PLC(可编程逻辑控制器)因其在工业自动化中的功能,特别是对数字和模拟输入/输出操作的能力,成为了流量控制系统中最重要的控制器之一。
本文将探讨PLC在流量控制系统中的应用案例。
一、PLC控制阀门的开闭PLC通过控制流量阀门的开闭,实现流量控制系统中流量的准确控制。
PLC控制阀门的开闭,需要对阀门位置进行反馈控制,即需要在PLC中安装反馈传感器,以检测阀门的位置。
在阀门的开关过程中,PLC可以根据预先设定的开启/关闭时间、阀门的旋转角度等参数实现对阀门的准确控制,从而实现流量控制。
二、PLC实现PID控制PID控制是一种用于工业自动控制中的一种自适应控制方法,其基本原理是按比例调节、积分时间和微调时间来调节控制器的输出,实现对被控制物(例如流量阀门或流量传感器)的精确控制。
传统的PID控制需要使用独立的PID控制器,为了实现在线程序修改,需要对现场的设备进行频繁的调整。
而PLC可以集成PID算法并在线实时调整参数,使控制系统更加智能化,大大简化了控制系统的维护。
三、PLC控制流量传感器流量传感器是流量控制系统中最重要的感应装置之一,可以实现对流量的实时监测。
PLC可以通过传感器检测实时流量信号并将其反馈给PLC,PLC再根据预设的控制程序进行反馈,从而实现精确控制。
同时,PLC还可以使用数据采集卡将流量传感器的信号转换为数字信号,以便于对数据进行存储、处理和分析。
四、PLC实现流量的计算PLC可以通过编写测量算法,将传感器的数字信号转换为流量值,并将其储存在控制器内存中。
此外,PLC还可以将流量数据转输到上位机等设备中,以便于进行数据存储、处理和报告分析。
PLC在流量控制系统中的应用模式基本类似,但实际应用却因环境和行业不同,而存在着各自的应用要求。
在任何情况下,PLC的优势在于其灵活可塑性,可根据不同环境的要求进行定制。
西门子PLC中如何解决流量累积问题问题1:自行编写流量累计程序自行编写流量累计程序的原理,其实就是积分的最原始算法概念,把单位小间隔时间内的瞬时流量乘以单位间隔时间,得到单位小间隔时间内的流量,再把这些小流量累加起来,就的到了累计流量。
在流量累计编程中经常会遇到实数加法问题,实数加法运算的注意事项也应当引起编程人员的重视,请看下例程序(假设其在OB35中被调用,目的为每隔一定时间间隔就累计一次流量)L MD0 //累计流量存储值L MD4 //流量瞬时值+R T MD 0以上的程序是否存在问题?很多人会认为没有问题,但实际情况是此程序在运行一段时间后就将出现错误。
此程序在运行之初是正常的,因为累计流量初始值及流量瞬时值都为一个很小的浮点数,两数相加后,结果正确。
但是当一段时间后,累计流量的数值逐渐增大,当它与瞬时流量的数值相差很远的时候,两者执行加法操作后,瞬时流量的数值将被忽略掉(如9999990.0与0.2做加法操作)。
其实具备计算机常识的人都应当清楚这一点,这是由于浮点数的存储机制造成的,是所有计算机方面编程都需要考虑的问题。
这个问题可以通过使用二次累加或多次累加的方法来解决。
所以在编程时应避免数量级相差太多的浮点数之间进行运算。
很多人反映“加法指令不好用了”,很有可能就是数量级相差很多的实数进行了加法运算。
问题2:累计流量误差问题对于积分算法,取小的矩形对流量进行累计,肯定是矩形划分越细,误差越小,不存在误差是不可能的。
问题3:流量计与PLC构成的系统的误差流量计有多种多样,下面举些例子:1、流量计本身没有累计流量功能,但可以把瞬时流量以模拟量的方式(4-20mA)输出。
此时累计流量的最大误差可以估算为:流量计本身误差* 流量计D/A误差* 模拟量模块A/D误差* PLC流量累计算法误差假设上面所有误差都是1%,则最后的误差约为:4.06%1.01*1.01*1.01*1.01=1.0406对于某些流量计,本身的瞬时流量误差可能就是3%,所以这样的系统累计流量的误差可能还要大些。
基于西门子PLC300流量累计的程序【在工业中往往会遇到业主要求做流量累积程序,比如要求检测到每月天然气用量,石油采集量,生产材料的多少,针对这些情况,PLC300往往做得多不是很精准,下面我介绍一个精度相对比较高的程序】由于有些地方采用T型图很难实现STL方便复制,本例采用STL 来编写更加方便本例采用OB35中断程序来实现,OB35中断时间为100ms,这个CALL "FLOWCOUNT"Reset :=M11.0instantF :=MD120Cycle :=1.000000e+002LimitF :=0.000000e+000INTF :=MD124DECF :=MD128Error :=MD132BEFORE :=MD136FC200 【FLOWCOUNT】功能块针对流量累积计算的算法原理是:积分量:就是当前中断程序执行的周期时间内的流量总和当前积分量= 积分量+ 以前的计算误差当前累积量= 当前积分量+ 原累积量>=DO #ResetJCN A7d0L L#0T #INTFL 0.000000e+000T #DECFT #Error // 如果累积量大于清零值或者清零键复位,则所以的清零重新累积A7d0: L #instantFL #BEFORE+RL 2.000000e+000/RT #Average //当前周期与上周期采样的值平均L #AverageL #LimitF>=RJCN A7d1L #LimitFT #FlowmeterValueSmallAltL #AverageL #Cycle*RL 3.600000e+006/RL #Error+RT #IntegralL #IntegralL #FlowmeterValueSmallAlt+RT #DECFL #FlowmeterValueSmallAltL #DECF-RL #Integral+RT #ErrorA7d1: L #DECFL 1.000000e+000>=RJCN A7d2L #DECFRNDL #INTF+DT #INTFL #DECFRNDDTR //将ACCU 1与ACCU 2互换L #DECFTAK-RT #DECFA7d2: L #instantFT #BEFORECLR //计算的误差A L 12.1SA VEBE一些指令说明:1.TAK 将ACCU 1与ACCU 2互换目录ACCU 1ACCU 2执行TAK指令之前<MW12><MW10>执行TAK指令之后<MW10><MW12>2.DTR 将长整型(32位)转换为浮点数(32位IEEE 754)例子:STL解释L MD10//将32位整数载入ACCU 1。
PLC在流体计量控制系统中的应用天津天铁冶金集团有限公司计电厂刘丁【摘要】本文叙述了PLC在流体计量控制系统中的应用过程。
通过PLC系统实现了现场总线控制多项流体仪表传输的计量数据信号。
并对应用中出现的问题进行了分析探讨和改进,改进后加快了传输速度,降低了故障出现率。
提高了流体计量控制系统稳定性能,保障了计量系统的正常高效运行。
关键词:流体计量数据Application of PLC in the Fluid Metering Control SystemLIU DingComputer Control and Communication Plant, Tianjin Tiantie Group Co., Ltd. Abstract:This paper describes the application process of PLC in the fluid metering control system. Through the PLC control system, achieving the field bus control system controlled the measurement data signal transmitted by multiple fluid meter. And the problems arising from the application are analyzed and discussed and improved, speed up the transmission speed after improved, reduced the rate of failure occurs. Improved the stability performance of fluid metering control system, ensured the normal and efficient operation of the metering system.Keywords: fluid, metering, data1前言天铁集团目前有300余套流体仪表,分布在各个工序中,原运用通讯模块采集传输数据,已经不能满足现在生产的需要。
在PLC中实现高精度流量累积运算的方法时间:2009-6-12 15:38:501 引言中国石化股份有限公司广州分公司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台为工程师站。
基于PLC的流量累积精确问题研究作者:杨秋贤李佳莹吴大强来源:《电子技术与软件工程》2017年第19期摘要流量累积作为工业数据一个重要参数数据,对统计工业一些原料用量具有重要意义。
所以如何保证流量累积数据的精确性是一个重要的工作。
本文主要探讨如何编写精确的流量累积算法。
【关键词】流量累积精确度 PLC流量的检测环节是流量累积的基础,其精确度取决于检测的方法。
而累积流量的精确度除了需要准确的瞬时流量值支撑,也在很大程度上受后续的计算方式影响。
在由PLC控制的流量累积系统中,编写的程序便会影响最终累积流量的精确度。
1 流量累积常用方法简介在PLC中,定义一个单精度32位REAL类型的浮点数变量FQ作为流量累积变量,并在指定周期时间累积。
积分过程中可以近似认为在周期时间内瞬时流量是线性的,故周期时间越短精度越高。
根据经验,周期为100MS即可获得较为精确的累积值。
定义F1为周期首处瞬时流量,F2为周期尾处瞬时流量,F1和F2均为浮点数变量。
每次周期更新时的瞬时流量分别f1,f2,f3……则初始周期内的累积流量FQ=(F1+F2)/2=(f1+f2)/2;在下个周期将f2赋值给F1,新获取的瞬时流量f3赋值给F2,累积流量FQ在原有基础上增加(F1+F2)/2即(f2+f3)/2,使FQ=(f1+f2)/2+(f2+f3)/2;如此循环来计算流量的累积值。
2 常用方法例程以西门子S7-300 CPU为例,配置一个S7-300站,添加一个模拟量输入模块,采用OB35循环中断,设置周期为100MS,确保累积值的精确度。
累积器在累积到最大数值或手动条件下复位。
现场流量经变送器转换为4~20mA信号,传入PLC的模拟量输入模块。
经PLC的FC105计算,将瞬时流量换算成m3/s后进行每秒累加,并将瞬时流量与累积流量传由计算机显示。
3 实际流量累积出现的问题按照上述方法,将流量累积值放入单精度浮点数存储来进行流量累积,理论是正确的。
PLC在流量显示和累积计量上的应用
目前,PLC(可编程逻辑控制器)已经广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、环保及文化娱乐等各个行业,它具有高可靠性、抗干扰能力强、功能强大、灵活,易学易用、体积小,重量轻,价格便宜的特点,在流量计量方面也有着广泛的用途,在用于流量累积时又有其编程的独特之处,下面进行详细的分析和论述,包括在西门子S7-200CPU上编程的例子。
流量计输出的信号一般是脉冲信号或4-20mA电流信号,这两种信号输出的都是瞬时流量(也有用继电器输出累积量信号,原理一样,不再赘述),我们的目的是在PLC中计算和显示瞬时流量值和计算累积量值,当输入信号是脉冲信号是,在计算瞬时流量的时候,必须按照一个严格的时间间隔计算才能保证瞬时流量的准确性,因此,计算瞬时流量的时候必须用定时中断来进行,而且,在PLC系统中只能运行这一个中断程序,不允许再产生其它中断(即使是低优先级的中断也不允许运行),以防止干扰定时中断的时间间隔的准确性,计算瞬时流量就是将这个时间段的累计脉冲个数换算成累计流量,再除以时间就是瞬时流量,对于4-20mA输入只需按照其对应的量程进行换算就可以直接得到瞬时流量,而累积流量就是将每个时间段内的累积流量累加起来就是累积流量,在实际使用PLC编程的过程中必须注意以下几个问题:
1. 输入脉冲频率范围是否超出PLC接收的范围;
2. PLC高速计数器在达到最大计数值时如何保证计算正确;
3. 如何保证定时中断不受干扰;
4. 如何避免计算累积量的误差;
5. 累积量的最大累积位数;
6. 如何复位累积量;
下面就最关键的2,4,6问题进行详细的叙述,以西门子S7-200 CPU224为例,S7-200的CPU224具有6个单相最大30kHz的高速计数器,但PLC内部没有提供相应的算法来计算频率,因此,需要自己编程计算,这就需要在PLC高速计数器在达到最大计数值时要保证计算的正确性,实际编程时,对高速计数器初始化以后就使之连续计数,不再对其进行任何干预,其高速计数器的初始化程序如下:
注意:此段程序应该放到PLC第一个扫描周期执行的程序中执行。
对于高速计数器是否达到最大计数值时需要判断,S7-200CPU的高速计数器是可以周而复始的进行累计的,最高位为符号位,最小值为7FFFFFFF,由于计数器是一直累加的,不可能出现本次读取的的计数值小于上次的计数值,因此判断计数器当前值是否小于前一次的计数值,就可以判断计数是否达到最大值的拐点(7FFFFFFF),如果达到,则执行特殊的计算以便消除计算错误,如下列程序所示,当当前计数值大于等于上次计数值时,两个计数值做差,就得到程序两次扫描时间间隔内的计数差值,同时将当前计数值赋值到上次计数值上;当当前计数值小于上次计数值时,计算上次计数值与7FFFFFFF之间的差值(用减法),以及当前计数值和7FFFFFFF之间的差值(用加法),然后将两个结果相加就是程序两次扫描时间间隔内的计数差值,从而实现对对累计计数值达到拐点时的正确计算。
注:此程序应放在定时中断子程序中执行。
实际上,在现场应用中定时中断子程序是采用250ms中断一次执行的,使用SMB34进行控制的,需要注意的是,系统中必须只保证这个中断是唯一存在的,不会受到其他中断的影响,否则可能会由于其他中断的影响使周期性中断不准时,从而影响精度。
通过以上计算就得到了250ms内流量计发过来的脉冲个数,这个数值乘以脉冲当量就是250ms内的流量值,再除以时间就是瞬时流量,另外,在250ms内再执行累加程序就可以计算累积流量了,在计算累积流量过程中需要避免累积过程的的计算误差,我们知道,流量累积量是一直累积的一个数值,一般会累积到8位数,而PLC内部的浮点数的有效位数是6位,当累积量数值很大的时候就会造成一个大数和一个小数相加,势必导致小数的有效位数丢失,造成很大的累积误差,因此,要避免大数和小数相加的情况出现,解决方法是采用多个流量累积器,只允许同数量级的数值相加,从而避免数值有效位数损失,实际编程中采用了5个累积器,根据常用流量情况下,在周期中断时间间隔(250ms)内流过的流量乘以15作为第一个累积器的上限,当达到这个累积器的上限值后,将这个累积器的值累加到第2个累积器中,并把第一个累积器清零,对于第三个累积器也同样处理,第4个累积器用于保存累积量小数部分数值,第5个累积器用于保存累积量整数部分数值,这样在显示总累积量时只需显示整数部分和小树部分就可以了,整个过程充分避免了累积过程中大数与小数相加的情况出现,在实际工程中,需根据流量的大小、周期中断的时间间隔来确定所用累积器的个数,而累积器的整数部分用双整数来表示,双整数的范围是
-2,147,483,648到+2,147,483,647,因此,可以使累积器的整数位数达到9位,这样,在显示累积量时就可以最多显示9位整数的累积量和6位的小数累积量。
总计15位,从而省略累积器倍乘系数,使读数更简便。
对累积器需要在一定条件下复位,累积到最大数值或手动复位,在中断程序中判断累积量是否达到超过最大位数,当超过最大数值时,将各个累积器清零,另外清零的触发信号也可以是手动触发。