论文部分内容阅读
摘 要:针对机电专业的学生学习西门子功能编程语言比较困难,功能编程语言经常用到子程序,从子程序的特点,运行方式,举例应用完整技术介绍了子功能编程,写程序时经常用到子程序,它是架构式的编程,学习西门子功能指令的重点和难点。本文研究分析了西门子编程语言《子程序的调用》,希望为广大读者提供参考。
关键词:程序特点 运行方式 梯形图
中图分类号:TP39 文献标识码:A 文章编号:1674-098X(2019)02(a)-0148-02
1 子程序的特点
(1)子程序只有在主程序发出调用指令的时候才运行,运行完毕后,自动返回主程序,所以不用每个扫描周期都执行,这样可以减少整个程序的运行时间,对于一些初始化的程序,写在子程里比较合适。(2)S7-200 CPU可以写64个子程序(0-63) CPU226XM还可以写128个子程序(0-127)。(3)子程序可以嵌套使用(主程序中调用子程序,子程序再调用子程序),最大嵌套深度为8级,但是中断程序里不能嵌套子程序。(4)子程序默认的名称是SBR_n。(n子程序编号)也可以修改。
2 子程序的运行方式
(1)并列运行,一个程序中有多个子程序,之间没有嵌套的关系,是并列的,只要调用的条件满足,这个子程序就能被运行。(2)嵌套运行,主程序调用子程序,子程序还可以再调用子程序,这种方式叫做嵌套,最多可以嵌套8层,这种情况下,各个子程序的运行有先后之分。(3)在子程序中不能使用END(结束指令),每一个每一个子程序在编译时编译器自动在子程序的最后加入无条件返回指令,当用户需要编程实现有条件返回时,可以在子程序使用有条件返回RET指令。(4)带参数调用子程序。在调用子程序时可以带参数调用。参数在子程序的局部变量表中定义。每一个参数需要定义一个符号名(最多为23个字符),选择变量类型和数据类型。在参数条用子程序时可以向子程序交接16个参数或从子程序交接16个参数。(5)子程序的局部变量表中的变量类型区定义交接参数和临时参数:IN、IN OUT、OUT和TEMP。
下面通过这个例子说明主程序怎样调用子程序:
有两个电动机,分別接在Q0.0和Q0.1上,I0.0控制电动机1(Q0.0)启动,IO.1控制电动机1(Q0.0)停止;I0.2控制电动机2(QO.1)启动,IO.3控制电动机2(Q0.1)停止。
解:第一步:要求用局部変量,子程序调用来完成。先建立变量,选择子程序,默认的变量有IN,OUT等,定义“启动”。选择变量类型是位元件BOOL,它自动调用了变量L0.0,定义“停止”,同样选择位元件,它自动调用了变量L0.1,定义“电动机”,它用了IN和OUT,一个线圈和一个触点,同样选择位元件,它自动调用了变量L0.2,主程序先接触这个变量,然后再交给子程序,如状态表1所示。
第二步:要求用局部変量,子程序調用来完成。分析:在子程序中建立局部変量,変量符号用“启动”、“停止”、“电动机”命名。在子程序中写出込些局部変量之同的控制逻辑关系,在主程序中凋用这些変量,如图1所示。
第三步:主程序启动SM0.0它就调用了子程序中L0.0,L0.1.L0.2启动、停止、电动机三个之间的关系,IO.2接通。Q0.1電动机启动有输出并且自保持,Q0.1显示“1”IO.3接通。Q0.1电动机停止,Q0.1显示“0”如图2所示。同样主程序启动SM0.0它就调用了子程序中L0.0,L0.1.L0.2启动、停止、电动机三个之间的关系,IO.0接通,Q0.0电动机启动有输出并且自保持,Q0.1显示“1”IO.1接通。Q0.1电动机停止,Q0.1显示“0”如图3所示。
参考文献
[1] 廖常初.S7-200PLC基础教程[M].北京:机械工业出版社,2009.
[2] 王兆宇,王洪权.西门子PLC电气设计与编程自学宝典[M].北京:中国电力出版社,2015.
[3] 吴永平,奚茂龙.西门子PLC其他操作技术[M].北京:化学工业出版社,2017.
关键词:程序特点 运行方式 梯形图
中图分类号:TP39 文献标识码:A 文章编号:1674-098X(2019)02(a)-0148-02
1 子程序的特点
(1)子程序只有在主程序发出调用指令的时候才运行,运行完毕后,自动返回主程序,所以不用每个扫描周期都执行,这样可以减少整个程序的运行时间,对于一些初始化的程序,写在子程里比较合适。(2)S7-200 CPU可以写64个子程序(0-63) CPU226XM还可以写128个子程序(0-127)。(3)子程序可以嵌套使用(主程序中调用子程序,子程序再调用子程序),最大嵌套深度为8级,但是中断程序里不能嵌套子程序。(4)子程序默认的名称是SBR_n。(n子程序编号)也可以修改。
2 子程序的运行方式
(1)并列运行,一个程序中有多个子程序,之间没有嵌套的关系,是并列的,只要调用的条件满足,这个子程序就能被运行。(2)嵌套运行,主程序调用子程序,子程序还可以再调用子程序,这种方式叫做嵌套,最多可以嵌套8层,这种情况下,各个子程序的运行有先后之分。(3)在子程序中不能使用END(结束指令),每一个每一个子程序在编译时编译器自动在子程序的最后加入无条件返回指令,当用户需要编程实现有条件返回时,可以在子程序使用有条件返回RET指令。(4)带参数调用子程序。在调用子程序时可以带参数调用。参数在子程序的局部变量表中定义。每一个参数需要定义一个符号名(最多为23个字符),选择变量类型和数据类型。在参数条用子程序时可以向子程序交接16个参数或从子程序交接16个参数。(5)子程序的局部变量表中的变量类型区定义交接参数和临时参数:IN、IN OUT、OUT和TEMP。
下面通过这个例子说明主程序怎样调用子程序:
有两个电动机,分別接在Q0.0和Q0.1上,I0.0控制电动机1(Q0.0)启动,IO.1控制电动机1(Q0.0)停止;I0.2控制电动机2(QO.1)启动,IO.3控制电动机2(Q0.1)停止。
解:第一步:要求用局部変量,子程序调用来完成。先建立变量,选择子程序,默认的变量有IN,OUT等,定义“启动”。选择变量类型是位元件BOOL,它自动调用了变量L0.0,定义“停止”,同样选择位元件,它自动调用了变量L0.1,定义“电动机”,它用了IN和OUT,一个线圈和一个触点,同样选择位元件,它自动调用了变量L0.2,主程序先接触这个变量,然后再交给子程序,如状态表1所示。
第二步:要求用局部変量,子程序調用来完成。分析:在子程序中建立局部変量,変量符号用“启动”、“停止”、“电动机”命名。在子程序中写出込些局部変量之同的控制逻辑关系,在主程序中凋用这些変量,如图1所示。
第三步:主程序启动SM0.0它就调用了子程序中L0.0,L0.1.L0.2启动、停止、电动机三个之间的关系,IO.2接通。Q0.1電动机启动有输出并且自保持,Q0.1显示“1”IO.3接通。Q0.1电动机停止,Q0.1显示“0”如图2所示。同样主程序启动SM0.0它就调用了子程序中L0.0,L0.1.L0.2启动、停止、电动机三个之间的关系,IO.0接通,Q0.0电动机启动有输出并且自保持,Q0.1显示“1”IO.1接通。Q0.1电动机停止,Q0.1显示“0”如图3所示。
参考文献
[1] 廖常初.S7-200PLC基础教程[M].北京:机械工业出版社,2009.
[2] 王兆宇,王洪权.西门子PLC电气设计与编程自学宝典[M].北京:中国电力出版社,2015.
[3] 吴永平,奚茂龙.西门子PLC其他操作技术[M].北京:化学工业出版社,2017.