跳到主要内容

卷材收放卷张力控制 — FB_Winder 工艺对象

一句话: 印刷、涂布、复合、锂电极片、铝箔铜箔连续卷材产线的通用收放卷模块。Darra 用 一个 FB_Winder 功能块 替代传统"独立张力控制盒 + PID 手工编写 + 卷径计算手写"的组合, 工艺员填 13 个参数就能上线。


1. 设备简介

收放卷 (Unwinder / Rewinder) 是所有连续卷材产线的 起点和终点:

  • 放卷 (Unwinder): 从母卷上把材料拉出, 用磁粉制动器或能量反馈伺服输出 制动力 保持张力恒定;
  • 收卷 (Rewinder): 把牵引段过来的材料按目标张力和节距缠到卷芯上, 用伺服转矩模式输出 驱动力矩;
  • 关键难点是 "卷径在线变化" 使转矩与张力的关系非线性, 需要 卷径计算 + 锥度张力 + 摆辊反馈 三件套耦合;
  • 低速启动 时传感器几乎没有信号, 容易震荡, 需要 摆辊主导模式;
  • 高速稳态 时卷径变化平滑, 前馈主导。

本案例是深圳某锂电设备厂的独立收放卷模块, 年订单 200+ 台, 配套电芯涂布机。单机覆盖 8 种材料:

1.1 材料矩阵

材料厚度空卷径满卷径起张锥度速度
BOPP 膜20 µm76 mm800 mm80 N/m50%500 m/min
PET 膜12 µm76 mm600 mm120 N/m40%400 m/min
锂电正极片180 µm152 mm700 mm200 N/m70%80 m/min
锂电负极片150 µm152 mm700 mm180 N/m70%80 m/min
铝箔20 µm152 mm600 mm30 N/m30%300 m/min
铜箔8 µm152 mm500 mm25 N/m30%250 m/min
标签纸80 g/m²76 mm500 mm150 N/m60%200 m/min
无纺布25 g/m²76 mm1200 mm60 N/m50%350 m/min

1.2 关键工艺指标

指标要求
最大线速度600 m/min
张力控制范围3~300 N
张力精度(稳态)±1%
卷径比10:1
卷径计算精度±0.3 mm
控制周期1 ms
低速启动张力波动≤ ±5%
换卷切换时间< 2 s

2. 项目模块组成

模块功能Darra 组件
工艺对象收卷卷绕卷径 + 锥度 + 摆辊 + 张力前馈 + 转矩外环FB_Winder
工艺对象放卷制动磁粉电流闭环 + 卷径前馈FB_Brake
工艺对象飞剪换卷喷胶 + 夹紧 + 剪切FB_FlyShear
工艺对象线速度主轴牵引斜坡FB_Ramp
功能模块空辊归零HMI 按钮 + 2 s 采样 + RETAINPRG_Tare
功能模块低速/高速模式切换摆辊主导 vs 前馈主导FB_Winder 内置
功能模块材料辨识AI 按厚度 / 响应特征自动加载配方FB_AI_Predict
数据模块辊 UDT(放/收)卷径/张力/锥度TYPE_ROLL
数据模块配方 UDT材料/厚度/张力/锥度TYPE_RECIPE

2.1 扫描周期

程序周期说明
PRG_Main10 ms安全 / 状态机 / HMI
PRG_Rewinder1 msFB_Winder
PRG_Unwinder1 msFB_Brake
PRG_FlyShear1 ms换卷时序
PRG_Tare100 ms空辊归零
PRG_AI1 s材料辨识 / PID 自整定

3. 机械装配架构

      放卷轴(气胀 3")                  收卷轴(气胀 3")
┌────────────┐ ┌────────────┐
│ 磁粉制动 │ │ 伺服扭矩 │
│ ZKB-10AN │ │ 7.5 kW │
└─────┬──────┘ └─────┬──────┘
│ │
▼ ▲
┌─────────────┐ ┌─────────────┐
│ 张力称重辊 │ │ 张力称重辊 │
│ (LM-300N) │ │ (LM-300N) │
└─────┬───────┘ └─────┬───────┘
│ │
▼ ▲
┌─────────────┐ ┌─────────────┐
│ 摆辊(+配重)│ │ 摆辊(+配重)│
│ SSI 17 bit │ │ SSI 17 bit │
└─────┬───────┘ └─────┬───────┘
│ │
└────────────┬─────────────────────┘

┌─────▼─────┐
│ 牵引主轴 │
│ 5.5 kW │
└───────────┘


(下游工艺)

