程序流向控制类指ppt课件
合集下载
程序流程控制PPT课件

• (3)利用条件运算语句实现
y = (math.sin(x) + 2 * math.sqrt(x + math.exp(4)) - math.pow(x + 1, 3)) if ((x>=0)) else \ (math.log(-5 * x) - math.fabs(x * x - 8 * x) / (7 * x) + math.e)
3.2(area.py):已知三角形三条边的边 长(为简单起见,假设这三条边可以构成三角形),求三角形 的面积
import math
a = float(input("请输入三角形的边长a:"))
b = float(input("请输入三角形的边长b:"))
c = float(input("请输入三角形的边长c:"))
方法二:
if (mark >= 90): grade = "优" elif (mark >= 80 and mark < 90): grade = "良" elif (mark >= 70 and mark < 80): grade = "中" elif (mark >= 60 and mark < 70): grade = "及格" else: grade = "不及格"
• (2)利用双分支结构实现
if (x>=0): y = math.sin(x) + 2 * math.sqrt(x + math.exp(4)) - math.pow(x + 1, 3)
else: y = math.log(-5 * x) - math.fabs(x * x - 8 * x) / (7 * x) + math.e
y = (math.sin(x) + 2 * math.sqrt(x + math.exp(4)) - math.pow(x + 1, 3)) if ((x>=0)) else \ (math.log(-5 * x) - math.fabs(x * x - 8 * x) / (7 * x) + math.e)
3.2(area.py):已知三角形三条边的边 长(为简单起见,假设这三条边可以构成三角形),求三角形 的面积
import math
a = float(input("请输入三角形的边长a:"))
b = float(input("请输入三角形的边长b:"))
c = float(input("请输入三角形的边长c:"))
方法二:
if (mark >= 90): grade = "优" elif (mark >= 80 and mark < 90): grade = "良" elif (mark >= 70 and mark < 80): grade = "中" elif (mark >= 60 and mark < 70): grade = "及格" else: grade = "不及格"
• (2)利用双分支结构实现
if (x>=0): y = math.sin(x) + 2 * math.sqrt(x + math.exp(4)) - math.pow(x + 1, 3)
else: y = math.log(-5 * x) - math.fabs(x * x - 8 * x) / (7 * x) + math.e
AW中流程控制PPT教学课件

4.3 超文本实例
第16页/共29页
5 判断图标
• 判断图标和其他图标配合使用可以构成判断分支结构,通过设置判断条件, 可以控制程序分支的执行,以决定某些图标能否被执行,按什么顺序执行以 及总共执行多少次等。
第17页/共29页
5.1 判断分支结构的创建
在流程线添加一个判断图标,然后在其右侧依次添加其他图标, 就构成了判断分支结构。
• 查找
• 【类型】:用于设置跳转到目标页的方式, • 【搜索】:用于设置查找的范围。 • 【预设文本】:在文本框中输入字符串(需用双引号括起来),打
开的【查找】对话框中默认显示该字符串。 • 【字词】:选中该复选框,则输入的字符串将作为字词的形式进行
查找。 • 【关键字】:选中该复选框,输入的字符串将作为关键字的形式进
• 【框架】:该下拉列表框列出了当前程序中所有的框架结构。选择 某个框架结构后,在右侧的【页】列表框中会同时显示该框架结构 中的所有页,用户可以从中选择要跳转到的目标页。
• 【查找】:在右侧的文本框中输入字符串,单击左侧的【查找】按 钮,则所有与字符串相关的页都将显示在【页】列表框中。
第10页/共29页
调整杆:调整杆位于入口窗格和出口窗格之间,其作用是隔离入口窗格和出口窗格。用户 可以拖动它调整两个窗格的大小,从而更有利于阅读和调试程序。
第5页/共29页
1.3 设置框架图标的属性
• 页面特效:设置页面切换效果。 • 页面计数:当前框架结构包含的页数。
第6页/共29页
2.1 认识导航图标
• 导航图标的形状是一个小的倒三角形。 • 它的作用是可以跳转到当前程序中某个框架结构中的某个框架页。 • 导航图标在程序设计窗口中的位置是非常灵活的。它可以放置在流程线的任
5 程序流向控制

