文档介绍:5.2 FX系列可编程控制器功能指令概述
程序流程控制功能指令 传送与比较指令
算术运算和逻辑运算指令 循环移位与移位指令
数据处理指令 高速处理指令
外部I/O设备指令 FX系列外部设备指令
浮点数运算指令 方便指令
外围设备指令 触点比较指令
程序流程控制功能指令
分类
FNC NO.
助记符
功 能
32位
指令
脉冲
指令
FX1S
FX1N
FX2N
FXZNC
程序流控制
00
CJ
条件跳转
—
○
○
○
○
○
01
CALL
子程序调用
—
○
○
○
○
○
02
SRET
子程序返回
—
—
○
○
○
○
03
IRET
中断返回
—
—
○
○
○
○
04
EI
允许中断
—
—
○
○
○
○
05
DI
禁止中断
—
—
○
○
○
○
06
FEND
主程序结束
—
—
○
○
○
○
07
WDT
监控定时器刷新
—
○
○
○
○
○
08
FOR
循环开始
—
—
○
○
○
○
09
NEXT
循环结束
—
—
○
○
○
○
条件跳转指令CJ
子程序调用指令CALL与返回指令SRET
中断返回指令IRET、允许中断指令EI与禁止中 断指令DI
主程序结束指令FEND
监视定时器刷新指令WDT
循环开始指令FOR与循环结束指令NEXT
CJ、CJP指令用于跳过顺序程序某一部分的场合,以减少扫描时间。条件跳转指令CJ应用说明如图
子程序调用指令CALL与返回指令SRET
子程序应写在主程序之后,即子程序的标号应写在指令FEND之后,且子程序必须以SRET指令结束。
中断返回指令IRET、允许中断指令EI与禁止中断指令DI
PLC一般处在禁止中断状态。指令EI~DI之间的程序段为允许中断区间,而DI~EI之间为禁止中断区间。当程序执行到允许中断区间并且出现中断请求信号时,PLC停止执行主程序,去执行相应的中断子程序,遇到中断返回指令IRET时返回断点处继续执行主程序。
FEND指令表示主程序的结束,子程序的开始。程序执行到FEND指令时,进行输出处理、输入处理、监视定时器刷新,完成后返回第0步。
FEND指令通常与CJ-P-FEND、CALL-P-SRET和I-IRET结构一起使用(P表示程序指针、I表示中断指针)。CALL指令的指针及子程序、中断指针及中断子程序都应放在FEND指令之后。CALL指令调用的子程序必须以子程序返回指令SRET结束。中断子程序必须以中断返回指令IRET结束
如果扫描时间(从第0步到END或FEND)超过100ms,PLC将停止运行。在这种情况之下,应将WDT指令插到合适的程序步(扫描时间不超过100ms)中刷新监视定时器。
FOR~NEXT之间的程序重复执行n次(由操作数指定)后再执行NEXT指令后的程序。循环次数n的范围为1~32767。若n的取值范围为-32767~0,循环次数作1处理。
FOR与NEXT总是成对出现,且应FOR在前,NEXT在后。FOR~NEXT循环指令最多可以嵌套5层。
利用CJ指令可以跳出FOR~NEXT循环体。
传送与比较指令
比较指令CMP
区间比较指令ZCP
传送指令MOV
移位传送指令SMOV
取反传送指令CML
块传送指令BMOV
多点传送指令FMOV
数据交换指令XCH
BCD变换、BIN变换指令比较指令CMP
比较指令CMP
CMP指令有三个操作数:两个源操作数[S1.]和[S2.],一个目标操作数[D.],该指令将[S1.]和[S2.]进行比较,结果送到[D.]中。CMP指令使用说明如图所示。
区间比较指令ZCP
ZCP指令是将一个操作数[S.]与两个操作数[S1.]和[S2.]形成的区间比较,且[S1.]不得大于[S2.],结果送到[D.]中。ZCP指令使用说明如图5.15所示。
传送指令MOV
MOV指令将源操作数的数据传送到目标元件中,即[S.]→[D.]。MOV指令的使用说明如图所示。当X0为ON时,源操作数[S.]中的数据K100传送到目标元件D10中。当X0为OFF,指令不执行