跳到主要内容

注塑机周边自动化工站

1. 设备简介

注塑加工中, 注塑机本体由整机厂家 (海天 / 震雄 / 泰德 / 住友 / 恩格尔等) 内置控制器, 但取件机械手 / 振盘 / 模内贴标 (IML) / 嵌件 / 水口剪切 / AOI 检测 / 码垛 等周边设备 通常由系统集成商单独配套。这些周边设备需要与注塑机精准握手, 并在多厂家、 多机型、多工艺之间做兼容。

本案例为某江苏消费电子外壳注塑工厂, 横跨海天 MA 系列 (国产)震雄 Ai 系列住友 SE-EV (日系) 三大品牌共 40 台机, 由 Darra 平台统一周边控制, 通过标准 Euromap 67 硬线Euromap 77 OPC UA 与主机握手。

主要工位流程 (以 IML 模内贴标为例):

  1. 注塑机开模到位 → 发 ZA2 信号
  2. 机械手带标签伸入模腔 → 放标签 (真空释放)
  3. 机械手退出 → 发 ZB1 "允许关模"
  4. 模具关闭 → 注塑 → 冷却 → 顶出 (ZA3)
  5. 机械手再次伸入 → 取件 (真空吸附) → 退出 → 发 ZB4 "允许顶退"
  6. 机械手把成品放到后道输送带 / 码垛台
  7. MES 记录 "机台 + 模号 + 批号 + 生产时间 + 周期"

关键能力: 握手周期 ≤ 10 ms (硬线), 取件 ≤ 2.5 s, IML ≤ 1.8 s, 机械手精度 ±0.1 mm, 支持 5 家以上注塑机品牌, 40 台站用同一模板项目。


2. 项目模块组成

层次模块职责
机械3+1 轴机械手X/Y/Z 定位 + 旋转放件
机械真空吸盘零件吸附 (6 吸盘) + 标签吸附 (1 吸盘)
机械静电消除棒消除塑件静电, 防止吸尘
机械异物检测超声 UB800 扫描模腔, 防压模
电气EtherCAT 主干1ms, 伺服 + IO + 阀岛
电气EM67 24pin 硬线与注塑机 Z 信号 (ZA/ZB/ZC) 互联, 10ms 级
电气OPC UA (EM77)与新式注塑机, 读取工艺参数
软件FB_Euromap67内置硬线握手状态机
软件FB_IMMDriver多品牌注塑机协议切换 (Modbus/OPCUA/TCP)
软件FB_IMLSequence模内贴标 10 状态时序库
软件3D 插补工艺对象机械手 X/Y/Z 直线插补 + 软限位
软件配方引擎模号参数 + 取件点 + IML 参数
软件DarraCloud40 台集中监控

3. 机械装配架构

装配要点:

  • 机械手采用侧入式, X 轴沿注塑机纵向, Y 轴横向 (跨越模板)
  • Z 轴长行程 600mm, 覆盖模腔深度
  • 旋转轴用于"立放 ↔ 平放"切换, 便于后道码垛
  • 真空吸盘分组: 零件组 (6 个 ZPT20 硅胶) + 标签组 (1 个 VP 软性)
  • 静电消除棒悬挂在机械手末端, 每次取件前通电 50ms
  • 异物检测探头固定在机械手入模路径上方

4. 程序架构

4.1 OB/FB 调用树

4.2 IML 状态机流转

任务调度:

  • OB1 (1ms): 主状态机、EM67 逻辑、机械手运动、MES
  • OB35 (500us): EM67 位级信号刷新 (硬线防抖)
  • OB100: 机械手回零、伺服使能、EM67 握手初始化

5. 硬件 BOM (单站)

单位: 人民币, 2026 年 3 月长三角参考价。批量 40 套可压至 ¥38,000/套。

序号分类品牌 / 型号规格数量单价 (¥)小计 (¥)
1工控机研华 UNO-137i3-1215U / 8G / 256SSD 无风扇15,8005,800
2触摸屏威纶通 TK6071iP7" 电阻11,6001,600
3机械手驱动汇川 SV660NEtherCAT 750W31,9805,940
4机械手电机汇川 ISMH2-75C750W 带抱闸31,5204,560
5旋转伺服汇川 SV630N400W11,6801,680
6远程 IO汇川 AM600 CPU1608TP32DI + 24DO13,2003,200
7Euromap 67 电缆标准 24 pin 航插符合 VDMA1650650
8真空发生器SMC ZB0610 × 4含真空开关43801,520
9真空吸盘SMC ZPT20 × 6 + VP ×1硅胶 + 软性760420
10光电传感器邦纳 BGS漫反射 M1263201,920
11异物检测倍加福 UB800超声11,2001,200
12电磁阀岛亚德客 4VEtherCAT 12 联12,2002,200
13静电消除器SMC IZS30棒状1980980
14安全继电器西门子 3SK1Cat 3 PL d1850850
15安全光幕嘉准 JH-LG-90016 光轴11,6001,600
16工业交换机研华 EKI-25255 口1980980
17机架 / 线缆铝型材 2 m + 线束-13,8003,800
18机械手臂外购标准 3kg 负载800 mm 行程19,8009,800
合计¥48,700