END
可编程序控制器
任务五
程序流向控制
5.3跳转/跳转结束指令 5.3跳转/跳转结束指令——JMP/JME 跳转 JMP/JME
指令功能:JMP用于跳转开始,JME用于跳转结束。当JMP N的执行条件为 OFF时,跳过JMP N和JME N之间的程序段,转去执行JME N后面的程序。当 JMP N的执行条件为ON时,JMP N和JME N之间的程序段将被执行。
例 指令说明: 1 不论IL前面的条件是ON或OFF,PLC都要对IL——ILC之间的联锁程序处理, 都要占用扫描时间。 2 IL和ILC指令可以成对使用,也可以多个IL指令配一个ILC指令,但不允许嵌套 使用( IL——IL——ILC——ILC) 几种输出的编程方法
END
可编程序控制器
任务五
程序流向控制
例
END
可编程序控制器
任务五
程序流向控制
几种输出的编程方法 并联输出 连续输出 复合输出
END
可编程序控制器
任务五
程序流向控制
5.2
暂存继电器TR 暂存继电器TR
指令功能:暂存继电器TR 0—TR7用于暂存中间结果,记录程序分支点的状态。
指令说明: 指令说明: 1 同一程序段中,同一TR号不能重复使用,在不同的程序段中,同一TR号可以 重复使用。 2 TR不是独立的编程指令,只能和LD或OUT等基本指令一起使用。
可编程序控制器
任务五
程序流向控制
可编程序控制器
任务五 学习目标: 学习目标:
程序流向控制
1. 掌握可编程序控制器程序流向控制指令的功能和使 用方法 2. 熟练掌握手动程序与自动程序的切换方法
END
可编程序控制器
任务五
可编程序控制器
任务五
程序流向控制
5.3跳转/跳转结束指令 5.3跳转/跳转结束指令——JMP/JME 跳转 JMP/JME
指令功能:JMP用于跳转开始,JME用于跳转结束。当JMP N的执行条件为 OFF时,跳过JMP N和JME N之间的程序段,转去执行JME N后面的程序。当 JMP N的执行条件为ON时,JMP N和JME N之间的程序段将被执行。
例 指令说明: 1 不论IL前面的条件是ON或OFF,PLC都要对IL——ILC之间的联锁程序处理, 都要占用扫描时间。 2 IL和ILC指令可以成对使用,也可以多个IL指令配一个ILC指令,但不允许嵌套 使用( IL——IL——ILC——ILC) 几种输出的编程方法
END
可编程序控制器
任务五
程序流向控制
例
END
可编程序控制器
任务五
程序流向控制
几种输出的编程方法 并联输出 连续输出 复合输出
END
可编程序控制器
任务五
程序流向控制
5.2
暂存继电器TR 暂存继电器TR
指令功能:暂存继电器TR 0—TR7用于暂存中间结果,记录程序分支点的状态。
指令说明: 指令说明: 1 同一程序段中,同一TR号不能重复使用,在不同的程序段中,同一TR号可以 重复使用。 2 TR不是独立的编程指令,只能和LD或OUT等基本指令一起使用。
可编程序控制器
任务五
程序流向控制
可编程序控制器
任务五 学习目标: 学习目标:
程序流向控制
1. 掌握可编程序控制器程序流向控制指令的功能和使 用方法 2. 熟练掌握手动程序与自动程序的切换方法
END
可编程序控制器
任务五
程序的流程控制课件

