项目5的任务2_第1页
项目5的任务2_第2页
项目5的任务2_第3页
项目5的任务2_第4页
项目5的任务2_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 现代电气与现代电气与 PLC应用技术应用技术 童克波童克波项目项目5 PLC对灯负载的控制对灯负载的控制 任务任务2:使用子程序调用指令实现对交通灯的控制:使用子程序调用指令实现对交通灯的控制 任务引入任务引入 在在PLC的程序编写中,有的程序段需要多次重复使用,对于这样的的程序编写中,有的程序段需要多次重复使用,对于这样的程序段我们可将其做为一个子程序供主程序调用。子程序的使用一般分程序段我们可将其做为一个子程序供主程序调用。子程序的使用一般分为两种情况:一种是我们已经提到的某程序段被反复执行,且要求每次为两种情况:一种是我们已经提到的某程序段被反复执行,且要求每次输入操作数不同的情况;另

2、外,当程序比较长时,为了使其结构清楚将输入操作数不同的情况;另外,当程序比较长时,为了使其结构清楚将其分成若干段,每一段写出一个子程序。这样,不但可以使程序脉络清其分成若干段,每一段写出一个子程序。这样,不但可以使程序脉络清晰修改方便,还可以缩短程序,减少代码长度,降低内存资源的占用,晰修改方便,还可以缩短程序,减少代码长度,降低内存资源的占用,提高程序的效率。提高程序的效率。 任务分析任务分析 要完成该任务,必须具备以下知识:要完成该任务,必须具备以下知识:1子程序调用指令子程序调用指令CALL、CRET。2上升沿输出上升沿输出EU指令和下降沿输出指令和下降沿输出ED指令。指令。 相关知识相

3、关知识 子程序操作指令有两条:子程序调用指令和子程序返回指令,其梯形图子程序操作指令有两条:子程序调用指令和子程序返回指令,其梯形图和语句表见表和语句表见表5-3所示,所示,n为子程序标号,总共可有为子程序标号,总共可有64段子程序(段子程序(0至至63)。)。1子程序调用指令子程序调用指令CALL、CRET表表5-3 子程序操作指令子程序操作指令 名称名称 格式格式子程序调用指令子程序调用指令 子程序返回指令子程序返回指令梯形图(梯形图(LAD)指令表(指令表(STL)CALL SBR_nCRET 相关知识相关知识 子程序调用由在主程序内使用的调用指令完成。当子子程序调用由在主程序内使用的调

4、用指令完成。当子程序调用允许时,调用指令将程序控制转给子程序程序调用允许时,调用指令将程序控制转给子程序(SBR_n),程序扫描将转到子程序入口处执行。当执行),程序扫描将转到子程序入口处执行。当执行子程序时,子程序将执行全部指令直至满足返回条件才返子程序时,子程序将执行全部指令直至满足返回条件才返回,或执行到子程序末尾返回。当子程序返回时,返回到回,或执行到子程序末尾返回。当子程序返回时,返回到原主程序出口的下一条指令,主程序继续往下执行。原主程序出口的下一条指令,主程序继续往下执行。1子程序调用指令子程序调用指令CALL、CRET 相关知识相关知识 使用子程序调用指令需注意以下问题:使用子

5、程序调用指令需注意以下问题: (1)子程序由子程序标号开始,到子程序返回指令结)子程序由子程序标号开始,到子程序返回指令结束。束。编程软件编程软件STEP7-Micro/WIN自动为每个子程序加入程自动为每个子程序加入程序标号和无条件返回指令,除需要有条件返回外无需手动序标号和无条件返回指令,除需要有条件返回外无需手动添加。添加。 (2)子程序允许嵌套,嵌套数最多为)子程序允许嵌套,嵌套数最多为8个。个。但是子程但是子程序不允许直接递归调用,即不能从序不允许直接递归调用,即不能从SBR_0调用调用SBR_0。要。要实现此种调用只能采用间接递归调用的方法。实现此种调用只能采用间接递归调用的方法。

