MVTec Software GmbH
  Building Vision For Business
Halcon

HALCON 8.0 Image Acquisition Interface for Matrox Helios, Meteor-II, Odyssey, Solios, and Vio Boards

This page provides the documentation of the HALCON MILLite interface for the Matrox Helios, Meteor-II, Odyssey, Solios, and Vio frame grabber boards. Registered customers can download the latest revision of this interface from the MVTec WWW server.

Revision: 3.10

System Requirements

  • Intel compatible PC with Windows XP/Vista/7 or Windows XP/Vista/7 x64.
  • Successfully installed Matrox board driver.
  • Matrox DLLs mil.dll, milmet2.dll, milsolios.dll.
    These DLLs must be within your search path %PATH% (typically, they reside in the directory C:\Winnt\system32). If you do not have these DLLs, please contact Matrox or the vendor from which you bought the frame grabber board. Note that this interface requires the Matrox DLLs version 9.0, i.e., MIL-Lite 9.0..
  • HALCON image acquisition interface hAcqMILLite.dll or parhAcqMILLite.dll, respectively.
    If you have properly installed the interface, both DLLs should reside in bin\%HALCONARCH% within the HALCON base directory %HALCONROOT% you have chosen during the installation of HALCON.

Features

  • Support of Helios eA/XA, Helios eCL/XCL,, Matrox Meteor-II, Meteor-II/1394, Meteor-II/CL, Meteor-II/DIG, Meteor-II/MC, Odyssey eA/XA, Odyssey eCL/XCL, Odyssey eD/XD, Solios eA/XA, Solios eCL/XCL, Solios eCL/XCL-B, Solios eV-CL, and Vio frame grabber boards.
  • Multiple compatible cameras per board (port switching).
  • Synchronous and asynchronous grabbing.
  • External trigger (with software override of the camera configuration file).
  • Support of multiple analog and digital cameras based on camera configuration files.

Limitations

  • Only one image acquisition instance per frame grabber board for Meteor-II, Meteor-II/cl, and Metor-II/dig boards. However, multiple compatible cameras can be accessed using port switching.
  • No support of onboard image preprocessing capabilities.
  • No support of Solios GigE boards.
  • grab_data and grab_data_async not supported.
  • No LUTs.

Description

Parameters for open_framegrabber():

Name 'MILLite' The name of the HALCON image acquisition interface.
HorizontalResolution --- Ignored.
VerticalResolution --- Ignored.
ImageWidth --- Ignored.
ImageHeight --- Ignored.
StartRow --- Ignored.
StartColumn --- Ignored.
Field --- Ignored.
BitsPerChannel --- Ignored.
ColorSpace 'gray', 'rgb' Desired color space. Default: 'gray'.
Generic 'num_buffers=num',-1 With the Generic parameter 'num_buffers' the actual number of image buffers used in the HALCON acquisition interface can be set before the camera is initialized. Note that the parameter must be specified as a string, e.g., 'num_buffers=5'. The specified value for num_buffers has to be an positive integer. Note that depending on the image size of the used camera a high number of buffers can exceed the available memory size of your computer, see also the non-paged memory size settings with the Matrox MILConfig configuration tool. Default: 2.
ExternalTrigger 'true', 'false' Activate/deactivate external triggering. Note that this setting overrides the corresponding setup in the camera configuration file. Default: 'false'.
CameraType 'configuration' Specify the name (including the full path name) of the desired camera configuration file (e.g., 'c:\\temp\\rs170.dcf') or a predefined configuration (e.g., 'M_DEFAULT', 'M_RS170'). For possible values, please see the documentation of your board.
Device '<BoardType>:<nr>[:DIG:<nr>]' The type ('METEOR_II', 'METEOR_II_1394', 'METEOR_II_CL', 'METEOR_II_DIG', 'HELIOS', 'SOLIOS', 'ODYSSEY', or 'VIO') and the number ('0', '1', '2' ...) of the frame grabber board, optionally plus ':DIG:' and the number ('0', '1', '2' ...) of the independent digitizer (passed as one string!), e.g., 'HELIOS:0' or 'METEOR_II_1394:1:DIG:4'. For Meteor-II/1394 boards the digitizer equals the number of the camera in the chain. If no digitizer is specified, the first digitizer (i.e., number '0') is chosen. The installed boards can be inquired calling info_framegrabber(...,'info_boards',...).
Port -1, 0, 1, ..., 23 Specifies the channel, i.e. the video input. For possible values and assignment, please see the documentation of your Matrox frame grabber board. By specifying the default '-1' the corresponding setting of the camera configuration file is used. Default: -1.
LineIn --- Ignored.

