S7-300/400存儲器間接尋址和寄存器間接尋址
發(fā)布于2022-12-21 11:47
54
2
標(biāo)簽:S7
S7-300/400的直接尋址方法與S7-200相同。間接尋址方式有“存儲器間接尋址”與"寄存器間接尋址"兩種。由于S7-300/400具有專用的指針寄存器AR1、AR2,因此,間接尋址建立“地址指針”的方法與指令的表示方法、尋址的范圍等均與S7-200 PLC有較大的區(qū)別,其使用更方便,尋址范圍也更大。
①存儲器間接尋址
S7-300/400與S7-200 PLC兩者的存儲器間接尋址方式相比,在實(shí)際使用中只有兩方面明顯的區(qū)別。
a.在S7-300/400中,間接尋址不需要建立指針的過程,可以直接在尋址對象的前面加"【】"標(biāo)記,表示該尋址對象為間接尋址。
b.間接尋址可以用于二進(jìn)制位地址。
【例3-8】通過局部變量LD10,將輸入122.2讀入,與10.0進(jìn)行"與"運(yùn)算,結(jié)果輸出到Q0.1的程序如下:
②寄存器間接尋址
S7-300/400的寄存器間接尋址是一種利用指針寄存器進(jìn)行偏移的間接尋址方式,格式為【AR1,m】或【AR2,m】,間接尋址所指定的存儲器地址為指針寄存器AR1或AR2的內(nèi)容與m之和。
指針寄存器 AR1或 AR2為雙字長寄存器,可以同時存儲地址、字節(jié)、位等信息。因此,尋址不僅可以在存儲器自身的區(qū)域內(nèi)進(jìn)行(如內(nèi)部標(biāo)志M之間、輸入工之間等),而且可以在不同的區(qū)域內(nèi)進(jìn)行(如由內(nèi)部標(biāo)志M到輸入I等)。
寄存器各位所代表的含義如圖3-21所示。
地址位(bit31):"0"表示指針寄存器不含地址符,地址符bit24~bit26應(yīng)為0;
"1"表示指針寄存器含地址符,地址符由bit24~bit26指定。
地址符(bit24~bit26):地址位(bit31)為“1”時用于指定存儲器地址,地址的編碼如下。
000:地址P;
001:地址I;
010:地址Q;
011:地址M;
100:地址DBX;
101:地址DIX;
110:地址L;
111:地址VL。
字節(jié)編號(bit18~bit3):指定存儲器的字節(jié)地址,范圍為0~65535。
位編號(bit2~bit0):指定存儲器的位地址,范圍為0~7。
指針寄存器可以不含地址符,此時,指針寄存器只需要寫人二進(jìn)制的字節(jié)與位數(shù)據(jù),地址由邏輯運(yùn)算指令指定。
【例3-9】通過指針寄存器偏移二進(jìn)制位22.2后,將I32.3讀入,與I0.0進(jìn)行"與"運(yùn)算,結(jié)果輸出到Q0.1的程序如下:
在使用二進(jìn)制位數(shù)據(jù)時應(yīng)注意,開關(guān)量輸入/輸出的單位為字節(jié),因此,進(jìn)行指針寄存器偏移時應(yīng)利用8進(jìn)制數(shù)進(jìn)行計(jì)算。
【例3-10】通過指針寄存器偏移二進(jìn)制位數(shù)據(jù)10.5后,將121.4讀入,與10.0進(jìn)行“與”運(yùn)算,結(jié)果輸出到Q0.1的程序如下:
指針寄存器可以含地址符,此時,指針寄存器需要同時寫入地址、二進(jìn)制的字節(jié)與位數(shù)據(jù),邏輯運(yùn)算指令不再需要指定地址。
【例3-11】 將M6.0作為地址指針,將輸入IW10的內(nèi)容寫人到MW56中的程序如下: