当前位置:首页 -> 应用服务中心 -> 应用案例

PLC在流量显示和累积计量上的应用




PLC application in the flow measurement and Totalling

(深圳市建恒测控股份有限公司,深圳 518057

    详细讲解了关于使用PLC(可编程逻辑控制器)进行流量累积、显示的编程算法,重点讲解了在编制程序时应该注意的问题,采用了哪些方法来解决这些问题,还给出了比较详细的编程例子,对于使用PLC进行流量累积具有很大的参考价值。

BriefThis paper gave a detailed account on the use of PLC (programmable logic controllers) for flow totalizer, display programming algorithm  Explained the focus in the preparation of the program should pay attention to the problem, using what methods to solve these problems, but also gives a more detailed programming examples of the use of PLC to the cumulative flow of great reference value.

 

关键词  PLC;流量显示;S7-200;流量;累积量;高速计数器;脉冲;4-20mA

Keywords  PLC ; flow ; S7-200 ; totalizer ; high speed counter ; pulse;4-20mA 

引言:在工程实践中经常遇到对流体流量进行远程显示、累积的情况,而工程实际中大量使用的是PLC,因此,如何使用PLC将流量计输出的脉冲信号或模拟量(4-20mA)信号进行处理,从而准确计算瞬时流量和累积量就成为编程工作的重点和难点,作者以多年从事自动控制工程的经验介绍了这部分工作的原则和方法。下面进行详细的分析和论述,包括在西门子S7-200CPU上编程的例子。

1.         采用PLC进行流量累积需要注意的问题及解决

流量计输出的信号一般是脉冲信号或4-20mA电流信号,这两种信号输出的都是瞬时流量(也有用继电器输出累积量信号,原理一样,不再赘述),我们的目的是在PLC中计算和显示瞬时流量值和计算累积量值,当输入信号是脉冲信号是,在计算瞬时流量的时候,必须按照一个严格的时间间隔计算才能保证瞬时流量的准确性,因此,计算瞬时流量的时候必须用定时中断来进行,而且,在PLC系统中只能运行这一个中断程序,不允许再产生其它中断(即使是低优先级的中断也不允许运行),以防止干扰定时中断的时间间隔的准确性,计算瞬时流量就是将这个时间段的累计脉冲个数换算成累计流量,再除以时间就是瞬时流量,对于4-20mA输入只需按照其对应的量程进行换算就可以直接得到瞬时流量,而累积流量就是将每个时间段内的累积流量累加起来就是累积流量,在实际使用PLC编程的过程中必须注意以下几个问题:

1)        输入脉冲频率范围是否超出PLC接收的范围;

2)        PLC高速计数器在达到最大计数值时如何保证计算正确;

3)        如何保证定时中断不受干扰;

4)        累积量的最大累积位数;

5)        如何复位累积量;

下面就这些问题进行详细的叙述

1.1.   输入脉冲频率范围是否超出PLC接收的范围

在设计软件之前,首先要知道所接收的信号频率范围是否超出了PLC高速计数器的频率范围,因为当输入的频率超出PLC的最高频率接收上限的时候,会导致频率信号丢失,从而产生很大的误差,一般查看流量仪表的用户手册就可以了解到其频率输出的范围,多数情况下流量仪表的频率输出范围是可设置的,那么只需要将频率范围设置成对应的流量范围即可,在设置其频率输出时要注意:①流量上限设置成刚好大于该仪表所测量的最大流量,一般取整数;②频率输出上限设置成PLC能接收的最大频率或其三分之二处,不要设置的频率输出上限太小,会导致PLC计算误差变大。

1.2.   PLC高速计数器在达到最大计数值时如何保证计算正确

以西门子S7-200 CPU224为例,S7-200CPU224具有6个单相最大30kHz的高速计数器,但PLC内部没有提供相应的算法来计算频率,因此,需要自己编程计算,这就需要在PLC高速计数器在达到最大计数值时要保证计算的正确性,实际编程时,对高速计数器初始化以后就使之连续计数,不再对其进行任何干预,不是每次采集高速计数器以后对其进行“清零”或“复位”的操作,因为,这些操作会导致在累计当前的脉冲个数时存在部分丢失的风险(在“清零”或“复位”高速计数器时CPU在执行这些指令的时候需要一定的时间而这些消耗CPU时间的过程会漏计脉冲),在S7-200CPU上,其高速计数器的初始化程序如下(见图1):

 

 

注意:此段程序应该放到PLC第一个扫描周期执行的程序中执行。

 

