AnyMath 文档

计数器

在一组数字范围内直接和反向计数。

模块类型: Counter

库中的路径:

/Signal Operations/Signal Management/Switches and Counters/Counter

资料描述

计数器*根据设定的数字范围执行正向和反向计数。 该块包括*Inc*端口(加法)if为参数 *计数方向*值已设置 向上. 如果为参数 *计数方向*值已设置 向下,则该块包括*Dec*端口(减少)。 如果为参数 *计数事件*值已设置 自由运行,然后该块禁用*Inc/Dec*端口并以恒定的时间间隔执行计数。 使用任何其他参数设置 *计数事件*块在输入端口*Inc/*Dec*上每次发生触发事件时递增或递减计数器。 当在附加端口*Rst*上发生启动事件时,块将计数器重置为其初始状态。

港口

输出

# Cnt — 当前计数器值
标量,标量 | 向量资料

Details

当前计数器值,作为标量或向量返回。 如果为参数 计数事件*值已设置 自由运行,则*Cnt*的输出为字符串向量 在每个 连续采样点,其中 -参数中指定的值 *每输出帧的样本数.

依赖关系

要使用此端口,请设置参数 *输出*价值 计数计数和命中.

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, 布尔

复数支持

非也。

# 击中 — 比赛状态
标量,标量 | 向量资料

Details

参数中指定的整数值的匹配状态 命中值. 当在计数器中找到指定值时,块输出 1 到港口 命中.

依赖关系

要使用此端口,请设置参数 *输出*价值 计数计数和命中.

数据类型

布尔

复数支持

非也。

输入

# 公司 — 用于触发计数事件的输入信号
标量,标量 | 向量资料

Details

输入信号,指定为实标量或矢量,用于递增计数器。 如果输入信号是矢量,那么块将矢量视为帧。 每次在输入端口*Inc*上发生触发事件时,该块递增计数器。 触发器事件的类型使用参数进行控制 计数事件.

依赖关系

要使用此端口,请设置参数 *计数方向*价值 向上.

该块不使用*Inc*和*Dec*端口,如果参数为,则以恒定的时间间隔计算 *计数事件*值已设置 自由运行.

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, 布尔

复数支持

非也。

# Rst — 复位信号
标量,标量

Details

输入信号,设置为一个真正的标量,用于确定计数器何时被块复位。 *Rst*端口上的信号必须与输入端口*Inc*或*Dec*上的信号具有相同的采样时间。 每次在*Rst*端口上发生启动事件时,块都会将计数器重置为初始值。

依赖关系

要使用此端口,请选中此框 复位输入.

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, 布尔

复数支持

非也。

# 麦克斯 — 最大计数器大小
标量,标量

Details

可以表示参数的任何无符号整数形式的计数器的最大大小 计数数据类型. 计数器值从 0 到指定为*Max*端口输入的值。

依赖关系

要使用此端口,请设置参数 *计数器尺寸*价值 通过输入端口指定.

数据类型

Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128

复数支持

非也。

# 12月 — 用于触发计数事件的输入信号
标量,标量 | 向量资料

Details

输入信号,指定为实标量或矢量,用于减少计数器。 如果输入信号是矢量,那么块将该矢量视为帧。 每次在输入端口*Dec*上发生触发事件时,该块都会减少计数器。 触发器事件的类型使用参数进行控制 计数事件.

依赖关系

要使用此端口,请设置参数 *计数方向*价值 向下.

该块不使用*Inc*和*Dec*端口,如果参数为,则以恒定的时间间隔计算 *计数事件*值已设置 自由运行.

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, 布尔

复数支持

非也。

参数

主电阻

# 计数方向 — 直接或反向发票
向上 | 向下

Details

参数 计数方向*确定将进行的帐户:直接或反向。 根据此参数的值,使用端口*Inc(增量)或*Dec*(减小)。

*如果为参数 *计数方向*值已设置 向上 如果计数器达到范围的上限,则在*Inc*端口上的下一个启动事件处,块从零开始计数。

*如果为参数 *计数方向*值已设置 向下 如果计数器达到零,则在*Dec*端口上的下一个启动事件处,块从最大范围值开始计数。

Up | Down

默认值

Up

程序使用名称

CountDirection

可调谐

可计算

# 计数事件 — 发射事件类型
上升沿 | 下降沿 | 任一边缘 | 非零样本 | 自由运行

Details

指定在端口*Inc*/Dec*或*Rst上接收时触发块增加、减少或重置计数器的事件类型。:

  • 上升沿 -当输入端口*Inc*/*Dec*或*Rst*上的信号改变如下时开始计数或复位操作:

**从前沿增加到正或零。

**当增加不是从后缘到零增加的延续时,从零增加到前缘,如图所示。

+ counter 1

  • 下降沿 -当输入端口*Inc*/*Dec*或*Rst*上的信号改变如下时开始计数或复位操作:

**从前沿减小到负值或零。

**当下降不是从前沿到零下降的延续时,从零下降到后沿,如图所示。

+ counter 2

  • 任一边缘 -在输入端口*Inc*/Dec*或*Rst上发生触发事件时启动计数或复位操作 上升沿下降沿.

  • 非零样本 —当输入端口*Inc*/*Dec*或*Rst*上的信号不为零时,在每个采样时钟周期开始计数或复位操作。

  • 自由运行 -禁用*Inc*/Dec*端口并启用块参数 *每输出帧的样本数*及 *采样时间. 块以恒定间隔递增或递减计数器 ,使用参数设置 采样时间. 在这种模式下,每当块在*Rst*端口上接收到非零样本时,它就会重置计数器。

依赖关系

当参数 计数事件*重要 自由运行,该块禁用*Inc/Dec*端口,并以参数中指定的恒定间隔递增或递减计数器 *采样时间.

Rising edge | Falling edge | Either edge | Non-zero sample | Free running

默认值

Rising edge

程序使用名称

CountEvent

可调谐

可计算

# 计数器尺寸 — 要计数的整数值范围
8 bits | 16 | 32 | 用户定义 | 通过输入端口指定

Details

指定块计数的整数值的范围。 如果该块对计数器的整个范围进行计数,那么下次在*Inc*/*Dec*端口上发生启动事件时,该块将重置计数器,如下所示:

*如果为参数 *计数方向*重要 向上 当计数器达到计数器范围的上限时,块从零开始计数。

*如果为参数 *计数方向*重要 向下 当计数器达到零时,块从范围的最大值开始计数。

为参数 *计数器尺寸*您可以设置以下值之一:

  • 8 bits -设置一个计数器的范围从 0 以前 255.

  • 16 -设置一个计数器的范围从 0 以前 65535.

  • 32 -设置一个计数器的范围从 0 以前 232-1.

  • 用户定义 -启用参数 最大计数,它允许您以可以由参数表示的任何任意无符号整数的形式指定分数的上限 计数数据类型. 计数器值从 0 参数值之前 最大计数.

  • 通过输入端口指定 -包括*Max*输入端口,允许您将账单上限指定为任意无符号整数,该整数可以由参数表示 计数数据类型. 计数器值从 0 到指定为*Max*端口的输入参数的值。

8 bits | 16 bits | 32 bits | User defined | Specify via input port

默认值

User defined

程序使用名称

CounterSize

可调谐

可计算

# 最大计数 — 最大计数器值
Int64 integer

Details

将最大计数器值指定为可由参数表示的任意无符号整数 计数数据类型.

依赖关系

若要使用此参数,请为参数设置 *计数器尺寸*价值 用户定义.

默认值

255

程序使用名称

MaximumCount

可调谐

可计算

# 初始计数 — 计数器的初始值
Int64 integer

Details

将计数器的初始值指定为参数定义的范围内的任何无符号整数 计数器尺寸. 该块在模拟开始时使用计数器的初始值,并在*Rst*端口上每次发生触发事件时将计数器重置回该初始值。

默认值

0

程序使用名称

InitialCount

可调谐

可计算

# 输出 — 分数值、命中值或两个值
计数 | 命中 | 计数和命中

Details

选择要使用的输出端口。 端口的可接受参数值: 计数, 命中计数和命中.

Count | Hit | Count and Hit

默认值

Count and Hit

程序使用名称

Output

可调谐

可计算

# 命中值 — 标记的计数值
Scalar / vector of Int64

Details

指定应在计数器中标记的整数或整数的向量。 1 在输出端口上 命中.

依赖关系

若要使用此参数,请为参数设置 *输出*价值 命中计数和命中.

默认值

32

程序使用名称

HitValues

可调谐

可计算

# 复位输入 — 启用*Rst输入端口*
Logical

Details

选择此选项以启用*Rst*输入端口。 当*Rst*端口打开时,每次在*Rst*端口上发生启动事件时,块都会将计数器重置为初始值。 导致计数器复位的事件类型在参数中设置 计数事件. 如果取消选中该框 复位输入,将无法在模拟期间重置计数器。

默认值

true (已开启)

程序使用名称

ResetInput

可调谐

可计算

# 每输出帧的样本数 — 每个输出向量中的样本数
Int64 integer

Details

指定样本数 在每个输出向量中作为正整数。

依赖关系

若要使用此参数,请为参数设置 *计数事件*价值 自由运行.

默认值

1

程序使用名称

SamplesPerOutputFrame

可调谐

可计算

# 采样时间 — 模式下的采样时间 自由运行
Real number

Details

指定恒定间隔 ,通过该块在模式中递增或递减计数器 自由运行. 可接受的参数值:

  • 非负标量 -大于或等于零的标量。

  • -1 -采样时间的继承。

例如,使块递增计数器每 5 秒,为参数设置 *计数方向*价值 向上,为参数 *计数事件*价值 自由运行,而对于参数 *采样时间*指定值 5. 在模式 自由运行 输出端口的采样时间始终等于 .

依赖关系

若要使用此参数,请为参数设置 *计数事件*价值 自由运行.

默认值

1.0

程序使用名称

SampleTime

可调谐

可计算

# 计数数据类型 — 端口数据类型*Cnt*
| | int8 | UInt8 | int16 | uint16 | Int32 | UInt32

Details

指定要输出到*Cnt*端口的数据类型。

依赖关系

若要使用此参数,请为参数设置 *输出*价值 计数计数和命中.

double | single | int8 | uint8 | int16 | uint16 | int32 | uint32

默认值

double

程序使用名称

CountDataType

可调谐

可计算

算法

标量输入操作

如果为参数设置 计数方向*价值 向上,输入端口上的触发事件*Inc(increment)使块将计数器递增一。 如果没有复位事件,则块继续在*Inc*端口上的事件处增加计数器值,直到计数器值达到计数上限。 在*Inc*端口上的下一个启动事件中,块重新启动计数器 0 并在*Inc*端口上的每个后续启动事件中恢复将计数器递增一个。

如果为参数设置 计数方向*价值 向下,输入端口上的触发事件*Dec(减少)导致块将计数器减少一个。 如果没有重置事件,则当端口上发生事件时,该块继续减小计数器值。 *向下*直到计数器值达到 0. 在*Dec*端口上的下一个启动事件中,该块从计数的上限重新启动计数器,并在*Dec*端口上的每个后续启动事件中恢复将计数器减少一个。

在启动事件之间,块将输出保持在其最后一个值。 当在参数指定的附加输入端口*Rst*上发生触发事件时,该块将计数器重置为初始状态 计数事件. 如果端口*Inc*/Dec*和*Rst*在同一时间接收触发事件,则块首先重置计数器,然后相应地增加或减少它。 要在模拟期间禁用计数器复位,请通过取消选中禁用*Rst*端口 *复位输入.

