安全程序检查过了,交付目录里也有一份 PDF,但接手的人仍然可能说不清:检查的是哪套工程,文档属于哪个版本,目标 CPU 运行的又是哪一版。程序验收需要把功能证据和版本身份连起来,不能只留一张签名相同的截图。 [1] [6]

这是「SIMATIC Safety 工程笔记」的交付篇,写给已经能组态和编写安全程序、准备整理验收资料的读者。以一台 S7-1500F 及其所属 F-I/O 为主要对象,沿“确定参照版本—核对摘要—识别在线程序—定位变更—归档”展开;首次验收没有历史参照时,应按初始系统验收建立基线,不伪造一份“已批准旧版”。

资料基线为 Siemens《SIMATIC Safety – Configuring and Programming》V21(11/2025)。下面是文档导读与资料组织建议,不是本站已完成某台机器验收的记录;不覆盖全部产品、冗余系统、认证报告和行业标准,也没有进行 TIA Portal 操作复现或实机测试。

开始前:明确检查人员、项目权限、设备状态及变更冻结安排。在线识别期间应防止其他工程站同时下载;涉及后续下载、参数或权限修改时,必须另外落实批准流程和风险控制。本篇不会为了取得绿色状态而要求覆盖现场程序、解除防护或启动设备。 [5]

一、先确定验收对象和参照版本

Siemens 的系统验收不只包括程序代码,还涉及硬件、安全通信、摘要完整性、在线/离线一致性及其他条件;相关库元素和受保护块也有各自检查要求。验收人员所需的独立性,应在安全计划中按要求确定,不能由一个博客检查表替项目签发结论。 [1]

准备资料时,先将三个对象分别命名。下表是本文建议的工作记录方式,A、B、C 仅表示角色,不是虚构项目的测试结果。

对象 应当是什么 不能用什么替代
A:参照工程 上次已经验收并保留的完整工程及对应记录。 不能把刚从现场取得、未经确认的副本直接命名为已验收基线。
B:待验收工程 本次准备核查的确定版本,改动及形成过程有记录。 不能只凭“最终版”文件名或较新的日期确认身份。
C:目标 F-CPU 本次工程实际应该运行的设备。 不能只凭网络里有同名 CPU 就确定连接对象。

变更验收比较的是 A 与 B;最终程序身份还要证明 B 与正确的 C 对应。这两个比较回答不同问题。首次验收只有待验收工程时,先按完整验收要求核查,验收通过后的归档才成为下一次的 A。 [1] [10]

建议为 B 先保存一个不再继续编辑的副本,并记录软件及 Update、CPU 型号与固件、Safety system version(安全系统版本)、实际使用的安全指令版本、设备标识和本次变更范围。这里的“冻结”是工作约定,不是要求新增一个软件功能或把文件改成只读就算批准。

拿不到可信参照工程时,可以先盘点现状和缺失资料,但不应写成“相对原批准版本没有变化”。资料中缺的恰好是比较起点,不能用现场运行正常来补齐。

二、用签名识别对象,不让签名代替验收

打开目标 CPU 的 Safety Administration(安全管理),在 General(常规)区域查看程序状态和 F 签名。不同签名覆盖不同部分;下表仅列与本篇核对相关的范围,不是一张通用合格判定表。 [2]

字段 主要核对范围
Collective F-Signature 安全相关项目数据的总体识别,用于与预期版本建立对应。
Collective F-SW-Signature S7-1200/1500 安全程序部分的变化线索。
Collective F-HW-Signature S7-1200/1500 故障安全硬件组态部分的变化线索。
F-Communication address signature 相应 Flexible F-Link 连接名称和 F-communication UUID 的变化;不能泛指所有网络地址。

上表依据 General 区域的字段定义。签名提供的是数据身份信息,不会判断安全门安装位置、实际接线或机械停止效果是否满足要求。即便一套错误逻辑在离线与在线完全相同,也不能靠“一致”把它变成正确的安全功能。 [2] [1]

阅读差异说明:V21《Acceptance of Changes》的一处总述把安全程序变化的括注写成了 F-HW;同页后面的安全程序、硬件分节及 General 字段定义分别使用 F-SW、F-HW。本文明确采用后者的对应关系,没有把这处文字差异解释成另一种签名机制。 [2] [10]

