西門子s7-300L P#P 515.0 什么意思
發(fā)布時(shí)間:2019-08-01 10:49:37來源:
西門子s7-300L P#P 515.0 什么意思
網(wǎng)上有人給出了一條S7-300“看不懂”的指令“L P#P 515.0”。這條指令與區(qū)域之間的寄存器間接尋址有關(guān)。S7-300/400有兩個(gè)地址寄存器AR1和AR2,操作數(shù)的地址等于地址寄存器中的地址值加上地址偏移量。下面是寄存器間接尋址的32位指針格式:
x000 0rrr 0000 0bbb bbbb bbbb bbbb bxxx
其中第0~2位(xxx,比較低位為第0位)為被尋址地址中位的編號(hào)(0~7),第3~18位(16個(gè)b)為被尋址地址的字節(jié)的編號(hào)。第24~26位(rrr)為被尋址地址的區(qū)域標(biāo)識(shí)號(hào)。
指針的比較高位x 為0時(shí),為區(qū)域內(nèi)的間接尋址,比較高位x 為1時(shí),為區(qū)域間(交叉區(qū)域)間接尋址。
將下面的程序下載到仿真PLC,運(yùn)行時(shí)監(jiān)控累加器1(STANDARD)的值(見下圖)。
L P#P 1.0 //16#8000 0008送累加器1
LAR1 //累加器1的內(nèi)容送AR1
L MW [AR1,P#2.0] //MW3的值送累加器1
MW [AR1, P#2.0]的地址為AR1中的P#1.0加偏移量P#2.0,MW [AR1, P#2.0]即MW3。
由第1條指令的執(zhí)行結(jié)果16#8000 0008可知(見下圖),P#P1.0的比較高位為1,表示這是區(qū)域間(交叉區(qū)域)間接尋址。第24~26位(rrr)為2#000,由西門子的資料《S7-300和S7-400尋址》可知,區(qū)域標(biāo)識(shí)號(hào)2#000表示地址指針不包含地址區(qū)。仿真時(shí)用PLCSIM設(shè)置MW3的值為16#1234,第3條指令的監(jiān)控結(jié)果驗(yàn)證了上述分析的正確性。 將上述程序的第1條指令改為“L P#1.0”,程序運(yùn)行結(jié)果相同。指針值P#1.0的比較高位為0。