Operator Library: Prototype
The TrgBoxLine operator generates the Exsync signal to control the exposure of a connected line scan camera. It also assembles the acquired lines into complete 2D images. Exsync is an external synchronization signal or an internally generated pulse with a fixed frequency that is sent to the line scan camera.
In a design, place this operator directly after the camera operator. The operator sends trigger signals to the camera to initiate line acquisition and receives the resulting image data on input link I. It then assembles the incoming lines into 2D images and outputs them on link O to subsequent operators.
The Exsync signal can be generated in two fundamental ways: periodically by the internal signal generator using the GrabberControlled mode, or triggered by external signals. External signals can originate from software as a software trigger or from peripheral devices via the slot bracket trigger port or a trigger expansion board with TTL or OPTO inputs. The operator's trigger signal generator can produce:
-
Exsync signals with configurable delay, pulse width, polarity, and
-
A secondary Exsync2 signal with an independent delay, and
- A Flash signal for synchronizing external devices.
The Flash output link is triggered by an external trigger input, e.g., the Image Gate. It has a configurable delay in line ticks and a pulse width of one line period. The Flash signal is useful for synchronizing additional frame grabber devices.
The operator provides eight trigger input ports and seven trigger output ports. Connect the input ports to the desired signal sources, e.g., a software trigger, a shaft encoder via trigger board pins, or to other frame grabbers via flatband cable. Connect the output ports to the required signal receivers, e.g., Exsync and Exsync2 for camera exposure control, Flash for synchronizing additional frame grabbers.

