The driver provides digital and analog values of input/output
modules of DataLab IO4 and DataLab IO1 devices to the Control Web
application or to any application capable to communicate with
Active X components.
Contents of section: - Connecting multiple DataLab IO
devices to single computer
- Driver exceptions
- Driver status channel
- Driver parameter file
- Section [device]
- Module sections [module_x]
- Channels and modes of individual module types
- Digital input modules DI1 and DI2
- Digital counter module CNT1
- Incremental counter module CNT2
- Digital output modules DO1, DO2 and DO3
- Analog input module AI1
- Analog input module AI2
- Analog input module AI3
- Analog output module AO1
- Combined analog input and digital input/output module
AD1
- Combined analog input/output and digital input/output
module AD2
- Combined analog input/output module AIO1
- Module for Resistive Temperature Detectors RTD1
- Mode and control channel usage
- Driver-specific error codes
- Module positions and device slots
- Driver configuration in the Control Web
development environment
- DataLab IO system driver
- Operating system support
- History of function enhancements
Channel data types (either numbers representing analog values or
two-state logical values) and directions (either inputs or outputs)
are defined by the module types plugged to individual slots of the
particular unit. It is necessary to define used module types in the
driver parameter file to enable application
development. The driver creates a set of channels of appropriate type
and direction for each module according to module type.
Channel numbers associated to used modules are freely selectable,
but always must create a continuous range. So it is possible to choose
only the number of the first channel, other channels are numbered
automatically up to the total number of channels available in the
module. Channel numbers assigned to individual modules cannot
overlap.
If the particular module provides both input and output channels,
channel numbers can be assigned independently for both channel groups
—number of the first input channel is defined
independently on the number of the first output channel.
If the module type plugged to device slot does not correspond to
the module type define in the parameter file, the driver detects it
and any attempt to read or write to channel of the particular module
causes error (see chapter Driver specific error
codes).
No other configuration (e.g. unit addressing, communication speed,
parity, handshake, stop-bits settings etc.) is required due to the USB
interface used in the DataLab IO units. The
system works in the pure Plug-and-Play manner.
The DataLab IO driver for Control Web relies on the DataLab IO system
driver (see chapter DataLab IO system driver). It is not possible to
communicate with the device over USB without properly installed system
driver.
Connecting multiple DataLab IO
devices to single computer
It is possible to connect multiple DataLab IO devices to single computer, be it directly to
USB ports available on the computer I/O panel or through the
USB hub. The operating system assigns unique name to every
connected USB device. The name is rather complex string derived
from the device driver GUID, USB hub identifiers, USB port number
on the particular hub etc. Simply put, these identifiers are
intended for distinguishing USB devices within operating system,
not to be used by computer users.
But if the application communicates with multiple
DataLab IO devices, it is necessary to
distinguish them—the concrete signal wired
to concrete terminal port of the concrete module must be properly
identified in the application. The device serial number is used
identify devices. The serial number is always printed on the label
on device case and is necessary to write it as parameter id
of section [device] in driver
parameter file. It is necessary to use one driver instance
for every DataLab IO unit. One driver
instance (with corresponding one parameter file) cannot handle
multiple units at once.
Warning: It is necessary to define the id
parameter not only when single application uses multiple devices,
but always when multiple DataLab IO
devices are connected to one computer. If the id
parameter is not defined, the driver uses the first device it
finds.
Sometimes it can be necessary to obtain device identifier in
running application. The driver offers special input channel, from
which the device identifier can be read (its number is defined by
the parameter id_channel of section [device]
in the parameter file).
Driver exceptions
The driver generates exceptions always when its state changes.
The application (the virtual instrument within application) can
handle these exceptions (virtual instrument is activated when the
driver exception occurs if its parameter driver_exception
contains particular driver name). The exception handling procedure
can read the driver status channel to determine device state. An
example of the indicator instrument, which handles
DataLab IO driver exception and switches
on or off according to the device state is in the chapter Driver status channel.
Driver status channel
The status channel (its number is defined by the parameter
status_channel of section [device] in
the parameter file) provides the
DataLab IO device status information.
Currently only one bit number 0 is defined—it represents the connected status (that
means if the device is connected to the USB port and properly
powered). If the DataLab IO device is
unplugged (or without power in the case of self-powered devices),
the status channel is the only channel which can be read without
error. An attempt to read any other channel will generate error
1.
Status channel value should be interpreted as bit mask. It is
always necessary to check only the particular bit of interest.
Undocumented bits represents other states and their meaning can
change in different driver versions. It is possible to use
function bitget or operator and to
extracting just one bit from the number.
The following example demonstrates how to read DataLab IO connected state and how this state is
represented by indicator instrument. This example
assumes that there is a parameter status_channel = 99
in the [device] section in parameter file.
driver
datalab : 'dldrv.dll', 'DataLab USB test Analog In.dmf', 'DataLab USB test Analog In.par';
end_driver;
data
channel {driver = datalab; direction = input};
...
dlStatus : longcard {driver_index = 99};
end_channel;
...
end_data;
instrument
indicator ConnectionStatus;
driver_exception = datalab;
...
procedure OnActivate( ByTimer, ByInstrument, ByDriver, ByData : boolean );
begin
if ByDriver then
(* mask bit 0 by logical and with mask 1 *)
SetValue( dlStatus & 1 <> 0 );
(* it is possible get the bit using bitget function, the second parameter is bit index, not mask
SetValue( bitget( dlStatus, 0 ) <> 0 );
*)
end;
end_procedure;
...
end_indicator;
...
end_instrument;
Driver parameter file
Driver parameter file is an ordinary text file and can be
edited by any text editor (e.g. Control Web
Editor or Notepad). It has very simple
structure following '.INI' file conventions.
Section [device]
If there are multiple DataLab IO
units connected to one computer, it is necessary to specify
for which unit is the particular parameter file intended. The
parameter id of section [device]
defines the particular unit. Parameter value is a number or
list of numbers separated by commas. If the parameter is
present, the driver instance (with this parameter file) will
work only with the DataLab IO of the
serial number defined as id. The syntax of
parameter is id = number,number,..,number. If
there is only one device connected to the computer, this
parameter is optional and can be omitted with the whole [device]
section (if no other parameter of [device]
section is used, of course).
Hint: The number list can be used when the DataLab IO device should be replaced by another
device without stopping of the application and editing the
parameter file. The list then should contain the serial
numbers of both primary and the backup devices. The number of
devices in the list is not limited.
If the status channel is required by the application, its
number must be defined by the parameter status_channel
in the [device] section. If the parameter file
defines this channel, it is necessary to define this number in
'.DMF' file as input channel of type longcard.
The status channel is described in the Driver status channel chapter.
Also the channel returning DataLab IO identifier number can be defined in the
[device] section. The identifier channel number
must be defined by the parameter id_channel. If
the parameter file defines this channel, it is necessary to
define this number in '.DMF' file as input channel
of type longcard.
It is also possible to define logical parameter reset_outputs
in the [device] section. If the parameter is true
(reset_outputs = true), all output
channels are reset to their initial state (the sate in which
channels are when the device is powered on) when the
application is terminated or when the host PC (or connection
to host PC) fails.
Module sections [module_x]
Every I/O module, plugged into the device,
must have a section in the parameter file named according to
the device slot (see chapter Module
positions and device slots). Sections names are in
square brackets : [module_a] to [module_d].
There are two mandatory parameters in each section: module_type
and first_channel. Other parameters (control_channel
and mode) are optional.
module_type defines module type:
DI1, DI2—8 logical inputs module. Both modules are
compatible from the software point of view so both
identifiers can be used. The drive also accepts the L
and H variants of module identifiers (DI1L,
DI1H, etc.), but their usage is not
recommended.
DO1, DO2, DO3—8 logical outputs module. All modules are
compatible from the software point of view so any
identifier can be used.
AI1—8 16-bit
analog inputs module. The AI1 module is discontinued and
the driver supports it only to maintain backward
compatibility.
AI2—8 16-bit
analog inputs module. The AI2 module replaced the AI1
module. Although it also provides 8 16-bit inputs, the
new module is faster and has better capabilities (e.g.
the input range can be defined independently for each
channel) so it is different module from the driver point
of view.
AI3—enhanced
AI2 module with 8 16-bit analog inputs. The analog part
of this module is optimized compared to AI2 module, so
the AI3 module provides lower noise and better
precision. Number of input ranges was extended from 4
bipolar modes of AI2 module to 7 bipolar and 7 unipolar
ranges.
AO1—8 12-bit
analog outputs module.
AD1—module
combines 4 16-bit analog inputs (with input ranges
equivalent to the AI3 module) with 4 digital
inputs/outputs. The digital channel direction as well as
the input resistance can be chosen by the jumpers on the
module board.
AD2—module
combines 4 16-bit analog inputs (with input ranges
equivalent to the AI3 module), two analog outputs with
8-bits resolution and 2 digital inputs/outputs. The
digital channel direction as well as the input
resistance can be chosen by the jumpers on the module
board.
CNT1—4
counter inputs module.
CNT2—1
incremental counter module.
RTD1—module
contains 4 inputs for Resistive Temperature Detectors.
It is possible to connect various Pt100, Pt1000 and
Ni1000 RTDs with different Temperature Coefficient of
Resistance (TCR).
first_input_channel and first_output_channel
define number of the first channel of the respective
direction assigned to the module. The following channels are
numbered with increasing numbers up to maximal number of
channels provided by the particular module. It is possible
to use keyword first_channel instead of first_input_channel
or first_output_channel providing the
particular module has channels of one direction
only.
control_channel defines number of the
module control channel (control channel functionality
depends on the module type).
mode defines module working mode. The
meaning of the mode is different for various modules and
mode can be meaningless for some modules. Some modules
enable definition of mode independently for each channel
using keywords mode1, mode2,
etc.
unit defines the representation of data
read from or written to particular module channels. Unit has
meaning only for analog modules, digital modules use simple
boolean values or unit-less count. Default unit is ADU
(Analog/Digital Unit), which represents native counts of
the A/D or D/A converter used in the particular module.
But module can also use physical units: Unit can be defined for all channels of the module
or independently for each channel using the keywords unit1,
unit2 etc. Hint: Unit definition for the
particular channel has precedence over the definition for
the whole module. If for instance the all channels of the
AO1 module are configured as voltage output and only the
first two channel are configured as current outputs, units
can be defined as follows: module_type = AO1
unit = V
unit1 = mA
unit2 = mA
DataLab IO1 has only one module
slot, which corresponds to position A. The parameter file for
DataLab IO1 should contain only one
module section [module_a].
Parameter file example:
[device]
id = 1234567
status_channel = 1
id_channel = 2
reset_outputs = true
[module_a]
module_type = DI1
first_channel = 100
mode1 = AC
mode2 = AC
[module_b]
module_type = DO2
first_channel = 108
control_channel = 120
[module_c]
module_type = AO1
first_channel = 200
unit = V
unit1 = A
unit2 = A
unit3 = A
unit4 = A
[module_d]
module_type = CNT1
first_input_channel = 300
first_output_channel = 310
control_channel = 320
mode1 = enable
mode2 = enable
mode3 = enable
mode4 = enable
Channels and modes of individual module types
Every module (depending on its module type) provides channels
for reading or writing of values. Some module types offer control
channel and/or mode. Channel types, directions, control channel
functions and modes for various module types are as follows:
Digital input modules DI1 and DI2
Module type designation in parameter file: DI1
or DI2.
Data channels: 8 input channels of boolean
type.
Control channel: bidirectional channel of shortcard
type:
Control channel provides values of all 8 inputs
as one number when read—every
input defines one bit in the read number.
Writing to control channel defines mode for
individual inputs (see mode description).
Mode: digital inputs can work with both positive and
negative signal polarity, so they are capable to detect not
only DC but also AC signals. If the input is configured to
detect DC signal, its logical value represents current level
of input voltage. But the logical value determination is
more complex in the AC mode:
Inputs are sampled at 1 kHz.
If the voltage of any polarity occurs on the
terminal connector, the logical 1 (true) value is
returned from the time of the first sample, which
detects it. This means logical 0 (false) can be read up
to 1 ms from the time of the voltage
occurrence.
If the voltage disappears from the terminal
connector, logical 1 (true) is read for the following
10 ms. When no one sample indicates voltage on the
input for 10 ms, the read value becomes logical 0
(false) again. The 10 ms delay corresponds to one
half-wave of 50 Hz AC signal, which means zero
crossings of the 50 Hz or 60 Hz signal do not
cause switch to 0.
The sampling mode can be defined individually for
each input. Numerical value of the mode parameter (or
control channel write anytime at application runtime)
corresponds to the bit mask created from 0s and
1s for each input channel. If the particular bit is 1
then the input will work in AC mode, 0 means the DC mode
will be used. For instance the value 0 means all inputs will
work in DC mode, 255 (or 0FFH) means all inputs will work in
AC mode and 15 (or 0FH) sets channels 0 to 3 to AC mode and
channels 4 to 7 to DC mode. Mode can be also defined
by keywords DC and AC. Mode for
each channel must be defined individually in such case.
Because the DC mode is default, only channels which should
work in AC mode must be mentioned, for instance: mode1 = AC
mode5 = AC If the mode is not defined, the 0 (all inputs in DC
mode) is used by default.
Digital counter module CNT1
The module contains 4 counters with 24 bit range
(numeric range of every counter is 0 to
16,777,215). First two counters have more
configuration options compared to the second pair of
counters (last two counters are limited to simple counting
with the possibility to preset their value). Counter modes
(e.g. counting enabled/disabled, logical levels etc.) are
defined by setting module mode or by writing to module
configuration channel.
Module type designation in parameter file: CNT1.
Output channels: 7 channels of longcard
type: No. 0—Preset0:
sets first counter value. Write to PresetX channel
overwrites the value of counter X. The counter then
continues incrementing the written value. Writing value 0 to
channel PresetX zeros the counter. It is also
possible to automatically zero counter upon its read (see
the description of counter modes). No. 1—Preset1: sets second counter
value. No. 2—Preset2:
sets third counter value. No. 3—Preset3: sets fourth counter
value. No. 4—Compare0: first counter compare
value. Surpassing of the CompareX value can,
depending on the counter mode, cause setting of the counter
X alarm output. No. 5—Compare1: second counter compare
value. No. 6—Config:
counter configuration. Values written to this channel are
described later.
Input channels: 4 channels of longcard
type. No. 0—Counter0:
first counter value. Reading of the CounterX
channel returns current value of counter X. Read operation
can, depending on the counter mode, zero the counter
X. No. 1—Counter1:
second counter value. No. 2—Counter2: third counter value.
No. 3—Counter3:
fourth counter value.
Control channel: output channel of longcard
type is identical to output channel No. 6: Config.
Mode: numeric value of the mode parameter is the same
as the value written to the Config or control
channel. Mode can be also defined as a list of keywords for
individual channels as described later.
Functionality of the first two counters (counters
number 0 and 1) can be more complex:
When the counter X exceed the value written to the
CompareX channel, the alarm output can be set.
Alarm output logic (if active low or high) can be defined in
the counter X configuration.
Counting can be enabled/disabled by the external
input (gate). Gate logic (if active low or high) can be
defined in the counter X configuration. The inputs of
counters 2 and 3 are used as gate inputs (counter 0 is
enabled by the counter 2 input, counter 1 is enabled by the
counter 3 input).
Counter configuration can be written to the output channel
No. 6 Config, to the control channel (control_channel)
or can be defined as the module mode parameter.
Configuration value is 4B long unsigned integer. Every byte
contains configuration of one counter, the less significant
byte contains configuration of counter 0, the most significant
byte contains configuration of counter 3. Every byte meaning
is defined by the bitmask according to the following
table:
Bit |
Counter 0 |
Counter 1 |
Counter 2 |
Counter 3 |
Meaning |
0 |
• |
• |
• |
• |
Counting enabled |
1 |
• |
• |
• |
• |
Counting of falling edges |
2 |
• |
• |
• |
• |
Zero counter upon read |
3 |
• |
• |
× |
× |
Test the gate input |
4 |
• |
• |
× |
× |
Set the alarm output |
5 |
• |
• |
× |
× |
Gate input is inverted (active low) |
6 |
• |
• |
× |
× |
Alarm output is inverted (active low) |
7 |
× |
× |
× |
× |
Reserved, must be 0 |
Individual counter configuration
Mode can be defined also for every channel
individually:
mode1 = 1001B
mode2 = 1011B
mode3 = 101B
mode4 = 101B
Alternative way to define mode is using a list of
keywords:
enable—Counting
enabled
falling_edge—Counting of falling edges
reset_on_read—Zero counter upon read
test_gate—Test
the gate input
set_alarm—Set
the alarm output
gate_inverted—Gate input is inverted (active low)
alarm_inverted—Alarm output is inverted (active low)
Modes from the previous example can be defined as
follows:
mode1 = enable, test_gate
mode2 = enable, falling_edge, test_gate
mode3 = enable, reset_on_read
mode4 = enable, reset_on_read
Incremental counter module CNT2
The module contains 1 incremental counter 1 with
32-bit range (numerical range is from
-2,147,483,648 to
2,147,483,647). The counter is able to decode
quadrature modulation from position/angle sensors as well as
to work in up/down and step/direction modes. The counter is
also capable to preset counter value and capture value
according to logical inputs and to signal alarm outputs if
the counter value underflows low limit or overflows high
limit.
Module type designation in parameter file: CNT2.
Output channels: 5 channels of longint
type: No. 0 – CounterPreset: sets counter
value. This value is used not only as new counter value
(counter then counts from this value), but it is also stores
to separate register and it will be used for overwriting of
counter value when the external input preset is
signaled (module input and output signals are described in
the DataLab IO device
documentation). No. 1 – CapturePreset: sets
capture register value. Current counter value is copied into
capture register when the external input capture is
signaled (module input and output signals are described in
the DataLab IO device
documentation). Writing to this channel can be used e.g. to
zero this register. No. 2 – CompareLo:
counter low compare value. If the current counter value is
less than this value then the alarm_lo logical
output will be signaled (module input and output signals are
described in the DataLab IO device
documentation). No. 3 – CompareHi: counter
high compare value. If the current counter value is greater
than this value then the alarm_hi logical output
will be signaled (module input and output signals are
described in the DataLab IO device
documentation). No. 4 – Config: counter
configuration. Values written to this channel are described
later.
Input channels: 2 channels of longint
type: No. 0 – Counter: current counter
value. No. 1 – Capture: capture register
value. Either the value written to channel
CapturePreset (if no capture input signal
was detected between writing to CapturePreset an
reading of Capture) or the counter value in the
time of the capture input signaling is returned
through this channel.
Control channel: output channel of longint
type is identical to output channel No. 4:
Config.
Mode: numeric value of the mode parameter is the same
as the value written to the Config or control
channel.
Counter configuration can be written to the output channel
No. 4 Config, to the control channel (control_channel)
or can be defined as the module mode parameter.
Configuration value is 32-bit integer number. Individual bit
meaning is defined in the following table:
Bit |
Meaning |
0 |
alarm_lo output enabled (when counter
underflows CompareLo value) |
1 |
alarm_hi output enabled (when counter
overflows CompareHi value) |
2 |
preset input enabled |
3 |
capture input enabled |
4 |
Invert alarm_lo output (active low) |
5 |
Invert alarm_hi output (active low) |
6 |
Invert preset output (active low) |
7 |
Invert capture output (active low) |
8-9 |
Counter function (functions are described
later) |
10-11 |
Reserved, must be 0 |
12 |
Invert input A (only for functions 01 and
10) |
13 |
Invert input B (only for functions 01 and
10) |
14-31 |
Reserved, must be 0 |
Bits meaning in incremental counter
configuration
The counter is capable to handle three input signal
types, depending on its function. Counter function is
defined by configuration bits 8 and 9 as follows:
00 - quadrature counter: A and
B inputs are used as inputs from positional or
angle sensors using quadrature encoding (every edge causes
counting, phase shift of A and B
inputs determines up or down direction). It is not possible
to invert A and B input signals in
this case.
01 - up/down counter: The
A input causes counter increment, input
B causes counter decrement. Input logic (if the
rising or falling edge is active) is defined by bits 12 and
13 of configuration register.
10 - step/direction counter: The counter is
incremented or decremented by the logical input A.
The direction (whether counter is incremented or
decremented) is defined by the logical input B.
Input logic (if the rising or falling edge is active) is
defined by bits 12 and 13 of configuration
register.
11 - invalid value, reserved for future
use.
Alternative way to define mode is using a list of
keywords:
Counter function is defined by one of the following
three identifiers: quadrature, up_down,
step_direction
enable_alarm_lo—alarm_lo output enabled (when counter
underflows CompareLo value)
enable_alarm_hi—alarm_hi output enabled (when counter
overflows CompareHi value)
enable_preset—preset input enabled
enable_capture—capture input enabled
invert_alarm_lo—Invert alarm_lo output (active
low)
invert_alarm_hi—Invert alarm_hi output (active
low)
invert_preset—Invert preset output (active
low)
invert_capture—Invert capture output (active
low)
invert_a—Invert
input A (only for up_down and step_direction)
invert_b—Invert
input B (only for up_down and step_direction)
Mode from the previous example can be defined as
follows:
mode = step_direction, enable_preset, enable_capture, invert_a, invert_b
Digital output modules DO1, DO2 and DO3
Module type designation in parameter file: DO1,
DO2, DO3.
Data channels: 8 output channels of boolean
type.
Control channel: output channel of shortcard
type sets values of all 8 outputs as one number when
written—every bit is set to
appropriate output.
Mode: N/A.
Analog input module AI1
Module type designation in parameter file: AI1.
Data channels: 8 input channels of real
type.
Control channel: output channel of shortcard
type sets input range—the range
number corresponds to value defined in the mode
parameter.
Mode: number 0 to 3 defines input voltage range,
actual range depends also on module hardware settings and
available ranges are described later.
There are a small array of jumpers on the module
printed circuit board (PCB), associated with every input
channel. Jumper configurations are described in the module
technical documentation. Basically, jumpers define two
settings:
So the actual input range depends on the mode of analog
inputs (defined by the parameter mode in
parameter file and/or by control channel write) and also on
the BIAS jumpers position.
Hint: While the mode can be set for the whole module only
(for all 8 channels), jumpers can be set independently for
each channel. Every channel can be configured to measure
voltage or current and every channel can have input range
multiplied 4 times by BIAS jumpers. It is also clear
that while the jumpers can be set only while the unit is
unplugged fro USB and not powered, the mode can be changed
programmatically. But thanks to Plug and Play features of
DataLab IO it is not necessary to
stop the application—the device can be
unplugged, jumpers can be altered and the plugged
again.
Input voltage ranges of individual modes for both BIAS
jumper positions are:
BIAS |
mode |
Max. voltage between inputs |
Full range |
on |
0 |
+/-20 V |
40 V |
on |
1 |
+/-10 V |
20 V |
on |
2 |
+/-5 V |
10 V |
on |
3 |
+/-2,5 V |
5 V |
off |
0 |
+/-5 V |
10 V |
off |
1 |
+/-2,5 V |
5 V |
off |
2 |
+/-1,25 V |
2,5 V |
off |
3 |
+/-0,625 V |
1,25 V |
Input ranges of analog inputs
The BIAS column represents BIAS jumper positions on the
module PCB.
Values Max. voltage between inputs a
Full range needs a brief explanation:
No one terminal connector pin is grounded so it does
not matter if the input voltage is -20 V and 0V,
-10 V and +10 V or 0 V and
+20 V. This is why the maximal voltage between inputs
is defined instead simply symmetrical difference. The
maximum difference causes reading of the maximum number from
the ADC 32767 (215 - 1).
Inputs are fully bipolar so when we switch the input
polarity, negative numbers will be read. After connecting
0 V and -20 V number -32768 (-215) will be read. Although the maximal voltage between
pins is 20 V, both polarities creates full input range
40 V.
Hint: Ranges 10 V and 5 V can be
measured when BIAS is on (modes 2 and 3) or off (modes 0 and
1). Due to ADC internal workings and signal filtration it is
always better to use highest input ranges. It is recommended
to configure BIAS off and use modes 0 and 1 for these
ranges.
Analog input module AI2
Module type designation in parameter file: AI2.
Input channels: 8 channels of real type
for analog inputs.
Output channels: 8 channels of shortcard
type for setting of input range of related channel. Value 0
turns off measuring of the particular input.
Range |
Voltage input |
Current input |
0 |
input inactive |
input inactive |
1 |
+/-10 V |
N/A |
2 |
+/-5 V |
N/A |
3 |
+/-2.5 V |
+/-20.8 mA |
4 |
+/-1.25 V |
+/-10.4 mA |
Input ranges of AI2 analog input
module The default input range is +/-10 V.
Control channel: output channel of longcard
type sets input range for all 8 inputs. Every input is
represented by 4 bits, so 8 channels occupy 32 bits. Writing
to control channel the replaces eight writes to all output
channels.
Mode: number representing input range for all 8
inputs, every 4 bits define range for one input channel (the
value has the same meaning as value written to control
channel). Mode can be also
defined individually for every channel using keywords mode1,
mode2, etc. mode1 = 2;
mode2 = 4; Mode definition and writing to control channel upon
application startup are equivalent. If the input ranges are
not changed during application runtime mode definition is a
better way. If the ranges are defined in the program, mode
definition is superfluous.
Unit: module supports values in three units—native A/D converter counts (ADUs), volts or
millivolts and amperes or milliamperes. Preferred units are
defined using one of the predefined keywords: ADU,
V, mV, A or
mA. Units can be defined for all output
channels (using key unit) or independently for
each channel (using keys unit1, unit2,
etc.). The default unit is ADU. If the ADU unit is
chosen, minimal value (e.g. -10 V) is represented by the number -32768
and maximal value (e.g. 10V) by number 32767. If physical
units are chosen, numbers -10 a nd 10 are directly
read.
There is a jumper on the module PCB associated with every
input channel. Closing the jumper causes a precision
120 Ω resistor is inserted into the input, which
changes voltage input into the current one.
Hint: Input ranges can be defined for every input channel
independently by the application program. But the voltage or
current mode is selected by jumper on the PCB and this cannot
be performed on application runtime.
The AI2 module allows not only input range setting for
individual inputs, but also allows switching each input off.
Skipping of particular input speeds up the sampling frequency
of remaining inputs.
The module is able to sample data at frequency 50 Hz (50 samples per second) on one channel.
If all 8 channels are measured, the sampling speed is
6.25 Hz. If it
is for instance necessary to sample data 10× per second, only 5 channels can be turned
on, remaining 3 channels must be turned off.
It is not necessary to wait for the digital filter to
settle down when only one channel is measured and the input
multiplexer is not switched. The data sampling frequency is
then 200 Hz. But keep on mind
that the A/D converter is not able to pass the step over the
full input range to its output at this speed. If the input
voltage changes e.g. from -10 V to +10 V, the converter needs 4 cycles to
propagate the step to the output. So the sampling frequency is
again 50 Hz.
Analog input module AI3
Module type designation in parameter file: AI3.
Input channels: 8 channels of real type
for analog inputs.
Output channels: 8 channels of cardinal
type for setting of input range of related channel. Values 0
and 8 turns off measuring of the particular
input.
Range |
Voltage input |
Current input |
0 |
input inactive |
input inactive |
1 |
+/-10 V |
N/A |
2 |
+/-5 V |
N/A |
3 |
+/-2 V |
+/-20 mA |
4 |
+/-1 V |
+/-10 mA |
5 |
+/-0.5 V |
+/-5 mA |
6 |
+/-0.2 V |
+/-2 mA |
7 |
+/-0.1 V |
+/-1 mA |
8 |
input inactive |
input inactive |
9 |
0..10 V |
N/A |
10 |
0..5 V |
N/A |
11 |
0..2 V |
0..20 mA |
12 |
0..1 V |
0..10 mA |
13 |
0..0.5 V |
0..5 mA |
14 |
0..0.2 V |
0..2 mA |
15 |
0..0.1 V |
0..1 mA |
Input ranges of AI3 analog input
module The default input range is +/-10 V.
Control channel: output channel of longcard
type sets input range for all 8 inputs. Every input is
represented by 4 bits, so 8 channels occupy 32 bits. Writing
to control channel the replaces eight writes to all output
channels.
Mode: number representing input range for all 8
inputs, every 4 bits define range for one input channel (the
value has the same meaning as value written to control
channel). Mode can be also
defined individually for every channel using keywords mode1,
mode2, etc. mode1 = 2;
mode2 = 4; Mode definition and writing to control channel upon
application startup are equivalent. If the input ranges are
not changed during application runtime mode definition is a
better way. If the ranges are defined in the program, mode
definition is superfluous.
Unit: module supports values in three units—native A/D converter counts (ADUs), volts or
millivolts and amperes or milliamperes. Preferred units are
defined using one of the predefined keywords: ADU,
V, mV, A or
mA. Units can be defined for all output
channels (using key unit) or independently for
each channel (using keys unit1, unit2,
etc.). The default unit is ADU. If the ADU unit is
chosen, minimal value (e.g. -10 V) is represented by the number -32768
and maximal value (e.g. 10V) by number 32767. If physical
units are chosen, numbers -10 a nd 10 are directly
read.
There is a jumper on the module PCB associated with every
input channel. Closing the jumper causes a precision
100 Ω resistor is inserted into the input, which
changes voltage input into the current one.
Hint: Input ranges can be defined for every input channel
independently by the application program. But the voltage or
current mode is selected by jumper on the PCB and this cannot
be performed on application runtime.
The AI3 module allows not only input range setting for
individual inputs, but also allows switching each input off.
Skipping of particular input speeds up the sampling frequency
of remaining inputs.
The module is able to sample data at frequency 50 Hz (50 samples per second) on one channel.
If all 8 channels are measured, the sampling speed is
6.25 Hz. If it
is for instance necessary to sample data 10× per second, only 5 channels can be turned
on, remaining 3 channels must be turned off.
It is not necessary to wait for the digital filter to
settle down when only one channel is measured and the input
multiplexer is not switched. The data sampling frequency is
then 200 Hz. But keep on mind
that the A/D converter is not able to pass the step over the
full input range to its output at this speed. If the input
voltage changes e.g. from -10 V to +10 V, the converter needs 4 cycles to
propagate the step to the output. So the sampling frequency is
again 50 Hz.
Analog output module AO1
Module type designation in parameter file: AO1.
Data channels: 8 output channels of real
type.
Control channel: N/A.
Mode: N/A.
Unit: module supports values in three units—native D/A converter counts (ADUs), volts or
millivolts and amperes or milliamperes. Preferred units are
defined using one of the predefined keywords: ADU,
V, mV, A or
mA. Units can be defined for all output
channels (using key unit) or independently for
each channel (using keys unit1, unit2,
etc.). The default unit is ADU.
Analog output module provides 8 voltage analog outputs with
the range 0 to +10 V. D/A
converter has 12 bit resolution.
Each D/A converter count equals to
2.5 mV output voltage change.
First four of eight outputs can be configured as current
outputs with range from 0 to 20 mA using jumpers on the
module PCB. Due to the high resolution of the DAC the 4 to
20 mA range is implemented by software limitation of 0 to
20 mA range.
Combined analog input and digital input/output module
AD1
Module type designation in parameter file: AD1.
Input channels:
4 channels of real type for every
analog input.
The following 4 channels of boolean
type for every digital output. These channels return
current logical value of digital inputs. The are
intended for reading of DC signals.
Next 4 channels of boolean type
return logical value of digital input evaluated as AC
input. The rules to evaluate true and false of AC signal
are described in the description of digital input modules.
Output channels:
4 channels of cardinal type for
setting of input range of related channel. Values 0 and
8 turns off measuring of the particular
input. Input ranges of analog input channels equal
to the input ranges of the AI3 module. They are
described in detail in the AI3 module
description.
The following 4 channels of boolean
type for every digital output.
Control channel: output channel of longcard
type sets input range for all 4 inputs. Every input is
represented by 4 bits, so 4 channels occupy 16 bits. Writing
to control channel the replaces writes to first four output
channels.
Mode: number representing input range for all 4
inputs, every 4 bits define range for one input channel (the
value has the same meaning as value written to control
channel). Mode can be also
defined individually for every channel using keywords mode1,
mode2, etc. mode1 = 2;
mode2 = 4; Mode definition and writing to control channel upon
application startup are equivalent. If the input ranges are
not changed during application runtime mode definition is a
better way. If the ranges are defined in the program, mode
definition is superfluous.
Unit: module supports values in three units—native A/D converter counts (ADUs), volts or
millivolts and amperes or milliamperes. Preferred units are
defined using one of the predefined keywords: ADU,
V, mV, A or
mA. Units can be defined for all output
channels (using key unit) or independently for
each channel (using keys unit1, unit2,
etc.). The default unit is ADU. If the ADU unit is
chosen, minimal value (e.g. -10 V) is represented by the number -32768
and maximal value (e.g. 10V) by number 32767. If physical
units are chosen, numbers -10 a nd 10 are directly
read.
AD1 module analog inputs equal to the AI3 module inputs.
Choosing voltage or current inputs, switching input ranges,
sampling rate and other characteristics are described in the
AI3 module description. But
because the AD1 module has only 4 analog input channels, the
input sampling rate is 12.5 Hz, not 6.25 Hz as in the case of AI3 module.
Combined analog input/output and digital input/output
module AD2
Module type designation in parameter file: AD2.
Input channels:
4 channels of real type for every
analog input.
The following 2 channels of boolean
type for every digital output. These channels return
current logical value of digital inputs. The are
intended for reading of DC signals.
Next 2 channels of boolean type
return logical value of digital input evaluated as AC
input. The rules to evaluate true and false of AC signal
are described in the description of digital input modules.
Output channels:
4 channels of cardinal type for
setting of input range of related channel. Values 0 and
8 turns off measuring of the particular
input. Input ranges of analog input channels equal
to the input ranges of the AI3 module. They are
described in detail in the AI3 module
description.
The following 2 channels of real
type for analog outputs.
Next 2 channels of boolean type for
every digital output.
Control channel: output channel of longcard
type sets input range for all 4 inputs. Every input is
represented by 4 bits, so 4 channels occupy 16 bits. Writing
to control channel the replaces writes to first four output
channels.
Mode: number representing input range for all 4
inputs, every 4 bits define range for one input channel (the
value has the same meaning as value written to control
channel). Mode can be also
defined individually for every channel using keywords mode1,
mode2, etc. mode1 = 2;
mode2 = 4; Mode definition and writing to control channel upon
application startup are equivalent. If the input ranges are
not changed during application runtime mode definition is a
better way. If the ranges are defined in the program, mode
definition is superfluous.
Unit: module supports values in three units—native A/D converter counts (ADUs), volts or
millivolts and amperes or milliamperes. Preferred units are
defined using one of the predefined keywords: ADU,
V, mV, A or
mA. Units can be defined for all output
channels (using key unit) or independently for
each channel (using keys unit1, unit2,
etc.). The default unit is ADU. If the ADU unit is
chosen, minimal value (e.g. -10 V) is represented by the number -32768
and maximal value (e.g. 10V) by number 32767. If physical
units are chosen, numbers -10 a nd 10 are directly
read.
AD2 module analog inputs equal to the AI3 module inputs.
Choosing voltage or current inputs, switching input ranges,
sampling rate and other characteristics are described in the
AI3 module description. But
because the AD2 module has only 4 analog input channels, the
input sampling rate is 12.5 Hz, not 6.25 Hz as in the case of AI3 module.
Analog outputs can be configured as voltage or current
outputs using jumpers on the module PCB. Voltage output range
is 0 to 10 V, current output
range is 0 to 20 mA. The used D/A converter has
8-bit resolution and one count corresponds to
41.5 mV or
0.083 mA.
Combined analog input/output module AIO1
Module type designation in parameter file: AIO1.
Input channels:
Output channels:
4 channels of cardinal type for
setting of input range of related channel. Values 0 and
8 turns off measuring of the particular
input. Input ranges of analog input channels equal
to the input ranges of the AI3 module. They are
described in detail in the AI3 module
description.
The following 4 channels of real
type for analog outputs.
Control channel: output channel of longcard
type sets input range for all 4 inputs. Every input is
represented by 4 bits, so 4 channels occupy 16 bits. Writing
to control channel the replaces writes to first four output
channels.
Mode: number representing input range for all 4
inputs, every 4 bits define range for one input channel (the
value has the same meaning as value written to control
channel). Mode can be also
defined individually for every channel using keywords mode1,
mode2, etc. mode1 = 2;
mode2 = 4; Mode definition and writing to control channel upon
application startup are equivalent. If the input ranges are
not changed during application runtime mode definition is a
better way. If the ranges are defined in the program, mode
definition is superfluous.
Unit: module supports values in three units—native A/D converter counts (ADUs), volts or
millivolts and amperes or milliamperes. Preferred units are
defined using one of the predefined keywords: ADU,
V, mV, A or
mA. Units can be defined for all output
channels (using key unit) or independently for
each channel (using keys unit1, unit2,
etc.). The default unit is ADU. If the ADU unit is
chosen, minimal value (e.g. -10 V) is represented by the number -32768
and maximal value (e.g. 10V) by number 32767. If physical
units are chosen, numbers -10 a nd 10 are directly
read.
AIO1 module analog inputs equal to the AI3 module inputs.
Choosing voltage or current inputs, switching input ranges,
sampling rate and other characteristics are described in the
AI3 module description. But
because the AIO1 module has only 4 analog input channels, the
input sampling rate is 12.5 Hz, not 6.25 Hz as in the case of AI3 module.
Analog outputs can be configured as voltage or current
outputs using jumpers on the module PCB. Voltage output range
is 0 to 10 V, current output
range is 0 to 20 mA. The used D/A converter has
12-bit resolution and one count corresponds to
2.5 mV or
0.005 mA.
Module for Resistive Temperature Detectors RTD1
Module type designation in parameter file: RTD1.
Input channels: 4 channels of real type
for every input.
Output channels: 4 channels of cardinal
type for setting of input range of related channel. Range
values are bit-oriented and they are constructed according
to the same rules valid for mode parameter described below.
Value 0 switches off particular input. Allowed range values
are stated in the following table.
Detector |
Pt100 |
Temperature range |
Temperature Coefficient of Resistance
(TCR) |
3850 |
3750 |
3911 |
3926 |
–50..+150°C |
1 |
17 (11H) |
33 (21H) |
48 (31H) |
0..+100°C |
2 |
18 (12H) |
34 (22H) |
49 (32H) |
0..+200°C |
3 |
19 (13H) |
35 (23H) |
50 (33H) |
0..+400°C |
4 |
20 (14H) |
36 (24H) |
51 (34H) |
–50..+50°C |
5 |
21 (15H) |
37 (25H) |
52 (35H) |
Detector |
Pt1000 |
Temperature range |
Temperature Coefficient of Resistance
(TCR) |
3850 |
3750 |
3911 |
3926 |
–50..+150°C |
6 |
22 (16H) |
38 (26H) |
53 (36H) |
0..+100°C |
7 |
23 (17H) |
39 (27H) |
54 (37H) |
0..+200°C |
8 |
24 (18H) |
40 (28H) |
55 (38H) |
–50..+50°C |
9 |
25 (19H) |
41 (29H) |
56 (39H) |
Detector |
Ni1000 |
Temperature range |
Temperature Coefficient of Resistance
(TCR) |
5000 |
6180 |
6370 |
6720 |
–50..+150°C |
70 (46H) |
86 (56H) |
102 (66H) |
118 (76H) |
0..+100°C |
71 (47H) |
87 (57H) |
103 (67H) |
119 (77H) |
0..+200°C |
72 (48H) |
88 (58H) |
104 (68H) |
120 (78H) |
–50..+50°C |
73 (49H) |
89 (59H) |
105 (69H) |
121 (79H) |
Input off |
0 |
Ranges for RTD1 module Default value is 1 (Pt100/3850, -50 až
+150°C).
Control channel: output channel of longcard
type sets input range for all 4 inputs. Every input is
represented by 1 byte, so 4 channels occupy 32 bits.
Writing to control channel the replaces writes to all four
output channels.
Mode: number representing input range for all 4
inputs, every byte defines range for one input channel (the
value has the same meaning as value written to control
channel). Particular byte value is bit-oriented and consists
of two groups. Bits 0 to 3 determines one of nine available
resistance ranges. Bits 4 to 6 determines Temperature
Coefficient of Resistance (TCR), which depends on the RTD
type. Bit 7 is not used and must be 0. Bits 0 to 3
meaning:
Bit 0 to 3 |
Resistance range [Ω] |
Temperature range [°C] |
0000 |
input off |
input off |
0001 |
75..160 |
–50..+150°C |
0010 |
91..150 |
0..+100°C |
0011 |
91..180 |
0..+200°C |
0100 |
91..240 |
0..+400°C |
0101 |
75..130 |
–50..+50°C |
0110 |
680..2000 |
–50..+150°C |
0111 |
910..1800 |
0..+100°C |
1000 |
910..2500 |
0..+200°C |
1001 |
680..1300 |
–50..+50°C |
Temperature and resistance ranges Bits 4 to 6 meaning:
Bit 4 to 6 |
TCR [PPM/°C] |
RTD Type |
000 |
3850 |
Pt100/Pt1000 |
001 |
3750 |
Pt100/Pt1000 |
010 |
3911 |
Pt100/Pt1000 |
011 |
3926 |
Pt100/Pt1000 |
100 |
5000 |
Ni1000 |
101 |
6180 |
Ni1000 |
110 |
6370 |
Ni1000 |
111 |
6720 |
Ni1000 |
Temperature Coefficient of Resistance
(TCR) Mode can be also
defined individually for every channel using keywords mode1,
mode2, etc. mode1 = 5
mode2 = 5
mode3 = 56H
mode4 = 56H Mode definition and writing to control channel upon
application startup are equivalent. If the input ranges are
not changed during application runtime mode definition is a
better way. If the ranges are defined in the program, mode
definition is superfluous. Another (and more clear)
method of mode definition is using of predefined keywords.
Mode parameter is the written as follows: mode = <sensor>, <coefficient>, <range> where individual items are:
<sensor>—RTD type. Available values are: Pt100,
Pt1000, Ni1000. The default
value is Pt100.
<coefficient>—Temperature Coefficient of Resistance
(TCR). This coefficient is sometimes marked as α (
α = TCR / 106). Available values: 3850, 3750,
3911, 3926, 5000,
6180, 6370, 6720.
Default value TCR is 3850 PPM/°C.
<range>—temperature range. Allowed ranges are 1 to
5 according to the following table:
Range number |
Temperature range [°C] |
1 |
–50..+150°C |
2 |
0..+100°C |
3 |
0..+200°C |
4 |
0..+400°C |
5 |
–50..+50°C |
Temperature ranges
Unit: module supports values in different
units—native A/D converter counts
(ADUs), Ohms, degrees Celsius, Fahrenheit of Kelvins.
Preferred units are defined using one of the predefined
keywords: ADU, Ohm, C,
F or K. Units can be defined
for all output channels (using key unit) or
independently for each channel (using keys unit1,
unit2, etc.). The default unit is ADU. If
the ADU unit is chosen, minimal value is represented by the
number 0 and maximal value by number 65,535.
The value 0 can also mean short circuit on input or
disconnected detector. Value 65,535 can mean
overflow of the selected temperature range. If physical
units are chosen, numbers in particular units are directly
read.
Hint: Input ranges can be defined for every input channel
independently by the application program.
Inputs are sampled at the same speed as in the case of the
AI3 module. However, sampling speed is not critical in the
case of temperature measurement using RTD.
Mode and control channel usage
The same module configuration can be often defined in two
ways—by writing to control channel or
by setting the mode parameter in the parameter file. The
numerical value is the same in both cases. Writing the control
channel on application startup (e.g. in OnStartup() procedure
of some instrument) has the same effect as defining the mode
parameter in the parameter file.
The driver stores value written to control channel and uses
it as module mode. If the module is disconnected and then
connected again, the module is initialized with the last value
written to the control channel and not with mode value defined
in the parameter file.
Driver-specific error codes
The driver generates the following error
codes:
device unplugged: DataLab IO unit is without power (applicable to
self-powered units only) or the USB cable is unplugged. This
error should not occur if the DataLab IO unit is embedded to DataLab PC computer, because the power and USB cabling
is internal in this case.
wrong module: The module, plugged into the
particular DataLab IO slot, is of
different type that stated in the parameter file. It is usually
easier to update the parameter file than to swap modules in the
device. If the parameter file was created automatically by the
driver configuration tool, this error should not occur.
module does not support control channel read:
Application attempted to read control channel of module, which
does not support it (see chapterChannels and
modes of individual module types).
module does not support control channel write:
Application attempted to write control channel of module, which
does not support it (see chapterChannels and
modes of individual module types).
Module positions and device slots
DataLab IO4 has four slots marked by
letters A, B, C and D. These slots are placed in the device as
displayed on the picture:
Module positions on the DataLab IO unit
Take care to orient the unit properly—slots A and B are on top when the device blue LED
and also the USB and power connectors are on the right side.
The slot letters are necessary only for users—they do not affect the device functionality. Any
module can be placed to any slot. The device automatically detects
plugged module types and adopts to the current configuration. But
if the device is used with the Control Web
application, the parameter file contains parameters for concrete
modules and it is necessary to uniquely identify these
modules.
DataLab IO1 has only one module slot
marked A. This is why the parameter file for DataLab IO1 unit should have only the [module_a]
section.
Driver configuration in the Control Web
development environment
The Control Web development environment offers
tools for comfortable driver configuration. This tool
automatically creates driver parameter file (.par) and driver map
file (.dmf) according to the application author's needs.
The driver configuration tool scans the USB bus to search all
DataLab IO units plugged to the computer.
All units including their identifiers and plugged modules are
displayed in a tree.
Scanning of all connected DataLab IO devices
It is possible to choose the device with which the particular
driver will communicate. Device parameters can be edited using the
structured sheet editor, showing parameters of individual
sections.
Driver parameter editing
The driver configuration tool can create both parameter and
mapping files from defined parameters. It is of course possible to
edit these files using arbitrary text editor.
The parameter file in the text form
DataLab IO system driver
The operating system needs proper drivers to correctly detect
and handle all USB devices. There is a system driver on the CD-ROM
supplied with every DataLab IO device.
Driver files are placed in '\English\DataLab
IO_USB\Drivers\Windows' directory. This directory contains
only two files: 'dlusb.sys' (the driver itself) and
'dlusb.inf' (installation information). The driver can
be installed explicitly by clicking the 'dlusb.inf'
file by right mouse button and choosing the Install
menu item. But this way is not usual. The best way to install the
system driver is just plug the DataLab IO
device to USB port. The operating system will detect new USB
device and prompts the user to enter path to driver files. It is
possible to enter the path to '\dlusb' on CD-ROM or
just to let the system to search the CD-ROM for drivers.
Hint: It is not necessary to install the driver from the
CD-ROM. Driver files can be copied to any disk storage. If for
instance the target machine is not equipped with the CD-ROM drive,
it is possible to copy driver files to USB Flash Disk and to
install them from that copy.
Warning: The 'dlusb.sys' driver is not signed by
digital signature. Windows notifies the user about that and asks
if the installation should continue. If you want to install the
driver, just continue with installation. Digital signature is only
a formal and should ensure using only drivers signed by Microsoft.
It does not affect driver functionality.
Operating system support
The DataLab IO devices can
theoretically work with any operating system supporting USB
interface. However, as stated earlier, every operating system
requires proper driver to work with USB device. Currently only
Windows driver is supplied with DataLab IO devices.
But there are also differences among various Windows
versions. The 'dlusb.sys' corresponds to WDM
(Windows Driver Model) specification. WDM drivers should work
in Windows 98SE, Windows Me and also in Windows 2000 and
Windows XP. But there are APIs missing in Windows 9x (Windows
98 and Windows Me), necessary to correctly detect device
arrival/removal from user mode. This is why the driver
requires Windows 2000 and better versions of Windows (e.g.
Windows XP).
History of function enhancements
Whenever the functionality of DataLab IO is enhanced, the new version of software
support must be released. Both DataLab IO system driver (the 'dlusb.sys'
file) and Control Web and Active X driver (the 'dldrv.dll' file)
must be upgraded together. This is why the major and minor
version numbers of both files are the same. Version 1.0 | The first released version. | Version 1.1 | Analog output modules (AO1) are supported by
the drivers. | Version 1.5 | System driver version number is synchronized with
Control Web and Active X driver (the 'dldrv.dll'
file). | | The USB communication is monitored by watchdog timer in
the DataLab IO device. If the
communication fails (e.g. due to EMI if the USB cable with
broken shielding is used), the device electrically disconnects
itself and reconnects again to restore connection to PC.
Communication is restored approximately after 2 s. | Version 1.6 | The drivers newly support digital counter input and
incremental counter modules (CNT1, CNT2). | | It is possible to explicitly declare channel directions
in the parameter file using new keywords (first_input_channel
and first_output_channel). | | The device can return its identification number through
id_channel. | | Numbers in parameter file can be written not only in
decimal format, but also in binary and hexadecimal notation.
Numbers in binary notation should be followed by letter
B, numbers in hexadecimal notation should be followed
by letter H. | Version 1.7 | It is possible to define logical parameter reset_outputs
in the [device] section. If the parameter is true
(reset_outputs = true), all output
channels are reset to their initial state (the sate in which
channels are when the device is powered on) when the application
is terminated or when the host PC (or connection to host PC)
fails. | Version 1.8 | Module types in the parameter file are identified
directly by the module name, not by symbolic name. For instance
the DI1 is used instead of digital_input,
CNT1 instead of counter etc. Older
denotations (digital_input, analog_output,
etc.) are accepted to maintain backward compatibility, but newly
added modules must be identified by module name, no new symbolic
name is introduced. | | Support for physical units was added to the driver (new
parameter file keyword unit was introduced). Analog
modules can define if the read/written values are expressed in
native A/D or D/A converter steps (ADU), in volts (V) or
amperes (A). Units can be also defined for individual channels
using keywords unit1, unit2,
etc. | | If the module allows mode definition, it can be defined
for individual channels using new keywords mode1,
mode2, etc. | | Mode can be defined also as list of symbolic keywords in
addition to numbers (e.g. mode = step_direction, enable_preset). | | The driver stores configuration values (values written to
module control channel) and uses them as mode when the device is
unplugged and plugged again. If the configuration is changed by
the program, it is no longer necessary to capture the driver
exception notifying about module plug in and write the control
channel—driver does it internally for
all modules with the exception of already discontinued AI1
module. | | Added support for AI2 analog input
module. | Version 1.9 | Added support for AI3 analog input
module. | | Added support for AD1 analog input module
with digital I/O. | Version 1.10 | Added support for AD2 analog I/O and digital
I/O module. | | Added support for RTD1 module. | | Parameter id accepts number or number
list. |
|