- 1. 写在前面:为什么这篇逆向分析值得你读
- 2. 一、先泼三盆冷水:文件夹名 vs 工程真相
- 3. 二、硬件与网络架构(一张图看懂)
- 4. 2.1 CPU 与机架
- 5. 2.2 PROFIBUS-DP 现场总线(核心通讯)
- 6. 2.3 HMI:WinCC 上位机
- 7. 三、程序结构全貌:OB / FB / FC / DB
- 8. 3.1 组织块 OB(事件与扫描调度)
- 9. 3.2 功能块与功能 FB / FC
- 10. 3.3 数据块 DB = 机器的功能地图(最值钱的部分)
- 11. 四、核心控制算法(复卷机的灵魂)
- 12. 4.1 张力控制:多段张力设定(Tension)
- 13. 4.2 卷径与计长:密度法算直径(Diameter / Length)
- 14. 4.3 速度同步与安全限速链(Speed)
- 15. 4.4 压辊 / 插补 / 振动监测
- 16. 五、I/O 与符号映射(1171 条符号表抽样)
- 17. 六、工程亮点:7 条可复用的实战经验
- 18. 七、怎么打开、运行、并迁移到 TIA Portal
- 19. 八、给工程师的两点提醒
- 20. 九、常见问题 FAQ(百度长尾需求)
- 21. 十、结语 + 资源
写在前面:为什么这篇逆向分析值得你读
网上流传的「西门子 PLC 程序包」多如牛毛,但能真正打开、读懂、借鉴的少之又少:要么只有压缩包没有源码,要么名不副实、打开后发现是别的机型。
这份工程不同——它是一个真实的、原厂英文的纸张/薄膜分切复卷机(Slitter-Rewinder,业内叫 Winder)S7-400 控制程序,硬件组态、符号表、全部块源码都完整可读。本文带你逐文件拆解:它到底是不是 S7-1200/1500?里面有什么?张力/卷径/速度是怎么算的?OB35 这个 100ms 循环中断里到底干了什么?以及——你拿到这种工程,怎么打开、怎么运行、怎么迁到 TIA Portal。
读完你将获得一张完整的「机器功能地图」和一套可直接复用的复卷机控制思路。
一、先泼三盆冷水:文件夹名 vs 工程真相
很多朋友下载后才发现「货不对板」。基于逐文件核验,先说清三个事实,避免你踩坑:
| # | 文件夹名 / 宣传说法 | 实际读到的情况 | 影响 |
|---|---|---|---|
| 1 | 「S7-1200/1500」 | 工程内部是 S7Netze / sdb / pgs / BAUSTEIN.DBF / SUBBLK.DBT 结构,即 SIMATIC Manager(STEP 7 V5.x) 项目;CPU 实测为 414-2 DP(S7-400) | 不能用 TIA Portal 直接打开;需用 STEP 7 V5.x 或先经「TIA 移植」 |
| 2 | 「中文注释」 | 源码备忘录经 GB18030/UTF-8 多编码核验,真实中文注释为 0;变量、网络、DB 标题均为英文原厂注释(如 //16#13, Event class 1...、Tension setpoint selector) | 所谓「中文注释」不属实,是纯英文原厂工程 |
| 3 | 「完整可运行项目」 | 含完整块源码(SUBBLK.DBT)、符号表、硬件组态、MM440 参数 DB;但 MM440/ABB 的 GSD、部分第三方库需本机已有;硬件组态 .PG 可直接还原 | 在装有 STEP 7 + 对应 GSD 的环境可编译下载,属「可运行」 |
一句话:这是一套 S7-400 经典项目、英文原厂、源码完整的复卷机程序。标题若写成「S7-1200/1500 + 中文注释」会误导读者,故本文以真实形态命名。
二、硬件与网络架构(一张图看懂)
2.1 CPU 与机架
- CPU:
CPU 414-2 DP(站点名SIMATIC (Winder))—— S7-400 中高端型,自带 1× MPI/DP 接口,DP 口用于现场总线。 - 组态文件在
sdb/00000001/*.PG(共 30+ 个.PG系统数据块),含机架、电源、接口、分布式从站。
2.2 PROFIBUS-DP 现场总线(核心通讯)
从 sdb 的 GSD 引用可确认总线上的从站类型:
| 从站 / 设备 | GSD / 标识 | 用途 | 通讯方式 |
|---|---|---|---|
| ET200 远程 I/O | TR06AAAB.GSE(PNO Class 2 32 Bit) | 分布式数字/模拟量采集与执行(I/O 地址延伸至 I28.x / Q81.x) | DP 周期性 I/O |
| ABB 变频器 | ABB_AC80.GSD | 放卷/收卷/牵引等传动(PPO-05 报文:4 PKW + 10 PZD) | DP 过程数据 |
| 西门子 MM440 | MicromasterDB / Data transfer to Drives | 辅助传动(MICROMASTER 440 矢量型) | USS / DP |
| DP 诊断 | 059E.GSE(FB13 DP-Slave-System Diag) | 从站掉线/故障诊断 | — |
工程要点:I/O 地址远超本地机架(最大到
Q81.x、I28.x),说明大量信号经 ET200 远程站 分布在机器各工位,是典型的「中央 CPU + 分布式 I/O」大型专机布线。
2.3 HMI:WinCC 上位机
- 证据有
WinCC Alarms(报警)、Lenght counter reset from WinCC(从 WinCC 清零计长)、M304.1: WinCC ...(WinCC 位)、Tension < 60% ...报警位等。 - 操作面板通过 MPI/DP 与 CPU 通讯,组态在
hOmSave7目录。
系统架构一览:
┌─────────────────────────────┐
│ CPU 414-2 DP (S7-400) │
│ SIMATIC (Winder) │
│ OB1 主循环 / OB35 100ms │
└──────────────┬──────────────┘
│ PROFIBUS-DP
┌──────────────┬─────────┴──────────┬──────────────┐
▼ ▼ ▼ ▼
┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ ET200 │ │ ABB AC80 │ │ MM440 │ │ WinCC │
│ 远程I/O │ │ 变频器 │ │ 变频器 │ │ 上位机 │
│ I28/Q81 │ │ PPO-05 │ │ USS/DP │ │ MPI/DP │
└─────────┘ └──────────┘ └──────────┘ └──────────┘
分布式信号 放卷/收卷/牵引 辅助传动 报警/配方/计长三、程序结构全貌:OB / FB / FC / DB
3.1 组织块 OB(事件与扫描调度)
从源码 VAR_TEMP 注释中确认存在以下 OB(标准 STEP 7 事件模型):
| OB | 类型 | 在本工程中的作用(据注释/调用推断) |
|---|---|---|
| OB1 | 主循环 | 调用顺序控制(DB Sequence control)、FB15/FB18、各工位逻辑 |
| OB35 | 循环中断 100 ms | 核心控制环:张力计算、卷径/计长、速度斜坡、插补、压辊计算 |
| OB40 / OB41 | 硬件中断 | 编码器/零速等硬件事件(如 Zero Speed、Hardware Interrupt 2) |
| OB55 | 状态时基中断 | 状态/通讯相关 |
| OB81–OB87 | 诊断/故障 OB | 电源(81)、机架/模块(82–86)、通讯故障 OB87(注释 Communication Fault) |
| OB100 / OB101 / OB102 | 启动 OB | 完全重启 / 重启 / 冷重启(注释 Complete Restart/Restart/Cold Restart) |
| OB121 / OB122 | 编程/IO 访问错误 | 程序异常与外围访问保护 |
3.2 功能块与功能 FB / FC
源码中明确出现:FB15、FB18、FB230(见 FB230 Data DB)、FC18、FC121、FC205(帮助标志/边沿检测)。主控制运算封装在 OB35 调用的 FB/FC 中(张力、计长、速度斜坡等)。
3.3 数据块 DB = 机器的功能地图(最值钱的部分)
从 SUBBLK.DBT 的 DB 标题(TITLE)完整还原出机器功能模块,这是理解整台设备的「地图」:
① 核心控制
DB Sequence control(顺序控制)—— 含Set_Change_automatic(自动换卷/换规格),调用 FB15/FB18Control DB、DB Project constants(项目常量:空卷芯直径、最大线速度、安全门打开时限速 500 m/min、最大卷径、加减速时间常数等)Tension DB(张力)—— 多段张力设定、实际张力、张力 ON/OFFRider Roll DB(压辊)——RW_Diameter/RW_Dia_Filtered卷径、位置、PID、负载Unwinder DB(放卷)—— 放卷直径、幅宽、侧移UW Side movement
② 运动 / 计长
Lenght Calculating DB(计长)、Rewinder/Unwinder lenght calculating、Interpolation DB(插补/卷绕曲线WF Curves)Speed setpoint ramp generator(速度斜坡)、Crawling Setpoint(爬行速度)
③ 分切 / 刀具
Knives statuses DB/Knives act pos DB(分切刀状态/实际位置)、Cutting Device DB(分切装置)、Trim Set DB(切边设定)、Slitting Interface(分切接口)
④ 芯管 / 卸卷物流
Core Loading/Core Transfer/Core feeding calc./Core Lock positioning/Core Guiders DB(芯管上料/传送/喂料计算/锁紧/导向)Roll Table DB(辊台)、Roll ejector DB(卸卷)、Tail Gluing DB(尾胶)
⑤ 驱动 / 维护 / 报警
Data transfer to Drives、MicromasterDB、ABB Link help data、Drives Maintenance DB(驱动数据/维护)WinCC Alarms、Semi-auto alarms DB、Vibration DB(振动监测RR_vibration)Brake generator DB、Drums DB/Drums brakes(鼓式制动)、Autostop DBWF Recipies/RR Recipe DB(卷绕曲线配方 / 复卷配方)、Measured values DB、ControlsFromHMI
结论:这是一台带「自动换卷 + 自动换规格 + 多刀分切 + 芯管自动上下料 + 尾胶」的高端分切复卷线,不是简单单轴收卷。
四、核心控制算法(复卷机的灵魂)
以下逻辑均来自
SUBBLK.DBT源码中的英文注释与变量命名,非推测。
4.1 张力控制:多段张力设定(Tension)
- 多段张力设定选择(Tension setpoint selector):不同工况用不同设定值——
Threading tension Setpoint(穿带张力)Splice tension Setpoint(接纸/拼接张力,对应Splice Tension ON)Standstill Setpoint(静止张力)Set Change tension level(换卷张力)- 设定值经
Tension setpoint value scaling标度变换后Tension setpoint to Drives下发给变频器; - 反馈
Actual tension from Siemens(实际张力)参与闭环; - 安全/诊断:
Tension control ON/OFF request、Tension < 60% from setpoint(张力不足 60% 报警)。
4.2 卷径与计长:密度法算直径(Diameter / Length)
- 计长:
Calculate pulse widht→Calculate lenght→Lenght Counter reset(编码器脉冲换算长度,可由 WinCC 清零Lenght counter reset from WinCC); - 卷径:
Rewinder lenght calculating/Unwinder lenght calculating算出实时直径,Rider Roll DB.RW_Diameter经RW_Dia_Filtered滤波; - 关键工程手法:用
Paper Dencity(纸张密度)参与卷径估算(质量法算直径),比纯几何法更准; - 限位:
Unwinder Diameter stop selection、Maximum rewinder roll diameter、Winder stop limit just before the max diameter(接近最大卷径自动停机)。
4.3 速度同步与安全限速链(Speed)
Speed setpoint ramp generator:速度斜坡(软启停,避免冲击);Speed Setpoint to Siemens(下发给驱动)、Crawling Setpoint(点动爬行);- 安全限速链:
- 安全门打开(
If safety gate is closed ... do nothing. Otherwise):线速度限到 500 m/min; - 最大线速度限到 2400 m/min(
If speed reference is more than 2400m/min... limit to 2400m/min); - 分级速度状态:
Web speed <30 / <150 / <600 m/min、Web speed at zero(零速)。
4.4 压辊 / 插补 / 振动监测
Rider Roll:压辊位置 + 负载 +Rider Roll PID Data(PID 调节);Interpolation(插补):按WF Curves卷绕曲线平滑过渡;Vibration DB:复卷振动监测(RR_vibration、各测点v_8_0等),用于预测性维护。
五、I/O 与符号映射(1171 条符号表抽样)
符号表同时保留英文/德文地址(I 28.3 / E 28.3,Q 3.6 / A 3.6)。抽样关键信号:
| 类别 | 符号(注释) | 地址示例 |
|---|---|---|
| 安全 | 安全门 Safety gate、急停 SL_SV_EMSTOP | — |
| 芯管 | OS/DS core lock open/close、CP16: Core locks、Core guiders up/down、Core guiders relief pressure | I/Q 多字节 |
| 压辊 | Rider roll down/up、Rider Roll Position | Q 3.6/3.7 |
| 分切 | MC8: Web cutting device turn forward/backward、Cutting device aux cylinder up/down | I/Q |
| 尾胶 | Tail gluing automatic button、Automatic Tail gluin selection | M/I |
| 液压 | Hydraulic pump 41M314 / 41M414 button | I |
| 计数 | Core size counter、Lenght counter reset from WinCC、Zero Speed | M |
| 通讯 | Hardware Interrupt 2、各类 CPxx: 调用点 | — |
I/O 经 ET200 远程站分布在
I0.0–I28.x、Q0.x–Q81.x,配合Pneumatic substation TB32(气动站)与液压泵,构成完整执行层。
六、工程亮点:7 条可复用的实战经验
1. OB35 集中做闭环:所有实时运算(张力/卷径/速度/插补)放在 100 ms 循环中断,主循环 OB1 只做顺序与逻辑,结构清晰、实时性好。 2. 多段张力 + 接纸张力:穿带/接纸/静止/换卷分别设定,是复卷品质的关键。 3. 自动换卷/换规格(Set Change automatic):高自动化,减少停机。 4. 密度法算卷径 + 滤波:比单纯几何法稳,值得借鉴。 5. 完善的安全链:安全门→500 m/min、最大 2400 m/min、分级零速/低速状态、急停、振动监测。 6. 诊断完备:OB81–87 覆盖电源/模块/通讯故障,FB13 做 DP 从站诊断。 7. WinCC 深度集成:报警、清零计长、配方(WF/RR Recipe)全打通。
七、怎么打开、运行、并迁移到 TIA Portal
1. 软件:STEP 7 V5.x(SIMATIC Manager)+ 对应 GSD(ABB_AC80、ET200 TR06AAAB、MM440);需 STEP 7 授权。 2. 打开:SIMATIC Manager → 打开 → 选 P1289_QD.s7p。 3. 缺件补齐:确认本机已装 ABB AC80、ET200、MICROMASTER 的 GSD;否则硬件组态会报红。 4. 下载:先下硬件组态(含 DP 从站参数),再下块(OB/FB/FC/DB),最后下 MM440 参数 DB。 5. 若想用 TIA Portal:用 STEP 7 的「项目迁移」或 TIA 的「从 STEP 7 移植」导入(注意 S7-400→S7-1500 仅逻辑可迁,硬件/GSD 需重配)。
八、给工程师的两点提醒
- 别被文件夹名误导:这是 S7-400 经典项目,不是 S7-1200/1500;注释是英文不是中文。若要发到技术社区/做教程,标题应写「S7-400 分切复卷机」才准确,否则读者下载后发现对不上会差评。
- 源码已可读但非标准 AWL:块源码在
SUBBLK.DBT(STEP 7 内部备忘录格式),用 STEP 7 打开即见完整 STL+注释;提取的可读快照适合快速检索关键词,但不能直接编译。
九、常见问题 FAQ(百度长尾需求)
Q1:西门子 S7-400 复卷机程序用什么软件打开? A:用 STEP 7 V5.x(SIMATIC Manager)打开 .s7p 项目;TIA Portal 不能直接打开经典项目,需走「从 STEP 7 移植」。
Q2:复卷机的张力控制是怎么实现的? A:本工程在 OB35(100ms)里做闭环,按工况选多段张力设定(穿带/接纸/静止/换卷),标度变换后下发给变频器,实际张力反馈参与闭环,并有张力<60% 报警。
Q3:卷径(直径)是怎么算出来的? A:用编码器脉冲算长度/计长,并用「纸张密度(Paper Dencity)」做质量法估算实时直径,再经滤波(RW_Dia_Filtered),接近最大卷径自动停机。
Q4:SUBBLK.DBT 是什么文件,能直接编译吗? A:它是 STEP 7 的块源码备忘录文件,保存了 STL 源码与注释;用 STEP 7 打开工程即可看到完整块,不能直接当文本编译,但可检索。
Q5:S7-400 能迁移到 S7-1500 / TIA Portal 吗? A:逻辑(OB/FB/FC/DB)可经移植工具迁移;但硬件组态、GSD、驱动通讯需按 S7-1500 + 新驱动重配。
十、结语 + 资源
这套 S7-400 分切复卷机原厂程序,是一份难得的、可逐文件读懂的大型专机样本:它用 OB35 集中做实时闭环、用多段张力保证品质、用密度法算卷径、用完整安全链与诊断保障可靠运行,对做造纸/薄膜/印刷/分切设备的工程师非常有借鉴价值。
*本文所有结论均来自对工程文件的逐文件解析,未做任何外部臆测。配套可读源码快照(SUBBLK.DBT 提取的 7.4 万行 STL 文本、MM440 参数 AWL 解码)可用于快速检索关键词。*
发表回复