分享

寄存器间接寻址

 丁东方 2014-09-17
在S7-300PLC中有两个专门存放地址的寄存器AR1和AR2通过这两个寄存器进行寻址的方式我们称之为寄存器间接寻址

  1、内部区域寄存器间接寻址
  1) 存储格式
  交叉区域寄存器间接寻址在地址寄存器中的排列可分为三个区域,分别是存储位信息的区域,存储字节、字、双字信息区域,和无效区域。
附件 800.jpg
  2)寻址格式
  地址存储器标示符[AR1/AR2,P#X]
  在内部区域寄存器间接寻址中,地址存储器标示符表示的是要寻址的所在的区域,如M区、I区、Q区,AR1/AR2表示指针自身所占用的存储空间是AR1(地址寄存器1)或者AR2(地址寄存器2),P#X表示偏移量,表示在地址寄存器中地址的基础上进行偏移的幅度。

  3)程序示例
  例1
  LAR1  P#2.0                       //装载地址2.0到AR1
  L     MW [AR1,P#0.0]              //装载MW2
  L     MW [AR1,P#2.0]              //装载MW4
  +I                                //MW2+MW4
  T     MW [AR1,P#4.0]              //将加法结果存放到MW6

  2 、交叉区域寄存器间接寻址
  1)   存储格式
  交叉区域寄存器间接寻址在地址寄存器中的排列可分为五个区域,分别是存储位信息的区域,存储字节、字、双字信息区域,存储区域地址标示符信息区域,交叉区域指针标识位和无效区域。
附件 801.jpg
  此处我们需要将区域地址标识位和相对应的地址信息向大家一一列举如图2-2所示
附件 802.jpg
  2)寻址格式
  访问宽度[AR1/AR2,P#X]
  在内部区域寄存器间接寻址中,访问宽度表示寻址数据的长度W表示长度是字D表示长度是双字,AR1/AR2表示指针自身所占用的存储空间是AR1(地址寄存器1)或者AR2(地址寄存器 2),P#X表示偏移量,表示在地址寄存器中地址的基础上进行偏移的幅度。此处需要注意由于地址寄存器中已经包含区域标识符信息所以在寻址时只需要访问宽度信息,不需要区域标识符信息,具体使用方法参照下面例子。

  3)程序示例
  例1
     LAR1  P#M 12.0                   //装载M12.0到地址寄存器1
     L     W [AR1,P#0.0]               //装载MW12
     L     W [AR1,P#2.0]               //装载MW14
     +I//MW12+MW14
     T     W [AR1,P#4.0]               //将结果存放到

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多