如何通过 'TP '和'TON'做一个延时报警的功能块-w,sfb

SFB 3 "TP" 生成一个脉冲

SFB 3 "TP" 生成了长度为 PT的脉冲。定时器只在 STARTUP 和RUN模式下运行。

输入IN 的信号上升沿启动脉冲。在时间 PT内输出 Q 将保持置位状态,无论输入信

号是否有变化(换言之,即使 IN输入在时间 PT用完前从 0 变回 1) 。ET输出提供输

出Q 处于置位状态的时间。ET输出的最大值是 PT输入的值。输出 ET在输入 IN变

为0 时复位,但复位不会在时间 PT用完前进行。

操作系统会在冷启动期间重置 SFB 3 "TP" 的实例。如果希望在暖启动后初始化此

SFB 的实例,必须在 OB100中使用 PT = 0 ms 调用 SFB 3 。如果此 SFB 的实例位

于另一个块中,可以,例如通过初始化更高级别的块,重置这些实例。

时序图:

使用SFB 4 "TON" 生成一个接通延迟

SFB 4 "TON" 使信号上升沿延迟时间 PT。定时器只在 STARTUP 和RUN模式下运

行。

IN输入的上升沿会导致时间 PT用完后输出 Q 出现上升沿。随后 Q 将保持置位状

态,直到 IN输入再次变为 0。如果 IN 输入在时间 PT用完前变为 0,输出 Q 将保持

其设置0 不变。

ET输出提供 IN 输入的上一上升沿后过去的时间。其最大值为 PT输入的值。IN 输

入变为0 时将复位 ET。

操作系统会在冷启动期间重置 SFB 4 "TON" 的实例。如果希望在暖启动后初始化此

SFB 的实例,必须在 OB100中使用 PT = 0 ms 调用 SFB 4 。如果此 SFB 的实例位

于另一个块中,可以,例如通过初始化更高级别的块,重置这些实例。

例子 : 作一个延时报警的功能块FB700

FUNCTION_BLOCK FB700

VAR_INPUT 输入点

EN1:BOOL;启动条件

KT1:BOOL; 检测条件

END_VAR

VAR_output

stop_err:BOOL;//输出点

END_VAR

VAR_TEMP 临时变量没有使用

END_VAR

VAR 静态变量

m_1:BOOL;

m_2:BOOL;

TON_1:TON;

TP_1:tp; // time

END_VAR

TON_1(IN := EN1 AND KT1, PT := T#50s); 故障报警延时发出

m_1:=TON_1.Q;

TP_1(IN := m_1, PT := T#50s);

stop_err:= EN1 AND KT1 AND TP_1.Q; 有故障后持续输出50s的脉冲

END_FUNCTION_BLOCK FB块结束

责任编辑:xj

原文标题:通过 'TP '和'TON'做一个延时报警的功能块-w

文章出处:【微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

相关推荐

相关文章