什么是中断?
正常程序执行过程中,响应紧急事件的机制
中断当前程序,执行中断程序,然后返回
适用于需要快速响应的场合
FX5U中断类型:
输入中断:X0-X5(共6点)
定时中断:固定时间间隔中断
计数器中断:高速计数器达到设定值时中断
外部中断:通过扩展模块
中断的优势:
响应速度快(不受扫描周期影响)
处理紧急事件
实现精确定时控制
提高系统实时性
与普通程序的区别:
中断程序独立于主程序
执行时机不确定
需要特殊管理
可用中断点:
X0、X1、X2、X3、X4、X5
每个点都可以设置上升沿或下降沿触发
设置步骤:
步骤1:参数设置
工程窗口 → 参数 → FX5UCPU → 模块参数 → 输入设置 - 选择X0-X5中的任意点 - 设置中断允许:允许 - 中断类型:输入中断 - 触发条件:上升沿/下降沿
步骤2:编写中断程序
1. 在工程中新建程序 2. 程序名格式:IXX(如:I0对应X0中断) 3. 编写中断处理程序
步骤3:中断允许控制
使用EI指令:允许中断 使用DI指令:禁止中断
实例1:紧急停止处理
要求:X0作为急停按钮,立即停止所有输出 主程序: [EI]---(允许中断) ...(主程序逻辑)... 中断程序I0: [MOV K0 K4Y0]---(清零所有输出) [RST M0]---(复位运行标志) [IRET]---(中断返回)
实例2:高速计数中断
要求:X1每收到一个脉冲,立即处理 主程序: [EI]---(允许中断) 初始化程序... 中断程序I1: [INC D100]---(计数加1) [CMP D100 K100 M0]---(比较) M0(等于100)[SET Y10]---(达到100个脉冲动作) [IRET]---(中断返回)
定时中断特点:
不受扫描周期影响
精确的时间间隔
用于需要精确时间控制的场合
设置方法:
参数设置:
工程窗口 → 参数 → FX5UCPU → 模块参数 → 定时器设置 - 定时中断设置:允许 - 中断周期:1-1000ms(建议10ms以上) - 中断程序号:指定
程序编写:
中断程序名格式:I28(固定,定时中断编号) 中断程序I28: ...(定时处理任务)... [IRET]---(中断返回)
实例1:精确数据采集
要求:每10ms采集一次模拟量数据 定时中断程序I28: [MOV D100 D200]---(保存当前值到历史) [FROM K0 K10 D100 K1]---(读取模拟量模块) [INC D210]---(采集次数计数) [IRET]---(中断返回)
实例2:PWM波形生成
要求:生成频率100Hz,占空比可调的PWM 变量定义: D0:周期计数(0-99) D1:占空比设定(0-100) M0:PWM输出标志 定时中断程序I28(10ms中断): [INC D0]---(周期计数加1) [CMP D0 D1 M10]---(比较计数值和占空比) M11(小于)[SET M0]---(置位输出) M12(大于等于)[RST M0]---(复位输出) D0=K100 [MOV K0 D0]---(周期复位) [IRET]---(中断返回)
高速计数器特点:
独立于扫描周期
最高计数频率:200kHz
支持单相/双相计数
支持增减计数
高速计数器编号:
C235-C255(共21点)
不同计数器对应不同输入点
常用计数器分配:
C235:X0(单相) C236:X1(单相) C237:X2(单相) C238:X3(单相) C239:X4(单相) C240:X5(单相) C241:X0,X1(双相) C242:X2,X3(双相) C246:X0,X1,X2(A/B/Z相)
参数设置步骤:
1. 工程窗口 → 参数 → FX5UCPU → 模块参数 2. 选择"高速计数器" 3. 选择要使用的计数器(如C235) 4. 设置参数: - 计数模式:单相单计数/单相双计数/双相双计数 - 计数方向:增/减 - 预设值:设定目标值 - 输出点:达到预设值时输出的Y点
程序设置方法:
使用DHSCS指令设置比较输出 使用DHSZ指令设置区间比较
实例1:转速测量
硬件连接:
- 旋转编码器A相接X0
- 使用C235计数器
程序:
网络1:高速计数器设置
M8000 [DMOV K0 C235]---(清零计数器)
[DHSCS K1000 C235 Y10]---(每1000脉冲输出一次)
网络2:转速计算
M8013(1秒脉冲)[MOV C235 D100]---(读取计数值)
[DMOV K0 C235]---(清零计数器)
[MUL D100 K60 D101]---(转换为RPM)
实例2:定位控制
要求:使用编码器进行位置控制 硬件: - 编码器A/B相接X0,X1 - 使用C246双相计数器 程序: 网络1:初始化 M8002 [DMOV K0 C246]---(清零位置) 网络2:位置比较 M8000 [DHSZ K-100000 K100000 C246 M0]--- M0(小于下限)[SET Y10]---(反向移动) M2(大于上限)[SET Y11]---(正向移动)
FX5U脉冲输出能力:
最多支持4轴脉冲输出
最高频率:200kHz
支持定位控制
支持原点回归
脉冲输出点分配:
轴1:Y0(脉冲),Y4(方向) 轴2:Y1(脉冲),Y5(方向) 轴3:Y2(脉冲),Y6(方向) 轴4:Y3(脉冲),Y7(方向)
常用定位指令:
DSZR:带DOG搜索的原点回归
DVIT:中断定长驱动
DRVI:相对定位
DRVA:绝对定位
PLSV:可变速度脉冲输出
实例:单轴定位控制
要求:控制步进电机移动指定距离 参数定义: D0:脉冲数(移动距离) D1:脉冲频率(速度) D2:加减速时间 程序: 网络1:正转移动 X0(正转启动)[DRVI D0 D1 Y0 Y4]--- 网络2:反转移动 X1(反转启动)[DRVI D0 D1 Y0 Y4]---(脉冲数为负) 网络3:原点回归 X2(原点回归)[DSZR X10 X11 Y0 Y4]--- // X10:近点信号,X11:零点信号 网络4:状态监控 M8029(定位完成)[SET Y20]---
高速输入特点:
响应时间短
最小脉冲宽度:5μs
用于高速计数、定位等
高速输入点:
X0-X5支持高速输入
需要设置参数启用
设置方法:
参数 → FX5UCPU → 模块参数 → 输入设置 - 选择X0-X5 - 滤波器设置:高速输入 - 滤波器时间:根据需求设置
高速输出特点:
输出延迟小
支持PWM输出
用于精确定位控制
高速输出点:
Y0-Y3支持高速输出
用于脉冲输出
PWM输出实例:
要求:Y0输出PWM,频率1kHz,占空比50%
程序:
网络1:PWM初始化
M8002 [PWM K1000 K500 Y0]---
// 频率1000Hz,占空比50%
网络2:占空比调整
X0(增加占空比)[INC D0]---
[CMP D0 K100 M0]---
M0(超过100)[MOV K100 D0]---
X1(减小占空比)[DEC D0]---
[CMP D0 K0 M1]---
M1(低于0) [MOV K0 D0]---
M8013 [PWM K1000 D0 Y0]---(更新占空比)
系统要求:
使用高速计数器测量产品数量
使用中断处理急停信号
使用脉冲输出控制送料机构
使用定时中断进行数据采集
程序结构:
主程序MAIN: 系统初始化 模式选择 手动操作 自动循环 中断程序I0(急停): 紧急停止处理 报警记录 中断程序I28(10ms定时): 数据采集 状态监控 高速计数器C235: 产品计数 速度计算 脉冲输出: 送料控制 定位控制
系统组成:
旋转编码器(连接X0,X1)
伺服电机(脉冲控制)
触摸屏(参数设置)
程序实现:
网络1:高速计数器设置
M8000 [DMOV K0 C246]---(位置清零)
[DHSCS K1000 C246 Y10]---(每1000脉冲标记)
网络2:速度计算(定时中断)
中断程序I28:
[MOV C246 D100]---(读取当前位置)
[SUB D100 D102 D104]---(计算位移)
[MOV D100 D102]---(保存当前位置)
[MUL D104 K100 D106]---(计算速度,mm/s)
[IRET]
网络3:定位控制
X10(定位开始)[DRVA D200 D210 Y0 Y4]---
// D200:目标位置,D210:速度
要求:
设置X0为急停中断
编写中断程序,急停时:
立即停止所有输出
记录急停时间到D100-D103
点亮报警灯Y10
设置定时中断,每50ms执行一次:
采集模拟量数据
更新运行时间
监控系统状态
要求:
使用C235计数器测量编码器脉冲
实现以下功能:
测量转速(RPM)
测量线速度(m/min)
位置累加
超速报警
在触摸屏上显示测量结果
提示:
使用1秒定时读取计数值
转速 = 计数值 × 60 ÷ 编码器分辨率
线速度 = 转速 × π × 直径
要求:
控制步进电机实现定位功能
功能包括:
原点回归
相对定位
绝对定位
速度调整
添加限位保护和软限位
参数设置:
D0:目标位置(脉冲数) D1:运行速度(Hz) D2:加速度时间(ms) D3:当前位置显示
解决方法:
简化中断程序逻辑
只处理必要的中断
将复杂计算放到主程序
优化程序结构
建议:
中断程序尽量短小
避免在中断中调用复杂指令
使用标志位在主程序中处理
可能原因及处理:
输入信号抖动 → 调整滤波器时间
计数频率超限 → 降低输入频率
接线干扰 → 使用屏蔽线,良好接地
电源不稳定 → 检查电源质量
滤波器设置:
参数 → 输入设置 → 滤波器时间 - 高速输入:0.5-12.8ms - 根据信号频率调整
校准方法:
测量实际移动距离
计算脉冲当量
调整电子齿轮比
重复测试直到准确
计算公式:
脉冲当量 = 编码器分辨率 ÷ 机械移动量 电子齿轮比 = 实际值 ÷ 理论值
FX5U支持几个输入中断点?
A) 4个
B) 6个
C) 8个
D) 10个
高速计数器最高计数频率是多少?
A) 50kHz
B) 100kHz
C) 200kHz
D) 500kHz
定时中断程序编号是什么?
A) I0
B) I10
C) I28
D) I100
中断程序可以像普通程序一样长时间执行。( )
高速计数器不受PLC扫描周期影响。( )
脉冲输出功能需要特殊输出点。( )
设计一个绕线机控制系统:
要求:
使用高速计数器测量绕线圈数(编码器接X0,X1)
使用脉冲输出控制排线电机(Y0,Y4)
使用中断处理紧急停止(X2)
实现以下功能:
设定绕线圈数(D0)
设定绕线速度(D1)
自动排线控制
到达设定圈数自动停止
断线检测和报警
设计完整的程序结构
选择题答案:
B 2. C 3. C
判断题答案:
错 2. 对 3. 对
设计题参考方案:
系统框架:
主程序: 初始化 参数设置 手动模式 自动模式 故障处理 中断程序I2(急停): [RST M100]---(停止运行) [MOV K0 K2Y0]---(停止输出) [SET Y10]---(报警) 定时中断I28(10ms): 速度计算 位置监控 排线控制 高速计数器C246: 绕线圈数计数 脉冲输出(Y0,Y4): 排线电机控制
关键程序段:
// 绕线控制
M100(运行标志)[DRVI D10 D11 Y0 Y4]---
// D10:排线距离,D11:排线速度
// 圈数控制
C246当前值>=D0(设定圈数)[RST M100]---(停止绕线)
[SET Y11]---(完成指示)
编写一个完整的中断控制系统
包含:输入中断、定时中断
实现:紧急处理、定时数据采集
测试中断响应时间
设计一个物料分拣系统:
使用高速计数器检测物料速度
使用脉冲输出控制分拣机构
使用中断处理异常情况
实现闭环控制
设计一个二维定位平台:
X轴和Y轴独立控制
使用编码器反馈位置
实现直线插补功能
添加软限位和硬限位保护
分析并解决以下问题:
中断不响应
高速计数误差大
脉冲输出丢步
定位精度不够
中断功能原理和应用
高速计数器配置和使用
脉冲输出控制方法
高速输入输出应用
能够配置和使用中断功能
能够设置高速计数器
能够实现脉冲定位控制
能够设计高速处理系统
中断程序过于复杂
高速计数器参数设置错误
脉冲输出点配置错误
忽略响应时间要求
第十一课:故障诊断与维护
故障诊断方法
错误代码解析
程序备份与恢复
日常维护要点
准备编码器、步进电机等硬件进行实践
从简单的中断应用开始
注意高速处理的响应时间要求
多做测试和校准练习
记录配置参数和调试过程
请认真完成本课的所有实践任务,准备好后可以开始第十一课的学习。
祝您学习顺利!

