CPU|基于西门子S7-200CPU在累积器中应用及注意事项( 二 )


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

相关经验推荐