展开查看
以下是引用未尽在2014-05-30 13:14:51的发言 >30楼:学习了!一直对西门子这个系列PLC的浮点数存有疑问。之前在OB30(每秒中断)做过简单的流量累计
L 当前流量 (方/小时)
L 3600.0
/r
L 流量累计(REAL类型)
+r
T 流量累计
发现流量累计到400多万就不累积了,一直不明白是什么原因!问西门子克服,只说什么位数超了,也不太明白。
您说的问题与浮点数的精度有关,浮点数的有效位数为二进制24位,相当于十进制的7位有效数字。您累加到400多万时,累计的流量刚好是7位有效数字,而每次新累加上的数相对于累加值太小,被舍去了,所以累加不上去了。
改为双整数运算可以解决这个问题。