比较指令(CMP)的应用举例
三菱PLC指令传送比较指令及实际应用

注:BCD变换指令可用于PLC内部的二进制数据变为七段显示等需要的BCD码而 向外部输出。
例10,若X1、2、3、5为“1”,其余的为“0”,当X10合上, 分析 Y0~Y7的状态。
图5-21
四、块传送
1.指令代码:FNC15,助记符:BMOV,BMOV(P) 2.功能:把指定操作数软元件区的内容传送到 目标操作数软 元件区中,连续源单元→连续目标单元。 3.格式
X0
S Dn
BMOV D5 D10 K3
S:KnX,KnY,KnM,KnS,T,C,D——指定源元件的首 地址 D:KnX,KnY,KnM,KnS,T,C,D——指定目标元件的 首地址 n:≤512 ——传送单元的数量
八、BIN交换指令
1.指令代码:FNC19 助记符:BIN (P)
16/32
2.功能:源操作数的BCD码转换成二进制数至
目标元件。
3.格式:
X10
SD
FNC19
BIN K2X0 D10
K2X0(BCD码) → D10(B二进制) 01011001(59)→ 00111011(B) 变换范围 16位:0~9999
例9:将S10~S41清零,将M32~M63置1
X0
FNC16
FMOV K0000 K4S10 K2
FNC16 HFFFF K4M32 K2 FMOV
六、数据交换指令
1.指令代码:FNC17 助记符:XCH,XCH(P),DXCH, DXCH(P)。
2.功能:指定目标软元件间进行数据交换。 3.格式:只有目标数 D1,D2,KnY,KnM,KnS,T,C, D,
比较指令CMP与区域比较指令ZCP