对于高速计数器是否达到最大计数值时需要判断,S7-200CPU的高速计数器是可以周而复始的进行累计的,最高位为符号位,最小值为7FFFFFFF,由于计数器是一直累加的,不可能出现本次读取的的计数值小于上次的计数值,因此判断计数器当前值是否小于前一次的计数值,就可以判断计数是否达到最大值的拐点(7FFFFFFF),如果达到,则执行特殊的计算以便消除计算错误,如图2程序所示,当当前计数值大于等于上次计数值时,两个计数值做差,就得到程序两次扫描时间间隔内的计数差值,同时将当前计数值赋值到上次计数值上;当当前计数值小于上次计数值时,计算上次计数值与7FFFFFFF之间的差值(用减法),以及当前计数值和7FFFFFFF之间的差值(用加法),然后将两个结果相加就是程序两次扫描时间间隔内的计数差值,从而实现对对累计计数值达到拐点时的正确计算。

 

 

 

2 累积器累积程序

 

注:此程序应放在定时中断子程序中执行。

1.3.   如何保证定时中断不受干扰

实际上,在现场应用中定时中断子程序是采用250ms中断一次执行的,使用SMB34进行控制的,需要注意的是,系统中必须只保证这个中断是唯一存在的,不会受到其他中断的影响,否则可能会由于其他中断的影响使周期性中断不准时,从而影响精度。

1.4.   累积量的最大累积位数

通过以上计算就得到了250ms内流量计发过来的脉冲个数,这个数值乘以脉冲当量就是250ms内的流量值,再除以时间就是瞬时流量,另外,在250ms内再执行累加程序就可以计算累积流量了,在计算累积流量过程中需要避免累积过程的的计算误差,我们知道,流量累积量是一直累积的一个数值,一般会累积到8位数,而PLC内部的浮点数的有效位数是6位,当累积量数值很大的时候就会造成一个大数和一个小数相加,势必导致小数的有效位数丢失,造成很大的累积误差,因此,要避免大数和小数相加的情况出现,解决方法是采用多个流量累积器,只允许同数量级的数值相加,从而避免数值有效位数损失,实际编程中采用了5个累积器,根据常用流量情况下,在周期中断时间间隔(250ms)内流过的流量乘以15作为第一个累积器的上限,当达到这个累积器的上限值后,将这个累积器的值累加到第2个累积器中,并把第一个累积器清零,对于第三个累积器也同样处理,第4个累积器用于保存累积量小数部分数值,第5个累积器用于保存累积量整数部分数值,这样在显示总累积量时只需显示整数部分和小树部分就可以了,整个过程充分避免了累积过程中大数与小数相加的情况出现,在实际工程中,需根据流量的大小、周期中断的时间间隔来确定所用累积器的个数,而累积器的整数部分用双整数来表示,双整数的范围是-2,147,483,648+2,147,483,647,因此,可以使累积器的整数位数达到9位,这样,在显示累积量时就可以最多显示9位整数的累积量和6位的小数累积量。总计15位,从而省略累积器倍乘系数,使读数更简便。

1.5.   如何复位累积量

 

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

2.         结束语

本文对PLC处理流量累积和瞬时流量计算的相关问题进行了详细的阐述,使自控工程编程人员在处理这样的问题时能够轻易的达到目的,使流量累积的精度大幅度提高,这对于不能采用通讯方式将仪表累积数值远传的仪表具有重大意义。

参考文献:

[1] SiemensS7-200可编程控制器系统手册》20079月版 Siemens AG Bereich Automation and Drives Siemens AG 2007

[2] 何献忠《可编程控制器应用技术(西门子S7-200系列)》 清华大学出版社 2008-12-31

[3] 隋振有,隋凤香 《可编程控制器应用解析》中国电力出版社 2006-1-1

[4] 张万忠 《可编程控制器入门与应用实例:西门子S7-200系列》 中国电力出版社 2005-01-01

[5] 程玉华 《西门子S7-200工程应用实例分析》 电子工业出版社 200801

 

作者简介:

夏冰:男,1967.10.81990年国防科技大学毕业,“计算机应用”中级职称。

主要研究方向:PLCDCS系统开发和维护,工业自动化系统设计和控制软件编制等。

成果:

吉化有机合成厂制醚车间DCS改造

长春一汽流量标准装置自控设计

广东韶关凡口矿自来水厂自动化系统设计

广东合水水库远程无线数据采集系统

东莞石龙铁电段水处理加药系统

中国人民解放军5713工厂流量标准装置自控设计

新疆独山子石化流量标准装置自控设计

中国人民解放军5719工厂流量标准装置自控设计

中国人民解放军5720工厂流量计校准装置自控设计

2项发明专利(公示中)

 

1 高速计数器初始化程序