想象你的机器人是个即将开万人演唱会的大明星,台下粉丝狂热、狗仔偷拍、甚至有极端分子想搞破坏。你不可能把所有人挡在场外,但你必须请一支安保团队,让“演出顺利完成、没人受伤”的概率高到可以接受。功能安全要做的事,就是先评估这位明星面临的威胁有多大,再决定配几个保镖、配什么级别的防弹车,最后考核保镖团队是否真的够格。SIL 和 PL,就是这套安保体系的“星级评定标准”——SIL 是国家级的行政法规(IEC 61508),PL 是行业界的星级认证(ISO 13849)。这篇文章会带你从风险评估、等级划分、设计准则到认证测试,完整走一遍“给机器人配安保”的全流程。

岗位关联

学习 SIL 与 PL 等级评估,是机器人产品通过安全认证、合法上市的关键技能。掌握它,你就能从“只会写代码”升级为“能说清系统为什么安全”的完整工程师。

目录
  1. 可视化演示
  2. 功能安全概述
  3. 风险评估方法
  4. SIL等级划分
  5. PL等级划分
  6. 评估流程
  7. 设计准则
  8. 认证测试
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示持续集成与持续交付流水线的多阶段执行过程,从代码提交到自动部署的完整流程可视化。

本节配有交互动效(进入视口后自动加载,约 3KB)。

CI/CD — 代码提交到自动部署 代码提交触发CI流水线自动构建和测试 测试通过后自动部署到预发布或生产环境 commit→build→test→deploy CI/CD实现代码从提交到部署的自动化流水线

功能安全概述

明星经纪人第一次听到“要给艺人配专业保镖团队”时,第一反应往往是:“我们不是已经有助理和司机了吗?”机器人开发者也常问:“程序里不是已经写了急停按钮吗?”这里的差异,正是“普通防护”与“功能安全”的分水岭。普通防护是“出了事之后尽量止损”,而功能安全要求的是“在危险发生时,安全系统有足够高的概率正确执行它的任务”——就像保镖必须在子弹飞来的瞬间扑上去,而不是事后叫救护车。

把这个直觉翻译成工程语言:功能安全(Functional Safety)是系统整体安全的一部分,它依赖于安全相关系统(如安全 PLC、安全光幕、急停回路)对危险事件的正确响应。核心评价指标叫“安全完整性”(Safety Integrity),它度量的正是“安全功能在需要时能完美执行的概率”。安全完整性与危险失效概率是互补关系:失效概率越低,完整性越高。

功能安全不是写进代码里的某个 if 语句,而是一整套贯穿“需求分析—设计—实现—验证—运维”的管理体系,这就是安全生命周期。支撑它的标准体系像一个金字塔:最顶上的是 IEC 61508 这个“母标准”,面向所有行业;机器人行业则使用它的衍生标准 ISO 13849(性能等级 PL)和 IEC 62061(SIL),以及机器人专用标准 ISO 10218。回到比喻:母标准是“国家安保总则”,行业标准是“演艺圈安保实施细则”——总则定原则,细则给方法。

SR=1−PFH\displaystyle SR = 1 - PFH
这条公式说明了“安全可靠度 SR”与“每小时危险失效概率 PFH”此消彼长的关系。PFH 越低,代表安全功能越“靠谱”。
  1. PFH 项PFH(Probability of dangerous Failure per Hour)是每小时发生危险失效的概率,它是衡量安全等级最核心的“考试成绩”。
    PFH=NfailThours\displaystyle PFH = \frac{N_{fail}}{T_{hours}}
  2. 1 减去 PFH安全功能正常工作的概率与失效概率互补——不失效就等于安全,所以用 1 去减。
    SR=1−PFH\displaystyle SR = 1 - PFH

风险评估方法

配保镖之前,安保公司要先做“威胁评估”:这位明星会不会被跟踪?演唱会场地有没有视野盲区?粉丝会不会冲台?机器人安全评估的第一步也同样,叫危险源辨识——把机器人运行中可能伤人的场景全部列出来:机械臂高速挥动可能撞击、夹爪可能夹伤手指、AGV 可能碾压脚面、激光雷达失效可能撞向人群。漏掉任何一个危险源,后面的等级再高也是白搭——保镖再强,没发现下水道炸弹也无济于事。

列完危险源,下一步是风险量化。ISO 13849 给出了一个经典的风险图模型,用三个因素给每个危险场景打分:伤害的严重程度 S、人员暴露在危险中的频率 E、以及能否及时察觉并躲避危险 P。三者相乘得到风险值 R,就像安保团队用“事件后果 × 发生概率”来给威胁定级。分数越高,需要的安保力量就越强。

风险评估的最终原则叫风险降低:先用本质设计消除危险(比如把尖锐边角改圆),再靠安全防护降低风险(加光幕、围栏),最后通过使用信息提醒残余风险(贴警示标、写说明书)。这就像保镖策略的优先级:“让明星不去危险的地方”永远比“在危险地方多派保镖”更优。风险评估的产出物是一张“威胁清单 + 风险等级表”,它直接决定下一步你要为机器人申请哪个星级的安保认证。

R=S×E×P\displaystyle R = S \times E \times P
风险值等于三个因子相乘:任何一个因子为 0(比如完全不会受伤),风险都是 0;但现实中伤害不可能为 0,所以安全设计的目标是把 R 压到可接受阈值以下。
  1. 严重度 SS 取 1~4,1 是轻微擦伤,4 是死亡或不可逆重伤。它决定“最坏能坏到什么程度”。
    S∈{1, 2, 3, 4}\displaystyle S \in \{1,\ 2,\ 3,\ 4\}
  2. 暴露频率 EE 取 1~5,从“一年靠近几次”到“每分钟都在机器人旁边工作”。接触越频繁,风险越大。
    E∈{1, 2, 3, 4, 5}\displaystyle E \in \{1,\ 2,\ 3,\ 4,\ 5\}
  3. 避免可能性 PP 取 1~3,1 是容易发现并躲开,3 是危险突然发生、根本来不及反应。
    P∈{1, 2, 3}\displaystyle P \in \{1,\ 2,\ 3\}
  4. 综合风险 R三者相乘得到该场景的风险分值,用它对照标准表查出需要达到的安全等级。
    R=S×E×P\displaystyle R = S \times E \times P

SIL等级划分

假设威胁评估完成,情报部门得出结论:“这位明星被极端组织盯上了,且公开行程无法取消。”你需要向安保公司订购一个明确等级的防护方案——不能只说“要最好的”,因为“最好”意味着天价成本。SIL(Safety Integrity Level,安全完整性等级)就是 IEC 61508 给出的官方“防护方案等级表”。它从低到高分为 SIL 1、SIL 2、SIL 3、SIL 4 四个等级,数字越大,安全完整性要求越苛刻。

SIL 等级不是靠感觉定的,而是靠概率数字来卡位。这个关键数字就是前文说的 PFH——每小时危险失效概率。标准给出了硬性区间:SIL 1 要求 PFH 在 10⁻⁶~10⁻⁵ 之间,SIL 2 要求 10⁻⁷~10⁻⁶,SIL 3 要求 10⁻⁸~10⁻⁷。换句话说,想拿到 SIL 3 的“钻石级安保认证”,你的安全回路每一小时罢工的概率必须小于一亿分之一。

确定 SIL 目标的过程,就是对照风险评估结果查标准表:风险评估出的 R 值落在哪个区间,就要求系统达到对应 SIL。比如一台高速码垛机器人若发生撞击可能致命(S=4),工人每天 8 小时在旁作业(E=5),且危险无法预判(P=3),R=60 对应 SIL 3——这时你的保镖配置绝不能低于“钻石级”。值得注意的是,SIL 4 一般出现在核电、航空航天等极端领域,工业机器人很少触及,因为成本和复杂度都高得离谱。

10−(n+5)≤PFH<10−(n+4)\displaystyle 10^{-(n+5)} \le PFH < 10^{-(n+4)}
这是 SIL 等级 n 与 PFH 区间的通式。每提高一级 SIL,允许的危险失效概率就严格收紧 10 倍——安保方案的“星级”越高,容错空间越小。
  1. 等级号 nn 是目标 SIL 等级,只能取 1、2、3、4 四个整数,代表安保方案的四个星档。
    n∈{1, 2, 3, 4}\displaystyle n \in \{1,\ 2,\ 3,\ 4\}
  2. 下限项 10⁻⁽ⁿ⁺⁵⁾这是该等级 PFH 的下界。比如 n=3 时下界为 10⁻⁸,表示 PFH 不能比一亿分之一更“宽松”。
    10−(n+5)→n=310−8\displaystyle 10^{-(n+5)} \xrightarrow{n=3} 10^{-8}
  3. 上限项 10⁻⁽ⁿ⁺⁴⁾这是该等级 PFH 的上界。PFH 一旦超过它,说明安全功能“划水”次数太多,星级直接降档。
    10−(n+4)→n=310−7\displaystyle 10^{-(n+4)} \xrightarrow{n=3} 10^{-7}

