news 2026/9/17 21:55:25

ISO 13849-1机械安全回路设计与PLr/MTTFd/CCF落地

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ISO 13849-1机械安全回路设计与PLr/MTTFd/CCF落地

简介:ISO 13849-1:2015《机械安全——控制系统安全相关部件——第1部分:设计通用原则》英文完整版,共93页,面向机械设计、自动化产线、功能安全认证与风险评估方向的工程师及高校师生,用于系统掌握安全相关控制系统(SRP/CS)的设计准则与性能等级(PL)判定方法。资源包内仅含1个PDF文件,约27.02MB,为ISO官方英文原版全文,版式规范、便于按章节检索与打印归档。正文完整收录前言、范围、规范性引用文件、术语与缩略语、设计考虑等章节,并展开风险降低策略、所需性能等级PLr的确定、架构类别与诊断覆盖率DC、平均失效间隔时间MTBF,以及传感器—逻辑控制器—执行器链路的选型与验证等关键内容。目前已有144人学习下载。对于需要对照标准开展安全回路设计、计算PL值或准备CE认证资料的读者,这份原版标准可直接作为查证条款、复核参数与撰写技术文档的第一手依据。

1. 从一条安全回路看懂 ISO 13849-1 到底管什么

一条急停回路按下后,机器必须在设定时间内进入安全状态;外壳、继电器、PLC 程序和接线端子都可能参与这段动作。ISO 13849-1 处理的就是这类机械安全控制系统的设计原则:把安全功能拆成输入、逻辑、输出和监测,给每个安全功能定 PLr,再证明实际达到的 PL 不低于它。常被问到的是类别选几、MTTFd 怎么取、DCavg 和 CCF 怎么算、安全 PLC 程序要不要认证。适用于机械、自动化、机器人、包装线、冲压和物流设备的安全回路设计、改造与验收。它不替代风险评估,也不保证绝对无故障,而是把危险失效概率压到可接受范围,并让证据可复现。

2. ISO 13849-1 的安全功能、SRP/CS 与 PLr/PL 分层

很多项目一上来就问“这个急停用几类继电器”,却还没写清安全功能本身。ISO 13849-1 的第一层工作不是选型,而是把机器动作、危险事件和控制系统边界对齐。安全功能定义得越接近现场动作,后面的 Cat、MTTFd、DCavg、CCF 才有稳定口径;定义得含糊,评估阶段就会反复改边界,参数也跟着返工。

2.1 用安全功能定义把需求从“元件”拉回“动作”

安全功能不是“装一个安全继电器”,而是“当防护门打开时,切断驱动使能并在 300 ms 内进入安全状态”。定义至少要包含触发条件、预期动作、安全状态、响应时间、重启方式、手动复位要求,以及安全状态是否允许保持。常见做法是先列危险事件,再列每个危险事件对应的安全功能,最后给每个安全功能标 PLr。

安全功能触发条件预期动作安全状态典型 PLr
急停停止急停按钮按下切断伺服使能并抱闸驱动无扭矩、抱闸闭合d 或 e
防护门监控门打开停止危险运动停止并禁止自动重启d
光幕侵入光束遮挡停止危险运动停止直到复位d
使能开关三位置开关释放停止示教运动停止并保持d

PLr 通常由风险评估给出,风险图法用伤害严重度 S、暴露频率 F、避免可能性 P 做映射。下面是一个简化判定脚本,真实项目仍要按 ISO 12100 的风险评估结论确认。

def plr_from_risk_graph(S, F, P): # S: S1 轻伤可恢复,S2 重伤不可逆 # F: F1 暴露少,F2 暴露频繁或持续时间长 # P: P1 可能避免,P2 几乎不可避免 table = { ("S1", "F1", "P1"): "a", ("S1", "F1", "P2"): "b", ("S1", "F2", "P1"): "b", ("S1", "F2", "P2"): "c", ("S2", "F1", "P1"): "c", ("S2", "F1", "P2"): "d", ("S2", "F2", "P1"): "d", ("S2", "F2", "P2"): "e", } return table.get((S, F, P), "需要重新评估") print(plr_from_risk_graph("S2", "F2", "P2")) # 输出 e

