直播课堂
HOME
直播课堂
正文内容
plc累积 流量编程 实例讲解西门子PLC如何计算累计流量,实例讲解!不要错过
发布时间 : 2025-02-23
作者 : 小编
访问数量 : 23
扫码分享至微信

实例讲解西门子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程序必备,对于本实例不需要,空程序即可。

OB35是设置为100ms的中断扫描块,主要程序都在其中。

FB1是主要功能块,

FC105是比较常见的功能,可以处理模拟量数据,将模拟量数据按照固定要求转化。(可以按照量程将PLC扫描的0-27648转化为实际流量,本例中该流量计量程3000m3/h,该信号接入到PLC的PIW256通道,PLC将扫描PIW256地址的0-27648转化为0-3000的实际流量)

比如说如果该流量计的瞬时流量是1500m3/h,该流量计就会输出12ma的电流,PLC会检测到13824,通过转化再次转为1500。

DB1为FB1的背景数据块,为存放FB1中信息的地方。

我们依次讲解一下该程序。

首先我们需要将OB35改为需要的中断时间块

例子中为100ms,就是0.1s

OB1为空块

OB35中为主程序,调用FB1,并以DB1作为背景数据块。

其中FLOW IN为该流量计接入PLC的模拟量通道。

Hi limit为该流量计量程上限,本例为3000m3/h。

Low limit为该流量计量程下限,一般为0。

Division为分辨率,对于100ms,该分辨率为36000,也就是将流量单位改为m3/100ms,如果是1s,该分辨率为3600。也就是将流量单位改为m3/1s。从而进行下一步计算。

Clear是流量累计数清零通道,触发M0.0可以将Flow Accu清零。

输出的Flow rt是转化完的流量数值。

Flow Accu为累计量,该值可通过Clear清零。

接下来我们打开FB1。

第一行第二行为处理模拟量,将信号转为实际流量值。

第三行将该值输出到外部。

第四行将分辨率改为可计算的实数。

第五行将转化的流量数除以分辨率,意味着改为以中断时间为单位的实际流量。

第六行将第五行的流量数相加,得到最终累计流量。

第七行为通过外部清零。

好了程序解说完毕,对于本篇文章,我已准备例子程序,需要的可以在评论区留言;我想要程序,点赞并转发,然后私信我;流量累计程序。

谢谢,学会的请点赞,土豪欢迎打赏。

您的支持是我更新的动力,谢谢大家。

西门子S7-200PLC在流量计量方面的应用,如何计量累积量!

1. 引言

目前,PLC已经广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、环保及文化娱乐等各个行业。它具有高可靠性、抗干扰能力强、功能强大、灵活、易学易用、体积小、重量轻、价格便宜的特点,在流量计量方面也有着广泛的用途,在用于流量累积时又有其编程的独特之处。下面进行详细的分析和论述,包括在西门子S7-200 CPU上编程的例子。

2. 使用PLC显示流量和计算累积量

流量计输出的信号一般是脉冲信号或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高速计数器在达到最大计数值时要保证计算的正确性。实际编程时,对高速计数器初始化以后就使之连续计数,不再对其进行任何干预,其高速计数器的初始化程序如图1所示(此段程序应放到PLC第一个扫描周期执行的程序中执行)。

图一:高速计数器的初始化程序

对于高速计数器是否达到最大计数值时需要判断,S7-200CPU的高速计数器是可以周而复始地进行累计的,最高位为符号位,最小值为7FFFFFFF。由于计数器是一直累加的,不可能出现本次读取的计数值小于上次计数值的情况,因此判断计数器当前值是否小于前一次的计数值,就可以判断计数是否达到最大值的拐点(7FFFFFFF),如果达到,则执行特殊的计算以便消除计算错误,程序如图2所示(此程序应放在定时中断子程序中执行)。

当当前计数值大于等于上次计数值时,两个计数值做差,就得到程序两次扫描时间间隔内的计数差值,同时将当前计数值赋值到上次计数值上;当当前计数值小于上次计数值时,计算上次计数值与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位,从而省略累积器倍乘系数,使读数更简便。

对累积器需要在一定条件下复位,累积到最大数值或手动复位,在中断程序中判断累积量是否达到或超过最大位数,当超过最大数值时,将各个累积器清零,清零的触发信号也可以是手动触发。

3. 结束语

本文列出了在PLC中计算和显示瞬时流量和计算累积量时可能遇到的问题,并以西门子S7-200 CPU224系列探讨了解决办法,值得进行该工作的工程人员借鉴。

相关问答

plc流量累计解决方法?

1.流量计本身没有累计流量功能,但可以把瞬时流量以模拟量的方式(例如4-20mA)输出。此时累计流量的最大误差可以估算为:流量计本身误差*流量计D/A误差*...

求助:可否用PLC程序计算流量累计值?

可以的,首先需要把瞬时流量采集到plc中来,然后在中断中调用累计程序,例如累计流量=(瞬时流量+累计流量)/3600这个是流量单位是xx/h的,如果是xx/分钟的话就是...

plc怎么做累计计数?

PLC(可编程逻辑控制器)的累计计数是通过设置一个累计寄存器实现的。当特定事件触发时,PLC会将该事件的计数值累加到累计寄存器中。通过编程设置累计寄存器的...

如何用西门子PLC300累计一台水泵的运行时间?

我也来做一个首先做一个做一个FC功能,我做了复位功能,而且天、时、分、秒都做了,想要年自己也可以做年的,原理都是一样的,建局部变量in-out:分别是秒、当...

plc累积量为什么清零?

PLC累积量清零是为了确保下一次计数的准确性。在工业控制系统中,PLC累积量通常用于计算生产数量、时间和速度等参数。如果不定期清零,累积量会越来越大,导致计...

三菱plc有什么办法可以做到累计计时,请详细点,最好有PLC梯形图!谢谢?

这是1小时的,程序最后清零了,你要累计计时,把最后清零段删掉就行了。这是1小时的,程序最后清零了,你要累计计时,把最后清零段删掉就行了。

PLC控制阀门?

这个并不是很难,你可以这样一步一步的做:1.你得有个电磁阀、调节阀之类的,因为流量8m³/h的时候,1升水只有2,3秒的时间关闭。阀门关闭时间要短;2.PLC要配...

怎么用PLC300计算电机累积运转时间?

接触器闭合,定时器开始计时。搞个秒级的定时器就可以,定时到自复位。定时器状态位串到计数器1(目标值60)上。(秒级)。计数器1状态位串到计数器2上(目标值...

300plc计数器累计用什么变量?

在300PLC计数器中,通常会使用一个整型变量来进行累计计数。这个变量可以用来保存计数器的当前值,并且可以根据需要进行增加或减少操作。通过使用整型变量,可以...

关于孔板流量计参数设定-盖德问答-化工人互助问答社区

孔板计算书是由孔板生产厂家出具的,上面详细的说明了被测介质的工艺条件:各组份含量(%)、密度、粘度、分...你好,,谢谢。。那流量单位不管是什么,...

 寂寞不痛  国防大学李莉 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部