• 正文
  • 相关推荐
申请入驻 产业图谱

Prfisafe中的“钝化”到底是什么意思?为什么叫这个名字?

09/01 08:53
228
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

引言:一个让人望文生义的词语在调试西门子S7-1500F、ET200SP F系列模块的时候,几乎所有的工程师都曾在诊断缓冲区或者STEP 7 Safety的报警窗口中见到过这个词语——“钝化”(Passivation)。

第一次看到它的人都大概率会联想到金属加工中“不锈钢钝化处理”这样的工艺名词,觉得它跟安全PLC的故障处理八竿子打不着。但是正是由于这种“违和感”,才指向了很少有人去说清的一个事实:该术语并不是译者随口选中的词语,在功能安全领域的材料科学中特意借用的一个比喻词。并且这个隐喻非常精准,甚至达到了苛刻的地步。

本文想要把“钝化”这3个字说清楚:它在技术上具体做了些什么?它的名字是从哪里来的?又为什么偏偏叫做“钝化”,而不叫作“失效”、“屏蔽”、“隔离”等等呢?而这样一个命名的选择背后又有什么样的含义呢?包含着总线化的故障安全系统的设计理念。


一、钝化到底是什么:先看技术本质

在SIMATIC Safety(S7-1500F/S7-1200F))系统中,钝化的定义是:当故障安全输入/输出模块(F-I/O)或者其中的一个通道出现故障的时候,系统不把真实的进程值传给安全程序了,而是自己自动切换到规定的好“故障安全替代值”(一般情况下就是0)来,并且使相关的输出仍然处于安全的状态中,“用替代值代替真实值、模块从安全惰性状态进入到另一个安全惰性状态的过程,叫做钝化。

发生于两个数据链路中:输入侧:F-DI模块检测到通道故障(例如断线、短路、双通道不一致超过差异时间)之后,安全程序读取到的不再只是传感器真实电平,而会被强制替换成“0”(无效/安全值)),根据此来触发相应安全的动作。

输出侧:F-DQ模块检测到自身的故障(例如输出回读校验失败),就会把实际输出强制切换到安全状态(一般情况下是断电),而不管此时的安全程序想要让其输出什么。

钝化触发范围可以根据需要进行精确设置,这也就是TIA Portal中“Behavior after channel fault(通道故障后的行为)”

这一参数所代表的意义所在:钝化通道(Passivate channel),只允许出故障的一条通道进入到安全的状态下,模块上的其他通道仍然可以正常使用。

8 个通道独立信号模块中最常用的一种配置方式就是,比如有一路急停按钮接线松动了,并不会影响到同一模块上的其他安全门信号。Passivate station/module(钝化整站/整个模块)):任何一个通道出现故障的时候,整个模块(甚至是整个F-I/O站)的所有通道都进入了安全状态。

安全性更好,但是故障的影响面也会变大,因此成本就是可用性的降低。

故障排除后,该模块并不会自动“悄悄”地恢复正常——这个恢复的过程叫做重新集成(Reintegration)),可以设置为自动完成。可以要求在安全程序中有一个明确的用户的确认动作(Acknowledge),只有这样才可以让替代值被切换回真实的流程值。

“是否要自动恢复”这样的设计留白,在这里也有着很深的意义,后面还会专门去讲解。至此,钝化工程所具有的含义已经非常清楚了:它并不是“报警”,也不是“停机”,而是一种可以配置粒度、能够自动恢复、以“替代值”为内核机制的降级运行状态。


二、为什么叫做“钝化”:词源和类比

技术含义已经讲完了,接下来要问的是一个非常有趣的问题——为什么要取这个名字呢?答案应该回到材料科学上。

“钝化”(Passivation)在冶金和表面处理领域是一个古老的术语:一种活泼的金属(例如铁、铝、不锈钢中的铬)被暴露于氧化性的环境中时所发生的现象。表面上会自然产生一层非常薄且致密的氧化膜。这一层膜把金属和外界环境分离开来,尽管金属本身仍然存在,但是它的化学活性却被大大抑制了——它由原来的可以一直参与到氧化还原反应中的“活性体”,变成了一种几乎不再与外界发生任何反应的“惰性体”。

