全国服务热线 19542938937

理解西门子故障安全输入输出模块的数据块

发布:2023-02-23 19:41,更新:2023-08-01 08:00

理解西门子故障安全输入输出模块的数据块

下面这张图是某项目的硬件组态,在西门子S7-1


添加完成后,在项目树的“程序块”→“系统块”→“STEP7Safety”→“F-I/Odatablocks”会自动添加两个安全I/O数据块(F-I/ODB),如下图所示:


安全I/O数据块的名称以“F”开头,后面的数字表示模块的起始地址,其后是模块在硬件组态中的名称。比如:“F00008_F-DI8/16x24VDC_1”,“F”表示是故障安全,“8”表示模块的起始地址为“8”,后面的字母是模块的名称,与硬件组态中相同。


双击打开该数据块,如下图所示:


它由输入和输出两部分参数组成。输入参数可对模块进行控制,输出参数可用来评估模块的状态。其中:


输入参数:


PASS_ON:布尔型,1=使能模块的钝化;在安全程序中将该值设置为1将钝化整个故障安全输入/输出模块;ACK_NEC:布尔型,当安全模块故障消除后,重新集成是否需要确认(1=需要确认;0=不需要确认,自动重新集成;默认为1);ACK_REI:布尔型,确认重新集成的输入信号(上升沿);IPAR_EN:布尔型,PROFIsafe协议中“iPar_EN_C”参数;DISABLE:布尔型,1=禁用安全I/O数据块;输出参数:


PASS_OUT:布尔型,模块的钝化状态(1=模块已经钝化);QBAD:布尔型,1=输出故障安全值;ACK_REQ:布尔型,故障消除后,请求重新集成;IPAR_OK:布尔型,PROFIsafe协议中“iPar_EN_S”参数;;DIAG:字节型,诊断信息;DISABLED:布尔型,1=故障安全信号模块已经禁用;可以看出,安全I/O数据块中的参数主要是和模块的钝化及重新集成有关。所谓“钝化(Passivation)”是指安全输入/输出(F-I/O)模块检测到故障时,使用故障安全值替代正常的输出值进行输出的状态;所谓“重新集成”,是指当模块故障消除后,重新恢复成正常工作状态。详见我之前写过一篇文章《什么是故障安全模块的钝化和重新集成?》。


在安全程序中,可以通过读取安全I/O数据块的参数值来获取相关的信息。


比如下面的代码读取安全模块的钝化信息并存放到安全数据块DB900中:


下面的代码读取模块的请求重新集成的信息并存放到全局数据块中:


对于单个安全模块的重新集成,可以通过给其安全数据块的“ACK_REI”参数赋值来完成,比如:


不过在实际项目中,通常有多个安全输入/输出模块,逐一进行复位显得比较繁琐。我们可以使用安全指令“ACK_GL”对安全运行组中的所有安全模块进行重新集成,比如下面的代码:


需要说明的是:只有当“ACK_REQ”的值为1的情况下才能完成模块的重新集成(也就是所有故障已经消除)。


好了,关于西门子故障安全模块的安全I/O数据块就先介绍到这里。


推荐下我的书《西门子S7-1200/1500PLCSCL语言编程从入门到精通》


联系方式

  • 地址:上海黄浦 上海市松江区石湖荡镇塔汇路755弄29号1幢
  • 邮编:200011
  • 电话:19542938937
  • 联系人:刘经理
  • 手机:19542938937
  • 微信:19542938937
产品分类