实用经验之谈:PLC系统的流量积算方法参考
目前,具有众多不同品牌的仪器仪表,用来测量工业现场液体或者固体的瞬时流量,然后通过4-20mA信号传递给PLC,作为控制或监控的数据标准。PLC根据瞬时流量积算一定时间内的累积流量,对于流程工业控制领域液体或固体流量的数据分析和产量计算应用具有重要的意义。
1、PLC系统中实现流量积算的方法
首先必须明确,用PLC做流量累计的精度远不如电磁流量计等本身自带累计功能的流量计。对有累积功能的流量计转换器,一般流量转换器的流量累积输出是脉冲输出,可通过PLC的高速脉冲输入端进行高速计数,从而得出累积流量。
对只有瞬时流量输出的流量计,才考虑在PLC中进行流量累积加法运算。在 PLC内做流量累积的时候,不应使用定时器来做,因为定时器受到PLC扫描周期的影响,没法做到十分精确,累加出来数据的误差很大。
目前,一般的中大型PLC都直接或者间接提供了“Totalizer”功能块, 实质都是把每个采集周期的瞬时流量进行简单累加。本文提供了一种将定积分计算引入到流量累积的具体方法,以供参考。
2、定积分计算法引入流量积算的几何意义
设瞬时流量q=q(t)在时间段t的[a,b]区间连续,那么流量累积计算公式为:
图1 瞬时流量
有定积分的几何意义,求时间a到时间b区间内的总流量Q,只需要计算曲线q=q(t),直线t=a,直线t=b和时间轴t所围成的曲边梯形面积。在区间a,b内插入若干个平分点:a=t0<t1<t2<…<tn-1<tn=b,把区间[a,b]分成n个小区间:[ti-1,ti],求每个区间长度Δt上的区间累积流量,只需求第i个小曲边梯形的面积。我们可以把每个小曲边梯形近似看作是小梯形,见图2:
图2 瞬时流量分割图
面积计算:
如果分割无限加细,区间个数n趋向于无穷(n→∞)时,总流量计算为:
3、TIA Portal V15具体实现积分累积流量的方法
以下以Siemens PLC系统的TIA Portal V15为例,实现积分累积流量的方法:
3.1 在程序目录下添加新的FB函数块,确定名称如“Totalizer”,为了实现数值计算的简单性,这个功能块的编程语言选择结构化文本语言SCL。
3.2 打开新建功能块,并建立临时变量,如下图所示
变量定义:
变量名:Reset,数据类型:Bool,分组:Input,作用:FB接收外部传递的累积清零命令;
变量名:Value,数据类型:Real,分组:Input,作用:FB接受外部传递的瞬时流量数据,需要注意的是:一般流量计瞬时流量单位是m3/h,这里需要统一换算成m3/s,即PLC接收的瞬时流量除以3600后再输入此处;
变量名:Cycle,数据类型:TIME,分组:Input,作用:FB接受程序循环时间,单位:秒,
在这里,Cycle值为0B30中断循环块的循环时间。
变量名:Last_Value,数据类型:Real,分组:Static,作用:静态存储上一扫描周期的瞬时流量值;
变量名:Accum,数据类型:Real,分组:Static,作用:静态存储流量累积值;
变量名:Cycle_DInt,数据类型:Dint,分组:Temp,作用:在FB中零时存储Cycle转换为Dint数据类型后的值;
变量名:Cycle_Real,数据类型:Real,分组:Temp,作用:在FB中临时存储Cycle_DInt转换为Real数据类型后的值;
变量名:Total,数据类型:Real,分组:Output,作用:FB向外部传送流量累积值。
3.3 程序编写,如下图所示:
程序编写完成后,进行编译,编译没有错误时,可供调用。
3.4 在流量计算功能的FC中调用名字为“Totalizer”的FB块,并对输入输出参数赋值,如下图所示:
3.5 在OB30中调用流量计算FC功能块,OB30中断块是循环中断块,循环时间设置为100ms,如下图所示:
3.6 程序解读
4、PLC系统中流量计算的其它问题
上述程序只是简单示例,实际应用中,需要根据实际情况考虑更复杂的问题,比如:
▶对于积分算法,取小的矩形对流量进行累计,肯定是矩形划分越细(也就是OB30的循环时间越短),误差越小,不存在误差是不可能的。
▶流量计本身有累计流量功能,同时可以把瞬时流量以模拟量的方式(例如4-20mA)输出,但无法将累计流量数值送出。那么,流量计本身累积流量的数值,最后很有可能与PLC的累计流量数值相差很大,原因可能是多方面造成的,除去系统累计流量误差的因素,如果PLC系统停电检修或者更换相关模块时,流量计还在计量,则PLC无法累积这部分流量。
▶累积数值的自动和手动清零,以免数据溢出。其中自动清零的时机要结合程序考虑好。
▶在流量累积编程时应避免数量级相差太多的浮点数之间进行运算。如果没有适时清零,流量累积程序在运行之初是正常的,因为累计流量初始值及流量瞬时值都为一个很小的浮点数,两数相加后,结果正确。但是当一段时间后,累计流量的数值逐渐增大,当它与瞬时流量的数值相差很远的时候,两者执行加法操作后,瞬时流量的数值将被忽略掉(如9999990.0与0.2做加法操作)。其实具备计算机常识的人都应当清楚这一点,这是由于浮点数的存储机制造成的,这个问题可以通过使用二级累加或多级别累加的方法来解决,比如每一级累加器只能进行规定级别大小的数据累加,当一级累加器的累积数据大到一定程度时,立刻把数据传送到二级累加器,然后把一级累加器清零。
版权提示:本文为中华工控网(工控论坛)原创,作者 陆宁,转载请与我们联系,否则必将追究法律责任。
PLC进行温度控制的基本步骤是怎样的?
(1)安装在被控温度区域的温度传感器可以实时监测温度值,并将数据发送给PLC。
(2)PLC接收传感器发送的温度输入信号,并进行处理。根据预设的逻辑和程序,PLC判断当前温度状态和条件。
(3)基于输入信号的处理结果,PLC生成相应的控制信号。这些信号可以用于控制温度调节元件,如加热器、冷却器、风扇等。
(4)PLC根据预设的程序和逻辑,控制温度调节元件的运行。例如,当温度低于设定值时,PLC可以输出控制信号启动加热器;当温度高于设定值时,PLC可以输出控制信号启动冷却器或风扇。
(5)在某些情况下,PLC可以使用PID控制算法来实现更精确的温度控制。PID控制通过不断调整控制信号的大小,使得被控温度尽可能接近设定值。PID控制算法根据当前温度偏差、变化率和积分误差来计算控制信号。
(6)PLC可以监测温度状态,并在发生异常情况时触发报警信号。例如,当温度超过设定范围、传感器故障或控制元件故障等情况发生时,PLC可以发送报警信号并采取相应的措施,如停止加热或冷却操作。
(7)PLC可以记录温度数据,如实时温度值、设定温度、控制信号等参数。这些数据可以用于生产统计、质量分析和设备维护。此外,PLC还可以与其他系统进行通信,如远程监控系统或工厂自动化系统,实现对温度控制的远程监控和调整。
如果您需要支持codesys编程的PLC,可以私信评论找我。
晚上我们“广成工控”直播间也会聊相关内容,欢迎观看。
相关问答
plc编程过程控制算法?
在PLC编程中,过程控制算法是用来实现对工业过程的控制和调节的一种方法。下面是一般的PLC编程过程控制算法的步骤:确定控制目标:首先需要明确要控制的过程和...
plc如何根据速度控制模拟量?
PLC根据速度控制模拟量主要通过以下步骤进行:1.确定控制对象:确定需要控制的设备或机器,例如电机。2.确定控制参数:根据实际需求,确定控制速度的参数,例...
plc怎么控制伺服扭力?
PLC可以通过PWM或者PID控制伺服扭力。其中PWM,即脉宽调制技术,是通过控制脉冲宽度来调节电机的电源电压,从而控制电机的转速或扭矩。而PID控制则是利用比例、...
plc如何控制比例调节阀门?
电动调节阀门才用PLC进行比例调节,是输入信号,与给定信号的比较后,对偏差调节的一种算法。比例值的设定不可能一次性调整到位。对控制点曲线进行记录。比例设...
1500plc温度pid参数一般设多少?
1:++根据您的问题,《1500plc温度pid参数一般设多少》PID参数的设定需根据具体情况进行调整,因此没有固定的标准数值。1.PID调节是一种自动控制方法,用于维持...
西门子plc程序控制指令?
关于这个问题,以下是一些常见的西门子PLC程序控制指令:1.LD:加载指令,将一个变量或者寄存器的值加载到一个寄存器中。2.AND:逻辑与指令,将两个逻辑值进...
想学习怎么自己制作电路板100分-小红薯85942C59的回答-懂得
谬论一:高中老师常对我们说,大家现在好好学,考上了大学就轻松了,爱怎么玩怎么玩。这真是狗屁。别的专业我不好说,电气、电子、电力、通信、自动化等...
谁知道PLC200和300PID模块PID参数的范...-盖德问答-化工人...
没人知道吗?西门子的plc?在模块上按f1可以查看帮助
模拟量的原理?
模拟量在plc系统中有着非常广泛的应用,特别是在过程控制系统中。模拟量是一种连续变化的量,因此,它的使用对象也是各种连续变化的量,比如温度,压力,湿度,...
plc程序如何防止模拟量跳变?
模拟量跳变是非常复杂,引起跳变的原因也是非常多。①有规律的跳变。比如测量罐内液位,静压波动是很长见的事。这时采用延时器或在PLC内对此路进行软件延时。...