Balluff - BVS CA-GX0 / BVS CA-GX2 Technical Documentation
Working with the dual exposure feature ("mvMultiZone") of BVS CA-GX2-0071Z / mvBlueCOUGAR-XD107

Introduction

The IMX420 used in the BVS CA-GX2-0071Z / mvBlueCOUGAR-XD107 is a Pregius sensor of the third generation. This sensor features a dual exposure mode, i.e. after a trigger event, for example, different image areas can be exposed to light at the same time differently.

To activate the dual exposure mode we introduced a new exposure mode called mvMultiZone.

If this mode is selected you can set the "mv Exposure Horizontal Zone Divider". This property indicates where the zones are divided horizontally. The step size is 12.5%.

The exposure time of the different zones can be specified using the "Exposure Time Selector". Possible zones are

  • mvHorizontalZone0
  • mvHorizontalZone1

Using ImpactControlCenter

To activate the dual exposure, just

  1. Select mvMultiZone in "Setting → Base → Camera → GenICam → Acquisition Control → Exposure Mode".
  2. Set the "Exposure Time" of each zone by selecting the specific "Exposure Time Selector".
  3. Finally, specify the "mv Exposure Horizontal Zone Divider" (e.g. 50, i.e. you have two equal sized images).
Note
Regardless of whether the acquisition is already active, changing the "mv Exposure Horizontal Zone Divider" takes effect with a delay of at least one additional image. Frames that have already been captured but not used by the application (still in the camera's frame buffer or an internal Impact Acquire queue) are of course no longer affected by the change, so the overall delay may appear longer and is independent of the time between the captured images.
Figure 1: ImpactControlCenter - new Exposure Mode
Figure 2: Example image with two different exposed to light zones

Programming the dual exposure

#include <mvIMPACT_CPP/mvIMPACT_acquire_GenICam.h>

  // more code
  GenICam::AcquisitionControl ac( pDev );
  ac.exposureMode.writeS( "mvMultiZone" );
  ac.exposureTimeSelector.writeS( "mvHorizontalZone1" );
  ac.exposureTime.write( 5000 );
  ac.exposureHorizontalDivider.write( 50 );
  // more code