求助这段程序怎么理解

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午11:49
下一篇 2021年7月4日 下午11:49

相关推荐

发表回复

登录后才能评论