Deditec USB-OPTOIN-8-RELAIS-8, USB-OPTOIN-16-RELAIS-16, USB-OPTOIN-32-RELAIS-32, USB-OPTOIN-32, USB-RELAIS-32 Hardware-Description

...
USB-OPTOIN-X-RELAIS-X
Hardware-Description
2011
November
INDEX
1. Introduction 6
1.1. General remarks 6
1.2. Customer satisfaction 6
1.3. Customer response 6
2. Hardware description 8
2.1. Introduction 8
2.2. Quick installation 9
2.2.1. Step 1 - Installation of the software and driver
2.2.2. Step 2 - Connecting of the module
2.2.3. Step 3 - Testing the connection and the module
2.3. Technical data 10
2.4. Overview screen 11
2.4.1. Overview screen USB-OPTOIN-8-RELAIS-8
2.4.2. Overview screen USB-OPTOIN-16-RELAIS-16
2.4.3. Overview screen USB-OPTOIN-32-RELAIS-32
2.4.4. Overview screen USB-OPTOIN-32
2.4.5. Overview screen USB-RELAIS-32
2.4.6. Overview screen USB-OPTOIN-64
2.4.7. Overview screen USB-RELAIS-64
11 12 13 14 15 16 17
2.5. Pin assignment 18
2.5.1. Pin assignment output channels
2.5.2. Pin assignment input channels
18 19
2.6. J2 - Configuration of the power supply 20
2.7. Outputs 21
2.7.1. Relais outputs
2.7.2. Timeout-protection
2.7.3. Visual control of the outputs
21 21 21
2.8. Inputs 22
Index | 2Seite
INDEX
2.8.1. Registering short input pulses
2.8.2. Galvanically decouppled through optocouplers
2.8.3. Visual control of the inputs
22 22 22
3. Software 24
3.1. Using our products 24
3.1.1. Access via graphical applications
3.1.2. Access via the DELIB driver library
3.1.3. Access via protocol
3.1.4. Access via provided test programs
3.2. DELIB driver library 26
3.2.1. Overview
3.2.1.1. Program under diverse operating systems
3.2.1.2. Program with diverse programming languages
3.2.1.3. Program independent of the interface
3.2.1.4. SDK-Kit for Programmer
3.2.2. Supported operating systems
3.2.3. Supported programming languages
3.2.4. Installation DELIB driver library
3.2.5. DELIB Configuration Utility
3.3. Test programs 34
24 24 24 25
26
26 27 27 27
28 28 29 33
3.3.1. Digital Input-Output Demo
34
4. DELIB API reference 36
4.1. Management functions 36
4.1.1. DapiOpenModule
4.1.2. DapiCloseModule
4.1.3. DapiGetDELIBVersion
4.1.4. DapiSpecialCMDGetModuleConfig
36 37 38 39
4.2. Error handling 41
4.2.1. DapiGetLastError
4.2.2. DapiGetLastErrorText
41 42
4.3. Reading Digital inputs 43
4.3.1. DapiDIGet1
4.3.2. DapiDIGet8
43 44
Index | 3Seite
INDEX
4.3.3. DapiDIGet16
4.3.4. DapiDIGet32
4.3.5. DapiDIGet64
4.3.6. DapiDIGetFF32
4.3.7. DapiDIGetCounter
45 46 47 48 49
4.4. Setting Digital outputs 50
4.4.1. DapiDOSet1
4.4.2. DapiDOSet8
4.4.3. DapiDOSet16
4.4.4. DapiDOSet32
4.4.5. DapiDOSet64
4.4.6. DapiDOReadback32
4.4.7. DapiDOReadback64
50 51 52 53 54 55 56
4.5. Setting Output-timeouts 57
4.5.1. DapiSpecialCMDTimeout
4.5.2. DapiSpecialCMDTimeoutGetStatus
57 58
4.6. Example program 59
5. Appendix 64
5.1. Revisions 64
5.2. Copyrights and trademarks 65
Index | 4Seite
Introduction
I
Introduction |Seite 5
1. Introduction
1.1. General remarks
First of all, we would like to congratulate you to the purchase of a high quality DEDITEC product.
Our products are being developed by our engineers according to quality requirements of high standard. Already during design and development we take care that our products have -besides quality- a long availability and an optimal flexibility.
Modular design
The modular design of our products reduces the time and the cost of development. Therefor we can offer you high quality products at a competitive price.
Availability
Because of the modular design of our products, we have to redesign only a module instead of the whole product, in case a specific component is no longer available.
1.2. Customer satisfaction
Our philosophy: a content customer will come again. Therefor customer satisfaction is in first place for us.
If by any chance, you are not content with the performance of our product, please contact us by phone or mail immediately.
We take care of the problem.
1.3. Customer response
Our best products are co-developments together with our customers. Therefor we are thankful for comments and suggestions.
Introduction |Seite 6
Hardware description
II
Hardware description |Seite 7
2. Hardware description
2.1. Introduction
The USB-OPTOIN-X-RELAIS-X modules provide relays with a maximum switching voltage of 36V DC (max. 1A, 15 watts) and Opto-in inputs, which
are suitable for industrial applications for registration of status or even to count the changes of state of the inputs.
Our USB modules have been developed for industrial applications for measurement, control and regulation. The modules all feature a USB interface and can therefore be connected to PC systems with USB bus. The USB bus has been used successfully for many years in use and is characterized by its high flexibility.
As terminal block, user-friendly terminal strips with locking protection and ejection mechanism are used. They allow quick replugging . The wire connection itself is realised with a screwless connector system. A tool is included with each module.
Hardware description |Seite 8
2.2. Quick installation
2.2.1. Step 1 - Installation of the software and driver
Now install the driver DELIB library with the file "delib_install.exe" from the supplied DEDITEC-Driver CD.
These can be found in the "\zip\DELIB\delib_install.exe" on the DEDITEC-Driver CD.
Note: On our website www.deditec.de you can always find the latest DELIB driver version.
2.2.2. Step 2 - Connecting of the module
Connect your PC via USB cable to the USB connector of the module.
After about 20 seconds, the module is detected by the driver and can now be tested and operated.
2.2.3. Step 3 - Testing the connection and the module
In the Start menu, see "Start -> All Programs -> DEDITEC -> DELIB -> Sample Programs" you will find some example programs to test your module.
Hardware description |Seite 9
2.3. Technical data
Product
Inputs
Outputs
Length x width x height in mm
USB-OPTOIN-8-RELAIS-8
88102,5 x 105 x 74,5
USB-OPTOIN-16-RELAIS-16
16
16
125 x 105 x 74,5
USB-OPTOIN-32
32
-
USB-RELAIS-32
-
32
USB-OPTOIN-32-RELAIS-32
32
32
230 x 105 x 74,5
USB-OPTOIN-64
64
-
USB-RELAIS-64
-
64
USB-Interface (USB 1.1 / USB 2.0) Power supply: +5V (supply occurs over USB bus)
8/16/32/64 opto-coupler inputs (depending on module) Variable input voltage range min 5V, max 30V AC (standard: 15-30V)
Galvanically isolated using opto-couplers Logging of impulses between 2 read out cycles
8/16/32/64 Relay outputs (depending on module)(36V, 1A, 15W, Closer-relay) Timeout protection Galvanically isolated using relays
Operating temperature: 10°C .. 50°C
Product specific data:
Hardware description |Seite 10
2.4. Overview screen
2.4.1. Overview screen USB-OPTOIN-8-RELAIS-8
Hardware description |Seite 11
2.4.2. Overview screen USB-OPTOIN-16-RELAIS-16
Hardware description |Seite 12
2.4.3. Overview screen USB-OPTOIN-32-RELAIS-32
Hardware description |Seite 13
2.4.4. Overview screen USB-OPTOIN-32
Hardware description |Seite 14
2.4.5. Overview screen USB-RELAIS-32
Hardware description |Seite 15
2.4.6. Overview screen USB-OPTOIN-64
Hardware description |Seite 16
2.4.7. Overview screen USB-RELAIS-64
Hardware description |Seite 17
2.5. Pin assignment
Pin
Description
1a
Output Channel 1
1b
Output Channel 1
2a
Output Channel 2
2b
Output Channel 2
3a
Output Channel 3
3b
Output Channel 3
4a
Output Channel 4
4b
Output Channel 4
5a
Output Channel 5
5b
Output Channel 5
6a
Output Channel 6
6b
Output Channel 6
7a
Output Channel 7
7b
Output Channel 7
8a
Output Channel 8
8b
Output Channel 8
2.5.1. Pin assignment output channels
Hardware description |Seite 18
2.5.2. Pin assignment input channels
Pin
Description
1a
Input Channel 1
1b
Input Channel 1
2a
Input Channel 2
2b
Input Channel 2
3a
Input Channel 3
3b
Input Channel 3
4a
Input Channel 4
4b
Input Channel 4
5a
Input Channel 5
5b
Input Channel 5
6a
Input Channel 6
6b
Input Channel 6
7a
Input Channel 7
7b
Input Channel 7
8a
Input Channel 8
8b
Input Channel 8
Hardware description |Seite 19
2.6. J2 - Configuration of the power supply
The configuration of the power supply via a jumper. (J2)
Supply via the USB bus (J3) of the module Jumper pin 1 & 2 (+5V DC)
Supply from an external power supply (J1) Jumper pin 2 & 3 (+7-24V DC)
Hardware description |Seite 20
2.7. Outputs
2.7.1. Relais outputs
The relays are able to switch voltages up to 36V. The max. current is 1A at a max. power of 15W.
Additionally, the relays provide a safe electrical isolation of the module to the connected equipment.
2.7.2. Timeout-protection
The timeout-protection gives the possibility to switch-off automatically the outputs to prevent damage. This takes place, if in a predefined time frame any communication with the module was possible. Reasons could be cable disruption, PC-crash and so on. This way damage control, surcharge of connected equipment and risk of accidents can be avoided.
2.7.3. Visual control of the outputs
The state of each output is directly signalized by a separate LED. This simplifies to detect and rectify wiring errors, because the signals on the cables are directly observable.
Hardware description |Seite 21
2.8. Inputs
2.8.1. Registering short input pulses
Schnelle Zustandswechsel an den Eingängen, die innerhalb von größeren Auslesezyklen auftreten, werden durch eine zusätzliche Logik erfasst und können separat per Software ausgelesen werden.
2.8.2. Galvanically decouppled through optocouplers
AC input opto-couplers provide a galvanic isolation of the module towards the connected equipment. They also provide a safe connection to the module for reverse currents and high voltage peaks.
2.8.3. Visual control of the inputs
The state of each input is directly signalized by a separate LED. This simplifies to detect and rectify wiring errors, because the signals on the cables are directly observable.
Hardware description |Seite 22
Software
III
Software |Seite 23
3. Software
3.1. Using our products
3.1.1. Access via graphical applications
We provide driverinterfaces e.g. for LabVIEW and ProfiLab. The DELIB driver library is the basis, which can be directly activated by ProfiLAB.
For LabVIEW, we provide a simple driver connection with examples!
3.1.2. Access via the DELIB driver library
In the appendix, you can find the complete function reference for the integration of our API-functions in your software. In addition we provide examples for the following programming languages:
C C++ C# Delphi VisualBasic VB.NET MS-Office
3.1.3. Access via protocol
The protocol for the activation of our products is open source. So you are able to use our products on systems without Windows or Linux.
Software |Seite 24
3.1.4. Access via provided test programs
We provide simple handling test programs for the most important functions of our products. These will be installed automatically by the installation of the DELIB driver library.
So you can test directly e.g. relays or you can check the voltage of an A/D converter.
Software |Seite 25
3.2. DELIB driver library
3.2.1. Overview
The following figure explains the structure of the DELIB driver library
The DELIB driver library allows an uniform response of DEDITEC hardware with particular consideration of the following viewpoints:
Independent of operating system Independent of programming language Independent of the product
3.2.1.1. Program under diverse operating systems
The DELIB driver library allows an uniform response of our products on diverse operating systems.
We has made sure, that all of our products can be responded by a few commands. Whatever which operating system you use. - Therefore the DELIB cares!
Software |Seite 26
3.2.1.2. Program with diverse programming languages
We provide uniform commands to create own applications. This will be solved by the DELIB driver library.
You choose the programming language!
It can be simply developed applications under C++, C, Visual Basic, Delphi or LabVIEW®.
3.2.1.3. Program independent of the interface
Write your application independent of the interface ! Program an application for an USB product of us. - Also, it will work with an
ethernet or RS-232 product of us !
3.2.1.4. SDK-Kit for Programmer
Integrate the DELIB in your application. On demand you receive an installation script for free, which allows you, to integrate the DELIB installation in your application.
Software |Seite 27
3.2.2. Supported operating systems
Our products support the following operating systems:
Windows 7 Windows Vista Windows XP Windows 2000 Linux
3.2.3. Supported programming languages
Our products are responsive via the following programming languages:
C C++ C# Delphi VisualBasic VB.NET MS-Office
Software |Seite 28
3.2.4. Installation DELIB driver library
Our DELIB Installer start screen.
Insert the DEDITEC driver CD into the drive and start „delib_install.exe“. The DELIB driver library is also available on http://www.deditec.en/delib
Software |Seite 29
Click on „Install“.
Software |Seite 30
The drivers will be installed.
Software |Seite 31
The DELIB driver library is now installed. Press „Close“ to finish the installation.
You can configure your module with the „DELIB Configuration Utility“ (see next chapter). This is only necessary, if more than one module is present.
Software |Seite 32
3.2.5. DELIB Configuration Utility
Start the “DELIB Configuration Utility” as follows: Start Programs DEDITEC DELIB DELIB Configuration Utility.
The „DELIB Configuration Utility“ is a program to configure and subdivide identical USB-modules in the system. This is only necessary if more than one module is present.
Software |Seite 33
3.3. Test programs
3.3.1. Digital Input-Output Demo
Start “Digital Input-Output Demo” as follows: Start Programme DEDITEC DELIB Digital Input-Output Demo.
The screenshot shows a test of the RO-USB-O64-R64. The configuration of the module (64 inputs and 64 outputs) is shown on the upper left side.
Software |Seite 34
DELIB API reference
IV
DELIB API reference |Seite 35
4. DELIB API reference
// USB-Modul öffnen handle = DapiOpenModule(RO_USB1, 0); printf("handle = %x\n", handle); if (handle==0) { // USB Modul wurde nicht gefunden printf("Modul konnte nicht geöffnet werden\n"); return; }
4.1. Management functions
4.1.1. DapiOpenModule
Description
This function opens a particular module.
Definition
ULONG DapiOpenModule(ULONG moduleID, ULONG nr);
Parameters
moduleID=Specifies the module, which is to be opened (see delib.h) nr=Indicates No of module which is to be opened. nr=0 -> 1. module nr=1 -> 2. module
Return value
handle=handle to the corresponding module handle=0 -> Module was not found
Remarks
The handle returned by this function is needed to identify the module for all other functions.
Example program
DELIB API reference |Seite 36
4.1.2. DapiCloseModule
// Close the module DapiCloseModule(handle);
Description
This command closes an opened module.
Definition
ULONG DapiCloseModule(ULONG handle);
Parameters
handle=This is the handle of an opened module
Return value
none
Example program
DELIB API reference |Seite 37
4.1.3. DapiGetDELIBVersion
version = DapiGetDELIBVersion(0, 0); //Bei installierter Version 1.32 ist version = 132(hex)
Description
This function returns the installed DELIB version.
Definition
ULONG DapiGetDELIBVersion(ULONG mode, ULONG par);
Parameters
mode=Mode, with which the version is readout (must be 0). par=This parameter is not defined (must be 0).
Return value
version=Version number of the installed DELIB version [hex].
Example program
DELIB API reference |Seite 38
4.1.4. DapiSpecialCMDGetModuleConfig
Description
This command returns the hardware equipment (number of in-/output channels) of the module.
Definition
ULONG DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, par, 0, 0);
Parameters
handle=This is the handle of an open module.
Get number of digital input channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI
Get number of digital output channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DO
Get number of digital in-/output channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DX
Get number of analog input channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_AD
Get number of analog output channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DA
Get number of stepper channels
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_STEPPER
DELIB API reference |Seite 39
Return value
ret=DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI, 0, 0); //Gibt die Anzahl der digitalen Eingangskanäle zurück ret=DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DO, 0, 0); //Gibt die Anzahl der digitalen Ausgangskanäle zurück ret=DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DX, 0, 0); //Gibt die Anzahl der digitalen Ein-/Ausgangskanäle zurück ret=DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_AD, 0, 0); //Gibt die Anzahl der analogen Eingangskanäle zurück ret=DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DA, 0, 0); //Gibt die Anzahl der analogen Ausgangskanäle zurück ret=DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_STEPPER, 0, 0); //Gibt die Anzahl der Stepperkanäle zurück
Get number of digital input channels
return=Number of digital input channels
Get number of digital output channels
return=Number of digital output channels
Get number of digital in-/output channels
return=Number of digital in-/output channels
Get number of analog input channels
return=Number of analog input channels
Get number of analog output channels
return=Number of analog output channels
Get number of stepper channels
return=Number of stepper channels
Example program
DELIB API reference |Seite 40
4.2. Error handling
ULONG error; error=DapiGetLastError(); if(error==0) return FALSE; printf("ERROR = %d", error);
4.2.1. DapiGetLastError
Description
This function returns the last registered error.
Definition
ULONG DapiGetLastError();
Parameters
None
Return value
Error code 0=no error. (see delib.h)
Example program
DELIB API reference |Seite 41
4.2.2. DapiGetLastErrorText
BOOL IsError () { if (DapiGetLastError () != DAPI_ERR_NONE)
{ unsigned char msg[500];
DapiGetLastErrorText((unsigned char*) msg, sizeof(msg)); printf ("Error Code = %x * Message = %s\n", 0, msg); return TRUE;
} return FALSE; }
Description
This function reads the text of the last registered error.
Definition
extern ULONG __stdcall DapiGetLastErrorText(unsigned char * msg, unsigned long msg_length);
Parameters
msg = text buffer msg_length = length of the buffer
Example program
DELIB API reference |Seite 42
4.3. Reading Digital inputs
4.3.1. DapiDIGet1
Description
This command reads a single digit input.
Definition
ULONG DapiDIGet1(ULONG handle, ULONG ch);
Parameters
handle=This is the handle of an opened module. ch=Specifies the number of input that is to be read (0 ..).
Return value
State of the input (0 / 1).
DELIB API reference |Seite 43
4.3.2. DapiDIGet8
Description
This command reads 8 digital inputs simultaneously.
Definition
ULONG DapiDIGet8(ULONG handle, ULONG ch);
Parameters
handle=This is the handle of an opened module. ch=Specifies the number of the input, from which it begins to read from (0, 8, 16,
24, 32, ..)
Return value
State of the read inputs.
DELIB API reference |Seite 44
4.3.3. DapiDIGet16
Description
This command reads 16 digital inputs simultaneously.
Definition
ULONG DapiDIGet16(ULONG handle, ULONG ch);
Parameters
handle=This is the handle of an opened module. ch=Specifies the number of the input, from which it begins to read from (0, 16, 32,
..)
Return value
State of the read inputs.
DELIB API reference |Seite 45
4.3.4. DapiDIGet32
unsigned long data; // ---------------------------------------------------­// Einen Wert von den Eingängen lesen (Eingang 1-31) data = (unsigned long) DapiDIGet32(handle, 0); // Chan Start = 0 printf("Eingang 0-31 : 0x%x\n", data); printf("Taste für weiter\n"); getch(); // ---------------------------------------------------­// Einen Wert von den Eingängen lesen (Eingang 32-64) data = (unsigned long) DapiDIGet32(handle, 32); // Chan Start = 32 printf("Eingang 32-64 : 0x%x\n", data); printf("Taste für weiter\n"); getch();
Description
This command reads 32 digital inputs simultaneously.
Definition
ULONG DapiDIGet32(ULONG handle, ULONG ch);
Parameters
handle=This is the handle of an opened module. ch=Specifies the number of the input, from which it begins to read from (0, 32, 64,
..)
Return value
State of the read inputs.
Example program
DELIB API reference |Seite 46
4.3.5. DapiDIGet64
Description
This command reads 64 digital inputs simultaneously.
Definition
ULONGLONG DapiDIGet64(ULONG handle, ULONG ch);
Parameters
handle=This is the handle of an opened module. ch=Specifies the number of the input,from which it begins to read from (0, 64, ..)
Return value
State of the read inputs.
DELIB API reference |Seite 47
4.3.6. DapiDIGetFF32
Description
This command reads the flip-flops from the inputs and resets them. (Input state change).
Definition
ULONG DapiDIGetFF32(ULONG handle, ULONG ch);
Parameters
handle=This is the handle of an opened module . ch=Specifies the number of the input, from which it begins to read from (0, 32, ..)
Return value
State of 32 input change states
DELIB API reference |Seite 48
4.3.7. DapiDIGetCounter
value = DapiDIGetCounter(handle, 0 ,0); // Reading counter of DI Chan 0
value = DapiDIGetCounter(handle, 1 ,0); // Reading counter of DI Chan 1
value = DapiDIGetCounter(handle, 8 ,0); // Reading counter of DI Chan 8
value = DapiDIGetCounter(handle, 0 ,DAPI_CNT_MODE_READ_WITH_RESET); // Reading AND resetting counter of DI Chan 0
value = DapiDIGetCounter(handle, 1, DAPI_CNT_MODE_READ_LATCHED); // Reading the latched counter of DI Chan 1
Description
This command reads the counter of a digital input
Definition
ULONG DapiDIGetCounter(ULONG handle, ULONG ch, ULONG mode);
Parameters
handle=This is the handle of an opened module. ch=Specifies the digital input,from which the counter will be read. mode=0 (Normal counter function) mode=DAPI_CNT_MODE_READ_WITH_RESET (Reading and resetting the
counter) mode=DAPI_CNT_MODE_READ_LATCHED (Reading the latched counter)
Return value
Value of the counter.
Example program
DELIB API reference |Seite 49
4.4. Setting Digital outputs
4.4.1. DapiDOSet1
Description
This is the command to set a single output.
Definition
void DapiDOSet1(ULONG handle, ULONG ch, ULONG data);
Parameters
handle=This is the handle of an opened module ch=Specifies the number of the output to be set to (0 ..) data=Specifies the data value that is to be written (0 / 1)
Return value
None
DELIB API reference |Seite 50
4.4.2. DapiDOSet8
Description
This command sets 8 digital outputs simultaneously.
Definition
void DapiDOSet8(ULONG handle, ULONG ch, ULONG data);
Parameters
handle=This is the handle of an opened module ch=Specifies the number of the output, from which it begins to write to (0, 8, 16, 24,
32, ..) data=Specifies the data values, to write to the outputs
Return value
None
DELIB API reference |Seite 51
4.4.3. DapiDOSet16
Description
This command sets 16 digital outputs simultaneously.
Definition
void DapiDOSet16(ULONG handle, ULONG ch, ULONG data);
Parameters
handle=This is the handle of an opened module ch=Specifies the number of the output, from which it begins to write to (0, 16, 32, ..) data=Specifies the data values, to write to the outputs
Return value
None
DELIB API reference |Seite 52
4.4.4. DapiDOSet32
// Einen Wert auf die Ausgänge schreiben data = 0x0000ff00; // Ausgänge 9-16 werden auf 1 gesetzt DapiDOSet32(handle, 0, data); // Chan Start = 0 printf("Schreibe auf Ausgänge Daten=0x%x\n", data); printf("Taste für weiter\n"); getch(); // ---------------------------------------------------­// Einen Wert auf die Ausgänge schreiben data = 0x80000000; // Ausgang 32 wird auf 1 gesetzt DapiDOSet32(handle, 0, data); // Chan Start = 0 printf("Schreibe auf Ausgänge Daten=0x%x\n", data); printf("Taste für weiter\n"); getch(); // ---------------------------------------------------­// Einen Wert auf die Ausgänge schreiben data = 0x80000000; // Ausgang 64 wird auf 1 gesetzt DapiDOSet32(handle, 32, data); // Chan Start = 32 printf("Schreibe auf Ausgänge Daten=0x%x\n", data); printf("Taste für weiter\n"); getch();
Description
This command sets 32 digital outputs simultaneously.
Definition
void DapiDOSet32(ULONG handle, ULONG ch, ULONG data);
Parameters
handle=This is the handle of an opened module ch=Specifies the number of the output, from which it begins to write to (0, 32, 64, ..) data=Specifies the data values, to write to the outputs
Return value
None
Example program
DELIB API reference |Seite 53
4.4.5. DapiDOSet64
Description
This command is to set 64 digital outputs.
Definition
void DapiDOSet64(ULONG handle, ULONG ch, ULONG data);
Parameters
handle=This is the handle of an opened module ch=Specifies the number of the output, from which it begins to write to (0, 64, ..) data=Specifies the data values, to write to the outputs
Return value
None
DELIB API reference |Seite 54
4.4.6. DapiDOReadback32
Description
This command reads back the 32 digital outputs.
Definition
ULONG DapiDOReadback32(ULONG handle, ULONG ch);
Parameters
handle=This is the handle of an opened module ch=Specifies the number of the input, from which it begins to read from (0, 32, ..)
Return value
Status of 32 outputs.
DELIB API reference |Seite 55
4.4.7. DapiDOReadback64
Description
This command reads back the 64 digital outputs.
Definition
ULONGLONG DapiDOReadback64(ULONG handle, ULONG ch);
Parameters
handle=This is the handle of an opened module ch=Specifies the number of the input, from which it begins to read from (0, 64, ..)
Return value
Status of 64 outputs.
DELIB API reference |Seite 56
4.5. Setting Output-timeouts
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, DAPI_SPECIAL_TIMEOUT_SET_VALUE_SEC, 3, 7); //Die Zeit des Timeouts wird auf 3,7sek gesetzt. DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, DAPI_SPECIAL_TIMEOUT_ACTIVATE, 0, 0); //Der Timeout wird aktiviert. DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, DAPI_SPECIAL_TIMEOUT_DEACTIVATE, 0, 0); //Der Timeout wird deaktiviert.
4.5.1. DapiSpecialCMDTimeout
Description
This command serves to set the timeout time
Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, par1, par2);
Parameters
handle=This is the handle of an opened module
Set timeout time
cmd=DAPI_SPECIAL_CMD_TIMEOUT_SET_VALUE_SEC par1=Seconds [s] par2=Milliseconds [100ms] (value 6 stands for 600ms)
Activate timeout
cmd=DAPI_SPECIAL_CMD_TIMEOUT_ACTIVATE
Deactivate timeout
cmd=DAPI_SPECIAL_CMD_TIMEOUT_DEACTIVATE
Return value
None
Example program
DELIB API reference |Seite 57
4.5.2. DapiSpecialCMDTimeoutGetStatus
status = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, DAPI_SPECIAL_TIMEOUT_GET_STATUS, 0, 0); //Abfrage des Timeout-Status.
Description
This command reads the timeout status.
Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, DAPI_SPECIAL_TIMEOUT_GET_STATUS, 0, 0);
Parameters
handle=This is the handle of an opened module
Return value
Return=0 (timeout is deactivated) Return=1 (timeout is activated) Return=2 (timeout has occurred)
Example program
DELIB API reference |Seite 58
4.6. Example program
//**************************************************************** //**************************************************************** //**************************************************************** //**************************************************************** //**************************************************************** // // // product: usb-optoin-8-relais-8 (ModuleID = USB_OPTOIN_8_RELAIS_8) // configuration: digital-outputs // programming language: vc // // // (c) DEDITEC GmbH, 2011 // web: http://www.deditec.de/ // mail: vertrieb@deditec.de // // //**************************************************************** //**************************************************************** //**************************************************************** //**************************************************************** //**************************************************************** // // // Please include the following library on linking: delib.lib // // This can be done at the project settings (Project/Settings/Link -> // Object/library modules) .. extend the existing line with the ending // "$(DELIB_LIB)\delib.lib" (with quotation marks) // // Including the header file delib.h (Project/Settings/C/C++ -> select category // "Preprocessor" -> Additional inlude directories) .. enter the line // "$(DELIB_INCLUDE)" (with quotation marks)
#include <windows.h> #include <stdio.h> #include "conio.h"
#include "delib.h"
// --------------------------------------------------------------­// GetLastError function
BOOL IsError() {
unsigned char msg[500];
if (DapiGetLastError() != DAPI_ERR_NONE)
{
DapiGetLastErrorText((unsigned char*) msg, sizeof(msg)); printf("Error Code = %x * Message = %s\n", 0, msg);
DELIB API reference |Seite 59
DapiClearLastError();
return TRUE;
}
return FALSE; }
//**************************************************************** //**************************************************************** //**************************************************************** //**************************************************************** //****************************************************************
void main(void) {
unsigned long handle;
unsigned long value;
// ---------------------------------------------------------
// Open Module
handle = DapiOpenModule(USB_OPTOIN_8_RELAIS_8,0);
printf("Module handle = %x\n", handle);
// ---------------------------------------------------------
// Module not found!
if (handle==0)
{
printf("Could not open module!\n"); printf("Press any key to exit\n"); getch(); return;
}
// ---------------------------------------------------------
// Module found!
printf("Module has been opened\n");
// ---------------------------------------------------------
// Show config of module
value = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DO, 0, 0);
IsError();
printf("Configuration of the module: no. of digital outputs %d\n",
value);
printf("Press any key to continue\n");
getch();
// ---------------------------------------------------------
// Write output channels
DELIB API reference |Seite 60
DapiDOSet1(handle, 0, 1);
IsError();
printf("Output channel 0 has been switched on\n");
printf("Press any key to continue\n");
getch();
DapiDOSet1(handle, 0, 0);
IsError();
printf("Output channel 0 has been switched off\n");
printf("Press any key to continue\n");
getch();
DapiDOSet1(handle, 1, 1);
IsError();
printf("Output channel 1 has been switched on\n");
printf("Press any key to continue\n");
getch();
DapiDOSet1(handle, 1, 0);
IsError();
printf("Output channel 1 has been switched off\n");
printf("Press any key to continue\n");
getch();
DapiDOSet8(handle, 0, 0xff); //hexadecimal
IsError();
printf("Output channel 0-7 have been switched on\n");
printf("Press any key to continue\n");
getch();
DapiDOSet8(handle, 0, 0);
IsError();
printf("Output channel 0-7 have been switched off\n");
printf("Press any key to continue\n");
getch();
// ----------------------------------------------------------
// Write and readback output channels
DapiDOSet8(handle, 0, 31);
IsError();
printf("Output channel 0-7 have been switched on\n");
printf("Press any key to continue\n");
getch();
value = DapiDOReadback32(handle, 0);
IsError();
printf("Readback output channel 0-3\n");
printf("value = %d\n", value);
printf("Press any key to continue\n");
getch();
DapiDOSet8(handle, 0, 0);
IsError();
printf("Output channel 0-7 have been switched off\n");
printf("Press any key to continue\n");
DELIB API reference |Seite 61
getch();
value = DapiDOReadback32(handle, 0);
IsError();
printf("Readback output channel 0-3\n");
printf("value = %d\n", value);
printf("Press any key to continue\n");
getch();
// ----------------------------------------------------------
// Set timeout of output channels to 5 seconds
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_SET_VALUE_SEC, 5, 0); IsError(); printf("Timeout has been set to 5 seconds\n"); printf("Press any key to continue\n"); getch();
// ---------------------------------------------------------­// Activate timeout and switch on output channels 0-3
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, DAPI_SPECIAL_TIMEOUT_ACTIVATE, 0, 0); IsError(); DapiDOSet8(handle, 0, 15); IsError(); printf("Timeout has been activated\n"); printf("Output channels 0-3 have been switched on and will be switched off automatically after 5 seconds\n"); printf("Press any key to continue\n"); getch();
// ---------------------------------------------------------­// Deactivate timeout
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_DEACTIVATE, 0, 0); IsError(); printf("Timeout has been deactivated\n"); printf("Press any key to continue\n"); getch();
// ---------------------------------------------------------­// Close Module
DapiCloseModule(handle); printf("Module closed\n"); printf("End of program!\n"); printf("Press any key to exit\n"); getch();
return ;
}
DELIB API reference |Seite 62
Appendix
V
Appendix |Seite 63
5. Appendix
5.1. Revisions
Rev 2.00 First DEDITEC issue
Appendix |Seite 64
5.2. Copyrights and trademarks
Linux is registered trade-mark of Linus Torvalds.
Windows CE is registered trade-mark of Microsoft Corporation.
USB is registered trade-mark of USB Implementers Forum Inc.
LabVIEW is registered trade-mark of National Instruments.
Intel is registered trade-mark of Intel Corporation
AMD is registered trade-mark of Advanced Micro Devices, Inc.
Appendix |Seite 65
Loading...