3.1 机械关键部件

  • 气涨轴(上海晟铭, 3 英寸): 气压 0.6 MPa 卡紧卷芯, 放气后 2 s 内抽出旧卷;
  • 磁粉制动器(三菱 ZKB-10AN): 最大扭矩 100 N·m, 0~24 V DC 控制线性度 ±2%;
  • 张力称重辊(南京澳强 LM-300N): 两侧各一个传感器, 合成法向力;
  • 摆辊: 配重可调, 气缸辅助推力 0.3 MPa, 位置由 SSI 绝对值编码器 17 bit 读;
  • 喷胶装置: 电磁阀 + 热熔胶枪, 换卷前 200 ms 提前启动;
  • 切刀: 气缸 + 刀片, 80 ms 延迟保证换向完成。

4. 程序架构

PRG_Main (10 ms)
├── 安全联锁 / 状态机 IDLE → STARTING → RUNNING → SWAPPING → STOPPING
└── 读 HMI 按钮: START / STOP / TARE / RECIPE_LOAD

PRG_Rewinder (1 ms) —— 收卷核心
└── FB_Winder
├── 输入: LineSpeed / TensionFb / DancerPos / Omega
├── 配置: CoreDia / FullDia / StartTension / Taper / Thickness / Inertia
├── 模式切换: LowSpeedThreshold_ms = 0.08
├── PID: Kp / Ti / Td
└── 输出: TorqueCmd / DiaCalc / TensionCalc

PRG_Unwinder (1 ms) —— 放卷核心
└── FB_Brake
├── 输入: TensionSP / DiaCalc / DancerPos
└── 输出: CurrentOut_V → AQ → 驱动器 → 磁粉制动器

PRG_FlyShear (1 ms) —— 换卷
└── FB_FlyShear
├── Trigger: Weight 到预设
├── GluePreFireMs = 200
├── CutDelayMs = 80
└── 输出: GlueAct / CutAct / ClampNew

PRG_Tare (100 ms) —— 空辊归零
└── TARE_REQ + LineSpeed ≈ 0 → 2 s 均值 → RETAIN 保存零点

PRG_AI (1 s) —— 材料辨识与自整定
├── FB_AI_Predict('MaterialID') → 自动 LoadRecipe
└── FB_AI_Predict('TensionTune') → 建议 Kp / Ti / Td

5. 硬件 BOM

设备型号数量单价(¥)小计(¥)
工控机研华 IPC-510 + i5-12400 / 16 GB / 512 GB19 5009 500
牵引伺服汇川 SV660N-5.5KW + ISMH317 0007 000
收卷伺服汇川 SV660N-7.5KW(转矩/速度双模)18 5008 500
放卷磁粉制动器三菱 ZKB-10AN 100 N·m15 5005 500
磁粉制动驱动器三菱 ZKB-PS-10A 0~24 V DC11 8001 800
EtherCAT 耦合器 + IO汇川 AM6001 组3 5003 500
张力传感器南京澳强 LM-300N 称重辊23 0006 000
摆辊位置传感器禹衡 17 位绝对值 SSI21 5003 000
测径仪(可选)东莞思锐 SR-COIL 超声 ±0.5 mm26 50013 000
纠偏控制器(选配)汇川 EPC-200 光电纠偏13 8003 800
对射光电欧姆龙 E3Z2350700
气动元件(压臂 / 切刀)SMC / 费斯通1 组2 5002 500
HMI威纶通 cMT2108XH 10.1"14 5004 500
工业交换机汇川 非网管 5 口1800800
安全继电器欧姆龙 G9SX11 8001 800
硬件合计71 900
Darra 授权(永久 4 核)PLC + Motion + HMI 一体130 00030 000
总计101 900

6. IO 模块配置

6.1 选模块

汇川 AM600-ECAT 单柜配置:

槽位型号通道用途
0AM600-ECAT耦合器
1AM600-16DX16 DI主令 / 光电 / 满空检测
2AM600-16DYT16 DO压臂 / 切刀 / 喷胶 / 指示
3AM600-4AI-V4 路 0~10 V2 张力 + 备用
4AM600-4AI-I4 路 4~20 mA2 摆辊(备用 AI 接入)
5AM600-2AO-V2 路 0~10 V磁粉电流控制 + 备用
6AM600-2ENC-SSI2 路 SSI 17 bit2 摆辊绝对值

6.2 地址映射

