S7-200直接尋址和間接尋址
發(fā)布于2022-12-21 11:21
62
2
標(biāo)簽:S7-200
①直接尋址
S7系列PLC的編程指令支持直接尋址與間接尋址兩種尋址方式。直接尋址通過(guò)直接給出信號(hào)地址進(jìn)行,它可以用于所有的編程元件(1、Q、M、SM、V、L、S、C、AC、HC等)。
【例3-5】 利用直接尋址的方式,將標(biāo)志存儲(chǔ)器MB10的內(nèi)容一次性在QB2上輸出的程序如圖3-18所示。
圖中的MOV_B在S7-200PLC中為字節(jié)移動(dòng)指令,EN為啟動(dòng)條件,IN端為需要移動(dòng)的數(shù)據(jù)地址,()UT端為移動(dòng)目標(biāo)位置地址,SM0.0為PLC內(nèi)部的恒"1"信號(hào)。
②間接尋址
S7-200的間接尋址方式中,操作數(shù)指定的是操作對(duì)象所存放的地址,而不具體指明操作對(duì)象。因此,間接尋址方式需要通過(guò)“地址指針”進(jìn)行。所謂"地址指針"是間接尋址時(shí)專門用來(lái)存儲(chǔ)地址的寄存器。在S7-200PLC中,建立地址指針應(yīng)注意以下幾點(diǎn)。
a.只能用變量V、局部變量L或累加器ACl、AC2、AC3作為地址指針(AC0不可使用)。b.建立地址指針,必須用雙字的形式將間接尋址需要的存儲(chǔ)器地址移動(dòng)到地址指針中:在存儲(chǔ)器地址前加符號(hào)“&.”進(jìn)行標(biāo)記,“&.”表明移動(dòng)的只是地址,而不是該存儲(chǔ)器的具體內(nèi)容。
c.間接尋址時(shí),應(yīng)在地址指針的前面加"*"標(biāo)記,表示該操作數(shù)為間接尋址的地址指針。d.允許利用地址指針訪問(wèn)的存儲(chǔ)器為I、Q、V、M、S以及定時(shí)器T、計(jì)數(shù)器C的當(dāng)前值,但模擬量輸入/輸出AI/AQ、高速計(jì)數(shù)器HC、特殊標(biāo)志SM以及局部變量L不能通過(guò)地址指針進(jìn)行訪問(wèn)。
e.S7-200的間接尋址不可以用于二進(jìn)制位信號(hào)、高速計(jì)數(shù)器HC、局部變量L,如不可以對(duì)I0.2、QO.2、HCl、LW2等使用間接尋址。
【例3-6】 以AC1(累加器1)作為地址指針,將變量存儲(chǔ)器VB200~VB203中4字節(jié)數(shù)據(jù)(12345678)移動(dòng)到標(biāo)志寄存器MB0~MB3中的程序如圖3-19所示。
該程序分為4段:
第1段利用雙字移動(dòng)指令MOVD(在梯形圖中的符號(hào)為MOV_DW)將地址VB200移動(dòng)到地址指針AC1中;
第2段利用字移動(dòng)指令 MOVW,將地址指針 AC1 中地址 VB200 所存儲(chǔ)的內(nèi)容(VB200、VD201中的值1234)移動(dòng)到MW0;
第3段將地址指針中的地址加2(AC1的地址變?yōu)閂B202);
第4段將地址指針AC1中地址 W202中所存儲(chǔ)的內(nèi)容(VB202、VB203中的值5678)移動(dòng)到MW2。
【例3-7】以LD10(局部變量10)作為指針,將由偏移量存儲(chǔ)器VD1004所確定的變量存儲(chǔ)器VW中的內(nèi)容移動(dòng)到W1900的程序如圖3-20所示。
該程序分為3段:
第1段利用雙字移動(dòng)指令MOVD(在梯形圖中的符號(hào)為MOV_DW)將地址VB0移動(dòng)到地址指針LD10中;
第2段將指針中的地址WB0加上偏移量存儲(chǔ)器VD1004的內(nèi)容(LD10的地址變?yōu)閂B0 偏移量),確定移動(dòng)目標(biāo);
第3段將指針LD10中地址“VB0 偏移量”中所存儲(chǔ)的內(nèi)容移動(dòng)到VW1900.
本例中如果VD1004中的內(nèi)容為1000,則變量存儲(chǔ)器VW1000中的內(nèi)容將被復(fù)制到VW1900 中;若改變VD1004中的內(nèi)容為1100,則變量存儲(chǔ)器W1100中的內(nèi)容將被復(fù)制到VW1900中。