在UN 200中,通過地址訪問數據,地址是訪問數據的依據,訪問數據的過程稱爲“尋址”。幾乎所有的指令和(hé)功能(néng)都與各種形式的尋址有關,S7-200有兩種主要的尋址方式——直接尋址和(hé)間接尋址。
了(le)解尋址方式之前先需要知(zhī)道(dào)S7-200PLC中有哪些(xiē)存儲器,在UN-200系列PLC内部存儲區(qū)按功能(néng)可區(qū)分爲:過程映像輸入寄存器(I)、過程映像輸出寄存器(Q)、位存儲區(qū)(M)、特殊功能(néng)寄存器(SM)、變量存儲區(qū)(V)、局部存儲區(qū)(L)、定時(shí)器存儲區(qū)(T)、計(jì)數器存儲區(qū)(C)、高(gāo)速計(jì)數器(HC)、累計(jì)器(AC)、模拟量輸入寄存器(AI)、模拟量輸出寄存器(AQ)、順序控制繼電器(S)。以上(shàng)各存儲器中I、Q、V、M、S、SM、L存儲區(qū)均可以按照位、字節、字、雙字進行尋址。
直接尋址:所謂直接尋址就是明(míng)确指出存儲單元的地址,程序中指令的參數直接指明(míng)存儲器的區(qū)域名稱、長度和(hé)地址編号,然後直接進行數據交換。
例如VD100中,V代表存儲器區(qū)域名稱,D代表長度也(yě)就是32位的雙字,100是地址編号。在傳送指令中
把VB200的值傳送給VB1000就是标準的直接尋址。
間接尋址:在指令中沒有給出具體的操作(zuò)數的值或是地址,而是給出被叫做地址指針的存儲單元就叫間接尋址。
例如:要把100傳給VB1000
下(xià)面來(lái)具體講一講間接尋址:
使用(yòng)間接尋址時(shí),要建立一個地址指針(雙字)用(yòng)來(lái)存放(fàng)要訪問的存儲器地址,隻能(néng)用(yòng)V、L和(hé)累加器作(zuò)爲指針并且用(yòng)MOV_DW進行傳送
如上(shàng)圖中VB1000就是所謂的地址指針(即VW1000的起始地址),*AC1是AC1所指向地址中的數據(AC1前加“*”号代表AC1爲一個指針)。
用(yòng)指針相對(duì)于直接尋址的好(hǎo)處在于批量讀寫數據,在批量讀寫數據時(shí)就要修改指針(使用(yòng)DW類指令修改),例如從(cóng)VB1000開(kāi)始一直往下(xià)VB1001、VB1002.。。。。。所有以後的地址都賦值爲100:
這(zhè)樣就比立即尋址(把特定的數值賦值給某一寄存器)或者直接尋址要方便得多了(le)!!