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