STEP7——POINTER指针详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,参见指针格式。