首页 > 基础教程 > 三菱FX5U PLC系统教程 > 文章内容

三菱FX5U PLC系统教程 第十课:中断与高速处理

时间: 2026-01-03 13:50浏览量:106次


第一部分:中断功能基础

1.1 中断概念理解

什么是中断?

  • 正常程序执行过程中,响应紧急事件的机制

  • 中断当前程序,执行中断程序,然后返回

  • 适用于需要快速响应的场合

FX5U中断类型:

  1. 输入中断:X0-X5(共6点)

  2. 定时中断:固定时间间隔中断

  3. 计数器中断:高速计数器达到设定值时中断

  4. 外部中断:通过扩展模块

1.2 中断特点与优势

中断的优势:

  • 响应速度快(不受扫描周期影响)

  • 处理紧急事件

  • 实现精确定时控制

  • 提高系统实时性

与普通程序的区别:

  • 中断程序独立于主程序

  • 执行时机不确定

  • 需要特殊管理

第二部分:输入中断应用

2.1 输入中断设置

可用中断点:

  • X0、X1、X2、X3、X4、X5

  • 每个点都可以设置上升沿或下降沿触发

设置步骤:

步骤1:参数设置

text
工程窗口 → 参数 → FX5UCPU → 模块参数 → 输入设置
- 选择X0-X5中的任意点
- 设置中断允许:允许
- 中断类型:输入中断
- 触发条件:上升沿/下降沿

步骤2:编写中断程序

text
1. 在工程中新建程序
2. 程序名格式:IXX(如:I0对应X0中断)
3. 编写中断处理程序

步骤3:中断允许控制

text
使用EI指令:允许中断
使用DI指令:禁止中断

2.2 输入中断实例

实例1:紧急停止处理

text
要求:X0作为急停按钮,立即停止所有输出

主程序:
   [EI]---(允许中断)
   ...(主程序逻辑)...

中断程序I0:
   [MOV K0 K4Y0]---(清零所有输出)
   [RST M0]---(复位运行标志)
   [IRET]---(中断返回)

实例2:高速计数中断

text
要求:X1每收到一个脉冲,立即处理

主程序:
   [EI]---(允许中断)
   初始化程序...

中断程序I1:
   [INC D100]---(计数加1)
   [CMP D100 K100 M0]---(比较)
   M0(等于100)[SET Y10]---(达到100个脉冲动作)
   [IRET]---(中断返回)

第三部分:定时中断应用

3.1 定时中断设置

定时中断特点:

  • 不受扫描周期影响

  • 精确的时间间隔

  • 用于需要精确时间控制的场合

设置方法:

参数设置:

text
工程窗口 → 参数 → FX5UCPU → 模块参数 → 定时器设置
- 定时中断设置:允许
- 中断周期:1-1000ms(建议10ms以上)
- 中断程序号:指定

程序编写:

text
中断程序名格式:I28(固定,定时中断编号)

中断程序I28:
   ...(定时处理任务)...
   [IRET]---(中断返回)

3.2 定时中断实例

实例1:精确数据采集

text
要求:每10ms采集一次模拟量数据

定时中断程序I28:
   [MOV D100 D200]---(保存当前值到历史)
   [FROM K0 K10 D100 K1]---(读取模拟量模块)
   [INC D210]---(采集次数计数)
   [IRET]---(中断返回)

实例2:PWM波形生成

text
要求:生成频率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]---(中断返回)

第四部分:高速计数器

4.1 高速计数器基础

高速计数器特点:

  • 独立于扫描周期

  • 最高计数频率:200kHz

  • 支持单相/双相计数

  • 支持增减计数

高速计数器编号:

  • C235-C255(共21点)

  • 不同计数器对应不同输入点

常用计数器分配:

text
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相)

4.2 高速计数器设置

参数设置步骤:

text
1. 工程窗口 → 参数 → FX5UCPU → 模块参数
2. 选择"高速计数器"
3. 选择要使用的计数器(如C235)
4. 设置参数:
   - 计数模式:单相单计数/单相双计数/双相双计数
   - 计数方向:增/减
   - 预设值:设定目标值
   - 输出点:达到预设值时输出的Y点

程序设置方法:

text
使用DHSCS指令设置比较输出
使用DHSZ指令设置区间比较

4.3 高速计数器应用

实例1:转速测量

text
硬件连接:
- 旋转编码器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:定位控制

text
要求:使用编码器进行位置控制

硬件:
- 编码器A/B相接X0,X1
- 使用C246双相计数器

程序:
网络1:初始化
   M8002        [DMOV K0 C246]---(清零位置)

