1. 项目背景与核心价值
在工业自动化产线上,螺丝锁附工序是装配环节中最常见也最关键的工艺之一。传统人工锁螺丝不仅效率低下,还存在力矩不均、漏锁等质量隐患。我最近完成的一个汽车电子项目就遇到了这样的痛点——产线上需要为12种不同型号的电路板锁附共计86颗螺丝,人工操作平均需要4分半钟,且不良率高达3.2%。
这个分享包含了两大核心组件:欧姆龙NJ系列PLC的控制程序和威纶TK6071IQ触摸屏的人机界面。整套系统实现了以下工业级功能:
- 多型号产品的自动识别与参数切换
- 伺服电机的精准点位控制(重复定位精度±0.02mm)
- 扭力闭环控制(±5%设定值)
- 不良品自动剔除与声光报警
- 生产数据统计(OEE计算、不良分析等)
2. 硬件系统架构解析
2.1 设备选型与拓扑结构
整套系统采用典型的工业控制架构:
code复制[威纶TK6071IQ触摸屏] -- EtherCAT -- [欧姆龙NJ501-1300 PLC]
|
|-- [欧姆龙R88D-KN伺服驱动器] -- [安川Σ-7电机]
|-- [SMC气动元件]
|-- [ZTS扭矩传感器]
关键硬件参数选型考量:
- PLC选型:NJ501-1300具备EtherCAT主站功能,可满足8轴同步控制需求,其1ms的循环周期足够应对高速锁附场景(我们实测单螺丝锁附周期最快可达1.8秒)
- HMI选择:威纶TK6071IQ的7寸IPS屏支持65535色显示,其特有的"一屏多机"功能允许通过一个界面控制多台设备
- 伺服系统:安川Σ-7电机搭配17位绝对值编码器,配合欧姆龙驱动器可实现0.01mm级的位置控制
2.2 电气接口设计要点
- 安全回路:急停信号采用双回路设计(常开+常闭触点并联)
- 信号隔离:所有DI信号均通过光电耦合器隔离(推荐OMRON的G3VM-61VR)
- 电源分配:PLC与伺服系统电源分离,避免干扰(实测伺服启停时会有约0.5V的电压波动)
3. PLC程序设计详解
3.1 运动控制核心逻辑
采用欧姆龙特有的CAM功能实现多轴联动,关键程序段如下:
structured复制// 主程序循环
IF bAutoMode THEN
CASE nStep OF
0: // 等待产品到位
IF DI_ProductReady THEN
nStep := 10;
END_IF;
10: // 移动到第一颗螺丝位置
MC_MoveAbsolute(Axis1, fPosX, fVel, fAcc);
MC_MoveAbsolute(Axis2, fPosY, fVel, fAcc);
nStep := 20;
...
50: // 执行锁附动作
MC_TorqueControl(Axis3, fTargetTorque, 500);
nStep := 60;
END_CASE;
END_IF;
关键技巧:
- 使用
MC_GearIn指令实现送料轴与锁附轴的电子齿轮同步 - 通过
MC_TorqueControl的Window参数设置扭矩容差带(建议设为目标值的±7%) - 异常处理中必须包含
MC_Stop和MC_Reset的联锁逻辑
3.2 配方管理系统实现
针对多型号产品,采用欧姆龙的数据内存卡(CS1W-DRM21)存储配方参数:
structured复制// 配方数据结构
TYPE ST_Recipe :
STRUCT
fPosX : ARRAY[1..50] OF LREAL; // X坐标数组
fPosY : ARRAY[1..50] OF LREAL; // Y坐标数组
fTorque : ARRAY[1..50] OF LREAL; // 扭矩数组
nTotalScrews : INT; // 螺丝总数
END_STRUCT
END_TYPE
操作流程:
- 触摸屏选择产品型号
- PLC通过
FileRead指令从内存卡读取对应配方 - 数据校验(CRC16校验)
4. 威纶触摸屏程序开发
4.1 HMI界面架构设计
采用多层级界面结构:
code复制主界面 → [手动操作][自动运行][参数设置][数据查询]
↓
[坐标示教][IO监控][报警历史]
界面设计规范:
- 所有操作按钮尺寸不小于80x80像素
- 关键参数显示使用红绿双色指示(绿色=正常,红色=超限)
- 报警信息采用滚动条显示,最新报警始终置顶
4.2 关键功能实现
- 坐标示教功能:
visual复制Sub TeachPosition()
Dim sPosX As String = PLC.ReadTag("Axis1.ActPos")
Dim sPosY As String = PLC.ReadTag("Axis2.ActPos")
CurrentRecipe.PosX(nCurrentIndex) = CDbl(sPosX)
CurrentRecipe.PosY(nCurrentIndex) = CDbl(sPosY)
UpdateDataGrid()
End Sub
- 实时曲线显示:
visual复制Chart1.Series("扭矩曲线").Points.AddXY(
Timer1.Value,
PLC.ReadTag("TorqueSensor.Value")
)
5. 系统调试与优化
5.1 运动控制参数整定
通过NJ系列的Auto-Tuning功能优化伺服参数:
- 先进行刚性设定(建议从11开始尝试)
- 调整速度环增益(通常设为300~500%)
- 最后微调位置环增益(过大会引起振动)
实测参数效果对比:
| 参数组 | 定位时间(ms) | 超调量(mm) | 振动次数 |
|---|---|---|---|
| 默认 | 320 | 0.15 | 3 |
| 优化后 | 210 | 0.02 | 0 |
5.2 常见故障排查
-
螺丝滑牙问题:
- 检查扭矩传感器校准(建议每周用标准扭矩扳手校验)
- 调整下压速度(太快会导致螺丝打滑)
-
位置偏差累积:
- 启用伺服的全闭环控制模式
- 定期执行参考点复归操作(建议每500次循环执行一次)
-
EtherCAT通信中断:
- 检查网线屏蔽层接地
- 调整EtherCAT周期(建议设为1ms)
6. 工程文件说明
提供的程序包包含以下关键文件:
code复制├── PLC程序
│ ├── MainTask.PRG (主程序)
│ ├── MotionCtrl.PRG (运动控制)
│ └── RecipeMgr.PRG (配方管理)
├── HMI工程
│ ├── Screen1.FRM (主界面)
│ ├── Teach.FRM (示教界面)
│ └── Alarm.FRM (报警记录)
└── 文档
├── IO表.xlsx (完整地址映射)
└── 操作手册.pdf
特别提醒:在导入程序前,务必:
- 检查PLC固件版本(要求V1.25以上)
- 确认威纶EasyBuilder Pro版本为6.02.01
- 先备份原有程序
这套系统在某汽车电子厂实际运行8个月后,单工位生产效率提升62%,不良率降至0.3%以下。最让我意外的是伺服电机的寿命——经过50万次循环后,定位精度仍保持在±0.03mm以内,远超过预期。