4左移3位

L   4      ∥将4装载到累加器1里
SLD   3    ∥累加器1里的值,也就是4左移3位,相当于乘以8,
T     MD20   ∥将累加器1里移动过的数值传到MD20
里,
为什么事地址P#4.0,其实以上这段程序移位就是为了让MD20里包含从第4字节开始的地址;如果没有移位程序的话,是从0.4开始,移位的作用就是排除位地址; 
..........................................................................................................
SLD   3    ∥累加器1里的值,也就是4左移3位,相当于乘以8,
这句话; 4左移3位,相当于乘以8 ,怎么理解?
................................................................................
为什么事地址P#4.0,其实以上这段程序移位就是为了让MD20里包含从第4字节开始的地址;如果没有移位程序的话,是从0.4开始,移位的作用就是排除位地址; 
这句话:是不是说明初始值是0.4

最佳答案

1、这个问题是不是在问:为什么4左移3位后形成了地址P#4.0?
如是,弄清这个问题首先要弄清双字地址指针的数据格式:
当作为双字指针时,其数据必须是这样的格式:
其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。  
  0000 0000 0000 0BBB BBBB BBBB BBBB BXXX  
例如:
  0000 0000 0000 0000 0000 0000 0000 1010 = 1.2 
2、为什么4左移3位后形成了地址P#4.0?
、双字的4为:0000 0000 0000 0000 0000 0000 0000 0100。
、为了形成地址指针,必须左移3位(相当于乘以8)后为:0000 0000 0000 0000 0000 0000 0010 0000。
、按照上述的双字地址指针的数据格式规定,其指定bit位的0-2bit为000,即为0。指定byte字节的3-18bit为000 0000 0000 0010 0,即为4。这样就形成了地址P#4.0。
3、如想全面了解间接地址指针的应用,请见:
、《关于S7-300和S7-400指针寻址的说明与例程 》下载:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=F0215
、《step7编程之地址概念详解》连接:
http://wenku.baidu.com/view/b2b4d3375a8102d276a22fd3.html

http://www.chinakong.com/rencai/disp.asp?id=1633&leibie=4
、《西门子STL间接寻址常问问题集》
http://www.ad.siemens.com.cn/download/docMessage.aspx?
ID=6175&loginID=&srno=&sendtime=

提问者对于答案的评价:
谢谢!
阿鸣老师的解答!
又解决了一个困惑!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日 下午11:58
下一篇 2020年10月30日 下午11:58

相关推荐