逻辑说明:函数把风险图的 S、F、P 组合映射到 PLr,用于早期方案讨论。参数说明:S2 表示严重且不可逆伤害,F2 表示高暴露,P2 表示几乎没有避免机会;三者同时出现时,PLr 往往直接拉到 e,后续必须用高诊断覆盖率和冗余结构支撑。

2.2 SRP/CS 的边界:输入、逻辑、输出、监测

SRP/CS 是安全相关控制系统部分,边界决定哪些故障要算进危险失效。输入侧包括急停、门锁、光幕、安全地毯、使能开关;逻辑侧包括安全继电器、安全 PLC、安全驱动模块;输出侧包括接触器、继电器、伺服 STO、液压阀;监测侧包括 EDM 反馈、测试脉冲、交叉监控。边界画错,常出现两种极端:把非安全电磁阀也算进安全链,导致 MTTFd 低得没法做;或者漏掉抱闸监测,现场失效后才发现无法诊断。

建议在图纸上用一条虚线框出 SRP/CS,框内每个部件都要有 MTTFd、DC、类别归属和连接关系。输入和输出之间的线缆、端子、供电也要考虑,尤其是长距离急停回路。若同一根电缆同时走双通道,CCF 评分会被扣分,后面很难补救。

2.3 PLr 与 PL 的关系:先有目标再谈实现

PLr 是要求性能等级,PL 是实现性能等级。两者都用 a 到 e 表示,但 PL 还要用 PFHd 每小时危险失效概率支撑。PLr 为 d 时,实现 PL 可以是 d 或 e;实现 PL 为 c 就不合格。很多人拿元件手册上的 PL 直接相加,这是常见误用,因为子系统组合、诊断覆盖率和共因失效会改变整体结果。

PLPFHd 每小时危险失效概率范围结构上的常见实现
a≥10^-5 且 <10^-4单通道,基本可靠性
b≥3×10^-6 且 <10^-5单通道,部分诊断
c≥10^-6 且 <3×10^-6单通道或简单冗余
d≥10^-7 且 <10^-6冗余加诊断,Cat 3 常见
e≥10^-8 且 <10^-7高冗余高诊断,Cat 4 常见

注意:PLr 不是“越贵越好”,而是安全功能的目标值。把 PLr 全部写成 e,会让选型、布线和验证成本迅速上升;把 PLr 写低又没有风险评估依据,验收时会留下缺口。

3. 类别 Cat、MTTFd、DCavg、CCF:参数怎么取才不返工

参数阶段最容易出现“先选型后补计算”。正确的顺序是按安全功能拆子系统,再给每个子系统定 Cat、MTTFd、DCavg、CCF,然后查表或算 PFHd,看整体 PL 是否覆盖 PLr。顺序反了,就会出现换了继电器才想起 DCavg 不够,或者 CCF 评分已经低于 65 分,只能改线、改品牌、改供电。

3.1 类别 B、1、2、3、4 的结构与故障耐受

类别描述的是结构抗故障能力和诊断方式,不是单个元件的质量等级。B 类只考虑基本元件可靠性;1 类用高可靠元件和原则;2 类有周期性测试;3 类要求冗余且单故障不会丢失安全功能;4 类在 3 类基础上还要求单故障被及时检测,并考虑故障累积。

类别结构特征单故障行为常见可达 PL
B单通道,无专门诊断可能丢失安全功能最高 b
1单通道,高可靠元件可能丢失安全功能最高 c
2单通道加周期测试测试间隔内可能丢失最高 d
3双通道,部分诊断单故障不丢失安全功能最高 d
4双通道,高诊断,考虑故障累积单故障被检测最高 e