6. IO 模块配置 (IDE 操作流程)

6.1 选择 IO 模块

  1. 工程 → IO 设备向导 → 选 "EtherCAT 主站"
  2. 扫描从站: AM600 (节点 1), SV660N ×3 (节点 2~4, X/Y/Z), SV630N (节点 5, 旋转), 亚德客阀岛 (节点 6)
  3. 工程 → 机器人配置 → 新建 "Robot_Injection" (SCARA 4 轴)
  4. 工程 → 协议配置
    • Euromap 67: 选择 AM600 DI/DO 映射 24 个信号 (VDMA 标准)
    • Euromap 77 OPC UA: 填入注塑机 OPC UA Server 地址 (如 opc.tcp://192.168.1.10:4840)
  5. 工程 → 注塑机驱动 → 选择品牌模板 (Haitian / Chenhsong / Sumitomo), 自动配置读写节点

6.2 IO 地址分配表

模块通道地址方向类型别名Euromap 信号
AM600 DICh0I0.0DIBOOLEM67_ZA1_MoldClosedZA1
AM600 DICh1I0.1DIBOOLEM67_ZA2_MoldOpenZA2
AM600 DICh2I0.2DIBOOLEM67_ZA3_EjectorFwdZA3
AM600 DICh3I0.3DIBOOLEM67_ZA4_EjectorBackZA4
AM600 DICh4I0.4DIBOOLEM67_ZC1_MachineEStopZC1
AM600 DICh8I1.0DIBOOLSEN_VacOK(机械手侧)
AM600 DICh9I1.1DIBOOLSEN_IMLLoaded-
AM600 DICh10I1.2DIBOOLSEN_PartOK-
AM600 DICh11I1.3DIBOOLSEN_ForeignMatter-
AM600 DOCh0Q0.0DOBOOLEM67_ZB1_AllowCloseZB1
AM600 DOCh1Q0.1DOBOOLEM67_ZB3_AllowEjectZB3
AM600 DOCh2Q0.2DOBOOLEM67_ZB4_AllowEjectBackZB4
AM600 DOCh3Q0.3DOBOOLEM67_ZC2_RobotEStopZC2
AM600 DOCh8Q1.0DOBOOLACT_VacPart-
AM600 DOCh9Q1.1DOBOOLACT_VacLabel-
AM600 DOCh10Q1.2DOBOOLACT_IonizerOn-
SV660N_XPDO-AXIS_REFAxisX-
SV660N_YPDO-AXIS_REFAxisY-
SV660N_ZPDO-AXIS_REFAxisZ-
SV630N_RPDO-AXIS_REFAxisRot-

6.3 IO 用途分工

组别用途参与设备
Euromap 67 输入注塑机机械状态 (关/开/顶进/顶退)ZA1/ZA2/ZA3/ZA4/ZC1
Euromap 67 输出机械手权限 (允许关/允许顶进/顶退/急停)ZB1/ZB3/ZB4/ZC2
机械手感知真空确认、标签装载、零件就位、异物SEN_VacOK/IMLLoaded/PartOK/ForeignMatter
机械手执行零件真空、标签真空、静电消除ACT_VacPart/VacLabel/IonizerOn
运动控制X/Y/Z/旋转 四轴AxisX/Y/Z/Rot
可选 EM77新式注塑机工艺参数OPC UA Client (压力/温度/周期数)

6.4 数据绑定到机器人

Darra 把 4 轴绑定为SCARA 机器人 "Robot_Injection", 所有运动指令走机器人接口:

(* 机器人点位定义 (从配方加载) *)
Robot.HomePos := Pose(0, 0, 0, 0);
Robot.IMLStackPos := Pose(CurRecipe.LabelX, CurRecipe.LabelY, CurRecipe.LabelZ, 0);
Robot.IMLInsertPos := Pose(CurRecipe.MoldX, CurRecipe.MoldY, CurRecipe.IMLZ, 0);
Robot.PickPos := Pose(CurRecipe.MoldX, CurRecipe.MoldY, CurRecipe.PickZ, 0);
Robot.DropPos := Pose(CurRecipe.DropX, CurRecipe.DropY, CurRecipe.DropZ,
CurRecipe.DropRot);

(* 带软限位的 3D 插补 *)
Robot.MoveL(Target := Robot.PickPos, Vel := 2500, Acc := 15000);

绑定规则 (在 IDE "机器人配置" 里):

Robot 通道Darra 轴物理对应软限位
J1SV660N 节点 2 (X)横走[-50, MoldBoundary-5] mm
J2SV660N 节点 3 (Y)纵走[0, 500] mm
J3SV660N 节点 4 (Z)升降[-600, 10] mm
J4SV630N 节点 5 (旋转)零件朝向[-180, 180] °

7. 核心数据结构 UDT + DB

// 注塑周期 UDT
TYPE UDT_MoldCycle :
STRUCT
CycleID : UDINT;
MachineID : STRING[16];
MoldID : STRING[16];
LotNo : STRING[32];
CycleStart : DT;
MoldClosedT : DT;
MoldOpenedT : DT;
PartPickedT : DT;
LabelPlacedT : DT;
CycleTime_ms : UDINT;
Success : BOOL;
PartCount : USINT; // 一模几腔
ErrorCode : UINT;
END_STRUCT
END_TYPE

// 注塑机状态 UDT
TYPE UDT_IMMStatus :
STRUCT
Brand : STRING[16];
InjectionPress : REAL; // 注射压力 MPa
MeltTemp : REAL; // 熔体温度 ℃
CycleCount : UDINT;
AlarmCode : UINT;
Connected : BOOL;
END_STRUCT
END_TYPE

// 配方 UDT (模号对应)
TYPE UDT_Recipe :
STRUCT
MoldID : STRING[16];
MachineBrand : STRING[16];
LabelX, LabelY, LabelZ : LREAL; // 标签取放点
MoldX, MoldY : LREAL; // 模腔中心
IMLZ, PickZ : LREAL; // IML/取件 Z 深度
DropX, DropY, DropZ : LREAL; // 后道放置
DropRot : LREAL;
PartCount : USINT;
END_STRUCT
END_TYPE

VAR_GLOBAL
Cur : UDT_MoldCycle;
IMM : UDT_IMMStatus;
CurRecipe : UDT_Recipe;
END_VAR

8. 核心程序代码

8.1 Euromap 67 握手 + IML 主状态机

PROGRAM PRG_IMLMain
VAR
State : INT := 0;
TON_t : TON;
EM67 : FB_Euromap67; (* Darra 内置 *)
Robot : FB_RobotMotion;
END_VAR

EM67(
ZA1 := EM67_ZA1_MoldClosed,
ZA2 := EM67_ZA2_MoldOpen,
ZA3 := EM67_ZA3_EjectorFwd,
ZA4 := EM67_ZA4_EjectorBack,
ZC1 := EM67_ZC1_MachineEStop,
ZB1 => EM67_ZB1_AllowClose,
ZB3 => EM67_ZB3_AllowEject,
ZB4 => EM67_ZB4_AllowEjectBack,
ZC2 => EM67_ZC2_RobotEStop
);

CASE State OF
0: (* 等开模完成 *)
IF EM67.MoldOpen AND NOT EM67.EStop THEN
Cur.CycleID := Cur.CycleID + 1;
Cur.CycleStart := DT#NOW;
Cur.MoldOpenedT := DT#NOW;
Cur.MoldID := CurRecipe.MoldID;
Cur.LotNo := MES.CurrentLot;
State := 1;
END_IF

1: (* IML 取标签 *)
Robot.MoveL(Target := Pose(CurRecipe.LabelX, CurRecipe.LabelY, CurRecipe.LabelZ, 0),
Vel := 2500, Acc := 15000);
IF Robot.Done THEN
ACT_VacLabel := TRUE;
TON_t(IN := TRUE, PT := T#100ms);
IF TON_t.Q AND SEN_IMLLoaded THEN
TON_t(IN := FALSE);
State := 2;
END_IF
END_IF

2: (* 放标签到模腔 *)
Robot.MoveL(Target := Pose(CurRecipe.MoldX, CurRecipe.MoldY, CurRecipe.IMLZ, 0),
Vel := 1500, Acc := 10000);
IF SEN_ForeignMatter THEN
State := 99; (* 异物停机 *)
ELSIF Robot.Done THEN
ACT_VacLabel := FALSE; (* 释放标签 *)
Cur.LabelPlacedT := DT#NOW;
State := 3;
END_IF

3: (* 退出, 允许关模 *)
Robot.MoveL(Target := Robot.HomePos, Vel := 2500, Acc := 15000);
IF Robot.Done THEN
EM67.AllowClose := TRUE; (* ZB1 *)
State := 4;
END_IF

4: (* 等模具关闭 + 注塑 + 顶针进 *)
IF EM67.MoldClosed THEN
Cur.MoldClosedT := DT#NOW;
END_IF
IF EM67.EjectorFwd THEN
State := 5;
END_IF

5: (* 取件: 伸入模腔 *)
Robot.MoveL(Target := Pose(CurRecipe.MoldX, CurRecipe.MoldY, CurRecipe.PickZ, 0),
Vel := 2000, Acc := 15000);
IF SEN_ForeignMatter THEN
State := 99;
ELSIF Robot.Done THEN
ACT_VacPart := TRUE;
TON_t(IN := TRUE, PT := T#150ms);
IF TON_t.Q AND SEN_VacOK THEN
TON_t(IN := FALSE);
Cur.PartPickedT := DT#NOW;
EM67.AllowEjectBack := TRUE; (* ZB4 *)
State := 6;
END_IF
END_IF

6: (* 退出, 放到后道 *)
Robot.MoveL(Target := Pose(CurRecipe.DropX, CurRecipe.DropY, CurRecipe.DropZ,
CurRecipe.DropRot), Vel := 2500, Acc := 15000);
IF Robot.Done THEN
ACT_VacPart := FALSE;
Cur.CycleTime_ms := UDINT(DT#NOW - Cur.CycleStart);
Cur.Success := TRUE;
MES.UploadCycle(Cur);
Robot.MoveL(Target := Robot.HomePos, Vel := 2500, Acc := 15000);
State := 0;
END_IF

99: (* 异物 / 真空失败, 紧急停 *)
EM67.RobotEStop := TRUE;
Robot.Stop();
Alarm(9001, '周期异常停机');
(* 等操作员复位 *)
END_CASE
END_PROGRAM

8.2 多品牌注塑机协议桥接

FUNCTION_BLOCK FB_IMMDriver
VAR_INPUT
Brand : STRING[16]; (* "Haitian" / "Chenhsong" / "Sumitomo" / "Engel" / "Yizumi" *)
Enable : BOOL;
END_VAR
VAR_OUTPUT
Status : UDT_IMMStatus;
Connected : BOOL;
END_VAR
VAR
Modbus_Haitian : FB_Haitian_Modbus;
OPCUA_Chenhsong : FB_Chenhsong_OPCUA;
TCP_Sumitomo : FB_Sumitomo_TCP;
OPCUA_Engel : FB_Engel_EM77;
Modbus_Yizumi : FB_Yizumi_Modbus;
END_VAR

CASE Brand OF
'Haitian':
Modbus_Haitian(Enable := Enable);
Status := Modbus_Haitian.Status;
'Chenhsong':
OPCUA_Chenhsong(Enable := Enable);
Status := OPCUA_Chenhsong.Status;
'Sumitomo':
TCP_Sumitomo(Enable := Enable);
Status := TCP_Sumitomo.Status;
'Engel':
OPCUA_Engel(Enable := Enable);
Status := OPCUA_Engel.Status;
'Yizumi':
Modbus_Yizumi(Enable := Enable);
Status := Modbus_Yizumi.Status;
END_CASE
Connected := Status.Connected;
END_FUNCTION_BLOCK

8.3 机械手 3D 插补 + 软限位

(* 三轴直线插补 - Darra 内置工艺对象 *)
MC_MoveLinearAbsolute3D(
AxisX := AxisX,
AxisY := AxisY,
AxisZ := AxisZ,
Position := Point3D(CurRecipe.MoldX, CurRecipe.MoldY, CurRecipe.PickZ),
Velocity := 2500.0,
Acceleration := 15000.0,
Jerk := 80000.0
);

(* 动态软限位: 模腔边界距离根据模号变化 *)
MC_SoftLimit(
Axis := AxisX,
Min := -50.0,
Max := CurRecipe.MoldBoundary_X - 5.0
);

8.4 Euromap 77 OPC UA 读取工艺参数 (可选)

(* 新式注塑机支持 EM77, 可读更多工艺数据 *)
IF UseEuromap77 THEN
IMM.InjectionPress := OPCUA.Read('ns=2;s=IMM.InjPress');
IMM.MeltTemp := OPCUA.Read('ns=2;s=IMM.MeltTemp');
IMM.CycleCount := OPCUA.Read('ns=2;s=IMM.CycleCount');
(* MES 数据更丰富, 可做 SPC 趋势分析 *)
END_IF

9. 运行与调试

9.1 上电启动流程

  1. OB100 初始化: 伺服使能 → 机械手回零 (Z 先抬起 → X/Y 回零)
  2. EM67 信号自检: ZA1~ZA4 初始状态读取, ZC1 急停链确认
  3. FB_IMMDriver 根据配方的 MachineBrand 启动对应协议驱动
  4. HMI 显示 "准备就绪", 等操作员按 "启动"

9.2 调试要点

环节调试方法
EM67 信号延迟示波器同时观察机台 ZA2 和 AM600 I0.1, 应 < 10ms
机械手进入模腔精度试模时关激光闭环, 慢速进入, 确认不碰模
IML 标签吸附标签太薄 → 减真空度; 标签偏 → 调吸盘对位
异物检测灵敏度UB800 灵敏度电位器, 放 5mm 金属片可检出
多品牌切换HMI "机型选择" → 配方自动切换协议 + 轴参数
周期节拍HMI 显示 "上周期/均值/最短/最长", 找瓶颈
断网恢复MES 上传队列持久化 SQLite, 恢复后自动补传

9.3 HMI 画面 (6 页)

  1. 主界面: EM67 信号状态灯 + 机械手轨迹图 + 产量计数
  2. 时序示波器: 1s 窗口, 显示 ZA/ZB 信号波形 (调试握手死锁用)
  3. 配方: 模号切换 + 点位微调 + 真空/延时参数
  4. 报警: 最近 200 条报警, 按严重度过滤
  5. MES: 最近 50 条上传记录 + 离线队列大小
  6. 远程维护: DarraSync 状态 + 厂家接入日志

9.4 日志位置

日志路径
PLC 日志Darra IDE → 日志窗口 (IMLMain / Euromap67 / IMMDriver)
EM67 时序录波D:/DarraPLC/logs/em67_waveform_*.csv
MES 队列D:/DarraPLC/queue/mes_mold.db
DarraCloud 40 站Cloud 控制台 "机台监控" 页

10. Darra 功能对照表

需求Darra 对应功能说明
Euromap 67 硬线握手FB_Euromap67 内置 FB即拖即用
Euromap 77 OPC UA内置 OPC UA Client免 TF6100 授权
海天 ModbusFB_Haitian_Modbus预置驱动
震雄 OPC UAFB_Chenhsong_OPCUA预置驱动
住友 TCPFB_Sumitomo_TCP预置驱动
恩格尔 EM77FB_Engel_EM77预置驱动
伊之密 ModbusFB_Yizumi_Modbus预置驱动
机械手 3D 插补MC_MoveLinearAbsolute3D + 软限位工艺对象
IML 时序库FB_IMLSequence10 状态模板
模板化工程配方 + 模板克隆 + Git 版本化IDE 内置
MES 对接OPC UA / REST + SQLite 离线内置
DarraCloud40 台集中监控云侧功能
配方管理JSON + 在线切换内置
远程维护DarraSync 加密隧道厂家远程调机

11. 项目总结

11.1 交付成果

  • 单模周期: 从 32 s 降至 28 s (IML + 取件合并后), 提产 14%
  • 握手延迟: EM67 硬线实测 4~6 ms (目标 ≤ 10 ms)
  • 40 站改造周期: 5.5 个月 (同模板复制, 新增站 2~3 天)
  • MTBF: 从 45 小时提升到 240 小时
  • 备件收敛: 28 种混杂备件 → 3 种 (SV660N / AM600 / Darra 工控机)

11.2 关键技术点

  1. EM67 + EM77 双通道: 老式机台用硬线, 新式机台用 OPC UA, 同模板支持
  2. 多品牌驱动库: Haitian/Chenhsong/Sumitomo/Engel/Yizumi 预置, FB_IMMDriver 根据 Brand 字段自动切换
  3. IML 10 状态时序库: 覆盖 "取标 → 放标 → 允许关模 → 等注塑 → 取件 → 允许顶退 → 放件"
  4. 机械手 3D 插补: MC_MoveLinearAbsolute3D + 动态软限位, 避免撞模
  5. 模板化工程: 40 站同模板, 新机型只改配方 + 协议选择

11.3 后续扩展方向

  • 注塑 + 喷涂联线: 注塑后直接机器人喷涂, 省搬运
  • DarraCloud 集团版: 3 个工厂 120 台注塑机集中监控
  • AI 工艺助手: 基于历史模号参数推荐新模开模首模参数

Darra 平台的 Euromap 67 / 77 内置 + 多品牌驱动 + 统一模板化工程, 让注塑周边从 "每台一个样" 变成 "40 台一个样", 这是传统 PLC 无法企及的标准化红利。