纺织卷绕机 (Textile Machinery)
面向化纤 / 长丝 / 纱线 / 网布的高速卷绕设备。依托 Darra 卷绕工艺对象 + 12 段锥度张力曲线 + 电子凸轮排线 完整能力, 一台"一拖四"工控机即可驱动 4 个卷绕头的 12 轴联动。
1. 设备简介
卷绕机把拉伸变形丝 (DTY) 或长丝按锥度张力曲线连续卷到筒管上, 要求 高速 + 恒张力 + 均匀排线 + 满筒自动换筒。典型指标 (单头):
| 项目 | 参数 |
|---|---|
| 卷绕转速 | ≥ 6000 r/min (实测 6200) |
| 卷径范围 | 60~300 mm |
| 排线精度 | ±0.2 mm (实测 ±0.1) |
| 张力控制 | ±3% (实测 ±1.8%) |
| 断丝检测延时 | ≤ 20 ms (实测 10 ms) |
| 自动换筒时间 | ≤ 8 s (实测 6 s) |
| 多头同步精度 | < 0.05 mm 位置差 (24 头) |
| EtherCAT 周期 | 500 µs |
| 连续运行 | ≥ 168 h (实测 240+ h) |
单台整机采用 "一拖四" 架构: 1 台 Darra 工控机驱 4 个卷绕头, 多台整机堆叠成 24 头车间级生产线。
2. 项目模块组成
| 层 | 项目 | 职责 |
|---|---|---|
| 实时驱动 | DarraRT.sys + DarraRT_Eth.sys + DarraRT_PLC.sys | 内核 + EtherCAT |
| 服务层 | Darra.PLC.Service | 永驻 |
| 用户层 | Darra.PLC.Panel + Darra.PLC.IDE | 操作 + 开发 |
| AI 桥接 | Darra.Robot.dll 可选 + 云端模型 | 调丝助手 + 断丝预测 |
PLC 单元:
| 单元 | 周期 | 说明 |
|---|---|---|
| PRG_MAIN | 10 ms | 4 头主状态机 |
| PRG_HEAD[1..4] | 1 ms | 每头独立 (卷绕 + 排线 + 张力) |
| PRG_TAPER | 1 ms | 12 段锥度查表计算 |
| PRG_TRAVERSE | 500 µs | 排线凸轮 (每头一路) |
| PRG_DOFF | 10 ms | 换筒节拍 |
| PRG_BREAK | 1 ms | 断丝检测与停机 |
3. 机械装配架构
长丝 → [导丝器 (防抖)] → [张力传感器 (0~200 cN)]
↓ 张力闭环
→ [导丝横动 (排线伺服 + 凸轮往返)] → [筒管 (主卷绕伺服)]
↓
[摩擦辊 / 主动驱动卷绕]
↓
[卷径传感器 超声波] → [锥度查表] → [满筒剪丝 → 推筒 → 换新筒]
单头 3 轴:
| 轴 | 功能 | 规格 |
|---|---|---|
| Axis_Main | 卷绕主轴 | SV660N 1.5 kW (6000 rpm) |
| Axis_Traverse | 排线 | SV660N 400 W |
| Axis_Friction | 摩擦辊 / 张力调整 | SV660N 750 W |
整机共 12 轴伺服 (3 × 4 头) + 1 台 AM600 CPU。
4. 程序架构
Darra.PLC.IDE (开发 / 调丝向导)
| 下装
v
Darra.PLC.Service <---> Panel (HMI)
| IOCTL
v ┌─ AI 调丝 (云端模型)
DarraRT_PLC.sys =GlobalIO= DarraRT_Eth.sys
| EtherCAT (环形冗余)
v
AM600 CPU → DI/DO → 8AI → 4DA → SV660N × 12 → 电磁阀岛
每头独立 FB_WinderHead 实例, 输入: 工艺参数 + 张力 / 卷径 AI, 输出: 主轴速度 + 排线凸轮 + 换筒触发。
任务调度:
- 500 µs:
PRG_TRAVERSE[i]排线凸轮 - 1 ms:
PRG_HEAD[i]张力 / 锥度 / 主轴 - 10 ms:
PRG_MAIN/PRG_DOFF, HMI 刷新
5. 硬件 BOM (4 头机型, 国产化)
| 类别 | 型号 | 品牌 | 数量 | 单价 (¥) | 小计 |
|---|---|---|---|---|---|
| 工控机 | ARK-1124H i5-7300U | 研华 | 1 | 5,200 | 5,200 |
| HMI | TK8071iQ 10 寸 | 威纶通 | 1 | 1,800 | 1,800 |
| 伺服驱动 (主卷绕) | SV660N-EtherCAT 1.5 kW | 汇川 | 4 | 3,200 | 12,800 |
| 伺服电机 (主) | ISMH1-15C30CB | 汇川 | 4 | 2,800 | 11,200 |
| 伺服驱动 (排线) | SV660N-EtherCAT 400 W | 汇川 | 4 | 2,100 | 8,400 |
| 伺服电机 (排线) | ISMH1-40B30CB | 汇川 | 4 | 1,800 | 7,200 |
| 伺服驱动 (摩擦辊) | SV660N 750 W | 汇川 | 4 | 2,380 | 9,520 |
| 伺服电机 (摩擦辊) | ISMH1-75C30CB | 汇川 | 4 | 1,850 | 7,400 |
| EtherCAT IO 主 | AM600-CPU1608TP | 汇川 | 1 | 1,800 | 1,800 |
| DI 模块 | AM600-1600END | 汇川 | 2 | 580 | 1,160 |
| DO 模块 | AM600-1600ETN | 汇川 | 2 | 580 | 1,160 |
| 8 通道 AI 模块 | AM600-8AI (张力 × 4 + 卷径 × 4) | 汇川 | 1 | 1,600 | 1,600 |
| 4 通道 AO 模块 | AM600-4DA | 汇川 | 1 | 980 | 980 |
| 张力传感器 | 磁弹式 0~200 cN | 国产 | 4 | 1,200 | 4,800 |
| 断丝传感器 | 红外对射 | 国产 | 4 | 120 | 480 |
| 卷径传感器 | 超声波 20~400 mm | 国产 | 4 | 380 | 1,520 |
| 色标传感器 (丝头定位) | BC50D | 奥普 | 4 | 680 | 2,720 |
| 主轴编码器 (外置高精度) | 5000 ppr 绝对值 | 雷赛 | 4 | 850 | 3,400 |
| 气缸 (换筒 / 剪丝 / 推筒) | SC ø20/32/40 | 亚德客 | 24 | 220 | 5,280 |
| 电磁阀岛 | EtherCAT 16 联 | 亚德客 | 1 | 2,800 | 2,800 |
| 安全光幕 (操作侧) | 1200 mm 20 光轴 | 舜驰 | 2 | 1,200 | 2,400 |
| 主机架 + 卷绕头 (4 头) | 铸铁 + 铝 | 自制 | 1 | 42,000 | 42,000 |
| 导丝器 / 分丝轮 | 陶瓷 | 自制 | 16 | 380 | 6,080 |
| 电控柜 (800×1000×2000 + 空调) | 威图国产 | - | 1 | 3,200 | 3,200 |
| 端子 / 线缆 | - | - | 1 套 | 3,500 | 3,500 |
| 合计 (4 头整机) | ¥148,420 |
单头平均 ¥3.7 万; 24 头车间 (6 × 4) 共 ¥89 万。
6. IO 模块配置
6.1 配置步骤
- IDE → 设备视图 → 新建 EtherCAT 主站 (LAN2, 500 µs), 扫描
- 从站顺序: AM600 CPU → DI ×2 → DO ×2 → 8AI → 4DA → SV660N ×12 → 电磁阀岛
- 在
轴配置页为 12 台伺服分别起别名:Axis_MainH1..4,Axis_TravH1..4,Axis_FricH1..4 - 主轴伺服配置外置编码器 (
0x6091电子齿轮比匹配 5000 ppr) - 8AI 通道映射
AI_TensionH1..4,AI_DiaH1..4; 4DA 映射AO_TensionSetH1..4 - 色标探针 (丝头定位) 接到主轴伺服 DI5, 启用 TouchProbe1
- IO 表自动生成, Panel 一键下装
6.2 单头 IO (每头 × 4)
| 符号 | 类型 | 说明 |
|---|---|---|
| SEN_YarnBreak | DI | 断丝传感器 |
| SEN_CradleHome | DI | 托架原位 |
| SEN_CradleReady | DI | 托架接丝到位 |
| SEN_DollClose | DI | 筒管夹紧 |
| AI_Tension | AI | 张力 0~200 cN |
| AI_Diameter | AI | 卷径 mm |
| SOL_Clamp | DO | 筒管夹紧气缸 |
| SOL_Cutter | DO | 剪丝气缸 |
| SOL_Pusher | DO | 推满筒气缸 |
| SOL_Suction | DO | 吸丝口 |
| LAMP_Run | DO | 运行灯 |
| LAMP_Fault | DO | 故障灯 |
| AO_TensionSet | AO | 张力闭环输出 (0~10 V → 力矩补偿) |
6.3 全机公共 IO
| 地址 | 符号 | 说明 |
|---|---|---|
| I0.0..3 | SB_Start/Stop/EStop/Reset | 按钮 |
| I0.4 | SW_Auto | 自动模式 |
| I0.5 | SEN_LightCurtain | 安全光幕 |
| I0.6 | SEN_DoorClose | 机罩门 |
| Q0.0 | LAMP_RedAll | 全机报警 |
| Q0.1 | BUZZER | 蜂鸣器 |
7. 核心数据结构
TYPE TECH_YARN :
STRUCT
Material : STRING(16); // "Polyester" "Nylon"
Denier : LREAL; // 旦数
TargetRPM : LREAL; // 目标转速 r/min
TargetDiameter : LREAL; // 目标卷径 mm
TargetWeight : LREAL; // 目标丝重 g
InitialTension : LREAL; // 起始张力 cN
FinalTension : LREAL; // 满卷张力 cN
TaperPoints : ARRAY[1..12] OF POINT_TENSION;
TraverseCamId : INT;
TraverseStroke : LREAL; // 排线行程 mm
TraverseRatio : LREAL; // 排线 / 主轴 比
AIAssistEnable : BOOL;
END_STRUCT
END_TYPE
TYPE POINT_TENSION :
STRUCT
Diameter : LREAL; // mm
Tension : LREAL; // cN
END_STRUCT
END_TYPE
TYPE HEAD_STATE :
(
Idle, Homing, Threading, Running, Doffing, Fault
);
END_TYPE
TYPE HEAD_DATA :
STRUCT
State : HEAD_STATE;
Tension : LREAL;
Diameter : LREAL;
SpeedRPM : LREAL;
Meters : LREAL; // 已绕米数
BreakCnt : UDINT;
DoffCnt : UDINT;
END_STRUCT
END_TYPE
VAR_GLOBAL
gTech : TECH_YARN;
gHead : ARRAY[1..4] OF HEAD_DATA;
END_VAR
8. 核心程序代码
8.1 主状态机 (4 头并行)
PROGRAM PRG_MAIN
VAR
i : INT;
END_VAR
FOR i := 1 TO 4 DO
CASE gHead[i].State OF
HEAD_STATE#Idle:
IF SB_Start AND NOT SB_EStop AND SEN_LightCurtain THEN
gHead[i].State := HEAD_STATE#Homing;
END_IF
HEAD_STATE#Homing:
HomeHead(i);
IF HeadHomed(i) THEN gHead[i].State := HEAD_STATE#Threading; END_IF
HEAD_STATE#Threading:
IF gHead[i].Tension > 5.0 THEN // 丝已穿上
gHead[i].State := HEAD_STATE#Running;
END_IF
HEAD_STATE#Running:
RunWinderHead(i);
IF SEN_YarnBreak[i] THEN
gHead[i].BreakCnt := gHead[i].BreakCnt + 1;
gHead[i].State := HEAD_STATE#Fault;
ELSIF gHead[i].Diameter >= gTech.TargetDiameter THEN
gHead[i].State := HEAD_STATE#Doffing;
END_IF
HEAD_STATE#Doffing:
DoffRoutine(i);
IF DoffDone(i) THEN
gHead[i].DoffCnt := gHead[i].DoffCnt + 1;
gHead[i].State := HEAD_STATE#Idle;
END_IF
HEAD_STATE#Fault:
StopHead(i);
IF SB_Reset THEN gHead[i].State := HEAD_STATE#Idle; END_IF
END_CASE
END_FOR
END_PROGRAM
8.2 工艺对象 — 卷绕头 (锥度张力 + PID)
FUNCTION_BLOCK FB_WinderHead
VAR_INPUT
HeadId : INT;
Tech : REFERENCE TO TECH_YARN;
TensionMeas : LREAL;
DiameterMeas : LREAL;
END_VAR
VAR_IN_OUT
MainAxis : AXIS_REF;
TraverseAxis : AXIS_REF;
END_VAR
VAR
tensionPID : FB_PIDT1;
targetTen : LREAL;
speedOfs : LREAL;
speedBase : LREAL;
END_VAR
// 1. 锥度张力曲线: 分段线性插值
targetTen := InterpolateTaper(DiameterMeas, Tech.TaperPoints);
// 2. 张力 PID (输出是主轴转速微调)
tensionPID(
Setpoint := targetTen,
Actual := TensionMeas,
Kp := 0.4, Ti := T#0.2s, Td := T#0s,
OutMin := -200.0, OutMax := +200.0
);
speedOfs := tensionPID.Out;
// 3. 基础转速: 按卷径反比, 保持线速恒定
speedBase := Tech.TargetRPM * Tech.TargetDiameter / DiameterMeas;
// 4. 主轴目标转速 = 基础 + 张力修正
MainAxis.TargetVel := speedBase + speedOfs;
// 5. 排线凸轮比 = 主轴 × TraverseRatio
TraverseAxis.TargetVel := MainAxis.TargetVel * Tech.TraverseRatio;
END_FUNCTION_BLOCK
8.3 工艺对象 — 电子凸轮排线
FUNCTION_BLOCK FB_TraverseCam
VAR_INPUT
Execute : BOOL;
Stroke : LREAL; // 行程
CamTableId : INT;
END_VAR
VAR_IN_OUT
Master : AXIS_REF; // 主轴
Slave : AXIS_REF; // 排线
END_VAR
VAR
camSel : MC_CamTableSelect;
camIn : MC_CamIn;
END_VAR
camSel(
CamTable := CAM_TravTables[CamTableId],
Master := Master,
Slave := Slave,
Periodic := TRUE,
MasterScaling := 360.0, // 一转为一个周期
SlaveScaling := Stroke
);
camIn(
Master := Master,
Slave := Slave,
MasterOffset := 0,
SlaveOffset := 0,
StartMode := MC_STARTMODE#Absolute,
Execute := Execute AND camSel.Done
);
END_FUNCTION_BLOCK
8.4 工艺对象 — 12 段锥度查表
FUNCTION InterpolateTaper : LREAL
VAR_INPUT
Diameter : LREAL;
Points : ARRAY[1..12] OF POINT_TENSION;
END_VAR
VAR
i : INT;
d1, d2, t1, t2, frac : LREAL;
END_VAR
IF Diameter <= Points[1].Diameter THEN
InterpolateTaper := Points[1].Tension;
RETURN;
END_IF
IF Diameter >= Points[12].Diameter THEN
InterpolateTaper := Points[12].Tension;
RETURN;
END_IF
FOR i := 1 TO 11 DO
IF Diameter >= Points[i].Diameter AND Diameter < Points[i+1].Diameter THEN
d1 := Points[i].Diameter; d2 := Points[i+1].Diameter;
t1 := Points[i].Tension; t2 := Points[i+1].Tension;
frac := (Diameter - d1) / (d2 - d1);
InterpolateTaper := t1 + frac * (t2 - t1);
RETURN;
END_IF
END_FOR
InterpolateTaper := Points[12].Tension;
END_FUNCTION
8.5 断丝响应 + 换筒节拍
PROGRAM PRG_BREAK
VAR i : INT; END_VAR
FOR i := 1 TO 4 DO
IF SEN_YarnBreak[i] THEN
StopHead(i); // 快速制动
SOL_Cutter[i] := TRUE;
LAMP_FaultH[i] := TRUE;
WriteLog('断丝', i);
END_IF
END_FOR
END_PROGRAM
FUNCTION_BLOCK FB_Doff
VAR_INPUT
HeadId : INT;
END_VAR
VAR
step : INT := 0;
tmr : TON;
END_VAR
CASE step OF
0: StopHead(HeadId); step := 10;
10: SOL_Cutter[HeadId] := TRUE;
tmr(IN := TRUE, PT := T#500ms);
IF tmr.Q THEN SOL_Cutter[HeadId] := FALSE; step := 20; END_IF
20: SOL_Pusher[HeadId] := TRUE;
tmr(IN := FALSE); tmr(IN := TRUE, PT := T#2s);
IF tmr.Q THEN SOL_Pusher[HeadId] := FALSE; step := 30; END_IF
30: SOL_Clamp[HeadId] := TRUE;
tmr(IN := FALSE); tmr(IN := TRUE, PT := T#1s);
IF tmr.Q THEN step := 40; END_IF
40: step := 0; // 完成, 等下一次
END_CASE
END_FUNCTION_BLOCK
9. 运行与调试
9.1 上电首检
- 4 头伺服使能, 点动排线 ±10 mm 确认机械
- 气压 ≥ 0.5 MPa, 吸丝口负压正常
- 断丝传感器全部有输出 (模拟遮挡)
- 张力传感器零点校准 (无丝时读数 = 0)
9.2 调丝向导 (AI 辅助)
HMI → AI 调丝助手:
- 选择丝材 (Polyester / Nylon / Spandex)
- 选择旦数 (75 D / 150 D / 300 D)
- 填目标卷径 / 目标转速
- 点"生成配方" → 填入 TECH_YARN 结构
- 点"试卷 3 分钟" → 观察张力 / 排线实测曲线
- 合格则保存为永久配方
9.3 锥度张力标定
在 HMI 的锥度曲线编辑器里:
- 横轴卷径 60..300 mm, 纵轴张力 15..30 cN
- 默认 12 段平均分布
- 实际运行中若外圈太硬, 减小终点张力
- 若内圈太松, 增大起点张力
9.4 排线凸轮标定
- 凸轮表采用三段: 左行程 / 右行程 / 两端微停顿 (反射纹防止丝重叠)
- 排线比 TraverseRatio = 排线 1 往返 / 主轴 N 圈
- 推荐: 150 D 丝 → N = 4
9.5 关键日志
| 日志 | 路径 |
|---|---|
| 单头运行状态 | %AppData%/DarraPLC/logs/winder_headN_*.log |
| 张力趋势 | %AppData%/DarraPLC/logs/tension_*.log |
| 断丝事件 | %AppData%/DarraPLC/logs/break_*.log |
| AI 调丝对话 | %AppData%/DarraPLC/logs/ai_assist_*.log |
10. Darra 功能对照表
| 工艺需求 | Darra 功能 |
|---|---|
| 4 头并行状态机 | SCL FOR..DO + 结构体数组 |
| 恒线速卷绕 | MC_MoveVelocity + 卷径反比计算 |
| 锥度张力曲线 | 12 段线性插值 + FB_PIDT1 |
| 电子凸轮排线 | MC_CamIn + 可编辑凸轮表 |
| 断丝快速响应 | DI 硬件输入 + 500 µs 周期检测 |
| 自动换筒 | SCL 阶梯状态机 + 气缸定时 |
| 24 头同步 | EtherCAT 500 µs 统一周期 |
| AI 调丝助手 | Darra AI 对话 + 云端历史数据 |
| 断丝预测 | 云端 LSTM 模型 + 边缘推理 |
| 多头集中 HMI | Panel 多页签分头展示 |
9.6 常见故障
| 现象 | 根因 |
|---|---|
| 单头转速偏低 | 张力偏大导致 PID 负饱和, 检查张力传感器 |
| 排线到边停顿 | 凸轮末端多项式不对称, 重调 |
| 连续多头断丝 | 车间湿度变化, 静电增加, 需加湿 |
| 换筒失败 | 推筒气缸行程不到位或剪丝时序早 |
| 卷径读数跳动 | 超声波传感器表面有飞花, 清理 |
9.7 多头集中监控
HMI 主界面布局:
- 顶部 4 个头状态卡片 (Idle / Running / Doffing / Fault 配色)
- 中部 4 组实时曲线 (张力 / 速度 / 卷径)
- 底部告警滚动 + 班次统计
- 配方管理 / 锥度编辑器 / AI 助手 3 个侧边栏
9.8 维护周期
| 项目 | 周期 | 说明 |
|---|---|---|
| 导丝器陶瓷 | 30 天 | 磨损会增加丝断率 |
| 摩擦辊表面 | 90 天 | 磨花后需打磨或更换 |
| 排线轴承 | 180 天 | 高频往返, 易磨损 |
| 张力传感器零点 | 7 天 | 每班开机前 |
| AI 模型更新 | 季度 | 云端推新版本 OTA |
11. 项目总结
- 整机 BOM ¥14.8 万 (4 头): 单头平均 ¥3.7 万, 对比进口单头 ¥20+ 万降本 82%
- 24 头车间 ¥89 万: 对比进口 ¥250+ 万省 ¥160 万
- 实测转速 6200 rpm: 接近进口中端水平
- 断丝延时 10 ms: 比目标快 2 倍, 丝损耗大幅下降
- AI 调丝向导: 新手 2 小时上手替代老师傅 2 周培训, 是纺织行业首创
- 多头一致性: 24 头位置差 < 0.03 mm, 丝线张力离散 < 0.5 cN
- 连续运行稳定: 累计 240 h 连续试产无掉头
下一步: 把断丝预测模型接入云端联邦学习, 从 200 台设备累计数据训练更强模型, 断丝率目标降到 0.3% 以下。
11.1 投产验收清单
- 4 头空载 24 h: 转速 6200 rpm, 0 伺服报警, EtherCAT 0 帧错
- 带丝 8 h 试卷: 张力波动 < 2%, 排线跳点 0
- 24 头车间一致性: 任意两头位置差 < 0.05 mm
- AI 调丝助手覆盖率: 工厂 90% 常用丝材料库内有参数
- 远程诊断接通率 100%
11.2 运营指标 (首批 10 台试产)
| 指标 | 值 |
|---|---|
| 月度合格率 | 99.3% |
| 断丝率 | 0.8% (较进口的 1.5% 更优) |
| 换筒耗时 | 6 s (目标 8 s) |
| 单头日产 | 12.6 kg |
| 能耗 (单头) | 1.1 kWh/h |
11.3 迭代路线
- V1.0 (当前): 4 头 / 机, 6000 rpm, AI 调丝 + 断丝预测
- V1.1: 8 头 / 机版本, 1 台工控机驱 24 轴
- V1.2: 引入 AI 丝品质实时评估 (光纤 + 视觉)
- V2.0: 全车间协同调度, 按订单自动分配丝头