1. 项目概述:锂电极片冲切系统架构解析
去年接手的一个锂电设备项目让我对欧姆龙CP1H系列PLC的潜力有了全新认识。这套全自动多极耳连续冲切系统,核心任务是在高速运行中实现±0.2mm的极耳冲切精度。系统采用主从PLC架构,主机CP1H-X40DT-D带四轴运动控制,从机CP1H-XA40DT带八轴,通过MCGS昆仑通态TPC7062Ti触摸屏实现人机交互。
主站负责整体节奏控制,包括送料轴、牵引轴的同步运动;从站专攻精密定位,控制冲切刀组的多轴联动。这种分工设计源于锂电池极耳的特殊性——每组极耳间距公差要求≤0.3mm,但连续冲切时材料会有弹性形变积累。我们通过主从PLC的实时数据交换,实现了动态补偿算法,最终将废品率控制在0.5%以下。
2. 硬件配置与信号规划
2.1 伺服系统选型
选用安川Σ-7系列伺服驱动,具体配置如下:
- 送料轴:SGM7G-1EA6C + SGD7S-R90A(3kW)
- 牵引轴:SGM7G-1EA6C + SGD7S-R90A(3kW)
- 冲切轴:SGM7G-05A6C + SGD7S-R70A(500W)×6套
特别在冲切轴加装17位绝对值编码器,配合欧姆龙CP1H的内置高速计数器,实现0.01μm级位置反馈。实际调试中发现,伺服刚性参数对冲切质量影响极大,最终设定值:
code复制位置环增益:35rad/s
速度环增益:120Hz
转矩滤波器:8ms
2.2 PLC I/O分配策略
主站CP1H的输入点分配:
- X0-X3:4个伺服原点信号
- X4-X7:急停/安全门连锁
- X10-X13:材料张力反馈(4-20mA通过AD041模块接入)
输出点采用分组控制:
- Y0-Y3:伺服使能信号
- Y10-Y17:气缸控制(带中间继电器隔离)
从站CP1H专门处理高精度信号:
- 专用X20-X27接入8个冲切位置的激光测距传感器(基恩士IL-300)
- Y20-Y27输出脉冲+方向信号到伺服驱动器
3. 核心控制程序剖析
3.1 主从PLC通信协议
采用欧姆龙自带的无协议通信功能,自定义了28字节的数据帧结构:
| 偏移地址 | 数据内容 | 数据类型 | 说明 |
|---|---|---|---|
| 0-1 | 同步头0xAA55 | WORD | 帧起始标志 |
| 2-3 | 时间戳 | UINT | 系统运行时间(ms) |
| 4-5 | 主站控制字 | WORD | 位控指令 |
| 6-9 | 目标位置 | DINT | 单位0.1μm |
| 10-13 | 送料速度 | REAL | mm/s |
| 14-17 | 张力设定值 | REAL | N |
| 18-21 | 从站状态字 | DWORD | 报警代码+轴状态 |
| 22-25 | 实际位置 | DINT | 单位0.1μm |
| 26-27 | CRC16校验 | WORD | Modbus标准算法 |
通信异常处理采用三次重传机制,连续超时3次触发急停。实际测试中,在115200bps波特率下通信周期稳定在20ms。
3.2 卷径计算算法优化
原始算法存在材料打滑误差,改进后的计算流程:
- 初始参数设定:
structured_text复制VAR_INPUT
Initial_Diameter : REAL := 150.0; // 初始卷径(mm)
Material_Thickness : REAL := 0.2; // 材料厚度(mm)
Current_Layer : INT := 0; // 当前层数
Slip_Factor : REAL := 0.98; // 打滑系数
END_VAR
- 动态补偿计算:
structured_text复制// 每卷绕一圈更新一次
IF 送料轴位置 MOD 圆周长度 < 0.1 THEN
实际卷径 := (初始卷径 + 2*材料厚度*当前层数) * Slip_Factor;
当前层数 := 当前层数 + 1;
// 自动校准逻辑
IF 当前层数 MOD 10 = 0 THEN
Slip_Factor := (实测送料长度 / 理论送料长度) * 0.9 + Slip_Factor * 0.1;
END_IF
END_IF
4. 触摸屏功能实现
4.1 配方管理系统设计
MCGS触摸屏上构建了三级配方架构:
- 产品型号层:选择电池类型(18650/21700等)
- 工艺参数层:极耳数/间距/冲切深度
- 设备参数层:伺服增益/加速度等
采用SQLite嵌入式数据库存储配方,关键操作代码:
python复制# MCGS脚本示例
def save_recipe():
sql = "INSERT INTO recipes VALUES(?,?,?,?,?)"
params = (product_type, ear_count, pitch, depth, datetime.now())
db_execute(sql, params)
def load_recipe():
data = db_query("SELECT * FROM recipes WHERE type=?", (product_type,))
set_plc_params(data[1], data[2], data[3])
4.2 故障追溯系统
PLC中构建了环形缓冲队列:
structured_text复制TYPE Alarm_Record :
STRUCT
Time : UDINT; // 时间戳
Code : WORD; // 错误代码
Axis : INT; // 轴编号
Position : REAL; // 当前位置
END_STRUCT
END_TYPE
VAR
Alarm_Buffer : ARRAY[0..99] OF Alarm_Record;
Write_Pointer : INT := 0;
END_VAR
触摸屏通过OPC UA协议读取缓冲数据,并绘制趋势曲线。特别添加了"故障重现"功能,可自动复位到报警位置(安全模式下)。
5. 现场调试关键问题
5.1 电磁干扰处理
冲切刀组动作时导致编码器信号异常,采取以下措施:
- 所有编码器线换用双层屏蔽电缆(Belden 8761)
- 驱动器电源加装TDK-Lambda CUS300D系列滤波器
- PLC接地独立引出,与动力地分离
5.2 同步精度优化
发现主从站1ms的时钟偏差会导致0.1mm的位置误差,解决方案:
- 采用IEEE 1588精确时间协议同步时钟
- 在运动指令前插入同步等待:
structured_text复制// 主站程序
MOV #Sync_Command D100
WAIT UNTIL D200 = #Sync_Ack; // 等待从站响应
// 从站程序
IF D100 = #Sync_Command THEN
MOV #Sync_Ack D200
执行运动指令
END_IF
6. 系统扩展应用
当前架构已成功移植到以下设备:
- 极耳焊接机:增加温度控制模块
- 卷绕机:添加张力闭环控制
- 分切机:集成视觉检测
特别在NJ系列上开发的"虚拟主轴"功能,通过EtherCAT实现32轴同步控制,位置同步误差<±1μs。一个实用技巧:在CP1H上使用CTBL指令实现简易CAM曲线,适合不要求严格同步的场合。