关于西门子300 中AR2的使用

关于西门子300 中AR2的使用

西门子300中,地址寄存器主要有两个:AR1与AR2。这两个地址寄存器主要是在西门子进行指针寻址的时候,作为地址寄存器使用,存放变量地址。

具体使用

  • 西门子300的指针寻址除了一般的16位指针进行寻址外,还可以使用pointer和any指针进行寻址操作。特别是在进行将指针以接口的形式在FC和FB上进行寻址的时候。
  • 在一般的使用中,AR2可以当做AR1使用,作为普通的地址寄存器使用
  • AR2在FB的多重背景的使用
    • 此处,需着重说明。这是AR1与AR2的区别。在FB的多重背景编程的时候,AR2是存放多重背景在当前DB块中的偏移地址。但是该偏移地址并不是可以进行使用的。在进行监控的时候可以发现,该地址是一个DIX的地址。说明该地址是基于背景DB块的一个地址。如果在使用多重背景的时候,需要取用该多重背景下,当前DB块的实际数据,便需要进行地址的偏移。具体使用如下:
      • L P##IN1 // 将接口IN1的指针存放于ACCU1中
      • LAR1 // 将ACCU1中的数据存放于AR1中
      • TAR2 // 将AR2中的数据存放于ACCU1中
      • L 16#FFFFFF // 将十六进制FFFFFF存放于ACCU1中
      • AD // 留取后面的偏移量,屏蔽前面的DIX区域
      • +AR1 // 将偏移量加到AR1中,得到最终的数据指针

至此,就可以用AR1的指针值进行运算了

你可能感兴趣的:(工作)