通过以上计算就得到了250ms内流量计发过来的脉冲个数 , 这个数值乘以脉冲当量就是250ms内的流量值 , 再除以时间就是瞬时流量 , 另外 , 在250ms内再执行累加程序就可以计算累积流量了 , 在计算累积流量过程中需要避免累积过程的的计算误差 , 我们知道 , 流量累积量是一直累积的一个数值 , 一般会累积到8位数 , 而PLC内部的浮点数的有效位数是6位 , 当累积量数值很大的时候就会造成一个大数和一个小数相加 , 势必导致小数的有效位数丢失 , 造成很大的累积误差 , 因此 , 要避免大数和小数相加的情况出现 , 解决方法是采用多个流量累积器 , 只允许同数量级的数值相加 , 从而避免数值有效位数损失 , 实际编程中采用了5个累积器 , 根据常用流量情况下 , 在周期中断时间间隔(250ms)内流过的流量乘以15作为第一个累积器的上限 , 当达到这个累积器的上限值后 , 将这个累积器的值累加到第2个累积器中 , 并把第一个累积器清零 , 对于第三个累积器也同样处理 , 第4个累积器用于保存累积量小数部分数值 , 第5个累积器用于保存累积量整数部分数值 , 这样在显示总累积量时只需显示整数部分和小树部分就可以了 , 整个过程充分避免了累积过程中大数与小数相加的情况出现 , 在实际工程中 , 需根据流量的大小、周期中断的时间间隔来确定所用累积器的个数 , 而累积器的整数部分用双整数来表示 , 双整数的范围是-2 , 147 , 483 , 648到+2 , 147 , 483 , 647 , 因此 , 可以使累积器的整数位数达到9位 , 这样 , 在显示累积量时就可以最多显示9位整数的累积量和6位的小数累积量 。 总计15位 , 从而省略累积器倍乘系数 , 使读数更简便 。
对累积器需要在一定条件下复位 , 累积到最大数值或手动复位 , 在中断程序中判断累积量是否达到超过最大位数 , 当超过最大数值时 , 将各个累积器清零 , 另外清零的触发信号也可以是手动触发 。
相关经验推荐
- 平视显示器|俄罗斯用上中国CPU,能装windows,用来替代intel、AMD?
- CPU|从3399元跌至1413元,麒麟980+AI四摄+屏幕指纹,经典华为手机
- CPU|Intel和AMD为啥不将内存条集成到CPU中,这样还能赚更多的利润?
- CPU|最新发布的骁龙8+Gen1处理器,能够“碾压”天玑9000处理器?
- AMD|AMD锐龙7000系CPU特性:170W功耗限制,智能访问存储
- CPU|手机升级内存靠谱吗?手机在官方扩容之后用了几天就坏了,究竟是怎么回事呢?
- 高通骁龙|安装西门子软件时需注意的6大问题总结
- 芯片|日本光刻胶公司高管:我国很难掌握基于EUV光刻的复杂芯片制造技术
- CPU|火龙从此透心凉?骁龙8 Gen1 Plus 5G处理器发布,台积电4nm加持
- Linux|微软宣布推出全新的基于 Arm 的台式电脑和 Arm 原生开发工具
