中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

台达PLC

在线课堂 西门子减速电机 德嘉 菲力尔 台达 英威腾 泓格论坛 西门子 我和LOGO!有个约会 FLIR红外热像论坛 【有奖活动】英威腾 “Ni美国国家仪器 “PLC发展趋势大讨论”活动圆满结束 施耐德 cc-link图文征集活动 西门子SMART LINE V3
工控论坛首页 台达PLC → 浏览主题: 台达PLC整数转换浮点数后计算会有误差
发表新帖 回复该主题
回帖:13个,阅读:535 [上一页] [1] [2] [下一页]
* 帖子主题:

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

[已结贴]
221
404513201
文章数:23
年度积分:221
历史总积分:221
注册时间:2018/6/24
发站内信
发表于:2018/7/4 20:00:55
#0楼
附件 09J4}8XU}FD(@Q%54MJDS7G.jpg

附件 1)()N【】919`11HL@NTORBUY.jpg



现在正在学习台达PLC,早两晚仿真发现 :使用 DFLT 指令把整数转换成浮点数后,再DEMUL指令浮点乘法计算,再转换回整数。结果后面两位与正确值有差距。
看图。

跟着我下载到台达 DVP24ES00R2上实测,在电脑上监控,结果还是一样。
12167
PLC-hmi
文章数:4611
年度积分:1838
历史总积分:12167
注册时间:2010/8/19
发站内信
发表于:2018/7/4 20:54:02
#1楼
大部分plc浮点是小数点后面6位
此帖发自论坛APP
5089
yeyecun
文章数:919
年度积分:352
历史总积分:5089
注册时间:2011/9/20
发站内信
发表于:2018/7/4 21:15:05
#2楼
你是用浮点数监控的吗?
221
404513201
文章数:23
年度积分:221
历史总积分:221
注册时间:2018/6/24
发站内信
发表于:2018/7/4 21:35:44
#3楼
以下是引用yeyecun2018/7/4 21:15:05的发言:
你是用浮点数监控的吗?
我点那个梯形图监控
此帖发自手机工控论坛
221
404513201
文章数:23
年度积分:221
历史总积分:221
注册时间:2018/6/24
发站内信
发表于:2018/7/4 21:37:13
#4楼
以下是引用PLC-hmi2018/7/4 20:54:02的发言:
大部分plc浮点是小数点后面6位
我这几个计算测试都没用到小数
此帖发自手机工控论坛
24326
cvlsam 版主
文章数:9381
年度积分:1479
历史总积分:24326
注册时间:2001/12/22
发站内信
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/7/5 10:13:43
#5楼
以下是引用4045132012018/7/4 20:00:55的发言:
附件 09J4}8XU}FD(@Q%54MJDS7G.jpg

附件 1)()N【】919`11HL@NTORBUY.jpg



现在正在学习台达PLC,早两晚仿真发现 :使用 DFLT 指令把整数转换成浮点数后,再DEMUL指令浮点乘法计算,再转换回整数。结果后面两位与正确值有差距。
看图。

跟着我下载到台达 DVP24ES00R2上实测,在电脑上监控,结果还是一样。


附件 snap4.jpg

正如你看到的一样,台达的确存在这个情况。

这个情况在号称使用软PLC系统的富士上也存在。





附件 snap6.jpg

同样,在西门子上也如此。



附件 snap5.jpg

我相信,在其他PLC品牌上也存在。

这是由于PLC使用的浮点数标准为IEEE754标准,其有效值为小数点后6位,因此对于尾数,其采用逼近的方式。

而在PC上,他们并不采用IEEE754,因此能真实地反映正确的值。




附件 snap3.jpg

这不是台达的Bug,而是标准就是这样。

Good Luck~
643
蜀中之首
文章数:391
年度积分:643
历史总积分:643
注册时间:2018/5/27
发站内信
发表于:2018/7/5 13:00:54
#6楼
或是程序有漏洞,或是你实验的PLC就这样
我用OMRON的实验
A=0000-9999
B=0000-9999
C=A*B
即BCD运算
或A=0000-FFFF
B=0000-FFFF
C=A*B
即BIN运算
没有实验小数,都没问题
24326
cvlsam 版主
文章数:9381
年度积分:1479
历史总积分:24326
注册时间:2001/12/22
发站内信
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/7/5 13:43:06
#7楼
以下是引用蜀中之首2018/7/5 13:00:54的发言:
或是程序有漏洞,或是你实验的PLC就这样
我用OMRON的实验
A=0000-9999
B=0000-9999
C=A*B
即BCD运算
或A=0000-FFFF
B=0000-FFFF
C=A*B
即BIN运算
没有实验小数,都没问题

如果帖子看不懂的请不要回帖!!!!

欧姆龙的来了,你或许可以说还有XXXX品牌的不是这样,那么就请照着楼主的程序去试验一下。

附件 snap7.jpg
6176
fujifa
文章数:2220
年度积分:592
历史总积分:6176
注册时间:2014/2/10
发站内信
2016论坛贡献奖
2015论坛贡献奖
发表于:2018/7/5 13:51:22
#8楼
以下是引用蜀中之首2018/7/5 13:00:54的发言:
或是程序有漏洞,或是你实验的PLC就这样
我用OMRON的实验
A=0000-9999
B=0000-9999
C=A*B
即BCD运算
或A=0000-FFFF
B=0000-FFFF
C=A*B
即BIN运算
没有实验小数,都没问题

人家问浮点数,你来个没有实验小数?

上面人家说IEEE754浮点数的有效位造成的……
[此贴子已经被jint于2018/7/5 13:53:04编辑过]
643
蜀中之首
文章数:391
年度积分:643
历史总积分:643
注册时间:2018/5/27
发站内信
发表于:2018/7/5 22:43:42
#9楼
“现在正在学习台达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
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2018 Gkong.com, All Rights Reserved

124.8