Interleaved Camera and Illumination Control
This section describes the operation of the Camera and Illumination Controller – CIC – when Interleaved Acquisition is enabled.
This section applies to line-scan and area-scan interleaved acquisition.
Cycle Trigger designates the event that initiates a CIC cycle: a Line Trigger event in case of line-scan cameras or a Trigger event in case of area-scan cameras.
CIC Cycle Programs
When Interleaved Acquisition is enabled, the Camera and Illumination Controller is configured with two, usually different, camera and illumination cycle programs. These programs are named P1 and P2 respectively.
Each camera and illumination cycle program defines five events on a timeline beginning with a Cycle Trigger event.
1. | ResetON: turn ON time of the Reset pulse and Start of Exposure |
2. | ResetOFF: turn OFF time of the Reset pulse and End of Exposure |
3. | StrobeON: turn ON time of the Strobe pulse and Start Of Illumination |
4. | StrobeOFF: turn OFF time of the Strobe pulse and End Of Illumination |
5. | AllowNextTrigger : the last event of a program indicating that a new cycle may be initiated. |
CIC Program Cycle events and timing definitions
Each program defines two pulses: one Reset pulse and one Strobe pulse. Their timing is user configurable:
● | Exposure Time is the time interval between the ResetON and the ResetOFF events. |
● | Strobe Duration is the time interval between the StrobeON and the StrobeOFF events. |
● | Exposure Delay is the time interval between the Cycle Trigger and ResetON events. |
● | Strobe Delay is the time interval between the ResetON and StrobeON events. This value can be positive, null, or negative allowing the Strobe pulse to be positioned anywhere relatively to the start of exposure. |
The following restrictions apply on the position order of the events on the timeline:
0 ≤ ResetON < ResetOFF ≤ AllowNextTrigger
0 ≤ StrobeON < StrobeOFF ≤ AllowNextTrigger
MultiCam Camera Trigger Overrun Protection Principle
At acquisition channel configuration time:
● | MultiCam checks if the exposure time user setting can be achieved by the camera. If the user setting of the exposure time is out of bounds, MultiCam corrects its value. The effective exposure time will be set to the nearest boundary. |
● | MultiCam calculates the position on the timeline of the AllowNextTrigger event of P1 and P2 programs. This calculation takes into account the camera operating limits and the user-defined exposure and strobe timing settings for P1 and P2 programs. |
At acquisition channel run time, MultiCam reports a "trigger violation” error if a Cycle Trigger event is issued before the AllowNextTrigger event during the execution of a program.
Camera Operating Limits
The following camera operating limits are considered:
● | Exposure time range |
● | Minimum time interval between two consecutive Exposure |
● | Maximum line rate |
In MultiCam, the following parameters describe the operating limits of a camera:
● | ExposeMin_us: declares the minimum exposure time, expressed in microseconds (i.e. the minimum duration of a Reset pulse). |
● | ExposeMax_us: declares the maximum exposure time, expressed in microseconds (i.e. the maximum duration of a Reset pulse). |
● | ResetDur: for line-scan cameras only, declares the minimum time interval between two consecutives Reset pulses. |
● | ExposeRecovery_us: for area-scan cameras only, declares the minimum time interval between two consecutive Reset pulses. |
● | LineRate_Hz: for line-scan cameras only, declares the highest line rate supported by the camera (i.e. the reciprocal of the readout time) |
● | FrameRate_mHz: for area-scan cameras only, declares the highest frame rate supported by the camera (i.e. the reciprocal of the readout time) |
● | ExposeOverlap: declares that the camera allows or forbids the next exposure to begin before the completion of the current readout. |
Allow Next Trigger Rules
MultiCam applies the following rules when it calculates the position of the AllowNextTrigger event.
RULE 1a – Readout time limitation (Expose Overlapping forbidden)
This rule applies only when ExposeOverlap = FORBID.
The start of exposure of the next cycle may not occur before the end of the current camera readout.
If there is any exposure delay (a) in the next cycle, the AllowNextTrigger event may be generated earlier.
RULE 1b - Readout time limitation (Expose Overlapping allowed)
This rule applies only when ExposeOverlap = ALLOW.
The end of exposure of the next cycle must not occur before the end of the current camera readout.
If there is any exposure delay (a) in the next cycle, the AllowNextTrigger event may be generated earlier.
RULE 2 – Reset interval limitation
The time interval (r) between consecutive Reset pulses may not be shorter than the value specified by ResetDur.
If there is any exposure delay (a) in the next cycle, the AllowNextTrigger event may be generated earlier.
RULE 3 – Next Cycle
This rule applies only to line-scan interleaved acquisition!
The next cycle after P1 is undetermined, it can be either P2 or P1. The next cycle after P2 is always P1.
For the calculation of the position of the AllowNextTrigger event of P1, MultiCam evaluates both hypothesis (P1 and P2) and keeps the worst case.
For the calculation of the position of the AllowNextTrigger event of P2, MultiCam assumes that the next cycle is P1.
Exposure Delay
By default, MultiCam configures P1 and P2 with the smallest possible value:
● | 0 when StrobeDelay_P<1,2>_us ≥ 0 |
● | (-StrobeDelay_P<1,2>_us) when StrobeDelay_P<1,2>_us < 0 |
If required, the exposure delay can be configured using any of the following methods:
Exposure Delay - Manual Method
This method is invoked when ExposureDelayControl is set to MANUAL. This is the default method.
With this method, the user may specify the exposure delay for P1 and P2 with:
ExposureDelay_MAN_P1_us and ExposureDelay_MAN_P2_us.
By default, these parameters are set to 0.
MultiCam calculates the smallest possible value for each program separately as follows:
● | ExposureDelay_MAN_P<1,2>_us whenStrobeDelay_P<1,2>_us ≥ (- ExposureDelay_MAN_P<1,2>_us) |
● | (-StrobeDelay_P<1,2>_us) when StrobeDelay_P<1,2>_us < (- ExposureDelay_MAN_P<1,2>_us) |
Exposure Delay - Automatic method 1 (Same Start of Exposure)
Select this method by setting ExposureDelayControl to SAME_START_EXPOSURE. MultiCam calculates, the smallest value ensuring that the start of exposure occurs at the same position on the program timeline.
Exposure Delay - Automatic method 2 (Same Endof Exposure)
Select this method by setting ExposureDelayControl to SAME_END_EXPOSURE.
MultiCam calculates the smallest values ensuring that the end of exposure occurs at the same position on the program timeline.
Effective Exposure Time
The effective exposure time values are reported by ExposureTime_P1_Effective_us and ExposureTime_P2_Effective_us.
In general, the effective values are very close to the user settings, the slight differences can be explained by rounding issues to the nearest timer tick period.
Large differences can be observed in the case of an out-of-bound user setting.
Effective Strobe Duration and Strobe Delay
The effective strobe duration and strobe delay values are reported by StrobeDuration_P1_Effective_us, StrobeDuration_P2_Effective_us, StrobeDelay_P1_Effective_us and, StrobeDelay_P2_Effective_us.
The effective values are, in any case, very close to the user settings, the slight differences can be explained by rounding issues to the nearest timer tick period.
Effective Exposure Delay
The effective exposure delay values are reported by ExposureDelay_P1_Effective_us and ExposureDelay_P2_Effective_us.
When ExposureDelayControl = MANUAL, the effective values are very close to the user settings, the slight differences can be explained by rounding issues to the nearest timer tick period.
Large differences can be observed in the case of negative strobe delay values.
Effective Minimum Trigger Period
The run time of each program is reported by MinTriggerPeriod_P1_us and MinTriggerPeriod_P2_us.
The values can be different. Considering that programs are executed alternatively, the user should only consider the larger value as the minimum time interval between line triggers.