浅入深出举例讲解一下:多重背景数据块
OB1中写 CALL FB20,DB10
注意一点,多重背景调用等同于FC的调用,call MUL下的参数填写一定不能空着,必须有实际地址,否则用 DB10的数据程序会混乱。
*************************************************************************************
步骤 | 过程: |
1 |
在 SIMATIC Manager 中,打开你希望生成多重背景的 FB。在静态变量定义部分,输入多重背景的名字,数据类型为 FB 或 SFB。 WW.W_PLCJS_COM-PLC-技.术_网 图 1 WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户) |
2 |
在程序中调用多重背景,可以在多重背景中的目录中选择托拽它到 NETWORK 中,也可以用 CALL 指令 调用它。 P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户 图 2 在STEP 7 V5.4 SP2 中请注意: 如果在LAD/FBD编辑器的目录视图中多重背景未被列出,推荐在静态变量声明中先插入一个功能块,然后再删除它。这样多重背景就再次可以被选择。 WWW_PLCJS@_COM%-PLC-技.术_网 |
3 |
现在设置程序块的输入和输出并保存。就可以在程序(例如 OB1)中使用多重背景来调用 FB。创建一个背景数据块以供监控。 注意: WW.W_PLC※JS_C,OM-PL,C-技.术_网 当生成多重背景时,如其在 FB 中作为一个多重背景被调用,注意要首先生成它,然后再指定一个多重背景调用。如果不遵从这个顺序,程序中将会出现不一致的情况,这种不一致的情况也有可能在修改多重背景后出现。 WW.W_PLCJS_COM-PLC-技.术_网 |
4 |
一旦修改过了多重背景,并打开调用它的功能块。当功能块被打开时,会出现一个消息显示在 FB 接口声明中有一个 UDT 或本地标签的被修改,并显示在功能块调用中至少有一个时间标签冲突。确认此信息,修改过的背景调用在 LAD/STL/FBD 编辑器中将会以亮红色显示。 为了更新功能块调用,右击功能块,然后在弹出菜单中选择“Update Block Call...”。 ——可——编——程——控-制-器-技——术——门——户 图 3 W1WW_P4LCJS_COM-PLC-技.术_网 |
5 |
在后续的对话框中,点击 OK 来执行接口更新。 WWcW_PLCJS_COM-PLC-技.术_网 图 4 在STEP 7 V5.3中的注意事项: 当尝试通过“File > Check and Update Accesses”来更新程序块调用时,STEP7 V5.3 不能发现变量间的唯一分配,调用还是保持红颜色,也无法通过“Edit > Call > Update”改正调用错误。更新调用的唯一办法是删除调用,在声明中更新接口,然后再以多重背景方式调用功能块。如果已经删除了 FB 接口中的变量,应该通过“Edit > Call > Update”来改正所有的多重背景调用,而不需使用前面的“Check and Update Accesses”功能。一旦已经更新了这些多重背景,就又可以与平时一样使用“Check and Update Accesses”功能了。 WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户) |
6 |
推荐在更新功能块调用后进行一致性检查。在 SIMATIC Manager 中,右击 S7 program 文件夹,选择“Check block consistency...”功能,系统会显示S7程序的结构。 通过工具栏中的第二个按钮或者“Program > Compile All”功能编译程序。在编译后,STEP 7程序一致性将统一。 WW.W_PLC※JS_C,OM-PL,C-技.术_网 图 5 WWW_PLCJS_COM-PLC-技.术_网 |
当新生成一个新的功能块,在功能块属性中多重背景功能默认被选择(图6)。也可以改变此设置:
一旦已经生成了功能块,多重背景功能就不可以被重新设置,是否具有多重背景的属性只可以显示,除非按照一个冗长的过程来修改它。