程序的流程控制课件
目录
• 程序流程控制概述 • 顺序结构 • 选择结构 • 循环结构 • 流程控制语句
01
程序流程控制概述
什么是程序流程控制
程序流程控制是计算机程序设计中用 于控制程序执行顺序的一系列指令。 它决定了程序在执行过程中何时做什 么以及如何做。
流程控制结构通常包括顺序、选择和 循环三种基本结构,它们通过特定的 控制语句来实现。
条件判断
选择结构用于根据不同的条件执行不同的操作,例如判断用户输入 的数据类型、判断某个变量是否满足特定条件等。
菜单选择
选择结构用于实现菜单选择功能,根据用户的选择执行相应的操作。
流程控制
选择结构用于控制程序的流程,例如在游戏程序中根据不同的游戏 状态执行不同的代码分支。
04
循环结 构
循环结构的定义
03
在算法中,循环结构也经常用 于实现迭代和递归等复杂逻辑。
05
流程控制语句
if语句
条件判断语句
if语句用于根据特定条件执行代码块。如果条件为真,则执行if语句块内的代码;如果条件为假,则 跳过该代码块。
switch语句
多路选择语句
switch语句用于根据不同的条件执行不同的代码块。根据表达式的值与case标签的值进行比较,执行相应的代码块。如果没 有匹配的case标签,可以选择default标签来执行默认的代码块。
顺序结构的基本特点
01
顺序性
顺序结构按照代码的先后顺序执 行,程序从上到下,从头到尾依 次执行。
简单性
02
03
确定性
顺序结构是最简单的程序流程控 制结构,没有复杂的逻辑判断和 跳转。
顺序结构的执行路径是确定的, 程序按照代码的顺序执行,不会 出现分支和循环。
目录
• 程序流程控制概述 • 顺序结构 • 选择结构 • 循环结构 • 流程控制语句
01
程序流程控制概述
什么是程序流程控制
程序流程控制是计算机程序设计中用 于控制程序执行顺序的一系列指令。 它决定了程序在执行过程中何时做什 么以及如何做。
流程控制结构通常包括顺序、选择和 循环三种基本结构,它们通过特定的 控制语句来实现。
条件判断
选择结构用于根据不同的条件执行不同的操作,例如判断用户输入 的数据类型、判断某个变量是否满足特定条件等。
菜单选择
选择结构用于实现菜单选择功能,根据用户的选择执行相应的操作。
流程控制
选择结构用于控制程序的流程,例如在游戏程序中根据不同的游戏 状态执行不同的代码分支。
04
循环结 构
循环结构的定义
03
在算法中,循环结构也经常用 于实现迭代和递归等复杂逻辑。
05
流程控制语句
if语句
条件判断语句
if语句用于根据特定条件执行代码块。如果条件为真,则执行if语句块内的代码;如果条件为假,则 跳过该代码块。
switch语句
多路选择语句
switch语句用于根据不同的条件执行不同的代码块。根据表达式的值与case标签的值进行比较,执行相应的代码块。如果没 有匹配的case标签,可以选择default标签来执行默认的代码块。
顺序结构的基本特点
01
顺序性
顺序结构按照代码的先后顺序执 行,程序从上到下,从头到尾依 次执行。
简单性
02
03
确定性
顺序结构是最简单的程序流程控 制结构,没有复杂的逻辑判断和 跳转。
顺序结构的执行路径是确定的, 程序按照代码的顺序执行,不会 出现分支和循环。
第4章讲义流程控制

