1. 项目概述:电池生产线自动化控制系统
这个项目是为新能源电池生产线开发的自动化控制系统,核心是基于欧姆龙NJ系列PLC的EtherCAT总线架构。系统需要同时控制24个伺服轴、6台工业扫码枪和近百个远程IO终端,实现从原材料上料到成品下线的全流程自动化生产。
作为主控设备的NJ-1400 PLC,其硬件配置充分考虑了产线的复杂需求:
- CPU模块:NJ-1400(双核1.4GHz,2GB内存)
- EtherCAT主站模块:NX-ECC201(支持100Mbps全双工)
- 数字量IO模块:NX-ID5342(32点输入)×4
- 模拟量模块:NX-AD4608(8通道)×2
系统架构设计遵循了工业自动化领域的典型三层结构:
- 设备层:IS620N伺服驱动器、扫码枪、传感器等现场设备
- 控制层:NJ-1400 PLC通过EtherCAT总线实现实时控制
- 监控层:威纶通MT8102IE触摸屏提供人机交互界面
关键设计原则:采用"集中控制+分布式执行"的架构,所有关键设备的控制逻辑都集中在PLC中实现,确保系统响应的一致性和可维护性。
2. EtherCAT总线网络规划与配置
2.1 网络拓扑设计
EtherCAT总线采用线性拓扑结构,总电缆长度控制在80米以内(符合100Base-TX规范)。网络配置特别注意了以下几点:
-
节点顺序规划:
- 第1-24节点:IS620N伺服驱动器(按物理安装顺序排列)
- 第25-30节点:扫码枪网关
- 第31-35节点:远程IO终端
-
网络参数配置:
ini复制[EtherCAT_Master] CycleTime = 1ms DC_SyncMode = SM_Shift WatchdogTime = 5000us -
PDO映射规则:
- 伺服轴:4字节控制字 + 4字节目标位置 + 4字节实际位置
- 扫码枪:64字节数据区(包含条码信息和状态位)
- 远程IO:按实际信号点数分配,每8点占用1字节
2.2 伺服轴参数配置模板
每个IS620N伺服驱动器的基本参数配置如下表:
| 参数编号 | 参数名称 | 设定值 | 说明 |
|---|---|---|---|
| P0-02 | 控制模式 | 1 | 位置控制模式 |
| P0-03 | 电子齿轮比分子 | 10000 | 每转脉冲数 |
| P0-04 | 电子齿轮比分母 | 1 | |
| P1-00 | 位置比例增益 | 35 | 影响位置响应速度 |
| P1-01 | 速度比例增益 | 120 | |
| P1-02 | 速度积分增益 | 1000 | |
| P2-10 | 最大转速 | 3000 | 单位:rpm |
实际调试中发现,当电子齿轮比分子超过20000时,某些轴会出现跟随误差报警。最终采用10000的设定值,通过机械减速比实现精确定位。
3. ST语言程序架构设计
3.1 功能块封装策略
整个程序采用模块化设计,主要功能块包括:
- 轴控制功能块(AxisControl)
- 扫码枪处理功能块(BarcodeReader)
- 数字滤波功能块(DigitalFilter)
- 报警处理功能块(AlarmHandler)
- 工艺配方管理功能块(RecipeManager)
以轴控制功能块为例,其状态机设计包含以下状态:
pascal复制VAR
tState: INT := 0; // 状态机变量
END_VAR
CASE tState OF
0: // 初始化状态
IF bPowerOn THEN
MC_Power(Axis:=axis1, Enable:=TRUE);
tState := 10;
END_IF
10: // 待机状态
IF bStartMove THEN
MC_MoveAbsolute(axis1, fTargetPos, fVelocity, fAcceleration);
tState := 20;
END_IF
20: // 运动状态
bInPosition := MC_ReadStatus(axis1).InPosition;
IF bInPosition THEN
tState := 10;
END_IF
END_CASE
3.2 多轴同步控制实现
对于需要同步运动的多个轴,采用以下同步控制策略:
-
虚拟主轴法:
pascal复制// 定义虚拟主轴 MC_GearIn(axisSlave, axisMaster, 1.0, TRUE); // 解除同步 MC_GearOut(axisSlave); -
电子凸轮法:
pascal复制// 定义凸轮表 MC_CamTableSelect(axisFollower, nCamTableID); // 启动凸轮跟随 MC_CamIn(axisFollower, axisMaster);
实际测试表明,在1ms的EtherCAT周期下,多轴同步精度可以达到±50μs以内,完全满足电池生产线的工艺要求。
4. 关键问题解决方案
4.1 扫码枪数据采集优化
最初采用的50ms轮询周期在实际运行中发现以下问题:
- 部分扫码枪在连续工作时会出现数据丢失
- 高密度扫码时缓冲区溢出
优化后的解决方案:
pascal复制// 事件触发式采集(替代轮询)
IF scanGun[i].bDataReady THEN
sBarcode := BYTE_TO_STRING(scanGun[i].Data);
IF STRLEN(sBarcode) = 20 THEN
ProcessBarcode(sBarcode);
scanGun[i].bAck := TRUE;
ELSE
AlarmLog(ERR_INVALID_BARCODE);
END_IF
END_IF
同时增加以下措施:
- 在EtherCAT帧头添加CRC16校验
- 为每个扫码枪配置独立的数据缓冲区
- 实现硬件触发扫码模式(通过光电传感器)
4.2 信号干扰处理方案
针对现场出现的"幽灵信号"问题,采取三级防护措施:
-
硬件层面:
- 所有DI信号线使用双绞屏蔽电缆
- 在PLC端增加信号隔离器
-
软件层面:
pascal复制FUNCTION DigitalFilter : BOOL VAR_INPUT bRawSignal : BOOL; tDebounceTime : TIME := T#200ms; END_VAR VAR tTimer : TON; nCounter : INT := 0; END_VAR tTimer(IN:=bRawSignal, PT:=tDebounceTime); IF tTimer.Q THEN nCounter := nCounter + 1; IF nCounter >= 3 THEN DigitalFilter := TRUE; END_IF ELSE nCounter := 0; DigitalFilter := FALSE; END_IF -
网络层面:
- 优化EtherCAT拓扑结构,缩短分支长度
- 在总线的首末端添加终端电阻
5. 系统调试与优化
5.1 伺服轴调试步骤
-
基本参数配置:
- 通过ServoGuide软件导入标准参数模板
- 根据实际负载调整刚性等级(P1-27)
-
自动调谐:
pascal复制// 执行在线自动调谐 MC_TuneServo(axis1, nMode:=3, // 全自动模式 fStroke:=100.0, // 测试行程(mm) fSpeed:=50.0); // 测试速度(mm/s) -
性能验证:
- 使用MC_ReadActualPosition读取实际位置
- 通过MC_ReadStatus监控伺服状态
- 使用示波器功能观察位置跟随误差
5.2 系统性能指标
经过优化后,系统达到以下性能指标:
| 指标项 | 目标值 | 实测值 |
|---|---|---|
| 单轴定位精度 | ±0.02mm | ±0.015mm |
| 多轴同步误差 | <100μs | 45μs |
| 扫码响应时间 | <80ms | 65ms |
| IO响应延迟 | <5ms | 3ms |
| 系统循环周期 | 1ms | 0.9ms |
6. 维护与扩展建议
6.1 日常维护要点
-
EtherCAT网络维护:
- 每月检查网络连接器紧固状态
- 每季度使用网络分析仪检测信号质量
- 记录主站错误计数器数值变化趋势
-
伺服系统维护:
- 每周检查伺服电机温度(应<70℃)
- 每月备份伺服参数
- 每半年更换伺服驱动器风扇滤网
6.2 功能扩展方案
-
产能提升方案:
- 将EtherCAT周期从1ms缩短至500μs(需升级主站模块)
- 采用多PLC协同控制架构
- 实现动态速度调节功能
-
智能化升级:
- 增加OPC UA接口对接MES系统
- 开发基于机器学习的产品质量预测功能
- 实现远程诊断与维护功能
这套系统经过三个月的试运行验证,目前已经稳定运行超过6000小时,平均无故障时间(MTBF)达到1500小时,完全满足设计要求的1200支/小时的产能目标。在实际调试过程中积累的EtherCAT网络优化经验和ST语言编程技巧,对于类似规模的自动化项目具有很好的参考价值。