在STL里使用opn db 和opn di打開同一個(gè)數(shù)據(jù)塊有什么區(qū)別?
劉玉蓉
發(fā)布于2014-12-11 17:12
3
0
標(biāo)簽:
我的理解是背景數(shù)據(jù)塊是根據(jù)FB的變量申明表自動(dòng)創(chuàng)建的,而在STL里可以用OPN DB和OPN DI打開同一個(gè)數(shù)據(jù)塊,還可以使用CDB命令交換打開的兩個(gè)不同的(DB和DI)數(shù)據(jù)塊,我無法理解這兩個(gè)數(shù)據(jù)塊是如何交換的,還是應(yīng)理解為OPN DB就是打開作為當(dāng)前的,OPN DI打開作為背后的、預(yù)備的的數(shù)據(jù)塊?不是因?yàn)橹荒芡瑫r(shí)打開兩個(gè)數(shù)據(jù)塊嘛,所以要指定哪一個(gè)是當(dāng)前起作用的?
佳答案
S7-300/400有兩個(gè)數(shù)據(jù)塊寄存器,DB寄存器和DI寄存器,調(diào)用FB時(shí),系統(tǒng)會(huì)使用DI寄存器打開FB的背景數(shù)據(jù)塊,所以DI寄存器通常稱為背景數(shù)據(jù)塊寄存器,如果不在FB里,DI寄存器和DB寄存器一樣使用,通常在需要打開兩個(gè)數(shù)據(jù)塊時(shí)就分別用DB寄存器和DI寄存器打開數(shù)據(jù)塊,當(dāng)然不是當(dāng)前的、背后的、預(yù)備的這樣的概念,比如訪問DB1.DBW0,使用DB寄存器訪問
OPN DB 1
L DBW 0
使用DI寄存器訪問
OPN DI 1
L DIW 0
兩種方式訪問效果一樣
在STL里DBNO和DINO分別表示當(dāng)前DB寄存器和DI寄存器打開的數(shù)據(jù)塊號(hào),CDB呢就是交換兩個(gè)寄存器內(nèi)容