地址名称说明
I0.0START启动
I0.1STOP停止
I0.2ESTOP急停
I0.3UW_FULL放卷满卷到位
I0.4RW_FULL收卷满卷到位
I0.5UW_EMPTY放卷空盘
I0.6RW_EMPTY收卷空盘
I0.7BREAK_DET断料光电
I1.0EPC_READY纠偏就绪
I1.1MODE_AUTO模式切换
I1.2TARE_REQ空辊归零请求
Q0.0RUN_LAMP运行指示
Q0.1UW_CLAMP放卷压臂
Q0.2RW_CLAMP收卷压臂
Q0.3CUT_ACT切刀
Q0.4GLUE_ACT喷胶
Q0.5BUZZER蜂鸣
AI0TEN_UW放卷张力
AI1TEN_RW收卷张力
AI2DANCER_UW_AI摆辊备用模拟量
AI3DANCER_RW_AI摆辊备用模拟量
ENC0DANCER_UW_SSI放卷摆辊主
ENC1DANCER_RW_SSI收卷摆辊主
AQ0BRAKE_CURR磁粉电流 010 V → 驱动器 → 024 V DC

6.3 分工与绑定

  • SSI 摆辊位置 是核心反馈, 不建议走 AI 通道(4~20 mA 有滤波延迟 20 ms);
  • AI 张力 通过 IO 向导配 两点标定(零/满量程), 自动生成线性公式;
  • AQ 磁粉电流 配 010 V → 0100% 工程量, SCL 里直接给百分比;
  • 变频器 / 伺服 通过 EtherCAT CiA402 直连, 不占 AI/AO。

7. 核心数据结构

TYPE TYPE_ROLL :
STRUCT
Id : INT;
Role : INT; (* 1=放卷 2=收卷 *)
CoreDia_mm : REAL;
FullDia_mm : REAL;
CurrentDia_mm : REAL;
Thickness_um : REAL;
StartTension_N : REAL;
TaperFactor : REAL;
TargetTension_N : REAL;
ActualTension_N : REAL;
DancerSP_pct : REAL; (* 摆辊目标位置 50% *)
DancerPos_pct : REAL; (* 摆辊实际位置 *)
Omega_rpm : REAL;
Weight_kg : REAL;
LengthRun_m : REAL;
END_STRUCT
END_TYPE

TYPE TYPE_RECIPE :
STRUCT
Id : INT;
Material : STRING[16];
Thickness_um : REAL;
LineSpeed_mpmin : REAL;
StartTension_N : REAL;
TaperFactor : REAL;
DancerSP_pct : REAL;
BrakeMaxCurr_A : REAL;
ToleranceTens_pct : REAL;
FullWeight_kg : REAL;
END_STRUCT
END_TYPE

VAR_GLOBAL
Rolls : ARRAY[1..2] OF TYPE_ROLL; (* [1]=放卷 [2]=收卷 *)
Recipe : TYPE_RECIPE;
Recipes : ARRAY[1..16] OF TYPE_RECIPE;
State : INT; (* 0=IDLE 1=STARTING 2=RUNNING 3=SWAPPING *)

(* RETAIN 零点 *)
END_VAR

VAR_GLOBAL RETAIN
tenZero_UW : REAL;
tenZero_RW : REAL;
END_VAR

8. 核心程序代码

8.1 收卷 FB_Winder 调用

PROGRAM PRG_Rewinder
VAR
rw : FB_Winder;
END_VAR

rw(
(* 过程量 *)
LineSpeed_ms := LineSpeed_fb,
TensionFb_N := Tension_RW, (* 已去零点 *)
DancerPos_pct := Dancer_RW_pct,
Omega_rpm := Servo_RW.ActualVelocity,
ActiveFlag := State = 2,

(* 配置 *)
CoreDia_mm := Rolls[2].CoreDia_mm,
FullDia_mm := Rolls[2].FullDia_mm,
StartTension_N := Recipe.StartTension_N,
TaperFactor := Recipe.TaperFactor,
Thickness_um := Recipe.Thickness_um,
GearRatio := 10.0,
Inertia_kgm2 := 0.8,

(* PID 可 HMI 调 *)
Kp := 2.5, Ti := T#0.5s, Td := T#30ms,

(* 低速/高速模式切换阈值 *)
LowSpeedThreshold_ms := 0.08,

(* 输出 *)
TorqueCmd => Servo_RW.TargetTorque,
DiaCalc_mm => Rolls[2].CurrentDia_mm,
TensionCalc_N => Rolls[2].TargetTension_N
);

