1. 项目概述:三菱FX5U PLC螺丝机控制系统
这套程序是我去年为某电子厂自动化产线开发的螺丝锁附系统核心控制方案,采用三菱FX5U-32MT/ES PLC作为主控制器,搭配威纶通MT8071iE触摸屏实现人机交互。系统控制4台安川Σ-7系列伺服电机完成精密送钉和锁附作业,定位精度达到±0.02mm,单颗螺丝锁附周期仅需1.8秒。
项目最大的技术亮点在于将传统PLC的梯形图编程与结构化文本(ST)相结合,通过FB功能块封装了伺服控制、螺丝供料等工艺模块。触摸屏程序采用多层级菜单设计,包含设备监控、参数设置、生产统计等8个功能界面,所有IO点和工艺参数都做了标签化处理。
特别说明:程序中所有关键逻辑段都添加了中英文双语注释,连每个定时器的用途都标注得清清楚楚,这对后续产线改造和维护特别重要——上周客户才根据注释快速完成了M3螺丝到M4螺丝的工艺切换。
2. 硬件架构与选型解析
2.1 核心控制器选型考量
选择FX5U系列PLC主要基于三点:
- 运动控制性能:内置4轴200kHz高速脉冲输出,正好满足我们4台伺服同步控制需求。实测在1ms周期下,脉冲指令抖动小于0.1%
- 扩展便利性:通过FX5-CCL-MS模块实现CC-Link IE Field Basic网络,后续增加视觉检测单元时可直接挂接
- 开发效率:GX Works3软件支持梯形图、ST、SFC多种语言混合编程,FB功能块库直接调用伺服指令
硬件配置清单:
| 设备类型 | 型号 | 数量 | 关键参数 |
|---|---|---|---|
| PLC主机 | FX5U-32MT/ES | 1 | 16DI/16DO, 4轴脉冲 |
| 触摸屏 | 威纶通MT8071iE | 1 | 7寸, 65535色 |
| 伺服驱动器 | 安川SGD7S-R90A | 4 | 750W, 23bit编码器 |
| 螺丝供料器 | 黑田精机KTH-4M | 2 | 振动盘+直振送料 |
2.2 电气接线要点
伺服电机控制采用差分脉冲(PLS+/PLS-)接线方式,相比单端脉冲抗干扰能力提升明显。这里有个实际踩过的坑:
- 最初使用普通屏蔽线时,3号轴偶尔会出现脉冲丢失
- 改用双绞屏蔽线(Belden 8761)并确保屏蔽层单端接地后问题解决
- 脉冲线必须与动力线分开走线槽,平行距离大于50mm
DI信号全部采用光耦隔离输入,特别注意:
- 螺丝有无检测(光纤传感器)信号需加0.1μF电容滤波
- 急停按钮必须采用常闭触点接入,程序里做上升沿触发
3. 软件设计与核心逻辑实现
3.1 程序框架设计
采用分层架构设计,通过GX Works3的工程结构管理:
PROJECT_MAIN ├── MAIN_PROGRAM(主循环) ├── AUTO_CYCLE(自动流程) ├── MANUAL_CTRL(手动控制) ├── ALARM_HANDLE(报警处理) └── FB_INSTANCES ├── FB_SERVO_CTRL(伺服控制块) ├── FB_SCREW_FEED(供料控制块) └── FB_TORQUE_MON(扭矩监控块)关键技巧:在FB_SERVO_CTRL功能块中,我们创新性地将三菱的定位指令(DSFRP/DSFLP)与安川伺服特有的S形加减速曲线结合,通过以下参数实现柔性控制:
// ST语言编写的伺服控制片段 IF bStart THEN rAccelTime := REAL_TO_TIME( (rDist*0.2)/(rSpeed*0.001) ); rDecelTime := rAccelTime * 0.8; MC_MoveVelocity( Axis:=iAxis, Velocity:=rSpeed, Acceleration:=rAccelTime, Deceleration:=rDecelTime, Jerk:=100, BufferMode:=MC_BUFFER_MODE_ABORTING ); END_IF;3.2 触摸屏界面开发
威纶通触摸屏程序采用"一机双面"设计:
- 操作员界面:大按钮、简流程,只有启动/停止/急停三个物理按键生效
- 工程师界面(密码保护):包含伺服参数调整、工艺配方管理、IO监控等高级功能
几个实用设计细节:
- 在螺丝计数画面采用"进度条+数字"双显示,进度条颜色随良率变化(绿>95%,黄>90%,红<90%)
- 所有数值输入框都做了上下限判断,比如锁附扭矩设定范围强制限制在0.2~5.0N·m之间
- 报警历史记录采用循环存储方式,最新500条记录保存在触摸屏SD卡中
4. 核心工艺算法解析
4.1 螺丝锁附扭矩控制
通过安川伺服的全闭环扭矩模式实现精密控制:
- 先以3000rpm快速下压(扭矩限制在0.5N·m)
- 接触工件后切换至扭矩模式,分三个阶段:
- 预紧阶段:200rpm,目标扭矩1.2N·m
- 主锁阶段:100rpm,目标扭矩3.0N·m
- 保持阶段:50rpm,维持2.8N·m持续100ms
对应的PLC程序段:
|--[MOV K3000 D100]--[MOV K500 D101]--(高速下降阶段) |--[DMOVP K1200 D102]--[MOV K200 D103]--(预紧阶段) |--[DMOVP K3000 D104]--[MOV K100 D105]--(主锁阶段) |--[DMOVP K2800 D106]--[MOV K50 D107]--[TIMER T0 K100]--(保持阶段)4.2 供料同步控制
采用"提前触发+动态补偿"算法解决振动盘供料延迟问题:
- 在螺丝枪距目标点50mm时提前发供料指令
- 通过编码器实时检测送钉位置,动态调整提前量
- 建立供料成功率的自学习模型:
- 连续3次供料失败自动增大提前量5%
- 连续10次成功则减小提前量1%
5. 调试问题与解决方案
5.1 伺服电机抖动问题
现象:2号轴在低速(<50rpm)时出现明显抖动 排查过程:
- 首先检查机械结构,确认联轴器无松动
- 调整伺服增益参数(P11-17),效果不明显
- 最终发现是电源干扰导致,解决方案:
- 在伺服驱动器电源输入端加装磁环(TDK ZCAT2032-0930)
- 修改PLC脉冲输出参数,将脉冲平滑滤波设为3级
5.2 触摸屏通信中断
现象:生产线连续运行4小时后触摸屏无响应 根本原因:威纶通默认通信超时设置为5秒,产线电磁干扰导致偶发通信错误 优化措施:
- 修改COM口参数:
- 波特率从115200降为57600
- 增加校验位为Even
- PLC程序增加通信心跳检测:
|--[MOV K0 D200]--[INC D200]--[CMP D200 K300]--[> M100] |--[MOV K0 D200]--(触摸屏定时复位计数器)6. 系统扩展与优化建议
当前系统已稳定运行9个月,根据实际使用经验给出三个升级方向:
增加视觉引导:通过FX5-64MT/ES扩展CC-Link IE Field网络,接入基恩士CV-X系列相机实现螺丝孔定位,预计可减少30%的治具成本
工艺数据上云:利用FX5U内置的SLMP协议,将扭矩曲线、良率数据上传到SQL数据库,建议采样周期设为50ms
模块化改造:将现有FB功能块升级为三菱的GX Works3全局库,新建工程时直接调用。特别注意要封装好以下接口:
- 伺服使能/报警复位连锁逻辑
- 手动/自动模式切换时的状态保持
- 工艺参数的单位换算(如rpm→Hz)
这套程序最让我自豪的是它的可维护性——上周帮客户新增M4螺丝工艺时,仅通过修改FB_SERVO_CTRL的输入参数就实现了,完全不需要改动主程序架构。这也印证了结构化编程在工业控制中的重要性。