用户程序的块是用户程序的组成部分,要执行用户程序中的块,必须通过其他块对它们进行调用。只有完成被调用块的执行后,才会继续执行调用块,并继续执行块调用后的操作。块调用的顺序和嵌套称为调用层级(体系)。可嵌套的块数目(嵌套深度)取决于CPU型号。如果嵌套太深(嵌套层次过多),则本地数据堆栈可能上溢。调用结构描述了STEP 7程序中块的调用层级。当程序调用另一个块时,执行被调用的块的指令。一旦被调用的块执行结束,程序指针将从被调用的块中返回,并继续执行其程序指令。用户程序中块调用的顺序如图5.6所示,在一个执行周期内的块调用顺序和嵌套深度示例如图5.7所示。
图5.7 在一个执行周期内的块调用顺序和嵌套深度示例
(1)插入功能FC的调用。使用拖放操作在程序段中插入功能FC的调用,将功能从项目树拖到程序段中。这样,功能FC及其参数一同被插入,然后可以分配这些参数。(www.daowen.com)
(2)插入单个背景方式的功能块FB调用。以单个背景的方式调用功能块FB的情况下,被调用的功能块(FB)将其数据存储在其本身的功能块FB中。使用拖放操作在程序段中插入单个背景方式的功能块FB调用,将功能块FB从项目树拖到程序段中,将打开“调用选项”(Call Options)对话框,单击“单个背景”按钮,输入要分配给该功能块的数据块的名称,单击“确定”。这样,功能块FB及其参数一同被插入,然后可以分配这些参数。
(3)插入多重背景方式的功能块FB调用。以多重背景的方式调用功能块FB的情况下,被调用的功能块FB将其数据存储在调用功能块FB的背景数据块中。要使用拖放操作在程序段中插入多重背景方式的功能块FB调用,将功能块从项目树拖到程序段中,将打开“调用选项”对话框,单击“多重背景”按钮,在“接口中的名称”(Name In the Interface)文本块中,输入变量的名称,通过该名称将被调用功能块作为调用块接口中的静态变量输入,单击“确定”确认输入。这样,功能块FB及其参数一同被插入,然后可以分配这些参数。如果调用功能块时指定了不存在的背景数据块,则将创建该背景数据块。如果以多重背景方式调用了功能块,则会将该功能块作为接口中的静态变量输入。
调用功能或功能块时,不能将复杂数据类型的输入或输出参数作为实参分配给被调用功能块的输入或输出参数。因为功能FC没有可以保存块参数值的数据存储器,调用功能时,必须给所有形参分配实参。功能块FB的参数值保存在背景数据块中,如果没有给功能块的输入、输出或输入/输出参数赋值,将使用背景数据块中存储的值。可以给功能块接口中的形参赋初值,这些值将传送到相关的背景数据块。如果在调用指令中没有将实参分配给形参,将使用当前存储在背景数据块中的值。可将变量或常量指定为实参,但不能给输出和输入/输出参数分配常数值,因为输出和输入/输出参数的用途是接收变量值(如计算结果)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。