6、 (3)累加器在子程序调用中是既不保存也不恢复,所)累加器在子程序调用中是既不保存也不恢复,所以累加器可在调用程序和被调用程序间传递数据。以累加器可在调用程序和被调用程序间传递数据。1子程序调用指令子程序调用指令CALL、CRET 相关知识相关知识 上升沿和下降沿输出指令的梯形图和语句表见表上升沿和下降沿输出指令的梯形图和语句表见表5-4所示。所示。2上升沿输出上升沿输出EU指令和下降沿输出指令和下降沿输出ED指令指令表表5-4 边沿检测指令边沿检测指令 名称名称 格式格式上升沿输出指令上升沿输出指令 下降沿输出指令下降沿输出指令梯形图(梯形图(LAD)指令表(指令表(STL)EUED 相关知

7、识相关知识 (1)EU指令是对其之前的逻辑运算结果的上升沿产生一个扫描周期的脉冲。指令是对其之前的逻辑运算结果的上升沿产生一个扫描周期的脉冲。(2)ED指令是对其之前的逻辑运算结果的下降沿产生一个扫描周期的脉冲。指令是对其之前的逻辑运算结果的下降沿产生一个扫描周期的脉冲。 边沿检测指令程序中应用的梯形图和时序图如图边沿检测指令程序中应用的梯形图和时序图如图5-10所示。所示。2上升沿输出上升沿输出EU指令和下降沿输出指令和下降沿输出ED指令指令图图5-10 边沿检测指令梯形图和时序图边沿检测指令梯形图和时序图 相关知识相关知识 应用子程序调用指令的程序如图应用子程序调用指令的程序如图5-11所

8、示。当所示。当I0.1、I0.2分别接通时,将其相分别接通时,将其相应的数据传送到应的数据传送到VW10和和VW20中,并调用子程序;而子程序所完成的工作是,中,并调用子程序;而子程序所完成的工作是,将将VW10和和VW20中的数据相加并将此相加后的数据送中的数据相加并将此相加后的数据送VW30中存储。中存储。3子程序调用指令实例子程序调用指令实例图图5-11 子程序调用程序子程序调用程序表表5-1 交通信号灯控制要求交通信号灯控制要求 任务实施任务实施使用子程序调用指令实现对交通灯的控制使用子程序调用指令实现对交通灯的控制东东西西向向绿灯绿灯Q0.0Q0.0绿灯绿灯Q0.0Q0.0闪烁闪烁黄

9、灯黄灯Q0.1Q0.1红灯红灯Q0.2Q0.230S OFF 1S ON 1S 2次次4S南南北北向向红灯红灯Q0.3Q0.3绿灯绿灯Q0.4Q0.4绿灯绿灯Q0.4Q0.4闪烁闪烁黄灯黄灯Q0.5Q0.520S OFF 1S ON 1S 2次次4S 任务实施任务实施使用子程序调用指令实现对交通灯的控制使用子程序调用指令实现对交通灯的控制(1)控制要求分析。)控制要求分析。根据控制要求,画出该控制系统各信号的工作时序图,如图根据控制要求,画出该控制系统各信号的工作时序图,如图5-6所示。所示。5-6 交通信号灯工作时序图交通信号灯工作时序图 任务实施任务实施使用子程序调用指令实现对交通灯的控制

10、使用子程序调用指令实现对交通灯的控制表表5-2 输入输出信号分配表输入输出信号分配表(2)设计步骤)设计步骤 。 1)I/O信号分配。输入输出信号分配见表信号分配。输入输出信号分配见表5-2所示。所示。输输 入(入(I)输输 出(出(O)元件元件功能功能信号地址信号地址元件元件功能功能信号地址信号地址按钮按钮SB1信号灯启动信号灯启动I0.0HL1、HL7东西绿灯东西绿灯Q0.0HL2、HL8东西黄灯东西黄灯Q0.1HL3、HL9东西红灯东西红灯Q0.2按钮按钮SB2信号灯停止信号灯停止I0.1HL4、HL10南北绿灯南北绿灯Q0.3HL5、HL11南北黄灯南北黄灯Q0.4HL6、HL12南北

11、红灯南北红灯Q0.5 任务实施任务实施使用子程序调用指令实现对交通灯的控制使用子程序调用指令实现对交通灯的控制图图5-12 交通灯控制主程序交通灯控制主程序(3)程序设计。)程序设计。我们可以将任务一程序中的振荡程序做为一个子程序,每当主我们可以将任务一程序中的振荡程序做为一个子程序,每当主程序运行到要求信号灯闪烁时便调用子程序来完成这一功能。其梯形图见图程序运行到要求信号灯闪烁时便调用子程序来完成这一功能。其梯形图见图5-12所示。所示。 任务实施任务实施用用PLC逻辑指令实现对交通灯的控制逻辑指令实现对交通灯的控制 图图5-12 交通灯控制主程序交通灯控制主程序 信号灯闪烁子程序信号灯闪烁

12、子程序 2)程序设计的梯形图、指令表如图)程序设计的梯形图、指令表如图5-12所示。所示。 算术运算指令有算术运算指令有加、减、乘、除加、减、乘、除等四则运算,处理的等四则运算,处理的数据类型有数据类型有整数、双整数整数、双整数和和实数实数。加法指令能实现。加法指令能实现两个有两个有符号数符号数的相加操作,减法指令能实现的相加操作,减法指令能实现两个有符号数两个有符号数的相减的相减操作,普通乘法指令能实现操作,普通乘法指令能实现两个有符号数的两个有符号数的相乘操作,普相乘操作,普通除法指令能实现通除法指令能实现两个有符号数两个有符号数的相除操作(不保留余的相除操作(不保留余数)。在运算时,如果

13、是数)。在运算时,如果是整数运算整数运算指令,则要进行运算的指令,则要进行运算的两个操作数都必须是整数两个操作数都必须是整数,其,其结果结果也将是也将是整数整数;双整数和;双整数和实数指令亦然。实数指令亦然。 知识拓展知识拓展1算术运算指令(加、减、乘、除)算术运算指令(加、减、乘、除) (1)加法指令)加法指令ADD。ADD是对有符号数进行加操作,即是对有符号数进行加操作,即IN1+IN2=OUT,它包括整数加法、双整数加法、实数加法,其指令格式见表它包括整数加法、双整数加法、实数加法,其指令格式见表5-5所示。所示。 知识拓展知识拓展1算术运算指令(加、减、乘、除)算术运算指令(加、减、乘

14、、除) 表表5-5 加法运算指令梯形图和语句表加法运算指令梯形图和语句表项项 目目整数加法整数加法双整数加法双整数加法实数加法实数加法梯形图梯形图(LADLAD)指令表指令表(STLSTL)+I IN2,OUT+D IN2,OUT+R IN2,OUT 指令说明:指令说明: 1)IN1、IN2为参加运算的源操作数,为参加运算的源操作数,OUT为存储运算为存储运算结果的目标操作数。结果的目标操作数。 2)整数加法运算是将单字长()整数加法运算是将单字长(16位)有符号整数位)有符号整数IN1和和IN2相加,运算结果送到相加,运算结果送到OUT指定的存储器单元,输出结指定的存储器单元,输出结果为果为

