西門子S7-300/400PLC有兩個數(shù)據(jù)塊寄存器,DB和DI
使用DB寄存器打開數(shù)據(jù)塊后,使用DBX、DBB、DBW、DBD等來訪問數(shù)據(jù)塊里的變量
比如
OPN DB 1
L DBW 0 //此時訪問的就是DB1.DBW 0
使用DI寄存器打開數(shù)據(jù)塊后,使用DIX、DIB、DIW、DID等來訪問數(shù)據(jù)塊里的變量
比如
OPN DI 1
L DIW 0 //此時訪問的也是DB1.DBW 0
因為調用FB時,系統(tǒng)自動使用DI寄存器來打開背景數(shù)據(jù)塊,所以通常DI寄存器又被稱為背景數(shù)據(jù)塊寄存器,如果在FB里不使用OPN DI打開數(shù)據(jù)塊,直接使用DIW訪問的就是背景數(shù)據(jù)塊里的一個字變量,所以在FB里最好不要使用DI寄存器打開其它的數(shù)據(jù),否則造成參數(shù)訪問混亂。
總之,看到DIW并不一定是訪問的背景數(shù)據(jù)塊,要看是否在FB里使用,是否使用了OPN DI打開了其它數(shù)據(jù)塊,不在FB里DB寄存器和DI寄存器使用沒有區(qū)別。