西门子S7-300/400plc有两个数据块寄存器,DB和DI 使用DB寄存器打开数据块后,使用DBX、DBB、DBW、DBD等来访问数据块里的变量 比如 OPN DB 1 L DBW 0 //此时访问的就是DB1.DBW 0 使用DI寄存器打开数据块后,使用DIX、DIB、DIW、DID等来访问数据块里的变量 比如 OPN DI 1 L DIW 0 //此时访问的也是DB1.DBW 0 因为调用FB时,系统自动使用DI寄存器来打开背景数据块,所以通常DI寄存器又被称为背景数据块寄存器,如果在FB里不使用OPN DI打开数据块,直接使用DIW访问的就是背景数据块里的一个字变量,所以在FB里最好不要使用DI寄存器打开其它的数据,否则造成参数访问混乱。 总之,看到DIW并不一定是访问的背景数据块,要看是否在FB里使用,是否使用了OPN DI打开了其它数据块,不在FB里DB寄存器和DI寄存器使用没有区别。 |