登录
首页 PLC论坛 台达PLC
回帖 发帖
正文

主题:台达PLC整数转换浮点数后计算会有误差

点击:16946 回复:13

楼主
附件 09J4}8XU}FD(@Q%54MJDS7G.jpg
附件 1)()N【】919`11HL@NTORBUY.jpg
现在正在学习台达PLC,早两晚仿真发现 :使用 DFLT 指令把整数转换成浮点数后,再DEMUL指令浮点乘法计算,再转换回整数。结果后面两位与正确值有差距。
看图。
跟着我下载到台达 DVP24ES00R2上实测,在电脑上监控,结果还是一样。
18-07-04 20:00
大部分plc浮点是小数点后面6位
18-07-04 20:54
你是用浮点数监控的吗?
18-07-04 21:15

引用 yeyecun 在 2018/7/4 21:15:05 发言【内容省略】

我点那个梯形图监控
18-07-04 21:35

引用 PLC-hmi 在 2018/7/4 20:54:02 发言【内容省略】

我这几个计算测试都没用到小数
18-07-04 21:37

引用 404513201 在 2018/7/4 20:00:55 发言【内容省略】

附件 snap4.jpg
正如你看到的一样,台达的确存在这个情况。
这个情况在号称使用软PLC系统的富士上也存在。
附件 snap6.jpg
同样,在西门子上也如此。
附件 snap5.jpg
我相信,在其他PLC品牌上也存在。
这是由于PLC使用的浮点数标准为IEEE754标准,其有效值为小数点后6位,因此对于尾数,其采用逼近的方式。
而在PC上,他们并不采用IEEE754,因此能真实地反映正确的值。
附件 snap3.jpg
这不是台达的Bug,而是标准就是这样。
Good Luck~
18-07-05 10:13
或是程序有漏洞,或是你实验的PLC就这样
我用OMRON的实验
A=0000-9999
B=0000-9999
C=A*B
即BCD运算
或A=0000-FFFF
B=0000-FFFF
C=A*B
即BIN运算
没有实验小数,都没问题
18-07-05 13:00

引用 蜀中之首 在 2018/7/5 13:00:54 发言【内容省略】

如果帖子看不懂的请不要回帖!!!!
欧姆龙的来了,你或许可以说还有XXXX品牌的不是这样,那么就请照着楼主的程序去试验一下。
附件 snap7.jpg
18-07-05 13:43

引用 蜀中之首 在 2018/7/5 13:00:54 发言【内容省略】

人家问浮点数,你来个没有实验小数?
上面人家说IEEE754浮点数的有效位造成的……
最后修改:2018/7/5 13:53:04
18-07-05 13:51
“现在正在学习台达PLC,早两晚仿真发现 :使用 DFLT 指令把整数转换成浮点数后,再DEMUL指令浮点乘法计算,再转换回整数。结果后面两位与正确值有差距。”
“我这几个计算测试都没用到小数”
这是楼主发出的信息
整数变浮点,再做乘法,结果再转换回整数,没做小数计算(整数也没小数呀)
我做了4位数的,只是没提整-浮-整的操作,就遭到嘚啵,好可笑。
来看楼主的数据
2.(应版主要求,先看试验2)
附件 untitled1.jpg
32767*3007=983239369
没看错吧,是10进制(BCD)计算。
附件 untitled2.jpg
附件 untitled3.jpg
附件 untitled4.jpg
附件 untitled5.jpg
是不是与计算器结果一致。
1,再看试验一
附件 untitled6.jpg
32767*12343=404443081
附件 untitled7.jpg
附件 untitled8.jpg
结果一样嘛
再看一个4020*23481=94393620
附件 untitled9.jpg
BCD:94393620
18-07-05 22:43

上一页下一页

工控新闻

更多新闻资讯