三菱 PLC 测量外部电路占空比,核心是利用高速计数器(HSC) 或输入中断 + 内部定时器实现,两种方法适配不同机型(FX3U/FX5U/Q 系列)和测量精度需求,高速计数器法适配高频信号(kHz 级)、精度高,中断 + 定时器法适配低频信号(Hz~ 百 Hz 级)、无需高速模块,实操性强。
以下分通用中断 + 定时器法(所有三菱 PLC 通用)、高速计数器法(FX3U/FX5U/Q 系列主流方案) 讲解,包含原理、编程步骤、程序示例、参数整定,均为工业现场可直接落地的方案,覆盖NPN/PNP 输入信号,测量频率从几 Hz 到几十 kHz,占空比精度 ±1%~±0.1%。
核心前提说明
信号要求:外部被测信号需为开关量脉冲信号(高低电平交替,如传感器、变频器脉冲输出、电磁阀控制信号),电平需匹配 PLC 输入(DC24V,NPN/PNP 均可,FX 系列默认 NPN,可通过端子跳线切换);
硬件适配:
中断 + 定时器法:无硬件要求,用普通输入点(如 X0~X7)即可,适配 FX1S/FX1N/FX2N/FX3U/FX5U/Q 全系列;
高速计数器法:需用 PLC高速输入点(如 FX3U/FX5U 的 X0~X5 为高速点,最高支持 100kHz),适配有高速计数功能的机型;
测量定义:占空比 =高电平持续时间 T1 / 脉冲周期 T(T1 + 低电平时间 T2)×100%,PLC 通过分别捕捉 T1 和 T,计算占空比。
一、通用方案:输入中断 + 内部定时器法(全系列适配,低频信号)
1. 核心原理
利用 PLC上升沿 / 下降沿输入中断,捕捉被测脉冲的高低电平切换瞬间,触发内部高精度定时器(三菱 PLC 通用 1ms 定时器,部分机型支持 0.1ms),分别计时高电平时间 T1和低电平时间 T2,通过公式计算占空比和脉冲频率:
占空比 D = T1 / (T1+T2) × 100%
脉冲频率 f = 1 / (T1+T2)
2. 适配场景
被测脉冲频率 **≤500Hz**(如电机测速、低速电磁阀信号、料位检测脉冲),无需高速硬件,普通输入点即可,占空比精度 **±1%**,满足大部分低频场景的测量需求。
3. 硬件接线
将外部被测脉冲信号接 PLC普通输入点(如 X0),信号地与 PLC 输入地(SG)共地,若信号电平为 AC220V,需加中间继电器隔离(继电器触点接 PLC 输入,线圈接被测信号)。
示例:NPN 型被测信号→X0,信号负极→PLC SG(DC24V-),PLC DC24V + 接信号上拉(若为开集电极信号)。
4. 编程步骤 + 梯形图示例(FX3U/FX5U,GX Works2/3)
以X0 为被测信号输入点,D0 存储高电平时间 T1(ms),D1 存储低电平时间 T2(ms),D2 存储占空比(%,放大 10 倍,如 50.5% 存 505),**D3 存储脉冲周期 T(ms)为例,用上升沿中断(I000)和下降沿中断(I001)** 实现,步骤如下:
步骤 1:中断程序定义(主程序)
启用 X0 的上升沿中断(触发编号 I000)和下降沿中断(触发编号 I001),初始化定时器和存储寄存器,禁止定时器中途复位。
步骤 2:上升沿中断程序(I000)
脉冲上升沿触发→停止低电平定时器→读取 T2 值存入 D1→复位并启动高电平定时器→开始计时高电平。
步骤 3:下降沿中断程序(I001)
脉冲下降沿触发→停止高电平定时器→读取 T1 值存入 D0→复位并启动低电平定时器→开始计时低电平→计算占空比和周期。
步骤 4:占空比计算(避免除零错误)
增加周期判零保护,若 T1+T2=0(无脉冲),则占空比为 0,防止 PLC 报除零错误。
5. 梯形图程序示例(FX3U,GX Works2)
主程序(MAIN)
plaintext
// 初始化:D0-D3清零,禁用定时器自动复位 RST D0 ; 高电平时间T1清零 RST D1 ; 低电平时间T2清零 RST D2 ; 占空比清零 RST D3 ; 周期清零 MOV K0 T0 ; 高电平定时器(1ms)初始化 MOV K0 T1 ; 低电平定时器(1ms)初始化 // 启用X0上升沿中断(I000)、下降沿中断(I001) EI ; 开总中断 IRET I000 ; 上升沿中断入口(X0) IRET I001 ; 下降沿中断入口(X0) ATCH I000 X0 ; X0上升沿触发中断I000 ATCH I001 X0 ; X0下降沿触发中断I001
上升沿中断程序(I000)
plaintext
// 上升沿:停止T1(低电平),读T2,启动T0(高电平) STOP T1 ; 停止低电平定时器 MOV T1 D1 ; 将T1计时值存入D2(低电平时间T2) RST T1 ; 复位低电平定时器 STR T0 ; 启动高电平定时器(开始计T1)
下降沿中断程序(I001)
plaintext
// 下降沿:停止T0(高电平),读T1,启动T1(低电平),计算占空比 STOP T0 ; 停止高电平定时器 MOV T0 D0 ; 将T0计时值存入D0(高电平时间T1) RST T0 ; 复位高电平定时器 STR T1 ; 启动低电平定时器(开始计T2) // 计算周期T = T1+T2,存入D3 ADD D0 D1 D3 ; D3=D0+D1 // 占空比计算:D2 = (D0/D3)*1000 (放大10倍,避免小数),判零保护 CMP D3 K0 M0 ; 比较D3是否为0 AND M0 ; 若D3≠0(有脉冲),执行计算 MUL D0 K1000 D4 ; D4=D0*1000 DIV D4 D3 D2 ; D2=D4/D3 (如T1=50ms,T=100ms,D2=500→50.0%) RST M0 ; 复位比较继电器
数据转换(可选,主程序)
若需要浮点型占空比(如 50.5% 直接存浮点数),可通过FLT指令将整数转为浮点数计算:
plaintext
FLT D0 E0 ; T1转为浮点数E0 FLT D3 E1 ; T转为浮点数E1 DIV E0 E1 E2 ; E2=E0/E1 MUL E2 K100 E3 ; E3=占空比(%,浮点型,如50.5)
6. 注意事项
定时器精度:用1ms 定时器(T0~T199),避免用 10ms/100ms 定时器,否则精度大幅下降;
中断优先级:禁止在中断程序中加入复杂逻辑,仅做定时器启停和数据读取,中断程序步数控制在20 步以内,避免阻塞主程序;
信号防抖:若被测信号有抖动(如机械触点),需在 PLC 输入点加RC 防抖电路(1kΩ 电阻 + 0.1μF 电容),或在程序中加防抖延时(如上升沿后延时 2ms 再计时);
电平匹配:若被测信号为 PNP 型,需将 PLC 输入跳线切换为 PNP(FX 系列输入端子旁有 NPN/PNP 跳线),否则无法捕捉信号。
二、主流方案:高速计数器法(FX3U/FX5U/Q 系列,高频信号)
1. 核心原理
利用 PLC高速计数器(HSC) 对高频脉冲进行计数,配合高速定时器(如 FX5U 的 0.1ms 定时器) 或PLC 内置高速时钟,捕捉固定计数个数的时间,分别计算高电平和低电平的计数时间,最终得到占空比;进阶方案:部分高端机型(如 FX5U/Q 系列)支持高速脉冲捕捉功能,可直接捕捉高电平 / 低电平的精确时间,无需计数,精度更高。
2. 适配场景
被测脉冲频率 **≥100Hz 且≤100kHz**(如变频器脉冲输出、伺服编码器信号、高频传感器信号),占空比精度 **±0.1%**,是工业现场高频信号测量的主流方案。
3. 硬件要求
机型:FX3U/FX3UC/FX5U/FX5UC/Q 系列(带高速计数功能);
高速输入点:用 PLC 专用高速点(FX3U/FX5U 的 X0~X5,最高支持 100kHz);
无需额外模块:内置高速计数器,无需加高速计数模块(如 FX2N-1HC)。
4. 经典实现:双高速计数器法(FX5U,测量高频脉冲)
原理
用 2 个高速计数器,HSC0(X0)计高电平脉冲数,HSC1(X1)计低电平脉冲数,在固定时间 T内,分别读取 HSC0 和 HSC1 的计数值 N1、N2,占空比 D = N1/(N1+N2)×100%;优势:无需捕捉边沿,直接计数,抗干扰性强,适合高频信号。
硬件接线
被测脉冲信号接X0(高速输入),作为 HSC0 的计数输入;
通过程序分频将被测信号取反,接 HSC1(X1),计低电平脉冲数;
若为差分信号(如编码器 A/B 相),可直接接高速差分输入点(如 FX5U 的 X0/X1 为差分高速点)。
5. 编程步骤(FX5U,GX Works3,结构化编程)
步骤 1:高速计数器参数配置
在 GX Works3 中,通过参数设置→高速计数器,启用 HSC0 和 HSC1,设置为增计数,计数模式为普通计数,输入信号为DC24V 高速输入。
步骤 2:信号取反(低电平计数)
通过 PLC 程序将 X0 的被测信号取反,输出到虚拟软元件(如 Y0),再将 Y0 接 X1(HSC1),实现低电平计数(若硬件支持,可直接用高速点的取反功能)。
步骤 3:固定时间计数
用 PLC0.1ms 高速定时器(如 FX5U 的 STMR)设定固定计数时间 T(如 100ms),在 T 内分别读取 HSC0(N1)和 HSC1(N2)的计数值。
步骤 4:占空比计算
占空比 D = N1/(N1+N2)×100%,加入判零保护和数据滤波(多次测量取平均值,提升精度)。
三、两种方法对比 + 选型建议
表格
| 对比维度 | 输入中断 + 定时器法 | 高速计数器法 |
|---|---|---|
| 适配机型 | 三菱全系列(FX1S~FX5U/Q) | FX3U/FX5U/Q 系列(带高速计数) |
| 输入点要求 | 普通输入点(X0~X7) | 专用高速输入点(X0~X5) |
| 测量频率 | ≤500Hz | 100Hz~100kHz |
| 占空比精度 | ±1% | ±0.1% |
| 硬件成本 | 无额外成本 | 无(内置高速计数器) |
| 编程复杂度 | 简单(通用指令) | 中等(高速指令 / 参数配置) |
| 抗干扰性 | 一般(需防抖) | 强(高速输入带硬件滤波) |
选型核心原则
若为低频脉冲(≤500Hz),如普通传感器、电磁阀信号,选中断 + 定时器法,无需配置高速参数,编程简单;
若为高频脉冲(≥1kHz),如变频器脉冲输出、编码器、高频测速信号,选高速计数器法,精度高、抗干扰性强;
若为FX5U/Q 高端机型,优先用脉冲捕捉指令(PLSCPT),步骤最简、精度最高。
四、工业现场实操优化要点
1. 抗干扰优化(最关键,避免测量误差)
被测信号用双绞屏蔽线,屏蔽层单端接地(PLC 侧 SG);
高速输入点远离变频器 / 伺服动力线(间距≥30cm),避免平行走线;
高频信号加终端电阻(如 RS485 信号 120Ω,单端脉冲信号 3.3kΩ 上拉);
机械触点信号加RC 防抖电路(1kΩ+0.1μF),程序中加2ms 防抖延时。
2. 精度优化
用更高精度的定时器(如 FX5U 的 0.1ms 定时器,替代 1ms 定时器);
加入数据滤波:多次测量取平均值(如 10~20 次),消除偶然误差;
增大测量周期:低频信号测量周期≥1s,高频信号≥100ms,减少计数误差。
3. 异常保护
加入除零保护:若脉冲周期 T=0(无信号),强制占空比为 0,防止 PLC 报除零错误;
加入超量程保护:若测量值超出正常范围(如占空比>100% 或<0%),触发报警(如 Y0 输出);
加入信号丢失报警:若连续 3 个周期无脉冲,置位报警寄存器(如 M100),提醒现场检查。
五、常见问题排查
无法捕捉信号:检查电平匹配(NPN/PNP 跳线)、信号地共地、输入点是否损坏;
占空比测量误差大:加防抖电路 / 程序滤波、更换更高精度定时器、增大测量周期;
高频信号计数丢失:确认用高速输入点、降低信号传输距离(≤10 米)、加屏蔽抗干扰;
PLC 报中断错误:中断程序步数过多(控制在 20 步内)、禁止中断程序中调用子程序、开总中断(EI 指令)。

