230 likes | 369 Views
第四节 控制指令. 一、 MC (主控继电器开始)和 MCE (主控继电器结束)指令. 当预置触发信号接通时,执行 MC 和 MCE 之间的指令。. ( 1 )两当预置触发信号为 OFF 时, MC 和 MCE 之间的指令操作如表 5.23 所示:. ( 2 )在一对主控指令之间可以有另一对主控指令,称为嵌套。. ( 3 )在主控指令对之间应用 DF 、 DF/ 指令时:主控指令对为 OFF 状态时,微分指令存储并保持 MC 指令断开前的状态( ON 或 OFF )。且在用微分指令编程时应注意:.
E N D
第四节 控制指令 一、MC(主控继电器开始)和MCE(主控继电器结束)指令 当预置触发信号接通时,执行MC和MCE之间的指令。
(1)两当预置触发信号为OFF时,MC和MCE之间的指令操作如表5.23所示:(1)两当预置触发信号为OFF时,MC和MCE之间的指令操作如表5.23所示:
(3)在主控指令对之间应用DF、DF/指令时:主控指令对为OFF状态时,微分指令存储并保持MC指令断开前的状态(ON或OFF)。且在用微分指令编程时应注意:(3)在主控指令对之间应用DF、DF/指令时:主控指令对为OFF状态时,微分指令存储并保持MC指令断开前的状态(ON或OFF)。且在用微分指令编程时应注意: ① 当MC指令执行条件为OFF时,则在MC,MCE指令之间的微分指令无效。
② 如果MC和微分指令为同一触发信号,则输出不动作。若需要输出动作,应将微分指令放在MC,MCE指令对之外。
③ 指令不能直接从左母线开始。程序中,MC指令之前一定要有一接点输入。 (4)在下列条件下,程序不能执行: ① MC指令无触发信号 ② 有两个或多个同号的主控指令对 ③ MC和MCE指令的顺序颠倒。
二、JP(跳转)和LBL(跳转标记)指令 当预置触发信号接通时,跳转到与JP指令编号相同的LBL指令。
说明 (1)JP指令跳过位于JP和编号相同的LBL指令间的所有指令。 (2)编号相同的两个或多个JP指令可以用在同一程序里,但是,在同一程序中不可能使用相同编号的两个或多个LBL指令。 (3)LBL指令专门用作JP和LOOP指令的目标指令。 (4)在一对JP和LBL指令间,可以编入另一JP和LBL指令对称为嵌套,如图5.28所示。
LBL指令位于JP指令之后: TM指令:不执行定时器指令,如果该指令每次扫描都没被执行,则不能保证准确的时间。 CT指令:即使计数输入接通,也不执行计数操作,经过值保持不变。 SR指令:即使移位指令接通,也不执行移位操作。特殊寄存器的内容保持不变。
LBL指令位于JP指令之前: TM指令:由于定时器指令每次扫描都执行多次,则不能保证准确的时间。 CT指令:在扫描期间,如果计数输入的状态不改变,则计数操作照常进行。 SR指令:在扫描期间,如果移位输入的状态不改变,则移位操作照常进行。 (6)在JP和LBL指令间使用DF或DF/指令,当JP的触发信号ON时,触发JP和LBL间的DF或DF/指令无效。
(7)如果JP和DF或DF/指令使用同一触发信号,将不会有输出。(7)如果JP和DF或DF/指令使用同一触发信号,将不会有输出。 如需要输出,应将DF或DF/指令放在JP和LBL指令对外面。如图5.30所示 (8)若 LBL 指令的地址放在JP指令地址之前,扫描不会终止,会发生运行瓶颈错误。
(9)以下几种情况,程序不能执行: ① JP指令的触发信号被遗漏。 ② 存在两个或多个相同编号的LBL指令。 ③ 遗漏JP和LBL指令对中的一个指令。 ④ 从主程序区跳转到ED指令之后的一个地址。 ⑤ 从步进程序区之外跳转到步进程序区。 ⑥ 从子程序或中断程序区跳转到子程序或中断程序区之外。
三、LOOP和LBL指令 跳转到与LOOP指令相同编号的LBL指令,并反复执行LBL之后的程序,直到规定的操作数变为“0”。 此时即使预置触发信号接通,LOOP指令也不再执行。 跳过LOOP1和LBL1指令间的所有程序。该指令每执行一次,数据寄存器DT0预置值减1,直到为0。
说明 (1)规定LBL指令为LOOP指令的目标指令。 (2)在一个程序里,规定不能有两个或多个编号相同的LBL指令。 (3)如果一开始,数据区的预置值为0,LOOP指令不执行(无效)。
(4)执行LOOP指令期间TM/CT和SR指令的运行: LBL指令位于LOOP指令之后 TM指令:不执行定时器指令,不能保证准确的时间。 CT指令:不执行计数操作,经过值保持不变。 SR指令:不执行移位操作,特殊寄存器的内容保持不变。
LBL指令位于LOOP指令之前 TM指令:由于定时器指令每次扫描都执行多次,则不能保证准确的时间。 CT指令:在扫描期间,如果计数输入的状态不改变,则计数操作照常进行。 SR指令:在扫描期间,如果移位输入的状态不改变,则移位操作照常进行。如图5.32所示。
(5)在LOOP和LBL指令间使用DF或DF/指令: ① 当LOOP指令的触发信号”ON”时,触发LOOP和LBL间的DF或DF/指令无效。如图5.33所示。
② 如果LOOP 和 DF或DF/指令使用同一触发信号,将不会有输出。若需要输出,应将DF或DF/ 指令放在LOOP和 LBL指令对之外。如图5.34所示。
(6)标志的状态 ① 错误标志(R9007):当数据区的指定值小于“0”时,(即当指定数据区的MSB变为“1”时),R9007接通并保持接通状态。错误地址传送到特殊数据寄存器DT9017并保持。 ② 错误标志(R9008):当数据区的指定值小于“0”时,(即当指定数据区的MSB变为“1”时),R9008接通一瞬间。错误地址传送到特殊数据寄存器DT9018。 ③ 特殊数据寄存器DT9017和DT9018:用于CPU版本为2.7或更高的FP1系列(型号后带有“B”的所有FP1型机均由该功能)。 ④ 使用特殊数据寄存器DT9018作为该指令的标志时,务必将特殊继电器紧跟在指令后面编程。
四、ED(结束)和CNDE(条件结束)指令 均为程序结束的标志,但使用的条件不同。 图5.35所示梯形图程序及指令表的功能是: 当X0断开时,CPU执行完程序1后并不结束,仍继续执行程序2,直到程序2执行完后才结束全部程序,并返回起始位址。此时CNDE不起作用,只有ED起作用。 当X0接通时,CPU执行完程序1后,遇到指令CNDE不再继续向下执行,而返回起始位址,重新执行程序1。CNDE指令仅适用于在主程序中使用。
六、CALL、SUB、RET指令 CALL:调子程序指令。表示执行指定的子程序。 SUB:子程序入口指令。表示子程序开始。 RET:子程序返回指令。表示子程序结束并返回到主程序。
七、ICTL、INT、IRET指令 ICTL:中断控制指令。表示设置中断控制。 INT: 中断入口指令。表示启动一中断控制。 IRET:中断返回指令。表示中断程序结束并返回主控程序。