FANUC PMC 上升沿下降沿检测 DIF 指令详解

FANUC PMC 上升沿下降沿检测是解决单脉冲信号问题的核心手段。现场有一种故障特别让人窝火:

按钮明明只按了一下,动作要么没执行,要么执行了三四遍。

机床按钮是单脉冲信号——按下瞬间导通,松手就断开,过程可能只有几十毫秒。而 PMC 每个扫描周期都会把整个梯形图扫一遍,扫到多少遍,就可能动作多少遍。

这就是漏执行和重复执行的根源:不是信号错了,是没做边沿处理。

这篇把 FANUC PMC 里的边沿检测讲透,包括微分指令、CNT 计数配合,以及单脉冲信号的保持锁存。

一、为什么单脉冲信号必须做 FANUC PMC 上升沿下降沿检测

先看问题的本质。

假设有一个按钮输入信号 X1.0,PLC 扫描周期 10ms,工人在按钮上按了 50ms:

时间点 X1.0 状态 不做边沿处理 做了上升沿处理
0ms 保持 OFF 不动作 不动作
10ms 变为 ON 动作 1 次 动作 1 次
20ms 仍 ON 动作 2 次 不动作
30ms 仍 ON 动作 3 次 不动作
40ms 仍 ON 动作 4 次 不动作
50ms 变回 OFF 不动作 不动作

一次按键被执行了 4~5 次。

而如果按得太快,只按了 5ms,恰好落在两次扫描之间——信号被整个跳过了,一次都不会执行,这就是漏执行。

核心认知:梯形图里的普通触点只认”当前是什么状态”,不认”状态变了没有”。你要的是”变化”,就必须用边沿检测。

安全警示:微分与边沿检测涉及单脉冲信号的响应逻辑,修改后可能改变按钮动作次数与时序。请在机床处于安全状态(各轴静止、急停生效)时进行,或确保有资深工程师在场指导。修改前务必备份原始梯形图与顺序程序! 重复触发可能导致机构误动作,单脉冲被漏检则可能导致流程中断。

二、DIF / DIFU / DIFD:FANUC PMC 上升沿下降沿的三个微分指令

FANUC PMC 提供三个微分指令,用来把”持续的电平”变成”瞬间的脉冲”:

指令 名称 触发时机 输出

同一个按钮,为什么动作了 5 次

DIF 上升沿微分 输入 OFF → ON 的瞬间 输出一个扫描周期的 ON 脉冲
DIFU 上升沿微分 同 DIF 同一个扫描周期内的上升沿
DIFD 下降沿微分 输入 ON → OFF 的瞬间 输出一个扫描周期的 ON 脉冲

工作逻辑:

DIF 把一个持续电平,压缩成只在跳变瞬间出现的一个扫描周期脉冲。

这就是”单脉冲化”的手段——不管按钮按了 50ms 还是 5s,处理它的下游只看到一个瞬间脉冲。

注意:DIF 与 DIFU 在不同系统型号中的支持和行为可能存在差异,具体可用指令请以本机 FANUC 手册和 LADDER-III 实际指令列表为准,需现场验证。 常见做法是用 DIF 配合参数号指定输出地址,实现一个扫描周期的脉冲输出。

怎么确认哪个可用? 在 LADDER-III 的功能指令列表里直接查,看有没有 DIFU / DIFD 条目。有就能用,没有就得用别的方式替代——这是最可靠的办法,别凭印象。

三、写法 1:单按钮触发(FANUC PMC 上升沿最基础用法)

最常见的场景——按钮按下触发一个动作。

错误写法:直接用常开触点接动作线圈。

X1.0(按钮)──────────── OUT Y0.0

结果:按住 50ms,执行 4~5 次。

正确写法:加上升沿微分。

X1.0(按钮)── DIF ── OUT Y0.0

结果:不管按多久,只执行 1 次。

这是本文最需要记住的一条:一个按钮只该触发一次,就必须加 DIF 做上升沿处理。

