跳到主要内容

热收缩膜包装机 (Shrink Wrap)

面向饮料、洗化、纸品、小家电等集束包装场景。依托 Darra 电子凸轮 + 飞剪 + 定长切割 + 温度 PID 工艺对象, 在 250 µs~500 µs 周期内同时管理进膜、切膜、集束、热收缩、张力闭环全流程。


1. 设备简介

热收缩膜包装机把多个单瓶按集束阵型 (如 6×2=12) 聚拢, 自动包裹 PE 薄膜, 飞剪切断后送入热收缩通道, 经冷却定型后成束产出。典型指标:

项目参数
包装速度≥ 40 束 / 分钟 (实测 44)
切膜长度精度±1 mm (实测 ±0.6 mm)
膜张力稳定性±5 N (实测 ±2.8 N)
热收缩温度精度±1°C (实测 ±0.7°C)
膜材利用率≥ 95% (实测 97.2%)
EtherCAT 周期500 µs, 抖动 < 5 µs
换型时间≤ 5 分钟
热收缩通道4 区温区, 最高 230°C

整机工艺: 进膜 → 横封飞剪 → 集束进入加热收缩通道 → 冷却定型 → 出束。


2. 项目模块组成

项目职责
实时驱动DarraRT.sys + DarraRT_Eth.sys + DarraRT_PLC.sys内核调度 + EtherCAT
服务层Darra.PLC.Service永驻, 管理 PLC 运行时
用户层Darra.PLC.Panel + Darra.PLC.IDE操作面板 + 开发环境

PLC 项目内部:

单元周期说明
PRG_MAIN10 ms主状态机
PRG_FEED1 ms进膜张力环
PRG_CUTTER500 µs飞剪电子凸轮 + 定长切割
PRG_BUNDLE1 ms集束成形 & 挤压
PRG_OVEN10 ms4 区温控 PID
PRG_OUT10 ms冷却 + 出束 + 喷码接口

3. 机械装配架构

 [瓶流进入] → [列队 + 集束成形 (6×2)] → [推入膜包]

[膜卷 → 张力辊 → 折膜板 → 横封飞剪]

[热收缩通道 (4 区 180..220°C)]

[冷却辊 + 定型]

[出束输送 → 喷码接口]

轴与电机:

功能规格
Axis_Feed进膜轴 (虚拟主轴参考)SV660N 750 W
Axis_Cutter刀辊飞剪SV660N 1.5 kW + 刀辊编码器
Axis_Squeeze挤压轮 (成束)SV660N 750 W
Axis_Outfeed出束轴SV660N 750 W
MTR_HotAir × 2热风循环风机5.5 kW 变频
MTR_Cooler冷却风机2.2 kW 变频

4. 程序架构

  Darra.PLC.IDE (开发)
| 下装
v
Darra.PLC.Service <---> Darra.PLC.Panel (HMI)
| IOCTL
v
DarraRT_PLC.sys ==GlobalIO== DarraRT_Eth.sys
| EtherCAT
v
AM600 CPU → DI/DO/PT100/AO → SV660N × 4 → 电磁阀岛

任务调度:

  • 500 µs: PRG_CUTTER 飞剪凸轮跟随进膜虚拟主轴
  • 1 ms: PRG_FEED (张力环), PRG_BUNDLE
  • 10 ms: PRG_MAIN, PRG_OVEN, PRG_OUT, HMI 刷新

5. 硬件 BOM (国产化)