比较指令CMP与区域比较指令ZCP---三菱FX系列PLC应用指令比较指令与区域比较指令有16位指令与32位指令的区分,本节再介绍一下FX系列PLC32位寄存器的地址分配。
比较指令:CMP:16位连续型比较指令CMPP:16位脉冲型比较指令DCMP:32位连续型比较指令DCMPP:32位脉冲型比较指令举例:LD X000CMP K100 D100 M0当X0闭合时:如果寄存器D100的值小于100时,则M0闭合如果寄存器D100的值等于100时,则M1闭合如果寄存器D100的值大于100时,则M2闭合1、比较指令可以控制例中M0,M1,M2三个位元件的状态。
2、当X0断开时,M0,M1,M2仍保持在X0闭合时的运算结果,如果想清除CMP 比较指令的运算结果则需要用复位指令。
区域比较指令:ZCP:16位连续型区域比较指令ZCPP:16位脉冲型区域比较指令DZCP:32位连续型区域比较指令DZCPP:32位脉冲型区域比较指令举例:LD X000ZCP K100 K200 D100 M10当X0闭合时:如果寄存器D100的值小于100时,则M10闭合如果寄存器D100的值大于100,小于200时,则M11闭合如果寄存器D100的值大于200时,则M12闭合1、区域比较指令可以控制例中M10,M11,M12三个位元件的状态。
2、当X0断开时,M10,M11,M12仍保持在X0闭合时的运算结果,如果想清除ZCP 区域比较指令的运算结果则需要用复位指令。
FX系列PLC32位寄存器的地址分配:32位寄存器是占用两个16位寄存器地址,比如说:D0用到32位指令里,则D0,D1这两个寄存器被占用。
D0为数据低位,D1为数据高位。
如果23位寄存器D0的值为16,则D1的值为0,D0的值为16如果23位寄存器D0的值为70000,则D1的值为1,D0的值为4464。
(4464的十六进制值为1170,1十六进制值仍为1。
比较指令cmp

比较指令cmp前言比较指令(cmp)是计算机中一种用于比较两个数据(通常是数据对象或文件)之间的指令。
通过比较指令,我们可以判断两个数据是否相等或者大小关系。
在实际应用中,比较指令被广泛应用于程序的流程控制、排序算法、查找算法等方面。
本文将对比较指令cmp的使用方法进行全面、详细、完整且深入地探讨。
使用方法比较指令cmp的基本语法比较指令cmp的基本语法如下:cmp [选项] 文件1 文件2其中,文件1和文件2是需要比较的两个文件的路径。
比较指令cmp的常用选项常用的比较指令cmp选项如下: - -b 或–bytes:以字节为单位进行比较(默认情况下以行为单位进行比较)。
- -i 或–ignore-initial:忽略共同长度的初始部分。
- -l 或–verbose:显示不同的同时还显示字节的编号。
- -s 或–quiet 或–silent:不显示不同之处。
- -z 或–zero-terminated:以空字节作为结束符,而不是换行符。
比较指令cmp的返回值比较指令cmp根据比较结果的不同返回不同的值: - 若两个文件相同,cmp返回0。
- 若两个文件不同,cmp返回1。
- 若比较出错,cmp返回2。
比较指令cmp的应用场景程序的流程控制在程序的流程控制中,我们经常需要判断两个数据是否相等或者大小关系。
比较指令cmp可以帮助我们实现这些判断。
通过结合条件语句,我们可以根据cmp的返回值来执行不同的代码块,实现程序的各种流程控制逻辑。
排序算法排序算法是计算机领域中非常重要的基础算法之一。
在排序算法中,我们需要比较数据的大小关系来进行排序。
比较指令cmp可以帮助我们快速比较两个数据的大小关系,从而实现各种排序算法,如冒泡排序、快速排序、归并排序等。
查找算法查找算法是计算机领域中解决查找问题的算法。
在查找算法中,我们需要比较数据是否相等来确定是否找到目标数据。
比较指令cmp可以帮助我们进行数据的比较,从而实现各种查找算法,如二分查找、哈希查找、线性查找等。
第六章3-1传送比较指令及应用资料

一、比较指令 CMP (Compare)
❖ 操作数
[S1]、[S1] : K,H、KnX、KnY、KnM、KnS、T、C、 D、
V,Z
[D]:Y、M、S X0 ❖ 梯形图
[S1] [S2] [D]
CMP K100 C10 M0
M0 K100<C10的当前值时,M0 = ON
M1 K100=C10的当前值时,M1 = ON
T2
X2
十六进制 Y3 Y2 Y1 Y0
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
MOV H03
T1 K50
K1Y0
MOV H01
T2 K60
K1Y0
MOV H05 K1Y0
MOV H00 K1Y0 END
实习操作:电动机Y-△降压启动控制线路与程序
图5.6 Y-△降压启动控制线路
表5.7 Y-△降压启动过程和传送控制数据表
操作元 件 SB2
SB1 KH
状态
形启动 T0延时10s T0延时到 T1延时1s T1延时到 △形运转
停止 过载保护
输入端
口
Y3/KM3
X2
0
输出端口/负载 Y2/KM2 Y1/KM1
1
1
Y0/HL 1
传送数据 K7
0
0
2.区间比较指令ZCP举例
【例题】 用如图所示的传送带输送工件,数量为20个。连接X0端子的光电传感器对 工件进行计数。当计件数量小于15时,指示灯常亮;当计件数量等于或大于15以上 时,指示灯闪烁;当计件数量为20时,10s后传送带停机,同时指示灯熄灭。设计 PLC控制线路并用区间比较指令ZCP编写程序。
比较指令

指令解读
当驱动条件成立时,将源址S与源址SI、S2分 别进行比较,并根据比较结果:SVS1, S1VSVS2, S>S2置终址位元件D, D+1, D+2其中 一 个为ON。
S1MSMS2 D1=ON
编程示例
ZCP K30 K100 DO M10
小结
1. 掌握CMP、ZCP指令的应用; 2. 能熟练应用功能指令编制程序。
指令解读
S1>S2 一 D=ON S1=S2 ―D+1=ON S1<S2 一 D+2=ON
例讲
CMP D10 K20 YO (D10)=K30 YO=ON (D10)=K20 Y1=ON (D10)=K10 Y2=ON
程序梯形图
应用注意
1. 一旦指令终址后,三个连续位元件D, D+1, D+2已被指令占用,不能再做他用。
D0<K30 "0 K30 m DO m K100 代]
()()D0>K100
M10=ON‘ M11=ON ' _ |\|
程序梯形图
应用注意
1. ZCP指令在正常执行情况下,S1<S2,如果发生 了 S1>S2的情况,则PLC自动把S2作为S1处理。 2. 其他应用注意通CMP指令。
例讲
某温度控制系统,温度控制范围为23°C〜 28°C, 超过范围用灯光闪烁报警。
M8002
程序
D10 D20
思考题
如图为一密码锁接线图,密码锁由三位数字 开关输入组成,设其密码为K256,试编写其开锁 控 制程序梯形图。
FX2N PLC
触点比较指令应用实例

触点比较指令应用实例触点比较指令应用实例一、触点比较指令(CMP)1、CMP的功能CMP指令的功能是比较目的操作数与源操作数的大小,它会把比较的结果存入标志寄存器中,因此仅需要查看标志寄存器的值就能够得到比较结果。
它有以下功能:(1)CMP指令可以用来比较两个数的大小,如果两个操作数相等,比较结果为零;(2)CMP指令可以比较两个数的符号,如果源操作数的符号比目的操作数大,比较结果为正;(3)CMP指令可以检测两个操作数的值是否越界,如果越界,比较结果为负;(4)CMP指令可以检测两个操作数的位数是否相等,如果不等,比较结果为负。
2、CMP指令的应用实例(1)比较寄存器和立即数的大小:CMP DX,#0x0004此指令比较的是DX寄存器与立即数0x0004,DX寄存器的值大于0x0004时,CF=0,ZF=0,SF=0;DX寄存器的值小于0x0004时,CF=1,ZF=0,SF=1;DX寄存器的值等于0x0004时,CF=0,ZF=1,SF=0。
(2)比较内存单元和寄存器的大小:CMP AX,[DI]此指令比较的是AX寄存器和DI指针指向的内存单元的大小,当AX值大于内存单元的值时,CF=0,ZF=0,SF=0;当AX值小于内存单元的值时,CF=1,ZF=0,SF=1;当AX值等于内存单元的值时,CF=0,ZF=1,SF=0。
(3)比较两个内存单元的大小:CMP [SI],[DI]此指令比较的是SI指针指向的内存单元和DI指针指向的内存单元的大小,当SI指针指向的内存单元的值大于DI指针指向的内存单元的值时,CF=0,ZF=0,SF=0;当SI指针指向的内存单元的值小于DI指针指向的内存单元的值时,CF=1,ZF=0,SF=1;当SI指针指向的内存单元的值等于DI指针指向的内存单元的值时,CF=0,ZF=1,SF=0。
二、跳转指令(JMP)1、JMP指令用来改变程序流程,它可以用来实现程序的条件转移,无条件转移,循环等操作。
可编程控制器应用技术(三菱) 案例3-1 数码管循环显示数字

案例3-1 数码管循环显示数字
1.案例原理与提示
(1) 数码管的ABCDEFG七段对应Y0~Y6,计数器循环计数。
(2) 用数据寄存器存放变化的数字,用INC(加1)指令使数字不断递增,用CMP(比较)指令实现数据的循环。
(3) 也可以用功能指令直接七段译码。
2. 案例实施过程
1) I/O分配
数码显示控制输入/输出端口分配表如下表所示。
数码显示控制输入/输出端口分配表
2) 控制程序编写
数码显示控制程序梯形图如下图所示。
数码显示控制程序梯形图
用数据寄存器D0存放变化的数字0~9。
由特殊功能继电器M8013产生秒脉冲,采用加1指令使D0中的数据不断递增,每过一秒加1。
当D0中的数据递增为10时,D0中再次
赋值为0。
程序中M8002对程序初始化,把K0(十制数0)放入数据寄存器D0中。
当比较指令(CMP)的比较结果为等于时(D0=10),M11=1,则D0中赋值0。
当SB12断开时,D0=0,[INCP D0]指令不工作,数码管上显示0。
3) 接线与调试
数码显示控制外部接线图如下图所示。
数码显示控制外部接线图
3. 思考与提升
(1) 当SB12开关闭合时,数码管就循环显示0~A,每个数字显示0.5s;当SB12开关断开时,数码管上显示“H”。
(2) 当SB12开关闭合时,数码管就循环显示9~0,每个数字显示0.8s。
罗克韦尔cmp指令

