3. 安全控制系统需求分析与安全功能定义

安全控制系统的设计不能从选型开始,而必须从“危险是什么、需要把风险降到什么程度、由哪些安全功能承担”开始。需求分析阶段的核心任务,是把机械、工艺、电气与操作层面的危险,转化为可验证、可实现、可追溯的安全需求。它通常包含四个相互衔接的环节:风险评估、安全功能列表、SIL/PL 确定、安全需求规格书(SRS)编写。四者不是并列文档,而是逐级收敛的推导链:风险决定功能,功能决定等级,等级与功能共同决定规格书。

一、风险评估:从危险源到风险等级

风险评估的目标是识别每台设备、每个工位在生命周期内可能出现的危险,并判断现有防护是否足够。工程上常用 ISO 12100 的“危险识别—风险估计—风险评价”三步法,配合 ISO 13849-1 的伤害严重度 S、暴露频率 F、避免可能性 P 三个参数进行分级。以某包装线自动上料工位为例:机械手在防护门打开时仍可能运动,属于挤压危险。若伤害为不可逆(S2),人员每班需进入一次(F2),且运动速度快、无缓冲空间(P2),则风险等级为最高档,必须通过安全功能把风险降到可接受水平。

风险评估不是一次性动作,而应形成“危险—场景—现有措施—残余风险”的清单。清单中每一项都要有唯一编号,例如 H-01、H-02,后续安全功能与规格书均引用该编号,保证可追溯。对于 Phoenix PLCnext 这类可编程安全控制系统,还要特别关注软件引起的危险:参数被误改、安全逻辑被旁路、通信延迟导致响应超时等,这些也应作为危险源纳入评估。

二、安全功能列表:把危险转化为功能

安全功能是对“当某危险发生时系统应做什么”的明确描述,通常用“检测—判断—执行”结构表达。仍以上料工位为例,可定义如下安全功能:

  • SF-01:防护门打开时,切断机械手伺服动力,并使其进入安全停止状态;
  • SF-02:光幕被遮挡时,停止上料输送带并禁止启动;
  • SF-03:急停按钮按下时,整线进入安全停止并保持,直到手动复位;
  • SF-04:安全门锁未锁定时,禁止机械手进入自动模式。

每条安全功能都应写明触发条件、响应动作、停止类别(如 IEC 60204-1 的 0 类急停、1 类受控停止)以及复位方式。功能列表是后续 SIL/PL 分配的对象,不能只写“门开停机”这类模糊描述,否则无法验证。

三、SIL 与 PL 的确定

SIL(安全完整性等级)来自 IEC 61508/61511,PL(性能等级)来自 ISO 13849-1,两者都描述安全功能在需要时成功执行的概率。对于机械安全,通常先用 PL 分级:PLa 到 PLe,对应 PFHd 范围从 10⁻⁵ 到 10⁻⁸ 每小时。SIL 1~3 则常用于过程工业,SIL 3 对应 PFHd 10⁻⁸~10⁻⁷。二者可通过对照表近似映射,但不应混用同一套参数。

确定等级时,要区分“要求等级”和“实现等级”。要求等级由风险评估得出,例如 SF-01 若判定为 PLd,则其安全回路的结构类别、MTTFd、DC、CCF 必须满足 PLd 的 PFHd 上限。实现等级由所选安全控制器、传感器、执行器及架构共同决定。Phoenix PLCnext 的安全模块通常支持 SIL 3/PL e,但整条回路能否达到 PLd,取决于最薄弱环节。因此必须对每条安全功能单独计算,而不是笼统写“整机 PLd”。

安全需求分析推导链:风险 → 功能 → 等级 → 规格书 ① 风险评估 危险识别 H-01… S 严重度 / F 暴露 P 避免可能性 输出:风险等级 ② 安全功能列表 SF-01 门开停机械手 SF-02 光幕停输送带 SF-03 急停整线停止 输出:功能清单 ③ SIL / PL 确定 要求等级:PLd / SIL2 PFHd 上限 10⁻⁷/h 结构类别 Cat.3 输出:等级分配 ④ SRS 规格书 功能/等级/响应 复位/测试/追溯 验证准则 输出:可验证需求 安全功能实现回路(以 SF-01 为例) 安全门锁 双通道触点 DC=99% PLCnext 安全控制器 安全逻辑 SF-01 SIL3 / PL e 模块 安全继电器 切断伺服动力 1 类停止 反馈与诊断:触点状态、测试脉冲、复位确认 整条回路需满足 PLd / SIL2

四、安全需求规格书(SRS)编写

SRS 是把上述结果固化为可设计、可编程、可验证的文件。它不应只写“系统应安全”,而要对每条安全功能给出完整定义。以下是一份可直接参考的 SRS 条目示例,字段按机械安全项目常用结构组织:

字段示例内容(SF-01)
功能编号SF-01
关联危险H-01 机械手挤压
功能描述防护门打开时,切断伺服动力并进入安全停止
触发条件门锁双通道信号不一致或门被打开
响应动作安全继电器断开,伺服使能撤销,1 类停止
要求等级PLd / SIL2,PFHd ≤ 10⁻⁷/h
复位方式门关闭并手动复位后恢复
验证方法门开测试、双通道故障注入、响应时间测量

编写 SRS 时有几个容易出错的点。第一,把“要求等级”写成“实现等级”,例如直接写“本系统为 PL e”,但实际回路只达到 PLd,导致验证无法通过。第二,遗漏响应时间。安全功能必须写明从触发到进入安全状态的最大允许时间,例如 SF-01 要求 ≤ 250 ms,这个数值会直接影响安全控制器扫描周期、继电器动作时间和停止距离计算。第三,忽略复位与重启条件。很多事故发生在复位环节,因此 SRS 必须明确“手动复位”“自动复位”以及复位前需满足的条件。第四,缺少追溯关系。每条安全功能都应能反向查到危险编号,正向查到验证记录。

在 Phoenix PLCnext 项目中,SRS 的功能编号可直接作为安全程序中的变量命名前缀,例如 SF01_DoorOpen、SF01_SafeStop,使文档、程序与测试用例保持同一套标识,减少后期变更时的错漏。

五、从需求到实现的检查要点

完成 SRS 后,应做一次一致性检查:危险清单中的每一项是否都有安全功能覆盖;每条安全功能是否都有明确的等级和 PFHd 预算;每个等级是否都能由所选传感器、控制器、执行器架构支撑;每条功能是否都有可执行的验证方法。若某条安全功能无法验证,说明需求描述还不够具体,应回到功能定义阶段补充触发条件、响应动作和判定准则。只有通过这轮检查,SRS 才能作为安全控制系统设计、编程、集成与验收的共同依据。