Different Triggering Modes Available for Line Scan Cameras

Updated Jan 23, 2023

Reported In

Hardware

  • Line Scan Camera

Driver

  • NI-IMAQ

Programming Language

  • LabVIEW G

Issue Details

What are the different triggering modes for a line scan camera?

Solution

There are three types of triggering applications often used with line scan cameras:

Variable Height Acquisition (VHA)
This mode is often used in line scan applications where you do not know the exact size of the object that you are imaging. In this mode, you can wire an external sensor that indicates whether an object is within the field of view, and you can trigger your image acquisition from this object's present/not present signal. The advantage of this setup is that the image you get back is "variable height": your object is guaranteed to fit in one image as opposed to area scan cameras that may acquire only part of an object due to the set image size.

You must configure IMAQ Trigger for "trigger each buffer" mode. In VHA, the trigger is very similar to an Enable. While this trigger is asserted, all the lines being collected will be returned as one frame. There is an example that ships with the IMAQ driver demonstrating this concept. For more information on VHA, check Appendix B of the NI-IMAQ User Manual (linked below).

To acquire a variable number of lines from a line scan camera in LabVIEW and C.

Trigger Each Line
This mode is often used in line scan applications where you want to trigger your line scan lines from an encoder or a device that can output pulses at varying frequencies. This triggering works quite differently from normal triggering where we continuously receive Line Valids. When "triggering each line", a Line Valid is only received on each trigger. When programming your VI, configure IMAQ Trigger for "trigger each line" mode.

Trigger Each Line and VHA
A problem with only using VHA in a conveyor belt application is that the line rate of the camera has to be synchronized with the speed of the conveyor belt. However, what happens when your conveyor belt is variable speed, can accelerate or decelerate, or breaks down?

Sometimes you need to use VHA combined with Trigger Each Line. This way you can route the encoder signal to trigger each line and use VHA to accurately acquire an image of an object with varying height and speed.

The encoder signal from your motion controller is routed via RTSI to trigger each line acquisition. So externally you can hook up a sensor to tell your system whether an object is present or not. This code also introduces a simulation of a real environment where the motion may periodically breakdown, altering the velocity and acceleration of the motion system. This functionality is mainly included to test if each line is really triggering off the encoder feedback of the motion system.