LP#8.6
LAR1
AI[AR1,P#0.0]
请问AR1加偏移量后的值是否为2#00000000000000000000000010000110,
想要了解2#00000000000000000000000001000110为何加偏移量P#0.0后就变为2#00000000000000000000000010000110,这是怎么样定义的?
最佳答案
1、有关AR1和AR2寻址:
地址寄存器是专门用于寻址的一个特殊指针区域,西门子的地址寄存器共有两个:AR1和AR2,每个32位。 当使用在区域内寄存器间接寻址中时,我们知道这时的AR中的内容只是指明数值单元,因此,区域内寄存器间接寻址时,寄存器中的内容等同于上帖中提及的存储器间接寻址中的双字指针,也就是:
其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。
AR:
0000000000000BBBBBBBBBBBBBBBBXXX
这样规定,就意味着AR的取值只能是:0.0——65535.7
例如:当AR=D4(hex)=00000000000000000000000011010100(b),实际上就是等于26.4。
2、为何加偏移量P#0.0后就变为2#00000000000000000000000010000110,这是怎么样定义的?
因为
LP#8.6//取地址常数P#8.6
LAR1//将地址常数P#8.6存入AR1中。
AI[AR1,P#0.0]//方括号中,AR1中为P#8.6,加上偏移量P#0.0]后,还是P#8.6。
3、建议看看下述资料,就明白了指针寻址的功能了:
、《关于S7-300和S7-400指针寻址的说明与例程(更新版)(2008.03.04)》下载:
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=
提问者对于答案的评价:
谢谢,同时也感谢其他给予回答的人!
专家置评
已阅,最佳答案正确。