当前位置: 主页 > PLC控制

西门子指针寻址

LP##IN1
LAR1
LW#16#0
LW[AR1,P#0.0]
==I
JZM001
T#TEMP2
OPNDB[#TEMP2]
M001:NOP0
LD[AR1,P#2.0]
LAR1
LW[AR1,P#0.0]
LW[AR1,P#2.0]
>I
JCNM002
L1
+I
TW[AR1,P#2.0]
L1
+I
SLD4
TAR1
+D
LAR1
L#IN0
TW[AR1,P#0.0]
SET
JUM003
M002:CLR
M003:SAVE
看这段程序搞不懂为什么要左移4位,最后是怎么实现存放数据的,希望专家们能帮我解答,关于寻址困扰我很长时间???

ASs='html_titleimg_p' STyle='text-align:center;'>

最佳答案

1、首先要了解、掌握32位指针格式:
AR1和AR2,每个32位。  其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。
  AR:  
  0000000000000BBBBBBBBBBBBBBBBXXX  
  这样规定,就意味着AR的取值只能是:0.0——65535.7  
  例如:当AR=00000000000000000000000000001000(b),实际上就是等于1.0。
2、 什么要左移4位?
如果一个数值1,即,00000000000000000000000000000001(b)要形成地址需要左移3位,其后为00000000000000000000000000001000(b),实际上就是等于1.0。
左移4位是为了形成偶数的地址,例如上述00000000000000000000000000000001(b),左移4位后为00000000000000000000000000010000(b),实际上就是等于2.0。
总之,掌握上述的32位指针格式就可解决你的困惑。
3、建议看看:
、见《关于S7-300S7-400指针寻址的说明与例程(更新版)》下载
htTP://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=F0215
、《详解西门子间接寻址.pdf》下载:
http://ishare.iask.sina.com.cn/f/22746895.html
http://www.gongkong365.com/bbs/job.php?action=download&aid=96

提问者对于答案的评价:
谢谢

  • 关注微信

猜你喜欢

微信公众号