算子库:Prototype
TrgBoxLine 算子会生成 Exsync 信号,以控制所连接线阵相机的曝光。它还会将采集到的行组合成完整的 2D 图像。Exsync 是发送至线阵相机的外部同步信号或具有固定频率的内部生成脉冲。
在设计中,请将此算子直接放置在相机算子之后。该算子向相机发送触发信号以启动行采集,并在输入链接 I 上接收生成的图像数据。然后,它将传入的行组合成 2D 图像,并通过链接 O 将其输出给后续算子。
Exsync 信号可以通过两种基本方式生成:使用 GrabberControlled 模式由内部信号发生器周期性生成,或者由外部信号触发。外部信号可源自软件触发,或源自通过挡板触发端口或带有 TTL 或 OPTO 输入的触发扩展板的外围设备。该算子的触发信号发生器可生成:
-
具有可配置延迟、脉冲宽度、极性的 Exsync 信号, and
-
具有独立延迟的辅助 Exsync2 信号, and
- 用于同步外部设备的 Flash 信号。
Flash 输出链接由外部触发输入(例如 Image Gate)触发。它在行时钟(line ticks)中具有可配置的延迟,并且脉冲宽度为一个行周期。Flash 信号可用于同步额外的采集卡设备。
该算子提供八个触发输入端口和七个触发输出端口。将输入端口连接到所需的信号源,例如软件触发、通过触发板引脚连接的旋转编码器,或通过排线连接到其他采集卡。将输出端口连接到所需的信号接收器,例如用于相机曝光控制的 Exsync 和 Exsync2,以及用于同步其他采集卡的 Flash。

