plC間接指令怎么使用?
先定義一個(gè)指向訪問存儲區(qū)第一個(gè)地址的指針,然后根據(jù)第一個(gè)地址加上一個(gè)偏移量,即基址索引,比如:
LP#6.0
LAR1
上午[AR1,第1.2頁]
Q[AR1,第0.2頁]
LM[AR1,第14.0頁]
什么是PLC直接尋址和間接尋址?
直接尋址:操作數(shù)存儲在數(shù)據(jù)的地址。基本邏輯指令都是直接尋址的。你說的間接尋址應(yīng)該是索引尋址吧?指針:指針其實(shí)就是程序轉(zhuǎn)移時(shí)被轉(zhuǎn)移入口地址的標(biāo)簽,一個(gè)是P標(biāo)簽,用于跳轉(zhuǎn)和子程序調(diào)用,一個(gè)是I標(biāo)簽,叫做中斷指針。專用于中斷服務(wù)子程序的入口地址。
plc字節(jié)位尋址方式有啥?
西門子PLC有兩種尋址,直接尋址和間接尋址。間接尋址就是所謂的指針尋址。有四種情況,即存儲器間接尋址、寄存器間接尋址、任意指針間接尋址和p指針間接尋址。因此可以認(rèn)為PLC有五種尋址直接尋址、存儲器間接尋址(指針尋址)、寄存器間接尋址(指針尋址)、任意指針間接尋址和p指針間接尋址。
存儲器間接尋址:
16位指針,只表示存儲地址的起始字節(jié)(0-16位)。
32位指針,表示存儲地址的起始字節(jié)(3-18位)和位地址(0-2位),19-31位未定義。
寄存器間接尋址(AR1,AR2):
寄存器間接尋址的區(qū)域中的32位指針與存儲器中32位指針的定義完全相同。
寄存器間接尋址的區(qū)域穿越32位指針,第31位1和第26位2524位組合為地址標(biāo)識符,其余位與存儲器中32位指針的定義一致。
所以判斷是內(nèi)部還是交叉指針,看第31位,0內(nèi)部,1交叉,內(nèi)部pangt262524位沒有意義,交叉262524位有意義。
P#指針
最高字節(jié)的0-18位符合32位內(nèi)存指針的定義,23-19位為0,31-24位為數(shù)據(jù)區(qū),最低2位為DB塊號或0。
任何指針
最高字的6個(gè)字節(jié)與P#指針的定義一致,接下來的N-7n-8個(gè)字節(jié)代表數(shù)據(jù)長度,N-9個(gè)字節(jié)代表數(shù)據(jù)類型,N-10個(gè)字節(jié)(最低字節(jié))為10H(屬于保留字節(jié))。
注意:
內(nèi)存間接尋址和寄存器間接尋址也是一種指針尋址,但通常很少有人直接明確地提到指針尋址,導(dǎo)致人們誤以為指針尋址只有ANY指針和P指針。
這里只討論四種指針尋址。
