1.主控传递指令
主控传递指令可以将程序段分区、嵌套控制,在控制启动指令-(MCRA)和控制停止指令-(MCRD)间,通过主控传递接通指令-(MCR<)和主控传递断开指令-(MCR>),可以最多将一段程序分成8个区,只有打开第一个区,才能打开第二个区,以此类推,每打开一个区,才能执行本区的程序。-(MCRA)、-(MCRD)及-(MCR>)指令前不能加入触发条件,-(MCR<)指令前必须加入触发条件。主控传递指令使用的示例程序如图6-16所示。
在示例程序中,如果M1.1为1,打开MCR程序分区1,分区1中的程序可以运行,例如I1.2为1,将置位Q2.1;如果M1.2为1,打开MCR程序分区2,分区2中的程序可以运行,例如I1.1为1,触发Q2.0输出,如果M1.1为0,分区1关闭,即使I1.1为1也不能触发Q2.0输出,程序分区相互嵌套。
2.程序调用指令
集成于STEP7函数库“Librar-ies”或用户编写的函数及函数块(FB Blocks、FC Blocks目录)必须在主程序中调用才能运行,使用指令CALL_FB、CALL_FC、CALL_SFB、CALL_SFC可以对不同函数、函数块进行调用,指令的使用如图6-17所示的示例程序,程序段1中调用无形参函数FC1,如果函数带有形参必须赋值,否则报错,如果已经编写FC1,在“FC Blocks”库中可以找到,可以将FC1直接拖放到程序段中;程序段2为系统函数的调用,必须对形参赋值,否则报错,在“System Function Blocks”系统函数库中,将需要调用的函数直接拖放到程序段中;程序段3、4为函数块和系统函数块的调用,共同的特点是都需要背景数据块,从函数库中直接拖放到程序段中,在函数块的上方写入未使用的数据块作为背景数据块,点击“确认”自动生成,每次调用函数块或系统函数块时,必须分配不同的数据块号。
使用这些程序调用指令,都是将已经存在的函数或函数块拖放到LAD程序段的程序线中,形成一个类似盒子形状的程序框图,如果调用的函数带有形参,在程序框图的左边为输入端,在程序框图的右边为输出端。
图6-16 主控分程传递指令
图6-17 程序块调用指令
使用-(CALL)指令只能调用函数FC和系统函数SFC,并且函数不能带有形参,否则不能赋实参,指令的使用如图6-18所示。(www.xing528.com)
图6-18 -(CALL)指令
图6-18的程序中,如果M1.1为1,调用函数FC1,FC1必须用手动输入。
注意:
如果没有预先创建函数或函数块,在调用时报错。
3.-(RET)返回指令
如果在主程序中执行返回指令,程序扫描重新开始,如果在子程序中执行返回指令,程序扫描返回子程序调用处,共同的特点是返回指令后面的程序不执行,返回指令的使用如图6-19所示示例程序。
示例程序中,如果M1.2为1,执行返回指令,CPU不扫描程序段3的程序。
图6-19 -(RET)返回指令
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。