pointer我看《S7-300和S7-400寻址》这个文档有一句这么说:POINTER是一种用于传递指针的形参数据类型,长度为6个字节,
L P#M20.0
LAR1
这个应该如何理解的,我这么想的既然是指针是6字节,是怎么能传个32位的AR1的?
还有就是L P#M20.0这个指令取到的830000a0这个地址一般叫做什么地址?(我知道的地址有绝对指针如上面的M20.0,符号地址)
图片说明:
最佳答案
1、怎么能传个32位的AR1的?
L P#M20.0 //把M20.0这个指针存入ACC1,此时ACC1的内容=830000a0(hex)=M20.0
LAR1//存入AR1中。
830000a0(hex)为8个十六进制数,即4个字节=双字=32位。
2、830000a0这个地址一般叫做什么地址?
这是寄存器区域内间接寻址。格式为:
、1000 0YYY 0000 0BBB BBBB BBBB BBBB B*,其中:
1000固定为8表示寄存器区域寻找;
、YYY:即第24、25、26位表示取值的范围,M(位存储区)为 011 ,故为3。例如:
当是对P区域寻址时,AR=800*xx
当是对I区域寻址时,AR=810*xx
当是对Q区域寻址时,AR=820*xx;
、BBB BBBB BBBB BBBB B :3-18bit指定byte字节。本例子中为a0=1100 0000,即20.0;
、*:其0-2bit,指定bit位..。
3、看看下述文档就明白了:
、见《详解西门子间接寻址.pdf》下载:
http://ishare.iask.sina.com.cn/f/3022080.html
、见《关于S7-300和S7-400指针寻址的说明与例程(更新版)》下载:
http://www2.ad.siemens.com.cn/Download/Upload/AS/faq/F0215.pdf
提问者对于答案的评价:
感谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc247358.html