西門子s7-300/400plc有兩個數(shù)據(jù)塊寄存器,db和di
使用db寄存器打開數(shù)據(jù)塊后,使用dbx、dbb、dbw、dbd等來訪問數(shù)據(jù)塊里的變量
比如
opndb1
ldbw0//此時訪問的就是db1.dbw0
使用di寄存器打開數(shù)據(jù)塊后,使用dix、dib、diw、did等來訪問數(shù)據(jù)塊里的變量
比如
opndi1
ldiw0//此時訪問的也是db1.dbw0
因為調(diào)用fb時,系統(tǒng)自動使用di寄存器來打開背景數(shù)據(jù)塊,所以通常di寄存器又被稱為背景數(shù)據(jù)塊寄存器,如果在fb里不使用opndi打開數(shù)據(jù)塊,直接使用diw訪問的就是背景數(shù)據(jù)塊里的一個字變量,所以在fb里最好不要使用di寄存器打開其它的數(shù)據(jù),否則造成參數(shù)訪問混亂。
總之,看到diw并不一定是訪問的背景數(shù)據(jù)塊,要看是否在fb里使用,是否使用了opndi打開了其它數(shù)據(jù)塊,不在fb里db寄存器和di寄存器使用沒有區(qū)別。