初学求教:关于FX2N的四则运算 点击:604 | 回复:4



PROFIBUS-DP

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:74帖 | 306回
  • 年度积分:0
  • 历史总积分:637
  • 注册:2003年8月29日
发表于:2005-12-04 08:51:00
楼主
三菱FX2N
程序中写
LD X1
MUL D2 K2000 D4  将D2乘以2000后存到D4
ADD D4 K500 D6   将D4加500后存到D6
END
调试时当D4结果超过数据范围(32767)时,后一个D4显示数值和和前一个不一样
如何解决?
D数据位可存32位,如何使用,看了说明书不大明白,请帮忙写个示例程序
我是初学者,请大家帮忙.



指点江山

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 124回
  • 年度积分:0
  • 历史总积分:308
  • 注册:2005年7月23日
发表于:2005-12-05 09:06:00
1楼
调试时当D4结果超过数据范围(32767)时,后一个D4显示数值和和前一个不一样的解决方法:1)利用32位指令  [color=#FF0000]D[/color]就是所有指令后面或前面都多加“D”这个字母就好了。
LD X1
[color=#FF0000]D[/color]MUL D2 K2000 D4  将D2乘以2000后存到D4
[color=#FF0000]D[/color] ADDD4 K500 D6   将D4加500后存到D6
END

其实所谓的32位仍是由2个16位数据寄存器D组成的,加D之后的作用并不是将原来的单个寄存器扩到32位,例如:D4是16位的,指令加D后,D4仍是16位,只不过加D的作用是:将D4,D5的两个连续单元合并起来使用,D4作为低16位,D5作为高16位,来表示32位数字,这样表示范围就扩大了,可以表示(2,147,483,648)高达2亿。
如果还不会的话,可以打电话给我:0531-86560959转8013
或者在【三菱触摸屏平台】上提出来

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-12-05 09:21:00
2楼
中国外贸通网希望和大家认识. 
可免费注册发布供求信息和产品信息让更多的生意人找到你哦!!



[URL=http://china.53trade.com/?llp1205]http://china.53trade.com/?llp1205[/URL]

沉睡

  • 精华:1帖
  • 求助:0帖
  • 帖子:23帖 | 82回
  • 年度积分:0
  • 历史总积分:208
  • 注册:2004年11月22日
发表于:2005-12-05 16:00:00
3楼
指令格式是把D加前边把,不是后边
这个指令
LD X1
MULD D2 K2000 D4  将D2乘以2000后存到D4
ADDD D4 K500 D6   将D4加500后存到D6
END
应该是
LD X1
DMUL D2 K2000 D4  将D2乘以2000后存到D4
DADD D4 K500 D6   将D4加500后存到D6
END

PROFIBUS-DP

  • 精华:0帖
  • 求助:0帖
  • 帖子:74帖 | 306回
  • 年度积分:0
  • 历史总积分:637
  • 注册:2003年8月29日
发表于:2005-12-05 16:17:00
4楼
是应该加到前边

热门招聘
相关主题

官方公众号

智造工程师