Parameters for set_framegrabber_param():

'continuous_grabbing' 'enable', 'disable' Enables/disables the continuous grabbing mode. If the continuous grabbing mode is enabled, the camera grabs all the time. Note that in this mode the grab_image and grab_image_async calls will always deliver the most recent image! The continuous grabbing mode is not supported in combination with software trigger. Default: 'disable'.
Note that in combination with the continuous grabbing mode you can exploit the specific Trigger Arm Characteristics settings which can be configured in the used DCF file, see also below for more information.
'current_buffer_index' 0 ... num_buffers-1 Index of the current image buffer.
'exposure_time' nanoseconds Sets the time (in nanoseconds) for the active portion of the exposure signal (that is, the exposure time). By specifying 0, exposure is disabled and the grab is performed immediately. Note, that an error is returned if the specified exposure time cannot be generated.
'exposure_time_delay' nanoseconds Sets the delay (in nanoseconds) between the trigger and the start of exposure. Note, that an error is returned if the specified delay cannot be generated.
'external_trigger' 'true', 'false' Activate/deactivate external triggering.
'grab_timeout' milliseconds Specify the desired timeout (milliseconds passed as an integer) for aborting a pending grab. Default: 5000.
'port' -1, 0, 1, ..., 23 Switch to the video input (or the number of the camera in the chain). For possible values and assignment, please see the documentation of your frame grabber board. Using this port switching you can access multiple cameras with one frame grabber board.
'rotary_counter' 'true', 'false' Activate/deactivate the rotary counter. Default: 'false'.
'rotary_counter_direction' 'forward', 'backward' Sets the direction of the rotary counter, i.e. the rotary counter gets incremented for a value of 'forward', or decremented for a value of 'backward', respectively . Default: 'forward'.
'rotary_counter_trigger_position' 0, ..., 65535 Specifies the rotary counter value upon which a trigger is generated.
'start_async_after_grab_async' 'enable', 'disable' By default, at the end of grab_image_async a new request for an asynchronous grab command is automatically given to the frame grabber board. If the parameter 'start_async_after_grab_async' is set to 'disable' this new grab command is omitted. This might be useful especially for random switching between several connected cameras. Default: 'enable'.
'start_field' 'even', 'odd', 'next', 'default' Specifies the field that the grabbing of a frame starts with. If the parameter 'start_field' is set to 'even' the grabbing starts with the even field, if it is 'odd' it starts with the 'odd' field, and in case of 'next' lthe grabbing starts with the next field. If 'start_field' is set to 'default' the grabbing starts with the board-specific default. For the actual default start field, please see the documentation of your Matrox frame grabber board. Default: 'default'.
'trigger_signal' 'default', 'rising', 'falling', 'high', 'low' Defines the expected type of input trigger. 'rising' ('falling') requires the external trigger to go low (high) and high (low) again before the next image can be acquired; in case of 'high' ('low') an image can be acquired during the whole time the trigger is high (low). 'default' specifies the trigger mode in the DCF file or, if none, 'rising'.
'trigger_source' 'none', 'default', 'hw_port_camera', 'hw_port0', ..., 'hw_port11', 'rotary_counter', 'software', 'timer1', 'timer2' Defines the source of the input trigger. For details, please see the documentation of your frame grabber board.
'do_abort_grab' --- Abort the current image acquisition.
'do_force_trigger' --- Forces an event trigger from the application, when using the external trigger. This might be useful for testing purposes. Note, that 'do_force_trigger' requires an asynchronous grab already pending!
'do_reset_rotary_counter' --- Resets the rotary counter to zero.

