使用 Main 类型的比较原理

概述

使用 Main 类型的比较块用于管理以下模式中的阈值、反射输出和事件:

oOne-shot

oModulo-loop

oFree-Large

激活至少一个阈值后,在配置屏幕中对比较进行配置。

比较可以用来触发:

o对关于阈值的操作进行编程

o与外部任务相关联的阈值事件

o反射输出

比较原理

Main 类型最多可管理 2 个阈值。

相对于当前的计数值而言,阈值是一个配置值。阈值用来定义最多 3 个区域,或对越过的值作出反应。

阈值通过配置来定义,也可通过使用 HSCSetParam 功能块在应用程序中进行调整。

如果已配置阈值 x(x= 0、1),并且已启用比较 (EN_Compare = TRUE),则功能块的输出引脚 THx 发生以下情况:

o选项 1:

加计数 – 当值 < TH0 时反射输出 x 为 TRUE(当值 = TH0 时复位)。

减计数 – 当值 ≤ TH0 时反射输出 x 为 TRUE(当值 = TH0 时设置)。

o选项 2:

加计数 – 当 TH0 ≤ 值 < TH1 时反射输出 x 为 TRUE(当值 = TH0 时设置,当值 = TH1 时复位)。

减计数 – 当 TH0 < 值 ≤ TH1 时反射输出 x 为 TRUE(当值 = TH1 时设置,当值 = TH0 时复位)。

o选项 3:

加计数 – 当值 ≥ TH1 时反射输出 x 为 TRUE(当值 = TH1 时设置)。

减计数 – 当值 > TH1 时反射输出 x 为 TRUE(当值 = TH1 时复位)。

注意: 如果功能块上的 EN_Compare 设置为 FALSE,则禁用比较功能,包括由阈值事件和反射输出触发的外部任务。

下图显示了各个选项的反射输出(快速数字量输出)的状态:

G-SE-0026989.1.gif-high.gif

 

 

阈值行为

TH0 和 TH1 由任务进行管理,并且以任务循环时间的速率进行更新。

配置事件

配置越过阈值时的事件可触发外部任务。可以选择在向下、向上或向下/向上越过配置的阈值时触发事件。

当 HSC:

o加计数时,将在计数值 = 阈值 + 1 时触发配置的外部事件任务

o减计数时,将在计数值 = 阈值 - 1 时触发配置的外部事件任务

如果溢出或下溢,则不会触发任何外部事件任务

反射输出行为

配置反射输出可触发物理反射输出。

这些输出在任务环境中不受控制,因此可以将反应时间降至最短。这为需要快速执行的操作提供了便利。

高速计数器使用的输出只能通过功能块访问。不能在应用程序中直接对其进行读写。

注意: 反射输出的状态取决于配置

更改阈值

只要 SuspendCompare= TRUETH0TH1Reflex0Reflex1Out0 和 Out1 及物理输出即会相对于阈值进行操作,甚至是在动态更改阈值时。

因此,在进行阈值比较时,请务必谨慎操作,以避免物理反射输出和 HSCMain 功能块输出导致意外结果。如果禁用比较功能,则可以修改阈值而不用担心意外输出。但是,如果启用了比较功能,在修改阈值时必须至少暂停阈值比较功能。

Warning_Color.gif警告

意外的设备操作

o如果 EN_Compare = 1,则在更改阈值时,必须使用 SuspendCompare 输入。

o在重新激活阈值比较功能之前,请确保 TH0 小于 TH1

不遵循上述说明可能导致人员伤亡或设备损坏。

步骤

操作

1

SuspendCompare 设置为 TRUE

在当前值下,比较被冻结:

o块的 TH0TH1Reflex0Reflex1Out0Out1 输出位保持其上一个值。

o物理输出 0、1 保持各自上一个值

注意: 在设置 SupendCompare 的同时,EN_CompareEN_Out0EN_Out1F_Out0F_Out1 保持运行。

2

根据需要,使用 HSCSetParam 功能块修改阈值。

注意:

按照以下规则配置阈值:

o对于一次性模式:

0 < 阈值 0 值 < 阈值 1 值 <(预设 - 1)

o对于模数回路模式:

0 < 阈值 0 值 < 阈值 1 值 <(模数 - 1)

o对于自由大型模式:

0 < 阈值 0 值 < 阈值 1 值

对于自由大型模式,阈值不受预设值的限制。

3

SuspendCompare 设置为 FALSE

应用新的阈值,并恢复比较。