PL等级划分

如果说 SIL 是“国家安保总局”颁发的等级,那么 PL(Performance Level,性能等级)就是“演艺行业协会”的星级评定——它在机械与机器人领域更常用、更贴近工程实践。ISO 13849 标准定义 PL 从低到高分为 a、b、c、d、e 五个星级。为什么分五个而不是四个?因为 PL 不仅看“失效概率”,还综合了系统结构、诊断能力、使用寿命等工程实现因素,星级颗粒度更细,工程师用起来更顺手。

PL 等级的“考试成绩”同样是一个概率指标,叫 PFHd(每小时危险失效概率,d 代表 dangerous)。五个星级的分数线各不相同:PL a 最宽松(10⁻⁵~10⁻⁴),PL e 最严格(10⁻⁸~10⁻⁷)。在工程估算中,PFHd 可以由两个设计参数近似计算:平均危险失效时间 MTTFd 和诊断覆盖率 DC。MTTFd 越长、DC 越高,PFHd 就越低——这就像评估保镖团队:成员服役年限越长(MTTFd 高)、日常体能考核越严(DC 高),突发时刻掉链子的概率就越低。

在实际认证中,PL 与 SIL 有约定俗成的对应关系(称为“SIL 等级可达到性”):PL c 大致对应 SIL 1,PL d 对应 SIL 2,PL e 对应 SIL 3。但注意,这不是等号,而是“能力映射”——就像行业协会的五星和国家的钻石级虽然都意味着顶级,但评审标准和适用场合不同。在欧洲 CE 认证体系里,机械指令常要求供应商按 ISO 13849 申报 PL,因此 PL 等级是机器人安全评估中最常被写进需求文档的“硬指标”。

PFHd≈1−DCMTTFd\displaystyle PFH_d \approx \frac{1 - DC}{MTTF_d}
这条估算公式揭示了 PL 等级的两个“杠杆”:延长设备的无危险失效工作时间(MTTFd),以及提高系统自我诊断危险故障的能力(DC),都能有效压低 PFHd,从而冲击更高的 PL 星级。
  1. 分子 1-DCDC 是诊断覆盖率(0~1 之间),1-DC 就是“没被诊断出来的危险失效比例”。诊断越强,漏网之鱼越少。
    DC=λDDλDD+λDU\displaystyle DC = \frac{\lambda_{DD}}{\lambda_{DD} + \lambda_{DU}}
  2. 分母 MTTFd平均危险失效时间,单位通常用“年”。它衡量安全部件平均能“平安服役”多久才发生一次危险失效。
    MTTFd=1λ总危险失效\displaystyle MTTF_d = \frac{1}{\lambda_{总危险失效}}
  3. 整体含义未被诊断出的危险失效比例除以平均寿命,得到单位时间(小时)内发生未诊断危险失效的概率——这正是 PFHd。
    PFHd≈1−DCMTTFd≈λDU\displaystyle PFH_d \approx \frac{1-DC}{MTTF_d} \approx \lambda_{DU}

评估流程

定好了安保星级目标,接下来要解决“怎么配人、怎么分工”——这就是安全评估的流程。它像一份给安保公司的完整订单,从头到尾有五个关键步骤:定义安全功能、评估残余风险、选择架构、定量计算、判定达标。流程的核心思想是:安全等级是“算”出来的,不是“拍脑袋”定出来的。

第一步先定义安全功能:这台机器人需要哪些“安保动作”?比如急停、速度限制、防护门联锁、力矩限制。每个安全功能都要单独评估,不能混在一起算。第二步要确定必要的风险降低量 RR:用初始风险 R₀ 减去可容忍风险 Rₜ,剩下的差值就是安全功能必须扛下来的“责任”。这就像算安保预算:明星面临的初始威胁是 100,社会能接受的残余威胁是 5,那安保团队就必须帮他把风险降低 95。

