您现在的位置是:首页 > PLC技术 > PLC技术

高级功能块和多背景数据块

来源:艾特贸易2017-06-05

简介艾特贸易网 在前面的文章中介绍了功能块和背景数据块的编程和应用,所举的例子是通过功能块 Engine (FB1) 来控制一台发动机,对于不同的发动机(例如,汽油发动机和柴油发动机)由

    艾特贸易网在前面的文章中介绍了功能块和背景数据块的编程和应用,所举的例子是通过功能块“Engine(FB1)来控制一台发动机,对于不同的发动机(例如,汽油发动机和柴油发动机)由于其控制方式和控制程序是相同的,只是具体的参数(包括输入/输出参数和静态参数)不相同,因此只需对不同的发动机建立不同的背景数据块[例如,对汽油发动机的背景数据块是“Petrol(DB1),对柴油发动机的背景数据块是“Diesel(DB2)],在组织块( OB1)中,分别调用FB1DB1FB1DB2,就能实现用同一FB1控制多台不同的发动机。但是当发动机的数量增加时,一用这样的方法还是会带来一些问题,例如,如果一个项目中有10台不同的汽油发动机和10台不同的柴油发动机,或者一个项目中有20台不同的电动机,用这种方式控制就需要建立20个背景数据块,但是对具体的一台PLC,它的资源是有限的,例如,对CPU315 -2DP最大允许建立的方块数量是1024个(包括FBFCDB方块的总和),如果数据块占用的数量多了,其他允许用的方块数量就得减少。    为解决好这一问题,STEP 7软件提供了高级功能块和多背景数据块的概念,使得所需使用的背景数据块的数量可以大大地减少。具体方法是这样的,首先用第3.8节的方法建立一个功能块(例如,FB1)用来控制某个对象(例如,Engine),然后再建立一个高级功能块(例如,FB10),把FB1作为静态变量,在FB10变量登记表中的静态变量项中进行登记,这时需要调用多少次FB1,就登记多少个静态变量,每一个静态变量取不同的静态变量名,而其数据类型都定义为FB1 (Engine),见图3-48STAT定义。
建立高级功能块FB10的变量登记表定义
    3-48    建立高级功能块FB10的变量登记表定义    对高级功能块FB10的编程如图3-49所示,当在变量登记表的静态参数STAT项中登记了“Petrol_Engine”和“Diesel_Engine”两个静态参数后,则在左边的指令库目录中的Mul-tiple instance目录中就会出现这两个多背景块,在FB10编程窗口的网络段1,插入调用“Petrol_Engine”,这一调用不需要伴随背景数据块DB1,同时“Petrol_Engine”(即FB1)中的形式参数要用对应的实际参数去替换,在实际速度这一项,现在不是用MW2去替换,而是改用上一节中建立的共享数据块DB3. DBW0(符号地址为“S_Data”.PE_ActuaLSpeed),见图3-49中的Network1
高级功能块FB10的编程
    3-49    高级功能块FB10的编程    用同样的方法,在网络段2,插入调用“Diesel_Engine”,用对应的实际参数替换形式参数。在网络段3中,插入串联电路逻辑,指示两台发动机都达到额定转速时的输出指示。    在完成FB10的编程后,保存并关闭该方块。随后在方块文件夹中插入一个数据块DB10,并定义其属性为背景数据块,对应的功能块为FB10,这样就建立了对应于高级功能块FB10的多背景数据块DB10。在方块文件夹中打开DB10时会出现以下提示:作为默认设置,背景数据块将以STEP 7 V5.2软件中的“Parameter assignment for data blocks”方式打开。对用LAD/STL/FBD不同编程语言编辑的这一数据块,在功能上没有差别。这一数据块只能使用LAD/STL/FBD编程语言的DB编辑器才能打开。是否希望用“Parameter assignment for data blocks”来打开DB?,回答“Yes”。如图3-50所示。
 打开多背景数据块DB10时的提示信息
    3-50    打开多背景数据块DB10时的提示信息    打开后的DB10如图3-51所示,在DB10数据块中显示各个变量,包括对两次FB1(本地背景)调用的“内部”变量。所显示的变量与在FB10中变量登记表的内容一致。对DB10中的STAT静态参数的实际值也可以进行修改,例如,可以将STAT(Diesel_En-gine. Preset_Speed)修改为1200rpm
高级功能块FB10的多背景数据块DB10
    3-51    高级功能块FB10的多背景数据块DB10