在 FANUC PMC 梯形图里,CTR 计数器和 TMR 定时器是用得最多的两个功能指令。如果说 TMR 用得最多,那 FANUC PMC 计数器就是用得最多、却最容易被写错的一个。
很多工程师能熟练写定时器,一到计数器就犯迷糊:上升沿怎么触发?加了计数为什么一次加 2?断电重启后计数还在不在?想清零到底用 RESET 还是 SET?
这篇文章把 CTR 从头讲透,所有结论都按实测逻辑写,不绕弯子。
一、CTR 指令格式解析
FANUC PMC 计数器的书写格式是:
CTR a(b) c(d)
看起来和 TMR 一模一样,但工作逻辑完全不同:
| 对比项 | TMR 定时器 | CTR 计数器 |
|---|---|---|
| 计数触发条件 | 条件接通期间持续累加 | 只认上升沿(微分瞬间) |
| 累加上限 | 到预置值停止 | 累加到预设范围上限 |
| 数值单位 | b × 时基(时间) | b 是纯数字(个数) |
| 核心用途 | 延时 | 计数 |
一句话记住差别:TMR 看”持续了多久”,CTR 看”发生了几次”。
CTR 四个位置的含义:
| 位置 | 名称 | 作用 |
|---|---|---|
| a | 计数器号 | 占用一个计数器资源,严禁与定时器号重号 |
| b | 预置值 | 计数范围上限,决定溢出行为 |
| c | 当前累计值地址 | 存储当前计数值,可供显示与判断 |
| d | 计数到输出地址 | 计数值达到 b 值时输出 ON |
工作逻辑:
左侧条件出现上升沿 → 累计值 c 加 1 → 达到预置值 b 时 d 输出 ON → 累计值归零,重新开始下一轮计数。
注意最后这半句:CTR 是循环计数的。到点后自动归零再数,这是它最容易被误解的地方——很多人以为到点是”停住”,实际上是”归零重数”。
安全警示:以下操作涉及 PMC 程序写入与参数修改,请在机床处于安全状态(各轴静止、急停生效)时进行,或确保有资深工程师在场指导。修改前务必备份原始梯形图与参数数据! CTR 的保持型设置涉及参数改动,错误配置会导致计数丢失或设备异常动作。
二、FANUC PMC 计数器怎么加计数:上升沿是唯一正确的触发方式
CTR 能不能加对,全看触发方式选对没有。
正确写法:串 DIF 上升沿微分

在 CTR 前面串一个 DIF(上升沿微分),这是最标准、也是几乎唯一推荐的写法。
DIF 的作用是:把一个持续的电平信号,只在它从 OFF 变成 ON 的那一瞬间,输出一个单脉冲(一个扫描周期)。
CTR 靠这个单脉冲累加一次。所以:
- X1.0 保持 ON 很久 → CTR 只加1
- X1.0 保持 ON 一小时 → CTR 还是只加 1
这正是”计数”的语义:要数的是事件发生次数,不是”持续时间”。
错误写法一:用常开触点(不加 DIF)
如果直接用常开触点接 CTR:
- X1.0 保持 ON → 条件持续满足 → CTR 持续累加
- 实测表现:X1.0 按住 3 秒,可能加了 30 次
因为 PMC 每个扫描周期(典型 10ms 左右)都会扫一遍梯形图,条件一直满足就一直累加。
这就是”按一下加了十几个数”的根本原因。 有人以为是 CTR 坏了,其实是把”电平”当”事件”用了。
错误写法二:DIF 加在输出侧
还有人想当然,把 DIF 串在 d 输出之后。这完全无效——DIF 只对左侧输入条件有意义,串错位置等于没加。
三种触发方式实测对照
| 触发方式 | 写法 | X 信号保持 ON 1 秒的结果 | 是否正确 |
|---|---|---|---|
| 常开触点 | X1.0 ── CTR | 累加数十次 | ❌ 把电平当事件 |
| DIF 微分 | X1.0 ── DIF ── CTR | 只加 1 次 | ✅ 正确写法 |
| 上升沿指令 | 用专门的上升沿微分功能 | 只加 1 次 | ✅ 等效于 DIF |
三、清零:三种方式,用途完全不同
计数清零是现场操作需求,比如换班归零、工件计数重新开始。
方式一:RESET 线圈(推荐,最常用)
RESET R 触发时,计数器 c 立即清零。
关键点:RESET 线圈必须放在和 CTR 同一支路、CTR 的前方(梯形图从左往右,RESET 在 CTR 左边)。
这样做的好处是:复位条件一出现,CTR 被清零且当次不计数,符合”归零后重新开始”的直觉。
方式二:SET 线圈(置位后需注意)
SET S 是置位,不是清零。如果错误地用 SET 去”清零”,结果是让计数器保持动作状态,而不是归零。
方式三:断电重启自然清零
断电保持(HOLD/KEEP)关闭时,控制器重新上电,计数值会恢复为初始值(通常为0)。
这是很多人忽略的一点:如果你发现每次重启后计数总是丢,先去查保持型设置,别急着怀疑程序写错。
四、断电保持:最容易踩坑的设置
生产计数场景最核心的需求就是——机床断电重启,产量计数不能丢。
FANUC 计数器是否断电保持,由 PMC 参数中的保持型设置决定(不同系统参数号与选项位置存在差异,请以本机 PMC 参数画面和官方手册为准)。

