1. 项目概述:螺丝机自动化控制系统的核心架构
在工业自动化领域,螺丝锁附工艺是电子产品组装线上的关键环节。我最近完成的一个项目采用了欧姆龙CJ2M PLC作为主控制器,搭配威纶通触摸屏实现人机交互,构建了一套完整的螺丝机配方管理系统。这个系统的独特之处在于不仅实现了常规的螺丝锁附控制,还创新性地集成了设备使用状态监控和商务管理功能。
这套系统主要解决三个核心问题:
- 多品种产品的快速换线问题(通过配方管理实现)
- 螺丝锁附工艺参数的精确控制(扭矩、转速、锁附深度等)
- 设备租赁场景下的商务管理需求(通过触摸屏催款功能实现)
提示:选择CJ2M PLC是因为其具有强大的运动控制功能和稳定的通信性能,特别适合需要精确控制的小型自动化设备。
2. 硬件选型与系统架构设计
2.1 控制器选型:欧姆龙CJ2M PLC特性解析
CJ2M-CPU33是本次项目的核心控制器,选择这款PLC主要基于以下考量:
- 内置4轴脉冲输出(最大500kHz),可直接驱动步进或伺服电机
- 支持EtherNet/IP协议,方便与触摸屏通信
- 程序容量30K步,满足复杂逻辑控制需求
- 自带RS-232C和USB编程端口,开发调试方便
实际应用中,我们使用了其中两轴:
- 轴1:控制X-Y模组运动
- 轴2:控制电批的Z向升降
2.2 人机界面:威纶MT8071iE触摸屏的优势
威纶MT8071iE触摸屏的主要特点:
- 7寸高亮度TFT液晶屏(800×480)
- 支持通过Ethernet与PLC通信
- 内置配方功能,可存储多达1000组参数
- 提供完善的报警和日志功能
特别值得一提的是其"远程监控"功能,通过这个功能实现的催款界面不会影响正常生产操作,只有在设备空闲时才会显示提示信息。
3. ST语言程序深度解析
3.1 螺丝锁附核心控制逻辑
完整的螺丝锁附过程包括以下阶段:
- 定位阶段(XY轴运动到目标位置)
- 下压阶段(Z轴下降,电批接触螺丝)
- 锁附阶段(电批旋转,完成锁附)
- 检测阶段(扭矩、角度等参数检测)
- 复位阶段(Z轴抬升,准备下一个循环)
st复制// 螺丝锁附状态机实现
VAR
CurrentState : INT := 0; // 当前状态
TargetPosX : REAL; // X轴目标位置
TargetPosY : REAL; // Y轴目标位置
ScrewType : INT; // 螺丝类型索引
END_VAR
CASE CurrentState OF
0: // 待机状态
IF StartSignal THEN
CurrentState := 1;
END_IF;
1: // XY轴定位
MC_MoveAbsolute(AxisX, TargetPosX);
MC_MoveAbsolute(AxisY, TargetPosY);
IF AxisX.InPosition AND AxisY.InPosition THEN
CurrentState := 2;
END_IF;
2: // Z轴下压
MC_MoveAbsolute(AxisZ, 10.0); // 下压到接触位置
IF AxisZ.InPosition THEN
CurrentState := 3;
END_IF;
3: // 开始锁附
TorqueSet := Recipe[ScrewType].Torque;
SpeedSet := Recipe[ScrewType].Speed;
// 启动电批...
CurrentState := 4;
4: // 锁附完成检测
IF TorqueActual >= TorqueSet THEN
CurrentState := 5;
ELSIF Timeout THEN
ErrorCode := 1; // 扭矩不足错误
CurrentState := 99;
END_IF;
5: // Z轴复位
MC_MoveAbsolute(AxisZ, 0.0);
IF AxisZ.InPosition THEN
CurrentState := 0; // 返回待机
END_IF;
99: // 错误处理状态
// 错误处理逻辑...
END_CASE;
3.2 配方管理系统的实现
配方数据存储在PLC的数据存储器中,采用结构体数组形式组织:
st复制TYPE ScrewRecipe :
STRUCT
Torque : REAL; // 扭矩设定值(N·m)
Speed : REAL; // 转速设定值(rpm)
Depth : REAL; // 锁入深度(mm)
Timeout : TIME; // 超时时间
END_STRUCT
END_TYPE
VAR
Recipe : ARRAY[1..100] OF ScrewRecipe; // 100组配方
CurrentRecipe : INT := 1; // 当前使用配方
END_VAR
4. 威纶触摸屏程序开发要点
4.1 配方管理界面设计
威纶触摸屏使用EasyBuilder Pro软件进行开发,配方界面关键元素包括:
- 配方选择下拉框(关联PLC的CurrentRecipe变量)
- 参数编辑区域(关联Recipe数组的各元素)
- 保存/加载按钮(通过宏指令实现)
st复制// 配方保存宏指令示例
macro_command main()
// 将界面输入值写入PLC寄存器
SetData(RecipeNo, "Local HMI", LW, 100, 1)
SetData(TorqueSet, "Local HMI", LW, 101, 1)
// ...
end macro_command
4.2 催款功能的工程实现
催款功能通过以下机制实现:
- PLC内部维护一个使用时间计数器
- 当累计使用时间接近授权期限时,触发提示标志
- 触摸屏检测到标志后显示催款界面
st复制// PLC中的时间监控逻辑
VAR
UsageMinutes : UDINT; // 累计使用分钟数
LicenseMinutes : UDINT := 14400; // 授权时长(约10天)
PaymentFlag : BOOL; // 付款状态标志
END_VAR
// 每分钟累计使用时间
IF NOT PaymentFlag THEN
UsageMinutes := UsageMinutes + 1;
IF UsageMinutes >= LicenseMinutes THEN
ShowPaymentAlert := TRUE;
END_IF;
END_IF;
5. 系统调试与问题排查
5.1 常见通信问题解决方案
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 触摸屏无法连接PLC | IP地址设置错误 | 检查PLC和触摸屏的IP是否在同一网段 |
| 配方数据读取异常 | 寄存器地址偏移错误 | 确认结构体在PLC中的存储布局 |
| 扭矩检测不稳定 | 信号干扰 | 检查传感器接线,增加滤波参数 |
5.2 运动控制参数优化
在实际调试中发现几个关键参数需要特别注意:
- 轴加速度/减速度:建议设置在100-200mm/s²之间
- 电批启动延时:下压到位后延时50ms再启动旋转
- 扭矩检测滤波时间:通常设置为100ms可获得稳定读数
注意:不同品牌的电批其扭矩响应特性差异很大,建议在实际设备上进行参数校准。
6. 系统扩展与升级建议
基于现有系统可以进一步扩展以下功能:
- 增加视觉定位系统,通过Ethernet/IP接入PLC
- 实现与MES系统的对接,上报生产数据
- 添加螺丝供料机控制,实现全自动化作业
在软件层面,可以考虑:
- 将配方数据存储在触摸屏的SD卡中
- 增加用户权限管理功能
- 开发更完善的数据统计分析界面
这套系统经过三个月的实际运行验证,稳定性良好,平均无故障时间超过2000小时。特别是在多品种小批量生产场景下,配方切换功能显著提高了设备利用率。