The camera control (CC) output ports can transmit Exsync, Exsync2, or Flash signals (including their inverted variants), or they can output static Vcc/GND levels. If you are not using a CC port, connect it to a Trash operator.
Some dynamic parameters cannot be modified while image acquisition is running. These parameters become available again once acquisition has stopped. In microDisplay X, the corresponding input fields are displayed as disabled during acquisition. When using the Framegrabber API, you must know which parameters are restricted during acquisition.
The following parameters cannot be changed during image acquisition:
- ImgTriggerMode
- MaxGatedHeight
- LineTriggerMode
- YOffset
- YLength
| Property | 值 |
|---|---|
| Operator Type | M |
| 输入链路 | I, data input InSignal[n], n[0, 7], trigger input |
| Output Links | O, 2D image data output Exsync, Exsync signal for line scan camera exposure control Exsync2, Exsync 2 signal with specific delay for line scan camera exposure control Flash, Flash signal for additional frame grabber synchronization CC[n], n[1, 4], Multi purpose camera control signals with variable content: Exsync, Exsync2, Flash, Vcc or Gnd. |
| Link Parameter | Input Link I | Input Link InSignal[n], n[0, 7] | Output Link O | Output Link Exsync | Output Link Exsync2 | Output Link Flash | Output Link 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 | any | 1 | as I | 1 | 1 | 1 | 1 |
| Kernel Columns | 1 | 1 | as I | 1 | 1 | 1 | 1 |
| Kernel Rows | 1 | 1 | as I | 1 | 1 | 1 | 1 |
| Img Protocol | VALT_LINE1D | VALT_SIGNAL | VALT_IMAGE2D | VALT_SIGNAL | VALT_SIGNAL | VALT_SIGNAL | VALT_SIGNAL |
| Color Format | any | VAF_GRAY | as I | VAF_GRAY | VAF_GRAY | VAF_GRAY | VAF_GRAY |
| Color Flavor | any | FL_NONE | as I | FL_NONE | FL_NONE | FL_NONE | FL_NONE |
| Max. Img Width | any | any | as I | any | any | any | any |
| Max. Img Height | 65536 | any | as I | any | any | any | any |
| YOffset | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 0 |
| 范围 | [0, 224] |
|
This parameter defines the number of lines omitted at the beginning of a frame. |
|
| YLength | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1024 |
| 范围 | [8, 224] |
|
Specifies the number of lines per frame, i.e., the image height. If ImgTriggerMode is set to ExternSw_Gate and MaxGatedHeight is set to unrestricted, this parameter is ignored. In that case, the frame height is determined by the duration of the external Image Gate signal (see description of ImgTriggerMode). |
|
| MaxGatedHeight | ||||
|---|---|---|---|---|
| 键入 | dynamid read/write parameter | |||
| 默认 | 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} |
|
Enables or disables the Exsync output to the camera. |
|
| 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 生成。 ![]() 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 支持时才相关。 开启 如果设置为 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 支持时,此参数才有效。 此参数用于指定输送带向前移动的偏移量。如果输送带停止和/或向后移动,这会特别有用。 您可以使用 EncoderCompensationCountBits 参数为 EncoderCompensationCount 参数定义特定的值范围。 若要重置轴编码器和 EncoderCompensationCount 参数,请将 EncoderABMode 参数设为 Signal_A_Only 值。 或者,您可以通过将 EncoderCompensation 参数设为 OFF,将 EncoderCompensationCount 参数重置为 0 值。 基本条件 如果将 EncoderCompensation 参数设为 ON,内部计数器将对输送带向后移动时的轴编码器步数进行计数。这样,当输送带再次开始向前移动时,您可以精确补偿相应的轴编码器步数: ![]()
只要输送带向后移动,内部计数器就会向前计数。在上图中:从 0 到 8。 当输送带向前移动时,内部计数器会向后计数。在上图中:从 8 到 0。 当内部计数器保持 0 值时,轴编码器步数将作为触发信号传输。 内部计数器在给定时刻保持的值即为 EncoderCompensationCount 参数的值。只有当该值为 0 时,编码器步数才会作为触发信号传输。如果 EncoderCompensationCount 参数的值 ≠0,则轴编码器步数不会作为触发信号传输,并且该值会随着每个编码器步数不断变化,直至再次达到 0 值。 读取参数 EncoderCompensationCount 参数是一个读/写参数。因此,您可以随时读取计数器当前保持的值。 定义偏移量 另一方面,由于您在采集期间拥有写权限,因此可以随时修改参数值。如果您需要为标准编码器补偿定义偏移量,可以使用此参数输入所需的偏移步数。 只要您为 EncoderCompensationCount 输入一个值,该值就会覆盖该参数之前保持的值。 以下示例展示了如何修改 EncoderCompensationCount 的现有值: 示例 1: 输送带正在向前移动,轴编码器步数作为触发信号传输,并且 EncoderCompensationCount 的值为 0。然后,将 EncoderCompensationCount 的值 0 覆盖为值 4。结果:有 4 个轴编码器步数不作为触发信号传输。 ![]()
示例 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} |
|
此参数用于定义外部输入触发信号 LineTrgInSourceA 和 LineTrgInSourceB 的极性。当设为 LowActive 时,Exsync 发生器在指定的行触发源(LineTrgInSourceA / LineTrgInSourceB)的下降沿启动。否则,Exsync 生成将在上升沿启动。只有当 LineTriggerMode 设为 Extern_Trigger 或 Extern_Trigger_Gated_by_Img 时,此参数才有效。 |
|
| LineTrgDownscaler | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1 |
| 范围 | [1, 256] |
|
此参数用于指定生成 Exsync 所需的外部输入触发信号数量。只有当 LineTriggerMode 设为外部触发模式时,此参数才有效。 |
|
| LineTrgPhase | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1 |
| 范围 | [1, 256] |
|
此参数用于指定生成一帧图像的第一个 Exsync 所需的外部输入触发信号数量。只有当 LineTriggerMode 设为 Extern_Trigger_Gated_by_Img 时,此参数才有效。 |
|
| ExsyncPeriod | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 100 μs |
| 范围 | [64/DesignClockFrequencyInMhz, (218-1)/DesignClockFrequencyInMhz] µs |
|
此参数指定 Exsync 信号的周期。因此,在使用采集卡控制模式触发所连接的相机时,它定义了行频。 此参数的范围和允许的步长取决于设计中配置的 FPGA 时钟频率。允许的步长为 1/DesignClockFrequencyInMhz。 DesignClockFrequencyInMhz = 设计中 FPGA 的时钟频率,单位为 MHz。 |
|
| ExsyncExposure | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 20 µs |
| 范围 | [64/DesignClockFrequencyInMhz, (217-1)/DesignClockFrequencyInMhz] µs,不得超过 ExsyncPeriod |
|
此参数指定 Exsync 信号的脉冲宽度,许多相机可以利用该宽度来指定曝光时间。因此,即使在采集过程中,也可以通过软件调整曝光时间。 此参数的范围和允许的步长取决于设计中配置的 FPGA 时钟频率。允许的步长为 1/DesignClockFrequencyInMhz。 DesignClockFrequencyInMhz = 设计中 FPGA 的时钟频率,单位为 MHz。 |
|
| Exsync2Delay | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 0 μs |
| 范围 | [0, (218-1)/DesignClockFrequencyInMhz] µs,不得超过 ExsyncPeriod |
|
此参数指定生成的 Exsync 信号相对于外部触发输入的延迟。因此,Exsync2 信号是 Exsync 的延迟克隆:其极性、周期等与 Exsync 相同。 此参数的范围和允许的步长取决于设计中配置的 FPGA 时钟频率。允许的步长为 1/DesignClockFrequencyInMhz。 DesignClockFrequencyInMhz = 设计中 FPGA 的时钟频率,单位为 MHz。 |
|
| 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} |
|
启用或禁用闪光灯输出。闪光灯信号的脉冲宽度等于一个行周期。 |
|
| 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 = 设计中 FPGA 的时钟频率,单位为 MHz。 |
|
| ImgTrgDebouncingTime | |
|---|---|
| 键入 | 动态/静态写入参数 |
| 默认 | 7/DesignClockFrequencyInMhz µs |
| 范围 | [1/DesignClockFrequencyInMhz, ImgTrgDebouncingMaxTime] µs |
|
此参数指定去抖动时间,输入图像触发信号必须在此时间内保持不变才能被识别为有效。去抖动时间内的快速信号变化将被滤除。 此参数的有效范围和允许的步长取决于设计中配置的 FPGA 时钟频率。允许的步长为 1 / DesignClockFrequencyInMhz。 DesignClockFrequencyInMhz = 设计中 FPGA 的时钟频率,单位为 MHz。 |
|
| LineTrgDebouncingMaxTime | |
|---|---|
| 键入 | 静态写参数 |
| 默认 | 65.520 µs |
| 范围 | [1/DesignClockFrequencyInMhz, 1000000] µs |
|
此参数指定 LineTrgDebouncingTime 参数的最大时间。较小的最大值可减少实现去抖动 Timer 所需的 FPGA 资源。 此参数的有效范围和允许的步长取决于设计中配置的 FPGA 时钟频率。允许的步长为 1 / DesignClockFrequencyInMhz。 DesignClockFrequencyInMhz = 设计中 FPGA 的时钟频率,单位为 MHz。 |
|
| LineTrgDebouncingTime | |
|---|---|
| 键入 | 动态/静态写入参数 |
| 默认 | 7/DesignClockFrequencyInMhz µs |
| 范围 | [1/DesignClockFrequencyInMhz, LineTrgDebouncingMaxTime] µs |
|
此参数指定去抖动时间,输入行触发信号必须在此时间内保持不变才能被识别为有效。去抖动时间内的快速信号变化将被滤除。 此参数的有效范围和允许的步长取决于设计中配置的 FPGA 时钟频率。允许的步长为 1 / DesignClockFrequencyInMhz。 DesignClockFrequencyInMhz = 设计中 FPGA 的时钟频率,单位为 MHz。 |
|
以下示例展示了算子 TrgBoxLine 的使用方法:
-
'针对 microEnable 5 marathon VCL 的线扫描触发器(配合 TrgBoxLine 算子使用)'
一个展示了在简单设计中使用 TrgBoxLine 算子的 VisualApplets 设计示例。
-
'针对 microEnable 5 marathon VCX QP 的线扫描触发器(配合 TrgBoxLine 算子使用)'
一个展示了在简单设计中使用 TrgBoxLine 算子的 VisualApplets 设计示例。
-
'针对 imaFlex CXP-12 Quad 的线扫描触发器(配合 TrgBoxLine 算子使用)'
一个展示了在简单设计中使用 TrgBoxLine 算子的 VisualApplets 设计示例。

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















上一页

