ShaftEncoderCompensate 算子

Operator Library: Signal

该算子用于补偿 ShaftEncoder 的反向运行。

该算子有一个输入链接 I,可用于输入编码器脉冲 在输入链接 Dir 上,可以定义当前的编码器方向。

具有反向方向的输入脉冲在输出端会被抑制。 但是,算子内部会统计具有反向方向的输入脉冲。 当 ShaftEncoderCompensate 再次输入正向脉冲时, 这些正向脉冲仍会被抑制,直到所有反向脉冲都被补偿完为止。 换句话说,每一个反向输入脉冲都会使内部 Counter 增加。 如果内部 Counter > 0,每一个正向输入脉冲都会使其减小。 只有当内部 Counter 等于零时,每个正向输入脉冲才会输出一个脉冲。

参数 MaxPulseBits 指定内部 Counter 的 Bit Width,即 ShaftEncoderCompensate 最多可补偿 2 ^ MaxPulseBits 个反向脉冲。 如果发生多于 2 ^ MaxPulseBits 个反向脉冲,则在反向运行期间只能补偿 2 ^ MaxPulseBits 个脉冲。

当前的 Counter 值(即需要补偿的脉冲数)可以通过参数 CompensationCounter 读取。 可以通过向此参数写入新值来覆盖当前的 Counter 值。

该算子可以直接连接到算子 ShaftEncoder。

下图中的波形图阐释了该算子的功能。

可以使用附加的重置输入来重置 Counter,如下所示。

此算子不包含在 VisualApplets 功能仿真中。

I/O Property

Property 值
Operator Type O
输入链路 I,信号数据输入
Dir,信号数据输入
Reset,信号数据输入
Output Link O,信号数据输出

Supported Link Format

Link Parameter Input Link I 输入链 Dir Input Link Reset Output Link O
Bit Width 1 1 1 as I
Arithmetic unsigned unsigned unsigned as I
Parallelism 1 1 1 as I
Kernel Columns 1 1 1 as I
Kernel Rows 1 1 1 as I
Img Protocol VALT_SIGNAL VALT_SIGNAL VALT_SIGNAL as I
Color Format VAF_GRAY VAF_GRAY VAF_GRAY as I
Color Flavor FL_NONE FL_NONE FL_NONE as I
Max. Img Width any any any as I
Max. Img Height any any any as I

参数

MaxPulseBits
键入 static 参数
默认 10
范围 [2, 32]

此参数指定内部 Counter 的 Bit Width。

CompensationCounter
键入 动态读/写参数
默认 0
范围 [0, 2^MaxPulseBits-1]

此参数显示补偿 Counter 的当前值。 读取该参数可显示当前值。 写入该参数可覆盖 Counter 值。

使用示例

以下示例展示了 ShaftEncoderCompensate 算子的使用方法: