西門子plc間接尋址方法,本文提到的主要是西門子s7-300plc.
1.區(qū)域內(nèi)間接尋址
指針的最高位(第31位)x為0時為區(qū)域內(nèi)的間接尋址,此時區(qū)域標示號rrr也為0,地址指針的格式與存儲器間接尋址的相同。下面是區(qū)域內(nèi)間接尋址的例子:
l p#5.0 //將間接尋址的指針裝入累加器1
lar1 //將累加器1的內(nèi)容送ar1
a m[ar1, p#2.3] //ar1中的p#5.0加偏移量p#2.3,對m7.3進行操作
= q[ar1, p#0.2] //邏輯運算的結果送q5.2,p#5.0+p#0.2=p#5.2
l mw[ar1, p#19.0] //將mw24裝入累加器1
方括號內(nèi)為操作數(shù)的地址,它等于ar1中的地址值p#5.0加上逗號后面的地址偏移量,例如第3條指令中操作數(shù)的地址為p#5.0+p#2.3=p#7.3,即操作數(shù)為m7.3。
2.區(qū)域之間的間接尋址
指針的最高位(第31位)x = 1時為區(qū)域間的間接尋址,下面是區(qū)域間的間接尋址的例子:
l p#m 6.0 //將m6.0的雙字地址裝入累加器1
lar1 //將累加器1的內(nèi)容送到ar1
l w [ar1,p#20.0] //將mw26的內(nèi)容傳送到累加器1
p#m6.0對應的二進制數(shù)為2#1000 0011 0000 0000 0000 0000 0011 0000。因為地址指針p#m6.0已經(jīng)包含有區(qū)域信息(rrr=2#011表示m區(qū)),第3條指令“l(fā) w[ar1, p#50.0]”沒有必要再使用地址標識符m。
用地址指針讀寫字、字節(jié)或雙字時,指針中小數(shù)點右邊的位編號必須為0,否則將會出錯。