USB analog converter * 16-bit D/A converter – 4/8 channels
The USB Analog Converter UC-USB-DA4/8_16 offers 4 or 8 galvanically isolated 16-bit D/A outputs for precise voltage signals. Ideal for industrial automation and test bench applications. Typical applications include controlling control valves and simulating analog process signals for test and laboratory environments. USB-C Plug-and-Play ensures quick integration.
Price range: € 421,87 through € 575,78 Incl. 19% VAT plus shipping
Our promise to you
Product Description – USB analog converter module
The USB Analog Converter UC-USB-DA4/8_16 is a high-performance D/A output module designed for industrial measurement, control, and automation tasks. With a choice of 4 or 8 analog outputs and 16-bit resolution, the module generates highly precise voltage signals. Typical industrial ranges such as 0–5 V, 0–10 V, ±5 V, and ±10 V are supported.
Electrical isolation up to 500 V reliably protects connected systems from interference, ground loops, and potential differences—a decisive advantage in demanding industrial environments. The screwless WAGO connectors enable secure, fast, and mis-plug-proof wiring. The system can be flexibly expanded via the DIN-rail bus without additional cabling effort.
Thanks to USB-C Plug & Play, the USB Analog Converter is immediately recognized and ready for use without driver installation. The DELIB API is available for software integration, compatible with C, C++, C#, Java, Python, and other languages. This allows the module to be seamlessly integrated into existing control, test, and automation systems.
Typical applications include the control of actuators, valves, or control elements, as well as the simulation of analog process signals in laboratories, test benches, or industrial test systems. With its high precision, robust isolation, and flexible outputs, the UC-USB-DA4/8 is a reliable industrial I/O solution for demanding applications.
Reliable USB communication interface for precise system integration
The USB interface of the UC-USB-DA4/8_16 is based on a modern USB-C connection and enables reliable and fast communication with the host system. It supports USB 2.0 as well as USB 1.1 and achieves a data transfer rate of up to 480 Mbit/s. Thanks to plug-and-play functionality, the USB analog converter module is automatically recognized by the operating system and is immediately ready for use without additional basic configuration. Communication is handled via an optimized connection to the DELIB driver library, ensuring efficient and low-latency control. Typical access times in the millisecond range enable precise and stable data transmission even in time-critical applications. The USB-C interface also provides a robust and future-proof physical connection.
USB control via API commands and integrated driver interface
The USB connection of the module enables direct and straightforward control via an integrated driver and API structure (DELIB API). Following the plug-and-play principle, the USB analog converter module is automatically detected by the system and can then be addressed in software through standardized function calls. For all digital inputs and outputs as well as counter and status functions, defined API commands are available to read and control states.
Communication with the UC-USB-DA4/8_16 is typically handled via a DLL-based library that can be integrated into common programming languages such as C, C++, C#, Java, VB, and LabVIEW. This allows the development of custom applications, control programs, or test environments without the need to handle low-level USB communication.
In addition, the module provides a command-line interface (CLI), enabling simple control and query commands to be executed directly from scripts or terminal applications.
In practical use, this means that switching states of individual outputs or reading input signals can be controlled in real time using just a few API function calls. As a result, USB control is particularly well suited for automation tasks, test benches, and PC-based control applications with direct hardware integration.
High-precision analog outputs for industrial control and regulation applications
The UC-USB-DA4/8_16 provides, depending on the variant, 4 or 8 high-resolution analog outputs designed for demanding automation and control tasks. Each channel features 16-bit resolution, enabling particularly fine and precise signal generation. The outputs on the USB analog converter module can be flexibly operated as voltage or current interfaces and support common ranges such as 0–10 V, ±10 V, and 0/4–20 mA. This allows a wide variety of actuators such as control valves, drives, or process control systems to be precisely controlled.
Thanks to the high conversion speed and stable signal quality, even dynamic control processes can be reliably implemented. In addition, galvanic isolation between output groups ensures robust and interference-resistant integration in industrial environments.
Robust industrial design with a well-engineered connection and mounting architecture
The USB analog converter module is housed in a compact DIN rail enclosure specifically designed for control cabinet use, enabling space-saving integration into industrial systems. With a housing width of 22.5 mm, it supports high packing density while still ensuring good accessibility to all connections. For electrical wiring of the UC-USB-DA4/8_16, a pluggable WAGO spring-clamp system is used, enabling tool-free and vibration-resistant installation and supporting conductor cross-sections of up to 1.5 mm². In addition, a separate 5-pin connector is provided for the power supply, ensuring a clear separation between signal and operating voltage. The entire connection architecture is designed for misconnection protection and fast maintainability, offering clear advantages during service and commissioning processes. Overall, the design combines a robust mechanical structure with a practical, modular wiring concept for continuous industrial operation.
Maintenance and Long-Term Planning
The UC-USB-DA4/8_16 supports users with a durable, industrial-grade architecture that enables predictable use over many years. The combination of robust drivers, comprehensive documentation, and the ICT diagnostic tool simplifies commissioning and maintenance. Electrical isolation and high-quality electronics ensure reliable operation, while support and continuous updates guarantee seamless integration into professional automation environments.
Technical Specifications
The UC-USB-DA4/8 is a high-precision USB analog converter with 4 or 8 high-resolution 16-bit D/A channels for industrial applications. It offers stable voltage ranges such as 0–5 V, 0–10 V, ±5 V, and ±10 V, as well as reliable signal quality via the USB-C interface. Ideal for measurement, control, and automation tasks, the module enables flexible integration into professional industrial setups and delivers reproducible, low-noise analog signals.
USB interface:
- USB 2.0 interface up to 480 Mbit/s
- Quick setup thanks to plug-and-play integration
- Control: API for Windows and Linux (DELIB driver library), command-line interface
Analog outputs:
- 16-bit resolution per channel
- Voltage ranges: 0–5 V, 0–10 V, ±5 V, ±10 V
- Isolation from power supply: max. 500 V AC
- D/A converter conversion time: 10–12 µs
- Load resistance: ≥ 2 kΩ
Additional features:
- Configurable event control
- M2M functionality
- General
- Technical data
- ICT-Tool
- Configuration
- DELIB-API commands
- Connection examples
- Connectors
- Downloads & manuals
- Scope of delivery
- Accessories
Analog outputs
Our digital/analog converters enable the precise control of current- or voltage-controlled actuators such as valves or servomotors. They ensure reliable and interference-free signal transmission, particularly in industrial environments with long distances. This makes them ideal for demanding applications in automation technology.
Fail-Safe Mode
The Fail-Safe mode is a safety function in which the DEDITEC module switches to a previously configured, safe switching state in the event of a connection failure.
This is intended to prevent connected installations or systems from continuing to run in an uncontrolled manner.
USB interface with Plug & Play
Thanks to Plug & Play, our modules with USB interface are automatically recognized and are immediately ready for use without any configuration. Configuration is only required if several USB modules from the same product series are used on the same system.
Plug connector
A screwless system from the manufacturer WAGO® Kontakttechnik is used as the connector. The 1-wire female connectors are 100 % protected against mismating and have an ejection and locking mechanism.
Easy installation thanks to DIN rail bus
Thanks to the practical bus connector, which is clipped into the DIN rail, individual modules of a system can be added or replaced very easily. This Plug'n Play principle makes commissioning easier for you and eliminates the need for tedious wiring.
LEDs
Each digital input and output has a separate LED that lights up when the signal status is active. The status of the operating voltage, communication with the interface, error events or the occurrence of a timeout can also be displayed.
Software and control for programmers
Our supplied DELIB driver library makes it easy to address the product via our API in almost all programming languages under Windows and Linux.
We offer support for the following programming languages:
- C
- C++
- C#
- VB
- VBA
- VB.Net
- Java
Command-Line-Interface
With the help of the command line interface, or CLI for short, our products with Ethernet or USB interface can be easily addressed via the command line. Our digital and analog inputs/outputs are supported. The CLI is available for Windows and Linux operating systems.
| Power supply | +12 V ... +24 V DC |
|---|---|
| LEDs general |
|
| LEDs product-specific |
A/D-version:
D/A-version:
Thermo version:
|
| DIN rail mounting | 35 x 7,5 mm |
| Operating temperature | +10 °C ... +50 °C |
| Dimensions | 120 mm x 22.5 mm x 111 mm (H x W x D) |
Special features
| Event-Control | With our event control, you have the option of linking occurring events to a specific action. With the help of our ICT tool, the control tasks can be stored directly in the module memory thanks to an intuitive “if-then” logic. Monitor, control and regulate without an additional control PC. |
|---|
Fail-Safe-function
| FAIL-SAFE-function |
|
|---|---|
| Timeout-mode "Normal" | The "Normal mode" is valid once and must be reactivated manually by software command after each timeout event. The customer application still has access to all controller outputs. |
| Timeout-mode „Auto reactivate“ | In “Auto reactivate mode”, the timeout function is automatically reactivated once communication with the control PC has been re-established. The customer application still has access to all outputs of the control unit. |
| Timeout-mode "Secure Outputs" | The “Secure outputs mode” blocks access to the outputs after the timeout event. Unlocking can only be carried out by software command. This is an important safety aspect in the event of a fault. |
Interfaces
USB Interface
| USB-interface |
|
|---|---|
| Access speed |
|
Inputs/Outputs
Analog outputs
| Output |
|
|---|---|
| Galvanic isolation |
* only applies to modules of the NET series and the UC-CANOPEN series |
| Load resistance | > 2 KOhm |
| Conversion rate | 10-12 µs conversion time of the D/A converter |
Connectors
| Plug connector 16-pin |
|
|---|
| Plug connector 5-pin |
|
|---|
The ICT-Tool
Integration, configuration and testing - Our all-in-one Windows tool contains all the functions you need to put our products into operation quickly, easily and efficiently. Start with the setup and configuration, install firmware updates and use the extensive test and diagnostic options. The integrated help menu provides additional support if required.
Below you will find a brief overview of the program’s basic menus.
Module selection
Here you can integrate a new product into the ICT tool by clicking on the “+” symbol and then configure it.
ICT TreeView
In the TreeView, on the left-hand side of the program window, you can see the respective control elements or functions that are supported by your selected module. The scope of the functions depends on the respective product.
Overview
All relevant module information can be accessed here at a glance.
- Module name
- Module ID
- Firmware revision
- MAC address
- LAN and WiFi Network address (module dependent)
Inputs / Outputs
This overview shows the number of I/Os supported by your module.
Module infos
Here you will find all the important feature information for your module.
General features
Here you will find all the important feature information for your module.
Digital I/O features
Here you will find information about the digital I/Os supported by the module.
Analog I/O features
Here you will find information about the type of analog I/Os supported by your module.
Special I/O features
Here you will find information about the type of special I/Os supported by your module.
In den folgenden Kapitel, würden wir Ihnen unsere neue All-In-One-Software gerne genauer vorstellen.
Info
All relevant module information can be called up here at a glance.
- Module name
- Module ID
- Firmware revision
- Interface type
- Current DIP switch setting (only for Ethernet modules)
Identification
If several DEDITEC Ethernet modules are active in the network, a signal LED on the selected module can be activated via an identification function. This facilitates visual assignment.
Restart
You can restart your module here. The module status shows whether the restart was successful.
USB configuration
If you want to use several USB modules from the same product series on one PC, each of these modules must first be assigned its own module number.
LAN info
On this information page, you will find the current LAN network information and all the settings for your module at a glance.
LAN configuration
Integrate the product into your network or control it directly via a 1-to-1 connection.
The following parameters can be changed.
- Board name
- DHCP on/off
- IP address
- Subnet mask
- Default gateway
- TCP Port
WiFi info
All important WiFi settings are displayed on this page
WiFi configuration
Here you can change the network settings of the selected WiFi product.
The following settings can be made:
- Board name
- WLAN on/off
- Router name
- Router password
WPS
With the WPS function, your module can be connected to the router quickly and easily, automatically (WPS on the router is required)
CAN configuration
With our CAN products in the BS, NET and UC series, settings for the interface and the TX/RX packets can be made using the ICT tool.
More information can be found here:
Serial configuration
For our serial products in the BS, NET, UC and RO series, changes to the interface can be made using the
ICT tool.
More information can be found here:
Modbus TCP
Here you can set the Modbus TCP configuration of the module.
The following configurations can be made.
- Enable/disable access via Modbus TCP
- TCP port
TCP encryption
Here you can make settings for the encryption of your module.
The following configurations can be made.
- Allow unencrypted protocol
- Allow “User” encryption mode
- User password
- Allow “Admin” encryption mode
- Admin password
NTP configuration
You can make changes to the NTP service here.
The following configurations can be made.
- NTP service on/off
- server
- Port
- Timezone
WEB-Login
Here you can change the login settings of the web interface.
The following configurations can be made.
- Session duration
- Login name
- Login password
- Allow I/O access via web interface
D/A Default Values
Here you can set the D/A values and modes with which the module should be started.
The value and mode can be set individually for each channel.
Watchdog configuration
Here you can make and save settings on your watchdog stick.
Save or Load config
Using the “Save or Load config” function, you can save your entire module configuration in an external XML file.
This means you can always load your module in the desired original state.
The following configurations can be saved depending on the module type.
- USB configuration
- LAN configuration
- WiFi configuration
- TCP encryption
- NTP configuration
- Serial configuration
- CAN configuration
Status
This gives you an overview of the activity of the transmitter and receiver module
The following information from the transmitter module is displayed:
- Status of the activity: If the check mark is set, this action is currently being performed.
- Total number of actions performed. Is reset to 0 after a restart of the module.
- Number of actions per second.
- Number of DELIB errors that occur when executing commands from the DEDITEC driver library.
The following information from the receiver module is displayed:
- Connected: If the check mark is set, the transmitter and receiver modules are connected.
- IP address of the receiver module.
- Number of connection attempts.
Receiver modules
You can set the network settings of the receiver module here.
The following settings can be made
- Name for the receiver module
- Network settings of the receiver module
- Timeout
- Encryption type/ password
Action
With an action, you define which input signal is to be sent from the transmitter module to which output of a receiver module.
The following settings can be made:
- Type of task (digital, analog)
- Which receiver module should be used
- The interval at which the operations are to be carried out
- Start channel of the transmitter module
- Number of channels to be transmitted
- Start channel of the receive module
In the image on the right, DI data is sent every 100ms from channel 3(CH Start) to channel 8 ((CH Start) + (CH Count)) to channels 0-5 of the target module.
In den folgenden Kapitel, würden wir Ihnen unsere neue All-In-One-Software gerne genauer vorstellen.
Status
The Status area provides an overview of all active events and executed actions.
The following information is listed:
- Event number
- Event type
- Time interval of the event
- Number of events that have occurred
- Action number
- Number of triggered actions
- Number of other actions
Events configuration
Up to 16 different events can be created in the configuration menu. An event can be used, for example, to define switching thresholds at the analog inputs or logical states at the digital inputs of the module and link them to an executable action. The configuration itself is saved permanently in the module configuration memory of the module.
The following event modes are available, depending on the module type:
- DI: High-Low state of a digital input.
- DI flip-flop: Status change of a digital input (is stored in the module with the so-called flip-flop flag and deleted again after readout).
- DO readback: ON-OFF status of a digital output (is read out using a DO readback command).
- A/D: Current or voltage level at the analog inputs
Configuration actions
Up to 16 different actions can be created in the configuration menu. An action defines what should happen within an event after a condition is met.
The following action modes are available, depending on the module type:
- Set DO output: Switches a digital output on or off
- Set D/A output: Outputs a current or voltage value at an analog output
- Send CAN packet: A special CAN TX event is triggered (up to eight CAN TX events can be configured separately).
Digital Out
Hier können Sie die digitalen Ausgänge Ihres Modules ein- und ausschalten.
Folgende Funktionen können in dieser Form getestet werden.
- Kanalweise Ein- und Ausschalten der digitalen Ausgänge
- Readback der Kanäle
- Setzen eines Digitalausgangs für eine bestimmte Zeit (Modulabhängig)
- Gibt an welchen Status die Kanäle nach Ablauf der Zeit einnehmen sollen (Modulabhängig)
- Testen der Ausgänge
Digital Out
All digital outputs of your product can be checked by clicking on the buttons.
The following switching options are possible:
- Switching on and off channel by channel
- Channel-by-channel switching on or off for a specific time (product-dependent)
- Reading back the switching status (readback)
Digital In
In this view, the logical states of all optocoupler inputs can be read out.
The following information is displayed:
- Logical status of the inputs (ON/OFF)
- Number of detected pulses (counter function)
- Change of state detected (flip-flop)
TTL I/O
In this menu, the TTL channels of the module can be configured as inputs or outputs. The individual TTL outputs can be switched on or off by pressing the buttons. In addition, the status of all TTL inputs can be read out.
The tool offers the following functions:
- Configuration of the channels as input or output (in blocks of 8)
- Switching on and off channel by channel
- Reading back the switching status (output readback)
- Displaying the logical status of the inputs (input readback)
Analog Out
Here you can test the analog outputs of the module and manually enter any voltage or current value.
Analog In
In this menu, voltage or current values of all A/D channels can be displayed.
It is also possible to activate our A/D software filter with different filter levels.
CAN Runtime Parameter
Here you can change the CAN settings of the interface, the RX and TX packets in runtime.
The following settings can be made:
- Baud rate
- Extended ID
- Active on/off
- CAN ID
- Mode
CNT48
Here you can read out the counter readings of a counter module, select filter options and set various counting modes.
The following counting modes are supported:
- Read on rising edge
- Read on rising edge x2
- Read on rising edge x4
- Period duration
- Frequency measurement
- PWM measurement
Pulse generator
The pulse generator can be used to generate square-wave signals. High and low time as well as the number of pulses can be set here.
PWM Out
In this menu you have the option of testing various PWM frequencies. In addition, the duty cycle can be entered manually for each individual channel.
Temp
The temperature of all connected temperature sensors is displayed here directly in °C.
Graphical display
This menu allows a graphical representation of all analog input signals, such as A/D, temperature or FIFO-IN.
Watchdog
This tool can be used to check the configured watchdog parameters for correct function.
I/O – Timeout
You can use the timeout function in the I/O area to simulate a timeout case for your module.
The following is a description of the timeout window
- Read / Write symbol: Flashes to indicate an active connection to the module
- Automatic access: Removing the tick triggers a timeout after the timeout time has expired
- Manual access: Manual retrieval of data from the module
- Timeout status: Shows whether the timeout is active and whether a timeout event has occurred
- Timeout mode: Selection between 3 timeout modes, Normal, Reactivate and Secure
- Timeout duration: The time after which the timeout should be triggered is set here
- Activate / deactivate: Activates or deactivates the timeout function
Access times tests
You can test the access times for the module here. The following access time tests can be performed:
- Register – Read/Write/Write + Readback
- Digital I/O – Read/Write/Write + Readback
- Analog I/O – Read/Write/Write + Readback
Access times tests
This test can be used to determine the access times to the module. The test values are read and written in 8, 16, 32, or 64-bit commands.
Access times Register
The following example checks the register accesses to an Ethernet module. The average access time here is 0.5 ms.
Access times Analog I/O
In the following example, the access times to an Ethernet module with analog I/Os are checked. The average access time here is 0.6 ms.
Access times Digital I/O
In the following example, the access times to an Ethernet module with digital I/Os are checked. The average access time here is 0.6 ms.
Cable feedback tests
For this test, the digital or analog outputs of the module are connected to the corresponding digital or analog inputs of the module via cable. The feedback test now checks whether the output and input values match.
Cable return test
The cable return test can be used to check the function of all digital and analog inputs and outputs (I/Os) of a module. To do this, inputs and outputs are wired together externally on a 1:1 basis. The test software analyzes whether the output signals arrive correctly at the inputs, thereby identifying wiring errors or hardware defects.
Analog test
In analog test mode, the D/A converter outputs defined test voltages, which are then read in by the A/D converter and compared with the target values. The software counts the number of test runs and automatically documents any deviations.
Digital test
In the digital test, the switching states of the relay or MOSFET outputs are fed back externally to the optocoupler inputs. Here, too, the software counts and compares the number of cycles and automatically detects transmission errors or deviations.
Cable return test
The cable return test can be used to check the function of all digital and analog inputs and outputs (I/Os) of a module. To do this, inputs and outputs are wired together externally on a 1:1 basis. The test software analyzes whether the output signals arrive correctly at the inputs, thereby identifying wiring errors or hardware defects.
Analog test
In analog test mode, the D/A converter outputs defined test voltages, which are then read in by the A/D converter and compared with the target values. The software counts the number of test runs and automatically documents any deviations.
Digital test
In the digital test, the switching states of the relay or MOSFET outputs are fed back externally to the optocoupler inputs. Here, too, the software counts and compares the number of cycles and automatically detects transmission errors or deviations.
A/D ripple
The ripple test displays the residual ripple of the individual A/D inputs.
A/D quality measurements
The quality of an A/D measurement is influenced by various factors and can be affected by external interference. A reliable method for checking measurement quality is to measure a stable battery voltage. Our diagnostic tools can be used to determine the residual ripple and noise behavior.
A/D ripple
The A/D ripple test can be used to measure the residual ripple of the individual A/D inputs and check for interference signals such as mains hum or voltage instabilities.
A/D noise
The noise behavior of each A/D channel can be displayed graphically using A/D noise measurement. Additional filter stages with averaging can be used to smooth and improve the measurement signal.
FIFO In/Out
The software FIFO test can be used to specifically test the integrated FIFO buffering of our digital and analog NET I/O modules. Depending on whether it is an input or output module, data is read from the submodule FIFO or written to the submodule FIFO.
FIFO settings
The submodule number can be used to specify which module is to be tested. The start and end channels can also be used to transmit several channels simultaneously. In addition, the transmission frequency can be set and the desired FIFO mode selected – for example, for the use of test values or the actual measured values of the module.
All important information at a glance
During program execution, key information such as the size of the data packets, free and occupied bytes in the FIFO buffer, the number of data packets sent or received, and the current FIFO status are clearly displayed.
D/A output test
The D/A output test enables targeted testing of each individual D/A channel of a module. A freely selectable test voltage can be output directly. Currently, simple square wave signals with configurable high and low times are available. The signals can be monitored simultaneously with an oscilloscope. This function is also ideal for long-term tests. The test software detects DELIB errors and logs them automatically.
Mustertext
Mustertext
DO 4* value + wait
In this test, adjustable 16-bit values are written to the digital outputs of the module.
The values are sent to the module using the DapiDOSet16 command. The start channel is always channel 0.
You can set different wait times between the individual calls.
The test is intended for testing the functionality of the module.
Mustertext
Mustertext
Modbus I/O test
In the diagnostics section of the ICT-Tool, you can test the module’s digital and analog inputs and outputs directly via Modbus TCP. Register addresses as well as transfer and return values are displayed in a debug panel, allowing you to quickly diagnose problems with the D/A converter, for example. A complete overview of all register addresses and examples can be found in the Modbus manual at the following link:
To benefit from the latest functions and prevent errors, we recommend that you always keep your DEDITEC product up to date.
Flash Files
Downloading the firmware flash file package via the ICT tool
- Go to Flash Files in the “Firmware update” menu
- Click on the download button to start the download.
- Administration rights are required for the automatic unpacking of the flash files. If these rights are not available, the files are downloaded to the download area of your PC and must be extracted manually to the installation directory.
\DEDITEC\DELIB\programs\flash_files
Downloading the firmware flash file package via the DEDITEC homepage
- Download the required firmware flash file package from our homepage: Downloads -> Software -> Firmware
- Extract the files to the following installation path: ..\DEDITEC\DELIB\programs\flash_files
Flash modules
In the “Firmware update” menu, select the module you want to update and then click on the “Flash modules” or “Flash submodules” button.
The firmware is now updated and the module is then restarted automatically.
Information on the firmware flasher
The following information is displayed in the firmware flasher:
- Last FW: Displays the last firmware version
- Current FW: Displays the currently installed firmware version
- Newest FW: Displays the latest firmware version
- Log: Displays status or error messages during the flash process
In den folgenden Kapitel, würden wir Ihnen unsere neue All-In-One-Software gerne genauer vorstellen.
General
Here you can make general configurations to the ICT tool.
The following changes can be made:
- Language – setting between German and English possible
Updates
Here you can search for available DELIB or firmware updates.
- Automatic update search at program start
- Search for DELIB updates
- Search for firmware updates
Error log
Here you can make settings for the deditec_debug.log. This is saved under the path C:\Users\?USER?\AppData\Local\DEDITEC.
The following settings can be made:
- Enable writing to the debug.log
- Activate log notifications
- Activate automatic deletion of the debug.log
- Setting after how many days the debug.log should be deleted
- Set the maximum size of the debug.log
DELIB – DebugView – Global
Settings can be made here for the information that is to be displayed with the DebugView.
- Activate debug output
- Activate display of errors
DELIB – DebugView – Details
More detailed settings can be made here for the information to be displayed with the DebugView.
Configuration our USB modules
Thanks to plug & play, our USB modules are automatically recognized and are immediately ready for use without any configuration. Configuration is only required if several USB modules from the same product series are used on the same system.
Using multiple USB modules on one PC
If you want to use more than one USB module of the same type on a computer, each module must first be assigned its own module number. The module number is assigned in the configuration menu of our ICT tool.
Management functions
DapiOpenModule
This function opens a specific module.
Description
This function opens a specific module.
Definition
ULONG DapiOpenModule(ULONG moduleID, ULONG nr);
Parameter
moduleID=Specifies the module to be opened (see delib.h)
nr=Specifies which module is to be opened.
nr=0 -> 1. Module
nr=1 -> 2. Module
Return value
handle=Corresponding handle for the module
handle=0 -> Module was not found
Remark
The handle returned by this function is required to identify the module for all other functions.
Programming example
// Open USB module
handle = DapiOpenModule(RO_USB1, 0);
printf(„handle = %x\n“, handle);
if (handle==0)
{
// USB module was not found
printf(„Module could not be opened\n“);
return;
}
DapiCloseModule
This command closes an open module.
Description
This command closes an open module.
Definition
ULONG DapiCloseModule(ULONG handle);
Parameter
handle=This is the handle of an open module
Return value
None
Programming example
// Close module
DapiCloseModule(handle);
DapiGetDELIBVersion
This function returns the installed DELIB version.
Description
This function returns the installed DELIB version.
Definition
ULONG DapiGetDELIBVersion(ULONG mode, ULONG par);
Parameter
mode=Mode with which the version is read out (must always be 0).
par=This parameter is not defined (must always be 0).
Return value
version=Version number of the installed DELIB version [hex]
Programming example
version = DapiGetDELIBVersion(0, 0);
//With version 1.32 installed
version = 132(hex)
DapiSpecialCMDGetModuleConfig
This function returns the hardware configuration (number of input and output channels) of the module.
Description
This function returns the hardware configuration (number of input and output channels) of the module.
Definition
ULONG DapiSpecialCommand(ULONG handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, par, 0, 0);
Parameter
handle=This is the handle of an open module
Querying the number of digital input channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI
Query number of digital input flip-flops
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI_FF
Query number of digital input counters (16-bit counter)
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI_COUNTER
Query number of digital input counters (48-bit counter)
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_CNT48
Querying the number of digital output channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DO
Querying the number of digital pulse generator outputs
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_PULSE_GEN
Querying the number of digital PWM outputs
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_PWM_OUT
Querying the number of digital input/output channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DX
Querying the number of analog input channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_AD
Querying the number of analog output channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DA
Query number of temperature channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_TEMP
Query number of stepper channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_STEPPER
Return value
Querying the number of digital input channels
return=number of digital input channels
Query number of digital input flip-flops
return=number of digital input flip-flops
Query number of digital input counters (16-bit counter)
return=number of digital input counters (16-bit counter)
Query number of digital input counters (48-bit counter)
return=number of digital input counters (48-bit counter)
Querying the number of digital output channels
return=number of digital output channels
Querying the number of digital pulse generator outputs
return=number of digital pulse generator outputs
Querying the number of digital PWM outputs
return=number of digital PWM outputs
Querying the number of digital input/output channels
return=number of digital input/output channels
Querying the number of analog input channels
return=number of analog input channels
Querying the number of analog output channels
return=number of analog output channels
Query number of temperature channels
return=number of temperature channels
Query number of stepper channels
return=number of stepper channels
Programming example
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI, 0, 0);
//Returns the number of digital input channels
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DO, 0, 0);
//Returns the number of digital output channels
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DX, 0, 0);
//Returns the number of digital input/output channels
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_AD, 0, 0);
//Returns the number of analog input channels
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DA, 0, 0);
//Returns the number of analog output channels
ret=DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG,
DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_STEPPER, 0, 0);
//Returns the number of stepper channels
DapiOpenModuleEx
This function specifically opens a module with an Ethernet interface. The parameters IP address, port number and the duration of the timeout can be defined.
Description
This function specifically opens a module with an Ethernet interface. The parameters IP address, port number and the duration of the timeout can be defined. The module is opened independently of the settings made in the DELIB Configuration Utility.
Definition
ULONG DapiOpenModuleEx(ULONG moduleID, ULONG nr, unsigned char* exbuffer, 0);
Parameter
moduleID = Specifies the module to be opened (see delib.h)
nr = Specifies which module (if several) is to be opened.
nr = 0 -> 1. Module
nr = 1 -> 2. Module
exbuffer = Buffer for IP address, port number and duration of the timeout
Return value
handle = Corresponding handle for the module
handle = 0 -> Module was not found
Remark
The handle returned by this function is required to identify the module for all other functions.
This command is supported by all modules with an Ethernet interface.
Programming example
// Open ETH-Module with parameter
DAPI_OPENMODULEEX_STRUCT open_buffer;
strcpy((char*) open_buffer.address, "192.168.1.10");
open_buffer.portno = 0;
open_buffer.timeout = 5000;
handle = DapiOpenModuleEx(RO_ETH, 0, (unsigned char*) &open_buffer, 0);
printf("Module handle = %x\n", handle);
DapiScanAllModulesAvailable
This function can be used to scan all modules connected to the USB bus.
Description
This function can be used to scan all modules connected to the USB bus.
The module ID and module no. of each module found are determined.
Definition
ULONG DapiScanAllModulesAvailable(uint nr)
Parameter
nr = 0: All modules connected to the USB bus are searched for
nr = i: Reading out the individual connected modules
Return value
Indicates the number of modules found.
Programming example
no_of_modules =
DT.Delib.DapiScanAllModulesAvailable(0);
for (i = 1; i <= no_of_modules; i++)
{
ret = DapiScanAllModulesAvailable(i);
moduleID = ret & 0x0000ffff;
moduleNr = (ret >> 16) & 0xff;
}
Register functions
DapiWriteByte
This command executes a direct register write command to the module.
Description
This command executes a direct register write command to the module.
Definition
void DapiWriteByte(ULONG handle, ULONG adress, ULONG value);
Parameter
handle=This is the handle of an open module
adress=Address to be accessed
value=Specifies the data value that is written (8-bit)
Return value
None
Remark
This should only be used by experienced programmers. This allows direct access to all available registers.
Programming example
// Data is written to register 0x10
DapiWriteByte(handle, 0x10, 0xFF);
DapiWriteWord
This command executes a direct register write command to the module.
Description
This command executes a direct register write command to the module.
Definition
void DapiWriteWord(ULONG handle, ULONG adress, ULONG value);
Parameter
handle=This is the handle of an open module
adress=Address to be accessed
value=Specifies the data value that is written (16-bit)
Return value
None
Remark
This should only be used by experienced programmers. This allows direct access to all available registers.
Programming example
// Data is written to register 0x10
DapiWriteWord(handle, 0x10, 0xFFFF);
DapiWriteLong
This command executes a direct register write command to the module.
Description
This command executes a direct register write command to the module.
Definition
void DapiWriteLong(ULONG handle, ULONG adress, ULONG value);
Parameter
handle=This is the handle of an open module
adress=Address to be accessed
value=Specifies the data value that is written (32-bit)
Return value
None
Remark
This should only be used by experienced programmers. This allows direct access to all available registers.
Programming example
// Data is written to register 0x10
DapiWriteLong(handle, 0x10, 0xFFFFFFFF);
DapiWriteLongLong
This command executes a direct register write command to the module.
Description
This command executes a direct register write command to the module.
Definition
void DapiWriteLongLong(ULONG handle, ULONG adress, ULONGLONG value);
Parameter
handle=This is the handle of an open module
adress=Address to be accessed
value=Specifies the data value that is written (64-bit)
Return value
None
Remark
This should only be used by experienced programmers. This allows direct access to all available registers.
Programming example
// Data is written to register 0x10
DapiWriteLongLong(handle, 0x10, 0xFFFFFFFFFFFFFFFF);
DapiReadByte
This command executes a direct register read command on the module.
Description
This command executes a direct register read command on the module.
Definition
ULONG DapiReadByte(ULONG handle, ULONG adress);
Parameter
handle=This is the handle of an open module
adress=Address to be accessed
Return value
Content of the register to be read (8-bit)
Remark
This should only be used by experienced programmers. This allows direct access to all available registers.
Programmierbeispiel
// Reads 8 bits from the address 0x0
ULONG data;
data = DapiReadByte(handle, 0x0);
DapiReadWord
This command executes a direct register read command on the module.
Description
This command executes a direct register read command on the module.
Definition
ULONG DapiReadWord(ULONG handle, ULONG adress);
Parameter
handle=This is the handle of an open module
adress=Address to be accessed
Return value
Content of the register to be read (16-bit)
Remark
This should only be used by experienced programmers. This allows direct access to all available registers.
Programming example
// Reads 16 bits from the address 0x0
ULONG data;
data = DapiReadWord(handle, 0x0);
DapiReadLong
This command executes a direct register read command on the module.
Description
This command executes a direct register read command on the module.
Definition
ULONG DapiReadLong(ULONG handle, ULONG adress);
Parameter
handle=This is the handle of an open module
adress=Address to be accessed
Return value
Content of the register to be read (32-bit)
Remark
This should only be used by experienced programmers. This allows direct access to all available registers.
Programming example
// Reads 32 bits from the address 0x0
ULONG data;
data = DapiReadLong(handle, 0x0);
DapiReadLongLong
This command executes a direct register read command on the module.
Description
This command executes a direct register read command on the module.
Definition
ULONGLONG DapiReadLongLong(ULONG handle, ULONG address);
Parameter
handle=This is the handle of an open module
address=Address to be accessed
Return value
Content of the register to be read (64-bit)
Remark
This should only be used by experienced programmers. This allows direct access to all available registers.
Programming example
// Reads 64 bits from the address 0x0
ULONGLONG data;
data = DapiReadLongLong(handle, 0x0);
Analog output functions
DapiDASetMode
This command sets the mode for a D/A converter.
Description
This command sets the mode for a D/A converter.
Definition
void DapiDASetMode(ULONG handle, ULONG ch, ULONG mode);
Parameter
handle=This is the handle of an open module
ch=Indicates the channel of the D/A converter (0 .. )
mode=Specifies the mode for the D/A converter
Return value
None
Remark
The following modes are supported:
(these depend on the D/A module used)
Unipolar voltages
ADDA_MODE_UNIPOL_10V
ADDA_MODE_UNIPOL_5V
ADDA_MODE_UNIPOL_2V5
Bipolar voltages
ADDA_MODE_BIPOL_10V
ADDA_MODE_BIPOL_5V
ADDA_MODE_BIPOL_2V5
Currents
ADDA_MODE_0_20mA
ADDA_MODE_4_20mA
ADDA_MODE_0_24mA
ADDA_MODE_0_25mA
ADDA_MODE_0_50mA
Programming example
// Sets channel 0 to 0 ... 10V mode
DapiDASetMode(handle, 0, DAPI_ADDA_MODE_16BIT_UNIPOL_10V);
DapiDAGetMode
This command reads back the set mode of a D/A converter.
Description
This command reads back the set mode of a D/A converter.
Definition
ULONG DapiDAGetMode(ULONG handle, ULONG ch);
Parameter
handle=This is the handle of an open module
ch=Indicates the channel of the D/A converter (0 .. )
Return value
Mode of the D/A converter
Programming example
// Reads back the current mode of channel 1
unsigned long mode;
mode = DapiDAGetMode(handle, 0);
// Check mode
if(mode == DAPI_ADDA_MODE_16BIT_UNIPOL_10V)
{
printf("Mode is 0 .. 10V");
}
DapiDASet
This command transfers a data value to a channel of a D/A converter.
Description
This command transfers a data value to a channel of a D/A converter.
Definition
void DapiDASet(ULONG handle, ULONG ch, ULONG data);
Parameter
handle=This is the handle of an open module
ch=Indicates the channel of the D/A converter (0 .. )
data=Indicates the data value that is written
(16-bit data value -> data value range: 0-65535)
Return value
None
Programming example
DapiDASet(handle, 0, 65535);
// Sets the 1st output of the D/A converter to the maximum value of the selected mode.
selected mode.
//(if ADDA_MODE_UNIPOL_10V mode is selected, the 1st output is set to the maximum value of the selected mode.
of the D/A converter is set to 10V)
DapiDASetVolt
This command sets a voltage to a channel of a D/A converter.
Description
This command sets a voltage to a channel of a D/A converter.
Definition
void DapiDASetVolt(ULONG handle, ULONG ch, float data);
Parameter
handle=This is the handle of an open module
ch=Indicates the channel of the D/A converter (0 .. )
data=Indicates the voltage to be set [V]
Return value
None
Programming example
DapiDASetVolt(handle, 0, 5,4321);
// Sets the 1st output of the D/A converter to 5.4321 V
DapiDASetmA
This command sets a current to a channel of a D/A converter.
Description
This command sets a current to a channel of a D/A converter.
Definition
void DapiDASetmA(ULONG handle, ULONG ch, float data);
Parameter
handle=This is the handle of an open module
ch=Indicates the channel of the D/A converter (0 .. )
data=Indicates the current that is written [mA]
Return value
None
Remark
This command is module-dependent. Of course, it only works if the module also supports current mode.
DapiSpecialCmdDA
This command sets the voltage values for a channel when switching on or after a timeout of a D/A converter.
Description
This command sets the voltage values for a channel when switching on or after a timeout of a D/A converter (EEPROM configuration).
Definition
void DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DA, cmd, ch, 0);
Parameter
handle=This is the handle of an open module
ch=Indicates the channel of the D/A converter (0, 1, 2, ..)
Resetting the settings to the default configuration
cmd=DAPI_SPECIAL_DA_PAR_DA_LOAD_DEFAULT
Saving the configuration to the EEPROM
cmd=DAPI_SPECIAL_DA_PAR_DA_SAVE_EEPROM_CONFIG
Load the configuration from the EEPROM
cmd=DAPI_SPECIAL_DA_PAR_DA_LOAD_EEPROM_CONFIG
Return value
None
Remark
DAPI_SPECIAL_CMD_DA_PAR_DA_LOAD_DEFAULT
This command is used to load the default configuration of a D/A converter.
The D/A converter now has an output voltage of 0V.
DAPI_SPECIAL_DA_PAR_DA_SAVE_EEPROM_CONFIG
This command saves the current D/A converter setting (voltage/current value, enable/disable and D/A converter mode) to the EEPROM.
DAPI_SPECIAL_DA_PAR_DA_LOAD_EEPROM_CONFIG
This command is used to set the D/A converter with the configuration stored in the EEPROM.
Programming example
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DA, DAPI_SPECIAL_DA_PAR_DA_LOAD_DEFAULT, 1, 0);
//Reset the EEPROM configuration to the default configuration for channel 1.
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DA, DAPI_SPECIAL_DA_PAR_DA_SAVE_EEPROM_CONFIG, 3, 0);
//Saving the D/A converter settings in the EEPROM for channel 3.
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DA, DAPI_SPECIAL_DA_PAR_DA_LOAD_EEPROM_CONFIG, 2, 0);
//Set the D/A converter with the configuration stored in the EEPROM for channel 2.
Timeout protection function
DapiSpecialCMDTimeout
This command is used to set the timeout protection function.
Description
This command is used to set the timeout protection function.
There are three different timeout methods since 2021.
"normal" timeout
This is the timeout that our modules have had since 2009.
Procedure for the timeout command:
The timeout is activated by command.
If a so-called timeout event then occurs (pause between two accesses to the module is longer than the permitted timeout time), the following happens:
- All outputs are switched off.
- The timeout status changes to "2".
- The timeout LED goes on (for modules that have such a status)
Further access to the outputs is then still possible, but the timeout is no longer active. Only when it has been reactivated.
"auto reactivate" timeout
This is a timeout mode implemented since 2021, which automatically reactivates the timeout after the timeout event occurs.
Procedure for the timeout command:
The timeout is activated by command.
If a so-called timeout event then occurs (pause between two accesses to the module is longer than the permitted timeout time), the following happens:
- All outputs are switched off.
- The timeout status changes to "4".
- The timeout LED goes on (for modules that have such a status)
Further access to the outputs is then still possible. AND the timeout is still active. If the timeout time is exceeded again, the outputs are switched off again.
"secure outputs" timeout
This is a timeout mode implemented since 2021, which prevents write access to the outputs after the timeout event occurs, thus ensuring that the software must first restore a "secure" state of the outputs, as the module's timeout mechanism has changed the outputs to predefined values.
Procedure for the timeout command:
The timeout is activated by command.
If a so-called timeout event then occurs (pause between two accesses to the module is longer than the permitted timeout time), the following happens:
- All outputs are switched off.
- The timeout status changes to "6".
- The timeout LED goes on (for modules that have such a status)
Further access to the outputs is NOT possible. The outputs can only be written to after the timeout has been reactivated or deactivated.
Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, par1, par2);
Parameter
handle = This is the handle of an open module
cmd = function to be executed
par1 = Value that is passed to the function
par2 = Value that is passed to the function
DapiSpecialTimeoutSetValueSec
This command is used to set the timeout time.
Description
This command is used to set the timeout time.
Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, par1, par2);
Parameter
cmd = DAPI_SPECIAL_TIMEOUT_SET_VALUE_SEC
par1 = seconds [s]
par2 = milliseconds [100ms] (value 6 = 600ms)
Remark
The permissible value range of the time specification is between 0.1 seconds and 6553 seconds
Programming example
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_SET_VALUE_SEC, 3, 7);
// The time of the timeout is set to 3.7 sec.
DapiSpecialTimeoutActivate
This command activates the "normal" timeout.
Description
This command activates the "normal" timeout.
After the timeout event...
- ...all outputs are switched off
- ...the timeout status is set to "2"
- ...the timeout LED is switched on (for modules that have such a status)
Further access to the outputs is then still possible, but the timeout is no longer active.
Only when it has been reactivated.
Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);
Parameter
cmd = DAPI_SPECIAL_TIMEOUT_ACTIVATE
Programming example
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_ACTIVATE, 0, 0);
// The "normal" timeout is activated.
DapiSpecialTimeoutActivateAutoReactivate
This command activates the "auto reactivate" timeout.
Description
This command activates the "auto reactivate" timeout.
In this mode, the timeout is automatically reactivated after the timeout event.
After the timeout event...
- ...all outputs are switched off
- ..the timeout status is set to "4"
- ...the timeout LED is switched on (for modules that have such a status)
Further access to the outputs is then still possible AND the timeout is still active.
If the timeout time is exceeded again, the outputs are switched off again.
Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);
Parameter
cmd = DAPI_SPECIAL_TIMEOUT_ACTIVATE_AUTO_REACTIVATE
Programming example
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_ACTIVATE_AUTO_REACTIVATE, 0, 0);
// The "auto reactivate" timeout is activated.
DapiSpecialTimeoutActivateSecureOutputs
This command activates the "secure outputs" timeout.
Description
This command activates the "secure outputs" timeout.
In this mode, write access to the outputs is prevented after a timeout event.
This ensures that the software must first restore a "secure" state of the outputs,
as the module's timeout mechanism has changed the outputs to predefined values.
After the timeout event...
- ...all outputs are switched off
- ..the timeout status is set to "6"
- ..the timeout LED is switched on (for modules that have such a status)
Further access to the outputs is NOT possible. Only after reactivating the
timeout or deactivating the timeout, the outputs can be written to.
Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);
Parameter
cmd = DAPI_SPECIAL_TIMEOUT_ACTIVATE_SECURE_OUTPUTS
Programming example
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_ACTIVATE_SECURE_OUTPUTS, 0, 0);
// The "secure outputs" timeout is activated.
DapiSpecialTimeoutDeactivate
This command deactivates the timeout.
Description
This command deactivates the timeout.
Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);
Parameter
cmd = DAPI_SPECIAL_TIMEOUT_DEACTIVATE
Programming example
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_DEACTIVATE, 0, 0);
// The timeout is deactivated.
DapiSpecialTimeoutGetStatus
This command is used to read out the timeout status.
Description
This command is used to read out the timeout status.
Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, DAPI_SPECIAL_TIMEOUT_GET_STATUS, 0, 0);
Parameter
cmd = DAPI_SPECIAL_TIMEOUT_GET_STATUS
Return value
Return = 0 (timeout is deactivated)
Values for the "normal" timeout
Return = 1 (timeout "normal" is activated)
Return = 2 (timeout "normal" has taken place)
Values for the "auto reactivate" timeout
Return = 3 ("auto reactivate" timeout is activated)
Return = 4 ("auto reactivate" timeout has occurred once or several times)
Values for the "secure" timeout
Return = 5 ("secure" timeout is activated)
Return = 6 (Timeout "secure" has taken place. Writing to the outputs is prevented in this status)
Programming example
unsigned long status = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_GET_STATUS, 0, 0);
printf("Status = %ul\n", status);
//Query the timeout status with output.
Error handling
DapiGetLastError
This function returns the last error recorded.
Description
This function returns the last recorded error. If an error has occurred, it must be cleared with DapiClearLastError(), otherwise every call to DapiGetLastError() will return the "old" error.
If several modules are to be used, the use of DapiGetLastErrorByHandle() is recommended.
Definition
ULONG DapiGetLastError(void);
Parameter
None
Return value
Error code
0=no error. (see delib_error_codes.h)
Programming example
BOOL IsError()
{
unsigned char msg[500];
unsigned long error_code = DapiGetLastError();
if (error_code != DAPI_ERR_NONE)
{
DapiGetLastErrorText((unsigned char*) msg, sizeof(msg));
printf("Error Code = 0x%x * Message = %s\n", error_code, msg);
DapiClearLastError();
return TRUE;
}
return FALSE;
}
DapiGetLastErrorByHandle
This function returns the last error recorded for a specific module using the handle.
Description
This function returns the last error recorded for a specific module using the handle. If an error has occurred, it must be cleared with DapiClearLastErrorByHandle(), otherwise every call to DapiGetLastErrorByHandle() will return the "old" error.
Definition
ULONG DapiGetLastErrorByHandle(ULONG handle);
Parameter
handle=This is the handle of an open module
Return value
Error code
0=no error. (see delib_error_codes.h)
Programming example
BOOL IsError(ULONG handle)
{
unsigned long error_code = DapiGetLastErrorByHandle(handle);
if (error_code != DAPI_ERR_NONE)
{
printf("Error detected on handle 0x%x - Error Code = 0x%x\n", handle, error_code);
DapiClearLastErrorByHandle(handle);
return TRUE;
}
return FALSE;
}
DapiGetLastErrorText
This function reads out the text of the last error recorded.
Description
This function reads out the text of the last recorded error. If an error has occurred, it must be cleared with DapiClearLastError(), otherwise every call to DapiGetLastErrorText() will return the "old" error.
Definition
ULONG DapiGetLastErrorText(unsigned char * msg, unsigned long msg_length);
Parameter
msg = Buffer for the text to be received
msg_length = Length of the text buffer
Programming example
BOOL IsError()
{
unsigned char msg[500];
unsigned long error_code = DapiGetLastError();
if (error_code != DAPI_ERR_NONE)
{
DapiGetLastErrorText((unsigned char*) msg, sizeof(msg));
printf("Error Code = 0x%x * Message = %s\n", error_code, msg);
DapiClearLastError();
return TRUE;
}
return FALSE;
}
DapiClearLastError
This function deletes the last error that was recorded with DapiGetLastError().
Description
This function deletes the last error that was recorded with DapiGetLastError().
Definition
void DapiClearLastError(void);
Parameter
None
Return value
None
Programming example
BOOL IsError()
{
unsigned char msg[500];
unsigned long error_code = DapiGetLastError();
if (error_code != DAPI_ERR_NONE)
{
DapiGetLastErrorText((unsigned char*) msg, sizeof(msg));
printf("Error Code = 0x%x * Message = %s\n", error_code, msg);
DapiClearLastError();
return TRUE;
}
return FALSE;
}
DapiClearLastErrorByHandle
This function deletes the last error of a specific module (handle) that was recorded with DapiGetLastErrorByHandle().
Description
This function deletes the last error of a specific module (handle) that was registered with DapiGetLastErrorByHandle().
Definition
void DapiClearLastErrorByHandle(ULONG handle);
Parameter
handle=This is the handle of an open module.
Return value
None
Programming example
BOOL IsError(ULONG handle)
{
unsigned long error_code = DapiGetLastErrorByHandle(handle);
if (error_code != DAPI_ERR_NONE)
{
printf("Error detected on handle 0x%x - Error Code = 0x%x\n", handle, error_code);
DapiClearLastErrorByHandle(handle);
return TRUE;
}
return FALSE;
}
Test functions
DapiPing
This command checks the connection to an open module.
Description
This command checks the connection to an open module.
Definition
ULONG DapiPing(ULONG handle, ULONG value);
Parameter
handle=This is the handle of an open module
value=Transferred test value, in the value range of 0-255 (8-bit), to the module
Return value
The test value transferred with "value" must be returned here
Connection example DA4/8:
Screwless connector system
The customer-side connection wiring of the inputs and outputs is carried out using screwless, pluggable terminal strips. The conductor connection is made using a so-called actuating tool.
A locking and ejecting mechanism facilitates the insertion and removal of the complete terminal strip.
Handling:
Steps 1-5
Step 1
See the scope of delivery for the operating tool.
Step 2
Insert the operating tool firmly into the side opening in the direction of the conductor connection.
Step 3
Now insert the stripped conductor into the open clamp contact.
Step 4
Pull out the operating tool again.
Step 5
Check that the conductor is properly connected. It should now no longer be possible to pull it out easily.
Manual
Manual UC series
Quickstart - Hardware description - Software description - ICT-Tool
- Safety instructions
- Installing the drivers
- Connecting the power supply
- Connecting to the PC or network
- Connecting the I/O connectors
- Function test
Hardware description
- List of technical data
- Definition of the LEDs
- Functions of switches and buttons
- Pin assignment of the connectors
- Connection examples
Software description
- Control options via the DELIB, protocol level, DELIB CLI, graphical applications
- DELIB Driver Library, DELIB Sample Sources, DELIB for Linux
- Web interface (only for Ethernet modules)
- DELIB API and its functions
ICT-Tool
- Add module on the PC
- Configure module/interface (Ethernet, USB, CAN, serial)
- Setting options for M2M and event control (only for supported modules)
- Test and diagnose module
- Install firmware updates
- Save/load module configurations using a separate file
Software packages ICT-Tool / DELIB driver library
ICT-Tool + DELIB for Windows (64-bit)
For Windows 11/10, Windows 7, Windows 8, Vista, XP and 2000
Software package for the 64-bit version of the ICT-Tool and the DELIB driver library.
The following operating systems are compatible:
64-bit:
- Windows 10/11 x64
- Windows 8 x64
- Windows 7 x64
- Windows Server 2012 x64
- Windows Server 2008 x64
- Windows Vista x64
- Windows XP x64
- Windows Server 2003 x64
- Windows 2000 x64
Supplied software
ICT-Tool x64
- Updating the DEDITEC module-firmware
- Assigning module addresses
- Module-specific settings
- Configuration of CAN modules
- Test and diagnosis of module functions
- Configuration of the watchdog stick
Replaces the following software
- DT-Flasher x64
- DELIB Module Demo x64
- CAN Configuration Utility x64
- DELIB Module Config x64
- DELIB Configuration Utility x64
- Watchdog Configuration Utility x64
DELIB Command Line Interface x64
Enables the execution of DELIB commands in the command line.
ICT-Tool + DELIB for Windows (32-bit)
For Windows 11/10, Windows 7, Windows 8, Vista, XP and 2000
Software package for the 32-bit version of the ICT-Tool and the DELIB driver library.
The following operating systems are compatible:
32-bit:
-
-
- Windows 10/11
- Windows 8
- Windows 7
- Windows Server 2012
- Windows Server 2008
- Windows Vista
- Windows XP
- Windows Server 2003
- Windows 2000
-
Supplied software
ICT-Tool x32
-
-
- Updating the DEDITEC module-firmware
- Assigning module addresses
- Module-specific settings
- Configuration of CAN modules
- Test and diagnosis of module functions
- Configuration of the watchdog stick
-
Replaces the following software
-
-
- DT-Flasher
- DELIB Module Demo
- CAN Configuration Utility
- DELIB Module Config
- DELIB Configuration Utility
- Watchdog Configuration Utility
-
Attention:
With this version of the driver library, only 32-bit applications can be created, which can then be executed on 32- and 64-bit systems.
DELIB driver library for Linux (32/64-bit)
For 32/64-bit Linux distributions from kernel 2.6.x. Version 2.73 from 28.10.2024
DELIB driver library for Linux distributions (32/64-bit) from kernel 2.6.x
This driver package contains the following components
- DELIB USB driver
- DELIB Ethernet driver
- DELIB CLI
DELIB USB driver
Support for the following products:
- NET series (via USB interface)
- RO-USB series
- BS-USB series
- USB mini-sticks
- USB watchdog
- USB-OPTION-8 / USB-RELAY-8
- USB-TTL-32 / USB-TTL-64
Note:
With the standard version of the USB driver, several USB products with different module IDs (e.g. one RO-USB and one USB-OPTOIN-8) can be addressed. No further driver installation is required.
If several USB products with the same module ID (e.g. a USB-OPTOIN-8 and a USB-RELAIS-8) are to be addressed, the Linux FTDI driver must also be installed. You can find the FTDI driver at http://www.ftdichip.com.
DELIB Ethernet driver
Support for the following products:
- NET series (via Ethernet interface)
- RO-ETH series
- RO-ETH/LC series
- BS-ETH series
- ETH-OPTION-8 / ETH-RELAY-8
- ETH-TTL-64
DELIB CLI
With the DELIB CLI (Command Line Interface) for Linux, all commands for digital and analog I/Os can be set directly via the command line
Manual
Manual for ICT-Tool and DELIB
Software Description - ICT-Tool - DELIB API Reference
Software Description
- Control options via DELIB, protocol level, DELIB CLI, graphical applications
- DELIB driver library, DELIB sample sources, DELIB for Linux
- Web interface (only for Ethernet modules)
- DELIB API and its functions
ICT-Tool
- Add module to PC
- Configure module/interface (Ethernet, USB, CAN, Serial)
- Settings for M2M and Event Control (only for supported modules)
- Test and diagnose module
- Install firmware updates
- Save/load module configurations using a separate file
DELIB API Reference
- Directory structure of DELIB
- Management functions
- Error handling
- Manage digital inputs and outputs
- Manage analog inputs and outputs
- Manage software FIFO
- Manage output timeout
- Register read and write commands
Download
Hardware updates (firmware flash file package)
Firmware flash file package for the ICT tool
This package contains the latest firmware files for the following product series:
- STARTER series
- BS series
- RO series
- NET series
- UC series
- CAN-IO-Box
- Development accessories
The firmware flash file package can alternatively be downloaded via the ICT tool.
USB cable A plug to C plug
USB cable for connecting our modules to the control PC.
- Type: USB 2.0, A plug to C plug
- Length: 1 m
5-pin plug connector
Enables the power supply to be connected to the DEDITEC module.
- Type: Phoenix Contact® - 1876343
- 100 % mismatch protected
- For all conductor types from 0.2 mm² to 2.5 mm²
16-pin plug connector
Required for connecting inputs and outputs of the DEDITEC module.
- Type: WAGO® 713-1108/037-000
- Plug-in female multipoint connector with locking mechanism
- 100 % mismatch protected
- 1-wire connection for all conductor types up to 1.5 mm²
Actuating tool for Wago connectors
Used to open and close the terminal contacts on the WAGO® connectors.
- Type: WAGO® - 734-231
USB cable A plug to C plug
USB cable for connecting our modules to the control PC.
- Type: USB 2.0, A plug to C plug
- Length: 1 m
5-pin plug connector
Enables the power supply to be connected to the DEDITEC module.
- Type: Phoenix Contact® - 1876343
- 100 % mismatch protected
- For all conductor types from 0.2 mm² to 2.5 mm²
16-pin plug connector
Required for connecting inputs and outputs of the DEDITEC module.
- Type: WAGO® 713-1108/037-000
- Plug-in female multipoint connector with locking mechanism
- 100 % mismatch protected
- 1-wire connection for all conductor types up to 1.5 mm²
Actuating tool for Wago connectors
Used to open and close the terminal contacts on the WAGO® connectors.
- Type: WAGO® - 734-231
Strain relief plate for 16 or 18-pin Wago connectors
The strain relief plate is pushed onto the center of the female connector and enables the connected cables or strands to be fixed in place.
- Type: WAGO® - 713-127
- Strain relief for the connection wiring
- Suitable for 16 or 18-pole female connectors
- Slide onto the female connector from the side
Top hat rail
Top-hat rail for mounting our control technology modules.
- DIN rail according to DIN EN 50022
- Type: Phoenix Contact® - 1208131
- Dimensions in mm: 450 x 35 x 7.5 (L x W x H)
24V/2A power supply unit for top-hat rail mounting
The DR-4524 from Mean Well is a 48W power supply unit for DIN rail mounting for industrial applications. It offers protection against short circuit, overload, overvoltage and overheating.
- Input voltage range: 85 V.. 264 V AC / 120 V DC ... 370 V DC
- Output voltage: 24 V DC
- Output current: 2 A
- Rated power: 48 W
Typical Application Areas:
- Smart Building & Building Automation:
The control of lighting, air conditioning systems, blinds, or security systems is carried out centrally via USB using the USB analog converter module. - Data logging and measurement data acquisition:
Analog and digital signals are precisely acquired via USB using the UC-USB-DA4/8_16 and transmitted to a system for analysis. - Condition monitoring and predictive maintenance:
Continuous condition monitoring for early fault detection. - Automation technology:
The D/A outputs of the UC-USB-DA4/8_16 enable precise control of actuators and test benches in industrial applications. - Industrial process control:
Analog signals can be flexibly output to actuators and control variables using the USB analog converter module. - Research and development:
Use in laboratories and test environments for scientific experiments and test setups.
Comparison of UC-USB-DA4/8_16 with common market products
Interfaces & Communication |
|||
| Feature | Market Comparison | Advantages of the DEDITEC UC-USB-DA4/8_16</th > | Practical Benefits of the modules |
|---|---|---|---|
| USB Standard | usually only USB-A / B | Thanks to USB-C, it is significantly more modern and faster than typical USB I/O boards | Improves compatibility with current devices and simplifies integration. |
| Number of USB modules that can be used simultaneously | 1–4 modules, often without proper management | Up to 16 modules per system | Enables larger system configurations without additional distributors or expansion devices. |
Analog outputs |
|||
| Feature | Market Comparison | Advantages of the DEDITEC UC-USB-DA4/8_16</th > | Practical Benefits of the modules |
| Analog voltage output | Basic analog outputs, often only 0–5 V or 0–10 V | Precise voltage output over 0–5 V, 0–10 V or ±10 V | Enables precise control of various actuators and reduces the need for external signal converters. |
| Current and voltage output | Some providers offer only voltage or only current | Both signal types supported | Increases compatibility with various industrial and process signals and simplifies integration into existing systems. |
| Low output ripple | Stronger ripple in OEM modules | Low ripple and stable output signals | Improves signal quality and ensures stable output values in sensitive control and regulation applications. |
| Galvanic isolation | Often, there is no isolation from the power supply | Electrical isolation for the module’s power supply | Protects connected devices from interference voltages and prevents feedback between the output stage and the power supply. |
Automation & Diagnostics |
|||
| Feature | Market Comparison | Advantages of the DEDITEC UC-USB-DA4/8_16</th > | Practical Benefits of the modules |
| Diagnostic tools | Mostly not available | Extensive diagnostic capabilities integrated in the ICT tool | Simplifies commissioning, troubleshooting, and long-term analysis through centralized, integrated diagnostic functions. |
| Automated control and monitoring | Additional control PC required | Configurable event control enables automated process monitoring without a control PC | Reduces the need for external control logic and enables automated processes directly within the module. |
Hardware flexibility |
|||
| Feature | Market Comparison | Advantages of the DEDITEC UC-USB-DA4/8_16</th > | Practical Benefits of the modules |
| Supply voltage | Usually fixed (e.g., +24 V) | Flexible +12 V DC … +28 V DC | Facilitates use in various power supply configurations and reduces the need for additional power supplies. |
| EMC stability | Low-cost OEM modules often susceptible to interference | Industrial‑grade EMC design | Ensures low-interference operation in industrial environments with high electromagnetic interference. |
Software & Integration |
|||
| Feature | Market Comparison | Advantages of the DEDITEC UC-USB-DA4/8_16</th > | Practical Benefits of the modules |
| Software integration | Limited drivers | DELIB library for C, C++, C#, Java, VB | Simplifies development through standardized programming interfaces and reduces the effort required for custom driver adaptations. |
| Example programs | Barely available or only upon request | Example programs can be downloaded for free | Accelerates implementation and facilitates the transition to project-specific applications. |
| Firmware updates | Often paid or limited | Free for life | Ensures long-term functionality and enables improvements without additional licensing costs. |
| Example code | Fewer languages or restricted examples | Extensive examples for C, C++, C#, Java, VB, LabView | Supports various development environments and facilitates integration into existing software landscapes. |
| Response times | Partially higher latency with standard I/O | Very fast firmware | Improves real-time performance and enables reliable processing of time-critical signals. |
| System integration | Proprietary systems complicate integration | Easy integration into PLCs, PCs, and test benches | Facilitates integration into existing automation and test systems without extensive modifications. |
| Test system integration | Competitors often more expensive or less flexible | Ideal for automotive and test bench applications | Supports reproducible measurement and test procedures and reduces integration effort in complex test bench environments. |
Mechanical & physical properties |
|||
| Feature | Market Comparison | Advantages of the DEDITEC UC-USB-DA4/8_16</th > | Practical Benefits of the modules |
| Mounting | Depending on the supplier, different or less standard designs may be used. | Mounting on a 35 x 7.5 mm DIN rail for use in control cabinets and decentralized I/O systems. | Enables quick and standards-compliant integration into existing control cabinets. |
Reliability |
|||
| Feature | Market Comparison | Advantages of the DEDITEC UC-USB-DA4/8_16</th > | Practical Benefits of the modules |
| Long-term availability | Typically 3–5 years | 10‑year guaranteed availability | Simplifies long-term plant planning and reduces risks associated with early product discontinuations. |
| Firmware updates | Often paid or limited | Free for life | Ensures continuous functional improvement without additional operating costs. |
| ICT tool | Often multiple tools, fewer functions | One tool for commissioning, diagnostics, loopback testing, long‑term simulation | Simplifies commissioning, diagnostics, and testing procedures through a centralized software solution. |
| Production location | Many manufacturers produce in Asia | Made in Germany | Enables short supply chains, consistent quality assurance, and a reliable supply of spare parts. |
| MTBF | Low-cost OEM modules with shorter lifespan | High MTBF values | Reduces the probability of failure and increases availability in continuous-operation applications. |
| Failure rate | Higher failure rates with low‑cost I/O | Very low field failure rates | Minimizes unplanned downtime and reduces maintenance and service costs. |
| Spare parts availability | Often early discontinuation | Long‑term spare parts availability | Facilitates maintenance and modernization of existing systems over many years. |
Service and support |
|||
| Feature | Market Comparison | Advantages of the DEDITEC UC-USB-DA4/8_16</th > | Practical Benefits of the modules |
| Support quality | Call centers or external service providers | Direct developer support | Enables fast and technically sound problem-solving without the need to escalate issues through external service providers. |
| Response time | Sometimes several days | Very fast response, often same day | Reduces downtime and speeds up the restoration of system operations when technical issues arise. |
| Customization | Rare or very expensive | Custom hardware/firmware possible | Enables project-specific solutions without the need for time-consuming in-house development or additional hardware components. |
| Documentation | Often minimal or incomplete | Comprehensive and practical documentation | Simplifies commissioning and reduces the need for follow-up inquiries thanks to clearly structured and comprehensive technical documentation. |
| Consulting | Often only sales support | Technicians instead of general sales staff | Ensures application-oriented support directly tailored to technical requirements. |
Economy |
|||
| Feature | Market Comparison | Advantages of the DEDITEC UC-USB-DA4/8_16</th > | Practical Benefits of the modules |
| Price-performance ratio | Major brands significantly more expensive | Very good price‑performance ratio | Reduces total cost per channel and enables cost-effective system expansions. |
| License costs | Modbus/features often require additional payment | No additional costs for protocols | Simplifies cost planning and prevents unexpected follow-up costs associated with functional or protocol expansions. |
| Series prices | Large manufacturers often inflexible | Attractive volume pricing | Simplifies budget planning for larger volumes and enables cost-effective scaling of projects. |
You might also like …
-
NET-DEV 16-bit D/A converter – 4/8 channels
Price range: € 416,50 through € 592,62 Incl. 19% VAT plus shipping View Product -
USB 20mA analog industrial I/O box * 16-bit D/A converter with galvanic isolation – 2 channels
€ 646,17 Incl. 19% VAT plus shipping View Product -
TCP D/A converter * Ethernet/USB analog output modules with 8/16/32/64 D/A outputs with 16 bit (Modbus TCP-compatible)
Price range: € 772,91 through € 4.549,97 Incl. 19% VAT plus shipping View Product
Install the installation program and check the module functions.






