第三步选架构设计:单通道还是冗余双通道?对应标准里的结构类别(Category 1~4)。第四步把架构参数代入计算——收集各部件的 MTTFd、DC、共因失效因子,算出整个安全回路的 PFH。最后一步判定达标:算出的 PFH 落进哪个 SIL/PL 区间,就代表达到哪个等级。整个过程犹如安保公司的“作战推演”:先定目标(RR),再定队形(架构),最后用历史数据验证战斗力(PFH),推演不过就调方案重新来。

RR=R0−Rt\displaystyle RR = R_0 - R_t
风险降低量(Risk Reduction)等于初始风险减去可容忍风险。安全功能的"KPI"就是完成这个降低量,差一分都不行。
  1. 初始风险 R₀不加任何安全措施时,危险场景的风险值。相当于明星“裸奔”出席活动的威胁程度。
    R0=S×E×P (无防护)\displaystyle R_0 = S \times E \times P\ \text{(无防护)}
  2. 可容忍风险 Rₜ社会公认能接受的残余风险底线,通常由标准或企业安全方针给定。
    Rt=行业可接受阈值\displaystyle R_t = \text{行业可接受阈值}
  3. 风险降低量 RR二者的差值,就是安全功能必须实现的“减压额度”。
    RR=R0−Rt\displaystyle RR = R_0 - R_t

设计准则

安保行业有句行话:“单点保镖不如双人钳制,双人钳制不如一明一暗。”机器人的安全设计也有对应准则。为了让安全回路的 PFH 压到目标值以下,工程师手里有三张牌:冗余架构、诊断覆盖率、MTTFd 寿命。这三张牌就是决定 PL/SIL 星级的核心设计参数,缺一不可。

冗余架构是“双保险”逻辑:关键安全通道复制两份或多份,例如两个急停按钮串联、双通道安全继电器。当一路失效时,另一路仍能执行安全功能。但冗余不是简单的复制粘贴——它必须配合同样的诊断覆盖率 DC。DC 衡量的是系统能多大程度发现自己内部的危险失效:比如双通道回路中,一路继电器卡死了,安全 PLC 能否通过反馈回读立刻发现异常并报错?如果 DC 太低,冗余的两路可能因为同一个原因一起失效,这就是共因失效(比如两路用了同一批受潮的继电器)。

MTTFd 寿命是第三张牌,它表示安全部件平均无“危险失效”的工作时间。ISO 13849 将其分成三档:低(3~10 年)、中(10~30 年)、高(30~100 年)。选型时,你要让所有关键部件的 MTTFd 与目标 PL 匹配:想要 PL d 以上,通常要求核心部件的 MTTFd 达到“高”档,同时 DC 达到中高等水平。打个比方:想要钻石级保镖团队,每个成员都必须是服役 10 年以上、年度考核全优的老兵——任何一个新兵蛋子都可能让整体评级掉档。

PFHsys=PFH1+PFH2+⋯+PFHn\displaystyle PFH_{sys} = PFH_1 + PFH_2 + \dots + PFH_n
安全回路由多个子系统串联组成,系统总危险失效概率近似等于各子系统 PFH 之和。每个环节都在“贡献风险”,最弱的一环拖垮整体。
  1. 各子系统 PFHᵢ传感器、逻辑控制器、执行器各自独立计算自己的每小时危险失效概率。
    PFHi=1−DCiMTTFd,i\displaystyle PFH_i = \frac{1 - DC_i}{MTTF_{d,i}}
  2. 求和累加串联链路上所有子系统的失效概率相加,因为任何一个环节失效,整条安全功能就失效。
    PFHsys=∑i=1nPFHi\displaystyle PFH_{sys} = \sum_{i=1}^{n} PFH_i
  3. 设计启示单独把某个部件做得再好也没用,必须关注整条链路的“木桶效应”。
    PFHsys≤PFHrequired\displaystyle PFH_{sys} \le PFH_{required}

认证测试

安保团队组建完毕,理论推演也通过了,但明星敢不敢真正带着他们上台?还差最后一步:实战考核。认证测试就是对机器人安全系统做的“上岗验收大考”。它包括两大动作:验证(Verification)——证明“把系统做对了”,即设计是否按标准要求实现;确认(Validation)——证明“做对了系统”,即实际运行是否真能达到安全目标。前者检查图纸和施工质量,后者检验实战效果。