The following parameters apply only to Matrox Meteor-II/1394 boards. Note that they (and also the valid parameter values!) depend on the capabilities of the used camera.

You can request the valid minimal and maximal integer values by calling get_framegrabber_param(...,'parameter_name_range',...) Note that the default values of most of the following parameters depend on the current camera settings!

'brightness' min ... max Sets the brightness value of the camera. If the used camera does not support brightness adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).
'exposure' min ... max Sets the auto exposure value of the camera. If the used camera does not support exposure adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).
'focus' min ... max Sets the focus value of the camera. If the used camera does not support focus adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).
'gamma' min ... max Sets the gamma value of the camera. If the used camera does not support gamma adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).
'hue' min ... max Sets the hue value of the camera. If the used camera does not support hue adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).
'iris' min ... max Sets the iris value of the camera. If the used camera does not support iris adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).
'saturation' min ... max Sets the saturation value of the camera. If the used camera does not support saturation adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).
'shutter' min ... max Sets the shutter value of the camera. If the used camera does not support shutter adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).
'ub' min ... max Sets the ub value of the camera. If the used camera does not support ub adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).
'video_gain' min ... max Sets the gain value of the camera. If the used camera does not support gain adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).
'vr' min ... max Sets the vr value of the camera. If the used camera does not support vr adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).
'zoom' min ... max Sets the zoom value of the camera. If the used camera does not support zoom adjustment, H_ERR_FGPARAM is returned (or an empty tuple in the corresponding call to get_framegrabber_param, respectively).

Parameters for get_framegrabber_param():

Additional parameters supported by get_framegrabber_param only. Note that all parameters supported by set_framegrabber_param except the ones with prefix 'do_' can also be accessed by get_framegrabber_param. Furthermore, corresponding to the parameters supported by set_framegrabber_param, there may exist additional read-only parameters with the following postfixes:

  • '_description': These parameters provide the tooltip of the corresponding parameter as a string.
  • '_range': These parameters provide the minimum, maximum, stepwidth, and default values for the corresponding integer or float parameter as a tuple with 4 elements, e.g., get_framegrabber_param(..,'exposure_range',..) will return the output tuple [min,max,step,default]. Optionally, this tuple can also contain additional valid string values like 'auto' or 'manual'.
  • '_values': These parameters provide the valid value list for the corresponding parameter as a tuple, e.g., get_framegrabber_param(..,'volatile_values',..) will return the output tuple ['enable','disable'].
All these postfixed parameter names are not returned when calling info_framegrabber(..,'parameters',..) and are used to enable the easy parameterization via a generic graphical user interface, particularly the HDevelop Image Acquisition Assistant.

'board_type' board_type (long) Returns the actual board type.
'revision' revision (string) Revision of the HALCON MILLite image acquisition interface.
'rotary_counter_position' position (long) Returns the current value of the rotary counter.

Multiple Cameras (Port Switching) on Meteor-II boards

It is possible to connect more than one camera to a Meteor-II board. To access a specific camera, you have to specify the corresponding port. This setting can be changed dynamically using the operator set_framegrabber_param(...,'port',...) (port switching). However, in this case the used cameras must be compatible, that is of the same type or with similar features (if in doubt please contact your local vendor or Matrox).

With this mechanism you can access multiple cameras with one image acquisition handle. Note that a pending asynchronous job blocks the switching of the port. Therefore, it does not make much sense to use grab_image_async in combination with port switching. Please see also the HDevelop example program millite_2ports.dev you will find in %HALCONROOT%\examples\hdevelop\Image\Acquisition.

Meteor-II/1934 and Meteor-II/Multi-Channel boards also allow multiple image acquisition instances per frame grabber board, with different camera settings per image acquisition instance. Thus, multiple incompatible cameras can be accessed with one frame grabber board.

Trigger Arm Characteristics