网络2:位置比较
   M8000        [DHSZ K-100000 K100000 C246 M0]---
   M0(小于下限)[SET Y10]---(反向移动)
   M2(大于上限)[SET Y11]---(正向移动)

第五部分:脉冲输出控制

5.1 脉冲输出功能

FX5U脉冲输出能力:

  • 最多支持4轴脉冲输出

  • 最高频率:200kHz

  • 支持定位控制

  • 支持原点回归

脉冲输出点分配:

text
轴1:Y0(脉冲),Y4(方向)
轴2:Y1(脉冲),Y5(方向)
轴3:Y2(脉冲),Y6(方向)
轴4:Y3(脉冲),Y7(方向)

5.2 脉冲输出指令

常用定位指令:

  1. DSZR:带DOG搜索的原点回归

  2. DVIT:中断定长驱动

  3. DRVI:相对定位

  4. DRVA:绝对定位

  5. PLSV:可变速度脉冲输出

5.3 步进电机控制实例

实例:单轴定位控制

text
要求:控制步进电机移动指定距离

参数定义:
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]---

第六部分:高速输入输出应用

6.1 高速输入功能

高速输入特点:

  • 响应时间短

  • 最小脉冲宽度:5μs

  • 用于高速计数、定位等

高速输入点:

  • X0-X5支持高速输入

  • 需要设置参数启用

设置方法:

text
参数 → FX5UCPU → 模块参数 → 输入设置
- 选择X0-X5
- 滤波器设置:高速输入
- 滤波器时间:根据需求设置

6.2 高速输出功能

高速输出特点:

  • 输出延迟小

  • 支持PWM输出

  • 用于精确定位控制

高速输出点:

  • Y0-Y3支持高速输出

  • 用于脉冲输出

PWM输出实例:

text
要求: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]---(更新占空比)

第七部分:中断与高速处理综合应用

7.1 自动化设备控制系统

系统要求:

  1. 使用高速计数器测量产品数量

  2. 使用中断处理急停信号

  3. 使用脉冲输出控制送料机构

  4. 使用定时中断进行数据采集

程序结构:

text
主程序MAIN:
   系统初始化
   模式选择
   手动操作
   自动循环

中断程序I0(急停):
   紧急停止处理
   报警记录

中断程序I28(10ms定时):
   数据采集
   状态监控

高速计数器C235:
   产品计数
   速度计算

脉冲输出:
   送料控制
   定位控制

7.2 编码器测速与定位系统

系统组成:

  1. 旋转编码器(连接X0,X1)

  2. 伺服电机(脉冲控制)

  3. 触摸屏(参数设置)

程序实现:

text
网络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:速度

第八部分:实践任务

任务1:中断程序编写

要求:

  1. 设置X0为急停中断

  2. 编写中断程序,急停时:

    • 立即停止所有输出

    • 记录急停时间到D100-D103

    • 点亮报警灯Y10

  3. 设置定时中断,每50ms执行一次:

    • 采集模拟量数据

    • 更新运行时间

    • 监控系统状态

任务2:高速计数器应用

要求:

  1. 使用C235计数器测量编码器脉冲

  2. 实现以下功能:

    • 测量转速(RPM)

    • 测量线速度(m/min)

    • 位置累加

    • 超速报警

  3. 在触摸屏上显示测量结果

提示:

  • 使用1秒定时读取计数值

  • 转速 = 计数值 × 60 ÷ 编码器分辨率

  • 线速度 = 转速 × π × 直径

任务3:脉冲定位控制

要求:

  1. 控制步进电机实现定位功能

  2. 功能包括:

    • 原点回归

    • 相对定位

    • 绝对定位

    • 速度调整

  3. 添加限位保护和软限位

参数设置:

text
D0:目标位置(脉冲数)
D1:运行速度(Hz)
D2:加速度时间(ms)
D3:当前位置显示

第九部分:常见问题解答

问题1:中断程序执行时间过长怎么办?

解决方法:

  1. 简化中断程序逻辑

  2. 只处理必要的中断

  3. 将复杂计算放到主程序

  4. 优化程序结构

建议:

  • 中断程序尽量短小

  • 避免在中断中调用复杂指令

  • 使用标志位在主程序中处理

问题2:高速计数不准确怎么办?

可能原因及处理:

  1. 输入信号抖动 → 调整滤波器时间

  2. 计数频率超限 → 降低输入频率

  3. 接线干扰 → 使用屏蔽线,良好接地

  4. 电源不稳定 → 检查电源质量

滤波器设置:

