Operator Library: Prototype
This operator generates the trigger (Exsync signal) for the Camera. It is also responsible for assembling the acquired lines to images.
Parameterization of Time Values | |
---|---|
This operator is optimized for use with microEnable 5 products (mE5 VD8-PoCL, mE5 VQ8-CXP6B, mE5 VQ8-CXP6D, LightBridge 2 VCL, marathon VCL, marathon VCLx). If you want to use this operator with microEnable IV frame grabbers, you have to double all parameter values that are messured in time units (e.g., µs). |
In a design, this operator is placed directly after the camera operator, since it communicates with the camera and triggers the actual image data acquisition. On the other hand, it receives image data from the camera (on data input link I) and forwards these image data (with lines already assembled to images) on data output link O to the next operator(s).
You can either use an internally produced signal (mode GrabberControlled), or external signals to activate the operator's trigger signal generator. The external signals the operator can receive come either from software (software trigger), or from peripheral devices (via slot bracket trigger port or trigger expansion board (TTL or OPTO trigger board)). The operator's trigger signal generator can produce
- Exsync signals
- Exsync signals with a flexible delay, pulse width and polarity
- a Flash signal
The Flash is triggered by an external trigger input (like,e.g., the Image Gate). However, the Flash has its own delay (in line ticks). The Flash signal lasts for one line tick and might be most useful when synchonizing additional frame grabbers or LightBridge devices.
The operator offers 8 trigger input and 7 trigger output ports. The input ports you can connect to the signal sources you want to use (e.g., software trigger, peripheral devices like shaft encoder via individual trigger board pins, other frame grabber boards via flatband cable, etc.). The output ports you can connect to the signal receivers that need to be triggered (e.g., Exsync and Exsync2 for the camera(s) on the (master) frame grabber, Flash for synchronizing further frame grabbers, etc.)
The CC signals can be used for Exsync, Exsync2 and Flash signals (also inverted), or for Vcc/Gnd. If you don't need to use all CC signals, you can connect the unnecessary CC ports to a trash operator instance.
Some of the dynamic parameters of this operator cannot be re-set during image acquisition. As soon as image acquisition is put to a halt, the parameters are accessible again. In microDisplay, the according input fields are disabled. When working with the Framegrabber API, you need to know which parameters are concerned.
The values for the following parameters cannot be re-set during image acquisition:
- ImgTriggerMode
- MaxGatedHeight
- LineTriggerMode
- YOffset
- YLength
Available for Hardware Platforms |
---|
microEnable IV VD1-CL/-PoCL |
microEnable IV VD4-CL/-PoCL |
microEnable IV VQ4-GE/GPoE |
microEnable 5 VD8-PoCL |
microEnable 5 VQ8-CXP6(B) |
microEnable 5 VQ8-CXP6D |
LightBridge VCL |
Property | Value |
---|---|
Operator Type | M |
Input Links | I, data input Trigger Input Links (0-7), trigger input |
Output Links | O, data output Trigger Output Links (0-6), trigger output |
Link Parameter | Input Link I | Output Link O | Input Link Trigger Input Links (0-7) | Output Link Trigger Output Links (0-6) |
---|---|---|---|---|
Bit Width | [1, 64] | as I | [1] | [1] |
Arithmetic | {unsigned, signed} | as I | {unsigned} | {unsigned} |
Parallelism | any | as I | 1 | 1 |
Kernel Columns | 1 | as I | 1 | 1 |
Kernel Rows | 1 | as I | 1 | 1 |
Img Protocol | VALT_LINE1D | VALT_IMAGE2D | VALT_SIGNAL | VALT_SIGNAL |
Color Format | any | as I | VAF_GRAY | VAF_GRAY |
Color Flavor | any | as I | FL_NONE | FL_NONE |
Max. Img Width | any | as I | any | any |
Max. Img Height | 65536 | as I | any | any |
YOffset | |
---|---|
Type | dynamic/static read/write parameter |
Default | 0 |
Range | [0, 224] |
This parameter defines the number of lines omitted at the beginning of a frame. |
YLength | |
---|---|
Type | dynamic/static read/write parameter |
Default | 1024 |
Range | [8, 224] |
This parameter defines the number of lines of a frame if parameter ImgTriggerMode is set to ExternSw_Gate and parameter MaxGatedHeight is set to restricted. |
MaxGatedHeight | ||||
---|---|---|---|---|
Type | dynamid read/write parameter | |||
Default | restricted | |||
Range | {restricted, unrestricted} | |||
The parameter MaxGatedHeight allows you to limit the maximum image height if parameter ImgTriggerMode is set to ExternSw_Gate. If parameter ImgTriggerMode is set to ExternSw_Gate, and parameter MaxGatedHeight is set to unrestricted, the image height is defined by the time the gate is open, i.e., by the pulse width of the external image trigger signal or the duration of the software trigger being value 1. >If the gate is open for a long time, the image height gets large. If parameter MaxGatedHeight is set to restricted, the image height is limited to YLength image lines (as specified with parameter YLength) even if the gate is still open. The operator will discard any further lines and wait for the next open gate to start a new frame. In contrast, if the parameter is set to unrestricted, the image height is only defined by the gate.
|
LineTriggerMode | |
---|---|
Type | dynamic/static read/write parameter |
Default | GrabberControlled |
Range | {GrabberControlled, Extern_Trigger, GrabberControlled_Gated_by_Img, Extern_Trigger_Gated_by_Img} |
This parameter selects the operation mode for the internal Exsync signal generator. The source for the external trigger input can by selected via the parameters LineTrgInSourceA and LineTrgInSourceB (see below). GrabberControlled: Exsync is generated periodically by the internal signal generator. Extern_Trigger: An external trigger signal (software trigger or trigger signal from peripheral device) is used to start the signal generator once. GrabberControlled_Gated_by_Img: Exsync is generated periodically by the internal signal generator during the acquisition of a frame. Extern_Trigger_Gated_by_Img: An external trigger signal (software trigger or trigger signal from peripheral device) is used to trigger the signal generator during the acquisition of a frame. |
ExsyncEnable | |
---|---|
Type | dynamic read/write parameter |
Default | OFF |
Range | {OFF, ON} |
Enables or disables the Exsync output to the camera. |
LineTrgInSourceA | |
---|---|
Type | dynamic/static read/write parameter |
Default | InSignal0 |
Range | {InSignal0, InSignal1, InSignal2, InSignal3, InSignal4, InSignal5, InSignal6, InSignal7} |
This parameter specifies the signal source which is used to trigger the Exsync signal generator. This is only relevant if the TriggerMode is set to Extern_Trigger. |
LineTrgInSourceB | |
---|---|
Type | dynamic/static read/write parameter |
Default | InSignal0 |
Range | {InSignal0, InSignal1, InSignal2, InSignal3, InSignal4, InSignal5, InSignal6, InSignal7} |
This parameter specifies the signal source which is used to trigger the Exsync signal generator. This is only relevant if the TriggerMode is set to Extern_Trigger and EncoderABMode is set to Signal_AB_Filter. |
EncoderABMode | |
---|---|
Type | dynamic/static read/write parameter |
Default | Signal_A_Only |
Range | {Signal_A_Only, Signal_AB_Filter, Signal_ABx2_Filter, Signal_ABx4_Filter} |
This parameter specifies whether a single trigger input (A only) is used for the Exsync generation, or the signals A and B. Signal A/B support enables to determine the revolving direction of the shaft encoder and to suppress and compensate backward movements:
Signal_A_Only: The trigger input selected by LineTrgInSourceA is used for Exsync generation. Signal_AB_Filter: Exsync is generated for a forward rotation of the shaft encoder in single resolution, i.e., a trigger pulse for a rising edge of LineTrgInSourceA. Signal_ABx2_Filter: Exsync is generated for a forward rotation of the shaft encoder in double resolution, i.e., a trigger pulse for a rising edge of LineTrgInSourceA and a falling edge of LineTrgInSourceA. Both edges of LineTrgInSourceA are used. Signal_ABx4_Filter: Exsync is generated for a forward rotation of the shaft encoder in quad resolution, i.e., a trigger pulse for a rising and a falling edge of LineTrgInSourceA and a rising and a falling edge of LineTrgInSourceB. Related Parameters when AB support enabled:
You can reset the shaft encoder and parameter EncoderCompensationCount by setting parameter EncoderABMode to value Signal_A_Only. |
EncoderABLead | |
---|---|
Type | dynamic/static read/write parameter |
Default | Signal_AB |
Range | {Signal_AB, Signal_BA} |
A foreward movement is defined by a rising edge of signal A before signal B if the parameter is set to Signal_AB, or vice versa: Signal_AB: Forward is defined by A before B Signal_BA: Forward is defined by B before A |
EncoderCompensation | |
---|---|
Type | dynamic/static write parameter |
Default | ON |
Range | {ON/OFF} |
With parameter EncoderCompensation you can switch the compensation of the shaft encoder backward movement to ON or OFF. This parameter is only relevant if parameter EncoderABMode is set to A/B support. ON If switched to ON, in case of shaft encoder backward movement the operator counts how many shaft encoder steps the shaft encoder moves backwards. When the shaft encoder moves forwards again, this number of shaft encoder steps (now forward direction) is not transmitted as external trigger signals. Only after the transportation belt is back to the place where the backward movement started, the shaft encoder steps (forward direction) are transmitted as external trigger signals again. Parameter EncoderCompensation = ON:
OFF If switched to OFF, the operator simply doesn't transmit any trigger signals as long as the transportation belt moves backwards. As soon as the transport belt starts to move forwards again, the operator transmits the shaft encoder steps (forward direction) as trigger signals. Parameter EncoderCompensation = OFF:
By setting parameter EncoderCompensation to OFF, you reset parameter EncoderCompensationCount to value 0. |
EncoderCompensationCountBits | |
---|---|
Type | static write parameter |
Default | 20 bit |
Range | {8 bit ... 31 bit} |
This parameter allows to define the value range of parameter EncoderCompensationCount. |
EncoderCompensationCount | |
---|---|
Type | dynamic read/write parameter |
Default | 220 -1 |
Range | {0 ... 2EncoderCompensationCountBits -1} (unit: shaft encoder steps) |
This parameter is only relevant if parameter EncoderCompensation is set to ON and parameter EncoderABMode is set to A/B support. This parameter allows to define an offset for the forward movement of the transportation belt. This is especially helpful if the transportation belt stopps and/or moves backwards. A specific value range for parameter EncoderCompensationCount you can define with parameter EncoderCompensationCountBits. You can reset the shaft encoder and parameter EncoderCompensationCount by setting the parameter EncoderABMode to value Signal_A_Only. Alternativlely, you can reset parameter EncoderCompensationCount to value 0 by setting parameter EncoderCompensation to OFF. Basic Conditions If parameter EncoderCompensation is set to ON, an internal counter counts the shaft encoder steps the transportation belt moves backwards, to be able to compensate the exact number of shaft encoder steps when the transportation belt starts moving forwards again:
The internal counter counts forwards as long as the transportation belt moves backwards. (In the figure above, from 0 to 8.) The internal counter counts backwards while the transportation belt moves forwards. (In the the figure above, from 8 to 0.) When the internal counter holds the value 0, the shaft encoder steps are transmitted as trigger signals. The value the internal counter holds at a given moment is the value of parameter EncoderCompensationCount. Only if this value is 0, encoder steps are transmitted as trigger signals. If the value of parameter EncoderCompensationCount is ≠0, the shaft encoder steps are not transmitted as trigger signals and the value keeps changing with every encoder step until it reaches the value 0 again. Reading the Parameter Parameter EncoderCompensationCount is a read/write parameter. Therefore, at any given moment, you can always read out the value the counter holds at a given moment. Defining an Offset On the other hand, you can always modify the parameter value since you have write access during acquisition. If you need to define an offset to the standard encoder compensation, you can use this parameter to enter the number of steps you need the offset to be. As soon as you enter a value for EncoderCompensationCount, this value overwrites the value the parameter holds before. Let's look at some examples for overwriting the current value of EncoderCompensationCount: Example 1: The transportation belt is moving forward, the shaft encoder steps are transmitted as trigger signals, and the value of EncoderCompensationCount is 0. Then, the value 0 of EncoderCompensationCount is overwritten by value 4. Result: 4 shaft encoder steps are not transmitted as trigger signals.
Example 2: The transportation belt is moving backward, the (backward) shaft encoder steps are supressed, and the value of EncoderCompensationCount is ≠0. Then, during backward movement of the transportation belt, the value 5 of EncoderCompensationCount is overwritten by value 7. Result: Offset of 2 shaft encoder steps.
Example 3: The transportation belt is moving forward during compensation, the (forward) shaft encoder steps are supressed, and the value of EncoderCompensationCount is ≠0. Then, during compensative forward movement of the transportation belt, the value 4 of EncoderCompensationCount is overwritten with value 9. Result: Offset of 5 shaft encoder steps.
Example 4: The transportation belt is moving forward during compensation, the (forward) shaft encoder steps are supressed, and the value of EncoderCompensationCount is ≠0. Then, during compensative forward movement of the transportation belt, the value 4 of EncoderCompensationCount is overwritten with a smaller value, in our case with value 3. Result: Negative offset of -1 shaft encoder step.
|
LineTrgInPolarity | |
---|---|
Type | dynamic read/write parameter |
Default | LowActive |
Range | {LowActive, HighActive} |
The parameter defines the polarity of the external input trigger signal LineTrgInSourceA and LineTrgInSourceB. When set to LowActive, the Exsync generator starts on a falling edge of the signal specified by the parameter ImgTrgInSource. Otherwise, the Exsync generation starts on a rising edge. This is only relevant if the TriggerMode is set to Extern_Trigger. |
LineTrgDownscaler | |
---|---|
Type | dynamic/static read/write parameter |
Default | 1 |
Range | [1, 256] |
This parameter specifies the number of external input trigger signals, which are needed to generate the Exsync. This is only relevant if the TriggerMode is set to an external trigger mode. |
LineTrgPhase | |
---|---|
Type | dynamic/static read/write parameter |
Default | 1 |
Range | [1, 256] |
This parameter specifies the number of external input trigger signals, which are needed to generate the first Exsync of a frame. This is only relevant if the TriggerMode is set to Extern_Trigger_Gated_by_Img. |
ExsyncPeriod | ||||
---|---|---|---|---|
Type | dynamic/static read/write parameter | |||
Default | 100 μs | |||
Range | [1.024, 2097.14] | |||
This parameter specifies the period of the Exsync signal. Therefore, it defines the line frequency when using the grabber controlled mode to trigger the connected camera.
|
ExsyncExposure | ||||
---|---|---|---|---|
Type | dynamic/static read/write parameter | |||
Default | 20 μs | |||
Range | [1.024, 2000] μs, must not exceed ExsyncPeriod | |||
This parameter specifies the pulse width of the Exsync signal, which can be used by many cameras to specify the exposure time. Therefore, it is possible to adjust the exposure time via software, even while grabbing.
|
Exsync2Delay | ||||
---|---|---|---|---|
Type | dynamic/static read/write parameter | |||
Default | 0 μs | |||
Range | [0, ExsyncPeriod] μs, must not exceed ExsyncPeriod | |||
This parameter specifies the delay of the generated Exsync signal, with respect to an external trigger input. Therefore, the Exsync2 signal is a delayed clone of the Exsync (polarity, period, etc. are the same as for Exsync).
|
ExsyncPolarity | |
---|---|
Type | dynamic/static read/write parameter |
Default | LowActive |
Range | {LowActive, HighActive} |
The parameter adjusts the polarity of the Exsync signal genarator to the polarity accepted by the connected camera. Use LowActive, if the camera opens the shutter on a falling edge, otherwise use HighActive. |
ImgTriggerMode | |
---|---|
Type | dynamic/static read/write parameter |
Default | FreeRun |
Range | {FreeRun, ExternSw_Trigger, ExternSw_Gate} |
This parameter selects the operation mode for the internal Image Gate. The image trigger input signal may be created by external (peripheral) devices (e.g., shaft encoder), or by software. The source for the external image trigger input you can select via the parameter ImgTrgInSource, see below). The values of parameter ImgTriggerMode induce the following behaviour:
|
ImgTrgInSource | |
---|---|
Type | dynamic/static read/write parameter |
Default | InSignal0 |
Range | {InSignal0, InSignal1, InSignal2, InSignal3, InSignal4, InSignal5, InSignal6, InSignal7, SoftwareTrigger} |
This parameter specifies the signal source which is used to trigger the image acquisition. This is only relevant if the ImgTriggerMode is set to ExternSw_Trigger or ExternSw_Gate. |
ImgTrgInPolarity | |
---|---|
Type | dynamic read/write parameter |
Default | LowActive |
Range | {LowActive, HighActive} |
The parameter defines the polarity of the external input trigger signal. |
ImgTrgDelay | |
---|---|
Type | dynamic read/write parameter |
Default | 0 |
Range | {0, 65535} |
The parameter delays the image trigger signal by the given number of image lines. |
FlashEnable | |
---|---|
Type | dynamic read/write parameter |
Default | OFF |
Range | {OFF, ON} |
Enables or disables the flash output. The pulse width of the flash signal is equal to one line period. |
FlashPolarity | |
---|---|
Type | dynamic/static read/write parameter |
Default | LowActive |
Range | {LowActive, HighActive} |
The parameter defines the polarity for the generated Flash signal. |
FlashDelay | |
---|---|
Type | dynamic/static read/write parameter |
Default | 0 |
Range | {0, 4095} |
This parameter specifies the number of lines to delay the generated Flash signal, with respect to an external trigger input. Therefore, it is possible to synchronize the flash to the external trigger input. The pulse width of the flash signal is equal to one line period. |
SoftwareTrgPulse | |
---|---|
Type | dynamic/static write parameter |
Default | |
Range | {1} |
Setting this parameter to 1 will generate a software trigger. This is only relevant if the TriggerMode is set to an external trigger mode and ImgTrgInSource is set to SoftwareTrigger. |
SoftwareTrgInput | |
---|---|
Type | dynamic/static write parameter |
Default | |
Range | {0, 1} |
With this parameter a software gate can be produced for the image trigger mode ExternSw_Gate. |
ImgTrgIsBusy | |
---|---|
Type | dynamic/static read parameter |
Default | 0 |
Range | {0, 1} |
The ImgTrgIsBusy parameter enables software readout of the busy state for the image trigger. If busy then this parameter is set to 1 to reflect an ongoing image capture. If set to 0 then the operator is not busy. |
CC1output | |
---|---|
Type | dynamic/static write parameter |
Default | Exsync |
Range | {Exsync, ExsyncInvert, Exsync2, Exsync2Invert, Flash, FlashInvert, Gnd, Vcc} |
This parameter specifies the signal available at the CC1 line of the CameraLink cable. |
CC2output | |
---|---|
Type | dynamic/static write parameter |
Default | Exsync |
Range | {Exsync, ExsyncInvert, Exsync2, Exsync2Invert, Flash, FlashInvert, Gnd, Vcc} |
This parameter specifies the signal available at the CC2 line of the CameraLink cable. |
CC3output | |
---|---|
Type | dynamic/static write parameter |
Default | Exsync |
Range | {Exsync, ExsyncInvert, Exsync2, Exsync2Invert, Flash, FlashInvert, Gnd, Vcc} |
This parameter specifies the signal available at the CC3 line of the CameraLink cable. |
CC4output | |
---|---|
Type | dynamic/static write parameter |
Default | Exsync |
Range | {Exsync, ExsyncInvert, Exsync2, Exsync2Invert, Flash, FlashInvert, Gnd, Vcc} |
This parameter specifies the signal available at the CC4 line of the CameraLink cable. |
ImgTrgDebouncingMaxTime | ||||
---|---|---|---|---|
Type | static write parameter | |||
Default | 65.520 us | |||
Range | [0.016, 1000000] us | |||
This parameter specifies the maximal time for ImgTrgDebouncingTime parameter. The smaller the maximal time the less FPGA resources are required to implement the debouncing timer.
|
ImgTrgDebouncingTime | ||||
---|---|---|---|---|
Type | dynamic/static write parameter | |||
Default | 0.112 us | |||
Range | [0.016, ImgTrgDebouncingMaxTime] us | |||
This parameter specifies the debouncing time the input image trigger signal must keep the same value to be detected as such. Fast signal changes within the debounce time will be filtered out.
|
LineTrgDebouncingMaxTime | ||||
---|---|---|---|---|
Type | static write parameter | |||
Default | 65.520 us | |||
Range | [0.016, 1000000] us | |||
This parameter specifies the maximal time for LineTrgDebouncingTime parameter. The smaller the maximal time the less FPGA resources are required to implement the debouncing timer.
|
LineTrgDebouncingTime | ||||
---|---|---|---|---|
Type | dynamic/static write parameter | |||
Default | 0.112 us | |||
Range | [0.016, ImgTrgDebouncingMaxTime] us | |||
This parameter specifies the debouncing time the input line trigger signals must keep the same value to be detected as such. Fast signal changes within the debounce time will be filtered out.
|
The use of operator TrgBoxLine is shown in the following examples:
-
'Line Scan Trigger for microEnable IV VD4-CL/-PoCL Using Operator TrgBoxLine'
A VisualApplets design example showing the usage of operator TrgBoxLine in a simple design. For parameters of "TrgBoxLine" on microEnable4 IV VD4-CL/PoCL platform please read corresponding operator documentation under 'TrgBoxLine'.
-
'Line Scan Trigger for microEnable IV VQ4-GE/-GPoE Using Operator TrgBoxLine'
A VisualApplets design example showing the usage of operator TrgBoxLine in a simple design. For parameters of "TrgBoxLine" on microEnable IV VQ4-GE/-GPoE platform please read corresponding operator documentation under 'TrgBoxLine'.
-
' Line Scan Trigger for microEnable 5 marathon/LightBridge VCL with TrgBoxLine Operator Usage'
A VisualApplets design example showing the usage of operator TrgBoxLine in a simple design.
-
'Line Scan Trigger for microEnable 5 VD8-CL/-PoCL with TrgBoxLine Operator Usage'
A VisualApplets design example showing the usage of operator TrgBoxLine in a simple design.
-
'Line Scan Trigger for microEnable 5 marathon VCX QP with TrgBoxLine Operator Usage'
A VisualApplets design example showing the usage of operator TrgBoxLine in a simple design.
-
'Line Scan Trigger for imaFlex CXP-12 Quad with TrgBoxLine Operator Usage'
A VisualApplets design example showing the usage of operator TrgBoxLine in a simple design.
-
'Line Scan Trigger for microEnable 5 VQ8-CXP6 with TrgBoxLine Operator Usage'
A VisualApplets design example showing the usage of operator TrgBoxLine in a simple design.