我认为:如果求瞬时流量不是为了闭环控制提供反馈信号而是为了进行累加求总流量的话,可不用求瞬时流量,直接对流量计的输出脉冲进行连续计数就可以了。具体编程思路是这样的: 1、如输出脉冲的最高频率低于200HZ,可用普通输入点做计数信号的输入端,用它的前沿触发内部一双字存储器进行加一运算。如高于200HZ,就得选用带启动、复位控制的单相增计数方式的高速计数器进行计数。 2、如以网友1提出的“…..流量计它能输出脉冲信号,1000个脉冲为一个立方”为依据,可知其一个脉冲为0.001立方的流量.。即累计的流量值的精度为0.001立方。如统计较长时间的总流量其精度不需要这么高,比如要求为0.1立方,此时的计数值应除以100,其商才为累计流量。 3、一般流量计输出脉冲信号幅度为5V或12V,而PLC输入端要求输入信号的幅度为24V,故流量计的输出脉冲信号必需先做电平转换变成24V脉冲信号后,方可接入PLC的计数输入端,这样就得做一块电路板。如果流量精度为0.1立方,可在电路板上的电平转换线路前再增加一块4518(双十进制计数器)集成块,来构成二位十进制计数器,先对流量计输出脉冲进行计数,其输出的脉冲相当对流量计输出脉冲进行除以100的运算处理,再对它进行24V电平转换,去PLC计数口,这样进入PLC计数端的脉冲频率一定低于200HZ,就不需要用高速计数器计数,可大大的简化编程程序。见下图: 程序是这样运行的:按一下累计计数启动开关 I2.1,立即将此时的日期时间(年、月、日、时)存入VB10-VB13中,同时将M2.0置1,M2.0=1的前沿,将VD100清0,在M2.0=1时间内,VD100对计数脉冲(I2.0)进行累计计数(I2.0的后沿使VD100内容加1),其值即为从启动计数开始,时时的累积流量。经过一定时间,如按下停止开关 I2.2,立即记下此时的日期时间,同时使M2.0=0,使VD100停止计数,此时VD100的值即为从起启动计数的日期时间到停止计数的日期时间的总流量。这种记累计流量不仅编程简单,而且累计计数精度高,因为它是连续不间断的计数,能产生计数误差只在M2.0的前后沿的二个瞬间,采用瞬时流量累加的方法,相比它不仅程序繁琐,而且计数精度要低,其原因,就是每次求瞬时流量的定时中断的前后沿,都会产生计数误差,多个瞬时流量的累加值产生的误差,必然要比一次性计数所产生的误差要大。对于要求流量精度高(如以流量计的输出脉冲为最小计数单位或0.01立方为最小计数单位),此时的计数脉冲频率为200HZ以上时,可选用高速计数器进行连续计数,在硬件处理上可只用电平转换电路,或只用一位十进制计数器在经过电平转换,在软件处理:将上图中的VD100加1语句改为将高速计数器的计数值送入VD100即可 。 |
|