罗克韦尔cmp指令罗克韦尔CMP(Compare)指令是一条用于比较两个操作数的指令,常用于在编程中进行条件判断和跳转操作。
语法:CMP destination, source功能:将两个操作数进行减法运算,并根据结果设置相应的标志位。
操作数:- destination:比较的目标操作数,通常是寄存器或内存中的值。
- source:比较的源操作数,通常是寄存器、立即数或内存中的值。
指令执行过程:1. 将源操作数的值从目标操作数中减去。
2. 根据减法结果设置标志位(Carry Flag、Zero Flag、Sign Flag等)。
常见的标志位设置情况如下:- 如果结果为零,将设置Zero Flag。
- 如果结果为正,将设置Sign Flag为0,Carry Flag为0。
- 如果结果为负,将设置Sign Flag为1,Carry Flag为1。
示例代码:assemblyMOV AX, 5 ; 将5赋值给AX寄存器CMP AX, 10 ; 比较AX寄存器的值和10JE equal ; 如果相等则跳转到equal标签处JG greater ; 如果大于则跳转到greater标签处JL less ; 如果小于则跳转到less标签处equal: ; 相等的情况下执行的代码...JMP done ; 跳转到done标签处greater: ; 大于的情况下执行的代码...JMP done ; 跳转到done标签处less: ; 小于的情况下执行的代码...JMP done ; 跳转到done标签处done: ; 执行完毕后的代码...上述代码中,首先将AX寄存器的值设置为5,然后使用CMP指令将AX寄存器的值与10进行比较。
根据比较结果,可通过跳转指令(JE、JG、JL)来执行不同的代码块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、比较指令功能及用法
1、CMP指令
(1)适用软元件
(2)功能与动作
二、比较指令应用实例
例1、单按钮启停控制
控制程序:
例2、生产流水线小车运动
控制要求:
某生产线要求小车执行以下控制:初始状态下,小车停在行程开关ST1 的位置,
且行程开关ST1被压合。
第一次按下按钮SB1后,小车前进至行程开关ST2处停止,5S后退回行程开关ST1处停止。
第二次按下SB1后,小车前进到行程开关ST3处停止,5S后退回到行程开关ST1处停止。
第三次按下SB1后,小车前进到行程开关ST4处停止,5S后退回至行程开关ST1处停止。
再按下按钮SB1,重复以上过程。
生产流水线小车运动示意图如图所示。
后退
ST5控制程序:。