1. 项目概述
最近完成了一个基于台达PLC-EH3的3轴铆压机控制系统项目,这个项目最核心的技术难点在于Z轴采用了SMC电缸的位置+扭矩混合控制模式。这种控制方式在精密压装应用中非常关键,能够有效防止过压损坏工件,同时保证装配精度。整个系统包含自动上下料功能,支持多达32个可编程点位,每个点位都可以独立设置位置和扭矩参数,并且具备跳点功能。
这个项目从硬件配置到软件编程都是我自己一手包办的,光是伺服参数调试就花了整整两周时间。特别是那个通过MODBUS RTU协议实时控制A2伺服扭矩的功能,调试过程中踩了不少坑。下面我就把这个项目的完整实现过程拆解给大家,包括硬件选型、控制逻辑、程序架构和调试经验,希望能给做类似设备的同行一些参考。
2. 硬件系统架构
2.1 核心控制器选型
项目选用台达DVP-EH3系列PLC作为主控制器,这款PLC有几个显著优势:
- 内置3个200kHz高速脉冲输出口,正好满足我们3轴控制需求
- 支持RS485通讯,方便与伺服驱动器进行MODBUS通讯
- 32K步程序容量,足够实现复杂的控制逻辑
- 自带24点输入/16点输出,省去了扩展模块的成本
EH3的编程软件Delta WPLSoft界面友好,支持结构化编程和功能块(FB)封装,这对我们后期维护和功能扩展非常有利。
2.2 运动执行机构
系统采用3轴直角坐标机械手结构:
- X/Y轴:采用台达ASDA-A2系列伺服电机+滚珠丝杠
- Z轴:SMC电动缸(型号LEH25-300)+A2伺服驱动器
这里重点说下Z轴选型考虑:
- SMC电缸自带防转机构,避免气管/线缆缠绕(这个设计太重要了,之前吃过亏)
- 行程300mm,最大推力500N,满足我们的压装需求
- 重复定位精度±0.01mm,完全够用
- 内置磁栅尺反馈,可实现闭环控制
2.3 电气系统设计
电气图纸用Eplan精心设计,特别注重以下几点:
- 伺服驱动器的接线单独成页,特别是CN3控制信号接线
- 所有IO点都标注了PLC地址和功能说明
- 关键信号线(如编码器线)采用双绞屏蔽线
- 每个伺服驱动器电源端都加了噪声滤波器
BOM表做得非常详细,连螺丝规格和线号管信息都包含在内。特别提醒:SMC电缸订货时要注明"含防转机构",这个细节很容易被忽略。
3. 核心控制逻辑实现
3.1 位置+扭矩混合控制
Z轴的控制逻辑是整个系统最复杂的部分,采用位置优先、扭矩限制的混合控制模式:
- 下降阶段:先以位置模式快速下降到接近工件位置
- 接触检测:当实际扭矩达到设定值的80%时,认为已接触工件
- 压装阶段:切换到扭矩控制模式,以恒定压力完成压装
- 保压阶段:维持设定扭矩一段时间(可调)
- 回程阶段:快速返回到待机位置
关键伺服参数设置:
plaintext复制P1-01=3 // 位置+扭矩混合模式
P1-37=50 // 扭矩限制50%额定扭矩
P2-10=200 // 模式切换时间200ms
P2-40=500 // 到位范围500脉冲
3.2 MODBUS扭矩控制实现
传统脉冲控制无法实时调整扭矩,我们采用MODBUS RTU协议通过RS485通讯实现:
-
硬件连接:
- PLC的RS485端口(COM2)连接所有伺服驱动器的485接口
- 总线两端并接120Ω终端电阻
- 使用屏蔽双绞线,长度不超过20米
-
通讯参数:
- 波特率:19200bps
- 数据位:8位
- 停止位:1位
- 无校验
- 3.5字符间隔时间:3.5ms(PLC寄存器D1036=3500)
-
PLC程序关键代码:
assembly复制MOV K2002 D100 // 目标寄存器地址(A2伺服的扭矩指令地址)
MOV K500 D101 // 扭矩值500(对应0.5%额定扭矩)
RS D100 K2 D200 K1 // MODBUS发送指令
注意:D200是通讯状态寄存器,每次发送前需检测通讯完成标志(M1127)
3.3 点位管理系统设计
系统支持32个可编程点位,每个点位包含以下参数:
- X/Y/Z坐标值
- 扭矩阈值
- 运行速度
- 跳转条件
- 保压时间
这些参数存储在D寄存器块中(D500-D899),通过触摸屏可方便地进行编辑和保存。
点位跳转逻辑采用FIFO队列实现,关键程序结构:
assembly复制LD M100 // 跳转条件1
MOV K3 D300 // 跳转到位置3
LD M101 // 跳转条件2
MOV K5 D300 // 跳转到位置5
MOV D300 D310 // 目标位置送入队列
4. 人机界面设计
4.1 触摸屏画面规划
采用台达DOP-107BV触摸屏,主要画面包括:
- 主操作画面:包含手动/自动切换、启动/停止按钮、急停
- 参数设置画面:各轴速度、加速度、扭矩限制等参数
- 点位管理画面:编辑各点位坐标和工艺参数
- 报警画面:实时显示故障信息及处理建议
- 数据监控画面:实时显示各轴位置、扭矩曲线
4.2 关键宏指令实现
触摸屏使用宏指令实现动态功能:
vb复制' 动态跳点逻辑
If JumpFlag(1)=1 Then
JumpPos = PositionArray(3)
Else
JumpPos = PositionArray(1)
End If
' 压力曲线显示
For i = 0 To 100
TrendChart.AddValue TorqueSensor(i)
Next
5. 调试经验与问题解决
5.1 伺服调试技巧
-
扭矩波动问题:
- 现象:扭矩反馈值不稳定,波动超过±5%
- 解决:调整P1-12(扭矩滤波)从默认5改为3
- 原理:降低滤波时间常数,提高响应速度
-
到位抖动问题:
- 现象:电缸到达位置后持续微小抖动
- 解决:将P2-40(到位范围)从100脉冲改为500
- 原理:增大到位判定范围,避免在临界点振荡
-
模式切换不平顺:
- 现象:位置转扭矩时出现明显冲击
- 解决:优化P2-10(切换时间)从100ms调整为200ms
- 原理:给系统足够的过渡时间
5.2 通讯故障排查
-
MODBUS通讯超时:
- 检查终端电阻是否安装
- 确认D1036寄存器设置为3500(3.5ms)
- 使用示波器检查信号质量
-
从站无响应:
- 确认所有从站地址设置正确
- 检查485总线接线是否正确(A/B线不能接反)
- 测试时将波特率降低至9600测试
5.3 机械安装注意事项
-
电缸安装:
- 必须保证与工件垂直度<0.1mm/m
- 连接处使用柔性联轴器吸收微小偏差
- 气管和电缆要有足够的活动余量
-
传感器安装:
- 压力传感器要预压5%量程消除间隙
- 位置传感器屏蔽层单端接地
6. 核心算法解析
6.1 压力控制FB块
项目中封装了一个PressureControl_FB功能块,主要算法包括:
- 抛物线加速算法:
assembly复制FOR K0 TO K100
D200 = K500 * T^2 / K10000 // 二次函数生成速度曲线
PLSY D200 K500 Y0 // 发送脉冲
NEXT
- 公差补偿算法:
assembly复制LD M200 // 补偿使能
MOV D210 D211 // 补偿量->工作寄存器
ADD D100 D211 D100 // 应用补偿
6.2 安全保护逻辑
系统包含多重安全保护:
- 软限位:各轴运动范围软件限制
- 扭矩监控:实时检测过载情况
- 紧急停止:硬件急停回路+软件急停处理
- 互锁逻辑:防止各轴干涉碰撞
7. 项目文件管理
完整的项目包含以下文档:
- PLC程序(带详细注释)
- 触摸屏程序
- 伺服参数设置文件
- 电气BOM表(含供应商信息)
- Eplan电气图纸(PDF+DWG格式)
- 调试记录与参数备份
特别建议:每次修改参数后,立即在调试记录中注明日期、修改内容和效果。这个习惯能节省大量后续维护时间。
