寻址问题 点击:618 | 回复:19



jnjn _1

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:8帖 | 223回
  • 年度积分:45
  • 历史总积分:514
  • 注册:2003年1月07日
发表于:2013-02-28 15:08:02
楼主
编译通过,但调试不正常,寻址错误不知道是什么原因,请大家看看。寻址程序调试中,*AC指针不工作,什么原因红色



秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2013-02-28 15:30:36
1楼
*AC1应该用双字指令吧!最后一句改为:MOVD  *AC1  VD10

银光人生—华

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 13597回
  • 年度积分:0
  • 历史总积分:52877
  • 注册:2007年11月23日
发表于:2013-02-28 15:36:25
2楼

楼主是不是应该直接把上面那个指令的AC1后面地址直接改为VW10;下面那个指令就可以去掉了;

jnjn _1

  • 精华:0帖
  • 求助:2帖
  • 帖子:8帖 | 223回
  • 年度积分:45
  • 历史总积分:514
  • 注册:2003年1月07日
发表于:2013-02-28 15:49:59
3楼
*AC1应该用双字指令吧!最后一句改为:MOVD  *AC1  VD10  好像也不对

jnjn _1

  • 精华:0帖
  • 求助:2帖
  • 帖子:8帖 | 223回
  • 年度积分:45
  • 历史总积分:514
  • 注册:2003年1月07日
发表于:2013-02-28 15:54:15
4楼

*AC1应该用双字指令吧!最后一句改为:MOVD  *AC1  VD10  好像也不对

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-02-28 16:51:38
5楼

正确的间接寻址应这样:第一种:用AC1:

运行时截图:

第二种间接寻址:不用AC1,用VD90

运行时:

    二种编程都是将数1048送入VW250,而间接通过AC1或VD90再将VW250的内容送入VW10

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2013-02-28 17:01:28
6楼

网络2改为:

LD     SM0.0
MOVW   +1048, VW250
MOVD   &VB250, AC1
MOVW   *AC1, VW10

 

即可。

jnjn _1

  • 精华:0帖
  • 求助:2帖
  • 帖子:8帖 | 223回
  • 年度积分:45
  • 历史总积分:514
  • 注册:2003年1月07日
发表于:2013-02-28 17:32:23
7楼
编程的意图是计算出地址号1048(1048是VW1048的地址号) ,通过指针调出VW1048的值。

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-02-28 18:31:08
8楼

回7楼:你将 M0VW  AC1, VW10  改为 M0VW  *AC1, VW10 是不对的,请见运行结果:VW10=0:

 

王者之师--lzgz00

  • 精华:0帖
  • 求助:0帖
  • 帖子:445帖 | 1223回
  • 年度积分:0
  • 历史总积分:4892
  • 注册:2008年9月02日
发表于:2013-02-28 19:24:22
9楼
指针要加*的!!!!

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-02-28 19:31:37
10楼

回8楼:你要“编程的意图是计算出地址号1048(1048是VW1048的地址号) ,通过指针调出VW1048的值。”应这样编程:

    开机的第一个扫描周期,将首址VB1000送入VD90里,再将VW1048置入数:1234,即VW1048=1234。当未按I0.0时 其 VW10=0,见下图:

  按一下I0.0,程序先将VD90+48,使指针地址变为VW1048,再通过间接寻址,将VW1048的 内容送入VW10,此时VW10=1234。见下图:

  实际编程时,应用双字VD80代替网络2中的加数“48”,即VD80实为应选的数据单元的地址与首地址VB1000之差,该VD80的内容是可外设改变的,如想将VW1075的值送入VW10,其W1075与首址之差=1075-1000=75,可以通过上位机或触摸屏将75置入VD80,当再按一下I0.0,程序就会将VW1075的值送入VW10中。

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-02-28 20:14:21
11楼

    回8楼:将6楼图改一下,也可实现你在8楼的要求:

    开机第一周期,将1048-->VW250,再将数1234送入VW1048,接着运行网络2:将VB250的内容地址(VW1048)送入AC1,再将AC1的内容为地址VW1048的内容送入VW10,使 VW10=1234,见下图:

jnjn _1

  • 精华:0帖
  • 求助:2帖
  • 帖子:8帖 | 223回
  • 年度积分:45
  • 历史总积分:514
  • 注册:2003年1月07日
发表于:2013-03-01 00:21:15
12楼

编程的意图:由输入信号的变化计算出地址号n=1000--1048nVWn的地址号)这个地址是变化的 ,通过指针寻址调出VWn的值。

     SM0.1只能首次运行赋值,运行中没有办法再寻址。

jnjn _1

  • 精华:0帖
  • 求助:2帖
  • 帖子:8帖 | 223回
  • 年度积分:45
  • 历史总积分:514
  • 注册:2003年1月07日
发表于:2013-03-01 01:17:43
13楼
引用 wyb2866255---王者之师 的回复内容: 回7楼:你将 M0VW  AC1, VW10  改为 M0VW  *AC1, VW10 是不对的,请见运行结果:VW10=0: 

同样的程序结果不一样。


 

结果;  +1048(VW250)和 +0(VW1048)


jnjn _1

  • 精华:0帖
  • 求助:2帖
  • 帖子:8帖 | 223回
  • 年度积分:45
  • 历史总积分:514
  • 注册:2003年1月07日
发表于:2013-03-01 01:22:34
14楼

应该的结果是


就对了。

jnjn _1

  • 精华:0帖
  • 求助:2帖
  • 帖子:8帖 | 223回
  • 年度积分:45
  • 历史总积分:514
  • 注册:2003年1月07日
发表于:2013-03-01 01:31:59
15楼

这个是怎么我捣鼓不出来的呀,如果是这个就对了。


阿水--王者之师

  • 精华:24帖
  • 求助:348帖
  • 帖子:1616帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2013-03-01 08:13:39
16楼
  好东东,来学习了,都是高手,农民工向你们敬礼 !      

Lgj3388

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 236回
  • 年度积分:0
  • 历史总积分:925
  • 注册:2003年8月13日
发表于:2013-03-01 09:07:45
17楼

1。建立0指针
2。偏移1084后指针指向VW1084
3。移动VW1084内容到VW10

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2013-03-01 10:03:37
18楼

引用 秦君_1 的回复内容:网络2改为:LD     SM0.0MOVW   +1048, VW250MOVD   &VB250, AC1MOVW   *AC1, VW10 即可。




还有 18喽,都对,

建议楼主多翻翻 系统手册,看看, 基础性的东西;

jnjn _1

  • 精华:0帖
  • 求助:2帖
  • 帖子:8帖 | 223回
  • 年度积分:45
  • 历史总积分:514
  • 注册:2003年1月07日
发表于:2013-03-02 00:13:53
19楼
O(∩_∩)O谢谢,各位的指教

热门招聘
相关主题

官方公众号

智造工程师