
简介面向造纸、塑料、金属加工等行业卷取设备调试与维护人员这份资源围绕西门子smart200系列PLC与触摸屏构建的双轴卷取分切机控制系统展开重点解决前后卷取双轴张力计算与变频器模拟量输出张力控制问题并给出内部张力梯度算法思路理解后可迁移至恒张力卷取设备。压缩包共16个文件、约2.5MB以8张jpg设备图纸、6个txt程序解析与心得说明、1个html页面及1份doc设计文档为主图纸与注释齐全的PLC程序配合阅读便于还原控制逻辑与硬件接线。已有229人学习下载。读者可从中获得双轴张力控制的计算方法、模拟量张力调节策略、卷取版型优化经验以及带完整注释的程序与电路图对照参考适合具备一定PLC基础、希望深入理解卷取张力控制的工程师研读。1. 双轴卷取分切机程序一套能跑在西门子 S7-200 SMART 上的张力控制源码包拿到这套程序的时候我先翻的是变量表和模拟量输出那几段因为分切机这类设备机械结构再花哨最后决定成品卷齐不齐、松不松的还是前后两个卷取轴的张力跟不跟得住。这套资源是一份完整的双轴卷取分切机控制程序PLC 侧用西门子 S7-200 SMART 系列配套触摸屏做参数设定和状态监控核心逻辑落在前后卷取双轴的张力计算上执行层通过变频器模拟量输出调节张力。它解决的是收卷过程中卷径不断变大、张力必须随卷径动态补偿的问题适合做分切、复卷、薄膜或纸张类卷材设备的电气工程师也适合正在啃张力控制算法、想找一个能上机对照的完整工程参考的人。下面我按自己拆包的顺序把计算逻辑、模拟量标定、参数怎么设、哪里容易翻车讲清楚。2. 双轴张力计算卷径、锥度与转矩补偿怎么落到程序里2.1 为什么张力不能只给一个固定模拟量卷取轴在运行中卷径是持续变化的。同样一个电机输出转矩空卷时张力大、满卷时张力小如果模拟量输出写死成品卷一定是内紧外松或者内松外紧切出来的端面看着就难受。所以这类程序的核心不是“输出一个值”而是“每个扫描周期重新算一个值”。常见做法是把张力控制拆成三层第一层算实时卷径第二层按卷径和锥度算目标张力对应的转矩第三层把转矩折算成变频器的模拟量给定。这套程序基本就是按这个骨架搭的前后两个卷取轴各有一套独立计算共用同一套标定参数。卷径的获取方式直接决定程序复杂度。有的设备装编码器直接测卷径有的靠线速度与角速度比值反算还有的用累计长度除以圈数估算。这套程序里卷径走的是线速度与卷取轴转速的比值推算属于不额外加传感器的经济做法代价是对速度信号的稳定性有要求。我拆的时候特意看了它对速度采样的滤波处理因为速度信号一抖卷径就抖张力跟着抖最后全表现在成品卷上。2.2 卷径推算与张力给定的计算链下面这段是卷径推算和张力转矩折算的典型写法语言按 S7-200 SMART 的 STL/结构化思路整理成可读的 Python 伪代码方便对照变量表理解每一步在算什么。实际工程里这段会拆成若干网络用实数运算指令实现。# 输入量每个扫描周期刷新 v_line 0.0 # 线速度来自主机或牵引轴单位 m/min n_winder 0.0 # 卷取轴转速来自变频器或编码器单位 r/min t_set 0.0 # 触摸屏设定的目标张力单位 N taper 0.0 # 锥度百分比0~50触摸屏设定 d_core 0.076 # 纸芯/管芯直径单位 m参数表给定 k_torque 0.0 # 转矩系数由电机额定转矩与减速比标定得出 # 第一步由线速度与转速反算实时卷径 if n_winder 5.0: # 转速过低时比值不可信保持上次值 d_real v_line / (3.1415926 * n_winder) else: d_real d_last # 低速段沿用上一周期卷径避免除零抖动 # 第二步卷径限幅防止异常值把张力带飞 d_real max(d_core, min(d_real, d_max)) # 第三步锥度补偿满卷时按设定比例降低张力 ratio (d_real - d_core) / (d_max - d_core) # 0 空卷 - 1 满卷 t_target t_set * (1.0 - taper / 100.0 * ratio) # 第四步张力折算为电机转矩再折算为模拟量给定 torque t_target * d_real / 2.0 * k_torque ao_value torque_to_ao(torque) # 映射到 0~27648 的模拟量量程逻辑上有几个点值得说。卷径推算里那个n_winder 5.0的判断是血泪经验设备刚启动或者快停机时转速接近零线速度除以转速会得到一个离谱的卷径如果不做低速保持张力会在启停瞬间猛冲一下薄料直接拉断。锥度补偿那段是让满卷张力略低于初始张力收得外紧内松一点卸卷后不容易出现“菊花芯”。k_torque这个系数不是拍脑袋来的它把目标张力、卷径、电机额定转矩和减速比串起来标定的时候要拿弹簧秤或者张力计实测反推后面第 4 章会讲怎么校。2.3 前后双轴的差异处理前后两个卷取轴不能共用一套参数。前卷取靠近分切刀料还没完全稳定通常张力设定偏小、响应要快后卷取是成品卷张力偏大、锥度给得更明显。程序里两套计算是并行的但共用卷径上限、管芯直径这类机械参数。我建议在触摸屏上把前后轴的张力设定、锥度、加减速斜率分成两组画面别图省事塞一页现场调机时操作工分不清哪个参数对应哪个轴改错了很难查。另外前后轴的卷径是各自独立推算的因为两个轴的转速不同。如果程序里偷懒用同一个卷径前轴满卷后轴还空着的时候后轴张力就会算错。这套程序在变量命名上把d_real_front和d_real_rear分开了这点做得对拆包时看到这里我就放心了一半。3. 模拟量输出与变频器对接量程标定和斜坡处理3.1 模拟量通道的映射关系S7-200 SMART 的模拟量输出模块常见是 0~10V 或 0~20mA对应内部数值 0~27648。变频器的模拟量输入端子接收这个信号去调电机转矩或者速度具体接哪个端子、设什么功能码取决于变频器型号程序侧只管把 0~27648 送出去。这里最容易翻车的是量程对不上PLC 输出 0~10V变频器输入设成了 4~20mA 档信号一进去就是错的电机要么不动要么满转矩。我一般会在触摸屏上留一个“模拟量手动给定”的调试画面先脱开张力计算手动给 0%、25%、50%、75%、100% 五个点用万用表量输出电压再对照变频器显示频率或转矩确认通道通了才回去接自动逻辑。def torque_to_ao(torque, t_max_rated): # torque 为计算转矩t_max_rated 为该轴额定转矩 # 输出限幅在 0~100%防止负转矩或超量程 pct torque / t_max_rated pct max(0.0, min(pct, 1.0)) return int(pct * 27648) # 映射到 S7-200 SMART 模拟量满量程这段映射看着简单但t_max_rated取错整个张力就系统性偏大或偏小。它应该等于电机额定转矩乘减速比再乘传动效率不是电机铭牌转矩直接拿来用。传动效率皮带传动取 0.9 左右减速机取 0.95 上下具体看机械配置这个值在参数表里要能改别写死在程序里。3.2 加减速时的张力前馈纯靠卷径算出来的张力给定在设备加速和减速时会滞后。加速时卷径还没来得及更新张力已经掉了成品卷就会出现一段松。常见做法是加一个加速度前馈把主机加减速信号取进来乘一个前馈系数叠加到张力给定上。这套程序里有没有做前馈取决于版本我拆到的逻辑里是留了前馈入口的参数默认给零现场需要时再调。前馈系数怎么定我的经验是先给一个很小的值比如满加速时叠加 3%~5% 的张力观察加速段成品卷的松紧再逐步加加到加速段和匀速段手感一致为止。给大了会在减速时反向冲反而更糟。3.3 输出斜坡与断料保护模拟量输出不能阶跃。张力给定从 0 跳到 50%变频器和机械传动来不及响应料会抖一下。程序里对最终 AO 值做了斜坡限制每个扫描周期最多变化若干个数值单位斜率参数放在触摸屏上。这个斜率设太小张力跟不上卷径变化设太大等于没做斜坡。一般按“从零到满量程用时 1~2 秒”来试。断料保护是另一个必须有的点。分切过程中料断了卷取轴还在转张力计算还在跑卷径会算飞。程序里通常用张力反馈或者卷取轴转矩反馈做判断检测到张力异常低且持续若干秒就切到手动或者停机。这套资源里带了断料判断的逻辑框架阈值需要按实际料种调薄料和厚纸的阈值差很多别照搬。4. 参数整定与上机调试从空载到满卷的验证顺序4.1 参数表里哪些必须现场标程序里的参数分两类一类是机械常数管芯直径、最大卷径、减速比、电机额定转矩这些在设备装配完就定了填一次另一类是工艺参数目标张力、锥度、加减速斜率、前馈系数要按料种和车速调。我上机一般按这个顺序走先空载确认模拟量通道和变频器方向再穿料低速跑手动给定张力看实际张力跟不跟最后切自动、逐步提速到工艺车速。参数含义典型范围标定方式管芯直径空卷起始直径0.076~0.152 m卡尺实测最大卷径满卷直径按机型卷满实测转矩系数张力到转矩的折算现场反推张力计实测锥度满卷张力衰减比例0~30%按料种试输出斜率AO 每周期最大变化1~2 s 满量程观察启停抖动转矩系数是唯一必须用仪器反推的。做法是穿一段料手动给一个固定张力用弹簧秤在料带上拉读出实际张力和设定值比差多少就按比例修k_torque反复两三次就能收敛。没有张力计的话用手感加成品卷硬度判断也行但精度差一截薄料不建议这么干。4.2 低速到高速的提速验证低速跑通不代表高速没问题。卷径推算依赖线速度和转速的比值车速越高这个比值对采样误差越敏感。我一般会在 30%、60%、100% 三档车速下各跑一段看同一设定张力下成品卷的松紧是否一致。如果不一致先查速度信号有没有滤波不足再查卷径上限有没有卡到。曾经遇到一档高速时张力明显偏大最后发现是线速度信号取自变频器输出频率而变频器在高速段有滑差补偿频率和实际线速度对不上换成编码器测速就正常了。这类问题不看波形很难定位建议调试时把卷径、张力给定、AO 值三个变量一起录趋势。4.3 触摸屏参数下发的时序触摸屏改参数PLC 不是立刻就用。如果参数在运行中修改而程序正在用旧值算到一半会出现一个扫描周期的跳变。稳妥做法是参数修改后先存到中间寄存器等下一个卷取周期开始或者设备处于停止状态时才生效。这套程序里对关键参数做了“修改需停机确认”的处理张力设定这类允许在线改的则做了斜坡过渡。现场操作工不一定懂这个画面上的提示文字要写清楚别让人在高速运行时乱改锥度。5. 避坑与常见问题张力控制翻车的几个典型现场5.1 启停瞬间张力猛冲现象是设备启动或停机时料被拉断或者成品卷端面出现一圈明显紧边。原因多半是卷径推算在低速段失效线速度除以接近零的转速得到异常大的卷径张力给定跟着冲高。解决是加低速保持逻辑转速低于阈值时沿用上一周期卷径同时对 AO 输出做斜率限制启停阶段张力给定从零缓慢爬升。这套程序里低速阈值是个可调参数别用默认值直接上按实际最低稳定车速调。5.2 满卷后张力偏大或偏小现象是空卷时张力正常卷越大越不对劲。先查锥度参数方向有没有设反锥度是让满卷张力降低的设成负值就反了。再查最大卷径参数如果实际满卷直径超过程序里设的上限卷径被限幅卡住张力计算就停在某个值不再补偿。还有一种情况是管芯直径填错整个卷径曲线的起点就偏了满卷误差被放大。这三个参数是机械常数填完最好拿实际卷径对一遍。5.3 模拟量输出有值但电机不响应现象是程序里 AO 数值在变变频器频率或转矩不动。原因可能是通道量程不匹配、变频器模拟量输入功能码没设对、或者 PLC 模拟量模块的接线极性反了。排查顺序是先量 PLC 输出端子电压再量变频器输入端子电压两端对不上就是线路或模块问题两端一致但电机不动就是变频器参数问题。我习惯在调试画面放一个手动给定滑块脱开自动逻辑单独验证通道比在自动逻辑里猜快得多。5.4 断料后卷径算飞现象是料断了卷取轴空转卷径推算值一路涨到上限再穿料时张力完全不对。原因是断料检测没生效或者阈值太宽。解决是加断料判断用张力反馈低于阈值持续若干秒作为条件触发后冻结卷径计算并报警。阈值要按料种调薄料断料后张力掉得快阈值可以设高一点厚料有惯性阈值要放宽否则正常加减速也会误报。5.5 前后轴参数串用现象是调好后轴参数前轴跟着变。原因是程序里两套计算共用了同一个寄存器或者触摸屏地址映射重叠。这套程序在变量命名上分开了前后轴但二次开发时如果自己加参数很容易图省事复用地址。我的习惯是前后轴参数区在 V 存储区里划两块不重叠的段地址表打印出来贴在电柜门内侧改之前先对表。6. 进阶把张力曲线录下来做趋势比对调试到后期光看当前值已经不够了得看趋势。S7-200 SMART 本身没有内置趋势记录但可以用触摸屏的数据记录功能或者在上位机侧用 Modbus 把卷径、张力给定、AO 值、实际张力几个变量按 100ms 周期采上来。我一般会在调试阶段挂一个简易采集跑完一卷导出来看三条曲线卷径应该是平滑单调上升张力给定应该跟着卷径缓慢下降锥度作用AO 值在加减速段不应该有阶跃。三条曲线任何一条出现毛刺或者台阶对应的问题基本就能定位到具体环节。下面是一个把采集数据做趋势比对的简单脚本用来快速看卷径曲线有没有异常跳变比肉眼翻表格快。import csv # 采集文件列time, d_real, t_target, ao_value rows [] with open(winder_trend.csv) as f: for r in csv.DictReader(f): rows.append({k: float(v) for k, v in r.items()}) # 检查卷径相邻采样跳变超过 5% 认为异常 prev None for r in rows: if prev is not None: jump abs(r[d_real] - prev) / max(prev, 1e-6) if jump 0.05: print(f卷径跳变 {jump:.1%} t{r[time]}) prev r[d_real]这个脚本只做一件事把卷径的异常跳变点标出来。跳变点往往对应速度信号丢失、除零保护触发或者限幅动作顺着时间点回去查当时的车速和转速信号比盲猜快。参数上0.05这个阈值按采样周期调采样越密阈值可以越小。还有一个进阶用法是把前后轴的张力给定曲线叠在一张图上比。正常工况下两条曲线形状应该相似、幅值不同如果某一段前轴在降后轴在升说明有一路的卷径推算出了问题或者参数被串改了。这种比对在换料种、换车速之后做一次能提前发现不少隐患。从那以后我每次接手卷取类程序不管多急都强制先把模拟量通道手动验证一遍、再把卷径和张力给定录一段趋势看有没有毛刺这两步花不了半小时能省掉后面几天的返工。希望帮到你。本文还有配套的精品资源点击获取