发布于 2015-03-25 18:52:19
6楼
出现这种情况的原因在于,STEP7在创建FB时,块属性默认是“具有多实例能力的”
所以,当我们创建的FB没有被更高级的FB调用时,即不存在“多重背景模型”的时候,AR2总是指向P#DBX0.0的,
也就是说FB的声明参数总是从DBX0.0开始定义的。但是LAR2 P##TUse这条语却使AR2指向了P#DIX5.0
那么FB的声明参数就会从DBX5.0开始定义
即你看到的
var_IN
Clear Bool 0.0实际上是从DBX5.0处定义的,那么执行
A DIX[AR2,P#0.0]后就相当于A #Clear,而不是 A TUse .0
要想A TUse.0,就得写成A DIX[AR2,P#5.0]
或者将块属性‘具有多重实例能力’的钩去掉,这样A DIX[AR2,P#0.0]就同A TUse.0一样了。
会说话、会办事、会做人