quote:以下是引用Johnson.Guo在2010-08-10 20:26:06的发言:
您所说的两个数据块就是指:当前功能块的背景数据块与我打开的另一个数据块吧?!
我目前就是没利用背景数据块的,就直接将一固定数据块里的数据传送到另一数据块(变址),而且中间需要增加字符串处理指令的(截取其中几个)。
不是的,DI寄存器虽然主要应用于FB引用背景数据块,但也常用于程序中同时打开两个数据块。
所以,如果程序需要同时打开2个数据块,最后在FC中编程。如果在FB中编程,只能用DB块的完整引用方式了。
比如要把一个DB_NO1中的数据传到DB_NO2中,可以这样
在FC中定义2个输入变量DB_NO1和DB_NO2,两个临时变量DB_TEMP1和DB_TEMP2
那么可以这样
L DB_NO1
T DB_TEMP1
OPN DB[DB_TEMP1]
L P#DBX0.0
LAR1
L DB_NO2
T DB_TEMP2
OPN DI[DB_TEMP2]
L P#DIX0.0
LAR2
然后就可以在程序中对AR1,AR2的加操作来转移数据了。
这是我的理解,你可以试下。