§4-1 结构化程序设计
▪ 4.1.2 算法
“算法”是为解决一个具体问题而采取的确定的有限的 操作步骤。
▪ (数据结构)+(算法)= 程序
N·Wirth
▪ 算法的表示方法:
▪ 传统的流程图 ▪ N/S方框图 ▪ 自然语言 ▪ 伪码 ▪ 问题求解图(PAD)
明确问题
设计算法
描述算法
利用某种语言
The C Programming Language:Chapter 4
A
A
直到P成立
The C Programming Language:Chapter 4
§4-1 结构化程序设计
累加器s 置0 循环变量i 置1
s = s+i i =i+1 i<=100? 输出s
实例1的N/S方框图
The C Programming Language:Chapter 4
§4-2 C语句概述
精品
第4章流程控制
第四章 流程控制 ▪ §4-1 结构化程序设计 ▪ §4-2 C语句概述 ▪ §4-3 选择语句 ▪ §4-4 循环语句 ▪ §4-5 辅助控制语句 ▪ §4-6 习题
The C Programming Language:Chapter 4
§4-1 结构化程序设计
▪ 结构化程序设计思想 ▪ 算法 ▪ 传统流程图表示的三种结构 ▪ N/S方框图表示的三种结构 ▪ 小结
§4-1 结构化程序设计
▪ 4.1.3 传统流程图表示的三种结构
开始/结束框 一般处理框 判断框 输入/输出框 流程线 连接符
The C Programming Language:Chapter 4
§4-1 结构化程序设计
第4章控制程序流程ppt课件

