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

主题:三菱FX2N编程中16位数据地址直接用在32位运算中出错请教!!!

点击:4250 回复:8

我在三菱FX2N编程中16位数据地址直接用在32位运算中,数据没有问题!!!如
附件
第一行和第二行的D0的数据都是100,但是我把相同的程序写入另外一个型号相同的PLC中时,
第一行的D0数据是100,但是第二行就不是100了,是一个相当大的数据,忘记看是不是32位的100的所有位取反了。
请问这是怎么回事呢?是不是有什么特殊继电器要设置呀!!!
16位用在32位运算中是不是要进行转换呢,我知道Q系是要的,但是在第一个PLC中直接用是可以的,到第二个PLC就不行了,在第二个PLC中使用浮点数运算是可以的。
请教高手指点了!!!!
11-10-24 23:50
转换成浮点,然后用浮点进行计算不是也挺简单吗
11-10-25 07:31
你第二个PLC中D1里面有数据吗?
11-10-25 09:57
呵呵;你没有好好的看DMUL指令的含义;
DMUL  D0  K600  D2执行后结果是存到D2 D3  D4 D5里面的;
也就是说D4  D5已经被占用了,而你下一条又用到;
11-10-25 10:36
该用户被锁定!
11-10-25 12:45
你第二个PLC中D1里面的数据不是零
11-10-25 15:59
重新看了下手册,呵呵,我说错了,不好意思
附件
最后修改:2011/10/25 16:46:01
11-10-25 16:42
后来发现原因了,我新买来的PLC不是全新的,最起码里边下过程序,D200后的地址位中有保存的原始数据。我清了下PLC内存就OK了!!!谢谢各位的指教
11-11-10 10:12
3394的朋友,首先谢谢你!我看到你7楼的帖子,我现在是乘法,我的乘数和被乘数都是16位的数据,我的结果有可能是超出16位的范围,所以我用了32位运算。但是我计算结果不可能到64位。这样地址位就会浪费,有什么好的方法合理解决这个问题吗?
还有另外一个问题,比如说我D1里数据是3000,D2里数据是5000,那我要用DMUL指令来实现运算D1乘D2的话,但是实际的是[D1,D2]乘D2是吗?那样就会错误是吧
11-11-10 10:30

工控新闻

更多新闻资讯