预期签名应来自待验收的确定工程及其摘要,而不是先抄 C 的在线值,再拿这个值证明 C 正确。比较记录应保留数值来源和对象。签名相符后还要看一致性与版本比较,不能只看十六进制字符串。 [5] [6]

三、生成并核对完整的 Safety Summary

Safety Summary(安全摘要)是安全相关项目数据的文档,不是一张验收证书。先在 B 上完成本阶段所需检查与编译,再从同一确定版本生成摘要;输出以后又改了工程,就不能继续把旧摘要当作新版本的文档。 [3]

  1. 打开需要生成摘要的 F-CPU 的 Safety Administration,在 General → Safety summary 中选择 Create safety summary。
  2. 在打印对话框检查布局和范围。需要把 F 块及相关数据类型的源码纳入验收文档时,在 Properties 中选择 All;Compact 不包含源码。
  3. 选择所需输出方式并执行 Print,保存纸质或电子文档。输出后立即核对文档完整性,不把“文件创建成功”当作检查结束。

以上入口与选项来自 V21 的创建说明。打印格式应能清楚保留页码、页脚和正文;不要为了压缩页数使用造成行内容截断的布局。 [3]

页数有一个特别容易误读的地方:摘要中的 Number of pages in the safety summary 不包含 F 块源码页。核对时应分别确认摘要正文和附带源码都完整;不能看到实际 PDF 页数更多,就随手删掉“多余页”。 [4]

在摘要的 General information 中确认总体签名,并与 B 及 C 的对应值核对。采用 All 生成的源码页也带有所属程序的签名页脚;单独用其他方式打印块,不一定保留这种关联。电子签名、批注或复制以后,还要再次检查完整性,不能把不同版本的页面拼成一套。 [3] [4]

这项检查可以留下简洁记录:生成自哪份工程、输出范围、摘要及源码是否齐全、签名对应是否正确、是否有截断,以及谁复核了后处理文件。本文没有实际项目摘要,不提供填好“通过”的示例 PDF。

四、在正确 F-CPU 上核对在线身份

在线检查之前:再次确认设备身份,并维持禁止其他工程站并行下载的安排。多个 CPU 同时可达时,应按现场允许的方式核对真实对象;V21 给出了 Online & diagnostics → Online accesses → Flash LED 作为识别例子,而不是让人只看搜索列表中的第一台。 [5] [6]

下图沿用原文的 Safety Administration 管理界面配图,用于辅助辨认管理入口。它不提供本次项目的预期签名,也不代表本站的在线检查结果;下面的检查项以所引用的 V21 文字说明为准。

Safety Administration Editor 管理界面示例,辅助定位安全程序状态和签名信息
图 1:先确认目标 CPU,再在管理界面读取程序状态和签名;图中数值不作为本项目参照(图片来源:沿用旧文标注的 Siemens《SIMATIC Safety – Configuring and Programming》管理界面图;媒体 215,不作为本轮版本或实测证据)。

在该 CPU 的 Safety Administration 建立在线连接后,依次核对在线总体签名、B 的离线总体签名和对应摘要;再检查 Safety program status、Status 与 Version comparison。不要只截取其中一个绿色图标。 [5] [6]

观察结果 处理原则
总体签名不一致 先复核目标、B 的版本和下载记录,保留差异;需要重新下载时转入已批准的变更流程。
总体签名一致,但 F 块版本比较不同 不能记录为“所有版本完全相同”;查明版本差异及预期装载版本。
无在线连接,或无法确定状态 本次在线身份检查未完成,不沿用缓存画面作当前结论。
签名、一致性及版本检查符合要求 记录程序身份核对结果;实际安全功能与硬件验证仍由相应证据证明。

这张表整理的是识别结果,不是自动处理动作。手册在某些差异情况下给出下载措施,但不能脱离设备状态,直接用任一方向覆盖另一方向。先说明要保留哪套数据、为何应装载这一版,再按批准流程执行。 [6]

S7-1500F 固件低于 V3.1 时,还应在 Web server F-admins 中核对在线与离线的 F-admin 权限;较新固件采用相应用户与角色管理。旧版检查入口不能套到所有设备,实际权限路径按本项目固件及管理方式核对。 [5] [8]

五、把硬件、权限和签名之外的项目补齐

