【S7-300使用指南】26.16位與32位指針
唐琳
發(fā)布于2015-12-30 11:29
1110
0
標(biāo)簽:程序編寫, 軟件,
1 16位指針尋址
1) 16位指針存儲(chǔ)空間
16位指針存儲(chǔ)空間是16位,2個(gè)字節(jié),通過這2個(gè)字節(jié)的空間來存放變量的地址。
2) 16位指針尋址范圍
16位指針只能對(duì)計(jì)時(shí)器(T)、計(jì)數(shù)器(C)、數(shù)據(jù)塊(DB、DI)的號(hào),程序塊(FB、FC)的號(hào)進(jìn)行尋址,也就是這兩個(gè)字節(jié)的存儲(chǔ)空間中只能存放計(jì)時(shí)器的編號(hào)、計(jì)數(shù)器的編號(hào)、數(shù)據(jù)塊的編號(hào)、程序塊的編號(hào)。
3) 16位指針尋址格式
16位指針尋址表示格式為:區(qū)域標(biāo)示符[16位存儲(chǔ)空間]
示例:
DB [MW0] //表示對(duì)DB塊進(jìn)行尋址,MW0中如果存儲(chǔ)的是1,那么該尋址結(jié)果為DB1,也就是通過該指令找到了DB1數(shù)據(jù)塊。
T [MW2] //表示對(duì)計(jì)時(shí)器進(jìn)行尋址,MW2中如果存放的是2,那么該尋址結(jié)果為T2,也就是通過該指令找到了計(jì)時(shí)器T2。
4) 16位指針尋址程序示例
例1
L 2 //將2進(jìn)行裝載
T MW 0 //將2傳送到MW0
A I 0.0 //如果I0.0 = True
L S5T#10S //裝載時(shí)間
SD T [MW0] //T開始計(jì)時(shí)
例2
L 1 //將1進(jìn)行裝載
T MW 0 //將1傳送到MW0
OPN DB [MW 0] //打開DB1
L 10 //將10進(jìn)行裝載
T DBW 0 //將10傳送到DB1.DBW0中
L DBW 0 //將DB1.DBW0進(jìn)行裝載
T MW 2 //將DB1.DBW0傳送到MW2中
2 32位指針尋址 1) 32位指針存儲(chǔ)空間
32位指針存儲(chǔ)空間是32位,4個(gè)字節(jié),通過這四個(gè)字節(jié)的空間來存放變量的地址。
2) 32位指針尋址范圍
32位指針能對(duì)I、Q、M、L、數(shù)據(jù)塊的位、字節(jié)、字、雙字進(jìn)行尋址。
3) 32位指針存儲(chǔ)格式
4) 32位指針尋址格
32位指針尋址表示格式為: 地址存儲(chǔ)器標(biāo)示符[32位地址指針]
5) 32位指針尋址示例
例1
當(dāng)MD0中存儲(chǔ)的是33的時(shí)候I[MD0]指向I4.1
例2
L 32 //對(duì)32進(jìn)行裝載
T MD 20 //將32傳送到MD20
L 48 //對(duì)48進(jìn)行裝載
T MD 24 //將48傳送到MD24
L 10 //對(duì)10進(jìn)行裝載
T MW [MD 20] //將10傳送到mw4
L 15 //對(duì)15進(jìn)行裝載
T MW [MD 24] //將15傳送到MW6
L MW [MD 20] //裝載MW4
L MW [MD 24] //裝載MW6
+I //MW4+MW6
T MW 10 //將MW4+MW6的結(jié)果存放在MW10
例3
L P#10.0 //裝載P#10.0
T MD 0 //將P#10.0傳送到MD0
L P#12.0 //裝載P#12.0
T MD 4 //將P#12.0傳送到MD4
L MW [MD 0] //裝載MW10
L MW [MD 4] //裝載MW12
+I //MW10+MW12
T MW 14 //將MW10+MW12的結(jié)果存放到MW14