S7-200地址寻址

1.地址前面加个*或&,是怎么用的,什么含义?
2.AC1,AC2是什么情况下才会用到的

最佳答案

西门子S7-200视频教程下载:连接
http://www.5iplc.com.cn/html/20/t-20.html
在线观看:
http://v.youku.com/v_show/id_XMTI0MTM3NzAw.html
http://www.gongkong.tv/detail/1695.htm 
建议学习《深入浅出西门子s7-200 plc》,下载连接:
http://download.csdn.net/source/1491167
S7-200CN E-learning--编程基础,跟我学:
http://www.ad.siemens.com.cn/products/as/s7_200/elearning/basic.asp
参考链接:
《我们为什么要学习间接寻址》
http://blog.plcjs.com/blog-16037-9291.html
《直接寻址,间接寻址,存储器寻址是什么意思》
http://www.it8g.com/XiTong/201002/34911.htm
看看这个:
LD SM0.0
MOVD   &VB0, LD10   建立一个指针。
+D     VD1004, LD10    指针增加的字节数。
MOVB   *LD10, VB1900   把指针里面的起始数据增加到VB1900开始的地址中。

应该改成这样才对
LD SM0.0
MOVD   &VB0, AC0
+D     VD1004, AC0
MOVB   *AC0, VB1900

如果VB200=12,执行MOVB &VB200,AC1,MOVB *AC1 , AC0
后AC0的内容是什么?

答:AC0=12。问题不大。

从这个简单的问题上可以看出来没有什么区别,其实很大的分支的。你要知道指针地址和使用指针就有点区别了。

   MOVB &VB200,AC1
      MOVB *AC1 , AC0
 这两条指令的作用应该是等同于:
   MOVB VB200,AC0

也可以用MOVD  $VB200,AC0。但是如果用MOVD  VB200,AC0这个就是错误。另外MOVD   VD200,AC0这个是正确的。
参考资料:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_id=90972&cid=1028

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

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月5日
下一篇 2018年12月5日

相关推荐