登录
首页
PLC论坛
三菱Mitsubishi
回帖
发帖
正文
主题:一个DEMOV的问题,为什么【Demov D230 D260】D260得不到D230的数据?
点击:593 回复:12
楼主
编辑
引用
管理
沙羽墨
一个DEMOV的问题,为什么【Demov D230 D260】D260得不到D230的数据?
如果直接用D230,数据就会由18400变成-16384?
23-05-05 22:20
1楼
编辑
引用
管理
huyafeng
浮点数18400.000,转换成16进制为46 8F C0 00。当使用DEMOV指令时,传输的是468FC000。当使用MOV指令时,只传输低16位,即C000,转换成二进制数为1100 0000 0000 0000,最高位1代表负号,后面100 0000 0000 0000代表数值,负数补码计算方法为各比特位取反加一,可知数值部分补码仍然为100 0000 0000 0000,即2∧14=16384,配合最前面负号,可知最终传输的是-16384。你使用的传输指令必须为DEMOV才能得到正确的结果,如果使用的是DMOV指令,虽然传了32位,但没有按照浮点数格式解码,最终将传输1183825920,也得不到正确结果。
23-05-05 23:39
2楼
编辑
引用
管理
YXBK
一个DEMOV的问题,为什么【Demov D230 D260】D260得不到D230的数据?
从你的截图来看,是PLC还没运行吧,前面的M8000都没闭合,这条指令都没运行起来,所以D230还没传给D260。
也还有一种可能就是D260其他地方有用到,PLC会以最后的一个D260结果为准的。
如果直接用D230,数据就会由18400变成-16384?
这个就是浮点数与整数的区别,原理楼上解释的很清楚了。
PLSY指令只能用整数,所以你还得用INT指令把浮点数变成整数才行
23-05-06 07:37
3楼
编辑
引用
管理
沙羽墨
谢谢讲解,致敬!
23-05-06 08:01
4楼
编辑
引用
管理
沙羽墨
谢谢,我应该是浮点数没有变成整数,我先试下int 指令
23-05-06 08:03
5楼
编辑
引用
管理
沙羽墨
谢谢,我应该是浮点数没有变成整数,我先试下int 指令
23-05-06 08:04
6楼
编辑
引用
管理
知道一点
引用
YXBK
在 2023/5/6 7:37:17 发言
【内容省略】
楼主就是没RUN
但楼主如何使D260=0?恐怕只有楼主最清楚。
同样,只要PLC run D260就不可能是0,所以与浮点不浮点没关系D260≠0
楼主的D210是以浮点形式给入的!
23-05-06 11:25
7楼
编辑
引用
管理
知道一点
23-05-06 11:27
8楼
编辑
引用
管理
沙羽墨
转成整数可以直接用了,谢谢。昨天问题卡在PLSY 电机不动上面,D230是负数值,就想着转一个D看一下,截图的时候忘记打RUN了,汗颜。。。
23-05-06 13:10
9楼
编辑
引用
管理
沙羽墨
转成整数可以直接用了,谢谢。昨天问题卡在PLSY 电机不动上面,D230是负数值,就想着转一个D看一下,截图的时候忘记打RUN了,汗颜。。。
23-05-06 13:13
上一页
下一页
工控新闻
莱迪思发布先进的运动控制解决方案
行而不辍,未来可期| 禾川科技直线传动项目发布会圆满召开
视频回顾 | CC-Link协会合作伙伴威博在深圳工业展精彩回顾系列(六)
2024施耐德电气工业SI同盟伙伴峰会隆重举行
直击2024汉诺威展 博世力士乐引领工业技术新航向
边缘计算标准件计划丨中国移动5G虚拟化工业控制网关,构建全无线确定性工业控制系统
禾信仪器2023年度净亏损9610.61万元,亏损扩大
视频回顾 | CC-Link协会合作伙伴卓彩在深圳工业展精彩回顾系列(三)
更多新闻资讯