验证阶段要做的是文件审查和故障注入测试:逐条对照标准的架构要求,检查冗余有没有真正独立、诊断代码有没有真正生效,然后人为模拟故障(比如切断一个传感器信号),看安全功能是否如设计预期地触发。确认阶段则在整机或半实物平台上做系统级测试,测出安全回路的实际响应时间、失效行为,并统计出实测的 PFH。判定是否通过,就看这条硬指标:

整个认证过程还离不开完备的文档:风险评估报告、安全设计要求书、硬件失效数据分析、软件验证记录、测试报告,缺一不可。第三方认证机构(如 TÜV)审核的就是这套“证据链”——像审计师查账一样,确保每一个安全声明都有据可查。通过认证后,机器人才能贴上 CE/功能安全标志合法上市。记住:认证不是终点,而是安全运营的起点——就像明星的保镖不是考核完就解散,而是每天开安保例会,持续盯防新威胁。

PFHmeas≤PFHreq\displaystyle PFH_{meas} \le PFH_{req}
实测的每小时危险失效概率必须不超过风险评估时设定的目标值。这是认证机构签发“上岗证”(安全证书)的核心依据。
  1. 实测值 PFH_meas通过故障注入与长时间运行统计得到的实际危险失效概率,是“考试成绩单”。
    PFHmeas=N危险失效T测试时间\displaystyle PFH_{meas} = \frac{N_{危险失效}}{T_{测试时间}}
  2. 要求值 PFH_req由风险评估阶段算出的目标等级对应的 PFH 上限,是“及格分数线”。
    PFHreq=10−(n+4)\displaystyle PFH_{req} = 10^{-(n+4)}
  3. 比较判定实测值不超过要求值才算合格;超出则需加大冗余、提升诊断或更换部件,重新设计迭代。
    PFHmeas≤PFHreq⇒认证通过\displaystyle PFH_{meas} \le PFH_{req} \Rightarrow \text{认证通过}

AI 应用场景

协作机器人安全等级评估与方案选型

阶段:产品设计阶段的安全需求分析与架构选型

解决的问题:设计一款与人共事的协作机械臂时,传统方法是“凭经验加急停和光幕”,导致要么安全过度设计成本飙升,要么防护不足在认证时被驳回。用 SIL/PL 评估流程,工程师可系统化地完成危险源辨识、风险评估、等级目标确定和架构选型,一次通过认证。

具体案例:某协作机器人团队设计“拧螺丝”工位,机械臂末端力限制为 150N。工程师用 R = S × E × P 评估出撞击场景风险值为 20,对应目标 PL d。接着选型安全 PLC(DC 达 99%)、双通道力矩传感器(MTTFd 100 年),经计算 PFHd ≈ 3×10⁻⁸,满足 PL d(<10⁻⁶)并富余,顺利获得 CE 认证。

物流 AGV 安全认证的合规检测

阶段:产品认证测试阶段的安全验证与确认

解决的问题:AGV 无人车在仓库中穿梭,传统安全验证靠“多跑几圈看撞不撞人”,既耗时又无法给出可信的等级证据。采用验证—确认方法论,结合故障注入自动化测试,可以在短周期内统计出安全回路的 PFH 实测值,支撑 PL 等级申报。

具体案例:某 AGV 厂商在认证前,用故障注入工具自动切断急停回路信号 2000 次,统计安全响应成功率为 1998/2000,结合架构参数计算 PFHd 落于 PL d 区间,配合完整文档包提交第三方机构,一次通过 ISO 13849 认证,产品顺利进入欧洲市场。

Python 演示

