General remarks

ibaVision runs as a Windows process and thus requires a logged on user account. In order to grant automatic start of the system, create a user account which automatically logs on at system start. The installation of ibaVision configures Windows to start ibaVision automatically after logging in.

Within the main ibaVision application, multiple ibaVision programs can be run (2 ibaVision programs with the basic license), currently limited to 16 ibaVision programs per application.

Plugin selection

Due to the plug-in concept, you have to select the appropriate plug-in for your machine vision application.

  • MVTec HalconThe processing of the image data is carried out with Halcon library functions. The application for every specific image processing task must be created by the user or a 3rd party with the development environment HDevelop. A description of how to develop an image processing application is not in the scope of this manual. Please refer to the Halcon SDK documentation.

  • Python Scripts can be written in the Python programming language and utilize the full spectrum of exisiting Python libraries. Users have to provide their own installation of Python 3.8 to use the Python plug-in. Please refer to the Python documentation and chapter Notes on Python installation.

  • Custom plug-in ibaVision functionalities can be extended by user-created custom plug-ins in the .NET framework. Plug-ins can, for example, execute custom machine vision processing algorithms or act as a custom video source.

    A code example will be available on GitHub: https://github.com/iba-ag/ibaVision-DotNet-Plugin-Example

When the plug-in type is selected, further settings for the plug-in are required, like the path to the script and the program folder, see also chapter Plugin settings.

Structure of an ibaVision program

An ibaVision program consists of three fundamental procedures:

Initialization

The Initialization procedure should be used to open handles, for example to external hardware, internal software models, etc. It is executed once when the processing is started.

Main

The Main procedure is the procedure that will be executed in a continuous loop until the user decides to stop the ibaVision program. This is where the actual image processing should be implemented. The Main procedure must not contain infinite loops.

Cleanup

The Cleanup procedure can be used to close handles opened in the Initialization procedure. It will be executed after the Main procedure has been executed the last time. Then the ibaVision program is terminated.

Each time an ibaVision program executes one of these three procedures, it first sets all iconic and control inputs. The sources have to be specified. Next, the actual procedure is executed and finally the resulting iconic and control outputs are retrieved and passed on to the according output modules.

Example structure of an ibaVision program (simplified):

To copy the code to the clipboard click on the icon ->

Run(Initialization) while(Program execution not stopped) { Run(Main) } Run(Cleanup)

For configuration details, refer to chapter Initialization, Main, Cleanup procedures

Sources and types of iconic and control inputs

Input parameters need to be connected to value sources. The following value types are possible:

  • Control input

    • A constant value (integer, real or string)

    • A signal value coming from ibaPDA (analog, digital or string)

    • A control output from a procedure that has been executed before.

      For example:

      The Main procedure can use a control input that is the control output of the Initialization procedure. The Main procedure can also feedback control outputs: the value of a control output of the Main procedure can be used as a control input for the next iteration of the Main procedure. For this case, the user has to define an initial value for the control input.

    • Image timestamp: The timestamp information of the image from an ibaCapture video input that is currently processed

      In offline processing mode, these control inputs are also available:

    • DAT file signal value

    • DAT file info field value

    • path to processed DAT file

  • Iconic input

    • A constant image file

    • A frame coming from an ibaCapture camera

    • An iconic output from a procedure that has been executed before.

      For example:

      The Main procedure can use an iconic input that is the iconic output of the Initialization procedure. The Main procedure can also feedback iconic outputs: the value of an iconic output of the Main procedure can be used as an iconic input for the next iteration of the Main procedure. For this case, the user has to define an initial value for the iconic input.

For configuration details, refer to chapters ibaPDA inputs and Video inputs.

Iconic and control outputs

The following output parameters are parsed and available to use.

  • Control output parameters can be used to:

    • Send values as visual signals to ibaPDA (analog, digital or string)

    • Set the value of a control input parameter

  • Iconic output parameters can be used to:

    • Send a frame to a virtual camera in ibaCapture

    • Set the value of an iconic input parameter

For configuration details, refer to chapter ibaPDA outputs and Video outputs.

Receiving data from ibaPDA and/or ibaCapture

Signals can be received from ibaPDA, e.g. in order to be used as control input variable and videos can be received from ibaCapture as image source for image processing.

Signals from ibaPDA can be received via an ibaPDA input module. The necessary signals have to be defined in this module.

The videos to be processed can be received from ibaCapture via a Video input module. The desired camera connected to the ibaCapture Server can be selected and configured.

If the ibaVision program is designed to grab images through the plug-in-specific image acquisition functions, a video input module is not necessary.

For configuration details, refer to chapters ibaPDA inputs and Video inputs.

Sending data to ibaPDA and/or ibaCapture

It is also possible to send signals to ibaPDA, such as measured values or other variables retrieved from the ibaVision program. These values can be acquired and recorded in ibaPDA as visual signals.

Signals can be sent to ibaPDA via an ibaPDA output module, where the desired variables can be selected. Possible signal types are analog and digital signals.

Processed images from iconic output parameters, e. g. which contain additional visual information, can be sent to ibaCapture and displayed and recorded as virtual camera. This video stream is sent via a Video output module, where the desired iconic output parameter can be selected.

For configuration details, refer to chapters ibaPDA outputs and Video outputs.

Configuration in ibaPDA

To receive analog and digital signals in ibaPDA from an ibaVision program, an ibaVision input module has to be created in ibaPDA.

Within these modules, an ibaPDA output module configured in ibaVision has to be selected that will transmit the signals. The signals configured in the ibaPDA output module in the ibaVision program can automatically be mapped to the signals in the ibaVision input module in ibaPDA.

To send analog and digital signals from ibaPDA to an ibaVision program, ibaVision output modules have to be created in ibaPDA. Within this ibaVision output module, the ibaPDA input module configured in ibaVision has to be selected in order to receive the signals. The signals configured in the ibaPDA input module in the ibaVision program are mapped automatically to the signals in the ibaVision output module in ibaPDA. To define the signal value that is sent to ibaVision, an expression has to be defined in ibaPDA for each signal.

For configuration details, refer to chapter ibaPDA

Configuration in ibaCapture

Configuration in ibaCapture is necessary, when recording processed images from ibaVision as video stream. For this purpose, a camera with camera type Virtual camera (ibaVision) has to be created and configured.

For configuration details, refer to chapter ibaCapture.