REAL数据最大值是多少?

RT,建了个REAL数据块,计算累加值,累计到8192.0后就不再累记了,瞬时值很大都不行,换其他地址也一样,怎么回事情?

最佳答案

浮点数相加的时候,数量级差别太大的话,就会出现你说的情况,处理方法参考链接:
实数相加的话,要注意的一个问题当两个数的数量级别相差太大的时候,就会出现不累加的情况。
在S7中实数的定义和计算可保持精确到小数点后6位
加和减时,是按照指数归齐,也就是基数和指数对加和减相同,只加入尾数。
0.0625 = 6.25e-2
1627262.2 = 1.627262e+6(最后1个2是舍去的)
相加的时候,按照指数归齐那么
6.25e-2 = 0.0000000625e+6 (指数为6要对齐)
这时小数点后只保留6位,那么就是
0.000000e+6 也就是0
所以相加后的数据就出现你说的不能累加的情况。
解决的方法可以将流量累加的一定数值后,比如累计1个小时后,将累加值及时保存到DB块中,然后清空累加值,再重新累计。

提问者对于答案的评价:
谢谢,很久没来了,我后面就是那么干的.

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc235699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午3:16
下一篇 2018年12月1日 下午3:16

相关推荐