简介:这份资源面向工业自动化工程师、PLC编程初学者及热力站自控项目开发者,围绕西门子S7-1200系列紧凑型控制器在换热站场景中的实际应用展开,重点解决热力站数据采集、逻辑控制、报警保护与能源管理等自动化需求。压缩包共29个文件,约1.45MB,包含xml、db、plf、idx、mce、ap14等类型,其中mce对应MCGS人机界面组态,ap14与db等文件则承载PLC程序与项目数据,整体结构贴近真实工程归档。资源以“中卫换热站TSCC最终版”为线索,提供了一套较完整的控制方案,读者可从中了解温度、压力、流量等参数的监控思路,以及泵阀启停、异常报警与远程监控的实现方式,对学习TIA Portal编程和MCGS界面设计具有参考价值。目前已有247人学习下载,适合需要借鉴热力站控制案例、完善项目配置与排错思路的技术人员。
1. 拿到一个 plc.rar 别急着双击:西门子 1200 程序包到底装了什么
车间设备停机,前任工程师离职前丢过来一个plc.rar,里面是西门子 1200 的程序备份。你手上只有一台装了博图(TIA Portal)的笔记本和一根网线,老板站在旁边问“多久能恢复”。这个场景几乎每个做西门子 1200 的工程师都遇到过。plc.rar这类压缩包通常不是单一文件,而是博图项目归档、PLC 程序块导出、符号表、硬件组态甚至 HMI 画面的混合体。能不能直接打开、能不能下载回 CPU、下载后会不会把现有配方冲掉,取决于包里到底是哪种形态。这篇笔记就按“拆包 → 识别 → 打开 → 下载 → 排错”的顺序,把西门子 1200 程序恢复这件事讲透,适合刚接触博图的新手,也适合需要接手别人项目的熟手。
2. 先认清 plc.rar 里的四种常见形态:选错打开方式等于白干
2.1 博图项目归档、源程序导出、GSD 文件、纯程序块的区别
西门子 1200 的程序流转有几种典型打包方式,plc.rar只是外壳,里面的东西决定了你下一步用什么工具。第一种是博图项目归档,扩展名通常是.zap15、.zap16或.zap17,对应博图 V15、V16、V17,这种是完整项目,包含硬件组态、程序块、变量表、HMI 和库。第二种是源程序导出,扩展名.scl、.awl、.db,只含代码不含硬件组态,需要新建项目后手动导入。第三种是 GSD/GSDML 文件,用于第三方从站设备组态,跟程序逻辑无关。第四种是纯程序块导出,扩展名.xml,来自单个 FB/FC/DB 的导出,导入时要注意块号和符号冲突。
判断方法很简单:解压后看文件扩展名和目录结构。如果看到Project1.ap15这类文件,说明是博图项目文件夹,直接打开.ap15即可。如果只有一堆.scl和.db,那就是源码导出,需要走“外部源文件”导入流程。我一般会先解压到一个纯英文路径下,避免中文路径导致博图打开归档时报“路径无效”这种玄学错误。
提示:解压前先复制一份原始
plc.rar,所有操作在副本上做,避免解压工具覆盖或损坏原始归档。
2.2 用 7-Zip 解包并识别关键文件的实操步骤
不要用 Windows 自带解压,遇到分卷或加密归档容易只解一半。用 7-Zip 或 WinRAR 右键“提取到当前文件夹”,然后按下面步骤识别。
# 解压后进入目录,列出文件树(Windows 可用 tree /F) tree /F plc_extracted # 典型输出示例: # plc_extracted # ├── Project1.ap15 <- 博图项目主文件 # ├── Project1.ap15~ <- 备份文件 # ├── System/ # ├── AdditionalFiles/ # └── IM/看到.ap15或.ap16就说明是完整博图项目,直接双击打开。如果只有.scl、.awl、.db,说明是源码,需要新建项目后通过“外部源文件”导入。如果看到.gsd或.gsdml,那是设备描述文件,跟程序恢复无关,单独安装到硬件目录即可。
参数说明:.ap15对应博图 V15,.ap16对应 V16,.ap17对应 V17。版本不匹配时博图会提示“项目已使用更高版本创建”,此时要么升级博图,要么让提供方导出低版本归档。这一步没有后悔药,版本对不上就是打不开。
2.3 版本不匹配时用“项目另存为”降级的边界
博图支持高版本打开低版本项目,但不支持低版本打开高版本。如果你装的是 V16,拿到的是 V17 归档,唯一正规做法是找一台装了 V17 的电脑打开后“另存为”V16 版本。另存为时注意:V17 里用到的新指令、新硬件在 V16 中可能不存在,另存为会报错并列出不兼容项。常见不兼容包括新版本 PID 指令、新固件 CPU 型号、新 HMI 控件。遇到这种情况,要么升级博图,要么让原工程师导出源码.scl后在低版本重新编译。
我一般会在项目交接时要求对方同时提供归档和源码导出两份,归档用于快速恢复,源码用于跨版本兜底。这个习惯帮我省过至少三次通宵。
3. 在博图里打开西门子 1200 项目并核对硬件组态
3.1 打开归档、输入密码、等待项目树加载
双击.ap15文件,博图会自动启动并提示“打开项目”。如果归档带密码,会弹出输入框,密码通常由原工程师设置,常见的是设备编号或123456,但不要暴力尝试,问清楚再输。打开过程中博图会解压到临时目录,大项目可能等几分钟,期间不要强制结束进程,否则临时文件残留会导致下次打开报“项目已锁定”。
打开后先看项目树结构:PLC_1下面有“设备组态”“程序块”“工艺对象”“监控与强制表”。先点“设备组态”,核对 CPU 型号和固件版本。这一步非常关键,如果实际 CPU 是 1214C DC/DC/DC,而组态里是 1215C,下载时会报“硬件不匹配”直接拒绝。
项目树典型结构: PLC_1 [CPU 1214C DC/DC/DC] ├── 设备组态 ├── 程序块 │ ├── Main [OB1] │ ├── 启动 [OB100] │ ├── 循环中断 [OB30] │ ├── 函数块 FB │ └── 数据块 DB ├── 工艺对象 └── 监控与强制表3.2 核对 CPU 型号、固件版本和 IP 地址的三个位置
第一个位置是设备组态里的 CPU 属性,看“常规 → 目录信息”里的订货号,比如6ES7 214-1AG40-0XB0对应 1214C DC/DC/DC。第二个位置是“PROFINET 接口 → 以太网地址”,看 IP 地址和子网掩码,默认通常是192.168.0.1。第三个位置是“系统常数”里的硬件标识符,下载前不用改,但排查模块故障时会用到。
如果实际 CPU 订货号和组态不一致,有两种处理:一是改组态匹配实际硬件,二是换 CPU。改组态时注意固件版本也要一致,V4.0 和 V4.2 的 CPU 在指令支持上有差异。我遇到过组态是 V4.2 但实际 CPU 是 V4.0,下载后某些新指令报错,最后只能降级组态重新编译。
注意:修改硬件组态后必须重新编译整个 PLC,否则下载的仍是旧组态。
3.3 编译整个 PLC 并处理常见编译错误
按Ctrl+B或右键PLC_1选择“编译 → 软件和硬件(全部重建)”。编译错误通常集中在几类:未定义的变量、块号冲突、数据类型不匹配、库文件缺失。未定义变量多半是符号表没导入,检查“PLC 变量”表是否完整。块号冲突发生在导入源码时,两个 FB 用了同一个块号,改其中一个即可。数据类型不匹配常见于 DB 块修改后未更新接口,右键块选择“更新接口”能解决大部分。
编译通过后,程序块前面会出现绿色对勾。如果有黄色警告,比如“块未使用”或“变量未使用”,不影响下载但建议清理。红色错误必须解决,否则下载会中断。
4. 把程序下载回西门子 1200 CPU 的完整命令与参数
4.1 设置 PG/PC 接口和网段匹配
下载前先确认笔记本网卡和 CPU 在同一网段。CPU 默认 IP 是192.168.0.1,笔记本网卡设为192.168.0.100,子网掩码255.255.255.0。然后在博图菜单“在线 → 可访问的设备”里扫描,能扫到 CPU 说明物理连接正常。如果扫不到,检查网线、网卡驱动、防火墙,以及是否用了虚拟机桥接模式。
笔记本网卡设置示例: IP 地址:192.168.0.100 子网掩码:255.255.255.0 默认网关:留空 DNS:留空扫到设备后,在“在线访问”里选择你的网卡,双击设备会显示 MAC 地址和 IP。如果 CPU 的 IP 和项目组态不一致,可以先通过“在线访问”临时改 IP,再下载组态。
4.2 下载程序块和硬件组态的两种模式
博图下载有两种:下载到设备(完整下载)和下载到设备(仅更改)。完整下载会覆盖 CPU 内所有块和硬件组态,仅更改只下载修改过的部分。首次恢复程序用完整下载,后续调试用仅更改。
操作路径:选中PLC_1,点击工具栏“下载到设备”图标,弹出对话框后选择“全部”或“仅更改”。下载前博图会检查 CPU 状态,如果 CPU 在 RUN 模式,会提示“是否停止模块”,选“是”继续。下载完成后 CPU 会重启,如果组态里设置了启动 OB,会自动进入 RUN。
下载对话框关键选项: - 接口类型:PN/IE - PG/PC 接口:你的网卡 - 子网:PN/IE_1 - 下载模式:全部 / 仅更改 - 下载后动作:启动模块参数说明:如果勾选“下载后启动模块”,CPU 下载完自动 RUN;不勾选则停在 STOP,需要手动拨到 RUN。首次下载建议勾选,方便验证程序是否正常。
4.3 下载后验证:监控表、强制表和诊断缓冲区
下载完成后不要直接走人,打开“监控与强制表”,新建一个监控表,把关键变量拖进去,比如启动按钮、运行输出、故障字。在线后看数值是否随实际信号变化。如果某个输出不动作,先看强制表是否被强制,再看诊断缓冲区。
诊断缓冲区在“在线 → 诊断 → 诊断缓冲区”,里面按时间倒序记录 CPU 事件,包括模块故障、程序错误、通信中断。常见条目“模块存在但不可用”通常是硬件组态不匹配,“区域长度错误”是 DB 块访问越界。诊断缓冲区是排查下载后异常的第一现场,比猜程序逻辑快得多。
5. 西门子 1200 程序恢复中的避坑与排查
5.1 现象:下载时报“硬件不匹配”,原因:组态 CPU 订货号与实际不符
现象是下载对话框走到一半弹出“硬件组件不匹配,无法下载”。原因通常是项目组态的 CPU 订货号、固件版本和实际 CPU 不一致。解决方法是回到设备组态,把 CPU 型号改成实际订货号,固件版本也改成实际版本,然后重新编译全部再下载。如果实际 CPU 是新型号而博图硬件目录里没有,需要安装对应 HSP 支持包。
5.2 现象:打开归档报“项目已锁定”,原因:上次异常退出残留临时文件
现象是双击.ap15后博图提示“项目已被另一用户锁定”或“无法获取项目锁”。原因是上次打开时博图异常退出,临时目录里残留了锁文件。解决方法是关闭博图,删除C:\Users\你的用户名\AppData\Local\Siemens\Automation\Logfiles下的临时文件,或者重启电脑。更稳妥的做法是把归档解压到另一个目录再打开,避免锁文件冲突。
5.3 现象:程序下载后 CPU 停在 STOP,原因:启动 OB 缺失或硬件故障
现象是下载完成 CPU 不进入 RUN,STOP 灯常亮。原因可能是启动 OB100 里写了条件不满足的指令,或者有模块故障导致 CPU 拒绝启动。解决方法是打开诊断缓冲区看具体事件,如果是“启动 OB 中出错”,检查 OB100 逻辑;如果是“模块故障”,检查硬件组态和实际模块。临时可以把 CPU 拨到 STOP 再拨回 RUN,看能否启动,但根本解决还是要处理故障源。
5.4 现象:监控表数值不刷新,原因:PG/PC 接口选错或网段不通
现象是在线后监控表显示灰色,数值不刷新。原因通常是 PG/PC 接口选成了无线网卡或虚拟网卡,或者笔记本和 CPU 不在同一网段。解决方法是“在线 → 可访问的设备”重新扫描,确认走的是有线网卡。如果扫描不到,用ping 192.168.0.1测试连通性,不通就检查网线、网卡 IP、防火墙。虚拟机用户注意桥接模式要选对物理网卡。
5.5 现象:导入源码后块号冲突,原因:多个源文件用了同一 FB 编号
现象是通过“外部源文件”导入.scl后编译报“块号已存在”。原因是多个源文件里定义了同一个 FB 编号,或者与现有块冲突。解决方法是打开源文件,修改FUNCTION_BLOCK FB100里的编号为未占用的值,或者导入时勾选“覆盖现有块”。我一般会先导入到空项目,确认无冲突后再合并到目标项目。
6. 用参考项目交叉验证程序完整性的一个笨办法
程序恢复完、CPU 跑起来,不代表逻辑就是对的。我习惯做一次交叉验证:把关键输出点的逻辑在监控表里强制一遍,看实际动作是否符合工艺。比如输送带项目,强制启动按钮为 1,看电机输出是否在延时后吸合;强制急停为 1,看所有输出是否立即断开。这个办法笨,但能发现大部分“程序能跑但逻辑错”的问题。
更系统的做法是建一个验证清单,把每个工位的输入输出列成表,逐条强制并记录结果。下面是我常用的验证表格式:
| 验证项 | 强制变量 | 预期动作 | 实际动作 | 结论 |
|---|---|---|---|---|
| 启动 | I0.0=1 | Q0.0 延时 2s 吸合 | Q0.0 延时 2s 吸合 | 通过 |
| 急停 | I0.1=1 | 所有 Q 立即断开 | Q0.0 断开,Q0.1 未断 | 不通过 |
| 复位 | I0.2=1 | 故障字清零 | 故障字清零 | 通过 |
不通过的那条就是隐患。上表里急停未断开 Q0.1,说明急停逻辑漏了一个输出,需要回到程序里补。这种验证不需要额外工具,博图自带的监控表就能做,但需要你对工艺动作有基本了解。如果工艺复杂,可以先找操作工确认每个按钮的预期动作,再逐条验证。
最后一个习惯:每次恢复完程序,把最终能跑的版本重新归档一份,命名带上日期和“已验证”字样,比如Project1_20250115_verified.zap16。下次再出问题,直接从这个归档恢复,不用再折腾一遍。这个习惯看起来多余,但当你半夜被叫去现场、手头只有手机热点和一台陌生笔记本时,一个已验证的归档就是救命稻草。希望帮到你。
本文还有配套的精品资源,点击获取