(* FB_Winder 内部完成:
- 双模式卷径计算(线速/角速度 + 厚度累加)
- 一阶低通抑制抖动
- 锥度张力函数 T = T0 × (1 - taper × (D-D0)/(Dmax-D0))
- 转矩 = F × r + J × dω/dt + 摩擦补偿
- 摆辊 PID(内环)
- 张力传感器 PID(外环)
- 低速/高速模式平滑切换
*)

8.2 放卷 FB_Brake 调用

PROGRAM PRG_Unwinder
VAR
uw : FB_Brake;
END_VAR

uw(
TensionSP_N := Rolls[1].TargetTension_N, (* 按锥度函数从卷径计算 *)
TensionFb_N := Tension_UW,
DiaCalc_mm := Rolls[1].CurrentDia_mm,
DancerPos_pct := Dancer_UW_pct,
MaxCurrent_A := Recipe.BrakeMaxCurr_A,

CurrentOut_V => BRAKE_CURR_AQ (* 0~10 V → 驱动 *)
);

8.3 飞剪换卷

PROGRAM PRG_FlyShear
VAR
flyshear : FB_FlyShear;
END_VAR

flyshear(
Trigger := Rolls[2].Weight_kg >= Recipe.FullWeight_kg,
LineSpeed_ms := LineSpeed_fb,
GluePreFireMs := 200,
CutDelayMs := 80,
TensionCompMs := 300,

CmdGlue => GLUE_ACT,
CmdCut => CUT_ACT,
CmdClampNew => RW_CLAMP,
Done => SwapDone
);

8.4 空辊归零

PROGRAM PRG_Tare
VAR
zeroTimer : TON;
zeroSum : REAL;
zeroCount : INT;
zeroAvg : REAL;
END_VAR

