您现在的位置是:首页 > PLC技术 > PLC技术
S7 300/400存储器间接寻址
来源:艾特贸易2017-06-05
简介在存储器间接寻址指令中,给出了一个作地址指针的存储器,该存储器的内容是操作数所在存储单元的地址,地址指针用于指向某个地址。间接寻址的优点是可以在程序处理期间,通过
在存储器间接寻址指令中,给出了一个作地址指针的存储器,该存储器的内容是操作数所在存储单元的地址,地址指针用于指向某个地址。间接寻址的优点是可以在程序处理期间,通过改变指针的值动态地修改指令中的地址。存储器间接寻址可用于循环程序。
地址指针可以是字或双字,定时器(T)、计数器(C)、数据块(DB)、功能块(FB)和功能(FC)的编号范围小于65535,使用字指针就够了。
下面是定时器的存储器间接寻址的例子,用16位的MW10作地址指针。例程中MW10的值为3,T[ MW10]相当于T3。在PLCSIM中监控T3,令I0.2为1状态,可以看到T3的当前值的变化。
L 3
T MW 10
A 1 0.2
L S5T#5S
SD T[MW 10]
其他地址则要使用双字指针,如果要用双字格式的指针访问一个字、字节或双字存储器,必须保证指针的位编号为0,例如P#Q20.0。双字指针的格式如图3-51所示,位0~2为被寻址地址中位的编号(0~7),位3~18为被寻址的字节的编号(0~65535)。只有双字MD、LD、DBD和DID能作地址指针。下面是存储器间接寻址的例子:
L P#4.0
T DBD 10
L QB[DBD 10] //将QB4装入累加器1,地址在双字DBD10中
L P#4.3
T LD 4
A M[LD 4] //对存储器位M4.3作”与”运算,地址在LD4中
P#4.0的值为2#0000 0000 0000 0000 0000 0000 0010 0000。
P#4.3的值为2#0000 0000 0000 0000 0000 0000 0010 0011。
【例3-5】某表格存放在MW10开始的50个字中,表格的偏移量(表格中字的序号)在MD4中。第1个字MW10的序号为0,第2个字MW12的序号为1……在I0.0的上升沿,用间接寻址将表格中相对于偏移量的字的数值传送到MW110中去。
下面是满足要求的语句表程序,LD0是存储器间接寻址的地址指针,它的值实际上是以位为单位的整数。相邻的两个字相差16位,因此偏移量乘以16,加上表格的起始地址,得到要读取的字的地址。本例程在随书光盘的项目“第3章例程”的FC 1中。
A I 0.0
FP M 0.0
JNB m001 //不是I0.0的上升沿则跳转
L MD 4
L L#16
*D //偏移量乘以16或乘以P#2.0
L P#10.0
+D //加上表格的起始地址,得到数据的地址
T LD 0 //数据的地址送地址指针
L MW [LD 0] //表格中的数据送累加器1
T MW 110 //保存数据
m001: NOP 0
点击排行
