CVB driver for Sherlock and multiple instances



I use Sherlock quite a lot and I often use multiple instances so that I can use logically-separate inspections. I had no problems doing this with the DALSA Sapera driver, but I’m not sure if it is possible with CVB’s driver. Can it be done?



Hi @Mjollnir,

The Sherlock CVB Driver itself supports multiple instances. It is recommended to use a different CVBDrv.ini file for every instance to clearly define the used drivers and camera ports for every instance.

If you can work with multiple instances depends on the used CVB VIN-Drivers and hardware

For example the driver can be loaded from different processes. But if a GigE Vision camera is already opened by one process it cannot be opened by another.

By default the driver loads the first configured device (CameraPort 0). Even if a different CameraPort is specified in the CVBDrv.ini file. Then the camera on port 0 is opened and if successful the port is changed to the specified port.
If you have only one CVBDrv.ini or in all CVBDrv.ini files the [CAMERA0] is defined with CameraPort = 0 which is also the default if nothing is specified the next instance cannot access the camera as the camera is already opened by the first instance.

There are two ways to use every camera once in every instance.

Load the cameras from last to first
Configure the Camera Ports in CVB so that the highest camera port is loaded first and port 0 is loaded at last.
For Example:

CVBDrv2.ini (second instance):

Driver = %CVB%\Drivers\
CameraPort = 2

Driver= %CVB%\Drivers\
CameraPort = 3

CVBDrv1.ini (first instance):

Driver = %CVB%\Drivers\
CameraPort = 0

Driver= %CVB%\Drivers\
CameraPort = 1

Load the instance with CVBDrv2.ini before the instance with CVBDrv1.ini

Use AutoSwitchEnable
The GenICam driver support the auto switch feature. This can be activated in the GenICam Browser from CVB.
Then the driver changes automatically to the next available camera port which makes it possible to load the instance with CVBDrv1.ini from the upper example before the other.

1 Like

Thank you @SKinzler - so you set up all of the cameras in CVB’s genicam.ini (for either solution) and then you can use the different Sherlock CVBDrvx.ini to separate them (with port 0 loaded last), or you use the Autoswitch flag.

That makes sense, thanks,