plc间接寻址方式

plc间接寻址方式,第1张

  plc间接寻址的类型

  间接寻址可分为两大类型:存储器间接寻址和寄存器间接寻址。如图1所示。

  

  1、存储器间接寻址

  存储器间接寻址的地址给定格式是:地址标识符+指针。指针所指示存储单元中所包含的数值,就是地址的确切数值单元。

  2、寄存器间接寻址

  寄存器间接寻址为通过 CPU的地址寄存器AR1,AR2进行寻址。AR1,AR2 均为 32 位寄存器,寄存器间接寻址只使用 32 位指针。

  PLC的间接寻址方式

  间接寻址是指使用地址指针来存取存储器中的数据。使用前,首先将数据所在单元的内存地址放入地址指针寄存器中,然后根据此地址存取数据。S7-200CPU中允许使用指针进行间接寻址的元器件有I、Q、V、M、S、T、C。

  建立内存地址的指针为双字长度(32位),故可以使用V、L、AC作为地址指针。必须采用双字传送指令(MOVD)将内存的某个地址移入到指针当中,以生成地址指针。指令中的 *** 作数(内存地址)必须使用“&”符号表示内存某一位置的地址(长度为32位)。例如:

  MOVD&VB200,AC1

  表示将VB200在存储器的32位物理地址值送AC1。VB200是直接地址编号,&为取地址符号。将本指令中&VB200改为&VW200或VD200,指令功能不变。

  在使用指针存取数据的指令中, *** 作数前加有*时表示该 *** 作数为地址指针。例如:

  MOVW*AC1.AC0

  表示将AC1作为内存地址指针,把以AC1中内容为起始地址的内存单元的16位数据送到累加器AC0中。

  西门子PLC间接寻址方法

  1、区域内间接寻址

  指针的最高位(第31位)x为0时为区域内的间接寻址,此时区域标示号rrr也为0,地址指针的格式与存储器间接寻址的相同。下面是区域内间接寻址的例子:

  

  方括号内为 *** 作数的地址,它等于AR1中的地址值P#5.0加上逗号后面的地址偏移量,例如第3条指令中 *** 作数的地址为P#5.0+P#2.3=P#7.3,即 *** 作数为M7.3。

  2、区域之间的间接寻址

  指针的最高位(第31位)x = 1时为区域间的间接寻址,下面是区域间的间接寻址的例子:

  

  P#M6.0对应的二进制数为2#1000 0011 0000 0000 0000 0000 0011 0000。因为地址指针P#M6.0已经包含有区域信息(rrr=2#011表示M区),第3条指令“L W[AR1, P#50.0]”没有必要再使用地址标识符M。

  用地址指针读写字、字节或双字时,指针中小数点右边的位编号必须为0,否则将会出错。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2606602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-09
下一篇 2022-08-09

发表评论

登录后才能评论

评论列表(0条)

保存