找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
在PLC中整数和实数的存放格式是不同的,比如10和10.0,PLC是以不同的格式存放的。
10 以整数类型存放的话表示为
0000 0000 0000 1010
以双整数类型存放的话表示为
0000 0000 0000 0000 0000 0000 0000 1010
,而如果10.0以实数类型存放的话则表示为
最高位为符号位,中间8位为指数位,后23位为底数位。
0100 0001 0010 0000 0000 0000 0000 0000
也就是1.25*2e(130-127)
如果不进行转换的话,我们按照下面的程序计算的话
L 10
L 10.0
+I
T MD10
10+10.0 在PLC看来是将10.0的存放格式认为是一个双整数,也就是1092616192 ;这样计算的结果就是10+1092616192=1092616202,这显然和我们预期的效果不一致,所以我们必须要告诉PLC10.0是一个实数或者转成实数格式存放,然后按照实数的计算方式来计算。反过来,如果
L 10
L 10.0
+R
T MD 10
那么得到的结果 MD10 = 1092616192,原因也是由于数据存放的格式不同造成计算结果不同。所以DTR的指令,就是将一个整数的存放格式转成以实数的存放格式。
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城