程序控制指令
- 格式:ppt
- 大小:219.05 KB
- 文档页数:58
1. 无条件转移指令(1)jmp段内直接短程转移Jmp short标号jmp short loop1next:下一条指令………loop1:……….(loop1也可能在跳转指令前)跳转距离范围是-128-127(2) 段内直接近程转移Jmp near ptr标号跳转距离范围是-32768-32767(3)段内直接转移Jmp bx ; IP<—bxJmp word ptr [1000h] ;IP<—word ptr[1000h](4)段间直接转移Jmp far ptr标号(5)段间间接转移Jmp dword ptr [1000h] ;IP<—word ptr[1000h],CS<—word ptr[1002h] 2. 过程调用指令call(1)段内直接调用Call near ptr过程名<=> Call过程名可以暂把过程名理解为标号先把下条指令的有效地址入栈(为了能够以后恢复),然后跳转到新地址Push ip; ip为该跳转指令的下一条指令的有效地址Ip<—ip+loop loop表示跳转距离(2)段内间接调用Call word ptr [1000h]被调用过程的有效地址保存在内存ds:[1000h]处Push ipIp<—word ptr [1000h](3)段间直接调用Call far ptr过程名Push cs ;先入csPush ip ;再入ipIp<—过程入口地址的偏移量Cs<—过程入口地址的段基址(4)段间间接调用Call dword ptr [1000h]Push cs ;先入csPush ip ;再入ipIp<—word ptr [1000h]Cs<—word ptr [1002h]3. 过程返回指令ret,类似C语言中的return;段内返回, 格式:ret作用相当于pop ip,回到调用过程时保存的地址继续执行下条指令段间返回,格式:ret相当于pop ipPop cs回到调用过程时保存的地址继续执行下条指令带立即数返回,格式:ret n除返回原来的ip和cs外,还做sp=sp+n适用于过程带参数的情况,计算机调用函数或过程时,先把参数的值入栈,再把返回地址(下条指令地址)入栈。
ABB机器人标准指令详解一、 RAPID程序控制指令1、1程序开始/结束控制指令1) PROGRAM START/END1、指令格式: PROGRAM <程序名> <属性> ;2、描述:此指令标识一个机器人程序的开始或结束。
在这里,<程序名>是你给程序取的名字,<属性>是可选的,表示程序的属性(如:INTERLOCK, NO_INTERLOCK, NOPROGRAM等)。
2) JOB START/END1、指令格式: JOB <作业名> <属性> ;2、描述:此指令标识一个作业的开始或结束。
在这里,<作业名>是你给作业取的名字,<属性>是可选的,表示作业的属性(如:INTERLOCK, NO_INTERLOCK, NOPROGRAM等)。
1、2程序转移指令1) GOTO1、指令格式: GOTO <行号>;2、描述:此指令将程序执行转移到指定的行号。
2) GOSUB1、指令格式: GOSUB <行号>;2、描述:此指令将程序执行转移到指定的行号,并在返回时继续执行当前行。
3) RETURN1、指令格式: RETURN;2、描述:此指令将程序执行从 GOSUB转移到父程序,并从 GOTO转移到原程序行。
1、3条件判断指令1) IF/THEN/ELSE/ENDIF;1、指令格式: IF <条件> THEN <表达式> ELSE <表达式> ENDIF;2、描述:如果满足条件<条件>,则执行 THEN后面的表达式;否则执行 ELSE后面的表达式。
2) CASE/ESAC/ENDCASE;1、指令格式: CASE <变量> IN <表达式1> / <表达式2> /... / ENDCASE;2、描述:此指令根据变量<变量>的值选择要执行的表达式。
程序控制类指令的功能
程序控制类指令是用于控制程序的执行流程和逻辑的指令。
它们决定了程序中各个部分的执行顺序和条件。
以下是几种常见的程序控制类指令及其功能:
1. 条件控制指令:条件控制指令用于根据特定条件决定程序执行的路径。
最常见的条件控制指令是if语句,它根据一个条件的真假来决定程序中的某段代码是否执行。
如果条件为真,那么if语句块中的代码将被执行;否则,程序将继续执行下一个语句。
2. 循环控制指令:循环控制指令用于重复执行一段代码,直到满足特定条件为止。
常见的循环控制指令包括for循环、while循环和do-while循环。
for循环在执行前会定义一个计数器,然后在每次循环迭代中对其进行更新;while循环会在每次循环迭代前检查一个条件;do-while循环会先执行一次循环体,然后再检查条件。
3. 跳转指令:跳转指令用于改变程序执行的顺序,将控制传递到程序的其他部分。
最常见的跳转指令是goto语句,它可以将控制无条件地转移到程序的另一个标记位置。
然而,使用goto语句可能导致程序变得难以理解和维护,因此在现代编程中很少使用。
4. 函数调用指令:函数调用指令用于调用和执行程序中定义的函数。
函数是一段独立的代码,可以接受输入参数并返回一个值。
使用函数调用指令可以将程序的执行流程转移到函数中执行,并在执行完毕后返回到调用点继续执行。
这些程序控制类指令在编程中起到了至关重要的作用,帮助程序员实现复杂的逻辑和控制程序的行为。
通过合理使用这些指令,我们可以编写出结构清晰、逻辑严谨的程序。
第六单元程序控制类应用指令任务一跳转程序一、任务提出为了提高设备的可靠性,在工业控制中许多设备要建立自动及手动两种工作方式。
这就要在程序中编排两段程序,一段用于手动,一段用于自动。
然后设立一个手动/自动切换开关对程序段进行选择。
梯形图一般采用图6-1所示的典型结构。
X10是自动/手动切换开关,当它为ON时将跳过自动程序,执行手动程序,为OFF时将跳过手动程序,执行自动程序。
公用程序用于自动程序和手动程序相互切换的处理,自动程序和手动程序都需要完成的任务也可以用公用程序来处理。
图6-1 自动/手动程序切换二、原理分析跳转指令CJ可用来选择执行一定的程序段,跳过暂且不执行的程序段,缩短了扫描周期。
如图6-2所示,若X0接通,则跳到标号为P8的程序处执行。
X0断开时,不执行跳转指令,顺序往下执行。
图6-2 跳转程序表6-1给出了图6-2中跳转发生前后相关器件状态发生变化对程序执行结果的影响。
表6-1跳转对元器件状态的影响1.被跳过的程序段中的输出继电器Y、辅助继电器M、状态继电器S由于该段程序不再执行,即使梯形图中涉及的工作条件发生变化,它们的工作状态将保持跳转发生前的状态不变。
2.被跳过的程序段中的定时器及计数器,无论其是否具有掉电保持功能,由于相关程序停止执行,它们的当前值寄存器被锁定,跳转发生后其定时值、计数值保持不变,在跳转中止,程序接续执行时,定时计数将继续进行。
另外,定时、计数器的复位指令具有优先权,即使复位指令位于被跳过的程序段中,执行条件满足时,复位工作也将执行。
三、知识链接1.编程元件——跳转指针PFX2N的指针P有128点(P0~P127),用于分支和跳转程序。
指针P使用时要注意:⑴在梯形图中,指针放在左侧母线的左边,一个指针只能出现一次,如出现两次或两次以上,就会出错。
⑵多条跳转指令可以使用相同的指针。
⑶P63是END所在的步序,在程序中不需要设置P63。
⑷指针可以出现在相应跳转指令之前,但是如果反复跳转的时间超过监控定时器的设定时间,会引起监控定时器出错。
项目14 程序控制指令1.条件结束条件结束指令(END)根据前面的逻辑关系终止当前扫描周期。
可以在主程序中使用条件结束指令,但不能在子程序或中断服务程序中使用该命令。
2.停止停止指令(STOP)导致CPU从RUN到STOP模式从而可以立即终止程序的执行。
如果STOP 指令在中断程序中执行,那么该中断立即终止,并且忽略所有挂起的中断,继续扫描程序的剩余部分。
完成当前周期的剩余动作,包括主用户程序的执行,并在当前扫描的最后,完成从RUN到STOP模式的转变。
3.看门狗复位看门狗复位指令(WDR)允许S7--200 CPU的系统看门狗定时器被重新触发,这样可以在不引起看门狗错误的情况下,增加此扫描所允许的时间。
使用WDR指令时要小心,因为如果您用循环指令去阻止扫描完成或过度的延迟扫描完成的时间,那么在终止本次扫描之前,下列操作过程将被禁止:①通讯(自由端口方式除外)② I/O更新(立即I/O除外)③强制更新④ SM位更新(SM0,SM5~SM29不能被更新)⑤运行时间诊断⑥由于扫描时间超过25秒,10ms和100ms定时器将不会正确累计时间。
⑦在中断程序中的STOP指令⑧带数字量输出的扩展模块也包含一个看门狗定时器,如果模块没有被S7--200写,则此看门狗定时器将关断输出。
在扩展的扫描时间内,对每个带数字量输出的扩展模块进行立即写操作,以保持正确的输出。
请参考这段描述之后的实例。
图1提示:如果希望程序的扫描周期超过500ms,或者在中断事件发生时有可能使程序的扫描周期超过500ms时,您应该使用看门狗复位指令来重新触发看门狗定时器。
每次使用看门狗复位指令,您应该对每个扩展模块的某一个输出字节使用一个立即写指令来复位每个扩展模块的看门狗。
如果您使用了看门狗复位指令允许程序的执行有一个很长的扫描时间,此时将S7--200的模式开关切换到STOP位置,则在1.4秒内,CPU转到STOP方式。
图2:停止、结束和看门狗复位指令程序举例4.For--Next循环指令FOR和NEXT指令可以描述需重复进行一定次数的循环体。