【S7-300使用指南】28.Pointer參數(shù)類型
唐琳
發(fā)布于2015-12-31 09:52
24
0
標(biāo)簽:程序編寫, 軟件,
1 Pointer參數(shù)類型概念
Pointer參數(shù)類型主要是在交叉區(qū)域寄存器間接尋址存儲(chǔ)方式上變化而來的,當(dāng)我們對(duì)數(shù)據(jù)塊(DB、DI)進(jìn)行尋址的時(shí)候地址寄存器AR1或者AR2是沒有空間來存放數(shù)據(jù)塊編號(hào)的,因此我們需要更大的48位的空間來對(duì)數(shù)據(jù)塊進(jìn)行尋址,這就是Pointer參數(shù)類型的由來,圖 1-1所示為交叉區(qū)域寄存器間接尋址的儲(chǔ)存格式,由圖 1-2可以看出Pointer參數(shù)類型要比交叉區(qū)域寄存器間接尋址的指針多出一個(gè)字的空間,這個(gè)空間就是專門存放數(shù)據(jù)塊編號(hào)信息的。
交叉區(qū)域寄存器間接尋址
圖 1-1
Pointer參數(shù)類型
圖 1-2
當(dāng)尋址為全局?jǐn)?shù)據(jù)塊DB時(shí)地址標(biāo)識(shí)位的內(nèi)容為100如圖 1-3所示,當(dāng)尋址為背景數(shù)據(jù)塊DI時(shí)地址標(biāo)識(shí)位的內(nèi)容為101如圖 1-4所示。
圖 1-3
圖 1-4
2 Pointer參數(shù)類型詳解 主程序
圖 2-1
FC1接口
圖2-2
FC1程序
圖 2-3
圖 2-1至圖 2-3所示程序的作用是將DB1.DBX0.0偏移2.0后的字的空間存放整數(shù)100也就是給DB1.DBW2賦值100,本身程序非常簡(jiǎn)單,也沒有什么實(shí)際意義,但是從這個(gè)程序中大家必須搞清楚兩個(gè)問題,圖 2-3中紅框中的地址V21.0是什么意思。第二Pointer參數(shù)類型是48位存儲(chǔ)空間的指針,48位的空間到底位于PLC的哪個(gè)存儲(chǔ)區(qū)。只要我們把這兩個(gè)問題搞懂了,就可以說對(duì)Pointer參數(shù)類型徹底搞懂了。
圖 2-4
1) V21.0的含義
很多人看見V就會(huì)聯(lián)想到S7-200PLC的V區(qū),實(shí)際上在S7-300中出現(xiàn)的這個(gè)V區(qū)和S7-200的V區(qū)是沒有任何關(guān)系的,在Step 7中對(duì)V區(qū)的解釋是之前的本地?cái)?shù)據(jù)那么這個(gè)之前的本地?cái)?shù)據(jù)就應(yīng)該指的是主調(diào)程序中的本地?cái)?shù)據(jù)L區(qū),拿本程序舉例,那么FC1中出現(xiàn)的V21.0指的就是OB1中的L21.0。
2) Pointer48位指針的存儲(chǔ)位置
上面我們已經(jīng)分析出來FC1中的V21.0實(shí)際指的就是OB1中的L21.0因此我們可以判定Pointer參數(shù)類型的48位指針就是存放在OB1的L區(qū)中并且起始地址就是L21.0,由于是48位的空間所以Pointer參數(shù)類型的48位指針占用的就是OB1中的L21.0到L26.7共48位空間,其中LB21和LB22是存放DB塊編號(hào)信息的,LB23~LB26是存放地址信息的。