P#指针间接寻址

 P#中的P是Pointer,是个32位的直接指针。所谓的直接,是指P#中的#后面所跟的数值或者存储单元,是P直接给定的。这样P#XXX这种指针,就可以被用来在指令寻址中,作为一个“常数”来对待,这个“常数”可以包含或不包含存储区域。例如: 
  ● L P#Q1.0 //把Q1.0这个指针存入ACC1,此时ACC1的内容=82000008(hex)=Q1.0 
  ★ L P#1.0 //把1.0这个指针存入ACC1,此时ACC1的内容=00000008(hex)=1.0 
   ● L P#M100.0 //把M100.0这个指针存入ACC1,此时ACC1的内容=83000320(hex)=M100.0 
         L P#1.0,此时ACCU1的内容00000008我还能理解,但是L P#Q1.0怎么就成了82000008了?还有L P#M100.0时ACCU1的内容咋就成了83000320了?按照上面的推理的话那么L P#100.0此时ACCU1中的内容为00000320了?请问L  P#100.2时候,ACCU1中的内容又该是多少?   
我是个新手,请各位大侠指点一二,小弟不胜感激。
  

最佳答案

1、如果我们把这样的AR内容,用HEX表示的话,那么就有:  
  当是对P区域寻址时,AR=800xxxxx
  当是对I区域寻址时,AR=810xxxxx
  当是对Q区域寻址时,AR=820xxxxx
  当是对M区域寻址时,AR=830xxxxx
  当是对DB区域寻址时,AR=840xxxxx
  当是对DI区域寻址时,AR=850xxxxx
  当是对L区域寻址时,AR=870xxxxx
2、你已有了感性认识,看看下述资料就彻底明白了:
、《关于S7-300S7-400指针寻址的说明与例程(更新版)》下载:
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=F0215
、《step7编程之地址概念详解》连接:
http://ishare.iask.sina.com.cn/f/22746895.html
http://www.gongkong365.com/bbs/job.php?action=download&aid=96
、《西门子STL间接寻址常问问题集》
http://www.ad.siemens.com.cn/download/docMessage.aspx?
ID=6175&loginID=&srno=&sendtime=

提问者对于答案的评价:

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

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

相关推荐