【摘要】:只能用V存储器、L存储器或者累加器寄存器作为指针。指令的输入操作数应该以“&”符号开头来表明是存储区的地址,而不是将其内容移动到指令的输出操作数(指针)中。当指令中的操作数是指针时,应该在操作数前面加上“”号。其含义是将VB200的地址作为指针存入AC1中。其含义是将AC1指向的字送到AC0中去。如图7-21所示,输入AC1指定AC1是一个指针,MOVW指令决定了指针指向的是一个字长的数据。图7-21 指针的使用梯形图程序如图7-22所示。
间接寻址是指用指针来访问存储区数据。指针以双字的形式存储其他存储区的地址。只能用V存储器、L存储器或者累加器寄存器(AC1、AC2、AC3)作为指针。要建立一个指针,必须以双字的形式,将需要间接寻址的存储器地址移动到指针中。指针也可以为子程序传递参数。
S7-200允许指针访问以下存储区:I、Q、V、M、S、AI、AQ、SM、T(仅限于当前值)和C(仅限于当前值)。无法用间接寻址的方式访问位地址,也不能访问HC或者L存储区。
要使用间接寻址,应该用“&”符号加上要访问的存储区地址来建立一个指针。指令的输入操作数应该以“&”符号开头来表明是存储区的地址,而不是将其内容移动到指令的输出操作数(指针)中。
当指令中的操作数是指针时,应该在操作数前面加上“∗”号。如图7-21所示,输入∗AC1指定AC1是一个指针,MOVW指令决定了指针指向的是一个字长的数据。在本例中,存储在VB200和VB201中。
例如:MOVD&VB200,AC1。其含义是将VB200的地址(VB200的起始地址)作为指针存入AC1中。MOVW∗AC1,AC0。其含义是将AC1指向的字送到AC0中去。
如图7-21所示,输入∗AC1指定AC1是一个指针,MOVW指令决定了指针指向的是一个字长的数据。在本例中,存储在VB200和VB201中。
【例7-4】将非线性的表格存放在VW0开始的100字中,表格偏移量(表格中字的序号,第一个字序号为0)在VD200中,用间隔寻址将表格中相对于偏移量的数据传送到VW210中去。(www.xing528.com)
图7-21 指针的使用
【解】
梯形图程序如图7-22所示。
图7-22 梯形图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。