通俗解释S7-200指针寻址
2/8
S7-200的指针寻址
对指令的操作数的指定方式,我将其理解为“寻址”。
下面将以我个人的理解对西门子S7-200的寻址方式进行描述,如有不当之处,还请广大读者指正。
们需要访问的地址,这样我们可以比较方便的使用在这一存储区的某一具体地址,使程序的灵活性有所增加。
修改指针的方法大致的可以概括为如下几种:
①使用加法或减法指令,对指针进行指定常数作为偏移量的修改指针。
②使用加“1”或减“1”指令,对指针进行1个单位(字节)的偏移。
4. 修改批指针
下面将以实际情况为例来说明修改批指针的方法:
例1:
网络1:
LD
MOVD &VB0, VD10
MOVD *VD10, VD40
+D 4, VD10
网络2:
LD
4/8
MOVD *VD10, VD44
译为:在VD10建立指针,指针指向以VB0为首的地址,读取在指针VD10所指向的首地址开始的一个双字(即以VB0开始的一个双字,很明显就是VD0),所以,读取指针时将VD0放到VD40。然后对指针进行修改,对其指定4个单位的偏移量,即指针此时指向的首地址为VB4。
在下一网络中又以双字的形式读取指针。所以,此时读取指针是将以VB4为首的一个双字传送至VD44(即VD4传送至VD44)。
例2:
网络1:
LD
MOVD &VB0, VD10
MOVB *VD10, MB0
INCD VD10
网络2:
LD
MOVB *VD10, MB1
译为:在VD10建立指针,指针指向以VB0为首的地址,读取在指针VD10所指向的首地址开始的一个字节(即以VB0开始的一个字节,很明显就是VB0),所以,读取指针时将VB0放到MB0。然后对指针进行修改,对其进行一个单位(字节)的偏移,即指针此时指向的首地址为VB1。
在下一网络中又以字节的形式读取指针。所以,此时读取指针是将以VB1为首的一个字节传送至MB1(即VB1传送至MB1)。
在程序中,如果希望以连续的形式去间接访问地址(即:读取VB0后希望下一次读取的是VB1、读取VW0后希望下一次读取的是VW2、读取VD0后希望下一次读取的是VD4),修改指针时,需要注意以下问题:
5/8
①读取下一个字节:
网络1:
LD
MOVD &VB0, VD10
MOVB *VD10, VB100
+D 1, VD10
网络2:
LD
MOVB *VD10, VB100
第一次读指针时,读取的是VB0。
第二次读指针时,读取的是VB1。
②读取下一个字:
网络1:
LD
MOVD &VB0, VD10
MOVW *VD10, VW100
+D 2, VD10
网络2:
LD
MOVW *VD10, VW100
第一次读指针时,读取的是VW0。
第二次读指针时,
通俗解释S7-200指针寻址 来自淘豆网m.daumloan.com转载请标明出处.