IF TARE_REQ AND LineSpeed_fb < 0.01 THEN
zeroSum := zeroSum + Tension_RW_raw;
zeroCount := zeroCount + 1;
zeroTimer(IN := TRUE, PT := T#2s);
IF zeroTimer.Q THEN
zeroAvg := zeroSum / zeroCount;
tenZero_RW := zeroAvg;
zeroSum := 0; zeroCount := 0;
zeroTimer(IN := FALSE);
HMI.Message := '归零完成, 零点 = ' + REAL_TO_STR(zeroAvg);
END_IF;
END_IF;

Tension_RW := Tension_RW_raw - tenZero_RW;
Tension_UW := Tension_UW_raw - tenZero_UW;

8.5 启动阶段速度→转矩模式切换

IF State = 1 (* STARTING *) THEN
Servo_RW.ControlMode := MODE_VELOCITY;
Servo_RW.TargetVelocity := 10.0;
IF Tension_RW >= Recipe.StartTension_N * 0.8 THEN
Servo_RW.ControlMode := MODE_TORQUE;
State := 2;
END_IF;
END_IF;

8.6 AI 材料辨识

PROGRAM PRG_AI
VAR
aiID : FB_AI_Predict;
lastRunMs : DWORD;
END_VAR

IF (CURRENT_TIME_MS() - lastRunMs) > 30000 AND State = 2 THEN
aiID(
Model := 'MaterialID',
Inputs[0] := Rolls[2].Thickness_um,
Inputs[1] := Rolls[2].ActualTension_N,
Inputs[2] := LineSpeed_fb,
Inputs[3] := Rolls[2].DancerPos_pct
);
IF aiID.Confidence > 0.9 THEN
LoadRecipe(INT(aiID.Output[0]));
HMI.Message := '自动切换配方 -> ' + Recipe.Material;
END_IF;
lastRunMs := CURRENT_TIME_MS();
END_IF;

8.7 AI PID 自整定

VAR
aiTune : FB_AI_Predict;
END_VAR

IF HMI.TuneRequest THEN
aiTune(
Model := 'TensionTune',
Inputs[0] := Rolls[2].Thickness_um,
Inputs[1] := Rolls[2].Weight_kg,
Inputs[2] := LineSpeed_fb
);
rw.Kp := aiTune.Output[0];
rw.Ti := DWORD_TO_TIME(DINT(aiTune.Output[1]));
rw.Td := DWORD_TO_TIME(DINT(aiTune.Output[2]));
HMI.TuneRequest := FALSE;
END_IF;

9. 运行与调试

9.1 上电流程

  1. UPS + 工控机开机, Darra Service 启动;
  2. EtherCAT 主站扫描, 2 伺服 + 1 耦合器;
  3. 气胀轴给气 0.6 MPa, 卡紧卷芯, 观察反馈到位;
  4. 空辊归零: HMI 按 TARE_REQ, 10 秒自动完成, 零点写 RETAIN;
  5. HMI 选择配方(如"锂电正极片 180 µm"), 参数下发;
  6. 进入 READY 状态。

9.2 首件调试

  1. 按 START, 状态机进入 STARTING, 收卷伺服用 速度模式 10 rpm 慢转;
  2. Tension_RW >= 80% StartTension, 切到转矩模式, State=RUNNING;
  3. 牵引斜坡从 0 到 10 m/min(约 20% 速度), 保持 30 s 观察:
    • 摆辊位置在 50 ±5% 之间, 不撞极限;
    • 张力反馈在设定值 ±5%;
    • 卷径计算值与实测卡尺对比, 误差 < 1 mm;
  4. 逐步加速到 100%, 观察稳态 Tension 波动 ±1%;
  5. 低速降到 5 m/min 再到 0, 观察模式切换无抖动。

9.3 换卷联调

  • 人工给 Rolls[2].Weight_kg := FullWeight - 2, 观察 Trigger 触发后:
    1. t = 0: Trigger 激活, 新辊加速到同步速度;
    2. t = +200 ms: GLUE_ACT 置 1, 喷胶;
    3. t = +280 ms: CUT_ACT 置 1, 切刀;
    4. t = +360 ms: RW_CLAMP(新辊) 置 1, 夹紧;
    5. t = +660 ms: 张力补偿完成, Done = 1;
  • 整个过程线速度不变, 总时间 ≤ 700 ms 远小于 2 s 要求。

9.4 常见问题

现象原因处理
启动瞬间张力过冲 20%StartTension 设得过大降 10%, 或延长速度模式时间
满卷后张力下降TaperFactor 过大降到 30%, 观察皱褶是否改善
摆辊飘气缸推力不足加气压 0.1 MPa, 或增大 Dancer 权重
磁粉制动器发热长时间大电流降 BrakeMaxCurr, 或加风冷
断料光电误触发振动 / 漏光光电加遮光罩, PLC 软件去抖 50 ms

9.5 三级报警

报警级别动作
A_ESTOP伺服 MC_Stop + 制动抱闸 + 切刀禁止
A_BREAK牵引停, 收卷减速, 放卷制动抱死
A_TENSION_DEV弹窗, 连续 3 s 超 ±5% 降速到 50%
A_BRAKE_HOTBrakeMaxCurr 降 20%
A_TARE_DRIFT提示下一次换卷前归零

10. Darra 功能对照表

业务需求Darra 对应功能所在模块
恒张力收卷FB_Winder 工艺对象IDE → 运动工艺对象
磁粉制动FB_Brake 工艺对象IDE → 运动工艺对象
飞剪换卷FB_FlyShearIDE → 运动工艺对象
卷径计算FB_Winder 内部双模式内置
锥度张力FB_Winder 的 TaperFactor一个参数搞定
摆辊 + 张力双闭环FB_Winder 内部内置
低速/高速模式切换FB_Winder 的 LowSpeedThreshold内置
空辊归零RETAIN + HMI 按钮标准模板
材料辨识FB_AI_PredictIDE → AI 助手
PID 自整定FB_AI_PredictIDE → AI 助手
配方管理内置配方管理器IDE → 配方
HMIHMI Designer(张力曲线)IDE → HMI
三级报警内置报警系统IDE → 报警
历史曲线本地 SQLite + 云端 InfluxDBDarra Service
远程运维Darra Cloud 加密隧道Cloud

11. 项目总结

11.1 实施周期(首台)

阶段工时
方案设计1 周
程序开发2 周
调试 + AI 训练1 周
验收0.5 周
合计4.5 周

第二台起 0.5 周 / 台 批量复制。

11.2 投产效果

指标设计实测
张力稳态精度±1%±0.6%
低速启动波动±5%±3%
换卷切换时间<2 s1.4 s
材料辨识准确率96%
卷型合格率85%99%
磁粉制动寿命预测±10% 误差

11.3 推广价值

  • 本方案在 印刷 / 涂布 / 复合 / 锂电 / 薄膜 / 箔材 全行业通用;
  • 集成商 批量复制 优势明显: 首台 4.5 周, 第二台起 0.5 周;
  • 配方库不断增长, 新材料上线只需填参数;
  • Darra Cloud 沉淀集成商专属工艺知识, 形成企业数据资产;
  • FB_Winder 作为所有卷材产线的基础模块, 可作为更复杂产线(分切/复卷/涂布)的积木。

FB_Winder 一个功能块, 把独立式收放卷的工艺经验封装成开箱即用的对象, 这是 Darra 在卷材装备领域的核心能力。