在锂电池生产线上,自动二封机是封装环节的核心设备。作为项目主控,欧姆龙NJ501-1400系列PLC需要协调伺服驱动、步进电机、温控表和机械手等多类设备。这套系统最大的技术挑战在于:
实际调试中发现,锂电池封装对设备响应速度要求极高,从收到传感器信号到执行机构动作的延迟必须控制在50ms以内。我们通过优化PLC扫描周期和采用事件触发机制,最终将系统响应时间稳定在35ms左右。
选用NJ501-1400的原因:
| 设备类型 | 通信方式 | 协议 | 数据更新周期 |
|---|---|---|---|
| 松下A6伺服 | EtherCAT | DS402 | 1ms |
| 雷赛步进 | EtherCAT | CANopen over EC | 2ms |
| E5CC温控表 | RS485 | Modbus RTU | 100ms |
| 四轴机械手 | 脉冲+方向 | 自定义 | - |
特别注意:EtherCAT网络拓扑必须采用直线型连接,环型拓扑会导致伺服报错CODE 0x8031
关键参数设置:
structured-text复制[伺服参数]
P0-02=3 // 位置控制模式
P1-01=1000 // 位置环增益
P1-02=30 // 速度环增益
P2-10=1 // EtherCAT同步模式
P2-11=1 // 使能电子齿轮
在Sysmac Studio中配置步骤:
iec-st复制FUNCTION_BLOCK FB_ServoControl
VAR_INPUT
iTargetPos : LREAL; // 目标位置(mm)
iVelocity : REAL := 100.0; // 默认速度(mm/s)
END_VAR
VAR_OUTPUT
qActualPos : LREAL;
END_VAR
VAR
rTrig : R_TRIG;
END_VAR
// 位置指令发送
IF rTrig(CLK := xExecute) THEN
MC_MoveAbsolute(
Axis := gAxisRef,
Position := iTargetPos,
Velocity := iVelocity,
Execute := TRUE);
END_IF;
// 读取实际位置
MC_ReadActualPosition(
Axis := gAxisRef,
Position => qActualPos);
常见问题处理:
通过EtherCAT的CoE协议访问对象字典:
电流计算公式:
code复制实际电流(A) = (设定值 × 电机额定电流) / 255
例:57HS09电机额定2A,设60B9=127 → 实际电流≈1A
iec-st复制// 写入峰值电流
EcatCoEWrite(
SlaveAddr := iStepperAddr,
Index := 16#60B9,
SubIndex := 0,
Data := 150, // 1.5A
Execute := TRUE);
// 读取实际位置
EcatCoERead(
SlaveAddr := iStepperAddr,
Index := 16#6064,
SubIndex := 0,
Data => rActualPos,
Execute := TRUE);
调试技巧:
关键参数:
接线注意事项:
code复制SCU32 E5CC
TXD+ -------- S+
TXD- -------- S-
RXD+ -------- R+
RXD- -------- R-
FG ---------- FG
iec-st复制// 读取PV值
ModbusReadHoldingRegisters(
UnitID := 1,
StartAddr := 1, // PV地址
Quantity := 1,
Data => rPVValue,
Execute := xReadCmd);
// 写入SV值
ModbusWriteSingleRegister(
UnitID := 1,
Addr := 2, // SV地址
Data := rSetValue,
Execute := xWriteCmd);
故障处理:
采用NJ内置的MC组指令实现:
iec-st复制// 点位运动
MC_MoveVelocity(
Axis1 := AxisX,
Axis2 := AxisY,
Axis3 := AxisZ,
Axis4 := AxisR,
Velocity := 50.0,
Execute := TRUE);
// 直线插补
MC_MoveLinearAbsolute(
Group := RobotGroup,
Positions := [100.0,200.0,50.0,0.0],
Velocity := 30.0);
安全逻辑要求:
iec-st复制// 安全条件判断
IF NOT bLightCurtain OR rAirPressure < 0.4 OR bEmergency THEN
MC_GroupStop(
Group := RobotGroup,
Deceleration := 10.0,
Execute := TRUE);
END_IF;
EtherCAT网络抖动:
温控通信干扰:
机械手定位偏差:
经过三周现场调试,最终达到的指标: