AR1里的值为什么是300而不是2400

STL代码如下:
L  300 //累加器1装载整数300
SLD 3 //累加器1左移3位后,值为2400
LAR1 //此时查看AR1的值为300

////////////////////////////////////////////////////////////////////////
在STEP7帮助文件里LAR1 指令作用:将累加器1(ACCU1)中的内容装载到AR1里,请问:AR1里的值为什么是300而不是2400?

最佳答案

1、首先要了解地址寄存器32位的格式:
其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。  
  AR:  
  0000 0000 0000 0BBB BBBB BBBB BBBB BXXX  
  这样规定,就意味着AR的取值只能是:0.0 ——65535.7  
  例如:当AR=D4(hex)=0000 0000 0000 0000 0000 0000 1101 0100(b),实际上就是等于26.4。 
2、常数300(十六进制为12C)即=0000 0000 0000 0000 0000 0001 0010 1100(b)
左移3位后为当AR=0000 0000 0000 0000 0001 0010 0110 0000(b),实际上就是等于300.0。
3、 AR1里的值300.0。
4、详见:
、见《关于S7-300和S7-400指针寻址的说明与例程(更新版)》下载:
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

提问者对于答案的评价:
谢谢,说的很详细,非常感谢

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午5:09
下一篇 2018年12月1日 上午5:09

相关推荐