Once selected, you can use the trigger type for a number of camera configuration tasks, e.g., enabling hardware triggering.
In this topic Hide
To select a trigger type, set the TriggerSelector parameter to one of the following values:
Once you have selected a trigger type, you can do the following:
Task | Feature |
---|---|
Enabling or disabling the selected trigger type | Trigger Mode |
Selecting the input line or software command to act as the source for the trigger type selected | Trigger Source |
Selecting the signal transition necessary for activating the trigger type selected | Trigger Activation |
Configuring a delay between the receipt of a hardware signal and the moment when the trigger type selected becomes effective | Trigger Delay |
The Frame Burst Start trigger and the Acquisition Start trigger are identical, only the names differ. The naming depends on your camera model. In the following, the term "Frame Burst Start trigger" is used to describe both types.
If available, you can use the Frame Burst Start, End, and Active triggers to control the acquisition of a series of images (a "burst" of images).
The number of images per series is specified by the AcquisitionFrameCountAcquisitionBurstFrameCount parameter. The maximum number of images per series depends on your camera model.
By default, these triggers are disabled, and the camera acquires single images only.
If you enable these triggers and the camera receives the corresponding signal via the trigger source configured, the following happens:
If available, you can use the Frame Start, End, and Active triggers to control the acquisition of a single image. These are the trigger types used most commonly. In most image applications, you will only need to configure these trigger types.
By default, these triggers are disabled, and the camera controls image acquisition automatically.
If you enable these triggers and the camera receives the corresponding signal via the trigger source configured, the following happens:
If available, you can use the Exposure Start, End, and Active triggers to control the exposure of a single image.
By default, these triggers are disabled, and the camera exposes images automatically.
If you enable these triggers, set the exposure mode to TriggerControlled, and the camera receives the corresponding signal via the trigger source configured, the following happens:
Use Case 1: Frame Burst Triggering
Assume you want to trigger the acquisition of a series of images with only one trigger signal.
To achieve this, enable the Frame Burst Start trigger and disable all other available trigger types. Also, set the AcquisitionFrameCountAcquisitionBurstFrameCount parameter to 3.
This way, every time the camera successfully receives a Frame Burst Start trigger signal, the camera automatically acquires a complete series of three images.
Afterwards, the camera waits for the next Frame Burst Start trigger signal. On the next trigger signal, the camera acquires another 3 images, and so on.
Use Case 2: Exposure Triggering
Assume that you want to avoid the exposure start delay, i.e., start exposure as fast as possible after applying a trigger signal. Also assume that the Exposure Start trigger is available for your camera.
In this case, set the exposure mode to TriggerControlled, enable the Frame Start trigger and the Exposure Start trigger, and disable all other available trigger types.
This way, every time the camera successfully receives a Frame Start trigger signal, the camera initializes image acquisition, but does not yet start exposing. Instead, the camera waits in its prepared state and is ready to expose immediately when receiving an Exposure Start trigger signal.
After the image has been exposed, the camera ignores all further Exposure Start trigger signals. You must apply a new Frame Start trigger signal to initialize the next image acquisition.
Camera Model | Available Trigger Types |
Maximum Number of Images per Series |
---|---|---|
All ace 2 GigE camera models |
|
1023 |
All ace 2 USB 3.0 camera models |
|
1023 |
acA640-90gm |
|
255 |
acA640-90gc |
|
255 |
acA640-120gm |
|
255 |
acA640-120gc |
|
255 |
acA640-121gm |
|
255 |
acA640-300gm |
|
255 |
acA640-300gc |
|
255 |
acA720-290gm |
|
255 |
acA720-290gc |
|
255 |
acA780-75gm |
|
255 |
acA780-75gc |
|
255 |
acA800-200gm |
|
255 |
acA800-200gc |
|
255 |
acA1280-60gm |
|
255 |
acA1280-60gc |
|
255 |
acA1300-22gm |
|
255 |
acA1300-22gc |
|
255 |
acA1300-30gm |
|
255 |
acA1300-30gc |
|
255 |
acA1300-60gm |
|
255 |
acA1300-60gmNIR |
|
255 |
acA1300-60gc |
|
255 |
acA1300-75gm |
|
255 |
acA1300-75gc |
|
255 |
acA1440-73gm |
|
255 |
acA1440-73gc |
|
255 |
acA1600-20gm |
|
255 |
acA1600-20gc |
|
255 |
acA1600-60gm |
|
255 |
acA1600-60gc |
|
255 |
acA1920-25gm |
|
255 |
acA1920-25gc |
|
255 |
acA1920-40gm |
|
255 |
acA1920-40gc |
|
255 |
acA1920-48gm |
|
255 |
acA1920-48gc |
|
255 |
acA1920-50gm |
|
255 |
acA1920-50gc |
|
255 |
acA2000-50gm |
|
65535 |
acA2000-50gmNIR |
|
65535 |
acA2000-50gc |
|
65535 |
acA2040-25gm |
|
65535 |
acA2040-25gmNIR |
|
65535 |
acA2040-25gc |
|
65535 |
acA2040-35gm |
|
255 |
acA2040-35gc |
|
255 |
acA2440-20gm |
|
255 |
acA2440-20gc |
|
255 |
acA2500-14gm |
|
255 |
acA2500-14gc |
|
255 |
acA2500-20gm |
|
255 |
acA2500-20gc |
|
255 |
acA2500-20gmMED |
|
255 |
acA2500-20gcMED |
|
255 |
acA3088-16gm |
|
255 |
acA3088-16gc |
|
255 |
acA3800-10gm |
|
255 |
acA3800-10gc |
|
255 |
acA4024-8gm |
|
255 |
acA4024-8gc |
|
255 |
acA4096-11gm |
|
255 |
acA4096-11gc |
|
255 |
acA4112-8gm |
|
255 |
acA4112-8gc |
|
255 |
acA4600-7gc |
|
255 |
acA5472-5gm |
|
255 |
acA5472-5gc |
|
255 |
acA640-750um |
|
255 |
acA640-750uc |
|
255 |
acA640-90um |
|
255 |
acA640-90uc |
|
255 |
acA640-120um |
|
255 |
acA640-120uc |
|
255 |
acA720-520um |
|
255 |
acA720-520uc |
|
255 |
acA800-510um |
|
255 |
acA800-510uc |
|
255 |
acA1300-200um |
|
255 |
acA1300-200uc |
|
255 |
acA1300-30um |
|
255 |
acA1300-30uc |
|
255 |
acA1440-220um |
|
255 |
acA1440-220uc |
|
255 |
acA1600-20um |
|
255 |
acA1600-20uc |
|
255 |
acA1920-25um |
|
255 |
acA1920-25uc |
|
255 |
acA1920-40um |
|
255 |
acA1920-40uc |
|
255 |
acA1920-40umMED |
|
255 |
acA1920-40ucMED |
|
255 |
acA1920-150um |
|
255 |
acA1920-150uc |
|
255 |
acA1920-155um |
|
255 |
acA1920-155uc |
|
255 |
acA1920-155umMED |
|
255 |
acA1920-155ucMED |
|
255 |
acA2040-90um |
|
255 |
acA2040-90umNIR |
|
255 |
acA2040-90uc |
|
255 |
acA2000-165um |
|
255 |
acA2000-165umNIR |
|
255 |
acA2000-165uc |
|
255 |
acA2040-55um |
|
255 |
acA2040-55uc |
|
255 |
acA2040-120um |
|
255 |
acA2040-120uc |
|
255 |
acA2440-35um |
|
255 |
acA2440-35uc |
|
255 |
acA2440-35umMED |
|
255 |
acA2440-35ucMED |
|
255 |
acA2440-75um |
|
255 |
acA2440-75uc |
|
255 |
acA2440-75umMED |
|
255 |
acA2440-75ucMED |
|
255 |
acA2500-14um |
|
255 |
acA2500-14uc |
|
255 |
acA2500-60um |
|
255 |
acA2500-60uc |
|
255 |
acA3088-57um |
|
255 |
acA3088-57uc |
|
255 |
acA3800-14um |
|
255 |
acA3800-14uc |
|
255 |
acA4024-29um |
|
255 |
acA4024-29uc |
|
255 |
acA4096-30um |
|
255 |
acA4096-30uc |
|
255 |
acA4096-30umMED |
|
255 |
acA4096-30ucMED |
|
255 |
acA4096-40um |
|
255 |
acA4096-40uc |
|
255 |
acA4096-40umMED |
|
255 |
acA4096-40ucMED |
|
255 |
acA4112-20um |
|
255 |
acA4112-20uc |
|
255 |
acA4112-20umMED |
|
255 |
acA4112-20ucMED |
|
255 |
acA4112-30um |
|
255 |
acA4112-30uc |
|
255 |
acA4112-30umMED |
|
255 |
acA4112-30ucMED |
|
255 |
acA4600-10uc |
|
255 |
acA5472-17um |
|
255 |
acA5472-17uc |
|
255 |
boA4096-93cm | tbd | tbd |
boA4096-93cc | tbd | tbd |
boA4112-68cm | tbd | tbd |
boA4112-68cc | tbd | tbd |
All dart BCON for LVDS camera models | Frame Start | N/A |
All dart BCON for MIPI camera models | Trigger Selector feature not supported | Trigger Selector feature not supported |
All dart USB 3.0 camera models | Frame Start | N/A |
All pulse USB 3.0 camera models | Frame Start | N/A |
// Select and enable the Frame Start trigger
camera.TriggerSelector.SetValue(TriggerSelector_FrameStart);
camera.TriggerMode.SetValue(TriggerMode_On);
// Select and enable the Acquisition Start trigger
camera.TriggerSelector.SetValue(TriggerSelector_AcquisitionStart);
camera.TriggerMode.SetValue(TriggerMode_On);
// Set the number of images to be acquired per Acquisition Start trigger signal to 3
camera.AcquisitionFrameCount.SetValue(3);
// Select and enable the Frame Start trigger
camera.TriggerSelector.SetValue(TriggerSelector_FrameStart);
camera.TriggerMode.SetValue(TriggerMode_On);
// Select and enable the Frame Burst Start trigger
camera.TriggerSelector.SetValue(TriggerSelector_FrameBurstStart);
camera.TriggerMode.SetValue(TriggerMode_On);
// Set the number of images to be acquired per Frame Burst Start trigger signal to 3
camera.AcquisitionBurstFrameCount.SetValue(3);
INodeMap& nodemap = camera.GetNodeMap();
// Select and enable the Frame Start trigger
CEnumerationPtr(nodemap.GetNode("TriggerSelector"))->FromString("FrameStart");
CEnumerationPtr(nodemap.GetNode("TriggerMode"))->FromString("On");
// Select and enable the Acquisition Start trigger
CEnumerationPtr(nodemap.GetNode("TriggerSelector"))->FromString("AcquisitionStart");
CEnumerationPtr(nodemap.GetNode("TriggerMode"))->FromString("On");
// Set the number of images to be acquired per Acquisition Start trigger signal to 3
CIntegerPtr(nodemap.GetNode("AcquisitionFrameCount"))->SetValue(3);
// Select and enable the Frame Start trigger
CEnumerationPtr(nodemap.GetNode("TriggerSelector"))->FromString("FrameStart");
CEnumerationPtr(nodemap.GetNode("TriggerMode"))->FromString("On");
// Select and enable the Frame Burst Start trigger
CEnumerationPtr(nodemap.GetNode("TriggerSelector"))->FromString("FrameBurstStart");
CEnumerationPtr(nodemap.GetNode("TriggerMode"))->FromString("On");
// Set the number of images to be acquired per Frame Burst Start trigger signal to 3
CIntegerPtr(nodemap.GetNode("AcquisitionBurstFrameCount"))->SetValue(3);
// Select and enable the Frame Start trigger
camera.Parameters[PLCamera.TriggerSelector].SetValue(PLCamera.TriggerSelector.FrameStart);
camera.Parameters[PLCamera.TriggerMode].SetValue(PLCamera.TriggerMode.On);
// Select and enable the Acquisition Start trigger
camera.Parameters[PLCamera.TriggerSelector].SetValue(PLCamera.TriggerSelector.AcquisitionStart);
camera.Parameters[PLCamera.TriggerMode].SetValue(PLCamera.TriggerMode.On);
// Set the number of images to be acquired per Acquisition Start trigger signal to 3
camera.Parameters[PLCamera.AcquisitionFrameCount].SetValue(3);
// Select and enable the Frame Start trigger
camera.Parameters[PLCamera.TriggerSelector].SetValue(PLCamera.TriggerSelector.FrameStart);
camera.Parameters[PLCamera.TriggerMode].SetValue(PLCamera.TriggerMode.On);
// Select and enable the Frame Burst Start trigger
camera.Parameters[PLCamera.TriggerSelector].SetValue(PLCamera.TriggerSelector.FrameBurstStart);
camera.Parameters[PLCamera.TriggerMode].SetValue(PLCamera.TriggerMode.On);
// Set the number of images to be acquired per Frame Burst Start trigger signal to 3
camera.Parameters[PLCamera.AcquisitionBurstFrameCount].SetValue(3);
// Select and enable the Frame Start trigger
Pylon.DeviceFeatureFromString(hdev, "TriggerSelector", "FrameStart");
Pylon.DeviceFeatureFromString(hdev, "TriggerMode", "On");
// Select and enable the Acquisition Start trigger
Pylon.DeviceFeatureFromString(hdev, "TriggerSelector", "AcquisitionStart");
Pylon.DeviceFeatureFromString(hdev, "TriggerMode", "On");
// Set the number of images to be acquired per Acquisition Start trigger signal to 3
Pylon.DeviceSetIntegerFeature(hdev, "AcquisitionFrameCount", 3);
// Select and enable the Frame Start trigger
Pylon.DeviceFeatureFromString(hdev, "TriggerSelector", "FrameStart");
Pylon.DeviceFeatureFromString(hdev, "TriggerMode", "On");
// Select and enable the Frame Burst Start trigger
Pylon.DeviceFeatureFromString(hdev, "TriggerSelector", "FrameBurstStart");
Pylon.DeviceFeatureFromString(hdev, "TriggerMode", "On");
// Set the number of images to be acquired per Frame Burst Start trigger signal to 3
Pylon.DeviceSetIntegerFeature(hdev, "AcquisitionBurstFrameCount", 3);
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Select and enable the Frame Start trigger */
errRes = PylonDeviceFeatureFromString(hdev, "TriggerSelector", "FrameStart");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "TriggerMode", "On");
CHECK(errRes);
/* Select and enable the Acquisition Start trigger */
errRes = PylonDeviceFeatureFromString(hdev, "TriggerSelector", "AcquisitionStart");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "TriggerMode", "On");
CHECK(errRes);
/* Set the number of images to be acquired per Acquisition Start trigger signal to 3 */
errRes = PylonDeviceSetIntegerFeature(hdev, "AcquisitionFrameCount", 3);
CHECK(errRes);
/* Select and enable the Frame Start trigger */
errRes = PylonDeviceFeatureFromString(hdev, "TriggerSelector", "FrameStart");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "TriggerMode", "On");
CHECK(errRes);
/* Select and enable the Frame Burst Start trigger */
errRes = PylonDeviceFeatureFromString(hdev, "TriggerSelector", "FrameBurstStart");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "TriggerMode", "On");
CHECK(errRes);
/* Set the number of images to be acquired per Frame Burst Start trigger signal to 3 */
errRes = PylonDeviceSetIntegerFeature(hdev, "AcquisitionBurstFrameCount", 3);
CHECK(errRes);
You can also use the pylon Viewer to easily set the parameters.