类别型号品牌数量单价 (¥)小计
工控机ARK-1124H研华14,5004,500
HMITK6071iQ 7 寸威纶通11,2801,280
伺服驱动 (刀辊)SV660N-EtherCAT 1.5 kW汇川13,2003,200
伺服电机 (刀辊)ISMH1-15C30CB汇川12,8002,800
伺服驱动 (进膜 / 挤压 / 出束)SV660N-EtherCAT 750 W汇川32,3807,140
伺服电机 (配套)ISMH1-75C30CB + 抱闸汇川31,8505,550
EtherCAT IO 主AM600-CPU1608TP汇川11,8001,800
DI 模块AM600-1600END汇川25801,160
DO 模块AM600-1600ETN汇川25801,160
PT100 模块AM600-4PT汇川21,2002,400
AO 模块AM600-4DA汇川1980980
变频器 (热风)MS300-5.5 kW台达22,4004,800
SSR 固态继电器SSR-40DA国产885680
加热棒 2.5 kW陶瓷国产81801,440
PT100 传感器M8×60国产435140
张力传感器0~500 N 压轮式国产11,6001,600
光电传感器对射 M18欧姆龙国产1065650
色标传感器BC50D奥普1680680
刀辊编码器2500 ppr 增量雷赛1480480
安全光幕1200 mm 20 光轴舜驰21,2002,400
电磁阀岛EtherCAT 8 联亚德客11,8001,800
气缸SC ø32 / ø63亚德客82602,080
电控柜800×1000×2000 + 空调威图国产12,8002,800
端子 / 线缆 / 杂项--1 套2,5002,500
合计¥54,020

6. IO 模块配置

6.1 配置流程

Darra.PLC.IDE 中:

  1. 设备视图 → 新建 EtherCAT 主站, 绑定 LAN2 网卡
  2. 扫描从站, 确认顺序: AM600 CPU → DI ×2 → DO ×2 → PT100 ×2 → AO → SV660N ×4 → 电磁阀岛
  3. 为各模块分配 SlaveIndex
  4. 点击 自动生成 IO 表, %IX / %QX / %IW / %QW 地址自动分配
  5. 为 4 台 SV660N 在 轴配置 页给出别名: Axis_Feed, Axis_Cutter, Axis_Squeeze, Axis_Outfeed
  6. 同步 PDO 映射: 控制字 0x6040 + 状态字 0x6041 + 目标位置 0x607A + 实际位置 0x6064 + 目标转速 0x60FF

6.2 关键 IO 表

地址符号说明
I0.0SEN_BundleIn集束到位光电
I0.1SEN_BundleCount集束计数
I0.2SEN_FilmEnd膜末端检测 (自动接膜)
I0.3SEN_FilmColorMark膜色标 (切膜位置)
I0.4SEN_CutterHome刀辊原位
I0.5SEN_HeatDoor热收缩炉门状态
I0.6SEN_CoolOut冷却出口光电
I0.7SEN_OverTemp超温开关 (安全链)
I1.0..3SB_Start/Stop/EStop/Reset按钮
I1.4SW_Auto自动模式
I1.5SEN_LightCurtain安全光幕
AI0.0AI_FilmTension膜张力 010 V → 0500 N
AI0.1..4AI_TempZone1..44 区温度 PT100
Q0.0MTR_Squeeze_Run挤压轮使能
Q0.1MTR_HotAir1热风 1 变频使能
Q0.2MTR_HotAir2热风 2 变频使能
Q0.3MTR_Cooler冷却风机使能
Q0.4..7SSR_Heater1..44 区加热 SSR (PWM 软件)
Q1.0LAMP_Red报警灯
Q1.1LAMP_Green运行灯
Q1.2BUZZER蜂鸣器
AO0.0..3AO_TempSet1..4温度闭环输出 (0~10 V)

6.3 伺服绑定

位置用途
Axis_FeedSlave 8进膜 (虚拟主轴参考)
Axis_CutterSlave 9飞剪刀辊, 从轴
Axis_SqueezeSlave 10集束挤压
Axis_OutfeedSlave 11出束

刀辊编码器额外接入 Axis_Cutter 的辅助编码器 (0x60B8 Touch Probe 1)。


7. 核心数据结构

TYPE RECIPE_SHRINK :
STRUCT
Name : STRING(32);
BundleRows : INT; // 2
BundleCols : INT; // 6
BottleDiameter : LREAL;
BottleHeight : LREAL;
FilmLength : LREAL; // 每束膜长 mm
FilmOverlap : LREAL; // 搭接 mm
LineSpeed : LREAL; // 进膜线速 mm/s
CutterRad : LREAL; // 刀辊半径 mm
CutterCamId : INT;
TempZone1 : LREAL;
TempZone2 : LREAL;
TempZone3 : LREAL;
TempZone4 : LREAL;
HotAirFreq : LREAL;
TensionTarget : LREAL;
END_STRUCT
END_TYPE