-33-
1重循环
int main() {
int x,y,z; std::cout<<"Man \t Women \t Children\n“; for(x=0; x<=16; x++) {
y = 20 - 2*x; z = 30 - x - y; if( 3*x+2*y+z==50 && y>=0 && z>=0)
-28-
三重循环求解
int main()
{
int x,y,z;
std::cout<<"Man \t Women \t Children\n“;
for(x=0;x<=30;x++)
for(y=0;y<=30;y++)
for(z=0;z<=30;z++)
{
if(x+y+z==30 && 3*x+2*y+z==50)
int main() {
int x,y,z; std::cout<<"Man \t Women \t Children\n“; for(x=0; x<=16; x++) {
y = 20 - 2*x; z = 30 - x - y; if( 3*x+2*y+z==50)
std::cout<<x<<“\t”<<y<<“\t”<<z<<“\n”; } return 0; }
for(y=0;y<=25;y++) for(z=0;z<=30;z++) { if(x+y+z==30 && 3*x+2*y+z==50) std::cout<<x<<“\t”<<y<<“\t”<<z<<“\n”; }
1重循环
int main() {
int x,y,z; std::cout<<"Man \t Women \t Children\n“; for(x=0; x<=16; x++) {
y = 20 - 2*x; z = 30 - x - y; if( 3*x+2*y+z==50 && y>=0 && z>=0)
-28-
三重循环求解
int main()
{
int x,y,z;
std::cout<<"Man \t Women \t Children\n“;
for(x=0;x<=30;x++)
for(y=0;y<=30;y++)
for(z=0;z<=30;z++)
{
if(x+y+z==30 && 3*x+2*y+z==50)
int main() {
int x,y,z; std::cout<<"Man \t Women \t Children\n“; for(x=0; x<=16; x++) {
y = 20 - 2*x; z = 30 - x - y; if( 3*x+2*y+z==50)
std::cout<<x<<“\t”<<y<<“\t”<<z<<“\n”; } return 0; }
for(y=0;y<=25;y++) for(z=0;z<=30;z++) { if(x+y+z==30 && 3*x+2*y+z==50) std::cout<<x<<“\t”<<y<<“\t”<<z<<“\n”; }
《程序流程控制》PPT课件

break 的作用:当程序执行 break 语句后,它就使程序流程跳出 switch 结构,并转而执行 switch 结构后面的第一条语句。如果程序中没有 break 语句,那么从匹配标号到 switch 结 构结束,中间所有的语句均被执行一次。
原因:
正确。
写法2:
if(x>=0)
if(x>0) y=1;
else
y=0;
else y=-1;
写法3:
y=-1;
if(x!=0)
if(x>0) y=1;
else
y=0;
原因:
正确。
原因:
不正确。
任务五 考察switch语句
1.请阅读下面的程序及流程图,完成问题。
#include”stdio.h”
答:x%6==0
输入一个正整数x
x%6==0
输出“yes!”
输出“no!”
该流程图所表示的程序功能是 什么
答:判断一个正整数是否是6的倍数。
结束
2.认识if语句(第一种形式)
(1)请观察下面的流程图:
(3)归纳if语句的流程图:
x>0
表达式
x=x+1
语句
该图用if语句表示为:if(x>0) x=x+1;
语句3
else 语句4
(3)根据所得语句形式,填写程序,并记录上机调试结果。
#include”stdio.h” main() { float x,y;
printf(“请输入x的值:”); scanf(“%f”,&x); if((x<1)
y=x;
else if(x>=10) y=3*x-10;
else
原因:
正确。
写法2:
if(x>=0)
if(x>0) y=1;
else
y=0;
else y=-1;
写法3:
y=-1;
if(x!=0)
if(x>0) y=1;
else
y=0;
原因:
正确。
原因:
不正确。
任务五 考察switch语句
1.请阅读下面的程序及流程图,完成问题。
#include”stdio.h”
答:x%6==0
输入一个正整数x
x%6==0
输出“yes!”
输出“no!”
该流程图所表示的程序功能是 什么
答:判断一个正整数是否是6的倍数。
结束
2.认识if语句(第一种形式)
(1)请观察下面的流程图:
(3)归纳if语句的流程图:
x>0
表达式
x=x+1
语句
该图用if语句表示为:if(x>0) x=x+1;
语句3
else 语句4
(3)根据所得语句形式,填写程序,并记录上机调试结果。
#include”stdio.h” main() { float x,y;
printf(“请输入x的值:”); scanf(“%f”,&x); if((x<1)
y=x;
else if(x>=10) y=3*x-10;
else
第4章 流程控制.ppt

4.1 C++语言的语句和程序结构
C++语句
?
控制语句
if () ~ else ~, switch
for () ~
while () ~ do ~ while() continue,break goto return
if (x>y) z=x;
else z=y;
函数调用 由一次函数调用加
语句
一个分号构成一个 语句。
4.2 选择结构语句
c) if … else if语句
if(表达式1) 语句1;
else if(表达式2) 语句2; else if(表达式3) 语句3; else 语句4;
注意缩排:语句相对于 上一个语句退后若干个 字符位置的书写方法。
缩排的目的就是为了使 源程序的层次清晰明了, 增加源程序的可读性。
输入a,b,c
是三角形吗?
Y
N
p (a+b+c)/2
输出“非
ssqrt(p*(p-a)*(p- 三角形!”
b)*(p-c))
输出s
3 4 5 s= 6
3 4 8 Not a triangle!
4.2 选择结构语句
2. 条件运算符
格式:<表达式1>?<表达式2>:<表达式3> 功能:先求出表达式1的值,若其值不等于0时, 则求出表达式2的值,否则求出表达式3的值。所以作 为运算的结果,或为表达式2,或为表达式3 例: a>=b?a:b; 等同于条件语句:
4.2 选择结构语句
#include <iostream.h> void main() { int c,s;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
精品课件
中断指令
与中断有关的三条功能指令是: 中断返回指令IRET,编号为FNCO3; 中断允许指令EI,编号为FNCO4;中 断禁止DI,编号为FNC05。 它们均无操作数,占用1个程序步。
精品课件
精品课件
使用中断相关指令时应注意:
1)中断的优先级排队如下,如果多个中断依次 发生,则以发生先后为序,即发生越早级别越 高,如果多个中断源同时发出信号,则中断指 针号越小优先级越高;
程序流向控制类指令
精品课件
跳转指令、循环指令、子程序指令、中断 指令统称为程序控制类指令。
程序控制类指令用于程序执行流程的控制。 对一个扫描周期而言,跳转指令可以使程序 出现跨越或跳跃以实现程序段的选择;子程 序指令可调用某段子程序;循环指令可多次 重复执行指定的程序段;中断指令则用于中 断信号引起的子程序调用。
精品课件
精品课件
使用循环指令时应注意:
1) FOR和NEXT必须成对使用; 2)FX2N系列PLC可循环嵌套5层; 3)在循环中可利用CJ指令在循环没 结束时跳出循环体; 4)FOR应放在NEXT之前,NEXT应在 FEND和END之前,否则均会出错。
精品课件
此课件下载可自行编辑修改,供参考! 感谢您的支持,我们努力做得更好!
精品课件
子程序指令
子程序调用指令CALL的编号为 FNC01。操作数为P0~P127,此指 令占用3个程序步。 子程序返回指令SRET的编号为 FNC02。无操作数,占用1个程序 步。
精品课件
举例
精品课件
使用子程序调用与返回指令时应注意:
1)转移标号不能重复,也不可与跳转指令的 标号重复; 2)子程序可以嵌套调用,最多可5级嵌套。
程序控制类指令可以影响程序执行的流向 及内容,对合理安排程序的结构,提高程序 功能以及实现某些技巧性运算,具有重要的 意义。
精品课件
条件跳转指令
条件跳转指令CJ(P)的编号为FNC00, 操作数为指针标号P0~P127,其中P63 为END所在步序,不需标记。指针标号 允许用变址寄存器修改。CJ和CJP都占 3个程序步,指针标号占1步。
精品课件
举例
如图所示,当X20接通时,则由CJ P9指令
跳到标号为P9的指令处开始执行,跳过了
程序的一部分,减少了扫描周期。如果X20
断开,跳转不会执行,则程序按原顺序执
行。
精品课件
在图12-2中,当X0为ON时,则程序跳转到指针 P8处,若X0为OFF,则按顺序执行程序,不执行 跳转。当X0为ON时,Y0、M0、S0的状态不会随它 们的驱动接点X1、X2、X3的状态变化而变化。定 时器和计数器如果被CJ指令跳过,跳步期间它们 的当前值被冻结,如果在跳步开始时定时器和计 数器正在工作,在跳步期间,它们将停止计时和 计数,在CJ指令的条件变为不满足时继续工作。 高速计数器的处理独立于主程序,其工作不受跳 步影响。如果用M8000的动合触点驱动CJ指令, 则条件跳转变为无条件跳转。
精品课件
使用跳转指令时应注意:
1)CJP指令表示为脉冲执行方式; 2)在一个程序中一个标号只能出现一次,否则将出错; 3)在跳转执行期间,即使被跳过程序的驱动条件改变, 但其线圈(或结果)仍保持跳转前的状态,因为跳转期间 根本没有执行这段程序。 4)如果在跳转开始时定时器和计数器已在工作,则在跳 转执行期间它们将停止工作,到跳转条件不满足后又继续 工作。但对于正在工作的定时器T192~T199和高速计数器 C235~C255不管有无跳转仍连续工作。 5)若积算定时器和计数器的复位(RST)指令在跳转区外, 即使它们的线圈被跳转,但对它们的复位仍然有效。
2)当M8050的中断,M8059为ON时则禁止所 有计数器中断;
3)无需中断禁止时,可只用EI指令,不必用DI 指令;
4)执行一个中断服务程序时,如果在中断服务 程序中有EI和DI,可实现二级中断嵌套,否则 禁止其它
精品课件
循环指令
循环指令共有两条: 循环区起点指令FOR,编号为 FNC08,占3个程序步; 循环结束指令NEXT,编号为FNC09, 占用1个程序步,无操作数。
精品课件
中断指令
与中断有关的三条功能指令是: 中断返回指令IRET,编号为FNCO3; 中断允许指令EI,编号为FNCO4;中 断禁止DI,编号为FNC05。 它们均无操作数,占用1个程序步。
精品课件
精品课件
使用中断相关指令时应注意:
1)中断的优先级排队如下,如果多个中断依次 发生,则以发生先后为序,即发生越早级别越 高,如果多个中断源同时发出信号,则中断指 针号越小优先级越高;
程序流向控制类指令
精品课件
跳转指令、循环指令、子程序指令、中断 指令统称为程序控制类指令。
程序控制类指令用于程序执行流程的控制。 对一个扫描周期而言,跳转指令可以使程序 出现跨越或跳跃以实现程序段的选择;子程 序指令可调用某段子程序;循环指令可多次 重复执行指定的程序段;中断指令则用于中 断信号引起的子程序调用。
精品课件
精品课件
使用循环指令时应注意:
1) FOR和NEXT必须成对使用; 2)FX2N系列PLC可循环嵌套5层; 3)在循环中可利用CJ指令在循环没 结束时跳出循环体; 4)FOR应放在NEXT之前,NEXT应在 FEND和END之前,否则均会出错。
精品课件
此课件下载可自行编辑修改,供参考! 感谢您的支持,我们努力做得更好!
精品课件
子程序指令
子程序调用指令CALL的编号为 FNC01。操作数为P0~P127,此指 令占用3个程序步。 子程序返回指令SRET的编号为 FNC02。无操作数,占用1个程序 步。
精品课件
举例
精品课件
使用子程序调用与返回指令时应注意:
1)转移标号不能重复,也不可与跳转指令的 标号重复; 2)子程序可以嵌套调用,最多可5级嵌套。
程序控制类指令可以影响程序执行的流向 及内容,对合理安排程序的结构,提高程序 功能以及实现某些技巧性运算,具有重要的 意义。
精品课件
条件跳转指令
条件跳转指令CJ(P)的编号为FNC00, 操作数为指针标号P0~P127,其中P63 为END所在步序,不需标记。指针标号 允许用变址寄存器修改。CJ和CJP都占 3个程序步,指针标号占1步。
精品课件
举例
如图所示,当X20接通时,则由CJ P9指令
跳到标号为P9的指令处开始执行,跳过了
程序的一部分,减少了扫描周期。如果X20
断开,跳转不会执行,则程序按原顺序执
行。
精品课件
在图12-2中,当X0为ON时,则程序跳转到指针 P8处,若X0为OFF,则按顺序执行程序,不执行 跳转。当X0为ON时,Y0、M0、S0的状态不会随它 们的驱动接点X1、X2、X3的状态变化而变化。定 时器和计数器如果被CJ指令跳过,跳步期间它们 的当前值被冻结,如果在跳步开始时定时器和计 数器正在工作,在跳步期间,它们将停止计时和 计数,在CJ指令的条件变为不满足时继续工作。 高速计数器的处理独立于主程序,其工作不受跳 步影响。如果用M8000的动合触点驱动CJ指令, 则条件跳转变为无条件跳转。
精品课件
使用跳转指令时应注意:
1)CJP指令表示为脉冲执行方式; 2)在一个程序中一个标号只能出现一次,否则将出错; 3)在跳转执行期间,即使被跳过程序的驱动条件改变, 但其线圈(或结果)仍保持跳转前的状态,因为跳转期间 根本没有执行这段程序。 4)如果在跳转开始时定时器和计数器已在工作,则在跳 转执行期间它们将停止工作,到跳转条件不满足后又继续 工作。但对于正在工作的定时器T192~T199和高速计数器 C235~C255不管有无跳转仍连续工作。 5)若积算定时器和计数器的复位(RST)指令在跳转区外, 即使它们的线圈被跳转,但对它们的复位仍然有效。
2)当M8050的中断,M8059为ON时则禁止所 有计数器中断;
3)无需中断禁止时,可只用EI指令,不必用DI 指令;
4)执行一个中断服务程序时,如果在中断服务 程序中有EI和DI,可实现二级中断嵌套,否则 禁止其它
精品课件
循环指令
循环指令共有两条: 循环区起点指令FOR,编号为 FNC08,占3个程序步; 循环结束指令NEXT,编号为FNC09, 占用1个程序步,无操作数。
精品课件