不锈钢不生锈的本质上是铬元素自发钝化形成的一种氧化铬薄膜来保护基体金属;铝制品的阳极氧化处理,其实也就是人为地加强这一层钝化膜。在功能安全领域中使用这个词,所挪用的是“由活性状态转为惰性状态,以此来阻止有害反应的发生”这一抽象结构,并非是把“氧化膜”这样的物理现象给挪走。

把该结构映射到F-I/O故障处理中去的话,对应的关系统一性强:材料钝化、安全钝化| --- | --- |金属表面本来就是在不断地参与到环境中发生的化学反应中去的 | I/O 通道本身也是在不断的参与到过程控制的数据反应之中去的 |检测到氧化性的环境(有害条件);检测到通道故障(有害条件)。

生成氧化膜来隔绝金属和外界进一步发生化学反应;输出替代值以中断故障数据对整个过程的影响。金属本体仍然存在,但是“不再响应” | 模块硬件仍然存在,但是“不再输出真值” |钝化膜能够被消除,并且恢复到正常的活性状态(可能还需要人为干预来实现)。

这就是命名的艺术所在:它不使用“故障(Fault)”)、“失效(Failure)”)、“隔离(Isolation)”)这样的带有负面含义的词语来描述,而选择的是一个突出“主动地进入到不能再进行任何反应的安全状态中去”的词语。

钝化的含义并不是说系统出了问题,而是在于系统在发现风险之后会自动切换到一个不会造成伤害的状态下,即钝化状态。但是安全并不是依靠永不出错来实现的,而是在出现错误之后能够优雅、可预见地终止危险的行为回路。**顺便说一下,在英文中原词为Passivation/Passivate,在工程英语中已经跨越了两个学科:材料工程上指的是表面钝化处理。在控制/安全工程中,“使某条通道或回路失去主动性”就是“退出主动作用”。

IEC 61508系列的功能安全标准以及衍生出的现场总线安全协议标准都沿用了这样的说法习惯。中文技术文档统一译作“钝化”,而不另造新词,从某种意义上来说是对这种类比关系的一种尊重。


三、钝化的原因:硬布线安全回路和总线化的安全通信

仅仅从名字上看,“钝化”其实是一个纯属修辞的选择。但是它真正的被“发明”出来,并且被写进了标准中,其实有一段绕不过去的历史背景——总线化的信任问题。

3.1 硬布线时代:安全性依靠“物理断电”

在PROFIsafe出现以前,工业安全回路经典的做法就是“失电动作”原则(de-energize to trip),即安全继电器、急停按钮、安全门开关等都按照这个原则来使用:当任何一个设备发生故障时,就会使相应的安全继电器动作,并且发出报警信号;而当所有的设备都正常工作的时候,则不会有任何的安全继电器被触发。

用独立的硬布线直接连接到负载回路中去。一但发现有危险的情况时,就会立刻断开电源,并且把这种状态输出为 0。在这里并不存在所谓的"钝化"的概念,因为安全状态与物理上的"断电"是完全等同的、瞬间完成的,并不需要任何额外的协议来表示。

总线化的结果就是安全数据需要穿过一条“不可信”的通道PROFIBUS DP、PROFINET IO 普及之后,工程上迫切需要把安全 I/O 也挂到标准总线上,和普通 I/O 共用同一套电缆、交换机通信协议栈,而是在单独拉出一套安全硬布线系统之后才进行的标准总线本身(PROFIBUS/PROFINET的标准通信部分)并不是为了安全场景所设计的,存在传输错误、丢包、延时、地址混乱等问题。

重复帧等现象也会出现,并且标准通信硬件(ASIC、驱动栈)本身不进行任何的安全级别改变——这就是PROFIsafe所用到的“黑通道原理”(Black Channel Principle):把底层的标准通信当作一条来处理。不可靠且可能会出现各种错误的"黑盒",所有的安全保证都通过协议应用层来实现,并使用软件的方法去完成,其中包括连续编号、超时监控、发送方和接收方双方向确认、CRC校验等。

F 地址一致性的校验等等。这就产生了一个新的问题:一旦这套软件机制发现有异常情况存在(无论是由于F-I/O硬件本身的故障,还是因为总线传输过程中出现的问题)时,系统要使用一个“逻辑动作”来等效地代替以前的那种“物理断电”的确定性——毕竟总线是数字化的、异步的,并不能真正依靠拔掉电源线的方式来表示“此条数据不可信”。