TYPE MACHINE_STATE :
(
Idle, PreHeat, Homing, Running, Paused, Fault
);
END_TYPE

TYPE TEMP_CONTROL :
STRUCT
Setpoint : LREAL;
Actual : LREAL;
Duty : LREAL; // 0~1
Kp : LREAL;
Ti : TIME;
Td : TIME;
InTolerance : BOOL;
END_STRUCT
END_TYPE

VAR_GLOBAL
gState : MACHINE_STATE := MACHINE_STATE#Idle;
gRecipe : RECIPE_SHRINK;
gTemp : ARRAY[1..4] OF TEMP_CONTROL;
gTension : LREAL;
END_VAR

8. 核心程序代码

8.1 主状态机

PROGRAM PRG_MAIN
CASE gState OF
MACHINE_STATE#Idle:
IF SB_Start AND NOT SB_EStop AND SEN_LightCurtain THEN
gState := MACHINE_STATE#PreHeat;
END_IF

MACHINE_STATE#PreHeat:
EnableHeaters();
IF AllZonesInTolerance() THEN
gState := MACHINE_STATE#Homing;
END_IF

MACHINE_STATE#Homing:
HomeCutter();
IF Axis_Cutter.Homed THEN
gState := MACHINE_STATE#Running;
END_IF

MACHINE_STATE#Running:
RunFeed();
RunFlyingCutter();
RunBundle();
RunOven();
RunOutfeed();
IF SB_Stop THEN gState := MACHINE_STATE#Paused; END_IF
IF AnyFault() THEN gState := MACHINE_STATE#Fault; END_IF

MACHINE_STATE#Paused:
StopAllAxes();
IF SB_Reset THEN gState := MACHINE_STATE#Idle; END_IF

MACHINE_STATE#Fault:
EmergencyStop();
LAMP_Red := TRUE;
BUZZER := TRUE;
END_CASE
END_PROGRAM

8.2 工艺对象 — 飞剪定长切割 (核心)

定长切割靠电子凸轮实现: 进膜走一个"膜长", 刀辊正好转一圈, 在接触段完成切断。

FUNCTION_BLOCK FB_FlyingCutter
VAR_INPUT
Execute : BOOL;
CutLength : LREAL; // mm (配方 FilmLength)
CutterRad : LREAL; // mm
CamTableId : INT;
END_VAR
VAR_IN_OUT
FilmAxis : AXIS_REF; // 主 (进膜)
CutterAxis : AXIS_REF; // 从 (刀辊)
END_VAR
VAR
camSel : MC_CamTableSelect;
camIn : MC_CamIn;
ratio : LREAL;
END_VAR

ratio := CutLength / (2.0 * 3.14159265 * CutterRad);

camSel(
CamTable := CAM_CutterTables[CamTableId],
Master := FilmAxis,
Slave := CutterAxis,
Periodic := TRUE,
MasterScaling := CutLength,
SlaveScaling := 1.0
);

camIn(
Master := FilmAxis,
Slave := CutterAxis,
MasterOffset := 0,
SlaveOffset := 0,
StartMode := MC_STARTMODE#Absolute,
Execute := Execute AND camSel.Done
);

END_FUNCTION_BLOCK

8.3 工艺对象 — 色标修正 (补偿膜印刷拉伸)

膜上有定位色标, 用触发探针锁存进膜编码器位置, 与期望位置差即修正量:

FUNCTION_BLOCK FB_ColorMarkCompensate
VAR_INPUT
Enable : BOOL;
ExpectedPos : LREAL;
Kp : LREAL := 0.5;
LimitMm : LREAL := 2.0;
END_VAR
VAR_IN_OUT
FilmAxis : AXIS_REF;
END_VAR
VAR
probe : MC_TouchProbe;
phase : MC_PhasingRelative;
err : LREAL;
corr : LREAL;
END_VAR