相机控制 (CC) 输出端口可以传输 Exsync、Exsync2 或 Flash 信号(包括其反转变体),或者它们可以输出静态 Vcc/GND 电平。如果您不使用 CC 端口,请将其连接到 Trash 算子。
某些动态参数在图像采集运行期间无法修改。一旦采集停止,这些参数将再次可用。在 microDisplay X 中,相应的输入字段在采集期间会显示为禁用状态。使用 Framegrabber API 时,您必须了解哪些参数在采集期间受限。
图像采集期间无法更改以下参数:
- ImgTriggerMode
- MaxGatedHeight
- LineTriggerMode
- YOffset
- YLength
| 财产 | 值 |
|---|---|
| 操作员类型 | M |
| 输入链接 | I,数据输入 InSignal[n],n[0, 7],触发输入 |
| 输出链接 | O,2D 图像数据输出 Exsync,用于线阵相机曝光控制的 Exsync 信号 Exsync2,具有特定延迟、用于线阵相机曝光控制的 Exsync 2 信号 Flash,用于额外采集卡同步的 Flash 信号 CC[n],n[1, 4],内容可变的多用途相机控制信号:Exsync、Exsync2、Flash、Vcc 或 Gnd。 |
| 链接参数 | 输入链路 I | 输入链接 InSignal[n],n[0, 7] | 输出链路 O | 输出链接 Exsync | 输出链接 Exsync2 | 输出链接 Flash | 输出链接 CC[n],n[1, 4] |
|---|---|---|---|---|---|---|---|
| Bit Width | [1, 64] | [1] | as I | [1] | [1] | [1] | [1] |
| Arithmetic | {unsigned, signed} | {unsigned} | as I | {unsigned} | {unsigned} | {unsigned} | {unsigned} |
| Parallelism | 任何 | 1 | as I | 1 | 1 | 1 | 1 |
| 内核列 | 1 | 1 | as I | 1 | 1 | 1 | 1 |
| 内核行 | 1 | 1 | as I | 1 | 1 | 1 | 1 |
| 图像协议 | VALT_LINE1D | VALT_SIGNAL | VALT_IMAGE2D | VALT_SIGNAL | VALT_SIGNAL | VALT_SIGNAL | VALT_SIGNAL |
| Color Format | 任何 | VAF_GRAY | as I | VAF_GRAY | VAF_GRAY | VAF_GRAY | VAF_GRAY |
| 颜色口味 | 任何 | FL_NONE | as I | FL_NONE | FL_NONE | FL_NONE | FL_NONE |
| Max. Img Width | 任何 | 任何 | as I | 任何 | 任何 | 任何 | 任何 |
| Max. Img Height | 65536 | 任何 | as I | 任何 | 任何 | 任何 | 任何 |
| YOffset | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 0 |
| 范围 | [0, 224] |
|
此参数定义了在帧开头处省略的行数。 |
|
| YLength | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1024 |
| 范围 | [8, 224] |
|
指定每帧的行数,即图像高度。 如果 ImgTriggerMode 设置为 ExternSw_Gate 且 MaxGatedHeight 设置为 unrestricted,则此参数将被忽略。在这种情况下,帧高度由外部 Image Gate 信号的持续时间决定(参见 ImgTriggerMode 的说明)。 |
|
| MaxGatedHeight | ||||
|---|---|---|---|---|
| 键入 | 动态读/写参数 | |||
| 默认 | restricted | |||
| 范围 | {restricted, unrestricted} | |||
|
控制当 ImgTriggerMode 设置为 ExternSw_Gate 时是否限制最大图像高度。 当设置为 restricted 时,即使门信号保持开启,图像高度也限制为 YLength 中指定的值。任何额外的行都将被丢弃,并且算子会等待门信号的下一个上升沿来开始新的一帧。 当设置为 unrestricted 时,图像高度完全由门保持开启的时间决定。换句话说,它取决于外部图像触发信号的脉冲宽度或软件触发保持在值 1 的时长。如果门长时间保持开启,生成的图像可能会变得非常大。
|
||||
| LineTriggerMode | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | GrabberControlled |
| 范围 | {GrabberControlled, Extern_Trigger, GrabberControlled_Gated_by_Img, Extern_Trigger_Gated_by_Img} |
|
选择内部 Exsync 信号发生器的 Operating Mode。当使用外部触发模式时,触发源由 LineTrgInSourceA 和 LineTrgInSourceB 定义。
|
|
| ExsyncEnable | |
|---|---|
| 键入 | 动态读/写参数 |
| 默认 | OFF |
| 范围 | {OFF, ON} |
|
启用或禁用传送到相机的 Exsync 输出。 |
|
| LineTrgInSourceA | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | InSignal0 |
| 范围 | {InSignal0, InSignal1, InSignal2, InSignal3, InSignal4, InSignal5, InSignal6, InSignal7} |
|
此参数指定用于触发 Exsync 信号发生器的信号源。此参数仅在 LineTriggerMode 设置为 Extern_Trigger 或 Extern_Trigger_Gated_by_Img 时相关。 |
|
| LineTrgInSourceB | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | InSignal0 |
| 范围 | {InSignal0, InSignal1, InSignal2, InSignal3, InSignal4, InSignal5, InSignal6, InSignal7} |
|
此参数用于指定用于触发 Exsync 信号发生器的信号源。仅当 EncoderABMode 设置为某个 A/B 模式(Signal_AB_Filter、Signal_ABx2_Filter 或 Signal_ABx4_Filter)且满足以下条件时,此参数才有效:
|
|
| EncoderABMode | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | Signal_A_Only |
| 范围 | {Signal_A_Only, Signal_AB_Filter, Signal_ABx2_Filter, Signal_ABx4_Filter} |
|
选择仅将触发输入 A 还是将触发输入 A 和 B 都用于生成 Exsync。 ![]() Signal A/B 支持允许操作员确定轴编码器的旋转方向,并抑制或补偿反向运动: ![]()
![]()
启用 A/B 支持时的相关参数:
若要重置轴编码器状态和 EncoderCompensationCount,请将 EncoderABMode 设置为 Signal_A_Only。 |
|
| EncoderABLead | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | Signal_AB |
| 范围 | {Signal_AB, Signal_BA} |
|
定义哪个信号超前以识别轴编码器的正转方向:
|
|
| EncoderCompensation | |
|---|---|
| 键入 | 动态/静态写参数 |
| 默认 | 开启 |
| 范围 | {ON/OFF} |
|
使用参数 EncoderCompensation,您可以将轴编码器反向运动的补偿设为 ON 或 OFF。 此参数仅在 EncoderABMode 参数设为 A/B support 时有效。 开启 如果设为 ON,算子会监控轴编码器的反向运动。当发生反向运动时,算子会计算反向移动的编码器步数。一旦轴编码器再次向前移动,这些已计算的步数(现在按正向计算)将不会作为外部触发信号传输。只有当传送带返回到开始反向运动的位置时,正向的编码器步数才会再次作为外部触发信号传输。 参数 EncoderCompensation = ON: ![]()
OFF 如果设为 OFF,在传送带反向移动期间,算子不会传输任何触发信号。一旦传送带开始再次向前移动,算子就会恢复传输轴编码器步数(按正向)作为触发信号。 参数 EncoderCompensation = OFF: ![]()
要将 EncoderCompensationCount 参数重置为值 0,请将 EncoderCompensation 参数设为 OFF。 |
|
| EncoderCompensationCountBits | |
|---|---|
| 键入 | 静态写入参数 |
| 默认 | 20 bit |
| 范围 | {8 bit ... 31 bit} |
|
此参数指定可分配给 EncoderCompensationCount 的取值范围。 |
|
| EncoderCompensationCount | |
|---|---|
| 键入 | 动态读/写参数 |
| 默认 | 220 -1 |
| 范围 | {0 ... 2EncoderCompensationCountBits -1} (unit: shaft encoder steps) |
|
此参数仅在 EncoderCompensation 参数设为 ON 且 EncoderABMode 参数设为 A/B support 时有效。 此参数为传送带的正向移动指定一个偏移量。如果传送带停止和/或反向移动,这会特别有用。 您可以使用 EncoderCompensationCountBits 参数为 EncoderCompensationCount 参数定义特定的取值范围。 要重置轴编码器和 EncoderCompensationCount 参数,请将 EncoderABMode 参数设为 Signal_A_Only 值。 或者,您可以通过将 EncoderCompensation 参数设为 OFF,将 EncoderCompensationCount 参数重置为值 0。 基本条件 如果 EncoderCompensation 参数设为 ON,内部计数器会计算传送带反向移动的轴编码器步数。然后,当传送带开始再次向前移动时,您可以精确补偿相应的轴编码器步数: ![]()
只要传送带反向移动,内部计数器就会正向计数。在上图中:从 0 到 8。 当传送带正向移动时,内部计数器会反向计数。在上图中:从 8 到 0。 当内部计数器保持值 0 时,轴编码器步数将作为触发信号传输。 内部计数器在特定时刻保持的值即为 EncoderCompensationCount 参数的值。只有当该值为 0 时,编码器步数才会作为触发信号传输。如果 EncoderCompensationCount 参数的值为 eq0,则轴编码器步数不会作为触发信号传输,并且该值会随着每个编码器步数不断变化,直至再次达到值 0。 读取参数 EncoderCompensationCount 参数是一个读/写参数。因此,您可以随时读取当前保持的 Counter 值。 定义偏移量 另一方面,由于您在采集期间拥有写权限,因此可以随时修改参数值。如果您需要为标准的编码器补偿定义偏移量,可以使用此参数输入所需的偏移步数。 一旦您为 EncoderCompensationCount 输入了值,该值就会覆盖参数之前保持的值。 以下示例展示了如何修改 EncoderCompensationCount 的现有值: 示例 1: 输送带向前移动,轴编码器步数作为 Trigger Source 传输,并且 EncoderCompensationCount 的值为 0。然后,EncoderCompensationCount 的值 0 被值 4 覆盖。结果:4 个轴编码器步数不作为 Trigger Source 传输。 ![]()
示例 2: 输送带向后移动,(向后)轴编码器步数被抑制,并且 EncoderCompensationCount 的值为 ≠0。然后,在输送带向后移动期间,EncoderCompensationCount 的值 5 被值 7 覆盖。结果:2 个轴编码器步数的偏移量。 ![]()
示例 3: 输送带在补偿期间向前移动,(向前)轴编码器步数被抑制,并且 EncoderCompensationCount 的值为 ≠0。然后,在输送带补偿性向前移动期间,EncoderCompensationCount 的值 4 被值 9 覆盖。结果:5 个轴编码器步数的偏移量。 ![]()
示例 4: 输送带在补偿期间向前移动,(向前)轴编码器步数被抑制,并且 EncoderCompensationCount 的值为 ≠0。然后,在输送带补偿性向前移动期间,EncoderCompensationCount 的值 4 被一个较小的值覆盖,在我们的例子中为值 3。结果:-1 个轴编码器步数的负偏移量。 ![]()
|
|
| LineTrgInPolarity | |
|---|---|
| 键入 | 动态读/写参数 |
| 默认 | LowActive |
| 范围 | {LowActive, HighActive} |
|
该参数定义外部输入 Trigger Source LineTrgInSourceA 和 LineTrgInSourceB 的极性。当设置为 LowActive 时,Exsync 发生器在指定的行 Trigger Source(LineTrgInSourceA / LineTrgInSourceB)的下降沿启动。否则,Exsync 生成在上升沿启动。仅当 LineTriggerMode 设置为 Extern_Trigger 或 Extern_Trigger_Gated_by_Img 时,此参数才相关。 |
|
| LineTrgDownscaler | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1 |
| 范围 | [1, 256] |
|
此参数指定生成 Exsync 所需的外部输入 Trigger Source 的数量。仅当 LineTriggerMode 设置为外部触发模式时,此参数才相关。 |
|
| LineTrgPhase | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1 |
| 范围 | [1, 256] |
|
此参数指定生成图像的第一个 Exsync 所需的外部输入 Trigger Source 的数量。仅当 LineTriggerMode 设置为 Extern_Trigger_Gated_by_Img 时,此参数才相关。 |
|
| ExsyncPeriod | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 100 μs |
| 范围 | [64/DesignClockFrequencyInMhz, (218-1)/DesignClockFrequencyInMhz] µs |
|
此参数指定 Exsync 信号的周期。因此,它在使用采集卡控制模式触发连接的相机时定义了行频。 该参数的范围和允许的步长取决于设计中配置的FPGA时钟频率。允许的步长为1/ DesignClockFrequencyInMhz 。 DesignClockFrequencyInMhz = 设计中以 MHz 为单位的 FPGA 时钟频率。 |
|
| ExsyncExposure | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 20 μs |
| 范围 | [64/DesignClockFrequencyInMhz, (217-1)/DesignClockFrequencyInMhz] μs,不得超过 ExsyncPeriod |
|
此参数用于指定 Exsync 信号的脉冲宽度,许多相机可以利用该参数来指定 Exposure Time。因此,即使在采集过程中,也可以通过软件调整 Exposure Time。 该参数的范围和允许的步长取决于设计中配置的FPGA时钟频率。允许的步长为1/ DesignClockFrequencyInMhz 。 DesignClockFrequencyInMhz = 设计中以 MHz 为单位的 FPGA 时钟频率。 |
|
| Exsync2Delay | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 0 μs |
| 范围 | [0, (218-1)/DesignClockFrequencyInMhz] μs,不得超过 ExsyncPeriod |
|
此参数用于指定生成的 Exsync 信号相对于外部触发输入的延迟。因此,Exsync2 信号是 Exsync 的延迟克隆:其极性、周期等与 Exsync 相同。 该参数的范围和允许的步长取决于设计中配置的FPGA时钟频率。允许的步长为1/ DesignClockFrequencyInMhz 。 DesignClockFrequencyInMhz = 设计中以 MHz 为单位的 FPGA 时钟频率。 |
|
| ExsyncPolarity | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | LowActive |
| 范围 | {LowActive, HighActive} |
|
此参数用于将 Exsync 信号发生器的极性调整为连接相机所接受的极性。如果相机在下降沿打开快门,请使用 LowActive,否则请使用 HighActive。 |
|
| ImgTriggerMode | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | FreeRun |
| 范围 | {FreeRun, ExternSw_Trigger, ExternSw_Gate} |
|
此参数用于选择内部 Image Gate 的运行模式。 图像触发输入信号可以由外部(即外围)设备(例如旋转编码器)或软件生成。您可以通过下方 ImgTrgInSource 参数选择外部图像触发输入的源。 ImgTriggerMode 参数的值会导致以下行为:
|
|
| ImgTrgInSource | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | InSignal0 |
| 范围 | {InSignal0, InSignal1, InSignal2, InSignal3, InSignal4, InSignal5, InSignal6, InSignal7, SoftwareTrigger} |
|
此参数指定用于触发图像采集的信号源。仅当 ImgTriggerMode 设置为 ExternSw_Trigger 或 ExternSw_Gate 时,此参数才有效。 |
|
| ImgTrgInPolarity | |
|---|---|
| 键入 | 动态读/写参数 |
| 默认 | LowActive |
| 范围 | {LowActive, HighActive} |
|
此参数定义外部输入触发信号的极性。 |
|
| ImgTrgDelay | |
|---|---|
| 键入 | 动态读/写参数 |
| 默认 | 0 |
| 范围 | {0, 65535} |
|
此参数用于将图像触发信号延迟指定的图像行数。 |
|
| FlashEnable | |
|---|---|
| 键入 | 动态读/写参数 |
| 默认 | OFF |
| 范围 | {OFF, ON} |
|
启用或禁用 Flash 输出。Flash 信号的脉冲宽度等于一个行周期。 |
|
| FlashPolarity | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | LowActive |
| 范围 | {LowActive, HighActive} |
|
此参数定义生成的 Flash 信号的极性。 |
|
| FlashDelay | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 0 |
| 范围 | {0, 4095} |
|
此参数指定相对于外部触发输入延迟生成的 Flash 信号的行数。因此,可以将 Flash 与外部触发输入同步。 Flash 信号的脉冲宽度等于一个行周期。 |
|
| SoftwareTrgPulse | |
|---|---|
| 键入 | 动态/静态写参数 |
| 默认 | 1 |
| 范围 | {1} |
|
将此参数设置为 1 将会生成一个软件触发。这仅在 ImgTriggerMode 设置为外部触发模式且 ImgTrgInSource 设置为 SoftwareTrigger 时才有效。 |
|
| SoftwareTrgInput | |
|---|---|
| 键入 | 动态/静态写参数 |
| 默认 | 0 |
| 范围 | {0, 1} |
|
通过此参数,可以为图像触发模式 ExternSw_Gate 生成软件门控。 |
|
| ImgTrgIsBusy | |
|---|---|
| 键入 | 动态/静态读取参数 |
| 默认 | 0 |
| 范围 | {0, 1} |
|
ImgTrgIsBusy 参数指示图像触发的忙碌状态。当图像触发处于忙碌状态时,该参数设置为 1,表示当前正在捕获图像。当其设置为 0 时,图像触发不处于忙碌状态。 |
|
| CC1output | |
|---|---|
| 键入 | 动态/静态写参数 |
| 默认 | Exsync |
| 范围 | {Exsync, ExsyncInvert, Exsync2, Exsync2Invert, Flash, FlashInvert, Gnd, Vcc} |
|
此参数指定 CC1 线路(相机控制 1)上可用的信号。 |
|
| CC2output | |
|---|---|
| 键入 | 动态/静态写参数 |
| 默认 | Exsync |
| 范围 | {Exsync, ExsyncInvert, Exsync2, Exsync2Invert, Flash, FlashInvert, Gnd, Vcc} |
|
此参数指定 CC2 线路(相机控制 2)上可用的信号。 |
|
| CC3output | |
|---|---|
| 键入 | 动态/静态写参数 |
| 默认 | Exsync |
| 范围 | {Exsync, ExsyncInvert, Exsync2, Exsync2Invert, Flash, FlashInvert, Gnd, Vcc} |
|
此参数指定 CC3 线路(相机控制 3)上可用的信号。 |
|
| CC4output | |
|---|---|
| 键入 | 动态/静态写参数 |
| 默认 | Exsync |
| 范围 | {Exsync, ExsyncInvert, Exsync2, Exsync2Invert, Flash, FlashInvert, Gnd, Vcc} |
|
此参数指定 CC4 线路(相机控制 4)上可用的信号。 |
|
| ImgTrgDebouncingMaxTime | |
|---|---|
| 键入 | 静态写入参数 |
| 默认 | 65.520 µs |
| 范围 | [1/DesignClockFrequencyInMhz, 1000000] µs |
|
此参数定义了 ImgTrgDebouncingTime 参数的最大值。较小的最大值可减少实现消抖 Timer 所需的 FPGA 资源。 该参数的有效范围和允许的步长取决于设计中配置的 FPGA 时钟频率。允许的步长为 1 / DesignClockFrequencyInMhz。 DesignClockFrequencyInMhz = 设计中以 MHz 为单位的 FPGA 时钟频率。 |
|
| ImgTrgDebouncingTime | |
|---|---|
| 键入 | 动态/静态写参数 |
| 默认 | 7/DesignClockFrequencyInMhz µs |
| 范围 | [1/DesignClockFrequencyInMhz, ImgTrgDebouncingMaxTime] µs |
|
此参数指定消抖时间,在此期间输入图像触发信号必须保持不变才能被识别为有效。消抖时间内的快速信号变化将被滤除。 该参数的有效范围和允许的步长取决于设计中配置的 FPGA 时钟频率。允许的步长为 1 / DesignClockFrequencyInMhz。 DesignClockFrequencyInMhz = 设计中以 MHz 为单位的 FPGA 时钟频率。 |
|
| LineTrgDebouncingMaxTime | |
|---|---|
| 键入 | 静态写入参数 |
| 默认 | 65.520 µs |
| 范围 | [1/DesignClockFrequencyInMhz, 1000000] µs |
|
此参数指定 LineTrgDebouncingTime 参数的最大时间。较小的最大值可减少实现消抖 Timer 所需的 FPGA 资源。 该参数的有效范围和允许的步长取决于设计中配置的 FPGA 时钟频率。允许的步长为 1 / DesignClockFrequencyInMhz。 DesignClockFrequencyInMhz = 设计中以 MHz 为单位的 FPGA 时钟频率。 |
|
| LineTrgDebouncingTime | |
|---|---|
| 键入 | 动态/静态写参数 |
| 默认 | 7/DesignClockFrequencyInMhz µs |
| 范围 | [1/DesignClockFrequencyInMhz, LineTrgDebouncingMaxTime] µs |
|
此参数指定消抖时间,在此期间输入行触发信号必须保持不变才能被识别为有效。消抖时间内的快速信号变化将被滤除。 该参数的有效范围和允许的步长取决于设计中配置的 FPGA 时钟频率。允许的步长为 1 / DesignClockFrequencyInMhz。 DesignClockFrequencyInMhz = 设计中以 MHz 为单位的 FPGA 时钟频率。 |
|
以下示例展示了 operator TrgBoxLine 的用法:
-
' Line Scan Trigger for microEnable 5 marathon VCL with TrgBoxLine Operator Usage'
一个 VisualApplets 设计示例,展示了在简单设计中 operator TrgBoxLine 的用法。
-
'Line Scan Trigger for microEnable 5 marathon VCX QP with TrgBoxLine Operator Usage'
一个 VisualApplets 设计示例,展示了在简单设计中 operator TrgBoxLine 的用法。
-
'Line Scan Trigger for imaFlex CXP-12 Quad with TrgBoxLine Operator Usage'
一个 VisualApplets 设计示例,展示了在简单设计中 operator TrgBoxLine 的用法。

![[注意]](../common/images/admon/note.png)















上一页