四、写法 2:开关型信号(FANUC PMC 上升沿下降沿 + 保持线圈)

另一类常见需求:按钮当开关用——按一下开、再按一下关。

这里就不能只靠 DIF 了。因为 DIF 给的是”瞬间脉冲”,脉冲过去就没了,没法维持状态。

正确做法:用微分触发 SET / RESET 保持线圈。

X1.0(按钮)── DIF ──┬── SET Y0.0      ← 第一次按:置位,Y0.0 变 ON 并保持
                     │
                     └── RESET Y0.0    ← 第二次按:复位,Y0.0 变 OFF

逻辑:

  • 第一次按(上升沿)→ SET 线圈触发 → Y0.0 置 ON,一直保持
  • 松手 → 因为是保持线圈,Y0.0 不变
  • 第二次按(又一个上升沿)→ RESET 线圈触发 → Y0.0 复位 OFF

注意 SET 和 RESET 两条支路是并联的,都接在 DIF 之后。 顺序程序每扫描一次会从上往下走,两条都会判断,但 SET 和 RESET 互斥,最终结果就是”按一次翻一次”。

这类”按钮当开关”的场景现场非常多:手动/自动模式切换、手动点动开关、面板灯切换。如果漏了保持,就会出现”按一下开了,松手又关了”。

五、写法 3:CNT 计数器配合上升沿

CNT 是 FANUC PMC 的计数指令——它和边沿检测配合,用来统计”有效动作发生了多少次”。

先澄清一个常见混淆:CNT 是计数器,不是边沿检测指令。 边沿检测靠 DIF 系列,CNT 负责计数。两者配合才能既”只算一次”又”能累计”。

为什么很多地方要用 CNT 而不是 DIF 直接接动作? 这是 FANUC PMC 上升沿下降沿与计数配合的典型用法。

因为有些场景要的不只是”动一次”,而是”动作持续规定次数”,或者要”边沿触发 + 累计次数 + 次数达标后停止”。

典型写法:

X1.0(按钮)── DIF ── CNT 1(5) D100 D101
                            ↑
                      预置值 5,达到 5 次后 D101 输出 ON

执行过程:

  1. 每次按钮上升沿,CNT 加 1
  2. 累计到 5 次,D101 输出 ON,表示”次数达标”
  3. 之后可据此判断是否停止或报警

这里 DIF 的作用至关重要:不加 DIF,CNT 会在按钮按住期间连续累加,加到 5 次只用 50ms——用户根本反应不过来,逻辑就乱了。

对应到 FANUC PMC 计数器 CTR 指令详解 那篇讲的场景:CTR 统计外部物理次数(比如工件检测信号),CNT 统计内部逻辑触发次数。两者触发源不同,但都遵循”必须有边沿”这个原则。

六、写法 4:单脉冲信号的保持与锁存(FANUC PMC 上升沿下降沿的高级应用)

最后一类,也是最容易出问题的一类。

场景:按钮脉冲要驱动一个完整流程

典型需求:按一次启动按钮,机床自动跑完一整个动作序列,中途不能因为按钮信号消失而中断。

FANUC PMC 上升沿下降沿最典型的工程场景,就是按钮单脉冲驱动完整流程。按钮只是”启动”信号,整个动作是十几步顺序程序。如果直接在阶梯图里用按钮信号驱动,脉冲一消失,整个流程全停。

正确做法:先把脉冲锁存下来,再用锁存位驱动流程,这才是 FANUC PMC 上升沿处理在工程上的正确落点。

X1.0(启动按钮)── DIF ── SET M100      ← 只锁存"启动意图"
                                   │
M100(流程进行中)── RST M200│         ← 流程结束时解除锁存

M100 ── 驱动整个动作流程

三层结构:

层次 用什么 作用
采集层 DIF 上升沿 把按钮脉冲干净地抓成一个瞬间
锁存层 SET / RST 线圈 把瞬间意图保持成持续状态位
执行层 状态位驱动顺序程序 让流程按自己的节奏跑完

