STEP7——POINTER指针详解

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

参数类型POINTER的格式

下图给出了存储在每个字节中的数据类型。

参数类型POINTER存储下列信息:

•DB编号(或0,如果数据没有存储在DB中)

•CPU中的存储区域(下表给出了参数类型POINTER存储器区的十六进制代码)

十六进制代码存储区描述

b#16#81I输入区域

b#16#82Q输出区域

b#16#83M位存储区域

b#16#84DB数据块

b#16#85DI背景数据块

b#16#86L本地的数据(L堆栈)

b#16#87V先前的本地数据

•数据的地址(格式为字节.位)

STEP 7提供指针格式:p#memory_area byte.bit_address.(如果形式参数被声明为参数类型POINTER,只需要指出存储区域和地址。STEP 7将自动地重定输入指针的格式。) 下面的实例说明如何为以M50.0开始的数据输入参数类型POINTER:

•P#M50.0

•M50.0 (如果形式参数声明为POINTER)。

使用参数类型POINTER

指针用于指向地址。这种寻址方式的优点是可以在程序处理期间动态地修改语句的地址。

存储器间接寻址的指针

使用存储器间接寻址的程序语句由指令、地址标识符和偏移量组成(偏移量必须在方括号内给出)。

双字格式指针的实例:

区域内部和区域交叉寻址的指针

使用这些寻址方式的程序语句包含指令和下列部分:地址标识符、地址寄存器标识符、偏移量。

地址寄存器(AR1/2)和偏移量必须在方括号内一起指定。

区域内部寻址的实例

指针不包含存储器区的指示:

偏移量0.0没有影响。输出10.0由8.7 (AR1)加上偏移量1.1计算出来。结果是10.0而不是9.8,参见指针格式。

区域交叉寻址的实例

在区域交叉寻址中,存储区域在指针中指出(在实例I和Q中)。

偏移量0.0没有影响。输出10.0由8.7 (AR2)加上偏移量1.1计算出来。结果是10.0而不是9.8,参见指针格式。

相关文档
最新文档