IEC 62138:2018 — 核电厂 — 执行B类和C类安全功能的计算机化I&C系统软件

国际标准 | 第2版 | 2018年7月发布 | SC 45A

📋 引言与范围

IEC 62138:2018 规定了核电厂中执行安全类别 B 或 C 功能的计算机化仪表控制系统(I&C)的软件安全要求,如 IEC 61226 所定义。该标准在 IEC 61513 核 I&C 系统安全的总体框架内,补充了 IEC 60880(覆盖 A 类功能)。

该标准涵盖了完整的软件安全生命周期——从需求规范到设计、实现、验证、确认、安装、运行和修改。它同时适用于应用软件(工厂特定)和系统软件(预开发平台和操作系统),并涵盖用于安全 2 级和 3 级 I&C 系统的软件。

💡 工程洞察
2018 年第2版相比 2004 年第1版引入了重大技术变更。影响最大的是预开发软件验证方法的修订,反映了核电行业日益依赖商用现货(COTS)组件和软件平台的趋势。2018 版提供了更详细的正确性证据标准,包括对运行经验文档和功能适用性分析的具体要求。

📊 关键概念与分级原则

IEC 62138:2018 建立在几个工程师必须理解的基础概念之上:

概念 描述 工程含义
安全类别 (B/C) B 类功能:失效可能导致显著的放射性物质释放。C 类功能:失效可能导致轻微释放。 B 类系统需要比 C 类更严格的软件验证和确认。
系统等级 (2/3) 2 级系统执行 B 类功能;3 级系统执行 C 类功能。 第6条中的要求标记为适用于 2 级、3 级或两者。
分级 要求的应用与功能的安全重要性成比例。 并非所有要求均匀适用——标准区分了等级特定的适用性。
纵深防御 针对软件故障和共因失效的多层保护。 2 级系统需要软件多样性和独立性来防御 CCF。
⚠️ 关键考虑 — 共因失效 (CCF)
标准专设子条款(6.12)讨论软件共因失效的防御。这是核安全软件区别于几乎所有其他工业软件安全标准的独特方面。担忧在于潜伏的软件故障可能同时禁用 I&C 系统的多个冗余通道。缓解策略包括软件多样性(不同算法、不同编程语言、不同开发团队)、功能多样性和纵深防御架构。

⚙️ 软件生命周期要求

标准围绕结构化安全生命周期组织软件要求。关键工程要求包括:

📋 软件需求规范(第6.4条)

需求规范必须完整、无歧义、可验证和可追溯。对于 2 级系统,规范必须使用形式化或半形式化表示法(如状态图、决策表或形式逻辑)。需求必须可追溯到 IEC 61513 的系统需求。

💻 软件设计与实现(第6.5–6.6条)

设计必须模块化、层次化且限制复杂性。对于 2 级系统,标准推荐使用面向应用的语言(如 IEC 61131-3 的功能块图)而非通用语言(C、C++),因为它们限制编程结构并降低编码错误可能性。使用通用语言时需要额外验证措施,包括编码标准合规性、静态分析和同行评审。

🔍 验证与确认(第6.2.2、6.7–6.8条)

活动 2 级 3 级
需求验证 独立审查 + 可追溯性分析 审查
设计验证 独立审查 + 仿真 审查
代码验证 静态分析 + 结构覆盖(MC/DC) 静态分析 + 语句覆盖
集成测试 功能 + 鲁棒性 + 边界值 功能测试
确认 独立 V&V 团队,模拟电厂条件下的完整功能测试 功能测试
验证独立性 与设计团队组织上独立 同一组织、不同人员
✅ 最佳实践
IEC 62138 审核中一个常见的不符合项来源是可追溯性矩阵。标准要求系统需求、软件需求、设计元素、代码模块、测试用例和测试结果之间的双向可追溯性。我们建议在项目启动时(在任何设计工作开始之前)建立可追溯性框架,并在整个生命周期中作为活文档维护。对于 2 级项目,强烈推荐使用专用需求管理工具(如 DOORS、Jama)。

🔧 预开发软件验证

IEC 62138:2018 在实际应用中一个最具挑战性的方面是预开发软件(PDS)的验证——在核电项目开始前已存在的软件,被考虑用于安全分级 I&C 系统。

标准建立了一个严格的验证过程,需要在四个方面提供文件化证据:

  1. 安全文档:PDS 供应商必须提供安全文档,包括开发过程描述、验证活动和已知异常。
  2. 正确性证据:可包括成熟使用论证(在类似应用中 ≥ 2 年满意运行经验)、形式化验证结果或广泛的测试数据。
  3. 功能适用性:必须评估 PDS 以确认其功能能力与核电应用需求匹配。
  4. 有限功能数字设备:对于简单设备(如无复杂 OS 的微控制器),IEC 62671 提供替代验证途径。
⚠️ 实际挑战
“成熟使用”论证通常是 PDS 验证中最有争议的部分。标准要求以证明软件在与核电应用相关的配置中的行为的方式来记录运行经验。通用的”在汽车应用中数百万小时使用”通常不被接受,而没有详细分析使用概况、环境条件和失效模式与核电应用的比较。

❓ 常见问题

问1:IEC 62138 与 IEC 61508 的关系是什么?

IEC 62138 是通用安全标准 IEC 61508-3(软件要求)的核电行业特定实施。IEC 62138 的附录 C 提供了两份文件之间的详细映射。通常,IEC 62138 对 2 级系统的要求对应 IEC 61508 的 SIL 2–3,而 3 级对应 SIL 1–2。然而,IEC 62138 包含了超出 IEC 61508 的核电特定要求(如 CCF 防御、验证独立性)。

问2:标准是否适用于反应堆保护系统以外的核电仪表软件?

是的。该标准适用于执行 B 类或 C 类安全功能的所有 I&C 系统,包括辅助厂房系统、辐射监测、乏燃料处理等。它适用于非安全 I&C 系统(4 级/NC 类),这些系统可遵循 IEC 62645 或其他适当标准。

问3:我能否在 2 级安全系统中使用 Linux 操作系统?

在 2 级系统中使用通用 OS 是可能的,但从验证角度来看极具挑战性。标准对预开发软件的要求(第6.3条)适用于整个 OS 内核、库和设备驱动程序。实践中,大多数 2 级系统使用小型实时 OS(含安全案例的 VxWorks CERT)、裸机方法或经过验证的安全 OS。Linux 的 2 级认证曾有尝试但很少成功,原因是复杂性以及难以提供所需的正确性证据。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注