保持型关vs 开,实测表现对照
| 保持设置 | 断电重启后计数 | 适用场景 |
|---|---|---|
| 关闭(默认) | 清零 | 单次循环计数、调试阶段 |
| 开启 | 保留断电前的值 | 生产产量、模具寿命、累计运行时间 |
三类计数场景该怎么选
1. 生产计数(产量统计)→ 必须开保持
断电、换电、偶发停电都不能丢数。这是保持型最典型的用途。
2. 模具/刀具寿命计数 → 必须开保持
换了模具归零,但机床断电不能归零,否则寿命数据全丢,刀具会超期服役伤刀伤工件。
3. 单次循环计数(如一次装夹 3 个)→ 不需要保持
每次开机就该从0 开始,反而要确认保持型是关闭的,否则越用越乱。
实测验证方法(建议每次改设置后都做一遍)
- 让计数器走几个数,比如当前 c = 25
- 正常断电(不要直接拔电,走正常关机流程)
- 重新上电,进 PMC 画面查看 c 地址
- 保持型开启 → c 仍为 25;关闭 → c 归 0
注意:直接拔电源和正常关机的结果可能不同,因为部分系统在电压跌落瞬间就写入保持了。验证务必走正常关机流程,否则测出来的结论不可靠。
五、FANUC PMC 计数器生产计数场景的完整写法
把上面几点串起来,一个可直接用的生产计数梯形图:
行1: X10.0(工件检测信号)── DIF ── CTR 1(9999) D100 D101
行2: R100.0(换班清零按钮)── RESET ──(接在 CTR 前)
行3: D101(计数到信号)── OUT Y0.0(计数到亮灯)
行4: D100(当前值)── 送显示/ 上传
三个要点:
- DIF 必须有,否则按住工件检测信号会连加
- RESET 必须在 CTR 前面同一支路,且优先于计数
- 保持型必须开,否则停电丢产量
计数上限 b 建议按实际需求留余量,比如日产量上限 9999 就填 9999。上限设小了会导致频繁归零重数,统计数据失真。
六、FANUC PMC 计数器常见故障速查表
| 现象 | 可能原因 | 排查方向 |
|---|---|---|
| 按一次加了好几个数 | 没加 DIF,用了常开触点 | 串入 DIF 上升沿微分 |
| 计数完全不动 | 触发信号一直是 ON(无上升沿) | 确认信号有 OFF→ON 的跳变 |
| 断电后计数丢失 | 保持型设置未开启 | 查PMC 参数保持型设置 |
| 换班无法归零 | RESET 线圈位置错误 | RESET 移到 CTR 之前同一支路 |
| 计数到点不停留、直接归零重数 | 对 CTR 循环特性理解不足 | 用 D101 输出做锁存或一次性提示 |
| 计数时快时慢、偶尔跳号 | 计数器号重号,或信号有毛刺 | 核对 a 参数号;输入信号加滤波 |
| 数到上限后行为异常 | b 预置值设置过小 | 按实际需求放大上限 |
关于”到点直接归零”这一条值得多说:如果你需要”到点后保持提示直到人工确认”,标准 CTR 输出是做不到持续保持的,需要用 D101 驱动一个 SET 锁存,或者用比较指令(CMP)配合中间继电器来实现。
七、FANUC PMC 计数器与定时器的参数号冲突问题
写梯形图时,定时器和计数器共用一套参数号空间。
很多人 TMR 用 K1、K2,CTR 也随手写 K1,结果:
- 两个功能抢同一个号
- 现象是”延时偶尔不准””计数偶尔跳号”,且时好时坏
- 最难查,因为不是每次都发生
解决办法:
- 手动规划时,定时器和计数器分开编号,如定时器用 K1-K50,计数器用 K51-K100
- 用 LADDER-III 自动分配参数号功能,它会自动找未占用号
- 大型程序务必做参数号清单备份,这是维护的基本功
小结
把这篇和FANUC PMC 定时器 TMR 指令详解放在一起看,会更清楚两者的分工:TMR 管时间,CTR 管次数。FANUC PMC 计数器与定时器共用同一套参数号空间,编号时务必分开规划。
CTR 写对,只记三句话:
- 必须加 DIF,不然按住就是连续加
- RESET 放CTR 前面同支路,归零才干净
- 生产计数必须开保持型,否则停电丢数
再说一句常被忽略的:CTR 到点是归零重数,不是停住。需要”到点保持提示”的场合,要自己加锁存逻辑。
如果你刚接触 FANUC PMC 梯形图,建议先把 零基础学习发那科PMC 梯形图教程 这篇过一遍,把信号流和基本指令搞熟,再上手 CTR、TMR 这类功能指令会顺很多。遇到具体报警或现象,也可以翻翻 FANUC PMC 故障排查实战 里的实例。
标签: FANUC系统 · 机床梯形图 · 学习内容 · 基础知识 · 维修案例
免责声明:本文内容基于 CNCShare 团队实战经验整理,仅供参考。不同机床配置、系统版本可能存在差异,实际操作请以设备官方手册为准。因据此操作导致的损失,CNCShare 不承担责任。文中保持型设置、参数号与指令接法仅用于说明通用逻辑,具体配置需现场验证。
























暂无评论内容