Counter
在给定的数字范围内向前和向后计数。
blockType: Counter
图书馆路径:
|
说明
计数器*程序块在指定的数字范围内执行向前和向后计数。如果 Count direction 参数设置为 "上",程序块将启用 Inc 端口(加法)。如果 Count direction 参数设置为 "Down",程序块将启用 Dec 端口(减少)。如果 Count event 参数设置为 "Free running"(自由运行),程序块将禁用 Inc/Dec 端口,并以恒定的时间间隔进行计数。在 Count event 参数的其他设置下,每次 Inc/Dec 输入端口上发生启动事件时,程序块都会递增或递减计数。当 Rst 辅助端口上发生启动事件时,设备会将计数器重置为初始状态。
端口
输入
Inc/Dec - 触发计数事件的输入信号
标量
输入信号指定为实数标量或矢量,用于计数器的递增或递减。如果输入信号是矢量,程序块会将矢量视为一帧。每次 Inc/Dec 输入端口上发生触发事件时,程序块都会相应地递增或递减计数器。触发事件的类型由 Count event 参数控制。
依赖关系
-
当 Count direction 参数设置为 "Up "时,程序块将启用 Inc(添加)端口。
-
当 Count direction 参数设置为 "Down"(下降)时,该单元启用 Dec 端口(减少)。
-
如果 Count event 参数设置为 "自由运行",设备将不使用 Inc 和 Dec 端口,并以恒定的时间间隔进行计数。
数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool
Rst - 复位信号
标量
输入信号指定为实数标量,用于确定块何时复位计数器。Rst 端口的采样时间必须与 Inc/Dec 输入端口相同。每次 Rst 端口发生启动事件时,程序块都会将计数器重置为初始值。
依赖关系
要启用此端口,请选择 Reset input 复选框。
数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool
Max - 最大计数器大小
标量
计数器的最大值,是 Count 数据类型 参数可以表示的任何无符号整数。计数器的取值范围从 0 到指定作为 Max 端口输入的值。
依赖关系
要启用此端口,请将 Counter size 参数设置为 "通过输入端口指定"。
数据类型: Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128
输出
Cnt - 当前计数器值
标量
计数器的当前值,指定为标量或矢量。如果 Count event 参数设置为 "Free running"(自由运行),则输出信号 Cnt 是一个以 1 表示的矢量字符串 M ,包含连续取样时刻 M 的计数值,其中 M 是 Samples per output frame 参数中指定的值。
依赖关系
要启用此端口,请将 Output 参数设置为 Count 或 Count and Hit。
数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool
命中 - 匹配状态
scalar | vector
在 Hit values 参数中指定的整数值的匹配状态。当计数器中出现指定值时,程序块将向 Hit 端口输出 1。
依赖关系
要启用此端口,请将 Output 参数设置为 "Count"(计数)或 "Count and Hit"(计数和命中)。
数据类型: Bool
参数
计数方向 - 正向或反向计数
向上(默认) | 向下
Count direction 参数决定计数是正向还是反向。根据参数值的不同,块上的端口标签会变为 Inc(递增)或 Dec(递减)。
-
如果 Count direction 设置为 "Up",且计数器达到范围上限,则程序块将在 Inc 端口的下一个启动事件发生时从零开始计数。
-
如果 Count direction 设置为 "Down"(下降),且计数器达到零,则 Dec 端口上的下一个启动事件将使单元从量程的最大值开始计数。
计数事件 - 触发事件类型
上升沿"(默认) | "下降沿"| "任一沿"| "非零采样"| "自由运行"。
指定当 Inc/Dec 或 Rst 端口收到 Inc 或 Rst 时触发设备递增、递减或重置计数器的事件类型:
-
上升沿"- 当 Inc/Dec 或 Rst 输入端口上的信号发生如下变化时,触发计数器上升或复位操作:
-
从上升沿上升到正或零。
-
如图所示,从零上升到上升沿时,上升沿不是从后沿上升到零的延续。
-
-
下降沿"- 当 Inc/Dec 或 Rst 输入端口的信号发生如下变化时,开始计数或复位操作:
-
从上升沿下降到负或零。
-
如图所示,从零下降到下降沿时,下降沿不是从上升沿下降到零的延续。
-
-
任一边沿"- 当 Inc/Dec 或 Rst 输入端口上出现 "上升沿 "或 "下降沿 "触发事件时,触发计数或复位操作。
-
非零采样"- 当 Inc/Dec 或 Rst 输入端口的信号不为零时,在每个采样时钟开始计数或复位操作。
-
自由运行"- 禁用 Inc/Dec 端口,并启用*每输出帧采样 和 采样时间*块参数。程序块以恒定的时间间隔 递增或递减计数器,时间间隔由 Sample time 参数设置。在此模式下,只要在 Rst 端口接收到非零采样,程序块就会重置计数器。
依赖关系
当 Count event 参数设置为 "Free running"(自由运行)时,程序块将禁用 Inc/Dec 端口,并以 Sample time 参数指定的恒定间隔递增或递减计数器。
计数器大小 是要计数的整数值范围
8位(默认) | 16位 | 32位 | 用户自定义 | 通过输入端口指定
指定块计数的整数值范围。如果程序块对计数器的整个范围进行计数,则下一次在 Inc/Dec 端口上发生启动事件时,程序块将按如下方式重置计数器:
-
如果 Count direction 参数设置为 "Up",且计数器达到计数器范围的上限,程序块将从零开始计数。
-
如果* 计数方向*参数设置为 "下",且计数器达到零,程序块将从计数范围的最大值开始计数。
计数器大小*参数可设置为以下值之一:
-
8 位"- 设置计数器的范围为 0 至 255。
-
16 位"- 设置计数器的范围为 0 至 65535。
-
32 bits- 指定范围为 0 至 232-1 的计数器。 -
用户定义的` - 包括 Maximum count 参数,允许以任意无符号整数的形式指定计数上限,该整数可由 Count 数据类型 参数表示。计数值范围从 0 到 Maximum count 参数的值。
-
通过输入端口指定"- 启用 Max 输入端口,允许以无符号任意整数形式指定计数上限,该整数可由 Count 数据类型*参数表示。计数值范围从 0 到指定为 *Max 输入端口参数的值。
最大计数 是计数器的最大值
255"(默认)|"正整数"。
将最大计数值指定为无符号任意整数,可用 Count 数据类型 参数表示。
依赖关系
要使用该参数,请将 Counter size 参数设置为 "用户自定义"。
初始计数 是计数器的初始值
0"(默认值) | "非负整数"。
将计数器初始值指定为 Counter size 参数定义范围内的任意无符号整数。程序块在仿真开始时使用初始计数器值,并在每次 Rst 端口发生启动事件时将计数器重置回初始值。
输出 为计数值、命中值,或两个值都是
计数"(默认) | "命中"| "计数和命中
选择要激活(或启用)的输出端口。端口的有效参数值为 Count、Hit 或 Count and Hit。
命中值 - 标记的计数值
32(默认) | 标量 | 矢量。
指定一个整数或整数矢量,计数器中出现该整数时,应在 Hit 输出端口上标记为 1。
依赖关系
要使用此参数,请将 Output 参数设置为 "Hit"(命中)或 "Count and Hit"(计数和命中)。
重置输入 - 启用输入端口 Rst
已启用"(默认) | "已禁用"。
选择此复选框可启用 Rst 输入端口。启用 Rst 端口后,每次 Rst 端口发生启动事件时,程序块都会将计数器重置为初始值。导致计数器复位的事件类型在 Count event 参数中设置。如果未选中 复位输入,则在仿真期间无法复位计数器。
每输出帧采样数 - 每个输出矢量的采样数
1(默认) | `正整数
以正整数指定 每个输出矢量中的样本数。
依赖关系
要使用此参数,请将 Count event 参数设置为 "自由运行"。
采样时间 - "自由运行 "模式下的采样时间
1(默认) | -1 | `非负标量
指定一个常数间隔 , 在 Free Running 模式下,程序块在该间隔内递增或递减计数器。
参数的有效值:
-
非负标量"--大于或等于零的标量。
-
-1- 继承采样时间。
例如,要使程序块每 5 秒递增一次计数器,可将 Count direction 参数设置为 "Up",Count event 参数设置为 "Free running",Sample time 参数设置为 "5"。在 "自由运行 "模式下,输出端口的采样时间始终等于 。
依赖关系
要使用此参数,请将 Count event 参数设置为 Free running。
Count 数据类型 - 端口数据类型 Cnt
double (默认) | single | int8 | uint8 | int16 | uint16 | int32 | uint32
指定要输出到 Cnt 端口的数据类型。
依赖关系
要使用此参数,请将 Output 参数设置为 "Count(计数)"或 "Count and Hit(计数和命中)"。
命中数据类型 - *命中端口数据类型
逻辑"(默认) | "布尔"(默认
算法
标量输入操作
当 Count direction 设置为 "Up "时,Inc 输入端口上的起始事件(加法)会导致程序块将计数器递增 1。如果没有复位事件,程序块将继续通过 Inc 端口上的事件递增计数器值,直至计数器值达到计数上限。在 Inc 端口上的下一个启动事件中,程序块将从 "0 "重新启动计数器,并在 Inc 端口上的每个后续启动事件中继续将计数器递增 1。
如果 Count direction 参数设置为 "Down",则 Dec(减少)输入端口上的启动事件将导致程序块将计数器减少一个。如果没有重置事件,程序块将继续通过 Down 端口事件减少计数器值,直到计数器值达到 "0 "为止。在 Dec 端口的下一个启动事件中,程序块将从计数上限重新启动计数器,并在 Dec 端口的每个后续启动事件中继续将计数器递减 1。
在两次启动事件之间,程序块将输出保持在其最后值。当可选的 Rst 输入端口上发生 Count event 参数指定的启动事件时,程序块会将计数器重置为初始状态。如果 Inc/Dec 和 Rst 端口同时接收到触发事件,程序块将首先重置计数器,然后相应地递增或递减计数器。要在仿真期间禁用重置计数器,必须取消选中 Reset 输入,禁用 Rst 端口。
输出*参数允许您指定程序块的输出值:
-
计数 "可启用程序块上的 Cnt 输出端口。Cnt 端口以标量形式提供计数器的当前值。Cnt 输出端口的采样时间与 Inc/Dec 输入端口相同。
-
Hit "启用程序块上的 Hit 输出端口。如果计数器值不等于 Hit values 参数中指定的任何整数,Hit 端口将输出 0。您可以为 Hit values 参数指定一个整数或一个整数矢量。当计数器值等于 Hit values 参数指定的一个或多个值时,程序块将向 Hit 输出端口输出值
1。Hit 输出端口的采样时间与 Inc/Dec 输入端口的采样时间相同。 -
计数和命中 "包括 Cnt 和 Hit 两个输出端口。
向量输入操作
程序块将输入到 Inc/Dec 端口的矢量输入数据视为帧。矢量操作与标量操作类似,但程序块会根据 Inc/Dec 输入矢量中包含的触发事件总数递增或递减计数器。因此,在处理单个 Inc/Dec 输入矢量期间,计数器可能会发生多次变化。
如果程序块有一个 Hit 端口,则在处理 Inc/Dec 输入矢量期间,如果任何 Hit 值与计数器的任何值相匹配,程序块就会输出值 1。
如果触发事件发生在两个连续矢量之间,则在包含事件完成时间的矢量中计算该事件。当端口 Rst 与端口 Inc/Dec 同时接收到启动事件时,程序块首先会重置计数器。然后,程序块根据 Inc/Dec 输入矢量中包含的触发事件数量递增或递减计数器。
如果输入端口信号 Inc/Dec 是一个 1 的字符串矢量 ,则输入端口 Inc/Dec 的端口采样时间等于输入信号的帧周期或输入信号采样时间的倍数 。输出端口采样时间 Cnt 和 Hit 等于输入端口采样时间 Inc/Dec。
自动计数
如果 Count event 参数设置为 "自由运行",则设备以自动计数模式运行。
在此模式下,Inc/Dec 输入端口将被禁用,设备将以恒定的间隔 递增或递减计数器,该间隔在 采样时间 参数中设置。
在此模式下,Rst 端口的行为始终与 计数事件 参数设置为 "非零采样 "相同。因此,当 Rst 输入端口不为零时,程序块会在每个采样时间触发复位事件。
在此模式下,Cnt 输出是一个矢量字符串 by 1,其中包含 连续采样时刻的计数值, 是为 每输出帧采样 参数设置的值。命中*输出端口是一个以 1 表示的向量字符串 ,包含 每个连续采样时刻的匹配状态("0 "或 "1")。输出端口 Cnt 和 Hit 的端口采样时间都是 。