概述
西门子的故障安全模块在故障时会产生钝化,钝化时会自动使用故障安全值(0)代替过程值。简单的说,就是在钝化状态下输出模块没有输出,安全程序中输出地址还在置位;输入模块提供替代值“0”给安全程序实际信号状态为接通(1)状态。在导致故障安全信号模块钝化的错误消失后,需要用户对模块状态进行确认,这个确认的操作就称作去钝(重新集成)。去钝化完成后,模块由提供故障安全值(0)切换到过程值,输出状态重新由过程映像区地址控制,输入的过程映像区地址提供实际的信号状态。
西门子故障安全模块去钝化常用的方式有手动或自动,如果设置为自动去钝的话,那么只要外部的故障一消除这个系统会自动去钝,这里需要强调一下,就是自动去钝它存在一定的安全隐患,我们不推荐自动去钝,更推荐手动去钝;如果设置为手动去钝的话,它是需要通过编程来实现的,我们在程序里面有标准的去钝化的功能块直接调用即可,当然我们通过手动编程也可以实现。其中手动去钝的方式可再分为单独去钝化(针对单个模块操作)和全局去钝化(针对所有模块操作)。全局去钝化用现成的安全指令(ACK_GL)实现,可以快速便捷的对这个安全运行组中的所有已消除故障的请求去钝化状态下的安全模块一起重新集成,而不需要去一个个单独的去钝操作。
指令调用
(1)在TIA Portal中 创建一个新项目,组态 S7-1500F站点,并添加一个标准DB2(From_HMI)和一个安全DB3(TO_Safety),如下图所示。
图1 添加安全项目和DB(2)在安全的主程序块FB1(Main_Safety_RTG1)中,将来自HMI的去钝化按钮点传给安全DB中的点,从右侧指令->基本指令->Safetyfunction下调用ACK_GL全局去钝化指令,指令中的ACK_GLOB关联HMI传递过来的安全DB点,该管脚上升沿触发,如下图所示。
图2全局去钝化指令添加(3)当上位机关联的点“From_HMI”有0到1的变化时,就可以实现全局去钝化的操作,如下图所示。
图3 指令调用在线图