资讯详情

Fail-Safe 故障安全

📅 2026/10/17 6:39:09 | 华诺云谱 👁 阅读
Fail-Safe 故障安全
真正的 Fail-Safe失效安全/故障安全是一套完整的系统设计思想目标只有一个系统发生故障时不以危险的方式失效。一、 Fail-Safe1.1 传统控制逻辑的安全盲区我们先看一个常见的简单控制链路上位机 → 控制器 → 继电器 → 电磁阀/电机/激光器软件执行turn_on()数字输出置1继电器吸合设备运行。如果此时软件进入死循环、线程卡死、进程崩溃、甚至CPU死机会发生什么数字输出会保持最后一次的状态继电器持续吸合危险设备持续运行——控制系统已经失效但危险输出仍然有效。这就是最典型的安全盲区Failure → Hazardous State故障导向危险状态。而 Fail-Safe 的目标是把这条链路反转Failure → Fault Detection → Safety Function → Safe State即故障发生后先被检测到再触发安全功能最终进入安全状态。举个典型的链路软件卡死 → 100ms 无心跳信号 → 独立安全控制器检测超时 → 撤销使能信号 → 安全继电器释放 → 触发STO → 电机转矩切断最终结果Failure → Safe State1.2 标准定义NIST 与 IECNIST 定义当系统发生或检测到故障时以一种能够防止对人员、财产或系统资源造成损害的方式终止系统功能。IEC 61508 定义针对电气、电子和可编程电子E/E/PE安全相关系统从风险分析、安全功能、安全完整性到验证、运行和维护建立完整的生命周期安全管理体系即 Functional Safety功能安全。功能安全不评价“设备本身安不安全”而是评价某个安全功能在需要时能否可靠执行。1.3 锚点Safe State安全状态Fail-Safe 的重点是Safe State——针对特定危险系统发生故障时应进入的状态。不同设备的安全状态完全不同必须基于风险评估定义设备类型常见误区真正的 Safe State水平输送电机断电即安全转矩 OFF自由停车垂直升降机构断电即安全电机停转 机械制动器抱闸 转矩移除加热器断电即安全加热输出 OFF激光器断电即安全激光发射禁用气动夹具泄压即安全保持夹持压力防止工件坠落伤人真空吸盘搬运泄压即安全维持真空吸附压力容器保压即安全打开泄压阀所以 Fail-Safe 的第一步绝不是if(error) all_output 0;而是先完成Hazard 识别 → Safe State 定义 → Safety Function 设计二、安全概念辨析很多人会把可靠性、容错、故障安全等概念混为一谈它们的目标和实现方式完全不同。2.1 概念对比概念目标典型场景Reliability可靠性尽量让系统不要坏提升器件寿命、降低故障率Fault Tolerance容错坏一个部件系统还能正常工作双机热备、冗余服务器Fail-Safe失效安全坏了之后系统进入安全状态安全继电器、STO、看门狗跳闸Fail-Operational故障可运行坏了之后关键功能仍能继续执行飞机飞控、冗余动力系统Fail-Secure故障保全坏了之后仍维持安全/访问控制状态门禁锁断电保持锁闭Failover故障切换主系统坏了自动切备用双机主备切换、冗余电源2.2 关键区分容错 ≠ 故障安全双机热备A机故障切B机继续运行 →Fault Tolerance / Failover控制器故障接触器断开电机停止 →Fail-SafeNIST 也明确区分fail-safe 侧重故障后避免损害fail-secure 侧重故障后维持安全属性如访问控制。三、功能安全的设计与机制3.1 De-Energize to Trip失电跳闸原则维持运行需要持续提供能量能量消失时自动进入安全状态。错误的设计思路DO 0 → Stop DO 1 → Run这种设计下如果输出晶体管击穿、PC卡死最后输出为1设备会永久运行。正确的安全设计运行需要持续的“使能证明”一旦使能信号消失硬件自动回到安全状态。典型实现Enable 信号 Watchdog 输出诊断 反馈触点 安全继电器 / STO转变从“需要发一个 Stop 命令” 变成“需要持续证明系统仍然具备 Run 的条件”3.2 Watchdog 与 Heartbeat3.2.1 WatchdogWatchdog 的逻辑是将“证据缺失”判定为“故障”。Linux 内核硬件看门狗的典型模式用户态周期性喂狗 → 内核驱动 → 硬件看门狗。一旦软件故障停止喂狗超时触发系统复位。3.2.2 系统看门狗 ≠ 安全看门狗PC 硬件看门狗 → PC 重启属于可用性恢复手段危险执行器的安全看门狗 → 直接切断危险输出位于靠近执行器的位置⚠️ 典型误区PC 卡死之后看门狗5秒后重启期间电机已经运行35秒完全达不到安全要求。3.2.3 Heartbeat基础错误示范bool heartbeattrue;// 固定电平如果线路短接到24V心跳永久为1控制器会误认为系统一直健康。工业级正确设计方波跳变0 → 1 → 0 → 1周期性翻转递增计数器101 → 102 → 103 → ...完整帧序列号 CRC 超时校验 源/目的ID可以检测信号冻结、重复包、丢包、乱序、数据破坏、错误节点、通信中断。工业安全总线 PROFIsafe 正是基于此原理在普通以太网之上增加安全通信层用于连接安全PLC与安全驱动。3.3 双通道冗余与共因故障CCF3.3.1 为什么需要双通道单继电器触点焊死后即使控制器发OFF电机仍然通电。双通道设计的目标单一故障 ≠ 安全功能丧失3.3.2 共因失效Common Cause Failure, CCF很多人以为“双通道安全”但如果两个通道共用电源、共用连接器、共用线缆、共用CPU、同一个软件bug、同一个时钟源那么一个共同原因会导致两个通道同时失效这就是共因故障。⚠️ 典型伪冗余两个停止函数运行在同一个卡死的进程里完全无法抵抗共因故障。3.4 反馈闭环Command ≠ Result命令发送成功 ≠ 执行器已经进入安全状态典型实现EDMExternal Device Monitoring外部设备监控安全控制器发OFF命令 → 检测接触器辅助触点反馈 → 确认触点断开才判定安全如果反馈不匹配立即报故障。不能因为digitalWrite(enable, LOW);执行成功就认为执行器已经安全。必须做到Command Observation 形成闭环。3.5 禁止意外重启原则场景设备运行中断电停机恢复供电后自动启动可能直接伤人。Fail-Safe 要求失电 → 进入安全状态复电 → 仍保持安全状态必须经过操作人员确认/复位 → 进入就绪态 → 重新接收运行命令对于断电后重启可能伤人的设备必须防止电源恢复后机器自动重启。3.6 Default-to-Safe 状态机设计软件层面不要只有 ON/OFF 两态至少应设计完整的安全状态机POWER_OFF → INIT → SAFE → READY → RUNNING所有异常分支超时、通信丢失、传感器无效、反馈不匹配、内部故障全部默认指向SAFE状态而不是保持上一次状态。3.7 Permission-based 控制逻辑错误写法故障导向运行if(error1)stop();if(error2)stop();if(error3)stop();只有想到的错误才会停止想不到的错误就会继续运行。正确写法权限导向运行bool allow_runcommunication_okcontroller_oksafety_chain_okactuator_okheartbeat_ok!emergency_stopcommand_valid;if(!allow_run){enter_safe_state();}只有所有条件明确成立才允许运行任何条件不满足立即进入安全状态。这是 Fail-Safe 最核心的软件设计原则。四、工业驱动系统的安全功能针对电机、伺服、机器人等运动系统IEC 61800-5-2 定义了标准的安全功能最核心的是 STO、SS1、SS2。4.1 STOSafe Torque Off安全转矩关断定义驱动的转矩产生输出被禁用电机不再产生转矩对应 IEC 60204-1 Stop Category 0效果电机自由减速停车coast to stop⚠️ 注意STO ≠ 立即静止。高速大惯量设备执行STO后会继续滑行因此不能直接用于垂直轴等有坠落风险的场景。4.2 SS1Safe Stop 1安全停止1逻辑安全请求 → 受控减速 → 速度到0 → 触发STO对应 IEC 60204-1 Stop Category 1适用需要快速停车、避免自由滑行的场景4.3 SS2Safe Stop 2安全停止2逻辑安全请求 → 受控减速 → 速度到0 → 进入SOS安全操作停止保持转矩对应 IEC 60204-1 Stop Category 2适用停机后仍需保持定位或后续需要快速恢复的场景4.4 其他常见驱动安全功能SLS安全限速、SLT安全限矩、SLP安全限位置、SDI安全方向、SBC安全制动控制等。五、PL 与 SIL 的对应功能安全用量化的等级来描述安全功能的可靠程度机械领域常用 PL电气电子领域常用 SIL。5.1 ISO 13849 与 PL 等级机械控制领域ISO 13849-1 是机械安全控制系统的标准它将安全性能划分为 5 个 Performance LevelPL用每小时危险失效概率 PFH_D 衡量性能等级 PL每小时危险失效概率 PFH_DPL a≥ 10⁻⁵ 10⁻⁴ /hPL b≥ 3×10⁻⁶ 10⁻⁵ /hPL c≥ 10⁻⁶ 3×10⁻⁶ /hPL d≥ 10⁻⁷ 10⁻⁶ /hPL e≥ 10⁻⁸ 10⁻⁷ /hPL e 是机械领域最高的常规安全等级。5.2 IEC 61508 与 SIL 等级电气电子领域IEC 61508 是功能安全的基础通用标准定义了 4 个 Safety Integrity LevelSIL安全完整性等级 SIL高需求/连续模式 PFHSIL 1≥ 10⁻⁶ 10⁻⁵ /hSIL 2≥ 10⁻⁷ 10⁻⁶ /hSIL 3≥ 10⁻⁸ 10⁻⁷ /hSIL 4≥ 10⁻⁹ 10⁻⁸ /h机械行业的 IEC 62061 通常只用到 SIL 1 ~ SIL 3SIL 4 主要用于过程工业等高风险领域。5.3 PL 与 SIL 的数值对应关系等级PL 对应 PFH_DSIL 对应 PFH大致对应低PL c10⁻⁶SIL 110⁻⁶PL c ≈ SIL 1中PL d10⁻⁷SIL 210⁻⁷PL d ≈ SIL 2高PL e10⁻⁸SIL 310⁻⁸PL e ≈ SIL 3注意这只是数值上的近似对应两者的标准体系、适用范围、计算方法不同不能直接等同替换。5.4 影响性能等级的要素Category架构类别类别特征B基本安全原则单通道1采用经过验证的高可靠器件2单通道 周期测试诊断3冗余架构单一故障不丢失安全功能4冗余 高诊断覆盖 故障累积耐受MTTF_D平均危险失效时间每个通道的危险故障平均间隔时间分为低、中、高三档。DC_avg平均诊断覆盖率系统能检测到的危险故障占比分为无、低、中、高四档。CCF共因失效抑制抵抗共因故障的能力通过8项措施评分≥65分合格。软件与系统性故障软件开发流程、系统性失效防护措施。最终通过马尔可夫模型计算出整体 PFH_D对应到相应的 PL 等级。六、工业上位机系统的合理安全架构对于 C/C#/ROS2 等上位机软件运行在通用 Windows/Linux 平台上绝对不能把人员安全只依赖在应用层代码上。6.1 分层安全架构┌──────────────────────────────────────────────────┐ │ Normal Control Domain正常控制域 │ │ PC / Windows / Linux │ │ C / C# / ROS2 / UI / 视觉 / AI │ └───────────────────────┬──────────────────────┘ │ command heartbeat │ ═══════════════════════════════════════════════════╕ Safety Boundary安全边界 ╘══════════════════════════════════════════════════╛ │ ▼ ┌──────────────────────┐ │ PLC / 安全PLC / MCU │ │ 安全逻辑与监控 │ └───────────┬──────────┘ │ Safety Relay / STO │ ▼ 执行器 / 电机同时急停按钮直接接入安全回路不经过上位机。6.2 设计原则上位机负责业务逻辑、轨迹规划、人机交互PLC/MCU 负责实时安全监控、心跳检测、安全逻辑安全继电器/STO 负责最终危险能量切断形成独立的 Safety Path所有安全逻辑不依赖上位机操作系统这样AI 算法卡死、UI 无响应、ROS 崩溃、Windows 蓝屏、网络断开都不会导致危险输出无限维持。6.3 误区检查表常见认知正误说明try/catch 能处理所有故障❌死锁、死机、掉电、断网都执行不到异常处理看门狗重启电脑就安全❌PC看门狗是可用性手段危险执行器需要独立安全看门狗保持最后状态是正常逻辑❌对危险输出通信丢失保持最后状态往往最危险安全逻辑都在同一个CPU/线程❌无法抵抗共因故障发STOP命令进入安全状态❌命令不等于结果需要反馈闭环STO电机立即停❌STO是撤转矩大惯量会滑行断电安全复电自动运行❌必须防止意外重启双通道PL e / SIL3❌还需可靠性、诊断、CCF、软件、验证全部达标有急停就是功能安全❌急停只是安全功能之一不用先定义Safe State❌没有目标所有安全机制都没有意义七、系统安全的方法论7.1 功能安全生命周期功能安全是完整的生命周期过程不是一段代码危害分析 → 风险评估 → 安全需求 → 安全功能定义 → 目标PL/SIL ↓ 架构设计 → 硬件设计 → 软件设计 → 验证 → 确认 ↓ 调试 → 运行 → 维护 → 变更 → 再验证7.2 四个核心问题建立安全思维的抓手做工业安全设计先把这四个问题想明白危险是什么Hazard Identification安全状态是什么Safe State Definition上位机彻底失效时谁还能把设备拉到安全状态Independent Safety Path那个安全机制自己坏了还能不能检测出来Diagnostic Coverage想清楚这四个问题watchdog、心跳、安全继电器、STO、双通道、反馈、PL/SIL 这些概念就会全部串联起来。写在最后Fail-Safe 是一整套从危害分析到落地验证的系统工程思想。它的底层逻辑非常朴素永远不要假设系统正常工作要为所有可能的故障预设安全退路。对于工业上位机开发者而言最重要是先建立“故障导向安全”的设计思维在控制链路中埋下独立的安全防线。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