登录
首页
PLC论坛
三菱Mitsubishi
回帖
发帖
正文
主题:一个DEMOV的问题,为什么【Demov D230 D260】D260得不到D230的数据?
点击:659 回复: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协会即将开启5G无线新征程
喜报丨珞石机器人入选工信部《首台(套)重大技术装备推广应用指导目录》
倍福 | TwinCAT 3 CNC:集成全新功能与工艺软件包,引领智能制造新纪元
创新为钥 施耐德电气发布全新EcoStruxure开放自动化平台V24.0版
4000亿,今年港交所最大IPO敲钟了
三菱电机加入日本“30%俱乐部”,支持增加女性企业高管
重磅官宣:上能电气北美服务中心开业,全球化战略再升级
更多新闻资讯