回复:流量累计问题

已锁定

shine

  • 帖子

    8834
  • 精华

    39
  • 被关注

    156

论坛等级:至圣

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2020-05-25 13:04:59

5楼

这是浮点数本身的问题。300中的浮点数是单精度浮点数,有效位数也就十进制的7位,如果两个数相差大于10e7倍,再相加的时候,你会发现结果和大数一样,相加并没有效果。

如果你用1200/1500,可以用LREAL做累积,在没有LREAL类型的PLC中,只能自己做进位了

比如你定义三个dint,分别是total,total_10e4,total_10e8,分别代表不同的数量级,total_10e4代表以万为单位,total_10e8代表以亿为单位,ana表示当前模拟量值,用下面的算法来做

total = total + ana

if total > 10000 then 

    total = total - 10000

    total_10e4 = total_10e4 + 1

if total_10e4 > 10000 then 

    total_10e4 = total_10e4 - 10000

    total_10e8 = total_10e8 + 1

然后再把这三个数转换成real乘上相应的数量级后相加输出




评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54389条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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