Interface Documentation
ADLINK-EOS I/O Interface for the onboard digital I/O device of an ADLINK EOS-1300 vision system
Interface: | ADLINK-EOS |
Revision: | 20.11.4 |
Date: | 2023-08-01 |
- General
- System Requirements
- Installation
- Features
- Limitations
- Operator control_io_interface
- Operator query_io_interface
- Operator open_io_device
- Operator control_io_device
- Operator set_io_device_param
- Operator get_io_device_param
- Operator query_io_device
- Operator open_io_channel
- Operator control_io_channel
- Operator set_io_channel_param
- Operator get_io_channel_param
- Operator read_io_channel
- Operator write_io_channel
- Operator close_io_channel
- Operator close_io_device
- HDevelop Examples
- Release Notes
General
This page provides the documentation of the HALCON ADLINK-EOS interface for accessing the onboard Digital I/O device of an
ADLINK EOS-1300 vision system. Only interface specific
parameters and features are described here. For general information of the
operators for I/O interfaces please have a look at the HALCON Operator
Reference.
Registered customers can download the latest revision of this interface from the MVTec WWW server.
Registered customers can download the latest revision of this interface from the MVTec WWW server.
System Requirements
- ADLINK EOS-1300 vision system with Windows 7 (32-bit) or newer that is also supported by the vendor-specific SDK, also WoW64 (using 32-bit HALCON on 64-bit Windows).
- Installed ADLINK-EOS SDK with version 1.1.1.0926 (or higher).
- Windows: HALCON I/O interface hioADLINK-EOS.dll
or hioADLINK-EOSxl.dll, respectively. If you have properly
installed the interface, all these DLLs should reside in
bin\%HALCONARCH% within the HALCON base directory
%HALCONROOT% you have chosen during the installation of HALCON.
Installation
Only when installing or updating the interface manually follow these steps:
- Windows: Extract the archive containing the interface files to the HALCON base directory %HALCONROOT% (Note: Administrator privileges may be required for this step). Additionally, you have to move the interface examples to the directory %HALCONEXAMPLES% manually.
Features
- Opening and using of multiple ADLINK-EOS I/O channels.
- Variable debouncing filter for digital input channels.
- Callbacks using HALCON message queues for digital input channels.
Limitations
- No support of the encoder channels.
- No support for configuring channels as trigger channels.
Operator control_io_interface
Not supported by this interface.
Operator query_io_interface
query_io_interface(::IOInterfaceName, Query:Result)
Queries information about the specified I/O device interface.
Parameter | Values | Type | Description |
---|---|---|---|
IOInterfaceName | 'ADLINK-EOS' | string | HALCON I/O interface name. |
Query | string | Parameter name of the query. | |
'io_device_info' | ['device:<device> | model:<device model> | status:<device status>'] | string | Returns a list of available devices with additional information about the model and device status ('available', 'busy', 'unknown'). |
'io_device_names' | '<name>' | string | Returns a list of available devices. |
'param_name' | '<parameter>'[,'<parameter>'...] | string | Returns the possible parameter names. |
'revision' | '<version>.<revision>.<build>' | string | Revision number of the interface. |
Result | integer, real, string | List of result values (according to Query). |
Operator open_io_device
open_io_device(::IOInterfaceName, IODeviceName, GenParamName, GenParamValue:IODeviceHandle)
Open and configure an I/O device.
Parameter | Values | Default | Type | Description |
---|---|---|---|---|
IOInterfaceName | 'ADLINK-EOS' | [] | string | HALCON I/O interface name. |
IODeviceName | [] | string | I/O device name. | |
GenParamName | [] | string | Dynamic parameter names. | |
GenParamValue | [] | integer, real, string | Dynamic parameter values. | |
IODeviceHandle | handle | Handle of the opened I/O device. |
Operator control_io_device
Not supported by this interface.
Operator set_io_device_param
Set the device parameters. Currently, no parameters are defined.
Operator get_io_device_param
get_io_device_param(::IODeviceHandle, GenParamName:GenParamValue)
Query settings of an I/O device instance.
There may exist additional parameter attributes, which can be accessed as 'ParamNames.AttributeName'. The following standard attributes may be available:
There may exist additional parameter attributes, which can be accessed as 'ParamNames.AttributeName'. The following standard attributes may be available:
- '.access': This attribute provides the access permissions of the corresponding parameter as a string. Possible values are 'ro' (read-only), 'wo' (write-only), 'rw' (read/write), 'na' (unavailable, perhaps due to insufficient access rights), and 'ni' (unavailable, not defined for this device or channel).
- '.category': This attribute provides the category of the corresponding parameter as a string. 'I/O interface' for all pre-defined I/O interface parameters.
- '.default': This attribute provides the default value of the corresponding parameter.
- '.description': This attribute provides the description of the corresponding parameter as a string.
- '.displayname': This attribute provides the displayname of the corresponding parameter as a string.
- '.range': This attribute provides the minimum and maximum, (and the step width, if applicable) for the corresponding integer or float parameter as a tuple with 2 (or 3) elements.
- '.representation': This attribute provides how the value of the parameter should be displayed in a GUI: 'ip address', 'hex', ...
- '.tooltip': This attribute provides the tool-tip of the corresponding parameter as a string.
- '.type': This attribute provides the HALCON value type (integer, real, or string) of the corresponding parameter as a string.
- '.values': This attribute provides the valid value list for the corresponding parameter as a tuple.
- '.visibility': This attribute provides the visibility of the corresponding parameter as a string. Possible values are 'common', 'extended', and 'dangerous'.
- '.unit': This attribute provides the units of the corresponding parameter as a string. For example: 'ns', 'us' and 'ms', or 'mm', 'cm', 'dm' and 'm'.
Parameter | Values | Type | Description |
---|---|---|---|
IODeviceHandle | handle | Handle of the opened I/O device. | |
GenParamName | string | Parameter names. | |
'io_device_name' | '<name>' | string | Returns the name of the device. |
'param_name' | '<parameter>'[,'<parameter>'...] | string | Returns the possible parameter names. |
GenParamValue | integer, real, string, handle | Parameter values. |
Operator query_io_device
query_io_device(::IODeviceHandle, IOChannelName, Query:Result)
Query information about channels of the specified I/O device.
Parameter | Values | Type | Description |
---|---|---|---|
IODeviceHandle | handle | Handle of the opened I/O device. | |
IOChannelName | string | Channel names to query. | |
Query | string | Name of the query. | |
'channel_type' | 'digital_input', 'digital_output' | string | Returns the type of a channel. |
'io_channel_names' | '<name>' | string | Returns a list of channels provided by the device, e.g., 'di_0.2' describes input port channel 2 on port 0. To list only the channels of a specific type, use the special form io_channel_names.<channel_type> (for a list of valid channel types, see the description of the channel_type parameter). |
'param_name' | '<parameter>'[,'<parameter>'...] | string | Returns the possible parameter names. |
'value.range' | [<min>,<max>,<step>] | string | Returns the possible range of the used I/O channel name parameter. |
Result | integer, real, string | List of values (according to Query). |
Operator open_io_channel
open_io_channel(::IODeviceHandle, IOChannelName, GenParamName, GenParamValue:IOChannelHandle)
Open and configure I/O channels.
Parameter | Values | Default | Type | Description |
---|---|---|---|---|
IODeviceHandle | handle | Handle of the opened I/O device. | ||
IOChannelName | string | HALCON I/O channel names of the specified device. | ||
GenParamName | [] | string | Parameter names. | |
GenParamValue | [] | integer, real, string | Parameter values. | |
IOChannelHandle | handle | Handles of the opened I/O channel. |
Operator control_io_channel
Not supported by this interface.
Operator set_io_channel_param
set_io_channel_param(::IOChannelHandle, GenParamName, GenParamValue:)
Set specific parameters of I/O channels.
Parameter | Values | Default | Type | Description |
---|---|---|---|---|
IOChannelHandle | handle | Handles of the opened I/O channels. | ||
GenParamName | [] | string | Parameter names. | |
'cos_message_queue' | 0 | handle | When the value of the input_channel changes, a message is sent to the message queue. To disable the sending of messages, set this parameter to 0. | |
'cos_polarity' | ''high'', ''low'', ''both'' | ''high'' | string | Defines for which change of state of the channel a message is sent to the message queue. |
'input_debouncing_filter' | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 | integer | The digital input channels are equiped with a debouncing filter. This paremeter controls the filter time of this filter. The values correspond to the following times (in ms): 0: disabled 1: 0.82 2: 1.64 3: 3.28 4: 6.55 5: 13.10 6: 26.20 7: 52.43 8: 104.85 9: 209.72 |
|
GenParamValue | [] | integer, real, string, handle | Parameter values to set. |
Operator get_io_channel_param
get_io_channel_param(::IOChannelHandle, GenParamName:GenParamValue)
Query specific parameters of I/O channels.
There may exist additional parameter attributes, which can be accessed as 'ParamNames.AttributeName'. The following standard attributes may be available:
There may exist additional parameter attributes, which can be accessed as 'ParamNames.AttributeName'. The following standard attributes may be available:
- '.access': This attribute provides the access permissions of the corresponding parameter as a string. Possible values are 'ro' (read-only), 'wo' (write-only), 'rw' (read/write), 'na' (unavailable, perhaps due to insufficient access rights), and 'ni' (unavailable, not defined for this device or channel).
- '.category': This attribute provides the category of the corresponding parameter as a string. 'I/O interface' for all pre-defined I/O interface parameters.
- '.default': This attribute provides the default value of the corresponding parameter.
- '.description': This attribute provides the description of the corresponding parameter as a string.
- '.displayname': This attribute provides the displayname of the corresponding parameter as a string.
- '.range': This attribute provides the minimum and maximum, (and the step width, if applicable) for the corresponding integer or float parameter as a tuple with 2 (or 3) elements.
- '.representation': This attribute provides how the value of the parameter should be displayed in a GUI: 'ip address', 'hex', ...
- '.tooltip': This attribute provides the tool-tip of the corresponding parameter as a string.
- '.type': This attribute provides the HALCON value type (integer, real, or string) of the corresponding parameter as a string.
- '.values': This attribute provides the valid value list for the corresponding parameter as a tuple.
- '.visibility': This attribute provides the visibility of the corresponding parameter as a string. Possible values are 'common', 'extended', and 'dangerous'.
- '.unit': This attribute provides the units of the corresponding parameter as a string. For example: 'ns', 'us' and 'ms', or 'mm', 'cm', 'dm' and 'm'.
Parameter | Values | Type | Description |
---|---|---|---|
IOChannelHandle | handle | Handles of the opened I/O channels. | |
GenParamName | string | Parameter names. | |
'channel_type' | 'digital_input', 'digital_output' | string | Returns the type of a channel. |
'cos_message_queue' | handle | When the value of the input_channel changes, a message is sent to the message queue. To disable the sending of messages, set this parameter to 0. | |
'cos_polarity' | ''high'', ''low'', ''both'' | string | Defines for which change of state of the channel a message is sent to the message queue. |
'input_debouncing_filter' | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 | integer | The digital input channels are equiped with a debouncing filter. This paremeter controls the filter time of this filter. The values correspond to the following times (in ms): 0: disabled 1: 0.82 2: 1.64 3: 3.28 4: 6.55 5: 13.10 6: 26.20 7: 52.43 8: 104.85 9: 209.72 |
'io_channel_name' | '<name>' | string | Returns the name of the channel. |
'param_name' | '<parameter>'[,'<parameter>'...] | string | Returns the possible parameter names. |
GenParamValue | integer, real, string, handle | Parameter values. |
Operator read_io_channel
read_io_channel(::IOChannelHandle:Value, Status)
Read a value from the specific I/O channel or from a port.
Parameter | Values | Type | Description |
---|---|---|---|
IOChannelHandle | handle | Handles of the opened I/O channels. | |
Value | integer, real, string, handle | Read value. | |
Status | integer | Status of read value. A status of '0' indicates success, while any other value indicates an error condition. |
Operator write_io_channel
write_io_channel(::IOChannelHandle, Value:Status)
Writes a value to the specific I/O channel or to a port.
Parameter | Values | Type | Description |
---|---|---|---|
IOChannelHandle | handle | Handles of the opened I/O channels. | |
Value | integer, real, string, handle | Write values. | |
Status | integer | Status of written values. A status of '0' indicates success, while any other value indicates an error condition. |
Operator close_io_channel
close_io_channel(::IOChannelHandle:)
Close I/O channels.
Parameter | Type | Description |
---|---|---|
IOChannelHandle | handle | Handles of the opened I/O channels. |
Operator close_io_device
close_io_device(::IODeviceHandle:)
Close the specified I/O device.
Parameter | Type | Description |
---|---|---|
IODeviceHandle | handle | Handle of the opened I/O device. |
Queries the requested information from the specified I/O channels. The parameter 'ParameterNode' is not used by this interface.
HDevelop Examples
For this interface the following examples are available:
- adlink-eos_digital_read.hdev - Example to show how to read several parameters and values.
- adlink-eos_digital_write.hdev - Example to show how to write several parameters and values.
- adlink-eos_event_based_read.hdev - Example to show how to use a message queue to asynchronously react to changes of the input channels.
Release Notes
- Revision 20.11.4 (Aug 1, 2023):
- The distribution package of this interface now contains files providing meta information for the HDevelop example browser.
- Revision 13.0.3 (Nov 28, 2017):
- The technical dependency from the HALCON Library has been removed.
- If the operator get_io_channel_param was called with 'param_name' the wrong number of values was returned. This problem has been fixed.
- Added 'param_name' implementation for operator query_io_interface and query_io_device.
- The operator query_io_device with the parameter 'channel_type' returned with no error if the IOChannelName was not specified. This problem has been fixed.
- If the operator query_io_device was called with 'value.range' and the IOChannelName was not specified the error WIPV2 instead of WIPN2 was returned. This problem has been fixed.
- Revision 13.0.2 (Apr 27, 2017):
- The format of the messages sent when the value of a registered digital input channel changes has been extended.
- Revision 13.0.1 (Apr 3, 2017):
- First official release.