1. 项目背景与核心价值
在工业自动化领域,PLC(可编程逻辑控制器)与触摸屏的协同控制一直是产线设备开发的核心环节。三菱FX5U作为新一代紧凑型PLC,凭借其高速处理性能和丰富的扩展接口,在视觉检测系统中扮演着重要角色。这个项目分享的正是基于FX5U与CCD视觉系统的完整控制方案,包含PLC程序逻辑和触摸屏人机交互界面。
我曾为某电子元件制造商实施过类似项目,他们的需求是在SMT贴片生产线上增加外观缺陷检测工位。传统人工检测每小时只能完成约300个元件,且漏检率高达15%。采用这套方案后,检测速度提升至1200件/小时,误判率控制在0.5%以内。这种提升不仅来自CCD硬件,更依赖于PLC与触摸屏的精准配合——PLC需要实时处理视觉信号并触发分拣动作,触摸屏则要提供直观的参数调整和报警界面。
2. 系统架构设计解析
2.1 硬件组成拓扑
典型的CCD控制系统包含以下核心组件:
- 三菱FX5U-32MT/ES PLC:本体自带16输入/16输出,通过扩展模块可增加模拟量采集
- 工业CCD相机:建议选择500万像素以上、带触发输入功能的型号
- 条形光源/环形光源:根据检测物表面特性选择合适的光照方案
- 三菱GS2107-WTBD触摸屏:7寸宽屏,支持以太网直连PLC
- 气动分拣装置:由PLC输出控制电磁阀动作
硬件连接遵循"相机→PLC→触摸屏"的星型拓扑。特别要注意的是FX5U的输入响应时间需设置为0.1ms以下,否则可能丢失高速触发信号。我们在实际布线时发现,使用带屏蔽的双绞线连接相机触发信号可有效减少电磁干扰。
2.2 软件功能划分
系统软件由三个关键部分组成:
- PLC控制程序:负责I/O信号处理、运动控制和通信协议转换
- 触摸屏界面:提供参数设置、实时监控和报警日志功能
- 视觉处理算法:运行在相机内置处理器或工控机上(本方案未包含)
PLC程序采用结构化编程思想,将不同功能封装在独立的FB(功能块)中。例如:
- FB_CCD_Trigger:处理相机触发逻辑
- FB_Sorting_Control:管理分拣气缸动作序列
- FB_Data_Exchange:负责与触摸屏的数据交互
3. PLC程序关键技术实现
3.1 高速输入捕获配置
FX5U的高速输入端子(X0-X7)支持最大100kHz的脉冲捕获。对于CCD触发应用,需在GX Works3中进行以下设置:
- 打开参数→PLC参数→I/O分配设置
- 将X0-X3设置为"高速计数器"或"中断输入"
- 在程序中使用DTO指令读取当前计数状态
structured复制// 示例:上升沿触发计数
LD M8000 // 运行常ON触点
OUT C235 K1000 // 计数器C235设定值1000
LD X000 // 检测X0输入
OUT C235 // 计数器计数
重要提示:高速计数器使用时必须关闭对应端子的输入滤波,否则会导致信号延迟。通过参数→PLC系统设置→输入滤波时间,将相关通道设为0ms。
3.2 视觉信号同步逻辑
CCD检测通常需要与传送带编码器同步。我们采用以下两种同步方案:
方案A:硬件触发(推荐)
- 编码器Z相信号接PLC高速输入端子
- 使用PLS指令生成脉冲触发CCD
- 通过中断程序处理检测结果
方案B:软件定时触发
- 配置定时中断组织块(OB35)
- 根据传送带速度计算触发间隔
- 在中断程序中置位触发标志
实际测试表明,方案A的时序抖动小于0.1ms,远优于方案B的1-2ms波动。但方案B在低速应用(<0.5m/s)中更易于调试。
3.3 数据通信处理
FX5U通过以下方式与触摸屏交互:
- 直接变量映射:将D寄存器与触摸屏元件绑定
- 宏指令通信:使用GS脚本实现复杂数据处理
- 文件寄存器:批量传递参数设置
一个典型的质量判定结果传输示例:
structured复制// PLC程序段
MOV K1 D100 // 检测结果存入D100
MOV D10 D101 // X坐标值
MOV D11 D102 // Y坐标值
vbnet复制' 触摸屏GS脚本
Sub Main()
If GetDevice("D100") = 1 Then
SetBackColor("AlarmBox", RGB(255,0,0))
Else
SetBackColor("AlarmBox", RGB(0,255,0))
End If
End Sub
4. 触摸屏界面设计要点
4.1 监控画面布局原则
工业触摸屏界面设计需遵循"3秒法则"——操作员应在3秒内找到关键信息。我们的标准界面包含:
- 顶部状态栏:显示日期时间、运行模式、急停状态
- 中央监控区:实时显示CCD画面和检测结果
- 底部导航栏:常用功能按钮(参数、报警、产量)
通过GS2107的图层功能,可以将不同信息分层显示。例如将报警信息设置为顶层透明浮动窗口,确保任何界面下都能看到紧急状态。
4.2 参数设置优化技巧
- 数值输入限制:对关键参数设置上下限
vbnet复制Sub NumInput_Change()
If Val(GetText("InputBox")) > 100 Then
SetText "InputBox", "100"
Beep(1000)
End If
End Sub
- 权限分级管理:通过密码保护工艺参数
structured复制// PLC端权限验证
LD M100 // 管理员登录标志
MOVP K100 D200 // 解锁高级参数
- 参数组保存:利用文件寄存器存储多套配方
structured复制// 保存当前参数到配方1
BMOV D100 D5000 K20
4.3 报警历史记录实现
采用循环队列方式存储报警信息:
- 在PLC中创建报警代码表(D区)
- 使用FIFO指令管理报警队列
- 触摸屏通过宏指令读取并格式化显示
structured复制// PLC报警处理程序
LD X005 // 检测到报警信号
MOV K1001 D0 // 存入报警代码
CALL P_FIFO_WRITE // 调用FIFO写入子程序
5. 系统调试与问题排查
5.1 典型故障处理清单
| 现象 | 可能原因 | 排查步骤 |
|---|---|---|
| CCD触发不稳定 | 输入滤波时间过长 | 检查PLC参数设置,确认X0-X7滤波时间为0ms |
| 触摸屏通信中断 | IP地址冲突 | 使用Ping命令测试网络连通性 |
| 分拣动作延迟 | 电磁阀响应慢 | 测量气缸动作时间,调整PLC输出提前量 |
| 图像误判率高 | 光源亮度波动 | 检查电源稳定性,增加稳压器 |
5.2 信号干扰解决方案
在某汽车零部件项目中,我们遇到CCD误触发问题,最终发现是变频器干扰导致。采取以下措施解决:
- 为PLC电源加装隔离变压器
- 信号线改用双绞屏蔽线(STP)
- 在PLC输入端并联0.1μF电容
- 重新规划线槽走线,强电弱电分开布置
5.3 性能优化记录
通过以下调整将系统响应时间从8ms降低到3ms:
- 将MOV指令改为DMOVP(脉冲执行型)
- 优化程序扫描顺序,将CCD处理放在第一段
- 禁用未使用的通信端口和服务
- 将D寄存器访问改为连续地址块操作
6. 项目扩展与进阶应用
6.1 与MES系统集成
通过FX5U的以太网端口,可以实现与上位系统的OPC UA通信:
- 配置SLMP通信协议
- 定义数据交换区域(D区)
- 开发MES接口程序读取生产数据
structured复制// 生产计数上传示例
MOV D100 UDP192.168.1.100:4840
6.2 多相机协同方案
对于大型检测工位,可采用以下架构:
- FX5U通过RS-485总线连接多个CCD
- 使用轮询方式分时处理各相机数据
- 在触摸屏设置相机选择开关
6.3 视觉数据统计
利用FX5U的SD卡扩展功能,可以实现:
- 将检测结果按时间戳存储为CSV
- 通过触摸屏导出历史数据
- 使用Python脚本进行SPC分析
在实际项目中,这套方案已经稳定运行超过10,000小时。最关键的体会是:工业视觉系统的可靠性不仅取决于硬件性能,更需要精细的PLC程序设计和人性化的触摸屏交互。特别是在参数调试阶段,良好的HMI设计能减少50%以上的调试时间。