先把摘要中的 F-I/O 清单与现场设备核对:应有的是否齐全、是否混入不属于这台 CPU 的对象、订货号是否对应。实际安装与组态订货号不同,需要有替换兼容依据,不能只因为模块能上线就认定相同。 [7]

在 Hardware configuration of F-I/O 的明细中分别核对 Module data(模块数据)和 Channel parameters(通道参数),包括与安全需求对应的监控时间、评估和恢复设置。对参数签名不含地址的比较,PROFIsafe 地址唯一性仍是另一个检查对象。 [7]

F-BaseID 尤其不能漏在总体签名后面:它不进入 Collective F-Signature。先确认项目是否使用相关地址类型 3 功能,以及该值是否涉及本次识别或归档;相关时另行核对在线、离线及打印值。不支持该功能的设备可能显示灰色区域,并非因此出现一个安全故障。 [2] [3]

V21 的程序识别说明没有要求所有项目无条件追加 F-BaseID 检查;它说明可按需要核实在线实际值。本文也不为地址类型 2 的旧项目凭空添加 F-BaseID,更不通过手工改值消除不一致。需要采用类型 3 时,生成与分配机制另查对应文档。 [5] [7]

投产检查还包括 Safety mode 的禁用能力和访问保护。当前显示安全模式已激活,不等于设置上已经防止其被意外禁用;应在摘要的 Safety program settings 中核对。使用用户管理时,也要检查高权限是否仅给授权人员,并按手册要求处理 Anonymous 的相关权限。检查记录不应公开密码或登录凭据。 [8]

同一章节还要求检查从标准程序读入的数据是否有相应合理性检查、F-FB/指令调用的实例使用,以及摘要生成版本与编译版本的关系。库元素和受保护块的对应资料也要纳入验收。本文没有核对某项目的实际库清单与认证报告附件,不能替它们写“已符合”。 [8] [1]

这些项目解释了为什么“代码没变”不等于交付状态完全没变。权限、现场模块、接线和文档关联都各有证据,不能只让总体签名承担它没有覆盖的任务。

六、变更验收先离线比较,再确定复验范围

初始验收后的修改,应拿 A 与 B 比较,并按影响分析确定需要复验的内容。用于变更验收定位安全程序或 F-I/O 组态差异时,不能以比较编辑器中的离线—在线结果代替离线—离线比较。在线识别解决“装载的是谁”,不能还原缺失的历史参照。 [9] [10]

比较前确认两份工程均已一致编译。在比较编辑器仅启用 Safety 比较条件,按需要采用 Compare only F-blocks relevant for certification 过滤;既要看用户块,也要看相关 System blocks。过滤只是帮助定位,不会替代影响分析。 [9] [10]

点击左侧 Program blocks 后,再读取 Comparison result 中的总体签名和一致性信息。文件夹汇总图标只汇总下级块,不能独自说明整个安全程序相同。比较结果可通过 Project → Print 输出,按手册要求选择对象及属性范围留档。 [9]

一个块被标为变化,详细代码却看不见修改,并不必然是显示错误;变量表地址等外部变化可能影响该块。应追查映射和依赖,不为了让比较变绿而取消比较条件。 [9]

变更定位之后还有影响分析:按 S072,既要确认有意修改正确、完整,也要检查其他位置是否出现无意改动。S071 对可能改变 I/O 地址与接线对应的变化要求接线测试;手册还明确,CPU 迁移后不适用这里的变更验收方式,不能默认仍按小范围复验处理。 [10]

以“修改某个反馈监控时间”为一个明确的假设例子:记录不应止于常量前后值,还应追到调用实例、输出回路、接通与释放的观察条件及恢复后动作。具体哪些测试要重做,应由项目的影响分析给出;本文不替没有提供设备和记录的工程指定最终毫秒值或通过结论。

建议把每项差异写成“变化对象—原因—涉及安全功能—需要复核的资料或测试—实际结果”。当结果与预期不同,保留原始观察并处理差异;没有执行的测试就记为未完成,不把编译通过补进实际结果栏。

七、把交付资料保存成能再次核对的版本

验收完成后,应连同相关文档保存工程,使这一批准版本能够作为后续验收的参照。只保存摘要而丢失工程,或只留工程却没有对应的测试与批准记录,都会使下一次的比较起点不完整。 [1]