这三层缺一不可。 少了采集层会重复触发,少了锁存层会中途断,少了执行层就没法做复杂流程。

实际写的时候还有一个细节:流程做完要能再次触发,所以流程结束处必须解除锁存(用 RST 把 M100 复位)。忘了复位,第二次按按钮就没反应了——这是这个写法最常见的现场故障。

七、四种写法速查表

写法 指令组合 用途 最容易错在哪

边沿检测四种写法对照

单按钮触发 DIF + 动作 按一次动一次 漏加 DIF → 按一次动好几遍
开关型信号 DIF + SET/RESET 按钮当开关开/关 用普通触点 → 松手就回位
计数配合 DIF + CNT 累计有效触发次数 不加 DIF → 毫秒内就加满
单脉冲锁存 DIF + SET + 状态位驱动 脉冲驱动完整流程 忘了解除锁存 → 第二次不响应

八、FANUC PMC 上升沿下降沿常见故障速查表

现象 可能原因 排查方向
按一次动作好几遍 没加 DIF,信号持续被扫到 串入上升沿微分
按钮有时没反应 按得太快,信号落在扫描间隙 加 DIF 保证锁存意图
松手后状态没了 用普通触点当开关 改用 SET / RESET 保持线圈
按一下开了松手又关 同上,没做保持 加保持线圈
计数瞬间就加满 CNT 前没加 DIF CNT 前面加微分
流程跑到一半停了 流程直接用按钮信号驱动 改为先锁存再用状态位驱动
第二次按按钮没反应 流程结束后忘了解除锁存 流程末加 RST 复位锁存位
边沿检测指令找不到 本机不支持该微分指令 查 LADDER-III 指令列表确认可用性
边沿脉冲维持时间不对 期望多扫描周期保持 改用 SET 锁存代替微分

最后一条值得说清楚:DIF 产生的脉冲只持续一个扫描周期,这在绝大多数场合是对的,但如果你的逻辑需要”这个动作标志维持到下一段程序执行完”,用 DIF 就不行了——脉冲早没了。这时候必须用保持线圈,而不是延长微分。

小结

FANUC PMC 上升沿下降沿处理,记住四点:

  1. 单脉冲必须做边沿,用 DIF 把电平压成瞬间脉冲
  2. CNT 是计数器不是边沿指令,边沿靠 DIF 系列,两者配合才既准又累计
  3. 按钮当开关用,必须 DIF 配 SET / RESET,否则松手就回位
  4. 脉冲驱动流程,采集、锁存、执行三层齐全,流程结束别忘了解除锁存

把这篇和 FANUC PMC 计数器 CTR 指令详解、FANUC PMC 定时器 TMR 指令详解、FANUC PMC 跳转指令 JMP / LBL 详解 对照看会更清楚:DIF 负责”抓变化”,CNT/CTR 负责”数次数”,TMR 负责”等时间”,JMP/LBL 负责”走流程”,配合 FANUC PMC 顺序程序 END1/END2/END3 详解 的三级框架,整套执行机制就串起来了。

如果你对微分指令还不熟,建议从 零基础学习发那科PMC 梯形图教程 这篇开始,把触点、线圈和信号流搞熟,再理解边沿处理会轻松很多。遇到按钮时好时坏、动作重复执行这类现象,可以对照 FANUC PMC 故障排查实战 里的排查思路。


标签: FANUC系统 · 机床梯形图 · 学习内容 · 基础知识 · 维修案例

免责声明:本文内容基于 CNCShare 团队实战经验整理,仅供参考。不同机床配置、系统版本可能存在差异,实际操作请以设备官方手册为准。因据此操作导致的损失,CNCShare 不承担责任。文中微分指令可用性、CNT 用法与保持逻辑仅用于说明通用原理,具体配置与指令支持需现场验证,以本机 LADDER-III 指令列表和官方手册为准。

© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容