实训六、循环指令、跳转指令、顺控继电器(SCR)指令应用
- 格式:doc
- 大小:246.00 KB
- 文档页数:6
顺序控制指令及应用实例一个复杂的任务往往可以分成若干个小任务,当按一定的顺序完成这些小任务后,整个大任务也就完成了。
在生产实践中,顺序控制是指按照一定的顺序逐步控制来完成各个工序的控制方式。
在采用顺序控制时,为了直观表示出控制过程,可以绘制顺序控制图。
图1是一个3台电动机顺序控制图,由于每一个步骤称作一个工艺,所以又称工序图。
在PLC编程时,绘制的顺序控制图称为状态转移图或功能图,简称SFC图,图1b为图1a对应的状态转移图。
图1 一种3台电动机顺序控制图顺序控制有3个要素:转移条件、转移目标和工作任务。
在图1a 中,当上一个工序需要转到下一个工序时必须满足一定的转移条件,如工序1要转到下一个工序2时,需按下启动按钮SB2,若不按下SB2,就无法进行下一个工序2,按下SB2即为转移条件。
当转移条件满足后,需要确定转移目标,如工序1转移目标是工序2。
每个工序都有具体的工作任务,如工序1的工作任务是“起动第一台电动机”。
PLC编程时绘制的状态转移图与顺序控制图相似,图1b中的状态元件(状态继电器)S0.1相当于工序1,“S Q0.0,1”相当于工作任务,S0.1的转移目标是S0.2,S0.6的转移目标是S0.0,SM0.1和S0.0用来完成准备工作,其中SM0.1为初始脉冲继电器,PLC启动时触点会自动接通一个扫描周期,S0.0为初始状态继电器,每个SFC图必须要有一个初始状态,绘制SFC图时要加双线矩形框。
01class顺序控制指令顺序控制指令用来编写顺序控制程序,S7-200 PLC有3条常用的顺序控制指令。
顺序控制指令使用及说明如图2所示,图2a为梯形图,图2b为状态转移图。
从图中可以看出,顺序控制程序由多个SCR程序段组成,每个SCR程序段以LSCR指令开始、以SCRE指令结束,程序段之间的转移使用SCRT指令,当执行SCRT指令时,会将指定程序段的状态器激活(即置1),使之成为活动步程序,该程序段被执行,同时自动将前程序段的状态器和元件复位(即置0)。
单片机指令的循环和跳转控制循环和跳转控制是单片机编程中非常重要的概念和技巧。
通过合理使用循环结构和跳转指令,我们可以实现程序的流程控制和条件判断,从而使单片机能够按照我们的设计完成各种任务。
本文将介绍单片机指令中循环和跳转控制的相关知识和应用。
一、循环控制在编写单片机程序时,经常需要重复执行某段代码,这就用到了循环控制。
循环控制的实现依赖于"循环指令",常见的循环指令有"循环"、"重复"、"计数循环"等。
这些指令的作用是使程序在满足条件的情况下重复执行一段代码块,直到条件不满足时退出循环。
例如,我们想实现一个程序,让LED灯循环闪烁5次。
可以使用如下的代码:```MOV R0, #0 ;将寄存器R0清零,用于计数LOOP:SETB P1.0 ;点亮LED灯ACALL DELAY ;延时一段时间CLR P1.0 ;熄灭LED灯ACALL DELAY ;延时一段时间INC R0 ;计数器自增CJNE R0, #5, LOOP ;如果R0不等于5,则跳转到LOOP标记处;循环结束,执行其他代码```上述代码使用循环指令实现了重复执行LED灯点亮和熄灭的动作。
通过计数器R0的判断,当R0不等于5时跳转到LOOP标记处继续执行循环。
二、跳转控制跳转控制是单片机指令中另一个重要的概念,它指的是在程序执行过程中,根据条件或者需要,跳转到程序的其他位置执行。
跳转指令包括"无条件跳转"和"有条件跳转"两种形式。
1. 无条件跳转无条件跳转指令如"跳转"、"返回"等,它们的作用是直接跳转到指定的程序地址。
无条件跳转通常用于程序间的跳转、循环控制、子程序的调用和返回等。
例如,下面的代码实现了一个简单的函数调用:```MAIN:ACALL FUNC ;调用FUNC函数;执行其他代码FUNC:;函数体代码RET ;返回到调用FUNC函数的程序地址```在上述示例中,程序从MAIN标记处调用FUNC函数,然后执行FUNC函数的代码,最后通过RET指令返回到调用FUNC函数的程序地址继续执行。
顺控指令的使用方法和注意事项一、顺控指令的基本概念顺控指令是一种用于控制和管理计算机程序执行顺序的指令。
顺控指令通常用于控制程序的流程和执行顺序,可以帮助程序员实现条件分支、循环、跳转等操作。
不同的编程语言可能会有不同的顺控指令,如if、else、while、for等。
这些顺控指令可以帮助程序员控制程序的执行流程,使程序具有更高的灵活性和可控制性。
二、顺控指令的使用方法1. 条件判断条件判断是顺控指令的一种常见用法。
程序员可以使用条件判断指令来根据条件的真假执行不同的程序分支。
在大多数编程语言中,条件判断通常使用if、else等关键字来实现。
例如,在C语言中,可以使用以下语法实现条件判断:```if (条件) {// 程序代码} else {// 程序代码}```这样就可以根据条件的真假执行不同的程序分支。
2. 循环控制循环控制是顺控指令的另一种常见用法。
程序员可以使用循环控制指令来重复执行相同的程序代码,直到满足退出条件为止。
在大多数编程语言中,循环控制通常使用for、while 等关键字来实现。
例如,在C语言中,可以使用以下语法实现循环控制:```for (初始化; 条件; 迭代) {// 程序代码}```另外,还可以使用while语句来实现循环控制:```while (条件) {// 程序代码}```这样就可以重复执行相同的程序代码,直到满足退出条件为止。
3. 跳转操作跳转操作是顺控指令的另一种常见用法。
程序员可以使用跳转指令来改变程序执行的顺序,从而实现程序的跳转和分支。
在大多数编程语言中,跳转操作通常使用goto、break、continue等关键字来实现。
例如,在C语言中,可以使用以下语法实现跳转操作:```if (条件) {// 程序代码continue;}```这样就可以根据条件跳转到指定的位置执行程序代码。
三、顺控指令的注意事项1. 控制流程清晰使用顺控指令时,需要确保程序的执行流程清晰明了。
单片机指令的循环控制与跳转指令单片机指令的循环控制与跳转指令是在单片机程序设计中非常重要的一部分。
通过使用循环控制指令,可以实现程序的循环执行,从而提高程序的效率和灵活性。
而跳转指令则可以改变程序的执行顺序,实现条件判断和跳转至指定位置的功能。
本文将详细介绍单片机指令的循环控制与跳转指令的分类及使用方法。
一、循环控制指令循环控制指令主要通过设置计数器或判断条件是否满足来实现程序的循环执行。
常用的循环控制指令有:循环计数指令、循环条件判断指令和循环控制指令。
1. 循环计数指令循环计数指令是通过设置计数器来实现循环执行的,其中最常用的指令是“循环次数”指令。
这种指令会将一个寄存器初始化为一个初始值,并在每次循环执行时,自动将该寄存器的值减1,直到该寄存器的值为0时,跳出循环。
例如,在8051单片机中,循环计数指令可以使用“DJNZ”(Decrement and Jump if Not Zero)指令来实现。
具体语法为:DJNZ A, label其中,A为一个寄存器,初始值为循环次数。
label是跳转的目标地址,即循环体的开始地址。
每次循环执行时,A的值会自动减1,并判断是否为0,如果不为0,则跳转至label位置继续执行,否则跳出循环。
2. 循环条件判断指令循环条件判断指令是通过判断一个条件是否成立来控制循环执行的。
常见的循环条件判断指令有“JZ”(Jump if Zero)和“JNZ”(Jump if Not Zero)指令。
“JZ”指令用于判断一个寄存器或内存单元的值是否为0,如果为0,则跳转至指定地址继续执行;如果不为0,则程序继续顺序执行。
“JNZ”指令则与之相反,用于判断一个寄存器或内存单元的值是否不为0,如果不为0,则跳转至指定地址继续执行;如果为0,则程序继续顺序执行。
3. 循环控制指令除了通过计数和条件判断来控制循环执行外,还可以使用循环控制指令来实现循环执行的控制。
8051单片机中常用的循环控制指令有“CJNE”(Compare and Jump if Not Equal)指令和“JC”(Jump if Carry)指令。
课题实训七、子程序调用指令基本知识6课时教学要求知识目标能力目标情感目标教材分析重点难点教具与设备教法教授法、演示法、实验法板书设计教学内容复习:循环指令在的具体显现。
跳转指令有哪些?顺控继电器(SCR)指令可以应用在哪些现象中?新课教学:子程序是将程序进行分块。
主程序中使用的指令决定具体子程序的执行状况。
当主程序调用子程序并执行时,子程序执行全部指令直至结束。
然后,系统将控制返回至调用子程序网络中的主程序。
子程序用于为程序分段和分块,使其成为较小的、更易管理的块。
在程序中调试和维护时,可以利用这项优势。
通过使用较小的程序块,对这些区域和整个程序简单地进行调试和排除故障。
只在需要时才调用程序块,可以更有效地使用PLC,因为所有的程序块可能无须执行每次扫描。
子程序是应用程序中的可选组件,只有被主程序、中断程序或者其他子程序调用时,子程序才会执行。
调用子程序时可以带参数也可以不带参数。
1.子程序指令格式及功能类型梯形图指令功能子程序调用子程序调用指令(CALL)将程序控制权交给子程序SBR_N。
调用子程序时可以不带参数。
子程序执行完成后,控制权返回到调用子程序的指令的下一条指令。
带参数子程序调用子程序可以包含要传递的参数。
参数在子程序的局部变量表中定义。
参数必须有变量名(最多23个字符)、变量类型和数据类型。
一个子程序最多可以传递16个参数。
子程序有条件返回指令根据前一个逻辑终止子程序。
子程序无条件返回无系统能为每个子程序自动加入无条件返回指令当有一个子程序被调用时,系统会保存当前的逻辑堆栈,置栈顶值为1,堆栈的其他值为零,把控制交给被调用的子程序。
当子程序完成之后,恢复逻辑堆栈,把控制权交还给调用程序。
因为累加器可在主程序和子程序之间自由传递,所以在子程序调用时,累加器的值既不保存也不恢复。
当子程序在同一个周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器指令。
在被中断服务程序调用的子程序中不能再出现子程序调用。
课题
实训六、循环指令、跳转指令、顺控继电器(SCR)指令应用
6课时
教学要求知识目标能力目标情感目标
教材
分析
重点
难点
教具与设备
教法教授法、演示法、实验法
板书
设计
教学内容
复习:
定时器有哪些?
增减计数器指令的应用?
字、字节、双数、实数是什么?
新课教学:
(一)循环指令基本知识
1.循环指令格式及功能
西门子S7-200 PLC循环制指令用于控制一段程序的重复执行。
它是由FOR和NEXT两部分指令构成循环体系。
FOR/NEXT必须成对使用。
循环其格式及功能如下表。
梯形图
参数功能 指令功能
EN 使能位 当EN 使能有效时,自动将各参数复位,循环体开始执行,执行到NEXT 指令时返回。
每执行一次循环体,当前计数器INDX 增1,达到终值FINAL ,循环结束。
INDX 当前循环次数 INIT 初始值 FINAL 终止值 ENO 电流输出
循环返回,循环体结束指令
FOR 和NEXT 指令可以描述需重复进行一定次数的循环体。
每条FOR 指令必须对应一条NEXT 指
令。
FOR 和NEXT 指令执行FOR 指令和NEXT 指令之间的指令。
必须指定计数值或者当前循环次数INDX 、初始值(INIT )和终止值(FINAL )。
如果允许FOR/NEXT 循环,除非在循环内部修改了终值,循环体就一直循环执行直到循环结束。
当FOR/NEXT 循环执行的过程中可以修改这些值。
当循环再次允许时,它把初始值拷贝到INDX 中(当前循环次数)。
如果初值大于终值,那么循环体不被执行。
每执行一次循环体,当前计数值增加1,并且将其结果同终值作比较,如果大于终值,那么终止循环
2. FOR-NEXT 指令的有效操作数
输入/输出 数据类型 操作数
INDX
INT
IW 、QW 、VW 、MW 、SMW 、SW 、T 、C 、LW 、AC 、*VD 、*LD 、*AC INIT 、FINAL INT
VW 、IW 、QW 、MW 、SMW 、SW 、T 、C 、LW 、AC 、AIW 、*VD 、*AC 、常数
3. 循环指令应用示例
网络1
当输入I0.0为“1”时执行循环,INDX 从1开始计数。
每执行一次循环体,INDX 当前值加1执行到第6次时循环结束。
网络2
当VW10计数为6时Q0.0得电
网络3 循环返回
提问:在plc 编程控制中循环指令应用的具体现象。
(二) 跳转指令指令基本知识
a)跳转指令格式及功能
梯形图参数功能指令功能
跳转目的地位置跳转至标签(JMP):当条件满足时,跳转到同一程序的标号(????)处。
跳转目的地位置标签(LBL):标记跳转目的地的位置(????)。
可以在主程序、子程序或者中断服务程序中,使用跳转指令。
跳转和与之相应的标号指令必须位于同一段程序代码(无论是主程序、子程序还是中断服务程序)。
不能从主程序跳到子程序或中断程序,同样不能从子程序或中断程序跳出。
可以在SCR程序段中使用跳转指令,但相应的标号指令必须也在同一个SCR段中。
b)XX跳转指令有效操作数
输入/输出数据类型操作数
参数???? WORD 常数(0到255)
c)跳转指令应用示例(点动与连续)
网络1
当I0.0为“1”时跳转到网络3以下,反之执行网络1
至网络3之间的程序。
网络2
起、保、停程序(电机连续运行程序)。
网络3
跳转目的地
网络4
当I0.0为“1”时执行网络4至网络6之间的程序
网络5
点动程序
网络6
跳转目的地
作业:用跳转指令做一个程序控制
(三)顺控继电器(SCR)指令基本知识
i.S7-200系列PLC中的顺序控制继电器是专门用于编制与时序有关的控制程序的。
它能够提供一种简
单、强有力的状态控制编程技术。
每当应用程序包含一系列必须重复执行的操作时,SCR可用于为程序安排结构,以便使之直接与应用程序相对应。
因而能够更快速、更方便地编程和调试应用程序。
顺控指令由SCR、SCRT、SCRE三部分组成,如下表:
类型梯形图操作数指令功能
SCR装载指令S 表示从SCR段的开始
SCR传输指令S 表示从现用SCR段向另一个SCR段转换
SCR结束指令表示SCR段的结束
当使用SCR时,需注意下面的限定:
不能把同一个S位用于不同程序中。
例如:如果在主程序中用了S0.1,在子程序中就不能再使用它。
在SCR段之间不能使用JMP和LBL指令,就是说不允许跳入、跳出。
可以在SCR段附近使用跳转和标号指令或者在段内跳转。
在SCR段中不能使用END指令
ii.顺控继电器(SCR)指令应用示例
网络1
在首次扫描时使S0.0置位
网络2
装载S0.0段程序,开始运行网络2至网络5之间程序。
网络3
SM0.0始终为“1”,Q0.0得电,同时T37计时开始,3s后触点动作。
网络4
T37置“1”,执行S0.1程序。
网络5
S0.0段程序结束。
(Q0.0失电)
网络6
装载S0.1段程序,开始运行网络6至网络9之间程序。
网络7
SM0.0始终为“1”,Q0.1得电,同时T38计时开始,3s后触点动作。
网络8
T37置“1”,执行S0.0程序。
(循环运行)
网络9
S0.1段程序结束。
(Q0.1失电)
教学反思。