下面是本站建议的资料分组示例,不是 Siemens 规定的目录名,也不是已经存在的交付包。各目录代表需要归到同一发布版本下的材料;不应把空文件夹当作相应工作已经完成。

release-example/
  01-project/          完整工程归档与打开所需的版本说明
  02-requirements/     安全功能要求、设备与接线依据
  03-safety-summary/   完整摘要、源码及完整性核对记录
  04-comparison/       参照版本、离线比较与影响分析
  05-tests/            测试条件、预期、实际观察和问题处理
  06-online-identity/  目标设备、在线身份与权限检查记录
  07-release-record/   批准范围、未关闭事项和后续维护说明

资料索引至少能回答:这是哪台设备的哪一版、参照哪一版、工程和摘要如何对应、做了哪些测试、由谁在什么范围内确认。给出的标识必须能查到具体文件或记录,不用“参见最新版”代替确定版本。

每个安全功能的测试记录应有独立身份和前提。建议保留功能名称、输入与输出对象、动作顺序、预期结果、实际观察、测量条件、偏差处理和记录人。只观察了 PLC 位,就不要把结果写成机械停止时间已验证;只测试了正常关闭安全门,就不要声称启动和故障恢复全部覆盖。

归档后还可以做一次资料可用性检查:在受控副本上确认工程能够以记录的环境打开,摘要与比较文件能阅读,索引没有指向错误版本。若打开过程提示升级,应保留原归档并另存副本,不把被自动转换的工程静默覆盖成旧批准版。这是维护建议,不能替代程序和设备的功能验证。

交付或恢复投运时,再分别核对设备的当前故障、F-I/O 重新集成和启动保护。程序版本正确,并不自动让尚未满足的运行条件消失;相关机制可查F-I/O 钝化、重新集成与启动保护。

最终交接的应是一组互相对应的证据:要求说明要实现什么,测试说明实际观察了什么,签名和在线识别说明检查过的数据在哪里,归档则让下一位维护人员还能重新核对。其中任何一项尚未完成,都如实保留,而不是用“设备已经能运行”替代。

资料来源

以下均为 Siemens《SIMATIC Safety – Configuring and Programming》V21,发布版本日期 11/2025;按本次实际读取的章节列出。目录建议、记录格式及假设例子由本文整理,不是实际项目输出。

1. Siemens:Overview of System Acceptance。验收范围、独立性要求、相关文档和工程归档;未读取其链接的认证报告全文。

2. Siemens:‘General’ area of the Safety Administration Editor。Safety program status、F-signatures、PROFIsafe;签名分类及版本比较。

3. Siemens:Creating a safety summary。Procedure、输出范围、页脚和摘要内容;不把 Compact 当成含完整源码的输出。

4. Siemens:Completeness of the safety summary。全文;源码页不包含在摘要页数中、后处理完整性和三方签名对应。

5. Siemens:Program identification。以 Safety Administration Editor 识别为主;目标、预期值、固件相关权限与并行下载限制。

6. Siemens:Identity of online and offline program。在线/离线/摘要对应及状态、版本比较;不展开 S7-1500HF 的特殊流程。

7. Siemens:Completeness and correctness of the hardware configuration。模块完整性、订货号、参数表、地址唯一性及 F-BaseID;不在本文展开所有特殊组态。

8. Siemens:Other characteristics。标准数据合理性检查、实例、软件版本、禁用安全模式选项及投产权限。

9. Siemens:Comparing Safety Programs。离线/离线限制、Safety 比较条件、结果与过滤范围、打印比较结果。

10. Siemens:Acceptance of Changes。参照工程、变更定位、影响分析、S069/S071/S072、CPU 迁移边界;总述中的 SW/HW 括注差异单独说明。

图片说明:管理界面图沿用原文媒体及其来源标注;本轮未取得该图的独立文件加载、解码和原图版本比对结果。它只辅助定位,不用于证明实际签名、版本或验收状态。第三方图片权利归原权利人,不纳入本站原创文字的 CC BY-NC-SA 许可。

修订说明:重组参照工程、摘要完整性、在线识别、投产检查、变更比较和归档之间的关系;正文不设目录。资料复核:2026-09-10。本文为文档导读,未进行 TIA Portal 操作复现、仿真或设备验收。