怎样理解间接寻址

想学习间接寻址,老是似懂非懂,编了一段短程序.不知有哪些错误?应该怎样才能达到目的?(程序后面是我的思路.)

 Network 1 
 LD     SM0.0
 MOVB   0, VB0            给VB0-VB4赋值。
 MOVB   1, VB1
 MOVB   2, VB2
 MOVB   3, VB3
 MOVB   4, VB4
 Network 2 
 LD     SM0.0
 MOVD   &VB0, LD10   将起始地址装载到指针中
 Network 3 
 LD     SM0.5         每隔一秒指针+1,同时将指
 EU                              针所指向的值送到VB100
 +D     1, LD10           中去。
 MOVB   *LD10, VB100
 我想得到的结果是:每隔一秒VB100就显示0,1,2···4。(实际运行不能达到目的)。
 

最佳答案

问题在网络2,不应该用SM0.0
   LD      SM0.1
   MOVD   &VB0,VD10
   局部变量虽然可以做指针,但这样用不行,因为局部变量只在它的POU内有效,到下一个周期,它的值又是不确定的了。
  累加器AC1_AC3和局部变量也是一样的。
 Network 2 
 LD     SM0.1
 MOVD   &VB0, VD10   
 Network 3 
 LD     SM0.5         
 EU                             
 MOVB   *VD10, VB100
 +D     1, VD10

提问者对于答案的评价:
OK

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354337.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午1:52
下一篇 2021年7月5日 上午1:52

相关推荐

发表回复

登录后才能评论