第12课 · 判断它落在哪一段(区间比较 ZCP)

信捷指令讲堂 · 6 段 · 共 3:27 · 正文 1076 字 · 完全免费

按大小分成几档去走不同工艺,是很常见的活。这节课讲 ZCP 怎么把"落在哪一段"一次说清,写过分选台的可以直接照搬。

完整课程 · 智慧屏 + 数字人讲师加载较慢?先看下面的图文
正在加载数字人讲师 …
首次打开约需 30~60 秒(3D 模型较大,只在电脑上加载)
加载期间可以先往下看图文讲解
这台设备暂时跑不了完整课程需要支持 WebGL 的浏览器(多数电脑浏览器都支持)
下面是同一节课的图文讲解 + 音频,内容完全一样

📱 手机上看不到完整课程(数字人讲师需要电脑浏览器的 3D 支持)。下面是这节课的图文讲解 + 音频,内容完全一样,手机上也能完整学完。想体验完整课程,用电脑打开这一页即可。
仍然在手机上试试完整课程

1/6

本节要做什么

0:34

一条指令,判断落在哪一段

  • 专门用来分段ZCP 不比大小,是判断这个数落在哪一段
  • 先写下限,再写上限ZCP 下限 上限 当前值 起始位 —— 四个操作数
  • 从上到下依次是低于下限 / 落在区间内 / 高于上限
  • 落在中间下限 50、上限 100、当前 70 → 中间那盏灯亮
判断它落在哪一段(区间比较 ZCP) · 本节要做什么 梯形图 一条 ZCP,判断落在哪一段

一条 ZCP,判断落在哪一段

上一节我们用 CMP 比大小,这一节换一条专门用来分段的指令,叫 ZCP。写法是这样:ZCP,先写下限,再写上限,然后是当前的值,最后指定一个起始位。它也是一口气占三个连续的位,从上到下依次是:低于下限、落在区间内、高于上限。看这张图,下限五十、上限一百,当前值是七十,落在中间,所以第二个位亮,中间那盏灯亮了。现在把数值改小,看灯往哪边跑。

2/6

边界算哪一段 + 起点自己挑

0:37

边界含进去,起点自己挑

  • 都算区间内等于下限、等于上限,都算落在区间内
  • 都带着等号手册图上两个不等号都带等号 —— 边界是含进去的
  • 就差一个数四十九就掉到「低于下限」那一段去了
  • 起始位可以自己挑换成从 M20 起,就占 M20 / M21 / M22
判断它落在哪一段(区间比较 ZCP) · 边界算哪一段 + 起点自己挑 梯形图 边界算哪一段,起点自己挑

边界算哪一段,起点自己挑

先说一个现场最常问的问题:正好等于下限、或者正好等于上限,算哪一段?答案是都算区间内。手册的图上,下限和上限那两个不等号都带着等号,所以五十和一百这两个数都落在中间。图上现在给的是四十九,就差一个数,已经掉到低于下限那一段去了。另外,起始位跟上一节一样可以自己挑,这里换成从 M20 开始,占的就是 M20、M21、M22。现在把它改成五十,正好压在下限上,看它算哪一段。

3/6

上下限也能是寄存器

0:32

上下限也能是寄存器

  • 也可以是寄存器下限 D20、上限 D30 —— 四个操作数都能放寄存器
  • 七十落在中间D20=50、D30=100 → 中间那盏灯亮
  • 超出去了上限改成 60 → 同一个 70 就超上限了
  • 改一个寄存器里的数就行分级标准不用改程序,触摸屏上就能调
判断它落在哪一段(区间比较 ZCP) · 上下限也能是寄存器 梯形图 上下限也能是寄存器

上下限也能是寄存器

上下限不一定非得写成固定的数,它们也可以是寄存器。这一条里,下限用的是 D20,上限用的是 D30,当前值还是 D0。现在 D20 是五十、D30 是一百,七十落在中间,中间那盏灯亮。要是把上限改成六十,同样这个七十就超出去了,亮的换成最下面那盏。这一点在现场很有用:分级的标准不用改程序,改一个寄存器里的数就行,触摸屏上就能调。

4/6

坑:上下限填反了

0:37

坑:上下限填反了会怎样

  • 把上下限填倒了上限改小、下限改大 —— 程序一个字都没动
  • 必须要小于上限手册原话:下限的值必须要小于上限
  • 两盏灯一起亮了七十既低于下限又高于上限,中间那盏永远不亮
  • 把下限改回四十改回四十 → 立刻正常,只剩高于上限那盏亮
判断它落在哪一段(区间比较 ZCP) · 坑:上下限填反了 梯形图 坑:上下限填反了会怎样

坑:上下限填反了会怎样

这里有个坑,而且是最容易犯的那种。这条程序和上一节长得一模一样,只有两个参数不同:上限从一百改成了五十,下限从五十改成了一百,也就是把上下限填倒了。手册里对这一点写得很直接:下限的值必须要小于上限,反着填它不管。你看,七十这个数既低于下限、又高于上限,两盏灯一起亮了,而中间那盏永远不亮。现场碰到两个灯同时亮,第一件事就是去查参数表是不是填反了。把下限改回四十,它立刻就正常了。

5/6

正解:让程序自己报

0:34

正解:填反了程序自己报

  • 让程序自己说出来不用靠人眼盯,程序先发现
  • 下限大于上限一条比较触点:填反了就直接点亮 Y7
  • 报警灯不亮参数正常 → 报警灯不亮,分级照常工作
  • 报警灯马上亮填反了 → 程序先说了,不用等人发现
判断它落在哪一段(区间比较 ZCP) · 正解:让程序自己报 梯形图 正解:填反了程序自己报

正解:填反了程序自己报

填反了靠人眼看,终归不保险,正解是让程序自己说出来。在 ZCP 前面加一条比较触点:下限大于上限,也就是填反了,就直接点亮一盏报警灯 Y7。再看一遍:参数正常的时候,报警灯不亮,分级照常工作;一旦有人把下限填到比上限还大,报警灯马上亮,操作员还没看出灯乱,程序已经先说了。这里顺便用上了前面讲过的触点比较,一条比较触点、一句输出,就把一类现场事故变成了醒目的报警。

6/6

收尾:双字版本 + 预告

0:34

双字版本 DZCP

  • 各占两个字DZCP:下限 / 上限 / 当前值 都占两个字
  • 超过上限五万D11=1 → 拼出 68899 > 50000,最下面那盏亮
  • 把 D11 清成零只剩 3363,掉到下限以下,换成最上面那盏
  • 下一节开始讲算术运算加减乘除,让 PLC 真的会算数
判断它落在哪一段(区间比较 ZCP) · 收尾:双字版本 + 预告 梯形图 双字版本 DZCP

双字版本 DZCP

最后看一眼双字的版本。跟前面讲过的双字一样,DZCP 的下限、上限、当前值各占两个字,D10 实际吃的是 D10 和 D11 拼起来的一个三十二位数。图上现在 D11 是一,拼出来六万多,超过上限五万,最下面那盏灯亮了。把 D11 清成零,就只剩三千多,掉到下限一万以下,亮的换成最上面那盏。这就是 DZCP。下一节开始讲算术运算:加减乘除,让 PLC 真的会算数。

想亲手试一下?

这门课的电路,已经给你摆好了。不用装软件,点开就能按按钮、看线圈亮。