三菱PLC功能指令5566

更新时间:2023-10-09 07:28:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

5.2 FX系列可编程控制器功能指令概述

? 程序流程控制功能指令 传送与比较指令 ? 算术运算和逻辑运算指令 循环移位与移位指令 ? 数据处理指令 高速处理指令

? 外部I/O设备指令 FX系列外部设备指令 ? 浮点数运算指令 方便指令

? 外围设备指令 触点比较指令 程序流程控制功能指令 分类 FNC NO. 助记符 功 能 00 01 02 03 程序流控04 制 05 06 07 08 09 CJ CALL SRET IRET EI DI FEND WDT FOR NEXT 条件跳转 子程序调用 子程序返回 中断返回 允许中断 禁止中断 主程序结束 循环开始 循环结束 32位 脉冲 FX1S FX1N FX2N FXZNC 指令 指令 — — — — — — — — — ○ ○ — — — — — ○ — — ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 监控定时器刷新 — ? 条件跳转指令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时返回断点处继续执行主程序。

?

出处理、输入处理、监视定时器刷新,完成后返回第0步。

? FEND指令表示主程序的结束,子程序的开始。程序执行到FEND指令时,进行输? 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,指令不执行,数据保持不变

移位传送指令SMOV

? 首先将二进制的源数据(D1)转换成BCD码,然后将BCD码移位传送,实现数据

的分配、组合。源数据BCD码右起从第4位(m1=4)开始的2位(m2=2)移送到目标D2/的第3位(n=3)和第2位,而D2/的第4和第1两位BCD码不变。然后,

目标D2/中的BCD码自动转换成二进制数,即为D2的内容。BCD码值超过9999时出错。

取反传送指令CML

? CML指令使用说明如图所示。将源操作数中的数据(自动转换成二进制数)逐位取

反后传送。

块传送指令BMOV

BMOV指令是从源操作数指定的元件开始的n个数组成的数据块传送到指定的目标。如果元件号超出允许的元件号范围,数据仅传送到允许的范围内。BMOV指令的使用说明如图所示。

多点传送指令FMOV

FMOV指令是将源元件中的数据传送到指定目标开始的n个目标元件中,这n个元件中的数据完全相同。FMOV指令使用说明如图所示

数据交换指令XCH

XCH指令是将两个目标元件D1和D2的内容相互交换。使用说明如图所示 BCD变换、BIN变换指令

? BCD是将源元件中的二进制数转换为BCD码送到目标元件中。对于l 6位或32位二进制操作数,若变换结果超出0-9999或0-99999999的范围就会出错。

? BCD指令常用于将PLC中的二进制数变换成BCD码输出以驱动LED显示器。 ? BIN是将源元件中的BCD码转换为二进制数送到目标元件中。常数K不能作为本

指令的操作元件。如果源操作数不是BCD码就会出错。 ? BIN指令常用于将BCD数字开关的设定值输入到PLC中。 算术运算和逻辑运算指令

? 加法指令ADD、减法指令SUB ? 乘法指令MUL、除法指令DIV ? 加1指令INC、减1指令DEC

? 字逻辑运算指令(FNC26~FNC29) 加法指令ADD、减法指令SUB

? ADD指令是将指定的源元件中的二进制数相加,结果送到指定的目标元件中去。每

个数据的最高位作为符号位(0为正,1为负),运算是二进制代数运算。 ? 减法指令SUB与ADD指令类似。

乘法指令MUL、除法指令DIV

MUL指令是将两个源元件中的数据的乘积送到指定目标元件。如果为16位数乘法,则乘积为32位,如果为32位数乘法,则乘积为64位,如图5.25所示。数据的最高位是符号位

加1指令INC、减1指令DEC

? INC、DEC指令操作数只有一个,且不影响零标志、借位标志和进位标志。 ? 在16位运算中,32767再加1就变成了-32768。32位运算时,2147483647再加1

就变成-2147483648。DEC指令与INC指令处理方法类似。 ?

字逻辑运算指令(FNC26~FNC29)

字逻辑运算指令包括WAND(字逻辑与)、WOR(字逻辑或)、WXOR(字逻辑异或)和NEG(求补)指令。使用方法如图所示 循环移位与移位指令

? 右循环移位指令ROR、左循环移位指令ROL

? 带进位循环右移指令RCR、带进位循环左移指令RCL ? 位右移位指令SFTR、位左位指令SFTL

? 字右移位指令WSFR、字左移位指令WSFL ? 先入先出(FIFO)写入指令SFWR、读出指令SFRD 右循环移位指令ROR、左循环移位指令ROL 助记符 功 能 [D.] 把目标元件的n 操 作 数 程 序 步 ROR FNC30 K、H ROR、RORP、ROL、位循环右移nKnY、循环右移 16位操作: ROLP:5步 次 KnM、KnS、n≤16 DROR、DRORP、把目标元件的T、C、D、32位操作: DROL、DROLP:9 ROL FNC31 位循环左移nV、Z n≤32 步 循环左移 次

带进位循环右移指令RCR、带进位循环左移指令RCL 助 记 符 功 能 操 作 数 [D.] 把目标元件RCR FNC32 的位和进位N K、H 、16位操RCR、RCRP, 程 序 步 KnY带进位右移 一起右移nKnM、作: RCL、RCLP:5步 位 KnS、T、n≤16 DRCR、DRCRP, 把目标元件C、D、V、32位操DRCL、DRCLP:9的位和进位RCL FNC33 作: 步 Z 带进位左移 一起左移nn≤32 位 执行RCR、RCL指令时,各位的数据与进位位M8022一起(16位指令时一共17位)向右(或向左)循环移动n位。在循环中移出的位送入进位标志,后者又被送回到目标操作元件的另一端。位右移位指令SFTR、位左位指令SFTL 操 作 数 助 记 符 功 能 [S.] [D.] n1 n2 把源元件状态SFTR FNC34 存放到堆栈X 带进位右移 中,堆栈右移 Y 把源元件状态M SFTL FNC35 存放到堆栈S 带进位左移 中,堆栈左移 程 序 步 Y M S K、H n2≤n1≤1024 SFTR、SFTRP、SFTL、SFTLP:9步

本文来源:https://www.bwwdw.com/article/lz9f.html

Top