西门子S7-200 PLC把程序主要分为三大类:主程序、子程序和中断程序。在实际应用中有些程序内容可能被反复使用,对那些需要经常执行的程序段,可设计成子程序的形式,并为每个子程序赋以不同的编号,在程序执行的过程中,可随时调用某个编号的子程序。
子程序的优点在于它可以用于对一个大的程序进行分段及分块,使其成为较小的更易管理的程序块。程序调试、程序检查和程序维护时,可充分利用这项优势。子程序只在需要时才被调用、执行。这样就可以更有效地使用PLC,充分利用CPU的时间。
1)子程序的建立。可以采用下列方法创建子程序:
·在编辑环境的程序块中点击鼠标右键,选择“插入子程序SBR_n”(n的范围为:0~63)。
·从编辑菜单中,选择插入子程序SBR_n。
只要插入了子程序,程序编辑器底部就将出现一个新标签,标志新的子程序名。此时,可以对新的子程序编程。
2)为子程序定义参数
根据子程序有无参数,可以将子程序分为有参子程序和无参子程序,如果该子程序带有参数,就要使用该子程序的局部变量表来定义参数。S7-200为每个程序都安排了局部变量表,必须利用选定该子程序后出现的局部变量表为该子程序的局部变量,S7-200对其局部变量参数有以下规定:
·子程序在带参数调用时,Zui多可以带16个参数。每个参数包含变量名、变量类型和数据类型。这些参数在子程序的局部变量表中进行定义。
·变量名由不超过8个字符的字母和数字组成,但第一个字符必须是字母。 ·变量类型:在子程序带参数调用时可以使用4种变量类型,根据数据传递的方向,依次安排这些变量类型在局部变量表中的位置,包含:
①IN类型(传入子程序型)。
②IN/OUT类型(传入/传出子程序型,调用子程序时,将指定地址的参数传入子程序,子程序执行结束时,将得到的结果值返回达到同一个地址)。
③OUT类型(传出子程序型)。
④TEMP类型(暂时型,用于在子程序内部暂时存储数据,不能用来与主程序传递参数数据)。
·变量的数据类型,可以是:
①布尔能流型( BOOL):该数据类型仅对位输入操作有效,它是位逻辑运算的结果。对能流输入类型的数据,要安排在局部变量表的Zui前面。
②布尔型( BOOL):该数据类型用于单独的位输入和位输出。
③字节型( BYTE)、字型(WORD)、双字型(DWORD):该数据类型分别用于说明1个字节、2个字节和4个字节的无符号的输入参数或输出参数。
④整数( INT)和双整数型(DINT):该数据类型分别用于说明2个字节和4个字节的有符号的输入参数或输出参数。
⑤实数型( REAL):该数据类型用于说明IEEE标准的32位浮点输入参数或输出参数。
【例1】 SBR1子程序是一个含有4个输入参数、1个输入输出参数、1个输出参数的带参数的子程序。在创建这个子程序时,首先要打开这个子程序的“SIMATIC LAD”(局部变量表)。在局部变量表中,为这6个参数赋予名称(如IN1、IN2、IN3、IN4、INOUT、OUT),然后选定变量类型(IN或者IN OUT或者OUT),并赋予正确的数据类型(如BOOL、BYTE、BOOL、WORD、DWORD、WORD),见下表:
局部变量表
注:首先完成局部变量表SBR1的编辑,这时再调用SBR1时,这个子程序自然就带参数了。表中局部变量一项(L区)参数是自动形成的,不需用户填写。
3)子程序调用指令和返回指令
子程序调用指令CALL的功能是将程序执行转移到编号为n的子程序。
子程序的入口用指令SBR n表示,在子程序执行过程中,子程序将执行全部指令直至满足返回条件而返回,或者执行到子程序末尾而返回。当子程序返回时,返回到原主程序出口的下一条指令执行,继续向下扫描程序。
在梯形图中,子程序调用指令以功能框形式编程,子程序返回指令以线圈形式编程,如下图所示,其中调用指令“CALL SBR_1”,也可写成“CALL 1”。
子程序调用及返回指令
4)子程序编程步骤
①建立子程序( SBR_n)。
②在子程序( SBR_n)中编写应用程序,如果子程序带有参数,应首先在子程序中填写局部变量表,然后再编写应用程序。
③在主程序或其他子程序中编写调用子程序(SBR_n)指令。
5)注意事项
①程序内一共可有64个子程序,允许子程序嵌套调用(在子程序内放置子程序的调用指令),嵌套深度Zui多为8重。
②S7-200不允许直接递归调用(例如,不能在SBR0中调用SBR0),但允许间接递归。
③各子程序的参数Zui大限制是16个,如果要下载的程序超过此限制,将返回错误。
④用Micro/WIN32软件编程时,编程人员不用手工输入RET指令,而是由软件自动加在每个子程序的结束处,在子程序中不能使用END指令。
【例2】 采用子程序的形式来控制一台交流电动机的起/停控制,系统的I/O分配为:
电动机起动按钮(常开):I0.0;停止按钮(常开);I0.1;电动机电源接触器:Q0.0编程步骤:
①采用子程序编写电动机的起/停控制,则该子程序一定带有参数,且需要2个输入参数,1个输出参数。所以建立子程序SBR0后,应先填写局部变量表,见下表。
SBR0局部变量表
②填写完局部变量表后,就可以编写应用程序,应采用名称作为指令的操作数。
③在主程序中应一直(采用常闭点SM0.0)调用子程序SBR0。具体的子程序及主程序如下图所示。
子程序编程举例
- 【西门子PLC编程实例】西门子S7-300 PLC如何控制变频器实现三段速运行? 2024-11-10
- 详解PLC直接寻址与间接寻址 2024-11-10
- 西门子S7-200与S7-300的区别是什么?西门子S7-300的特点有哪些? 2024-11-10
- PLC如何选型?西门子PLC、三菱PLC或者其它品牌我们该如何选用? 2024-11-10
- PID的作用是什么?如何实现西门子S7-1500的PID功能?如何进行PID调试? 2024-11-10
- Wincc与西门子PLC的通讯方式有哪几种? 2024-11-10
- 西门子S7-200 SMART如何通过MODBUS协议与称重仪表通讯? 2024-11-10
- 博途软件PLCSIM仿真工具如何使用S7-1500 PLC仿真功能? 2024-11-10
- 什么是组态?博途软件如何高效组态? 2024-11-10
- 如何组态PLC块中的结构变量使其连接能在WinCC中使用 2024-11-10
- 西门子S7-200 SMART运动控制功能程序如何编写?如何测试程序?运动控制面板如何使用? 2024-11-10
- 西门子S7-200模拟量使用中的16个基本问题,一定要搞清楚 2024-11-10
- 变频器维修实例(值得收藏) 2024-11-10
- PLC编程实例,基本电路设计方法 2024-11-10
- PLC如何控制变频器?接线图详解 2024-11-10
联系方式
- 电 话:13922889745
- 经理:向小姐
- 手 机:18475208684
- 微 信:18475208684