Skip to main content

SF_Antivalent

适用的安全标准

SF_Antivalent 是经过认证的 PLCopen 功能块。有关应用标准的详细信息,请参阅:“PLCopen – Technical Committee 5 – Safety Software”

重要

用户必须满足标准中列出的要求。

接口说明

该功能块将两个反价 SAFEBOOL 输入(NO/NC 对)到一个 SAFEBOOL 输出具有差异时间监控。该 FB 不应该单独使用,因为它没有重启联锁。需要将输出连接到其他安全相关功能。

13. VAR_INPUT

姓名

数据类型

初始值

说明,参数值

Activate

BOOL

FALSE

通用输入参数

S_ChannelNC

SAFEBOOL

FALSE

多变的

NC 代表 Normally Closed.

NC 连接输入

FALSE:常闭触点打开

TRUE:常闭触点闭合

S_ChannelNO

SAFEBOOL

TRUE

多变的

NO 代表常开

NO 连接输入

FALSE:常开触点

TRUE:常开触点闭合

DiscrepancyTime

TIME

T#0ms

持续的

两个输入的差异状态的最大监控时间

必须遵守警告说明“DiscrepancyTime”。



DiscrepancyTime

适用于扩展级别的开发人员: DiscrepancyTime 输入必须用一个常数值激活。因此,不得更改调用的值。

14. VAR_OUTPUT

姓名

数据类型

初始值

说明,参数值

Ready

BOOL

FALSE

一般输出参数

S_AntivalentOut

SAFEBOOL

FALSE

安全相关输出

FALSE:至少有一个输入信号“未激活”或监控时间之外的状态变化

TRUE:两个输入信号都“激活”并且状态在监控时间内发生变化。

SafetyDemand

BOOL

FALSE

一般输出参数

Error

BOOL

FALSE

一般输出参数

DiagCode

WORD

16#0000

诊断代码



提示

“反相”是指正常工作时,两个输入同时处于相反的状态。这有时被称为“互补”或“非等效”。

对于某些(较低)级别的安全要求,可以允许使用 BOOL 作为输入和 SAFEBOOL 作为输出。但是,这必须通过应用程序的 FMEA 进行评估。在图书馆里,应该区分 SAFEBOOLBOOL 版本。

14. 功能块: SF_Antivalent
功能块: SF_Antivalent


功能说明

该功能块将两个反价 SAFEBOOL 输入到一个 SAFEBOOL 输出具有差异时间监控。两个输入是相互依赖的。功能块输出显示两个通道的评估结果。

如果 S_AntivalentOut = TRUE 并且与安全相关的输入之一发生变化,然后输出立即切换到 FALSE.

差异时间监控:差异时间是两个输入可能具有相同状态而功能块未检测到错误的最长时间。当输入状态发生变化时,差异时间监控开始。一旦差异时间过去,当两个输入具有相同的值时,功能块将检测到错误。

两个输入必须对称切换。这意味着对两个输入进行监视以从 TRUEFALSE 以及从 FALSETRUE.

15. 输入输出逻辑表

输入

输出

Activate

S_ChannelNC

S_ChannelNO

DiscrepancyTime

Ready

S_AntivalentOut

SafetyDemand

Error

DiagCode

FALSE

FALSE

TRUE

没有开始

FALSE

FALSE

FALSE

FALSE

16#0000

TRUE

FALSE

TRUE

没有开始

TRUE

FALSE

TRUE

FALSE

16#8801

TRUE

FALSE -> TRUE

TRUE

开始

TRUE

FALSE

TRUE

FALSE

16#8802

TRUE

TRUE

TRUE -> FALSE

开始

TRUE

TRUE

FALSE

FALSE

16#8000

TRUE

TRUE

FALSE

没有开始

TRUE

TRUE

FALSE

FALSE

16#8000

TRUE

TRUE

FALSE -> TRUE

开始

TRUE

FALSE

TRUE

FALSE

16#8806

TRUE

TRUE -> FALSE

TRUE

开始

TRUE

FALSE

TRUE

FALSE

16#8801

TRUE

FALSE

TRUE

没有开始

TRUE

FALSE

TRUE

FALSE

16#8801

TRUE

FALSE

TRUE -> FALSE

开始

TRUE

FALSE

TRUE

FALSE

16#8804

TRUE

FALSE -> TRUE

FALSE

开始

TRUE

TRUE

FALSE

FALSE

16#8000

TRUE

TRUE -> FALSE

FALSE

开始

TRUE

FALSE

TRUE

FALSE

16#8806

TRUE

FALSE

FALSE -> TRUE

开始

TRUE

FALSE

TRUE

FALSE

16#8801



提示

在逻辑表中,箭头 -> 代表转换。 TRUE -> FALSE 表示变量 jas 的值从 TRUEFALSE.

状态图

15. 状态图: SF_Antivalent
状态图: SF_Antivalent


提示

从任何状态过渡到 Idle 状态由于 Activate = FALSE 未显示。然而,这些转换具有最高优先级。

典型时序图

16. 时序图1: SF_Antivalent
时序图1: SF_Antivalent


17. 时序图2: SF_Antivalent
时序图2: SF_Antivalent


错误检测

功能块监控通道之间的差异时间 NO 和频道 NC.

错误行为

输出 S_AntivalentOut 设定为 FALSE. Error 设定为 TRUE. DiagCode 表示错误状态。没有将复位定义为与错误复位相结合的输入。只要一组输入值正确 S_AntivalentOut 存在, ErrorFALSE 再次。

功能块特定的错误和状态代码

16. FB 特定的错误代码

DiagCode

州名

状态描述和输出设置

16#C010

Error 1

状态下的差异时间已过 16#8802

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = FALSE

Error = TRUE

16#C020

Error 2

状态下的差异时间已过 16#8804

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = FALSE

Error = TRUE

16#C030

Error 3

状态下的差异时间已过 16#8806

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = FALSE

Error = TRUE



17. FB 特定的状态码

DiagCode

州名

状态描述和输出设置

16#0000

Idle

功能块未激活(初始状态)。

Ready = FALSE

S_AntivalentOut = FALSE

SafetyDemand = FALSE

Error = FALSE

16#8801

Init

FB 已检测到激活,现在 FB 已激活。

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = TRUE

Error = FALSE

16#8000

Safety Output Enabled

输入切换到 TRUE 处于反价模式。

Ready = TRUE

S_AntivalentOut = TRUE

SafetyDemand = FALSE

Error = FALSE

16#8802

Wait for NO

ChannelNC 已切换到 TRUE – 等待 ChannelNO 切换到 FALSE;差异计时器启动。

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = TRUE

Error = FALSE

16#8804

Wait for NC

ChannelNO 已切换到 FALSE – 等待 ChannelNC 切换到 TRUE;差异计时器启动。

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = TRUE

Error = FALSE

16#8006

From Active Wait

一个通道已切换到非活动状态;等待第二个通道也切换到非活动状态。

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = TRUE

Error = FALSE