“钝化”就是在这样的背景之下被系统化、标准化命名的一个概念,在总线化的安全通信体系中,用软件或者协议的方式来模拟“失电动作”的效果就是其中的一种核心机制。IEC 61784-3(PROFIsafe 遵循的国际标准)中对各种类型的故障进行了检测,并且制定了相应的安全响应措施来应对这些故障。当数据损坏、寻址错误、主从站故障等情况发生之后,输出侧就会统一进入到一个叫做Passivation的安全替代值的状态中去。

可以认为钝化机制的出现就是为了让总线安全通信能够在“不可信介质”上重新建立起“可信的失效行为”,从而发明出一套形式化的解决方案。了解了这一层的历史之后,就可以知道为什么钝化不是孤立的一个西门子专有名词,而是在所有的基于标准总线的安全协议中都存在(PROFIsafe、CIP Safety、openSAFETY 等都属于此类问题,并且各家叫法不同、具体实现也有所区别。


四、为什么要经常进行"人工确认"?

钝化解决了“怎样安全地失败”的问题,但是还有一半的问题没有解决,“怎样安全地恢复”。

如果故障一消失就自动切换回真实的数值,表面上看似乎更高效一些,但是却掩盖了一种非常危险的故障模式——间歇性故障。例如一根安全信号线由于振动而使得接触时好时坏,当每次接触恢复后就会马上自动重新集成,操作人员甚至感觉不到之前有过通道钝化的现象,问题会由系统“温柔地”隐藏起来。有一次接触没有恢复好,安全响应的时间就被缩短了。

因此,在很多情况下,重新整合会被有意地设计为需要在安全程序中显式地要求用户的确认动作(例如按下一个专门的复位按钮)触发安全程序中ACK_REI逻辑的时候,“必须有人确认”的设计本质就是把“故障是否已经被真正排除”这件事情上的判断责任从自动化的逻辑转移到了人身上。

和硬布线时代的安全继电器要手动复位按钮一样,逻辑上是一致的,在总线化、软件化的今天,这个复位动作又被重新定义为协议层面上的一个显性的握手过程。


第五个容易踩到的工程陷阱是:一些施工单位为了追求经济效益,在施工过程中存在偷工减料的现象。

根据钝化机理,在实践中需要注意以下几点:Passivate station 用得过于随便:把“通道故障之后的行为”统一设置为整个车站或整个模块钝化,图省事,但是当某一个不重要的通道经常出现抖动现象(例如某个非安全关键的门磁开关接线不良),就会使整个模块所有的回路(包括真正的关键的急停链路)一起停止工作,扩大了故障的影响范围。还会使现场人员对于“安全系统一动不动就跳闸”的情况产生麻木心理,从而减弱了安全文化的影响力。

自动重新集成滥用:为了方便操作而把本来应该由人工确认的通道设置成了自动重新集成,表面上看去似乎可以减少停机的时间,但是实际上却放弃了对于间歇性故障的“可见性”,长久下去就是用安全保障来换取表面的可用性。

把钝化诊断信息当作噪音来忽略,在F-I/O DB中记录的钝化标志位、故障代码等本质上就是系统不断地向外界报告“哪些反应回路处于被主动抑制的状态”,长期积累下来的钝化事件往往就是设备劣化的一个早期信号,应该被纳入到预防性维护的监控之中,并不是简单的把报警点去掉就可以不管了。


结论:用一个词来理解安全的设计哲学

“钝化”这个词语可以准确地跨越学科进行移植,并非是偶然的翻译巧合。在材料科学中,钝化就是"用一层惰性膜来换取长久稳定的性能,并不是通过金属不与氧气接触的方式来实现的";在功能安全中,钝化就是“使用一次可以控制的降级来换取整个系统的可预见性,并不是假装故障永远不会发生”。

两者的底层逻辑是一样的:真正的稳健性,并不是消除风险发生的可能性,而是在于为风险发生之前就预先设计出一条不会造成伤害的退出路径。

明白了这一点之后,再看STEP 7 Safety中有关“钝化通道/钝化整个模块”、“自动重新集成/用户确认重新集成”的参数设置,就不是几个需要死记硬背的选择题了,而是一次又一次地去回答一个问题:当一件坏事真的发生了之后,我希望系统用什么样的代价、多快的速度、以什么名义,把系统重新恢复到活性状态。

—— 全文完 ——

相关推荐