登录
首页 PLC论坛 三菱Mitsubishi
回帖 发帖
正文

主题:一个DEMOV的问题,为什么【Demov D230 D260】D260得不到D230的数据?

点击:593 回复:12

附件 1.jpg
附件 2.jpg
一个DEMOV的问题,为什么【Demov D230  D260】D260得不到D230的数据?
如果直接用D230,数据就会由18400变成-16384?
附件 3.jpg
23-05-05 22:20
浮点数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
一个DEMOV的问题,为什么【Demov D230  D260】D260得不到D230的数据?
从你的截图来看,是PLC还没运行吧,前面的M8000都没闭合,这条指令都没运行起来,所以D230还没传给D260。
也还有一种可能就是D260其他地方有用到,PLC会以最后的一个D260结果为准的。
如果直接用D230,数据就会由18400变成-16384?
这个就是浮点数与整数的区别,原理楼上解释的很清楚了。
PLSY指令只能用整数,所以你还得用INT指令把浮点数变成整数才行
23-05-06 07:37
谢谢讲解,致敬!
23-05-06 08:01
谢谢,我应该是浮点数没有变成整数,我先试下int 指令
23-05-06 08:03
谢谢,我应该是浮点数没有变成整数,我先试下int 指令
23-05-06 08:04

引用 YXBK 在 2023/5/6 7:37:17 发言【内容省略】

楼主就是没RUN
但楼主如何使D260=0?恐怕只有楼主最清楚。
同样,只要PLC  run D260就不可能是0,所以与浮点不浮点没关系D260≠0
楼主的D210是以浮点形式给入的!
23-05-06 11:25
附件 image.jpg
23-05-06 11:27
附件 1.jpg
附件 2.jpg
转成整数可以直接用了,谢谢。昨天问题卡在PLSY 电机不动上面,D230是负数值,就想着转一个D看一下,截图的时候忘记打RUN了,汗颜。。。
23-05-06 13:10
转成整数可以直接用了,谢谢。昨天问题卡在PLSY 电机不动上面,D230是负数值,就想着转一个D看一下,截图的时候忘记打RUN了,汗颜。。。
附件 1.jpg
附件 2.jpg
23-05-06 13:13

上一页下一页

工控新闻

更多新闻资讯