1、1 1、子程序调用与子程序标号、子程、子程序调用与子程序标号、子程 序返回指令序返回指令 将具有特定功能,并且多次使用的 程序段作为子程序。当主程序调用子 程序并执行时,子程序执行全部指令 直至结束。然后返回到主程序的子程 序调用处。子程序用于程序的分段和 分块,使其成为较小的、更易于管理 的块,只有在需要时才调用,可以更 加有效地使用PLC。 指令格式及功能指令格式及功能(见表3-19) 表表3 3- -19 19 子程序调用与子程序标号、子程序返回指令的格式及功能子程序调用与子程序标号、子程序返回指令的格式及功能 梯形图LAD 语句表STL 指令功能 操作码 操作数 CALL SBR_n
2、子程序调用与标号指令(CALL)把程序 的控制权交给子程序(SBR_n) CRET _ 有条件子程序返回指令(CRET)根据该 指令前面的逻辑关系,决定是否终止子 程序(SBR_n) 无条件子程序返回指令(RET)立即终止 子程序的执行 SBR_n EN (RET) 说明: 1)子程序调用指令编写在主程序中,子程序返回指令 编写在子程序中; 2)子程序标号n的范围是063; 3)子程序可以不带参数调用,也可以带参数调用。子程序可以不带参数调用,也可以带参数调用。带 参数调用的子程序必须事先在局部变量表里对参数 进行定义,最多可以传递16个参数,参数的变量名 最多为23个字符。传递的参数有IN、
3、IN_OUT、OUT 三类,IN(输入)是传入子程序的输入参数; IN_OUT(输入/输出)将参数的初始值传给子程序, 并将子程序的执行结果返回给同一地址;OUT(输 出)是子程序的执行结果,它被返回给调用它的程 序。被传递参数的数据类型有BOOL、BYTE、WORD、 INT、DWORD、DINT、REAL、STRINGL八种。 4)在现行的编程软件中,无条件子程序返回指令 (RET)为自动默认,不需要在子程序结束时输入 任何代码。执行完子程序以后,控制程序回到子程 序调用前的下一条指令。子程序可嵌套,嵌套深度 最多为8层。 2.2.指令编程举例指令编程举例 1 1)不带参数子程序调用的编程
4、)不带参数子程序调用的编程 图3-35 不带参数子程序调用指令的编程 3.3.实践一举例实践一举例 (1) 建立子程序 运行编程软件在“编辑”(Edit)菜单中的“插入”(Insert) 选项选择“子程序”(Subroutine),默认的程序名是SBR_N。 (2)子程序调用指令格式: CALL SBR_0 子程序调用指令示例程序 : 注:(子程序注:(子程序SBR_1未列出)未列出) 2 2)带参数子程序调用的编程)带参数子程序调用的编程 电动机组控制要求如下: 该组总共有3台电动机,每台电动机都要求以Y- 降压启动; 启动时,按下启动按钮,M1电动机启动,然后每 隔10S启动一台,最后M1
5、-M3三台电动机全部启动 ; 停止是实现逆序停止。即按下停止按钮,M3先停 ,过10S后M2也停止,再过10S最后M1停; 任一台电动机启动时,控制电源的接触器和Y形接 法的接触器接通电源6S后,Y形接触器断开,1S后 接法的接触器动作接通。 3.3.实践二举例实践二举例 分析:因为每台电动机的启动过程相同,所以设计一个 子程序,实现电动机的启动,然后在主程序中多次调用, 就可以实现电动机的控制。 启动按钮为I0.0,停止按钮为I0.1,(根据不同控制增 减) M1电动机中:控制电源接触器为Q0.0,Y形接触器为 Q0.1, 形接触器为Q0.2,电源接触器工作标志Q0.3 M2电动机中:控制电
6、源接触器为Q0.4,Y形接触器为 Q0.5, 形接触器为Q0.6,电源接触器工作标志Q0.7 M3电动机中:控制电源接触器为Q1.0,Y形接触器为 Q1.1, 形接触器为Q1.2,电源接触器工作标志Q1.3 编程步骤如下:编程步骤如下: 1、编辑变量声明表,并编写程序: 插入子程序,在变量声明表中,定义相关参数 编写子程序如下:编写子程序如下: 编写主程序如下:编写主程序如下: (手动切换)(手动切换) 网络网络3中程序同上所示,中程序同上所示,IN及及OUT等填入实际值等填入实际值 第一台启动第一台启动I0.0,停止,停止I0.1,切换,切换I0.2; 第二台启动第二台启动I0.3,停止,停
7、止I0.4,切换,切换I0.5; 第三台启动第三台启动I0.6,停止,停止I0.7,切换,切换I1.0 4、编写主程序如下:、编写主程序如下: (自动切换)(自动切换) 网络网络5、6中程序同上所示,中程序同上所示,IN及及OUT等填等填 入实际值,定时器为入实际值,定时器为T39 第一台启动第一台启动I0.0,停止,停止I0.1, 第二台启动第二台启动I0.3,停止,停止I0.4, 第三台启动第三台启动I0.6,停止,停止I0.7, 另一方法另一方法(时间控制自动切换时间控制自动切换) 编写编写局部变量表、局部变量表、子程序如下子程序如下: 编写主程序如下:编写主程序如下: 2.12.1:启
8、动与停止控制:启动与停止控制 2.22.2:启动计时:启动计时 2.32.3:停止计时:停止计时 100100 200200 100100 200200 2.42.4:M1M1电动机的控制电动机的控制 2.52.5:M2M2电动机的控制电动机的控制 2.62.6:M3M3电动机的控制电动机的控制 思考题思考题 请选择请选择PLC 型号、设计接线图、型号、设计接线图、I/O分配及梯形图分配及梯形图 并以课题报告的形式提交并以课题报告的形式提交 电动机组控制要求如下: 该组总共有4台电动机,每台电动机都要求以Y- 降压 启动; 启动时,按下启动按钮,M1电动机启动,然后每隔8S 启动一台,最后M1M4 四台电动机全部启动; 停止是实现逆序停止。即按下停止按钮,M4先停,过 5S后M3停止,再过10S后M2也停止,15S后M1停; 任一台电动机启动时,控制电源的接触器和Y形接法的 接触器接通电源4S后,Y形接触器断开,1S后 接法的 接触器动作接通。