捕捉功能能够根据外部输入信号存储当前的计数器值。
每个编码器有 2 个捕捉寄存器(CAP0 和 CAP1)。这些寄存器可以通过 2 种方式使用:
o最多 2 个位置捕捉
o1 个距离捕捉
使用此功能,需要:
o配置可选的捕捉输入:CAP
o使用 EXPERTGetCapturedValue 功能块来检索在应用程序中捕捉到的值。
下图说明了位置捕捉的工作方式(仅显示了一个寄存器):
阶段 |
操作 |
---|---|
1 |
当 En_Cap = 0 时,无法执行此功能。 |
2 |
当 EN_Cap = 1 时,CAP 上的跳变沿会捕捉当前的计数器值并将其放入捕捉寄存器,然后触发 Cap_Flag 的上升沿。 |
3 |
使用 EXPERTGetCapturedValue 获取存储的值。 |
4 |
当 Cap_Flag = 1 时,忽略物理输入 CAP 上任何新的跳变沿。 |
5 |
Encoder 功能块输入 ACK_Cap 的上升沿会触发下降沿 Cap_Flag 输出。 准许新的捕捉。 |
使用编码器时,距离捕捉可以获取 CAP 输入每个跳变沿间的差异,如下图所示:
阶段 |
操作 |
---|---|
1 |
Cap 的上升沿捕捉当前计数器值并将其存入第一个捕捉寄存器。 |
2 |
Cap 的下降沿捕捉当前计数器值并将其存入第二个捕捉寄存器,然后触发 Cap0_Flag 的上升沿。 |
3 |
使用 EXPERTGetCapturedValue 获取存储的值。 EXPERTGetCapturedValue 功能块可以获取: o上升沿上的位置 o下降沿上的位置 o距离值 |
4 |
当 Cap0_Flag = 1 时,忽略物理输入 CAP 上任何新的跳变沿。 |
5 |
编码器功能块输入 ACK_Cap 的上升沿会触发下降沿 Cap_Flag 输出。 准许新的捕捉。 |
注意: 对于旋转轴,距离始终为正值,即使下降沿上的位置小于上升沿上的位置。