登录
首页
PLC论坛
三菱Mitsubishi
回帖
发帖
正文
主题:一个DEMOV的问题,为什么【Demov D230 D260】D260得不到D230的数据?
点击:610 回复: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
上一页
下一页
工控新闻
工信部首次新设“未来产业处”,意味着什么?
智能化时代,OEM用户该选择什么样的伺服系统?
网安首家!天融信成为西门子DVP数字化增值合作伙伴
图尔克 |具有IO-LINK协议的模拟量输出电感式传感器
展会预告 | 用于实现可持续制药生产的自动化解决方案
Visionary-B Two 智能 3D 视觉摄像机
走进德国SICK集团:智能传感器专家赋能数字化转型
倍福-科技自动化技术交流会 | 南京站
更多新闻资讯