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

主题:FX5U MODBUS数据转换问题

点击:1554 回复:17

引用 twtynijj 在 2021/11/27 9:03:23 发言【内容省略】

32位整数?如果数据不对,高低16位互换一下
如果地址不对,错一位试试。
21-11-27 17:19
应该是高低位的问题,东方马达 C6是上位 C7是下位, PLC读取后   C6对应D200  C7对应D201
而在PLC里面的32位是D201 D200这样排列的,刚好高低位相反,所以要互换一下。
附件 微信截图_20211127204409.jpg
最后修改:2021/11/27 20:56:17
21-11-27 20:48
版主 互换一下意思我读C7吗?  ADPRW K1 H3 HC7 K2 D200这样读吗?还是读C6然后将结果怎么样转换?
21-11-27 22:30
关工 连续的两个 应该就是32位的!哪我是要读C7吗?还是读 C6???然后将结果怎么转换!之前读些仪表!都是单字!没遇到过这情况!
21-11-27 22:33

引用 twtynijj 在 2021/11/27 22:33:47 发言【内容省略】

YXBK版主说的要不要加你,主要取决于你程序中的C6是如何来的,手册上的吗?三菱ADPRW指令中用的是寄存器地址进行寻址,西门子中用寄存器编号进行寻址,用寄存器编号寻址时就要给实际地址加“1”,你把手册发出来,我给你做判断即可。
===========================
回复完,才看到你把手册发出来了,那么这个应该不牵扯什么加1不加1,手册给出的就是寄存器实际地址,要么用04功能码读,要么用03功能码读即可,如果读出的数据不对,那么一般是高低16位互换一下即可,你想想嘛,一个32位长整数,由4个字节组成,它的顺序无非是ABCD、BADC、CDAB、DCBA。
===========================
从00C6开始读,连续读2个寄存器即可。
最后修改:2021/11/27 22:57:13
21-11-27 22:54

引用 twtynijj 在 2021/11/27 22:30:12 发言【内容省略】

还是用C6,至于怎么转换我目前想到的办法是
MOV D200 D301
MOV D201 D300
这样就互换了,D300就是指令位置了,然后32位监视D300看看。
21-11-28 08:40
附件 捕获.jpg
再次感谢版主 照您的方法,成功读出了正的值。以前只用2个字节1个字的。直接读出。这个32位的4个字节,且数据位是反的。还是第一次遇到。非常感谢。解决了。
21-11-29 08:28
和我前几天调试的电表一样,
高低字互换一下就OK了
21-11-29 17:30

上一页 上一页

工控新闻

更多新闻资讯