类别 2 常被误解成“低配版”,实际在 MTTFd 高、DCavg 中等的条件下可以达到 d,但测试周期和测试覆盖必须写清。类别 3 的双通道不是把两根线接两个端子就结束,两个通道要有独立路径、交叉监控和足够的诊断覆盖率,否则只是名义冗余。

3.2 MTTFd 与 DCavg 的数据来源和取值口径

MTTFd 是危险失效平均时间,单位常用年。数据可以来自制造商声明、元器件寿命手册、现场统计或标准中的通用值。若只能拿到 B10d、循环次数和年动作次数,常见换算是先算单件 MTTFd,再按串联结构合并。下面脚本演示串联 MTTFd 和加权 DCavg 的工程估算。

def mttfd_series(mttfds): # 串联结构:总危险失效率相加,MTTFd 取倒数 inv = sum(1.0 / m for m in mttfds) return 1.0 / inv def dcavg_weighted(channels): # channels: [(mttfd_hour, dc), ...] # 工程估算常用 MTTFd 加权,最终按标准定义和通道结构确认 num = sum(mttfd * dc for mttfd, dc in channels) den = sum(mttfd for mttfd, dc in channels) return num / den parts = [(1_000_000, 0.99), (500_000, 0.90), (2_000_000, 0.60)] mttfd_hour = mttfd_series([m for m, _ in parts]) print("MTTFd 年:", round(mttfd_hour / 8760, 1)) print("DCavg:", round(dcavg_weighted(parts), 3))

逻辑说明:mttfd_series把多个串联部件的危险失效率相加,再取倒数;dcavg_weighted用 MTTFd 对诊断覆盖率做加权。参数说明:MTTFd 输入单位为小时,除以 8760 得到年值;DC 用 0 到 1 之间的小数。若部件是冗余结构,不能直接套串联公式,要按每个通道分别计算再组合。

MTTFd 年值分级常见含义
3 到 10 年元件可靠性一般,需高诊断补足
10 到 30 年多数工业安全元件常见区间
30 到 100 年高可靠元件或保守估算
DC 范围分级说明
小于 60%诊断不足
60% 到 90%交叉监控、测试脉冲
90% 到 99%多类故障可检测
大于 99%高覆盖诊断,需证据支撑

3.3 CCF 评分与常见扣分点

CCF 是共因失效,指两个通道因同一原因同时失效。评分项通常包括分离、多样性、设计应用、评估、环境等,常见门槛是总分不低于 65 分。分离不只是物理间隔,还包括供电、信号路径、接地、通风、振动源和维修通道。多样性能降低同型号同批次同时失效的概率,但会增加备件和程序复杂度。

常见扣分点有:双通道用同一根多芯电缆;两个通道共用同一个 24 V 电源模块;逻辑程序里两个通道由同一段代码驱动且无交叉检查;安全继电器和普通继电器混在一个端子排且无标识;环境温度、粉尘、油雾未评估。评分表要在设计评审时填写,不要等到验证阶段补。补分数往往意味着改硬件,成本远高于早期评审。

3.4 从子系统到 PL 的查表与 PFHd 校验

每个安全功能可以拆成输入子系统、逻辑子系统、输出子系统。每个子系统按 Cat、MTTFd、DCavg 查表得到候选 PL,再看最弱环节是否满足 PLr。多子系统串联时,PFHd 可以近似相加,整体 PL 由总 PFHd 落在哪个区间决定。近似相加适合方案阶段,最终报告要按标准表格和子系统结构计算。

提示:查表得到 PL d 不等于 PFHd 一定小于 10^-6。若总 PFHd 卡在边界,最好留一个数量级余量,尤其在抱闸、接触器、驱动器等磨损件上。

4. 用安全继电器和安全 PLC 落地 ISO 13849-1 的配置

到了落地阶段,ISO 13849-1 的参数要变成端子号、代码块和测试记录。安全继电器适合功能固定、回路简单的急停和门监控;安全 PLC 适合多安全功能、逻辑联动、带诊断和通信的产线。两者不是替代关系,很多设备会用安全 PLC 做主逻辑,再用安全继电器做驱动切断或作为独立第二通道。

