S7係列plc的編程指令支持直接尋址與間接尋址兩種尋址方式。
直接尋址通過直接給出信號地址進行,它可以用於所有的編程元件(I、Q、M、SM、V、L、S、T、C、AC、HC等)。
[例8-5]利用直接尋址的方式,將標誌存儲器MB10的內容一次性在QB2上輸出的程序如圖8-4.1所示。

圖中的MOV B在S7-200PLC中為字節移動指令,EN為啟動條件,IN端為需要移動的數據地址,OUT端為移動目標位置地址,SMO.O為PLC內部的恒“1”信號。有關本指令的更具體說明可以詳見plc編程的有關章節。
2.間接尋址
S7-200的間接尋址方式中,操作數指定的是操作對象所存放的地址,而不具體指明操作對象。因此,間接尋址方式需要通過“地址指針”進行。
所謂“地址指針”是間接尋址時專門用來存儲地址的寄存器。在S7-200 PLC中,建立地址指針應注意以下幾點:
①隻能用變量V、局部變量L或累加器AC1、AC2、AC3作為地址指針(ACO不可使用)。
②建立地址指針,必須用雙字的形式將間接尋址需要的存儲器地址移動到地址指針中;存儲器地址前加符號“&”進行標記,“&”表明移動的隻是址,而不是該存儲器的具體內容。
③間接尋j時,應在地址指針的前麵加“*”標記,表示該操作數為間接尋址的地址指針。
④允許利用地址指針訪問的存儲器為I、Q、V、M、S以及定時器T、計數器C的當前值,但模擬量輸入/輸出AI/AQ、高速計數器HC、特殊標誌SM以局部變量L不能通過地址指針進行訪問。
⑤S7-200的間接尋址不可以用於二進製位信號、高速計數器HC、局部變量L,如不可以對I0.2、Q0.2、HC1、LW2等使用間接尋址。
[例1]以AC1(累加器1)作為地址指針,將變量存儲器VB200~VB203中4字節數據(12345678)移動到標誌寄存器MBO~MB3中的程序如圖8-4.2所示。
程序分為4段,第1段利用雙字移動指令MOVD(在梯形圖中的符號為MOV__ DW)將地址VB200移動到地址指針AC1中。
第2段利用字移動指令MOVW,將地址指針ACI中地址VB200所存儲的內容(VB200、VB201中的值1234)移動到MWO。
第3段將地址指針中的地址加2(AC1的地址變為VB202)。
第4段將地址指針AC1中地址VB202中所存儲的內容(VB202、VB203中的值5678)移動到MW2。
圖中有關MOV指令的具體說明可以詳見第10章10.4節的有關章節。
[例2]以LD10(局部變量10)作為指針,將由偏移量存儲器VD1004所確定的變量存儲器VW中的內容移動到VW1900的程序如圖8-4.3所示。
程序分為3段,第l段利用雙字移動指令MOVD(在梯形圖中的符號為MOV DW)將地址VBO移動到地址指針LD10中。
第2段將指針中的地址VBO加上偏移量存儲器VD1004的內容(LD10的地址變為VBO+偏移量),確定移動目標。
第3段將指針LD10中地址“VBO+偏移量”中所存儲的內容移動到VW1900。
本例中如果VD1004中的內容為1000,則變量存儲器VW1000中的內容將被複製到VW 1900中;若改變VD1004中的內容為1100,則變量存儲VW1100中的內容將被複製到VW1900中。

[例1]以AC1(累加器1)作為地址指針,將變量存儲器VB200~VB203中4字節數據(12345678)移動到標誌寄存器MBO~MB3中的程序如圖8-4.2所示。
程序分為4段,第1段利用雙字移動指令MOVD(在梯形圖中的符號為MOV__ DW)將地址VB200移動到地址指針AC1中。
第2段利用字移動指令MOVW,將地址指針ACI中地址VB200所存儲的內容(VB200、VB201中的值1234)移動到MWO。
第3段將地址指針中的地址加2(AC1的地址變為VB202)。
第4段將地址指針AC1中地址VB202中所存儲的內容(VB202、VB203中的值5678)移動到MW2。
圖中有關MOV指令的具體說明可以詳見第10章10.4節的有關章節。
[例2]以LD10(局部變量10)作為指針,將由偏移量存儲器VD1004所確定的變量存儲器VW中的內容移動到VW1900的程序如圖8-4.3所示。
程序分為3段,第l段利用雙字移動指令MOVD(在梯形圖中的符號為MOV DW)將地址VBO移動到地址指針LD10中。
第2段將指針中的地址VBO加上偏移量存儲器VD1004的內容(LD10的地址變為VBO+偏移量),確定移動目標。
第3段將指針LD10中地址“VBO+偏移量”中所存儲的內容移動到VW1900。
本例中如果VD1004中的內容為1000,則變量存儲器VW1000中的內容將被複製到VW 1900中;若改變VD1004中的內容為1100,則變量存儲VW1100中的內容將被複製到VW1900中。