15、16位。位。 3)双整数加法运算是将双字长()双整数加法运算是将双字长(32位)有符号双整数位)有符号双整数IN1和和IN2相加,运算结果送到相加,运算结果送到OUT指定的存储器单元,输指定的存储器单元,输出结果为出结果为32位。位。 4)实数加法运算是将双字长()实数加法运算是将双字长(32位)有符号实数位)有符号实数IN1和和IN2相加,运算结果送到相加,运算结果送到OUT指定的存储器单元,输出结指定的存储器单元,输出结果为果为32位。位。 知识拓展知识拓展1算术运算指令(加、减、乘、除)算术运算指令(加、减、乘、除) (2)减法指令)减法指令SUB。SUB是对有符号数进行相减操作,即是对

16、有符号数进行相减操作,即IN1-IN2=OUT,它包括整数减法、双整数减法、实数减法,其指令格式见表,它包括整数减法、双整数减法、实数减法,其指令格式见表5-6所所示。示。 知识拓展知识拓展1算术运算指令(加、减、乘、除)算术运算指令(加、减、乘、除)表表5-6 减法运算指令梯形图和语句表减法运算指令梯形图和语句表 项项 目目整数减法整数减法双整数减法双整数减法实数减法实数减法梯形图梯形图(LADLAD)指令表指令表(STLSTL)-I IN2,OUT-D IN2,OUT-R IN2,OUT 指令说明:指令说明: 1)IN1、IN2为参加运算的源操作数,为参加运算的源操作数,OUT为存储运算为

17、存储运算结果的目标操作数。结果的目标操作数。 2)整数减法运算是将单字长()整数减法运算是将单字长(16位)有符号整数位)有符号整数IN1和和IN2相减,运算结果送到相减,运算结果送到OUT指定的存储器单元,输出结指定的存储器单元,输出结果为果为16位。位。 3)双整数减法运算是将双字长()双整数减法运算是将双字长(32位)有符号双整数位)有符号双整数IN1和和IN2相减,运算结果送到相减,运算结果送到OUT指定的存储器单元,输指定的存储器单元,输出结果为出结果为32位。位。 4)实数减法运算是将双字长()实数减法运算是将双字长(32位)有符号实数位)有符号实数IN1和和IN2相减,运算结果送