python52 行
# 机器人功能安全等级评估助手# 根据风险评估三要素计算风险值,并映射到 SIL / PL 等级def risk_value(severity, exposure, avoidance):    """风险值 = 严重度(S) x 暴露频率(E) x 可避免性(P)"""    return severity * exposure * avoidance def suggest_level(risk):    """根据风险值映射到建议的安全等级"""    if risk >= 15:        return "SIL 3 / PL e  (钻石级:冗余+高诊断)"    if risk >= 9:        return "SIL 2 / PL d  (金牌级:双通道+中高诊断)"    if risk >= 5:        return "SIL 1 / PL c  (银牌级:单通道+良好诊断)"    return "基本安全措施  (铜牌级:常规防护)" def pfh_from_params(mttf_years, dc):    """由 MTTFd(年) 和 诊断覆盖率 DC 估算每小时危险失效概率 PFHd"""    mttf_hours = mttf_years * 8760  # 年转小时    pfh = (1.0 - dc) / mttf_hours    return pfh def pl_from_pfh(pfh):    """根据 PFHd 数值反查 PL 等级区间"""    if pfh < 1e-7:        return "PL e"    if pfh < 1e-6:        return "PL d"    if pfh < 3e-6:        return "PL c"    if pfh < 1e-5:        return "PL b"    return "PL a" def main():    print("===== 机器人功能安全等级评估助手 =====")    s = int(input("请输入伤害严重度 S (1-4): "))    e = int(input("请输入暴露频率 E (1-5): "))    p = int(input("请输入可避免性 P (1-3): "))    risk = risk_value(s, e, p)    print(f"\n风险值 R = {s} x {e} x {p} = {risk}")    print(f"建议等级: {suggest_level(risk)}")     print("\n--- 若已确定目标等级,可反算设计参数 ---")    mttf = float(input("请输入部件 MTTFd (年, 如 100): "))    dc = float(input("请输入诊断覆盖率 DC (0-1, 如 0.99): "))    pfh = pfh_from_params(mttf, dc)    print(f"\n估算 PFHd = (1 - {dc}) / ({mttf} x 8760) = {pfh:.3e}")    print(f"该设计可达到: {pl_from_pfh(pfh)}") if __name__ == "__main__":    main()
目的:实现一个交互式的风险评估与安全等级映射工具,输入严重度/暴露/可避免性得到建议等级,再根据 MTTFd 和 DC 反算 PFHd 与可达 PL 等级,打通从风险识别到等级判定的完整链路。
  1. risk = risk_value(severity, exposure, avoidance)将三个风险因子相乘,复现正文中的 R = S × E × P 模型。
  2. suggest_level(risk)把风险分值映射到安全等级区间,对应标准中的“风险越大、等级越高”原则。
  3. mttf_hours = mttf_years * 8760把平均危险失效时间从“年”换成“小时”,为计算 PFHd 统一量纲。
  4. pfh = (1.0 - dc) / mttf_hours实现正文中的 PFHd ≈ (1-DC)/MTTFd 估算公式。
  5. pl_from_pfh(pfh)按 ISO 13849 的 PFHd 区间表,把计算值映射回 PL a~e 的五个星级。

常见误区

误区很多人拿到一张安全需求表,看到“SIL 2“和”PL d“就觉得”PL d 是五个档里的第四个,SIL 2 是四个档里的第二个,那 PL d 肯定比 SIL 2 高。”甚至直接拿两个标准查出来的字母数字互相比大小。

正解SIL 来自 IEC 61508/IEC 62061,PL 来自 ISO 13849,两者虽然都基于 PFH 概率区间,但评级体系不同:SIL 按“安全完整性”分 4 级,PL 按“性能等级”分 5 级。行业给出了经验映射(PL c≈SIL 1、PL d≈SIL 2、PL e≈SIL 3),但不是严格等号。就像“国家一级运动员”和“行业五星选手”都是顶级,却不能直接断言哪个更强——评审标准不同,使用场景也不同。

为何常见:因为两者都表现为“字母/数字 + 颜色图标”的等级形式,表格看起来也类似,人的直觉容易把两套标尺当成同一把尺子。

误区“既然 SIL 3 最安全,那我不管什么都按 SIL 3 设计,肯定万无一失。”结果项目成本暴涨、交期一拖再拖,还因为过度复杂的冗余架构引入了新的故障点。

正解功能安全的原则是“风险降低到可接受水平”,而不是“消灭一切风险”。SIL/PL 等级是风险评估的结果,不是工程目标本身。等级越高,对硬件失效率、诊断覆盖率、软件严格度的要求都指数级上升,成本和复杂度也成倍增加。设计中应遵循“够用就好”(ALARP 原则):风险 R 落在哪个区间,就定哪个等级。过度设计不仅烧钱,还可能让系统复杂到难以验证,反而降低整体可靠性。

为何常见:“越高越安全”是日常生活的直觉——买保险当然保额越高越好。但安全工程讲的是风险与成本的平衡,不是无限堆料。

误区“我们控制器用的是国际大牌安全 PLC,所以我们的机器肯定是 PL d。”不少工程师把“某个部件通过了认证”等同于“整个系统通过了认证”。