text
参数 → 输入设置 → 滤波器时间
- 高速输入:0.5-12.8ms
- 根据信号频率调整

问题3:脉冲输出有偏差怎么办?

校准方法:

  1. 测量实际移动距离

  2. 计算脉冲当量

  3. 调整电子齿轮比

  4. 重复测试直到准确

计算公式:

text
脉冲当量 = 编码器分辨率 ÷ 机械移动量
电子齿轮比 = 实际值 ÷ 理论值

第十部分:学习检测

选择题(每题10分)

  1. FX5U支持几个输入中断点?
    A) 4个
    B) 6个
    C) 8个
    D) 10个

  2. 高速计数器最高计数频率是多少?
    A) 50kHz
    B) 100kHz
    C) 200kHz
    D) 500kHz

  3. 定时中断程序编号是什么?
    A) I0
    B) I10
    C) I28
    D) I100

判断题(每题10分)

  1. 中断程序可以像普通程序一样长时间执行。( )

  2. 高速计数器不受PLC扫描周期影响。( )

  3. 脉冲输出功能需要特殊输出点。( )

设计题(40分)

设计一个绕线机控制系统:

要求:

  1. 使用高速计数器测量绕线圈数(编码器接X0,X1)

  2. 使用脉冲输出控制排线电机(Y0,Y4)

  3. 使用中断处理紧急停止(X2)

  4. 实现以下功能:

    • 设定绕线圈数(D0)

    • 设定绕线速度(D1)

    • 自动排线控制

    • 到达设定圈数自动停止

    • 断线检测和报警

  5. 设计完整的程序结构

答案部分

选择题答案:

  1. B 2. C 3. C

判断题答案:

  1. 错 2. 对 3. 对

设计题参考方案:

系统框架:

text
主程序:
   初始化
   参数设置
   手动模式
   自动模式
   故障处理

中断程序I2(急停):
   [RST M100]---(停止运行)
   [MOV K0 K2Y0]---(停止输出)
   [SET Y10]---(报警)

定时中断I28(10ms):
   速度计算
   位置监控
   排线控制

高速计数器C246:
   绕线圈数计数

脉冲输出(Y0,Y4):
   排线电机控制

关键程序段:

text
// 绕线控制
M100(运行标志)[DRVI D10 D11 Y0 Y4]---
// D10:排线距离,D11:排线速度

// 圈数控制
C246当前值>=D0(设定圈数)[RST M100]---(停止绕线)
                          [SET Y11]---(完成指示)

课后作业

作业1:中断应用练习

  1. 编写一个完整的中断控制系统

  2. 包含:输入中断、定时中断

  3. 实现:紧急处理、定时数据采集

  4. 测试中断响应时间

作业2:高速处理综合应用

设计一个物料分拣系统:

  1. 使用高速计数器检测物料速度

  2. 使用脉冲输出控制分拣机构

  3. 使用中断处理异常情况

  4. 实现闭环控制

作业3:定位控制系统

设计一个二维定位平台:

  1. X轴和Y轴独立控制

  2. 使用编码器反馈位置

  3. 实现直线插补功能

  4. 添加软限位和硬限位保护

作业4:故障诊断练习

分析并解决以下问题:

  1. 中断不响应

  2. 高速计数误差大

  3. 脉冲输出丢步

  4. 定位精度不够

学习总结

本课重点回顾:

  1. 中断功能原理和应用

  2. 高速计数器配置和使用

  3. 脉冲输出控制方法

  4. 高速输入输出应用

关键技能掌握:

  1. 能够配置和使用中断功能

  2. 能够设置高速计数器

  3. 能够实现脉冲定位控制

  4. 能够设计高速处理系统

常见错误避免:

  1. 中断程序过于复杂

  2. 高速计数器参数设置错误

  3. 脉冲输出点配置错误

  4. 忽略响应时间要求

下节课预告

第十一课:故障诊断与维护

  • 故障诊断方法

  • 错误代码解析

  • 程序备份与恢复

  • 日常维护要点

学习建议

  1. 准备编码器、步进电机等硬件进行实践

  2. 从简单的中断应用开始

  3. 注意高速处理的响应时间要求

  4. 多做测试和校准练习

  5. 记录配置参数和调试过程

请认真完成本课的所有实践任务,准备好后可以开始第十一课的学习。

祝您学习顺利!

本回答由 AI 生成,内容仅供参考,请仔细甄别。
下载资料前请先绑定手机号码
对不起,请登录后再发表评论!

触屏端
扫一扫手机也能发信息
明扬工控商城-工控网-工控自动化真品,一站式专业服务!