楼主是个PLC菜鸟,很少做过运算类的项目,台达PLC也不怎么熟悉。今天做一个物料搅拌的项目,PLC是DVP ES2,功能是需要将两种物料用通过控制一个螺杆泵的运转时间按照配比混合。
开始啪啪啪一会儿敲了个计算步骤,填了数值,也没有考虑浮点数的问题,结果是这样的:
当时就懵了,为啥1800取整就变成0了呢?
想了一会,感觉可能要用浮点数运算,经过查手册跟反复修改,最后终于得到了想要的结果:
注意看最后D34和D36,按照浮点数显示,是0。
但是当我切换成10进制数显示时,就变成了1333和4666:
问题虽然解决了,可是疑惑更多了:
非0的数不同格式显示差别很大我理解,可是1333和4666不是很大也不是很小,其2进制数也没有超过一个字或者双字的范围,为什么会显示0呢? 还有最开始 int d30 d34,为什么会变成0呢……
另外,在修改程序期间还发现几个问题,都不太明白:
1.这里浮点数乘法, d28(浮点数)乘f1.0报错,改乘k1又好了
2.浮点数传送,显示输入错误,不明白