回复:【探讨】S7-300/400 PLC 流量累积问题

已锁定

volcanol

  • 帖子

    851
  • 精华

    12
  • 被关注

    58

论坛等级:奇侠

注册时间:2009-11-26

钻石 钻石 如何晋级?

发布于 2020-12-15 18:06:57

8楼

展开查看
以下是引用will666在2020-12-14 23:16:03的发言 >5楼

两种方式来解决他,一个是取整加法,就是每次累加只截取整数部分,剩下的小数部分累积到下一次,最后的结果是一个整数,就不会有舍掉的问题;另一种方式是递进,用A和B来表示的话就是每次都跟B做累加,当B大于10000(也可以是其他数值,根据需要设定)时给A加10000,给B减10000,最后结果=A+B,这样B不会大于10000,可保证小数点后3位精度。

谢谢提供两个都不错的思路。

我自己实现了一个用的与第二种方式类似的方法。


按照你说的方式:

B = 瞬时值的累加

IF B> 10000.0 THEN

    A = A + 10000.0

    B  = B - 10000.0

END 

真实累加值 = A + B;这种方式比较直接。

但是这种方法最多也只能到1.0e+7  就是一千万, 如果超过1千万,那么还是会存在问题。

也就是说到一千万以上的累积量,那么还是必须自动清零,然后重新计算。

不过一般的工程应用应该差不多了, 我这边累积大约一个月会到百万级别, 也就是说大约半年到一年才会需要自动清零一次。



获取资料关注:https://www.cnblogs.com/volcanol/
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。