1.建立子程序 可用编程软件Edit菜单中的 Insert选项,选择 Subroutine,以建立或插入一个新的子程序, 同时在指令树窗口可以看到新建的子程序图 标,默认的程序名是SBR_n,编号冂从0开始 按递增顺序生成,可以在图标上直接更改子 程序的程序名。在指令树窗口双击子程序的 图标就可对它进行编辑
1. 建立子程序 ◼ 可用编程软件Edit菜单中的Insert选项,选择 Subroutine,以建立或插入一个新的子程序, 同时在指令树窗口可以看到新建的子程序图 标,默认的程序名是SBR_n,编号n从0开始 按递增顺序生成,可以在图标上直接更改子 程序的程序名。在指令树窗口双击子程序的 图标就可对它进行编辑
2.子程序调用 (1)子程序调用和返回指令 子程序调用 SBR1 >子程序条件返回 EN (2)注意事项 HRET 可有64个子程序,可以嵌套子程序,最大 嵌套深度为8 子程序内不能用END指令 不允许直接递归(自己调用自己),可间 接递归 (3)应用实例
2. 子程序调用 ◼ (1)子程序调用和返回指令 ➢ 子程序调用 ➢ 子程序条件返回 ◼ (2)注意事项 ◼ 可有64个子程序,可以嵌套子程序,最大 嵌套深度为8 ◼ 子程序内不能用END指令 ◼ 不允许直接递归(自己调用自己),可间 接递归 ◼ (3)应用实例 SBR1 EN ( RET )
图5.3所示的程序实现用外部控制条件 分别调用两个子程序。 Network 1 CALL 100 I0.0∥使能输入 EN CALL S ∥调用子程序S2 Network 2 LD 10.0 ∥使能输入 10.1 SBR 1 CALL SBR1∥调用子程序 EN MSBR 1 图53子程序调用举例
◼ 图5.3所示的程序实现用外部控制条件 分别调用两个子程序。 LD I0.0 //使能输入 CALL S2 //调用子程序 S2 // LD I0.0 //使能输入 CALL SBR_1 //调用子程序 //SBR_1 •图5.3 子程序调用举例
3.带参数的子程序调用 (1)子程序参数-最多可带16个参数,每 个参数包含: 变量名 变量类型(IN类型、IN/oUT、OUT) 数据类型(位、字节、字、双字、实型) (2)参数子程序调用的规则 n参数与局部变量标的定义相匹配 参数顺序是:输入,输入/输出,输出 (3)程序实例
◼ (1)子程序参数---最多可带16个参数,每 个参数包含: ➢ 变量名 ➢ 变量类型 (IN类型、IN/OUT、OUT) ➢ 数据类型 (位、字节、字、双字、实型) ◼ (2)参数子程序调用的规则 ◼ 参数与局部变量标的定义相匹配 ◼ 参数顺序是:输入,输入/输出,输出 ◼ (3)程序实例 3. 带参数的子程序调用
100 SBR O I0.0 ∥装入常开触点 CALL SBR 0.10.2. VB20. VD30// ∥调用子程序SBR0 10.2 含有3个参数 ∥别为布尔、字节 VB20 in2 ∥和双字型 图55带参数的子程序调用 巡回本节
LD I0.0 //装入常开触点 CALL SBR_0, I0.2, VB20, VD30 // //调用子程序 SBR_0 //含有 3 个参数: //分别为布尔、字节 //和双字型 •图5.5 带参数的子程序调用 返回本节