omron欧姆龙NJ/NX程序 全自动锂电池二封机,主站NJ501-1400+威纶通触摸屏。 整机采用EtherCAT总线网络节点控制,松下A6总线控制。 轴控制全部封装成功能块,可按照使用选择对应的功能,JOG功能,相对定位,绝对定位。 扫码通信功能块。 E5CC温控器SP,SV,AT等读写温度控制,松下真空表真空压力模拟量控制,基恩士测厚元件应用 涵盖人机配方一键换型功能,故障记录功能,产量统计及OEE功能,基恩士电池二维条码读取功能,AND电子称数据读写控制, 全st梯形图编写,注释齐全。
最近在锂电设备开发中搞了个全自动二封机的项目,主控用欧姆龙NJ501-1400配威纶通HMIPC6040,全程EtherCAT总线组网。这机器最刺激的地方在于要同时协调松下A6伺服、温控器、真空压力传感器、测厚仪这些杂牌军,还得玩转二维条码读取和配方管理。
先说总线架构,NJ控制器的EtherCAT同步周期干到了2ms。伺服轴的参数配置直接通过ESCAT_DRV功能块操作,像这样:
// 伺服使能
IF Axis_Enable THEN
ESCAT_DRV(
AxisNo:=1,
Mode:=1, // 循环定位模式
Position:=RealPos,
Velocity:=3000.0,
Execute:=TRUE,
Done=>DoneFlag,
Error=>ErrorCode);
END_IF;
这里有个坑:松下A6伺服的电子齿轮比得在驱动器参数里手动设置,PLC这边给的脉冲当量得和机械结构匹配。上次调试时因为减速比算错,直接让收卷轴飞车撞限位,现场那叫一个酸爽。
扫码模块用基恩士SR-1000系列,走TCP/IP通信。自己封装了个扫码功能块,核心是Socket通信指令:
// 扫码触发
SR1000_Trigger(
IP_Address:='192.168.1.100',
Port:=9004,
omron欧姆龙NJ/NX程序 全自动锂电池二封机,主站NJ501-1400+威纶通触摸屏。 整机采用EtherCAT总线网络节点控制,松下A6总线控制。 轴控制全部封装成功能块,可按照使用选择对应的功能,JOG功能,相对定位,绝对定位。 扫码通信功能块。 E5CC温控器SP,SV,AT等读写温度控制,松下真空表真空压力模拟量控制,基恩士测厚元件应用 涵盖人机配方一键换型功能,故障记录功能,产量统计及OEE功能,基恩士电池二维条码读取功能,AND电子称数据读写控制, 全st梯形图编写,注释齐全。
TimeOut:=T#5S,
DataBuffer:=P#DB200.DBX0.0 BYTE 256,
StatusCode=>ScanStatus);
这货返回的二维条码数据带校验位,得用移位指令把ASCII码转成实际数值。调试时发现扫码枪偶尔丢包,后来在功能块里加了三次握手重试机制才稳定。
配方管理是威纶通触摸屏的重头戏,用结构体数组实现型号参数存储:
TYPE ProductRecipe :
STRUCT
TempSetpoint : REAL; // 温度设定
VacuumPressure : REAL; // 真空压力
ThicknessTolerance : REAL; // 厚度公差
END_STRUCT
END_TYPE
换型时直接调用MOV_BLOCK指令整组参数搬运,比单个变量操作效率高得多。但要注意结构体对齐问题,有次因为字节对齐错误导致温控参数错位,直接烤糊了电池隔膜...
故障记录功能用循环队列实现,最新50条异常信息存储在非易失性内存区。关键是用时间戳+故障代码的打包存储:
FaultLog[WritePointer].DateTime := NOW();
FaultLog[WritePointer].ErrorCode := CurrentError;
WritePointer := (WritePointer + 1) MOD 50;
调试时发现直接写EEPROM太频繁会影响周期时间,后来改成缓存满10条才批量写入。电子秤数据采集更有意思,AND的UC-3000A称重模块通过RS485走Modbus RTU,得处理浮点数的高低字节交换问题。
整个项目下来最大的感受是:设备自动化不是把功能堆砌完事,得像老中医把脉一样,让各子系统在毫秒级的节奏里和谐共处。特别是当温控模块的PID自整定和伺服定位同时进行时,总线带宽分配直接决定生产节拍。现在这机器OEE能干到92%,换型时间压到3分钟以内,算是没白掉那几把头发。