L DB10.DBW210
L 4
*I
T MD120
SLD 3
LAR1
L DB30.DBD30
L DB31.DBD30
+D
L 2
/D
OPN DB40
T DBD[AR1,P#300.0]
图片说明:
钻石用户推荐最佳答案
1、要读懂这段程序所需的知识点,是需要清楚有关指针间接寻址的方法。
2、首先要掌握指针+AR1与+AR2的数据格式:
地址寄存器是专门用于寻址的一个特殊指针区域,西门子的地址寄存器共有两个:AR1和AR2,每个32位。
、AR的数据格式1:
0000 0000 0000 0BBB BBBB BBBB BBBB BXXX
其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。这样规定,就意味着AR的取值只能是:0.0 ——65535.7
例如:当AR=D4(hex)=0000 0000 0000 0000 0000 0000 1101 0100(b),实际上就是等于26.4。
、AR的数据格式2:
AR:
1000 0YYY 0000 0BBB BBBB BBBB BBBB BXXX
比较两种格式的不同,我们发现,这里的第31bit被固定为1,同时,第24、25、26位有了可以取值的范围。聪明的你,肯定可以联想到,这是用于指定存储区域的。对,bit24-26的取值确定了要寻址的区域,它的取值是这样定义的:
区域标识符
26、25、24位
P(外部输入输出)
000
I(输入映像区)
001
.......。
在此不一一赘述,详细的定义见下述资料。
2、关于程序:
L DB10.DBW210
L 4
*I
T MD120//将 DB10.DBW210中的内容乘以4的结果送入MD120中
SLD 3//MD120中数据左移3位,其目的就是要形成上述的AR的数据格式1:
0000 0000 0000 0BBB BBBB BBBB BBBB BXXX
LAR1 //将形成的数据保存到指针AR1中。
其他指令见下述资料。
3、要想全面掌握指针寻址的知识点,建议系统看看下述资料,读后再遇到指针寻址的问题就不求人了:
、《step7编程之地址概念详解》连接:
http://wenku.baidu.com/view/b2b4d3375a8102d276a22fd3.html
或
http://www.chinakong.com/rencai/disp.asp?id=1633&leibie=4
、《关于S7-300和S7-400指针寻址的说明与例程(更新版)》下载:
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=F0215
、《西门子STL间接寻址常问问题集》
http://www.ad.siemens.com.cn/download/docMessage.aspx?
ID=6175&loginID=&srno=&sendtime=
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc348670.html