参数 *输出*允许您指定块输出的值。:

  • 计数 启用单元上的*Cnt*输出端口。 Cnt*端口提供当前计数器值作为标量。 输出端口*Cnt*具有与输入端口*Inc/*Dec*相同的采样时间。

  • 命中 启用输出端口 命中*在块上。 港口 *命中*如果计数器值不等于参数中指定的任何整数,则返回零 *命中值. 为参数 命中值*您可以指定整数或整数向量。 当计数器值等于为参数指定的一个或多个值时 *命中值,块输出值 1 到输出端口 命中. 输出端口 命中*具有与输入端口*Inc/*Dec*相同的采样时间。

  • 计数和命中 启用两个输出端口*Cnt*和 命中.

矢量输入操作

块将向*Inc*/Dec*端口的矢量输入数据视为帧。 处理向量类似于处理标量,不同之处在于块通过输入向量*Inc/Dec*中包含的触发事件的总数递增或递减计数器。 因此,计数器可以在单个输入向量*Inc/*Dec*的处理期间改变几次。

如果块有一个端口 命中,它输出值 1 如果值中的任何一个 命中*匹配输入向量*Inc/*Dec*处理期间的任何计数器值。

如果在两个连续向量之间发生触发事件,则在包含事件完成的向量中对此事件进行计数。 当*Rst*端口在与*Inc*/Dec*端口相同的时间接收到触发事件时,块首先重置计数器。 块然后通过包含在输入向量*Inc/*Dec*中的触发事件的数量来递增或递减计数器。

如果*Inc*/Dec*端口的输入信号是矢量字符串 ,输入端口*Inc/Dec*的采样时间等于输入信号的帧周期或倍数 输入信号的采样时间。 输出端口的端口采样时间*Cnt*和 *命中*等于输入端口的采样时间*Inc/Dec

自动计费

块工作在自动计数模式,如果为参数 *计数事件*值已设置 自由运行.

输入端口*Inc*/Dec*在此模式下被禁用单位以恒定间隔递增或递减计数器。 ,其在参数中设置 *采样时间.

在这种模式下,*Rst*端口的行为总是像参数一样 *计数事件*已设置为 非零样本. 因此,该块在输入端口*Rst*不为零时的每个采样时刻触发复位事件。

在这种模式下,Cnt*的输出是一个向量字符串。 在每个 连续采样点,其中 -为参数设置的值 *每输出帧的样本数. 输出端口 *命中*是向量字符串 ,包含匹配状态(01)在每个 连续采样点。 两个输出端口是*Cnt*和 *命中*有端口采样时间 .