三菱FX5U的硬件中断是高速响应场景的利器,但在实际应用中,中断响应异常(如丢失中断、响应延迟)常导致精密控制失败。本文以一个包装机械的凸轮轴相位控制案例,深度剖析排查与修复过程。
故障现象:凸轮轴每转产生一个外部中断(输入X0),用于触发计数和相位调整。调试中发现偶尔丢失中断且计数器值不稳定。初步排查硬件:使用示波器测量X0端子,确认脉冲信号幅值3.8V(满足三菱24V系统要求),但发现上升沿存在1.2μs的抖动。FX5U的输入滤波器默认设置为10μs,理论上可过滤,但实际因抖动频率与中断优先级冲突,导致CPU未正确捕获。
深层排查:查阅三菱GX Works3的中断设置,发现中断优先级为默认(即与扫描程序同优先级)。当主程序执行时间过长(如某循环含浮点运算),中断排队延迟可达数毫秒。优化方案:在中断属性中启用“高速中断”模式,并限制中断服务程序代码仅含必要指令(如一次性赋值)。同时,将输入滤波器设为5μs,配合外部施密特触发器硬件去抖。
实际修复:编写的中断服务程序需避免长循环或子函数调用。本案例中,移除了中断内的逻辑运算,改为直接写入FIFO缓冲区,由主程序轮询处理。最终,中断响应稳定在50μs以内,计数器精度恢复至±1个脉冲。此案例证明,中断排查必须结合硬件波形、软件优先级和代码执行流三要素。