0%

信捷PLC中ZCP和CMP的区别

文章时效性提示

本文发布于 249 天前,部分信息可能已经改变,请注意甄别。

在信捷PLC编程中,ZCP(区间比较)和CMP(单值比较)都是数据比较指令,但功能和应用场景有显著区别。以下是详细对比及实例说明:


1. 核心区别

指令功能输出结果数量适用场景
CMP比较源数据与单个目标值3种结果(>、=、<)判断数据是否超限、等于特定值
ZCP判断源数据是否在指定区间内3种结果(<下限、区间内、>上限)数据范围检测(如温度、压力控制)

2. 指令详解

(1) CMP 指令

  • 语法CMP S1 S2 D
    • S1:源数据(待比较值)
    • S2:目标值
    • D:连续3个位元件存储结果(D=小于, D+1=等于, D+2=大于)
  • 执行特点:每个扫描周期执行一次,结果实时更新。

(2) ZCP 指令

  • 语法ZCP S1 S2 S3 D
    • S1:区间下限
    • S2:区间上限(需满足 S1 ≤ S2
    • S3:源数据
    • D:连续3个位元件存储结果(D=小于下限, D+1=区间内, D+2=大于上限)
  • 执行特点:仅在使能条件ON时执行一次(需配合上升沿触发)。

3. 实例演示

场景1:CMP 指令应用(速度监控)

1
2
3
4
5
|   X0      CMP K100 D0 M0  |  
|----|------[CMP 100 D0 M0]-|
| |--[M0]----(Y0) | // D0 < 100 时Y0亮
| |--[M1]----(Y1) | // D0 = 100 时Y1亮
| |--[M2]----(Y2) | // D0 > 100 时Y2亮
  • 功能:监控D0的值:
    • D0 < 100M0=ON → Y0输出
    • D0 = 100M1=ON → Y1输出
    • D0 > 100M2=ON → Y2输出

场景2:ZCP 指令应用(温度区间控制)

1
2
3
4
5
|   X1      ZCP K50 K80 D10 M10  |  
|----|------[ZCP 50 80 D10 M10]-|
| |--[M10]---(Y3) | // D10 < 50 → 温度过低
| |--[M11]---(Y4) | // 50≤D10≤80 → 温度正常
| |--[M12]---(Y5) | // D10 > 80 → 温度过高
  • 功能:检测D10(温度值):
    • <50℃M10=ON → 启动加热(Y3)
    • 50~80℃M11=ON → 维持状态(Y4)
    • >80℃M12=ON → 启动冷却(Y5)

4. 关键注意事项

  1. 结果元件占用
    • CMP/ZCP 的输出会占用连续3个位元件(如指定M0则实际使用M0~M2)。
  2. 指令触发方式
    • CMP:每个扫描周期执行,适合实时监控。
    • ZCP:需配合上升沿触发(如LDP X1),避免多次执行。
  3. 区间有效性
    • ZCP 要求 S1 ≤ S2,否则 M11(区间内)永远为OFF。

总结

  • CMP:用于单点比较(如阈值报警、数值匹配)。
  • ZCP:用于区间判断(如工艺参数范围控制)。
    根据实际需求选择指令,可高效实现精准的逻辑控制。