1.逻辑块结束指令
逻辑块包括组织块、功能、功能块、系统功能和系统功能块。逻辑块结束指令包括块无条件结束指令BEU、块结束指令BE和块条件结束指令BEC(见表4-2)。
表4-2 程序控制指令
执行块结束指令时,将中止当前块的程序扫描,返回调用它的块。BEU和BE是无条件执行的,而BEC只是在RLO为1时执行。下面是使用BEC的例子:
假设逻辑块A调用逻辑块B,执行逻辑块B的无条件结束指令BEU或在条件满足时执行BEC指令时,将会中止逻辑块B的程序扫描,返回逻辑块A中调用块B的指令的下一条指令,继续程序扫描。逻辑块B结束调用后,它的局部数据区被释放出来,调用它的块A的局部数据区变为当前局部数据区。块A调用块B时打开的数据块被重新打开。块A的主控继电器(MCR)被恢复,RLO从块B被带到块A。
如果BEU指令没有被跳转指令跳过,BEU指令的执行不需要任何条件。
2.逻辑块调用指令
块调用指令(CALL)用来调用功能块、功能、系统功能块和系统功能,或调用西门子提供的其他标准块。CALL指令的执行不需要任何条件。在调用FB和SFB时,应提供与它们配套的背景数据块。
无条件调用指令UC和条件调用指令CC用于调用没有输入/输出参数的FC和SFC。下面是使用CC指令和UC指令的例子:
3.梯形图中的逻辑块调用指令
梯形图中的CALL线圈可以调用功能FC或系统功能SFC,调用时不能传递参数。调用可以是无条件的,CALL线圈直接与左侧垂直线相连,相当于语句表中的UC指令;也可以是有条件的,条件由控制CALL线圈的触点电路提供,相当于语句表的CC指令。CALL指令调用的块应是已经存在的块。
可以将程序编辑器左边的指令列表窗口的FB、FC文件夹或库文件夹中的逻辑块(不包括OB)直接拖放到右边的程序区,生成的逻辑块调用指令用方框表示(见图4-10中的FC2)。需要传递参数的逻辑块最好用这种方法来调用(见图4-12)。
图4-10 调用逻辑块
条件返回指令RET(Return)以线圈的形式出现,用于有条件地离开逻辑块,条件由控制它的触点电路提供,RET线圈不能直接连接在左侧垂直“电源线”上。如果是无条件地返回调用它的块,在块结束时并不需要使用RET指令。
4.功能的调用(www.xing528.com)
在项目“发动机控制”的符号表中定义块的符号,以及两次调用FC1、FB1的实参的符号(见图4-11)。
图4-11 符号表
OB1通过两次调用FB1和FC1,实现对汽油机和柴油机的控制。图4-12只给出了控制汽油机的程序,控制柴油机的程序与之相似。
图4-12 主程序OB1
双击打开SIMATIC管理器中的OB1,在梯形图显示方式,将左边窗口中的“FC块”文件夹中的FC1拖放到程序段1的水平“导线”上(见图4-12),无条件调用符号名为“风扇控制”的FC1。
方框的左边是块的输入参数和IN_OUT参数,右边是输出参数。方框内的Engine_On等是FC1的变量声明表中定义的IN和OUT参数,称为“形式参数”(Formal Parameter),简称为“形参”。方框外的符号地址“汽油机运行”等是形参对应的“实际参数”(Actual Pa-rameter),简称为“实参”。形参是局部变量在逻辑块中的名称,实参是调用块时指定的输入、输出参数具体的地址或数值。调用块时应保证实参与形参的数据类型一致。
输入参数(IN)的实参可以是绝对地址、符号地址或常数,输出参数(OUT)或输入L输出参数(IN_OUT)的实参必须是绝对地址或符号地址。将不同的实参赋值给形参,就可以实现对类似的但是不完全相同的被控对象(例如汽油机和柴油机)的控制。
5.功能块的调用
双击打开OB1,执行菜单命令“视图”→“总览”,显示出左边的指令列表。打开“FB块”文件夹,将其中的FB1拖放到程序区的水平“导线”上(见图4-12)。双击方框上面的红色“???”,输入背景数据块的名称DB1,按回车键后出现的对话框询问“背景数据块DB1不存在,是否要生成它?”,单击“是”按钮确认。DB1的符号名为“汽油机数据”。打开SIMATIC管理器,可以看到自动生成的DB1。
也可以首先生成FB1的背景数据块,然后在调用FB1时使用它。应设置生成的数据块为背景数据块,如果项目中有多个FB,应设置是哪一个FB的背景数据块。
FB1的符号名为“发动机控制”。方框内的Start等是FB1的变量声明表中定义的输入、输出参数(形参)。方框外的符号地址“起动汽油机”等是方框内的形参对应的实参。实参"共享".PE_Speed是符号名为“共享”的数据块DB3中的变量PE_Speed(汽油机的实际转速)。在调用块时,CPU将实参分配给形参的值存储在背景数据块中。如果调用时没有给形参指定实参,功能块使用背景数据块中的参数值。该数值可能是在功能块的变量声明表中设置的形参的初始值,也可能是开机后调用FB时储存在背景数据块中的数值。
两次调用FB1时,使用不同的实参和不同的背景数据块,FB1分别用于控制汽油机和柴油机。两个背景数据块中的变量相同,区别仅在于变量的值(即实参的值)不同。
下面是用语句表调用FB1和FC1的程序,“:=”的前面是形参,“:=”的后面是实参。
梯形图和语句表中的功能和功能块包含的信息基本上相同。梯形图中的FC、FB、SFC和SFB的输入参数和IN_OUT参数在方框左边,输出参数在右边;方框里面是形参,方框外面是实参。语句表的优点是可以给每一行加上“//”右边的注释,便于程序的阅读和理解。语句表的功能比梯形图更强,有的功能只能用语句表来实现。图4-12中的梯形图可以转换为语句表,但是上面的语句表程序不能用STEP 7直接转换为梯形图。
项目“发动机控制”可以用变量表或OB1的程序状态来调试。通过改变各FB和FC的输入参数的实参的值,来观察块的输出参数的实参是否按程序的要求变化。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。