西门子PLC小数取后四位

各位老师好,我用SCL写了a=b-c*d 的一段程序,abcd为实数型,c与d都是一个实时变化的实数,程序编译运算后,不论cd怎么变化,a的值一直为一个定值,用梯形图编写效果也是一样,想请教各位老师怎么解决?CPU为400H
1.有没有可能是实数计算位溢出了?
2.第一个想法是把cd两个数的小数位只取后四位或者五位,这样该如何做?

最佳答案

你用的硬件是400H,那么real数据就是32位浮点型,只存储7位有效数字,例如123.456789这个数,实际只存储了1.234567*10^2。因此假定你写的公式b-c*d,若c*d的结果与b相差过大,例如b为123456.7,而c*d的结果是0.01,则,则得到的结果应为123456.69,但有效数字只能存7位,因此最后依然是123456.7

提问者对于答案的评价:
确实是老师所说!感谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午10:33
下一篇 2021年7月4日 下午10:33

相关推荐

发表回复

登录后才能评论