
简介这份文档是 ISO 3691-4-2020 表1「安全回路 PL 要求」的中文翻译整理面向叉车与工业车辆安全控制系统的设计、认证及功能安全工程师帮助读者快速理解标准对安全功能最低性能等级PL的约束。内容围绕刹车系统、速度控制、速度监测、ESPE 安全检测区域、自动充电、负载搬运、转向、稳定性、急停、人员检测系统以及自动/手动/维修模式等条款展开逐项列出安全功能描述、主要风险备注与最低 PL 要求并标注了 d、c、b 等不同等级及 0.3m/s、0.7m/s 等速度限值条件。资源包为 1 个 docx 文件约 27KB以表格化条款对照形式呈现便于按分项条款检索与对照原文。目前已有 343 人学习下载适合需要将标准要求落地到安全回路设计、PL 评估与合规审查的读者参考使用。1. ISO 3691-4 表1 安全回路PL要求一份被低估的翻译活做无人叉车或AGV功能安全的同行大概率都经历过这个场景项目要过CE认证公告机构发来一份差异表指着ISO 3691-4:2020的Table 1问“你们每个安全功能的PL等级是怎么定的”。你翻出标准原文发现表1只有几列缩写和数字没有解释、没有推导过程甚至连“PL”和“安全回路”之间的对应关系都要自己去ISO 13849-1里翻。更麻烦的是这份标准目前没有官方中文版本团队里做电气、做软件、做整机认证的人各看各的理解经常对不上。这篇笔记就是把我自己翻译和落地表1的过程拆开讲清楚表1到底在要求什么、每个安全功能对应的PL怎么查、翻译时哪些词不能随便翻、以及怎么把这张表变成能直接写进安全需求规格书的东西。适合正在做无人车辆安全回路设计、准备认证材料、或者需要把标准要求转成工程语言的人。2. 表1到底在说什么从安全功能到PL等级的映射逻辑2.1 表1的结构拆解四列信息各管什么ISO 3691-4:2020的Table 1标题是“Safety functions and required performance levels”核心就四列安全功能描述、对应条款、所需PL等级、以及备注。第一列列出的是无人驾驶工业车辆在运行中必须实现的各项安全功能比如“行驶速度限制”“人员检测与避让”“紧急停止”“制动系统监控”等。第二列指向标准正文里对该功能的具体要求条款。第三列是这张表最核心的信息——每个安全功能对应的PL等级从PL a到PL e不等。第四列备注里偶尔会写一些特殊条件比如“仅适用于特定运行模式”或“与车辆类型有关”。翻译这张表最容易翻车的地方是把第一列的功能描述当成通用术语直接译。实际上每个功能名称在标准正文里都有严格定义翻译时必须和正文条款对照否则会出现“翻译对了词、翻错了义”的情况。比如“speed control”和“speed limitation”在表1里是两个不同的安全功能对应不同的PL等级如果都译成“速度控制”下游做安全需求分解的人就会懵。2.2 PL等级不是拍脑袋定的ISO 13849-1的输入参数表1里每个安全功能后面标的PL等级不是标准编写组随便填的。它的底层逻辑来自ISO 13849-1的风险评估方法先确定每个安全功能的所需性能等级PLr再通过架构类别Category、平均危险失效时间MTTFd、诊断覆盖率DC和共因失效CCF四个参数来验证实际达到的PL是否满足PLr。表1直接给出了PLr相当于帮你省掉了风险评估的第一步。但这里有个坑表1给的是最低要求实际设计中你可以做更高但不能做更低。而且PL等级和Category不是一回事PL d可以通过Category 3实现也可以通过Category 4实现成本和复杂度差别很大。翻译时如果只翻出“PL d”三个字不把背后的Category和MTTFd要求一起交代电气工程师按PL d去选器件时很可能选错架构。2.3 翻译前必须锁定的三个术语基准在动手翻译表1之前我一般会先锁定三个术语的译法不然后面会反复改。第一个是“safety function”统一译“安全功能”不译“安全机能”或“安全函数”。第二个是“performance level”统一译“性能等级”缩写保留PL不译“表现水平”。第三个是“detection”在人员检测场景译“检测”在故障检测场景译“诊断”或“探测”要根据上下文区分。这三个词定下来之后表1里其他术语的翻译就有了锚点。比如“muting”译“屏蔽”“enabling device”译“使能装置”“limited speed”译“受限速度”。这些译法不是唯一的但必须在项目内部统一否则同一份认证材料里出现两种译法公告机构会直接开不符合项。3. 把表1翻译成可执行的安全需求步骤与参数落地3.1 从PDF到可编辑表格提取与对齐的实操标准原文是PDF表1跨了两页直接复制会乱。我一般用Python的pdfplumber做提取再手工对齐。下面这段代码是把表1所在页的表格抽出来存成CSV的最小示例import pdfplumber import csv # 打开标准PDF定位到表1所在页码 # 页码需要根据实际PDF调整这里假设表1在第23和24页 with pdfplumber.open(ISO_3691-4_2020.pdf) as pdf: all_rows [] for page_num in [22, 23]: # 0-indexed page pdf.pages[page_num] # extract_table会自动识别表格线无框线表格需要调参数 table page.extract_table({ vertical_strategy: text, horizontal_strategy: text }) if table: for row in table: # 过滤空行和页眉重复行 if any(cell and cell.strip() for cell in row): all_rows.append(row) # 写入CSV方便后续逐行翻译和标注 with open(table1_raw.csv, w, newline, encodingutf-8) as f: writer csv.writer(f) writer.writerows(all_rows) print(f提取到 {len(all_rows)} 行)这段代码的关键在extract_table的参数。ISO标准PDF的表格经常没有完整框线用默认参数会漏行。vertical_strategy设为text表示按文字位置推断列边界horizontal_strategy同理。如果提取结果仍然错位可以改用lines策略并手动指定explicit_vertical_lines。提取完不要直接机翻先人工核对每一行的功能名称和PL等级是否对应正确因为PDF跨页时表头可能重复导致数据行错位。3.2 逐行翻译的检查清单功能名、条款号、PL值提取出原始表格后逐行翻译时我固定检查三件事。第一功能名称是否和标准正文的条款标题一致。比如表1里写“Personnel detection”正文第4.5.2条的标题可能是“Detection of persons in the path of travel”翻译时要统一成“行驶路径内人员检测”不能简写成“人员检测”。第二条款号是否准确。表1第二列可能只写“4.5.2”但正文里该条款可能有多个子条款翻译时要标注完整路径比如“4.5.2.3”。第三PL值是否抄对。PL b和PL c在PDF里容易看混尤其是扫描版建议放大到200%逐字核对。下面是一个翻译后的行示例用表格呈现安全功能译对应条款所需PL备注译行驶路径内人员检测4.5.2.3PL d适用于自动运行模式紧急停止4.4.1PL c所有运行模式速度限制4.5.1PL d与车辆最大速度有关这张表翻译完后不要直接发给电气团队。先让做风险评估的人确认PL等级和条款对应关系再让做安全回路设计的人确认PL d是否可以通过现有架构实现。两个角色都签字后这张表才能作为安全需求规格书的输入。3.3 把PL要求转成安全回路参数Category、MTTFd、DC怎么填表1只给PL不给Category。实际做安全回路设计时需要根据PL反推Category和MTTFd。ISO 13849-1附录里有一张对照表但工程上常用的简化规则是PL c通常用Category 1或2PL d用Category 3PL e用Category 4。但这不是绝对的Category 3加高DC也可以做到PL e。下面这段Python代码是根据PL等级和Category反查所需MTTFd范围的简化实现用于快速筛选安全继电器和传感器# PL与Category、MTTFd的简化对照 # 数据来源ISO 13849-1 Table 6的简化归纳 # 实际认证时必须以标准原文和SISTEMA计算结果为准 pl_requirements { PL c: { Cat 1: {MTTFd: (30, 100), DC: 无}, Cat 2: {MTTFd: (30, 100), DC: 低}, }, PL d: { Cat 3: {MTTFd: (30, 100), DC: 中}, Cat 4: {MTTFd: (30, 100), DC: 高}, }, PL e: { Cat 4: {MTTFd: (30, 100), DC: 高}, } } def check_pl(pl, category, mttfd, dc): 检查给定参数是否满足PL要求 req pl_requirements.get(pl, {}).get(category) if not req: return f{pl} 无法通过 {category} 实现 low, high req[MTTFd] if not (low mttfd high): return fMTTFd {mttfd} 年不在 {low}-{high} 年范围内 if dc ! req[DC]: return fDC 需要 {req[DC]}当前为 {dc} return f满足 {pl} 要求 # 示例PL dCategory 3MTTFd 50年DC中 print(check_pl(PL d, Cat 3, 50, 中)) # 输出满足 PL d 要求这段代码的用途是在选型阶段快速排除明显不满足的组合。比如你选了一个Category 2的安全继电器想做到PL d代码会直接告诉你“PL d 无法通过 Cat 2 实现”。但要注意MTTFd的范围是简化值实际计算要用SISTEMA或类似工具把每个子系统的MTTFd、DC、CCF都输进去才能得出最终PL。翻译表1时如果能把这一层对应关系也标注出来下游做安全回路设计的人会省很多沟通成本。4. 翻译和落地过程中最容易踩的五个坑4.1 把PL等级当成Category等级用现象电气工程师看到表1写PL d直接选了一个Category 4的安全模块成本翻倍。原因PL和Category是两个维度PL d可以用Category 3实现不一定非要Category 4。解决在翻译表1时加一列备注写明“PL d可通过Cat 3DC中实现”并附上ISO 13849-1的对照表页码。4.2 功能名称翻译不一致导致需求遗漏现象表1译成“人员检测”正文译成“行人识别”安全需求规格书里两个词都出现评审时被质疑漏了一个功能。原因翻译时没有建立术语表不同人翻不同章节。解决翻译前先做一份术语对照表所有参与翻译的人共用表1里的功能名称必须和正文条款标题逐字对应。4.3 忽略备注列的特殊条件现象表1某行备注写“仅适用于自动模式”翻译时漏了结果手动模式下也按PL d设计增加了不必要的成本。原因备注列字体小、位置偏容易被忽略。解决提取表格时把备注列单独拉出来逐条翻译并标注适用条件在安全需求规格书里作为前置条件写明。4.4 条款号只写一级编号现象表1写“4.5.2”翻译时也只写“4.5.2”但正文里4.5.2有五个子条款分别对应不同的检测区域和响应时间。原因表1受限于排版只写一级编号翻译时没有展开。解决翻译时查正文把子条款号补全比如“4.5.2.3”并在备注里写明该子条款的具体要求。4.5 直接机翻后不做术语回译校验现象机翻把“enabling device”译成“使能设备”但团队内部一直用“使能装置”导致文档不一致。原因机翻没有项目术语库。解决机翻后做一次回译把译文再翻回英文看是否和原文一致。不一致的地方人工修正并更新术语表。5. 进阶把表1变成安全需求规格书的自动化检查脚本翻译完表1只是第一步真正省时间的是把表1的结构化数据变成可检查的脚本。我一般会把翻译后的CSV导入Python做两件事一是检查每个安全功能是否都有对应的PL等级和条款号二是检查PL等级是否在允许范围内。import csv # 读取翻译后的表1 with open(table1_translated.csv, r, encodingutf-8) as f: reader csv.DictReader(f) rows list(reader) # 检查1必填字段是否完整 required_fields [安全功能, 对应条款, 所需PL] for i, row in enumerate(rows, start2): # 从第2行开始第1行是表头 for field in required_fields: if not row.get(field, ).strip(): print(f第{i}行缺少 {field}) # 检查2PL等级是否在合法范围 valid_pl {PL a, PL b, PL c, PL d, PL e} for i, row in enumerate(rows, start2): pl row.get(所需PL, ).strip() if pl and pl not in valid_pl: print(f第{i}行PL等级非法{pl}) # 检查3条款号格式是否为 x.x.x import re pattern re.compile(r^\d\.\d(\.\d)?$) for i, row in enumerate(rows, start2): clause row.get(对应条款, ).strip() if clause and not pattern.match(clause): print(f第{i}行条款号格式异常{clause}) print(检查完成)这个脚本跑一遍能把翻译过程中的低级错误全筛出来。比如某行PL写成“PL D”大写或者条款号写成“4.5.2.3.1”多了一级都会报出来。更进一步可以把表1的PL要求和实际安全回路设计文档做交叉检查设计文档里每个安全功能标注的PL是否大于等于表1要求。这个检查用pandas做merge就行不展开写了。最后说一个我自己的习惯翻译标准表格时永远保留一份中英对照的原始文件不要只留译文。因为认证过程中公告机构可能会问“这个功能原文怎么写的”你翻回英文时如果只凭记忆很容易和原文有出入。中英对照文件放在项目共享目录里谁需要谁查比反复翻PDF快得多。希望帮到你。本文还有配套的精品资源点击获取