Image Acquisition Interface for Matrix MAS devices via Slink
Interface:
|
Slink
|
Revision:
|
13.0.1
|
Date:
|
2016-10-28
|
HALCON Version:
|
13.0
|
General
System Requirements
- Intel compatible PC with Windows 7 (32-bit or 64-bit)
or newer that is also supported by the vendor-specific SDK,
also WoW64 (using 32-bit HALCON on 64-bit Windows).
- Installed WinDriver 10.4 und Slink drivers. If you have properly
installed the interface, the files can be found either at
%ProgramFiles%\IB Matrix BV\drivers or
%ProgramFiles(x86)%\IB Matrix BV\drivers.
- Sensor setup program IBMatrix_MAS_Setup. If you have properly
installed the interface, the files can be found either at
%ProgramFiles%\IB Matrix BV\IBMatrix_MAS_Setup or
%ProgramFiles(x86)%\IB Matrix BV\IBMatrix_MAS_Setup.
- Support files. If you have properly installed the interface,
the support files should be at
%ProgramData%\IB Matrix BV\HalconInterface:
FPGA program files:
- SI_Config.mcs
- SI_Config_fs.mcs
- SIC_Config.mcs
- SIC_Config_fs.mcs
- SIC5x5_Config.mcs
- SIC5x5_Config_fs.mcs
- SIH_Config_fs.mcs
- Config.mcs
- FPGA.txt
System configuration file:
- SlinkConfig.txt Use IBMatrix_MAS_Setup to change.
WoW64 executables in the x86 directory:
- frontendcontinue.dll version 2.0.0.1 or higher.
- HalconInterface.dll version 12.0.0.1 or higher.
- HalconInterfacexl.dll version 12.0.0.1 or higher.
x64 executables in the x64 directory:
- frontendcontinue.dll version 2.0.0.1 or higher.
- HalconInterface.dll version 12.0.0.1 or higher.
- HalconInterfacexl.dll version 12.0.0.1 or higher.
SlinkDevice_x directory:
- MASSETUP.INI Use IBMatrix_MAS_Setup to change.
- Other files will be added by IBMatrix_MAS_Setup.
- HALCON image acquisition interface hAcqSlink.dll or
hAcqSlinkxl.dll, respectively. If you have installed
the interface properly, both DLLs should reside in
bin\%HALCONARCH% within the HALCON base directory
%HALCONROOT% you have chosen during the installation of HALCON.
- Slink PCI(e) board.
- MAS sensor.
Features
- Synchronous and asynchronous grabbing with color and monochrome images, using a scanning technique.
Limitations
- Scans per second limited dependent on MAS size and resolution.
Parameter |
Value List |
Type |
Description |
'bits_per_channel' |
[] |
|
Fixed 8 bit. |
'camera_type' |
['MAS014xxM1C'] |
string |
MAS configuration string. |
'color_space' |
['rgb', 'gray'] |
string |
Color space dependent on the installed MAS device(s). |
'defaults' |
[0, 0, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', 'Device_0', -1, -1] |
mixed |
Default values (as used for open_framegrabber). |
'device' |
['<device>'] |
string |
Available devices. |
'external_trigger' |
[] |
|
Unsupported query. |
'field' |
[] |
|
Unsupported query. |
'general' |
[] |
|
Ingenieurs bureau Matrix BV Slink interface. |
'generic' |
[] |
|
Unsupported query. |
'horizontal_resolution' |
[] |
|
Horizontal resolution dependent on MAS configuration sensors, low = 0, medium = 1, high = 2. |
'image_height' |
[] |
|
Image height free from 1 to 8192. |
'image_width' |
[] |
|
Image width fixed dependent on the number of sensors in the MAS and the overlap. |
'info_boards' |
['device:<device> | bus:<bus> | slot:<slot> | description:<description> | status:<status>'] |
string |
Installed Slink boards. |
'line_in' |
[] |
|
Unsupported query. |
'parameters' |
['<parameters>'] |
string |
Additional parameters for the Slink acquisition interface. |
'parameters_readonly' |
['<parameters_readonly>'] |
string |
Additional read only parameters for the Slink acquisition interface. |
'parameters_writeonly' |
[] |
|
Unsupported query. |
'port' |
[] |
|
Unsupported query. |
'revision' |
['<revision>'] |
string |
Current interface revision. |
'start_column' |
[] |
|
Unsupported query. |
'start_row' |
[] |
|
Unsupported query. |
'vertical_resolution' |
[] |
|
Unsupported query. |
The open parameters are read back from the
MASSETUP.ini device file at
%ProgramFiles%\IB Matrix BV\IBMatrix_MAS_Setup\SlinkDevice_x.
Use IBMatrix_MAS_Setup to tune the device.
Parameter |
Values |
Default |
Type |
Description |
Name |
'Slink' |
|
string |
Name of the HALCON interface. |
HorizontalResolution |
0 |
0 |
integer |
Horizontal resolution dependent on MAS configuration sensors, low = 0, medium = 1, high = 2. |
VerticalResolution |
0 |
0 |
integer |
Ignored. |
ImageWidth |
0 |
0 |
integer |
Image width fixed dependent on the number of sensors in the MAS and the overlap. |
ImageHeight |
0 |
0 |
integer |
Image height free from 1 to 8192. |
StartRow |
0 |
0 |
integer |
Ignored. |
StartColumn |
0 |
0 |
integer |
Ignored. |
Field |
'default' |
'default' |
string |
Ignored. |
BitsPerChannel |
8 |
8 |
integer |
Fixed 8 bit. |
ColorSpace |
'rgb', 'gray' |
'rgb' |
string |
Color space dependent on the installed MAS device(s). |
Generic |
-1 |
-1 |
float |
Ignored. |
ExternalTrigger |
'false' |
'false' |
string |
Ignored. |
CameraType |
'MAS014xxM1C' |
'default' |
string |
MAS configuration string. |
Device |
'<device>' |
'Device_0' |
string |
Available devices. |
Port |
-1 |
-1 |
integer |
Ignored. |
LineIn |
-1 |
-1 |
integer |
Ignored. |
Parameter |
Values |
Type |
Description |
'acquire_start_trigger' |
'0 Continuous', '1 Port 1 up', '2 Port 1 down', '3 Port 2 up', '4 Port 2 down', '5 Port 3 up', '6 Port 3 down', '7 Port 4 up', '8 Port 4 down' |
string |
Set the external trigger values. |
'active_ledbars' |
'Led bar1', 'Led bar2', 'Both bars' |
string |
The current led bars used. |
'backplane_distance_mm' |
250::2000 |
integer |
Distance between the back of the MAS device and the conveyor plane in mm. |
'binning_resolution' |
'Low', 'Medium' |
string |
Sets the horizontal binning resolution values. |
'color_space' |
'rgb', 'gray' |
string |
Use color mode or gray values. |
'continuous_grabbing' |
'enable', 'disable' |
string |
Continuous grabbing on. |
'current_sensor_file' |
'<current_sensor_file>' |
string |
The file which contains the default parameters. |
'digital_output' |
0::15 |
integer |
The value of the digital output, available values depend on illumination and grab marker. |
'do_abort_grab' |
<integer> |
integer |
Abort current grab. |
'encoder_divide' |
1::255 |
integer |
Divide the encoder pulses to get roughly square pixels. |
'grab_timeout' |
1000::360000 |
integer |
Per grab abort timeout. |
'illumination_time_fixed_lamp' |
1::20 |
integer |
The number of sensor lines the shutter is on. |
'illumination_time_led_bar' |
1::512 |
integer |
The flash duration in system units. |
'image_height' |
1::8192 |
integer |
The height or number of scan lines of an image. |
'max_line_rate' |
200::1250 |
integer |
The maximum line scan frequency, if this is too high transfer of the imagedata is incomplete. |
'measurement_elevation_mm' |
0::50 |
integer |
Elevation height of the interesting objects above the conveyor plane, determines the overlap. |
'start_grab_marker_output' |
'No marker', 'Bit 3', 'Bit 2', 'Bit 1', 'Bit 0' |
string |
To synchronize an output can be toggled at the start of a grab sequence. |
'use_encoder' |
'true', 'false' |
string |
Use the encoder or the internal timer. |
'use_fixed_lamps_no_flash' |
'true', 'false' |
string |
The illumination is fixed light source else a flashing led bar is used. |
- There are names of event handles for abort, buffers_full, input_changed and transfer_end. Those names can be used to open
an event using the Windows API call OpenEvent.
- The abort handle can be used to abort grabbing
as alternative for do_abort_grab.
- The other three can be used in WaitForObject or WaitForMultipleObjects
as alternative for the callback functions.
- Handles should be closed and reopened
after closing and reopening the board.
Parameter |
Values |
Type |
Description |
'abort_handle' |
'<abort_handle>' |
string |
Abort grab event handle name. |
'acquire_start_trigger' |
'0 Continuous', '1 Port 1 up', '2 Port 1 down', '3 Port 2 up', '4 Port 2 down', '5 Port 3 up', '6 Port 3 down', '7 Port 4 up', '8 Port 4 down' |
string |
Set the external trigger values. |
'acquire_status' |
'true', 'false' |
string |
Indication if the current sensor is grabbing. |
'active_ledbars' |
'Led bar1', 'Led bar2', 'Both bars' |
string |
The current led bars used. |
'available_callback_types' |
'<available_callback_types>' |
string |
Query call back types. |
'available_param_names' |
'<available_param_names>' |
string |
Available parameters for this interface. |
'backplane_distance_mm' |
250::2000 |
integer |
Distance between the back of the MAS device and the conveyor plane in mm. |
'binning_resolution' |
'Low', 'Medium' |
string |
Sets the horizontal binning resolution values. |
'bits_per_channel' |
<integer> |
integer |
Fixed 8 bit. |
'buffers_full_handle' |
'<buffers_full_handle>' |
string |
Buffer full event handle name. |
'camera_type' |
'<camera_type>' |
string |
MAS configuration string. |
'color_space' |
'rgb', 'gray' |
string |
Use color mode or gray values. |
'configuration' |
'<configuration>' |
string |
Describes the MAS sensor configuration. |
'continuous_grabbing' |
'enable', 'disable' |
string |
Continuous grabbing on. |
'current_buffer' |
<integer> |
integer |
Current acquire buffer to be processed. |
'current_busslot' |
'<current_busslot>' |
string |
Bus slot of the current device. |
'current_encoder_reading' |
<integer> |
integer |
Current encoder value. |
'current_sensor_file' |
'<current_sensor_file>' |
string |
The file which contains the default parameters. |
'current_sensor_subdirectory' |
'<current_sensor_subdirectory>' |
string |
The subdirectory where the settings, tuning etc. files of this board are stored. |
'device' |
'<device>' |
string |
Available devices. |
'digital_input' |
<integer> |
integer |
Read back of the digital_input signals. |
'digital_output' |
0::15 |
integer |
The value of the digital output, available values depend on illumination and grab marker. |
'do_abort_grab' |
<integer> |
integer |
Abort current grab. |
'encoder_divide' |
1::255 |
integer |
Divide the encoder pulses to get roughly square pixels. |
'external_trigger' |
'true', 'false' |
string |
Unsupported query. |
'field' |
'<field>' |
string |
Unsupported query. |
'generic' |
<integer> |
integer |
Unsupported query. |
'grab_timeout' |
1000::360000 |
integer |
Per grab abort timeout. |
'horizontal_resolution' |
<integer> |
integer |
Horizontal resolution dependent on MAS configuration sensors, low = 0, medium = 1, high = 2. |
'illumination_time_fixed_lamp' |
1::20 |
integer |
The number of sensor lines the shutter is on. |
'illumination_time_led_bar' |
1::512 |
integer |
The flash duration in system units. |
'image_height' |
1::8192 |
integer |
The height or number of scan lines of an image. |
'image_width' |
<integer> |
integer |
Current image width. |
'input_changed_handle' |
'<input_changed_handle>' |
string |
Input changed event handle name. |
'line_in' |
<integer> |
integer |
Unsupported query. |
'max_line_rate' |
200::1250 |
integer |
The maximum line scan frequency, if this is too high transfer of the imagedata is incomplete. |
'measurement_elevation_mm' |
0::50 |
integer |
Elevation height of the interesting objects above the conveyor plane, determines the overlap. |
'name' |
'Slink' |
string |
Name of the HALCON interface. |
'port' |
<integer> |
integer |
Unsupported query. |
'revision' |
'<revision>' |
string |
Gets the current revision. |
'start_column' |
<integer> |
integer |
Unsupported query. |
'start_grab_marker_output' |
'No marker', 'Bit 3', 'Bit 2', 'Bit 1', 'Bit 0' |
string |
To synchronize an output can be toggled at the start of a grab sequence. |
'start_row' |
<integer> |
integer |
Unsupported query. |
'transfer_end_handle' |
'<transfer_end_handle>' |
string |
Transfer end event handle name. |
'use_encoder' |
'true', 'false' |
string |
Use the encoder or the internal timer. |
'use_fixed_lamps_no_flash' |
'true', 'false' |
string |
The illumination is fixed light source else a flashing led bar is used. |
'vertical_resolution' |
<integer> |
integer |
Unsupported query. |
Not supported by this interface.
Not supported by this interface.
Not supported by this interface.
All actually supported callback types of a specific image acquisition
device can be queried by calling get_framegrabber_param with the
parameter 'available_callback_types'. Once the callback is registered,
on every occurrence of the underlying event (e.g., the notification
that the exposure has finished) the specified callback function will be
called. If the callback function is set to NULL, the corresponding
callback will be unregistered.
The signature of the callback function is
Herror (__stdcall *HAcqCallback)(void *AcqHandle, void *Context, void *UserContext)
and uses the following parameters:
- AcqHandle
Acquisition handle of the corresponding image acquisition
instance.
- Context
Optional context data of the specific callback.
- UserContext
User context as set via set_framegrabber_callback.
Using user-callback functions
Note that the execution time of a user-specific callback function should
always be as short as possible since during the execution of a callback
function the handling of further internal callbacks might be blocked.
This can be achieved by removing the actual processing from the
user-specific callback function to a separate thread that is controlled
via signals or events.
grab_image starts a new synchronous grab. See also
grab_image. Note that
the interface converts the image from the device to the desired image format
specified by the parameters 'image_width', 'image_height', 'start_row',
'start_column', 'bits_per_channel', and 'color_space'.
grab_image_async returns an image and starts the next asynchronous grab. See also
grab_image_async.
Note that
the interface converts the image from the device to the desired image format
specified by the parameters 'image_width', 'image_height', 'start_row',
'start_column', 'bits_per_channel', and 'color_space'.
Not supported by this interface.
Not supported by this interface.
HDevelop Examples
For this interface there are the following examples available:
- slink_simple.hdev -
A simple example to show the usage of the interface.
- slink_parameters.hdev -
Lists all parameters of a device.
Release Notes
- Revision 13.0.1 (Oct 28, 2016):
- HALCON 13 version of the interface.
- Revision 6.2 (Jun 29, 2016):
- info_framegrabbers might have crashed when querying 'info_boards'
and the Slink SDK was not installed. This problem has been fixed.
- Revision 6.1 (Nov 4, 2015):
- Added Windows 10 support.
- Revision 6.0 (Aug 26, 2015):