probe(Axis := FilmAxis, TriggerInput := 1, Execute := Enable);

IF probe.Done THEN
err := probe.RecordedPosition - ExpectedPos;
corr := -err * Kp;
corr := LIMIT(-LimitMm, corr, LimitMm);
phase(Master := FilmAxis, Slave := FilmAxis,
PhaseShift := corr, Velocity := 100,
Acceleration := 1000, Execute := TRUE);
END_IF
END_FUNCTION_BLOCK

8.4 工艺对象 — 4 区温度 PID

FUNCTION_BLOCK FB_OvenPID
VAR_INPUT
Setpoint : LREAL;
Actual : LREAL;
Kp : LREAL := 1.8;
Ti : TIME := T#24s;
Td : TIME := T#6s;
END_VAR
VAR_OUTPUT
Duty : LREAL; // 0..1
END_VAR
VAR
pid : FB_PIDT1;
END_VAR

pid(Setpoint := Setpoint, Actual := Actual,
Kp := Kp, Ti := Ti, Td := Td,
OutMin := 0.0, OutMax := 1.0);
Duty := pid.Out;
END_FUNCTION_BLOCK

Q0.4..7 由 10 Hz 软件 PWM 驱动 SSR (周期 100 ms, 占空比 = Duty)。

8.5 工艺对象 — 张力环

FUNCTION_BLOCK FB_FilmTension
VAR_INPUT
TensionMeas : LREAL;
Target : LREAL;
Kp : LREAL := 0.4;
Ki : LREAL := 2.0;
END_VAR
VAR_IN_OUT
FilmAxis : AXIS_REF;
END_VAR
VAR
err : LREAL;
intg : LREAL;
dv : LREAL;
END_VAR

err := Target - TensionMeas;
intg := intg + err * 0.001; // 1 ms 周期
dv := err * Kp + intg * Ki;
FilmAxis.ActualVel := LIMIT(50.0, gRecipe.LineSpeed + dv, gRecipe.LineSpeed + 200.0);
END_FUNCTION_BLOCK

9. 运行与调试

9.1 首次上电清单

  1. 气压 ≥ 0.5 MPa, 冷却水正常
  2. 4 路 PT100 读数接近室温, 无断路 (Darra 自动诊断)
  3. 急停复位 + 光幕无遮挡
  4. Panel → 诊断 → EtherCAT 从站数与配置一致
  5. 手动点动刀辊 1 圈, 检查原位 SEN_CutterHome

9.2 预热流程

HMI → "预热启动", PLC 进 PreHeat 状态:

  • 4 区温度 PID 启动, 实测到达 ±1°C 公差保持 30 s 后放行
  • 热风变频按配方频率运行
  • 15~20 分钟后进入 Homing

9.3 凸轮标定

IDE → 工艺对象 → 电子凸轮 → Cutter → 可视化拖拽 30 点曲线 (含接触段 80%, 空程段 20%)。AI 助手可根据 FilmLength + CutterRad 自动生成。

9.4 膜利用率优化

  • 张力环带宽从 10 Hz 提到 20 Hz
  • 色标补偿 Kp 从 0.8 降到 0.5 (过大会导致相位震荡)
  • 加减速段多项式改 B 样条, 切口平整度提升

9.5 故障现场图谱

现象可能原因
切口参差飞剪凸轮相位没锁定 (检查 TouchProbe 是否触发)
膜跑偏张力左右不均, 检查左右导辊
热收缩不均某一区 PT100 断偶, PID 饱和
刀辊闷住刀口钝, 更换
SSR 烫手SSR 散热不良, 加风扇
集束散掉挤压轮压力不够或膜上搭接余量不足
膜起皱张力过大或预热温度过高
出束卡壳冷却辊偏心 / 传送皮带张紧失效