18、到相减,运算结果送到OUT指定的存储器单元,输出结指定的存储器单元,输出结果为果为32位。位。 知识拓展知识拓展1算术运算指令(加、减、乘、除)算术运算指令(加、减、乘、除) (3)乘法指令)乘法指令MUL。MUL是对有符号数进行乘法操作,即是对有符号数进行乘法操作,即IN1IN2=OUT,它包括整数乘法、双整数乘法、实数乘法、整数相乘双整数输出,其指令格式它包括整数乘法、双整数乘法、实数乘法、整数相乘双整数输出,其指令格式见表见表5-7所示。所示。 知识拓展知识拓展1算术运算指令(加、减、乘、除)算术运算指令(加、减、乘、除) 表表5-7 乘法运算指令梯形图和语句表乘法运算指令梯形图和语句表

19、项项 目目整数整数乘乘法法双整数双整数乘乘法法实数实数乘乘法法整数相整数相乘双整数输出乘双整数输出梯形图梯形图(LADLAD)指令表指令表(STLSTL)*I IN2,OUT*D IN2,OUT*R IN2,OUTMUL IN2,OUT 指令说明:指令说明: 1)IN1、IN2为参加运算的源操作数,为参加运算的源操作数,OUT为存储运算结果的目标为存储运算结果的目标操作数。操作数。 2)整数乘法运算是将单字长()整数乘法运算是将单字长(16位)有符号整数位)有符号整数IN1和和IN2相乘,相乘,运算结果送到运算结果送到OUT指定的存储器单元,输出结果为指定的存储器单元,输出结果为16位。位。

20、3)双整数乘法运算是将双字长()双整数乘法运算是将双字长(32位)有符号双整数位)有符号双整数IN1和和IN2相相乘,运算结果送到乘,运算结果送到OUT指定的存储器单元,输出结果为指定的存储器单元,输出结果为32位。位。 4)实数乘法运算是将双字长()实数乘法运算是将双字长(32位)有符号实数位)有符号实数IN1和和IN2相乘,相乘,运算结果送到运算结果送到OUT指定的存储器单元,输出结果为指定的存储器单元,输出结果为32位。位。 5)整数相乘双整数输出是将单字长()整数相乘双整数输出是将单字长(16位)有符号整数位)有符号整数IN1和和IN2相乘,运算结果送到相乘,运算结果送到OUT指定的存

21、储器单元,输出结果为指定的存储器单元,输出结果为32位。位。 6)整数数据做乘)整数数据做乘2运算,相当于其二进制形式左移运算,相当于其二进制形式左移1位;做乘位;做乘4运运算,相当于其二进制形式左移算,相当于其二进制形式左移2位;做乘位;做乘8运算,相当于其二进制形式左运算,相当于其二进制形式左移移3位;如此类推。位;如此类推。 知识拓展知识拓展1算术运算指令(加、减、乘、除)算术运算指令(加、减、乘、除) (4)除法指令)除法指令DIV。DIV是对有符号数进行除法操作,即是对有符号数进行除法操作,即IN1IN2=OUT,它包括整数除法、双整数除法、实数除法、整数除法运算双整数输出。其指令它

22、包括整数除法、双整数除法、实数除法、整数除法运算双整数输出。其指令格式见表格式见表5-8所示。所示。 知识拓展知识拓展1算术运算指令(加、减、乘、除)算术运算指令(加、减、乘、除) 表表5-8 除法运算指令梯形图和语句表除法运算指令梯形图和语句表项项 目目整数整数除除法法双整数双整数除除法法实数实数除除法法整数相整数相除双整数输出除双整数输出梯形图梯形图(LADLAD)指令表指令表(STLSTL)/I IN2,OUT/D IN2,OUT/R IN2,OUTDIV IN2,OUT 指令说明:指令说明: 1)IN1、IN2为参加运算的源操作数,为参加运算的源操作数,OUT为存储运算结果的目标为存储运算结果的目标操作数。操作数。 2)整数除法运算是将单字长()整数除法运算是将单字长(16位)有符号整数位)有符号整数IN1和和IN2相除,相除,运算结果送到运算结果送到OUT指定的存储器单元,输出结果为指定的存储器单元,输出结果为16位。位。 3)双整数除法运算是将双字长()双整数除法运算是将双字长(32位)有符号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论