STEP7-Micro/Win在程序编辑器窗口中为每个POU提供单独的页面。主程序总是第1页,后面是子程序或中断程序。由于每个程序在编辑器窗口中是分开的,所以编译时会在程序末尾自动添加无条件结束指令或无条件返回指令,用户程序只能使用条件结束指令和条件返回指令。
通常,具有特定功能和多种用途的程序段被视为子程序。子程序可以多次调用、嵌套(最多8层)或递归调用(自己调用)。有两种指令:子程序调用和子程序返回。子程序返回分为条件返回和无条件返回。子程序调用指令用于主程序或其他调用子程序的程序,子程序的无条件返回指令在子程序的最后一个网段。梯形图指令系统可以自动生成子程序的无条件返回指令,无需用户输入。
子程序的调用是有条件的,不调用时子程序中的指令不会被执行,因此使用子程序可以减少扫描时间,使整个程序功能清晰,易于检查和维护,减少存储空间。为了移植子程序,应避免使用全局符号和变量,如V存储区的绝对地址。
编程软件的程序数据窗口下方有主程序(OBI)、子程序(SUB0)和中断服务程序(INT0)的选项卡。单击子程序选项卡进入SUB0子程序显示区。也可以通过指令树的项目进入子程序SUB0显示区。添加子程序时,可以用编辑菜单中的插入项添加子程序,子程序号N会从0向上自动生成。右键单击指令树中子程序或中断程序的图标,在弹出菜单中选择重命名,修改它们的名称。
子程序可以有要传递的参数(变量和数据),然后相应的参数可以包含在子程序调用指令中,可以在子程序和调用程序之间传递。参数(变量和数据)必须有符号名(最多8个字符)、变量和数据类型等。一个子程序最多可以传递16个参数。传递的参数在子程序局部变量表中定义。局部变量表中有四种类型的变量:输入、输出、输入/输出和温度。
●输入类型:将指定位置的参数传入子程序。参数的寻址方式可以是直接寻址(如VB10)、间接寻址(如*ACl)或立即数(如1234)。您也可以将数据的地址值传递给子程序(&VB100)。
●OUT类型:是子程序的结果值(数据),返回给调用它的POU。常量和地址值不允许作为输出参数。
●IN/OUT类型:指定位置的参数传递给子程序,子程序的结果值返回到同一地址。常量和地址值不允许作为输出参数。
●TEMP类型:本地内存只能作为子程序内部的临时内存,不能用来传递参数。
局部变量表的数据类型可以是能量流、布尔(位)、字节、字、双字、整数、双整数、实数。能量流是指只允许位输入操作的布尔能量流(布尔型)。梯形图表示为用触点(位输入)连接电源总线和命令盒。
在局部变量表中输入变量名、变量类型、数据类型等参数后,双击指令树中的子程序(或单击框快捷按钮,在弹出菜单中选择子程序项),带参数的子程序调用指令框将显示在梯形图显示区。
局部变量表中变量类型的修改方法是用光标选中变量类型区域,点击鼠标右键得到下拉菜单,选择插入项,弹出下拉子菜单。单击选定类型,在光标所在的变量类型区域中获取选定类型。
给定程序传递参数时,放在子程序的局部内存(L)中,局部变量表最左边一列是每个传递参数的局部内存地址。
当子程序被调用时,输入参数被复制到本地存储器。子程序完成后,输出参数从本地存储器复制到指定的输出参数地址。
以上属于基础内容,不明白的朋友可以去看一套plc视频教程,更容易理解。本文来源:www.jcpeixun.com
审核编辑:ymf
评论
查看更多