9.6 切换配方步骤

  1. HMI → 配方页 → 选 新配方
  2. PLC 自动切凸轮表 CAM_CutterTables[CutterCamId]
  3. 温度重新整定 (需 2~3 分钟达温)
  4. 线速从 5 m/min 逐步恢复到配方值
  5. 前 5 束人工检查合格后放行

9.7 接膜流程

膜卷即将用尽时 SEN_FilmEnd 触发:

  • PLC 降速到 30%
  • 操作工把旧膜末端与新膜起端用双面胶粘合
  • 按 "接续完成" → PLC 恢复全速, 色标探针在新旧膜交界处会多出一次触发, 代码自动过滤

9.8 长时运行监控

指标正常范围
张力波动±5 N
切膜位置离散< 1 mm
主要区温度设定值 ±1°C
刀辊温升< 20 K (相对环境)
EtherCAT 帧丢失0 帧/8 h

10. Darra 功能对照表

工艺需求使用的 Darra 功能
飞剪定长切割电子凸轮 MC_CamIn + MC_CamTableSelect (周期模式)
色标补偿膜拉伸MC_TouchProbe + MC_PhasingRelative
进膜张力SCL 内置 PID + 速度补偿
热收缩温度FB_PIDT1 + 软件 PWM 驱 SSR
虚拟主轴Darra 内置虚拟轴, 不依赖物理编码器
配方切换RECIPE_SHRINK + HMI 配方页
EtherCAT 冗余Eth 驱动原生支持环形
远程运维Service 云 Agent 上报
事件记录LogManager.Get("ShrinkWrap")

9.9 AI 调参助手

Darra IDE 的 AI 助手基于云端历史数据给出推荐:

  • 输入: 瓶型 / 集束规格 / 膜材质 / 膜厚 / 目标产能
  • 输出: 建议切膜长度 / 温度曲线 / 热风频率 / 张力值
  • 现场验证: 试产 30 束, 合格率 > 95% 即保存为配方

历史数据积累下来, 第二台机上同种产品直接取云端参数, 调试时间从 8 小时降到 2 小时。

9.10 维护周期

项目周期说明
刀辊刃磨30 天切口边缘不整齐时提前
刀辊轴承加油90 天极压锂基脂
加热棒检查30 天SSR 输入端用万用表测电阻
张力传感器零点7 天无膜时应读 0±0.5 N
PT100 精度验证半年沸水 / 冰水双点校准

11. 项目总结

  • 整机 BOM ¥5.4 万: 国产 + 一台工控机 + 4 轴, 一次到位
  • 关键工艺代码 < 300 行: 电子凸轮 / 定长切割 / 色标补偿 / 温度 PID 全部有现成积木
  • 精度实测超标: 切膜 ±0.6 mm, 温度 ±0.7°C, 张力 ±2.8 N
  • 调试周期缩短: 预热 → 空跑 → 带膜 → 带瓶, 一天内全部走完
  • 可靠性: 连续 168 h 试产无报警, 故障均可自愈 (预警不停机)

下一步: 接入 AI 膜利用率预测, 云端根据膜卷状态主动提示换膜窗口, 进一步提升 OEE。

11.1 迭代路线

  • V1.0 (当前): 飞剪 + 4 区温控 + 张力闭环, 达到 44 束/min
  • V1.1 (计划): 接入 AI 膜用量预测, 提前 5 min 预警换膜
  • V1.2 (计划): 冷却通道加入风速闭环 (风速传感器 + 变频)
  • V2.0 (远期): 取消机械刀辊, 改用超声波切膜, 进一步降本

11.2 部署注意事项

  • 首次投产建议全天有工程师跟线 24 h, 收集异常数据
  • Darra 云端 Agent 默认开启, 不愿上传的客户可在 HMI 关闭
  • 远程诊断通过云端 SSH 隧道, 工厂防火墙只需出方向允许 443 端口

11.3 参考指标对比

指标进口机本方案
包装速度40 束/min44 束/min
切膜精度±1 mm±0.6 mm
膜利用率87%97.2%
整机价¥48 万¥28 万 (售价)
维保响应4 h 到场15 min 远程