The so-called Trigger Arm Characteristics (like Frame Retrigger, Software Ignore Frame Retrigger, Hardware Ignore Frame Retrigger, and Frame Retrigger Latched) is specified inside the Matrox DCF files. To use this functionality within the HALCON MILLite interface, both the continuous grabbing mode and external triggering has to be enabled, see the paramters 'continuous_grabbing' and 'external_trigger'. Please make sure that your MIL-Lite version already supports this feature!

Release Notes

  • Revision 3.10 (Aug 25, 2010):
    • Removed obsolete internal parameter queries in open_framegrabber.
    • Fixed bug regarding error handling in continuous grabbing mode.
  • Revision 3.9 Erratum (May 19, 2010):
    • Re-added the support of Meteor-II boards in the documentation. This information was deleted in the original release of revision 3.9 by mistake.
  • Revision 3.9 (Mar 16, 2010):
    • Adapted to Matrox MIL-Lite 9.0.
    • Support also of Windows XP/Vista x64 Editions.
    • Added Generic parameter 'num_buffers' in open_framegrabber to allow to set the number of internally used buffers.
    • New read-only parameter 'num_buffers' to query the number of internally used buffers.
    • Added implementation of info_framegrabber(..,'generic',...) to query all supported values for the Generic parameter in open_framegrabber.
    • Decreased the default number of allocated images buffers for each initialized camera from 5 to 2.
    • New expert parameter 'current_buffer_index' to manually control the buffer ordering.
  • Revision 3.8 (Jan 26, 2010):
    • New parameter 'continuous_grabbing' to enable the use of the continuous grabbing mode.
    • Increased the number of allocated images buffers for each initialized camera from 2 to 5.
    • Added section "Trigger Arm Characteristics" in this documentation.
  • Revision 3.7 (Nov 11, 2009):
    • Support also of Solios eCL/XCL-B boards.
    • Adapted open_framegrabber to enable the use of boards with multiple input channels in general.
  • Revision 3.6 (Sep 18, 2009):
    • Bugfix in set_framegrabber_param('do_abort_grab') to ensure the proper behaviour also in case that no corresponding grab operator is called concurrently.
    • Added note in documentation that Solios GigE boards are not supported.
  • Revision 3.5 (Aug 31, 2009):
    • Bugfix in close_framegrabber to enable the cleanup of all ressources also in case of external triggering.
    • Bugfix in open_framegrabber, grab_image, grab_image_async, and grab_image_start regarding the use of multiple cameras connected to the same physical board.
    • Bugfix in set_framegrabber_param('do_abort_grab').
  • Revision 3.4 (Dec 1, 2008):
    • Bugfix in grab_image_async to reach the full frame rate in case of free-running analog cameras.
    • Bugfix in grab_image_async to allow software triggering.
    • Support also of Vio boards.
  • Revision 3.3 (Apr 22, 2008):
    • Added read-only parameters with postfix '_description', '_range', and '_values' to enable the easy parameterization via a generic graphical user interface.
  • Revision 3.2 (Sep 5, 2007):
    • Bugfix in buffer handling.
    • New parameter 'board_type'.
  • Revision 3.1 (Jul 27, 2007):
    • Bugfix in open_framegrabber when accessing the actual board type.
  • Revision 3.0 (May 15, 2007):
    • HALCON 8.0 version of the interface (included in HALCON 8.0 DVD).
  • Revision 2.3 (Mar 20, 2007):
    • Bugfix in grab_image and grab_image_async (grab_timeout).
    • Bugfix in buffer handling (M_GRAB_FRAME_END no longer used for buffer switching).
  • Revision 2.2 (Aug 14, 2006):
    • Improved use of double buffering.
    • New parameter 'start_field'.
    • Improved error messages.
    • M_GRAB_END event used for image transfer.
  • Revision 2.1 (Apr 19, 2006):
    • Change of semantics of parameters Device and Port in open_framegrabber.
    • Bugfix to enable setting of the grab timeout.
  • Revision 2.0 (Dec 06, 2005):
    • First official release.


© Copyright 2012, MVTec Software GmbH, corporate/legal/privacy information