正解安全等级是针对“安全功能”整体评定的——它是一条从传感器、逻辑控制器到执行器的完整链路。安全 PLC 只是在逻辑环节可靠,如果急停按钮的 MTTFd 很低,或接触器的诊断覆盖率不够,整条链路的 PFH 依然超标。系统的 PFH 是各环节串联求和(木桶效应),最弱环节决定整体表现。就像保镖团队里哪怕队长是特种兵,司机是新手,VIP 依然可能出事——安全是整个团队的合力。

为何常见:厂商宣传容易给人“用我即安全”的错觉,且人们习惯用“名牌单件”来简化对复杂系统的判断。

误区“我们做了 1000 次急停测试,全部成功,通过率 100%,这还不能证明我们是 PL d 吗?”不少团队把功能安全测试等同于“多跑几次看是否出错”。

正解SIL/PL 等级的核心是概率指标,它由架构设计参数(MTTFd、DC、冗余结构)通过标准化的计算方法得出,而不是靠有限次数的测试“证明”出来的。1000 次测试成功只能说明“这一次的样本没出事”,无法外推“一小时内失效概率小于 10⁻⁷”。测试的作用是验证设计计算中的假设是否成立(比如诊断是否真的生效),而不是替代计算。就像给保镖做 100 次实弹考核都命中,也不能推算出他十年执勤不出一次失误的概率——那是统计学问题,不是打靶次数问题。

为何常见:工程直觉是“眼见为实”,直接数测试通过次数比理解概率论直观得多,且标准中的验证过程也的确包含测试,容易被误解为唯一依据。

误区“我把安全回路做成了双通道、双继电器、双传感器,冗余这么多,PFH 肯定低到爆,PL e 稳了。”结果评审时被认证机构打回,指出两路冗余共用了同一路电源、同一个安装板。

正解冗余只有在独立的前提下才有意义。如果两路通道共用电源、共用 PCB、共用软件代码,那么一次电源浪涌或一个设计缺陷会把两路同时打掉——这就是共因失效。标准中引入了共因失效因子(如 β 因子)对冗余收益进行折扣,并要求通道间实现物理隔离、异型设计(比如一路继电器一路电子开关)。冗余是“两条腿走路”没错,但如果两条腿被同一根绳子拴着,一绊就一起倒。设计冗余时必须追问:这两个通道真正独立吗?

为何常见:冗余的物理直觉太强了——“多一套肯定更保险”,人们容易只数数量,而忽略独立性这个前提条件。

面试题

Q1. 功能安全中,SIL 等级主要衡量的是什么?

单选题 · easy

  • A.杜绝一切事故的绝对安全
  • B.危险时正确执行安全功能的等级← 正确答案
  • C.提升机器人生产速度的指标
  • D.衡量机器人电池寿命的标准

答案:B。SIL(安全完整性等级)衡量的是安全相关系统在需要时正确执行安全功能的概率等级,对应 PFH 的区间范围。选项 A 的“绝对安全”不存在于工程实践;C、D 与安全毫无关系。就像保镖的星级评定的是“挡子弹的靠谱程度”,不是“跑得快”或“续航久”。

Q2. IEC 61508 中 SIL 等级共分为几级?

单选题 · easy

  • A.两级
  • B.三级
  • C.四级← 正确答案
  • D.五级

答案:C。IEC 61508 将安全完整性等级分为 SIL 1、SIL 2、SIL 3、SIL 4 共四级,数字越大要求越严。注意 ISO 13849 的 PL 等级是五级(a~e),两者常被混淆。四级就像安保方案的四个星档,五级是行业协会的五个星级,体系不同。

Q3. PFH 是 10⁻⁷ 量级与 10⁻⁵ 量级相比,说明什么?

单选题 · easy

  • A.前者安全等级要求更高← 正确答案
  • B.前者安全等级要求更低
  • C.两者安全等级完全相同
  • D.PFH 与安全等级无关

答案:A。PFH 是每小时危险失效概率,数值越小说明安全功能越不容易失效,对应的 SIL/PL 等级越高。10⁻⁷ 意味着每千万小时才可能失效一次,比 10⁻⁵ 严格两个数量级。就像保镖的“失误率”越低,星级越高。

Q4. ISO 13849 中 PL 等级从低到高的正确顺序是?

