您现在的位置是:首页 > PLC技术 > PLC技术

S7-200系列PLC间接寻址方式

来源:艾特贸易2017-06-05

简介间接寻址方式是指数据存放在存储器或寄存器中,在指令中只出现所需数据所在单元的内存地址的地址。存储单元地址的地址又称为地址指针。这种间接寻址方式与计算机的间接寻址方

    间接寻址方式是指数据存放在存储器或寄存器中,在指令中只出现所需数据所在单元的内存地址的地址。存储单元地址的地址又称为地址指针。这种间接寻址方式与计算机的间接寻址方式相同。间接寻址在处理内存连续地址中的数据时非常方便,而且可以缩短程序所生成的代码的长度,使编程更加灵活。    可以用指针进行间接寻址的存储区有:输入继电器I、输出继电器Q、通用辅助继电器M、变量存储器V、顺序控制继电器S、定时器T、计数器C。其中TC仅仅是当前值可以进行间接寻址。    用间接寻址方式存取数据需要做的工作有3种:建立指针、间接存取和修改指针。使用方法与C语言中的指针应用基本相同。    (1)建立指针。对存储器的某一地址进行间接寻址时,必须首先为该地址建立指针。指针为双字长,是所要访问的存储单元的32位物理地址。可用来作为指针的存储区有:变量存储器(V)、局部变量存储器(L)和累加器(AC)    建立指针必须用双字传送指令( MOVD),将存储器所要访问单元的地址装入,用来作为指针的存储器单元或寄存器,装入的是地址而不是数据本身,格式如下:    例:    MOVD    &VB200VD302    MOVD    &MB10AC2    MOVD    &C2LD14    &”为地址符号,与单元编号组合表示所对应单元的32位物理地址,VB200只是一个直接地址编号,并不是它的物理地址。    指令中的第二个地址数据长度必须是双字长,如VDLDAC    指令中的&VB200如果改为&VW200&VD200效果完全相同。    (2)间接存取。指令中在操作数的前面加“*”表示该操作数为一个指针。    下面两条指令是建立指针和间接存取的应用方法:    MOVD    &VB200ACO    MOVW    *AC0AC1
    若存储区的地址及单元中所存的数据如上图所示,执行过程如下:    MOVD    &VB200ACO    AC0
    MOVW    *AC0
AC1    AC1
   
第一条指令把VB200的地址装入AC0,建立地址指针;第二条指令中的*AC0表示AC0MOVW指令确定的一个字长的存储单元的指针,指令的执行是把指针所指的一个字长的数据送到累加器AC1中。    (3)修改指针。处理连续存储数据时,可以通过修改指针很容易地存取其他紧挨着的数据。简单的数学运算指令,如加法、减法、自增和自减等指令可以用来修改指针。    下面的两条指令是修改指针的用法:    INCD    AC0    INCD    AC0    MOVW    *AC0AC1    执行情况如下:    INCD    AC0    INCD    AC0
    AC0
中的内容
    MOVW    *AC0
AC1    AC1中的内容
   
前两条指令使AC0中的内容,即指针增加两个单位形成下一个数据的地址(VW202的起始字节地址),指向下一个字9087;第三条指令中的*AC0表示AC0MOVW指令确定的新字存储单元的指针,指令的执行是把指针所指的一个字长的数据(9087)送到累加器AC1中。    根据所存取的数据长度正确调整指针:    当存取字节时,指针调整单位为1    当存取一个字、定时器或计数器的当前值时,指针调整单位为2    当存取双字时,指针调整单位为4