各位老师,我看到有人在FC块里使用STL指令OPN打开数据块作为背景数据块,如:OPNDI20
在我的概念里,只有fb才有背景数据块啊,怎么FC也有背景数据块吗?
最佳答案
1、只有FB才有背景数据块啊,怎么FC也有背景数据块吗?
在STEP7中的OB,FB,FC块均可应用DB共享数据块与DI背景数据块。在FB中指定一个DI背景数据块是用来作为传递参数的,但在OB、FB、FC程序中也可应用OPN语句来打开一个背景数据块,其用图与用OPN语句来打开一个共享数据块相同。
2、转帖:程序中同时打开两个数据块,该如何操作?
STEP7中有两个数据块寄存器:
DB:共享数据块;
DI:背景数据块。
因为打开一个DB块的时候系统会自动关闭另一个DB块.如果需要在同一个程序块中同时打开两个数据块,则用一个DB一个DI.。
例如你在程序中连续写下:
OPNDB1
OPNDB2
则实际上打开了DB2(在打开DB2的时候系统自动把DB1关闭了),为了同时打开这两个块,你可以如下:
OPNDB1
OPNDI2
当使用DB1中的数据时可写DBW,使用DB2中的数据时写DIW。
提问者对于答案的评价:
非常感谢高手指点,另外,youhm的回答我觉得也很有道理:“看到DIW并不一定是访问的背景数据块,要看是否在FB里使用,是否使用了OPNDI打开了其它数据块,不在FB里DB寄存器和DI寄存器使用没有区别”,可惜我只能选择一个最佳答案,在此也谢谢youhm。