单选题 · mid

  • A.a → b → c → d → e← 正确答案
  • B.e → d → c → b → a
  • C.1 → 2 → 3 → 4 → 5
  • D.a → c → e → d → b

答案:A。PL(Performance Level)从低到高为 a、b、c、d、e 五个等级,其中 PL e 要求最高,PFHd 需小于 10⁻⁷。选项 C 是 SIL 的编号习惯,容易诱导混淆;PL 用的是英文字母 a~e,且不是乱序排列。

Q5. 风险评估公式 R = S × E × P 中,P 代表什么?

单选题 · mid

  • A.事故发生的概率
  • B.避免危害的可能性← 正确答案
  • C.产品的价格
  • D.人员的数量

答案:B。P(Probability of avoidance)表示人员能否及时察觉并躲避危险,取 1~3:容易被发现躲开为 1,突然发生无法躲避为 3。选项 A 的“事故发生概率”已经在 E(暴露频率)中有所体现;C、D 是干扰项。这个模型回答的是“威胁有多大”,P 是“逃跑机会有多大”。

Q6. 下列哪些措施可以有效降低安全回路的 PFH?

多选题 · mid

  • A.提高部件 MTTFd 寿命← 正确答案
  • B.提高诊断覆盖率 DC← 正确答案
  • C.增加合理冗余架构← 正确答案
  • D.缩短测试报告的字数

答案:ABC。PFH ≈ (1-DC)/MTTFd,提高 MTTFd 或 DC 都能直接降低 PFH;合理冗余配合高诊断也能大幅降低系统失效概率。选项 D 是干扰项,文档字数与安全指标无关。这三招相当于保镖团队的“老兵、考核、双人钳制”三板斧。

Q7. PL d 大致对应 SIL 的哪个等级?

单选题 · mid

  • A.SIL 1
  • B.SIL 2← 正确答案
  • C.SIL 3
  • D.SIL 4

答案:B。ISO 13849 与 IEC 62061 的对应关系为:PL c≈SIL 1、PL d≈SIL 2、PL e≈SIL 3。注意这只是“可达性映射”,不是严格等号,两套体系的评审维度不完全相同。就像行业协会的“金牌”大致对应国家级的“二级”,但不能说完全等价。

Q8. 关于冗余架构的设计,下列说法正确的有哪些?

多选题 · hard

  • A.冗余必须考虑共因失效问题← 正确答案
  • B.两路通道应尽可能独立← 正确答案
  • C.冗余越多越好,没有副作用
  • D.冗余需配合诊断覆盖率才有意义← 正确答案

答案:ABD。冗余的价值前提是通道独立,必须防范共因失效(共同电源、共同软件等),因此 A、B 正确。冗余如果没有高 DC 支撑,故障无法被发现并报告,冗余收益大打折扣,D 正确。C 错误:冗余增加成本、复杂度,甚至引入新的失效模式,并非越多越好。这就像双保镖若站同一位置吃同一颗子弹,等于没冗余。

Q9. 安全生命周期中“验证(Verification)”与“确认(Validation)”的区别,正确的理解是?

多选题 · hard

  • A.验证检查“是否把产品做对了”← 正确答案
  • B.确认检查“是否做对了产品”← 正确答案
  • C.验证发生在设计实现各阶段← 正确答案
  • D.确认只发生在产品发布之后

答案:ABC。验证(Verification)逐阶段对照需求检查实现正确性,确认(Validation)在真实环境下验证产品达成安全目标,二者贯穿生命周期。选项 A、B 是经典定义;C 正确,验证伴随开发各阶段。D 错误:确认在产品发布前(认证测试阶段)就已完成,发布后是运维监控,不是确认。

Q10. 某安全回路设计计算得 PFHd = 5×10⁻⁷,其达到的 PL 等级是?

单选题 · extreme

  • A.PL b
  • B.PL c
  • C.PL d← 正确答案
  • D.PL e

答案:C。PL 对应 PFHd 区间:PL c 为 10⁻⁶~3×10⁻⁶,PL d 为 10⁻⁷~10⁻⁶,PL e 为 10⁻⁸~10⁻⁷。5×10⁻⁷ 落在 10⁻⁷~10⁻⁶ 区间,因此是 PL d。选项 C 正确,选项 A、B 的区间概率数量级更宽松,D 更严格。这道题考的是对概率区间表的精确记忆,就像查星级评分的分数段一样,必须对号入座。