当前位置: 主页 > PLC控制

西门子300PLC累计问题

用西门子3152PNDPcpu做浮点数累计,用浮点数累计,1秒加一次,a+b=a来计算的,b的数值非常小最大0.004,最小时0.001,在做累计开始正常,但是在加数a累计到一定数值时就不能正常累计了(数值大概到万以上就出现问题了),这是什么问题,有没有解决办法?

最佳答案

由于S7-300的浮点数格式为单精度格式的,其有效数据长度为8位,因此当两个相差很大的数相加时(如A/B>10000000),会发生丢尾数完全被舍弃的现象,这在累加值的应用中经常发生,所以必须根据你的实际应用情况确定其算法.

最好办法比如MD0达到一定数值1000后另存MD4从单位角度变换,然后MD0到1000再给MD4相加,如此相加的都是1000,当MD4大到一定程度给MD8累加10000如此。

提问者对于答案的评价:
多谢帮助

  • 关注微信

猜你喜欢

微信公众号