4.1 选型:安全继电器、可编程安全控制器、驱动冗余

选型先看安全功能数量、所需 PL、响应时间、复位方式和诊断需求。安全继电器优点是不依赖软件,验证直观;缺点是灵活性和诊断信息有限。安全 PLC 优点是逻辑集中、诊断丰富、容易做区域互锁;缺点是需要软件验证、版本管理和网络安全考虑。驱动器侧可选用 STO、SLS、SS1 等功能,前提是驱动模块本身的安全声明覆盖目标 PL。

需求倾向选型原因
单个急停切断动力安全继电器回路短,验证直接
多区域门监控与互锁安全 PLC逻辑和诊断集中
需要安全限速安全驱动模块驱动内部实现更可靠
需要独立第二通道安全继电器加接触器与 PLC 通道分离

4.2 接线与端子示例:急停双通道与反馈回路

急停常用双通道常闭触点,两个通道分别进入安全输入。输出侧用两个接触器串联切断驱动动力,接触器常开辅助触点做 EDM 反馈,确认接触器已释放。若使用安全 PLC,输入滤波要和测试脉冲配合,滤波太长会拖慢响应,太短会误报断线。

点位信号类型说明
I0.0急停通道 1安全输入常闭,正常为高
I0.1急停通道 2安全输入常闭,正常为高
I0.2门锁通道 1安全输入常闭,门关为高
I0.3门锁通道 2安全输入常闭,门关为高
I0.4EDM 反馈标准输入接触器释放确认
Q0.0接触器 A安全输出双通道输出之一
Q0.1接触器 B安全输出双通道输出之一

4.3 安全逻辑的结构化文本/伪代码

下面用 Python 模拟安全逻辑,重点看逻辑关系,不是可执行的安全 PLC 程序。真实代码要按安全 PLC 厂商的认证函数块编写,并做代码评审和测试。

class SafetyLogic: def __init__(self): self.estop_ok = False self.guard_ok = False self.edm_ok = False self.output_on = False def scan(self, estop_ch1, estop_ch2, guard_ch1, guard_ch2, edm_fb, reset): # 常闭输入正常时为 True,双通道必须一致 self.estop_ok = estop_ch1 and estop_ch2 self.guard_ok = guard_ch1 and guard_ch2 # EDM 反馈:接触器未吸合时反馈为 True self.edm_ok = edm_fb # 复位为上升沿,且所有安全条件满足,输出才允许接通 if reset and self.estop_ok and self.guard_ok and self.edm_ok: self.output_on = True if not (self.estop_ok and self.guard_ok and self.edm_ok): self.output_on = False return self.output_on plc = SafetyLogic() print(plc.scan(True, True, True, True, True, True)) # True print(plc.scan(True, False, True, True, True, True)) # False

逻辑说明:急停和门锁双通道一致才置位安全条件,EDM 反馈确认接触器状态,复位只在安全条件满足时允许输出。参数说明:estop_ch1/estop_ch2为常闭输入,正常时 True;reset应使用上升沿,不能用电平保持;output_on只是逻辑输出,真实安全输出还要考虑双通道、测试脉冲和短路保护。

4.4 软件与参数:滤波、测试脉冲、重启方式

安全 PLC 的输入滤波、测试脉冲周期、输出关断时间都要和风险评估中的响应时间对齐。例如安全功能要求 300 ms 内停止,那么输入滤波、逻辑扫描、输出继电器动作、接触器释放、抱闸闭合都要计入。常见做法是先测出机械停止时间,再倒推允许的电气响应时间。自动重启只适用于风险可接受且人员不会进入危险区的场合,否则必须手动复位,并且复位装置要放在能观察危险区的位置。

注意:安全程序不要用普通 PLC 的“强制”功能绕过安全逻辑。调试期间若必须屏蔽,要用受控的维护模式、限速或点动,并记录批准人和恢复条件。

5. 计算、验证与文档:ISO 13849-1 项目交付的硬证据

参数和选型做完,还差验证闭环。验证不是把计算表打印出来,而是用测试证明安全功能在触发、故障和复位条件下都按规格动作。验证计划要覆盖正常触发、单故障、共因失效、响应时间、重启行为和电源恢复。对安全 PLC,还要覆盖程序版本、参数变更和通信故障。

5.1 验证计划:FMEA、故障注入、停止时间测量

FMEA 用来找危险失效模式和诊断覆盖是否成立。故障注入可以断开一个通道、短接输入、模拟接触器粘连、拔掉编码器或制造通信超时,观察系统是否进入安全状态并给出诊断。停止时间测量用示波器、转速计或激光测距,记录从触发到危险运动停止的最坏时间,和风险评估中假设的时间比较。

验证项方法合格判据
急停触发按下急停,记录停止时间小于安全功能规格
单通道故障断开通道 1 或通道 2输出切断并报警
接触器粘连模拟 EDM 无反馈禁止再次启动
门锁故障单通道断开停止且不能自动重启
复位逻辑按住复位再上电不能自动接通输出
安全程序变更校验版本和校验和与验证记录一致

5.2 PFHd 与 PL 的闭环校验

每个子系统的 PFHd 可以查表或计算,串联安全功能的总 PFHd 常用相加近似。下面脚本把子系统 PFHd 相加并判断 PL,适合方案阶段的快速闭环。

def pfhd_to_pl(pfhd): if 1e-8 <= pfhd < 1e-7: return "e" if 1e-7 <= pfhd < 1e-6: return "d" if 1e-6 <= pfhd < 3e-6: return "c" if 3e-6 <= pfhd < 1e-5: return "b" if 1e-5 <= pfhd < 1e-4: return "a" return "超出 a 到 e 常用范围" def pfhd_series(pfhds): # 串联子系统:危险失效率近似相加 return sum(pfhds) subsystems = [2e-8, 5e-8, 1e-7] total = pfhd_series(subsystems) print("总 PFHd:", total) print("整体 PL:", pfhd_to_pl(total))

逻辑说明:pfhd_series把同一安全功能下串联子系统的 PFHd 相加,pfhd_to_pl按区间映射 PL。参数说明:PFHd 单位为每小时危险失效概率,数值越小等级越高;边界值要保守处理,接近 10^-6 时最好按 d 的下边界复核,不要四舍五入到更高级别。

5.3 文档清单:从安全功能规格到验证报告

交付文档要能让他人复现结论。至少包括安全功能规格、风险评估摘录、SRP/CS 边界图、每个子系统的 Cat/MTTFd/DCavg/CCF、PL 计算表、接线图、安全程序版本、参数设置、验证计划和测试记录。改造项目还要保留旧回路拆除记录和临时安全措施。

文档关键内容常见缺失
安全功能规格触发、动作、响应时间、复位只写“急停安全”
参数计算表MTTFd、DCavg、CCF、PFHd来源和取值口径不清
接线图SRP/CS 边界、双通道、EDM双通道共用电缆
程序清单安全逻辑、版本、校验和没有版本冻结
验证报告测试条件、结果、偏差只记录通过项

6. 让 ISO 13849-1 评估少踩坑的 5 个工程技巧

评估返工通常不是公式不会算,而是口径和证据没提前固定。下面这些技巧适合在方案评审和现场调试时直接用,能减少后期补 MTTFd、补 CCF、补测试记录的情况。

6.1 参数口径先冻结,再让采购比价

MTTFd、DC、B10d 的取值要在采购前写进技术要求,不能等供应商报价后再追问。常见做法是要求供应商提供安全元件声明、MTTFd 或 B10d、诊断覆盖率、适用类别和证书编号,并把这些字段做成选型表的一列。否则同一品牌不同批次、不同系列参数差异很大,计算表会在最后阶段推翻。

常见错误后果修正动作
用典型值代替最坏值PL 虚高按最坏温度和负载取
漏算抱闸和接触器PFHd 偏低把磨损件纳入输出子系统
CCF 评分事后补只能改硬件设计评审时打分
DC 直接取 99%诊断证据不足要求测试脉冲和交叉监控记录
停止时间用平均值安全距离不足取最坏响应时间

6.2 验证时盯住边界和变更

验证阶段要测边界:双通道先后断开、复位按钮卡住、电源缓慢下降、通信超时、接触器释放延迟。安全程序每次变更都要重新跑相关测试,并更新校验和与版本号。最后用一个简单检查脚本确认 CCF 分数没有被误填成单项满分。

def ccf_check(scores): # scores 是各评分项得分,常见门槛为不低于 65 total = sum(scores) if total < 65: return f"CCF 不合格: {total}" return f"CCF 通过: {total}" print(ccf_check([15, 20, 20, 5, 20])) # 80,通过 print(ccf_check([15, 0, 20, 5, 20])) # 60,不合格

逻辑说明:把分离、多样性、设计应用、评估、环境等评分项相加,低于 65 分时判为不合格。参数说明:各项分值要按标准评分表逐项取证,不能因为某一项做了冗余就重复计分;环境项要结合油雾、粉尘、温度、振动和维修通道一起判断。把 CCF 评分表做成设计评审的必填项,比在验证阶段补分数更能减少返工。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 21:54:26

SpringBoot社区老人健康系统:合规、多角色与低代码实践

简介&#xff1a;本资源是一份面向计算机专业本科生的毕业设计参考论文&#xff0c;聚焦社区老人健康信息管理系统的开发实践&#xff0c;解决传统社区健康管理中数据分散、响应滞后、服务覆盖不足等现实问题。文档以SpringBoot为核心技术栈&#xff0c;完整呈现系统需求分析、…

作者头像 李华
网站建设 2026/9/17 21:52:10

Linux 安装 PyCharm:tar.gz 解压、桌面集成与解释器配置

1. 为什么要在Linux上装PyCharm&#xff1a;先把选型这件事聊明白Linux下写Python&#xff0c;编辑器选择其实挺多的。终端里Vim配一堆插件能用&#xff0c;VSCode装个Python扩展也能用&#xff0c;但真到了要看大型项目、要跳转定义、要重构改名、要调试多线程的时候&#xff…

作者头像 李华
网站建设 2026/9/17 21:52:04

Playwright 通过 CDP 连接已登录 Chrome 实战

做自动化测试或者数据采集的朋友&#xff0c;大概率都撞过这堵墙&#xff1a;你手动打开谷歌浏览器&#xff0c;登录好账号、点掉一堆同意弹窗、把该过的验证都过完了&#xff0c;页面状态干干净净。结果 Playwright 一跑chromium.launch()&#xff0c;弹出来的是一个全新的窗口…

作者头像 李华
网站建设 2026/9/17 21:47:54

SQL中VALUES构造临时表的实用技巧与避坑指南

1. 从一个调试场景说起&#xff1a;为什么需要“临时造数据”做数据库开发的人&#xff0c;几乎都遇到过这种尴尬&#xff1a;线上有个报表逻辑要验证&#xff0c;但测试环境里没有合适的数据&#xff1b;或者要排查一条 SQL 的关联逻辑对不对&#xff0c;但手头只有表结构&…

作者头像 李华
网站建设 2026/9/17 21:47:52

词法分析器设计核心:从手写实现到Flex自动生成与调试技巧

简介&#xff1a;该资源是编译原理课程中一份完整的词法分析器设计实验报告&#xff0c;面向计算机及相关专业学生&#xff0c;用于解决C语言词法分析器的设计、编制与调试问题&#xff0c;帮助加深对词法分析原理的理解。报告基于C语言实现&#xff0c;包含SYMBOL.H、BASEDATA…

作者头像 李华