User Account 1 1
Warenkorb 0  0,00

DELIB-Befehls-Übersicht

Hier finden Sie eine Übersicht von allen verfügbaren DELIB-Befehlen, deren Unterstützung je nach Produkt variieren kann. Ein entsprechendes Programmierbeispiel veranschaulicht die Anwendung.

Verwaltungsfunktionen

Icon Delib Command

DapiOpenModule

Diese Funktion öffnet ein bestimmtes Modul.

Beschreibung
Dieser Befehl schließt ein geöffnetes Modul.

Definition
ULONG DapiCloseModule(ULONG handle);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls

Return-Wert
Keiner

Programmierbeispiel

// Modul schließen
DapiCloseModule(handle);

DapiCloseModule

Dieser Befehl schliesst ein geöffnetes Modul.

Beschreibung
Dieser Befehl schließt ein geöffnetes Modul.

Definition
ULONG DapiCloseModule(ULONG handle);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls

Return-Wert
Keiner

Programmierbeispiel

// Modul schließen
DapiCloseModule(handle);

DapiGetDELIBVersion

Diese Funktion gibt die installierte DELIB-Version zurück.

Beschreibung
Diese Funktion gibt die installierte DELIB-Version zurück.

Definition
ULONG DapiGetDELIBVersion(ULONG mode, ULONG par);

Parameter
mode=Modus, mit dem die Version ausgelesen wird (muss immer 0 sein).
par=Dieser Parameter ist nicht definiert (muss immer 0 sein).

Return-Wert
version=Versionsnummer der installierten DELIB-Version [hex]

Programmierbeispiel

version = DapiGetDELIBVersion(0, 0);
//Bei installierter Version 1.32 ist version = 132(hex)

DapiSpecialCMDGetModuleConfig

Diese Funktion gibt die Hardwareausstattung (Anzahl der Ein- und Ausgangskanäle) des Moduls zurück.

Beschreibung
Diese Funktion gibt die Hardwareausstattung (Anzahl der Ein- und
Ausgangskanäle) des Moduls zurück.

Definition
ULONG DapiSpecialCommand(ULONG handle,
DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, par, 0, 0);

Parameter
handle=Dies ist der Handle eines offenen Moduls
Abfrage der Anzahl der digitalen Eingangskanäle
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI
Abfrage der Anzahl der digitalen Eingangsflipflops
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI_FF
Abfrage der Anzahl der digitalen Eingangszähler (16-Bit-Zähler)
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI_COUNTER
Abfrage der Anzahl der digitalen Eingangszähler (48-Bit-Zähler)
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_CNT48
Abfrage der Anzahl der digitalen Ausgangskanäle
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DO
Abfrage der Anzahl der digitalen Impulsgeberausgänge
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_PULSE_GEN
Abfrage der Anzahl der digitalen PWM-Ausgänge
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_PWM_OUT
Abfrage der Anzahl der digitalen Ein-/Ausgangskanäle
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DX
Abfrage der Anzahl der analogen Eingangskanäle
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_AD
Abfrage der Anzahl der analogen Ausgangskanäle
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DA
Anzahl der Temperaturkanäle abfragen
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_TEMP
Anzahl der Stepperkanäle abfragen
par=DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_STEPPER

Return value
Abfrage der Anzahl der digitalen Eingangskanäle
return=Anzahl der digitalen Eingangskanäle
Abfrage der Anzahl der digitalen Eingangsflipflops
return=Anzahl der digitalen Eingangsflipflops
Abfrage der Anzahl der digitalen Eingangszähler (16-Bit-Zähler)
return=Anzahl der digitalen Eingangszähler (16-Bit-Zähler)
Abfrage der Anzahl der digitalen Eingangszähler (48-Bit-Zähler)
return=Anzahl der digitalen Eingangszähler (48-Bit-Zähler)
Abfrage der Anzahl der digitalen Ausgangskanäle
return=Anzahl der digitalen Ausgangskanäle
Abfrage der Anzahl der digitalen Impulsgeberausgänge
return=Anzahl der digitalen Impulsgeberausgänge
Abfrage der Anzahl der digitalen PWM-Ausgänge
return=Anzahl der digitalen PWM-Ausgänge
Abfrage der Anzahl der digitalen Eingangs-/Ausgangskanäle
return=Anzahl der digitalen Eingangs-/Ausgangskanäle
Abfrage der Anzahl der analogen Eingangskanäle
return=Anzahl der analogen Eingangskanäle
Abfrage der Anzahl der analogen Ausgangskanäle
return=Anzahl der analogen Ausgangskanäle
Abfrage der Anzahl der Temperaturkanäle
return=Anzahl der Temperaturkanäle
Abfrage der Anzahl der Stepperkanäle
return=Anzahl der Stepperkanäle

Programmierbeispiel

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

Diese Funktion öffnet gezielt ein Modul mit Ethernet-Schnittstelle. Dabei können die Parameter IP-Adresse, Portnummer und die Dauer des Timeouts bestimmt werden.

Beschreibung
Diese Funktion öffnet gezielt ein Modul mit Ethernet-Schnittstelle. Dabei können die Parameter IP-Adresse, Portnummer und die Dauer des Timeouts bestimmt werden. Das Öffnen des Moduls geschieht dabei unabhängig von den im DELIB Configuration Utility getroffenen Einstellungen.

Definition
ULONG DapiOpenModuleEx(ULONG moduleID, ULONG nr, unsigned char* exbuffer, 0);

Parameter
moduleID = Gibt das Modul an, welches geöffnet werden soll (siehe delib.h)
nr = Gibt an, welches (bei mehreren Modulen) geöffnet werden soll.
nr = 0 -> 1. Modul
nr = 1 -> 2. Modul
exbuffer = Buffer für IP-Adresse, Portnummer und Dauer des Timeouts

Return-Wert
handle = Entsprechender Handle für das Modul
handle = 0 -> Modul wurde nicht gefunden

Bemerkung
Der von dieser Funktion zurückgegebene Handle wird zur Identifikation des Moduls für alle anderen Funktionen benötigt.
Dieser Befehl wird von allen Modulen mit Ethernet-Schnittstelle unterstützt.

Programmierbeispiel

// 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

Mit dieser Funktion lassen sich alle am USB-Bus angeschlossen Module scannen.

Beschreibung
Mit dieser Funktion lassen sich alle am USB-Bus angeschlossen Module
scannen.
Hierbei wird die Modul-ID und die Modul-Nr. jedes gefundenen Modules ermittelt.

Definition
ULONG DapiScanAllModulesAvailable(uint nr)

Parameter
nr = 0: Es wird nach allen am USB-Bus angeschlossenen Module gesucht
nr = i: Auslesen der einzelnen angeschlossenen Module

Return-Wert
Gibt die Anzahl der gefunden Module wieder.

Programmierbeispiel

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;
}

Fehlerbehandlung

Icon Delib Command

DapiGetLastError

Diese Funktion liefert den letzten erfassten Fehler.

Beschreibung
Diese Funktion liefert den letzten erfassten Fehler. Sofern ein Fehler aufgetreten ist, muss dieser mit DapiClearLastError() gelöscht werden, da sonst jeder Aufruf von DapiGetLastError() den “alten” Fehler zurückgibt.
Sollen mehrere Module verwendet werden, empfielt sich die Verwendung von DapiGetLastErrorByHandle().

Definition
ULONG DapiGetLastError(void);

Parameter
Keine

Return-Wert
Fehler Code
0=kein Fehler. (siehe delib_error_codes.h)

Programmierbeispiel

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

Diese Funktion liefert den letzten erfassten Fehler eines bestimmten Moduls mithilfe des handles.

Beschreibung
Diese Funktion liefert den letzten erfassten Fehler eines bestimmten Moduls mithilfe des handles. Sofern ein Fehler aufgetreten ist, muss dieser mit DapiClearLastErrorByHandle() gelöscht werden, da sonst jeder Aufruf von DapiGetLastErrorByHandle() den “alten” Fehler zurückgibt.

Definition
ULONG DapiGetLastErrorByHandle(ULONG handle);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls

Return-Wert
Fehler Code
0=kein Fehler. (siehe delib_error_codes.h)

Programmierbeispiel

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

Diese Funktion liest den Text des letzten erfassten Fehlers aus.

Beschreibung
Diese Funktion liest den Text des letzten erfassten Fehlers aus. Sofern ein Fehler aufgetreten ist, muss dieser mit DapiClearLastError() gelöscht werden, da sonst jeder Aufruf von DapiGetLastErrorText() den “alten” Fehler zurückgibt.

Definition
ULONG DapiGetLastErrorText(unsigned char * msg, unsigned long msg_length);

Parameter
msg = Buffer für den zu empfangenden Text
msg_length = Länge des Text Buffers

Programmierbeispiel

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

Diese Funktion löscht den letzten Fehler, der mit DapiGetLastError() erfasst wurde.

Beschreibung
Diese Funktion löscht den letzten Fehler, der mit DapiGetLastError() erfasst wurde.

Definition
void DapiClearLastError(void);

Parameter
Keine

Return Wert
Keine

Programmierbeispiel

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

Diese Funktion löscht den letzten Fehler eines bestimmten Moduls (handle), der mit DapiGetLastErrorByHandle() erfasst wurde.

Beschreibung
Diese Funktion löscht den letzten Fehler eines bestimmten Moduls (Handle), der mit DapiGetLastErrorByHandle() registriert wurde.

Definition
void DapiClearLastErrorByHandle(ULONG handle);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls.

Return Wert
Keine

Programmierbeispiel

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;
}

Testfunktionen

Icon Delib Command

DapiPing

Dieser Befehl prüft die Verbindung zu einem geöffneten Modul.

Beschreibung
Dieser Befehl prüft die Verbindung zu einem geöffneten Modul.

Definition
ULONG DapiPing(ULONG handle, ULONG value);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
value=Übergebener Testwert, im Wertebereich von 0-255 (8-Bit), an das Modul

Return-Wert
Hier muss der mit “value” übergebene Testwert zurückkommen

Analoge Ausgabe-Funktionen

Icon Delib Command

DapiDASetMode

Dieser Befehl setzt den Modus für einen D/A-Wandler.

Beschreibung
Dieser Befehl setzt den Modus für einen D/A-Wandler.

Definition
void DapiDASetMode(ULONG handle, ULONG ch, ULONG mode);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt den Kanal des D/A-Wandlers an (0 .. )
mode=Gibt den Modus für den D/A-Wandler an

Return-Wert
Keiner

Bemerkung
Folgende Modi werden unterstützt:
(diese sind abhängig von dem verwendeten D/A-Modul)

Unipolare Spannungen
ADDA_MODE_UNIPOL_10V
ADDA_MODE_UNIPOL_5V
ADDA_MODE_UNIPOL_2V5

Bipolare Spannungen
ADDA_MODE_BIPOL_10V
ADDA_MODE_BIPOL_5V
ADDA_MODE_BIPOL_2V5

Ströme
ADDA_MODE_0_20mA
ADDA_MODE_4_20mA
ADDA_MODE_0_24mA
ADDA_MODE_0_25mA
ADDA_MODE_0_50mA

Programmierbeispiel

// Setzt Kanal 0 auf den Modus 0 .. 10V
DapiDASetMode(handle, 0,  DAPI_ADDA_MODE_16BIT_UNIPOL_10V);

DapiDAGetMode

Dieser Befehl liest den eingestellten Modus eines D/A-Wandlers zurück.

Beschreibung
Dieser Befehl liest den eingestellten Modus eines D/A-Wandlers zurück.

Definition
ULONG DapiDAGetMode(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt den Kanal des D/A-Wandlers an (0 .. )

Return-Wert
Modus des D/A-Wandlers

Programmierbeispiel

// Ließt den aktuellen Modus von Kanal 1 zurück
unsigned long mode;
mode = DapiDAGetMode(handle, 0);
// Modus überprüfen
if(mode == DAPI_ADDA_MODE_16BIT_UNIPOL_10V)
{
printf(“Modus ist 0 .. 10V”);
}

DapiDASet

Dieser Befehl übergibt ein Datenwert an einen Kanal eines D/A-Wandlers.

Beschreibung
Dieser Befehl übergibt ein Datenwert an einen Kanal eines D/A-Wandlers.

Definition
void DapiDASet(ULONG handle, ULONG ch, ULONG data);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt den Kanal des D/A-Wandlers an (0 .. )
data=Gibt den Datenwert an, der geschrieben wird
(16-Bit Datenwert -> Datenwertebereich: 0-65535)

Return-Wert
Keiner

Programmierbeispiel

DapiDASet(handle, 0, 65535);
// Setzt den 1. Ausgang des D/A-Wandlers auf maximalen Wert des
gewählten Modus.
//(bei ausgewähltem Modus ADDA_MODE_UNIPOL_10V wird der 1. Ausgang
des D/A-Wandlers auf 10V gesetzt)

DapiDASetVolt

Dieser Befehl setzt eine Spannung an einen Kanal eines D/A-Wandlers.

Beschreibung
Dieser Befehl setzt eine Spannung an einen Kanal eines D/A-Wandlers.

Definition
void DapiDASetVolt(ULONG handle, ULONG ch, float data);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt den Kanal des D/A-Wandlers an (0 .. )
data=Gibt die Spannung an, die eingestellt werden soll [V]

Return-Wert
Keiner

Programmierbeispiel

DapiDASetVolt(handle, 0, 5,4321);
// Setzt den 1. Ausgang des D/A-Wandlers auf 5,4321 V

DapiDASetmA

Dieser Befehl setzt einen Strom an einen Kanal eines D/A-Wandlers.

Beschreibung
Dieser Befehl setzt einen Strom an einen Kanal eines D/A-Wandlers.

Definition
void DapiDASetmA(ULONG handle, ULONG ch, float data);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt den Kanal des D/A-Wandlers an (0 .. )
data=Gibt den Strom an, der geschrieben wird [mA]

Return-Wert
Keiner

Bemerkung
Dieser Befehl ist modulabhängig. Er funktioniert natürlich nur, wenn das Modul auch den Strom-Modus unterstützt.

DapiSpecialCmdDA

Dieser Befehl setzt die Spannungswerte bei einem Kanal beim Einschalten bzw. nach einem Timeout eines D/A-Wandlers.

Beschreibung
Dieser Befehl setzt die Spannungswerte bei einem Kanal beim Einschalten bzw. nach einem Timeout eines D/A-Wandlers (EEPROM-Konfiguration).

Definition
void DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DA, cmd, ch, 0);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt den Kanal des D/A-Wandlers an (0, 1, 2, ..)
Zurücksetzen der Einstellungen auf Default Konfiguration
cmd=DAPI_SPECIAL_DA_PAR_DA_LOAD_DEFAULT
Speichern der Konfiguration in das EEPROM
cmd=DAPI_SPECIAL_DA_PAR_DA_SAVE_EEPROM_CONFIG
Laden der Konfiguration aus dem EEPROM
cmd=DAPI_SPECIAL_DA_PAR_DA_LOAD_EEPROM_CONFIG

Return-Wert
Keiner

Bemerkung
DAPI_SPECIAL_CMD_DA_PAR_DA_LOAD_DEFAULT
Mit diesem Befehl wird die Default Konfiguration eines D/A-Wandlers geladen.
Der D/A-Wandler hat jetzt als Ausgabespannung 0V.

DAPI_SPECIAL_DA_PAR_DA_SAVE_EEPROM_CONFIG
Mit diesem Befehl wird die aktuelle D/A-Wandler Einstellung (Spannung/Strom-Wert, Enable/Disable und D/A-Wandler Modus) in das EEPROM gespeichert.

DAPI_SPECIAL_DA_PAR_DA_LOAD_EEPROM_CONFIG
Mit diesem Befehl wird der D/A-Wandler, mit der im EEPROM gespeicherten Konfiguration, gesetzt.

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DA, DAPI_SPECIAL_DA_PAR_DA_LOAD_DEFAULT, 1, 0);
//Zurücksetzen der EEPROM-Konfiguration auf Default Konfiguration bei Kanal 1.
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DA, DAPI_SPECIAL_DA_PAR_DA_SAVE_EEPROM_CONFIG, 3, 0);
//Speichern der D/A-Wandler Einstellungen in das EEPROM bei Kanal 3.
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DA, DAPI_SPECIAL_DA_PAR_DA_LOAD_EEPROM_CONFIG, 2, 0);
//Setzen des D/A-Wandlers, mit der im EEPROM gespeicherten Konfiguration bei Kanal 2.

Analoge Eingabe-Funktionen

Icon Delib Command

DapiADSetMode

Dieser Befehl konfiguriert den Spannungsbereich für einen A/D-Wandler.

Beschreibung
Dieser Befehl konfiguriert den Spannungsbereich für einen A/D-Wandler.

Definition
void DapiADSetMode(ULONG handle, ULONG ch, ULONG mode);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt den Kanal des A/D-Wandlers an (0 .. )
mode=Gibt den Modus für den Kanal an

Return-Wert
Keiner

Bemerkung
Folgende Modi werden unterstützt:
(diese sind abhängig von dem verwendeten A/D-Modul)

Unipolare Spannungen (gilt nicht für Module der CAN-Box-Serie)
DAPI_ADDA_MODE_16BIT_UNIPOL_10V
DAPI_ADDA_MODE_16BIT_UNIPOL_5V
DAPI_ADDA_MODE_16BIT_UNIPOL_2V5

Unipolare Spannungen der CAN-Box-Serie
DAPI_ADDA_MODE_16BIT_UNIPOL_40V
(nur CAN-Box 24V-Version)
DAPI_ADDA_MODE_16BIT_UNIPOL_60V
(nur CAN-Box 48V-Version)

Bipolare Spannungen
DAPI_ADDA_MODE_16BIT_BIPOL_10V
DAPI_ADDA_MODE_16BIT_BIPOL_5V
DAPI_ADDA_MODE_16BIT_BIPOL_2V5

Ströme
DAPI_ADDA_MODE_16BIT_0_20mA
DAPI_ADDA_MODE_16BIT_4_20mA
DAPI_ADDA_MODE_16BIT_0_24mA
DAPI_ADDA_MODE_16BIT_0_50mA

Programmierbeispiel

// Setzt Kanal 0 auf den Modus 0 .. 10V
DapiADSetMode(handle, 0,  DAPI_ADDA_MODE_16BIT_UNIPOL_10V);

DapiADGetMode

Dieser Befehl liest den eingestellten Modus eines A/D-Wandlers zurück. Modus-Beschreibung siehe DapiADSetMode.

Beschreibung
Dieser Befehl liest den eingestellten Modus eines A/D-Wandlers zurück. Modus-Beschreibung siehe DapiADSetMode.

Definition
ULONG DapiADGetMode(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt den Kanal des A/D-Wandlers an (0 .. )

Return-Wert
Modus des A/D-Wandlers

Programmierbeispiel

// Ließt den aktuellen Modus von Kanal 1 zurück
unsigned long mode;
mode = DapiADGetMode(handle, 0);
// Modus überprüfen
if(mode == DAPI_ADDA_MODE_16BIT_UNIPOL_10V)
{
printf(“Modus ist 0 .. 10V”);
}

DapiADGet

Dieser Befehl liest einen Datenwert von einen Kanal eines A/D-Wandlers.

Beschreibung
Dieser Befehl liest einen Datenwert von einen Kanal eines A/D-Wandlers.

Definition
ULONG DapiADGet(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt den Kanal des A/D-Wandlers an (0 .. )

Return-Wert
Wert vom A/D-Wandler in Digits

Bemerkung
Der zurückgelesene Wert muss anhand des eingestellten Modus interpretiert werden. Ist der Modus 0 .. 10V eingestellt, entspricht ein Wert von 0x8000 5V. Ist jedoch der Modus -10 .. 10V eingestellt, entspricht der Wert 0x8000 0V.

Programmierbeispiel

// Ließt den Wert von Kanal 1 aus
unsigned long data;
data = DapiADGet(handle, 0);

DapiADGetVolt

Dieser Befehl liest einen Datenwert von einen Kanal eines A/D-Wandlers in Volt.

Beschreibung
Dieser Befehl liest einen Datenwert von einen Kanal eines A/D-Wandlers in Volt.

Definition
float DapiADGetVolt(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt den Kanal des A/D-Wandlers an (0 .. )

Return-Wert
Wert vom A/D-Wandler in Volt

Programmierbeispiel

// Ließt den Wert von Kanal 1 in Volt aus
float data;
data = DapiADGetVolt(handle, 0);

DapiADGetmA

Dieser Befehl liest einen Datenwert eines Kanals eines A/D-Wandlers in mA.

Beschreibung
Dieser Befehl liest einen Datenwert eines Kanals eines A/D-Wandlers in mA.

Definition
float DapiADGetmA(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt den Kanal des A/D-Wandlers an (0 .. )

Return-Wert
Wert vom A/D-Wandler in mA

Bemerkung
Dieser Befehl ist modulabhängig. Er funktioniert natürlich nur, wenn das Modul auch den Strommodus unterstützt.

Programmierbeispiel

// Ließt den Wert von Kanal 1 in mA aus
float data;
data = DapiADGetmA(handle, 0);

DapiReadMultipleAD

Dieser Befehl speichert die Werte bestimmer, benachbarter Kanäle eines A/D-Wandlers gleichzeitig in einen Zwischenpuffer. So können anschließend die Werte nacheinander ausgelesen werden.

Beschreibung
Dieser Befehl speichert die Werte bestimmter, benachbarter Kanäle eines A/D-Wandlers gleichzeitig in einen Zwischenpuffer.
So können anschließend die Werte nacheinander ausgelesen werden. Vorteil hierbei ist, dass die A/D-Werte zum einen gleichzeitig gepuffert werden, zum anderen können die Werte (im Vergleich zum Befehl DapiADGet) anschließend schneller abgefragt werden.

Definition
void DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_AD, DAPI_SPECIAL_AD_READ_MULTIPLE_AD, ULONG start_ch, ULONG end_ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls.
start_ch=Gibt den Start-Kanal des A/D-Wandlers an, ab dem die Werte gepufferten werden (0, 1, 2, ..).
end_ch=Gibt den End-Kanal des A/D-Wandlers an, bis zu dem die Werte gepufferten werden (0, 1, 2, ..).

Return-Wert
Keiner

Bemerkung
Die Werte, die mit Befehl DapiReadMultipleAD gepufferten wurden, können anschließend mit den Befehlen DapiADGetVolt, DapiADGetmA oder DapiADGet gelesen werden. Damit auch wirklich der gepufferte Wert gelesen wird, muss bei diesen Funktionen der Paramater “ch” mit 0x8000 logisch “oder” verknüpft werden (siehe Beispiele).

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD, DAPI_SPECIAL_AD_READ_MULTIPLE_AD, 0, 15);
// Puffert die Werte von A/D-Kanal 0..15

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD, DAPI_SPECIAL_AD_READ_MULTIPLE_AD, 0, 63);
// Puffert die Werte von A/D-Kanal 0..63

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD, DAPI_SPECIAL_AD_READ_MULTIPLE_AD, 16, 31);
// Puffert die Werte von A/D-Kanal 16..31

value = DapiADGetVolt(handle, 0x8000 | 0);
// Gibt den gepufferten Wert von A/D-Kanal 0 in Volt zurück.

value = DapiADGetmA(handle, 0x8000 | 15);
// Gibt den gepufferten Wert von A/D-Kanal 15 in mA zurück.

value = DapiADGet(handle, 0x8000 | 63);
// Gibt den gepufferten Wert von A/D-Kanal 63 in Digits zurück.

DapiSpecialADFilterSet

Mit diesem Befehl lässt sich das A/D-Filterlevel Ihres A/D-Moduls festlegen.

Erklärung
A/D-Wandler mit höherer Auflösung sind sehr präzise Messinstrumente, die bereits kleinste Änderungen am Messsignal erfassen können. In der Praxis
kommt es häufig vor, dass elektrische oder elektromagnetische Störgrößen über die Anschlussleitung auf das Messsignal einwirken und dieses abfälschen. Mit Hilfe eines A/D-Filters lassen sich die Messsignale glätten und optimieren. Der von uns eingesetzte Filter auf Software-Basis ist bereits im Microcontroller integriert worden, durch den der A/D-Wandler angesteuert wird. Per Softwarebefehl können verschiedene Filterlevel eingestellt und auch
zurückgelesen werden. Das Filterprinzip basiert auf einer Mittelwertbildung aus einer Summe von Messungen. Je höher das Filterlevel gewählt wird, desto mehr Messungen werden zur Mittelwertbildung herangezogen. Bedeutet aber auch, dass sich die Abtastrate des A/D-Wandlers mit steigendem Filterlevel reduziert.

Beschreibung
Mit diesem Befehl lässt sich das A/D-Filterlevel Ihres A/D-Moduls festlegen. Je nach Modul, kann die Höhe des einstellbaren Filterlevels variieren.
Bei einem Modul mit mehreren Submodulen kann das A/D-Filterlevel für jedes Submodul einzeln bestimmt werden.
Wird als Filterlevel eine 0 übergeben, wird der Filterlevel deaktiviert.

Definition
void DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD, cmd, par1, par2);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls.
cmd=DAPI_SPECIAL_AD_FILTER_SET
par1=((filterlevel & 0xff) << 8) | (submodule_nr & 0xff)
filterlevel: gibt an, welches Filterlevel gesetzt werden soll
submodule_nr: gibt an, auf welchem Submodule der Filter gesetzt werden soll.
Sollte das Modul keine Submodule besitzen wird der Wert 0xff übergeben.
par2 = 0

Return-Wert
Keiner.

Bemerkung
Bei jedem Neustart des Moduls ist der A/D-Filter zunächst ausgeschaltet und
kann bei Bedarf aktiviert werden. Es empfiehlt sich daher, den A/D-Filter in der
Initialisierung Ihres Projektes festzulegen.

Programmierbeispiel

filterlevel = 10
submodule_nr = 0
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD,
DAPI_SPECIAL_AD_FILTER_SET, ((filterlevel & 0xff) << 8)
| (submodule_nr & 0xff) , 0);
// A/D-Filter des Submoduls 0 wird auf 10 gesetzt
filterlevel = 5
submodule_nr = 3
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD,
DAPI_SPECIAL_AD_FILTER_SET, ((filterlevel & 0xff) << 8)
| (submodule_nr & 0xff) , 0);
// A/D-Filter des Submoduls 3 wird auf 5 gesetzt
filterlevel = 6
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD,
DAPI_SPECIAL_AD_FILTER_SET, ((filterlevel & 0xff) << 8)
| (0xff & 0xff) , 0);
// A/D-Filter des Hauptmoduls wird auf 6 setzt (nur bei Modulen ohne
Submodul)
filterlevel = 2
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD,
DAPI_SPECIAL_AD_FILTER_SET, ((filterlevel & 0xff) << 8)
| (0xff & 0xff) , 0);
// A/D-Filter des Hauptmoduls wird auf 2 setzt (nur bei Modulen ohne
Submodul)

DapiSpecialADFilterGet

Mit diesem Befehl kann die A/D-Filterlevel des A/D-Moduls ausgelesen werden.

Beschreibung
Mit diesem Befehl kann die A/D-Filterlevel des A/D-Moduls ausgelesen werden.
Bei einem Modul mit Submodulen muss die Submodulnummer übertragen werden.

Definition
void DT.Delib.DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD, cmd, par1, par2);

Parameter
handle=Dies ist das handle eines offenen Moduls.
cmd=DAPI_SPECIAL_AD_FILTER_GET
par1=(submodule_nr & 0xff)
submodule_nr: gibt das Submodul an, aus dem der Filter gelesen werden soll.
Wenn das Modul keine Submodule hat, wird der Wert 0xff übertragen
par2 = 0

Return-Wert
A/D-Filterlevel

Programmierbeispiel

unsigned long filterlevel = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_AD, DAPI_SPECIAL_AD_FILTER_GET, (0 &
0xff) , 0);
// A/D-Filter des Submoduls 0 wird ausgelesen
unsigned long filterlevel = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_AD, DAPI_SPECIAL_AD_FILTER_GET, (5 &
0xff) , 0);
// A/D-Filter des Submoduls 5 wird ausgelesen
unsigned long filterlevel = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_AD, DAPI_SPECIAL_AD_FILTER_GET, (0xff
& 0xff) , 0);
// A/D-Filter des Hauptmoduls wird ausgelesen (nur bei Modulen ohne
Submodul)

Analoge Temperatur-Funktionen

Icon Delib Command

DapiTempGet

Dieser Befehl liest einen Temperatur Kanal.

Beschreibung
Dieser Befehl liest einen Temperatur Kanal.

Definition
float DapiTempGet(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangs an, der gelesen werden soll (0, 1, 2, 3, .. )

Return-Wert
Temperatur [°C]

Programmierbeispiel

ret=DapiTempGet(handle, 0)
//gibt die Temperatur von Kanal 0 zurück

DAPI_TEMP_GET_CHAN_GET_STATUS

Dieser Befehl liest den Status des Sensors aus.

Beschreibung
Dieser Befehl liest den Status des Sensors aus.

Definition
float DapiTempGet(ULONG handle, (ULONG par | ULONG ch));

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
par=DAPI_TEMP_GET_CHAN_GET_STATUS
ch=Gibt die Nummer des Eingangs an, der gelesen werden soll (0, 1, 2, 3, .. )

Return-Wert
Status des Sensors

Programmierbeispiel

temp_status = DapiTempGet(handle, (DAPI_TEMP_GET_CHAN_GET_STATUS | ch));

if(temp_status == 0)
{
temp_status_text = “Status OK”;
}
else
{
if((temp_status & 1) != 0)
{
temp_status_text = “Sensor offen”;
}
if ((temp_status & 2) != 0) // Short GND
{
temp_status_text = “Short GND”;
}
if ((temp_status & 4) != 0) // Short VCC
{
temp_status_text = “Short VCC”;
}
}

CNT48-Funktionen

Icon Delib Command

DapiCnt48ModeSet

Dieser Befehl setzt einen Zählmodus (optional auch Submodus) und Eingangsfilter für einen bestimmten Eingangszählerkanal.

Beschreibung
Dieser Befehl setzt einen Zählmodus (optional auch Submodus) und Eingangsfilter für einen bestimmten Eingangszählerkanal.

Definition
void DapiCnt48ModeSet(ULONG handle, ULONG ch, ULONG mode);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Nummer des Eingangszählerkanals, dessen Modus gesetzt werden soll (0, 1, 2, 3, .. )
mode=Gibt den Modus an

Übersicht verfügbare Zählermodi
Mode:
DAPI_CNT48_MODE_COUNT_RISING_EDGE
DAPI_CNT48_MODE_COUNT_RISING_EDGE_X2
DAPI_CNT48_MODE_COUNT_RISING_EDGE_X4
DAPI_CNT48_MODE_T
DAPI_CNT48_MODE_FREQUENCY
DAPI_CNT48_MODE_PWM

Submode:
DAPI_CNT48_SUBMODE_NO_RESET
DAPI_CNT48_SUBMODE_RESET_WITH_READ
DAPI_CNT48_SUBMODE_NO_RESET
DAPI_CNT48_SUBMODE_RESET_WITH_READ 

Mögliche Werte für mode
mode=DAPI_CNT48_MODE_COUNT_RISING_EDGE |
DAPI_CNT48_SUBMODE_NO_RESET
In diesem Modus wird bei steigender Flanke gezählt.

mode=DAPI_CNT48_MODE_COUNT_RISING_EDGE |
DAPI_CNT48_SUBMODE_RESET_WITH_READ
In diesem Modus wird bei steigender Flanke gezählt. Zusätzlich wird bei jedem Lesevorgang der Zähler resettet.

mode=DAPI_CNT48_MODE_COUNT_RISING_EDGE |
DAPI_CNT48_SUBMODE_RESET_ON_CH_7
In diesem Modus wird bei steigender Flanke gezählt. Zusätzlich kann der Zähler über ein externes Signal (letzer Kanal des Moduls = 1) resettet werden.

mode=DAPI_CNT48_MODE_COUNT_RISING_EDGE |
DAPI_CNT48_SUBMODE_LATCH_COMMON
Mit dem Befehl “DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_LATCH_GROUP8, 0, 0)” werden alle 8 Zählerstände der Eingangszähler gleichzeitig in einen Zwischenspeicher (Latch) geschrieben. Mit diesem Modus kann dann der gelatchte Zählerstand ausgelesen werden.

mode=DAPI_CNT48_MODE_T
Mit diesem Modus wird die Periodendauer T gemessen. Als Basis hierbei dient ein 100 MHz Zähler.

mode=DAPI_CNT48_MODE_FREQUENCY
Bei diesem Modus lässt sich die Anzahl der steigenden Flanken innerhalb einer Sekunde (=Frequenz) messen.

mode=DAPI_CNT48_MODE_PWM
Mit diesem Modus werden die “high” und “low” Zeit eines Signals gemessen. Dadurch kann anschließend das Verhältnis bestimmt werden (PWM).

Zusätzlich können alle Eingangszähler mit einem Eingangsfilter (mit einer oder-Verknüpfung) kombiniert werden. Hierzu stehen folgende Eingangsfilter zur Verfügung:
DAPI_CNT48_FILTER_20ns
DAPI_CNT48_FILTER_100ns
DAPI_CNT48_FILTER_250ns
DAPI_CNT48_FILTER_500ns
DAPI_CNT48_FILTER_1us
DAPI_CNT48_FILTER_2_5us
DAPI_CNT48_FILTER_5us
DAPI_CNT48_FILTER_10us
DAPI_CNT48_FILTER_25us
DAPI_CNT48_FILTER_50us
DAPI_CNT48_FILTER_100us
DAPI_CNT48_FILTER_250us
DAPI_CNT48_FILTER_500us
DAPI_CNT48_FILTER_1ms
DAPI_CNT48_FILTER_2_5ms
DAPI_CNT48_FILTER_5ms

Bemerkung
Dieser Befehl wird nur von unserem Modul RO-CNT8 unterstützt.

Programmierbeispiel

DapiCnt48ModeSet(handle, 0, DAPI_CNT48_MODE_COUNT_RISING_EDGE | DAPI_CNT48_SUBMODE_RESET_WITH_READ | DAPI_CNT48_FILTER_20ns);
//Eingangszählerkanal 0 zählt alle Impulse <= 20ns bei steigender Flanke. Zusätzlich wird der Zähler nach Abfrage resettet.
DapiCnt48ModeSet(handle, 1, DAPI_CNT48_MODE_COUNT_RISING_EDGE | DAPI_CNT48_SUBMODE_RESET_ON_CH_7 | DAPI_CNT48_FILTER_500us);
//Eingangszählerkanal 1 zählt alle Impulse <= 500us bei steigender Flanke. Dieser Zähler kann mit einem externen Signal (ch7 = 1) resettet werden.
DapiCnt48ModeSet(handle, 2, DAPI_CNT48_MODE_PWM | DAPI_CNT48_FILTER_5ms);
//Eingangszählerkanal 2 misst alle low-/high Zeiten <= 5ms. Anschließend wird das Verhältnis bestimmt (PWM).

DapiCnt48ModeGet

Dieser Befehl liest den Zählmodus eines bestimmten Eingangszählerkanals zurück.

Beschreibung
Dieser Befehl liest den Zählmodus eines bestimmten Eingangszählerkanals zurück.

Definition
ULONG DapiCnt48ModeGet(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Nummer des Eingangszählerkanals, dessen Modus ausgegeben werden soll (0, 1, 2, 3, .. )

Return-Wert
Zählmodus des Eingangszählerkanals.
(Nähere Informationen / Beschreibung der Bits -> siehe delib.h oder Manual “RO-Registerbelegung”)

Bemerkung
Dieser Befehl wird nur von unserem Modul RO-CNT8 unterstützt.

Programmierbeispiel

value = DapiCnt48ModeGet(handle, 0)
//Gibt den Zählmodus von Eingangszählerkanal 0 zurück
value = DapiCnt48ModeGet(handle, 3)
//Gibt den Zählmodus von Eingangszählerkanal 3 zurück

DapiCnt48CounterGet32

Dieser Befehl liest die ersten 32 Bit eines 48 Bit Eingangszählers.

Beschreibung
Dieser Befehl liest die ersten 32 Bit eines 48 Bit Eingangszählers.

Definition
ULONG DapiCnt48CounterGet32(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangszählerkanals an, der gelesen werden soll (0, 1, 2, 3, .. )

Return-Wert
Ausgabe des Zählerwertes.

Bemerkung
Dieser Befehl wird nur von unseren Modulen RO-CNT8 und RO-CNT/IGR unterstützt.

Programmierbeispiel

value = DapiCnt48CounterGet32(handle, 0);
//gibt den Wert von Eingangszählerkanal 0 aus
value = DapiCnt48CounterGet32(handle, 3);
//gibt den Wert von Eingangszählerkanal 3 aus

DapiCnt48CounterGet48

Dieser Befehl liest einen 48 Bit Zähler eines Eingangszählerkanals.

Beschreibung
Dieser Befehl liest einen 48 Bit Zähler eines Eingangszählerkanals.

Definition
ULONGLONG DapiCnt48CounterGet48(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangszählerkanals an, der gelesen werden soll (0, 1, 2, 3, .. )

Return-Wert
Ausgabe des Zählerwertes.

Bemerkung
Dieser Befehl wird nur von unseren Modulen RO-CNT8 und RO-CNT/IGR unterstützt.

Programmierbeispiel

value = DapiCnt48CounterGet48(handle, 0);
//gibt den Wert von Eingangszählerkanal 0 aus
value = DapiCnt48CounterGet48(handle, 3);
//gibt den Wert von Eingangszählerkanal 3 aus

DapiSpecialCommand - DapiSpecialCNT48ResetSingle

Dieser Befehl resettet den Zählerstand eines einzelnen Eingangszählers.

Beschreibung
Dieser Befehl resettet den Zählerstand eines einzelnen Eingangszählers.

Definition
void DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_RESET_SINGLE, ULONG ch, 0)

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangszählers an, dessen Zählerstand resettet werden soll (0, 1, 2, ..)

Bemerkung
Dieser Befehl wird nur von unserem Modul RO-CNT8 unterstützt.

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_RESET_SINGLE, 0, 0)
// Zählerstand von Eingangszähler 0 wird resettet
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_RESET_SINGLE, 1, 0)
// Zählerstand von Eingangszähler 1 wird resettet

DapiSpecialCommand - DapiSpecialCNT48LatchGroup8

Dieser Befehl speichert die Zählerstände von 8 Eingangszähler gleichzeitig in ein Zwischenspeicher (Latch). So können anschließend alle Zählerstände des Latches nacheinander ausgelesen werden.

Beschreibung
Dieser Befehl speichert die Zählerstände von 8 Eingangszähler gleichzeitig in ein Zwischenspeicher (Latch).
So können anschließend alle Zählerstände des Latches nacheinander ausgelesen werden.
Besonderheit hierbei ist, dass ein gleichzeitiges “Einfrieren” der Zählerstände möglich ist und die eingefrorenen Stände (Latch) dann (langsam) einzeln nacheinander ausgelesen werden können.

Definition
void DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_LATCH_GROUP8, ULONG ch, 0)

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangszählers an, ab dem die Zählerstande von 8 Eingangszählern gelatched werden (0, 8, 16, …)

Bemerkung
Dieser Befehl wird nur von unserem Modul RO-CNT8 unterstützt.
Bitte beachten Sie, dass nur die Zählerstände der Eingangszähler gelatched werden, bei denen zuvor der Modus
“DAPI_CNT48_SUBMODE_LATCH_COMMON” gesetzt wurde. (-> DapiCnt48ModeSet)

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_LATCH_GROUP8, 0, 0)
// Zählerstände der Eingangszähler 0-7 werden gelatched
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_LATCH_GROUP8, 8, 0)
// Zählerstände der Eingangszähler 8-15 werden gelatched

DapiSpecialCommand - DapiSpecialCNT48ResetGroup8

Dieser Befehl resettet gleichzeitig die Zählerstände von 8 Eingangszählern.

Beschreibung
Dieser Befehl resettet gleichzeitig die Zählerstände von 8 Eingangszählern.

Definition
void DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_RESET_GROUP8, ULONG ch, 0)

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangszählers an, ab dem die Zählerstande von 8 Eingangszählern resettet werden (0, 8, 16, …)

Bemerkung
Dieser Befehl wird nur von unserem Modul RO-CNT8 unterstützt.

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_RESET_GROUP8, 0, 0)
// Zählerstände der Eingangszähler 0-7 werden resettet
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_RESET_GROUP8, 8, 0)
// Zählerstände der Eingangszähler 8-15 werden resettet

DapiSpecialCommand - DapiSpecialCNT48DIGet1

Dieser Befehl liest den Eingangszustand (0/1) eines digitalen Eingangszählerkanals.

Beschreibung
Dieser Befehl liest den Eingangszustand (0/1) eines digitalen Eingangszählerkanals.

Definition
ULONG DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_DI_GET1, ULONG ch, 0);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangszählerkanals an, dessen Eingangszustand gelesen werden soll (0, 1, 2, 3, .. )

Return-Wert
Zustand des Eingangszählers (0/1)

Bemerkung
Dieser Befehl wird nur von unserem Modul RO-CNT8 unterstützt.

Programmierbeispiel

value = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_DI_GET1, 0, 0)
// Liest Eingangszustand von Eingangszählerkanal 1
value = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_DI_GET1, 1, 0)
// Liest Eingangszustand von Eingangszählerkanal 2

Digitale Ausgabe-Funktionen

Icon Delib Command

DapiDOSet1

Dieser Befehl setzt einen einzelnen Ausgang.

Beschreibung
Dieser Befehl setzt einen einzelnen Ausgang.

Definition
void DapiDOSet1(ULONG handle, ULONG ch, ULONG data);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des zu setzenden Ausgangs an (0 .. )
data=Gibt den Datenwert an, der geschrieben wird (0 / 1)

Return-Wert
Keiner

Anforderungen
Die folgenden SW-Feature-Bits müssen vom Modul unterstützt werden:

DAPI_SW_FEATURE_BIT_CFG_DO

Die folgenden Bedingungen für die Übergabeparameter müssen eingehalten werden:

maxCh = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DO, 0, 0);
maxCh > ch

Programmierbeispiel

// Ausgang 8 wird auf 1 gesetzt
DapiDOSet1(handle, 7, 1);

DapiDOSet8

Dieser Befehl setzt gleichzeitig 8 digitale Ausgänge.

Beschreibung
Dieser Befehl setzt gleichzeitig 8 digitale Ausgänge.

Definition
void DapiDOSet8(ULONG handle, ULONG ch, ULONG data);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Ausgangs an, ab dem geschrieben werden soll (0, 8, 16, 24, 32, ..)
data=Gibt die Datenwerte an, die geschrieben werden

Return-Wert
Keiner

Programmierbeispiel

// Ausgänge 9-12 werden auf 0 gesetzt
// Ausgänge 13-16 werden auf 1 gesetzt
DapiDOSet8(handle, 8, 0xf0);

DapiDOSet16

Dieser Befehl setzt gleichzeitig 16 digitale Ausgänge.

Beschreibung
Dieser Befehl setzt gleichzeitig 16 digitale Ausgänge.

Definition
void DapiDOSet16(ULONG handle, ULONG ch, ULONG data);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Ausgangs an, ab dem geschrieben werden soll (0, 16, 32, ..)
data=Gibt die Datenwerte an, die geschrieben werden

Return-Wert
Keiner

Programmierbeispiel

// Ausgänge 1-8 werden auf 0 gesetzt
// Ausgänge 9-16 werden auf 1 gesetzt
DapiDOSet16(handle, 0, 0xff00);

DapiDOSet32

Dieser Befehl setzt gleichzeitig 32 digitale Ausgänge.

Beschreibung
Dieser Befehl setzt gleichzeitig 32 digitale Ausgänge.

Definition
void DapiDOSet32(ULONG handle, ULONG ch, ULONG data);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Ausgangs an, ab dem geschrieben werden soll (0, 32, 64, ..)
data=Gibt die Datenwerte an, die geschrieben werden

Return-Wert
Keiner

Programmierbeispiel

// 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();

DapiDOSet64

Dieser Befehl setzt gleichzeitig 64 digitale Ausgänge.

Beschreibung
Dieser Befehl setzt gleichzeitig 64 digitale Ausgänge.

Definition
void DapiDOSet64(ULONG handle, ULONG ch, ULONGLONG data);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Ausgangs an, ab dem geschrieben werden soll (0, 64, ..)
data=Gibt die Datenwerte an, die geschrieben werden

Return-Wert
Keiner

Programmierbeispiel

// Ausgänge 1-32 werden auf 0 gesetzt
// Ausgänge 33-64 werden auf 1 gesetzt
DapiDOSet64(handle, 0, 0xffffffff00000000);

DapiDOReadback32

Dieser Befehl liest die 32 digitalen Ausgänge zurück.

Beschreibung
Dieser Befehl liest die 32 digitalen Ausgänge zurück.

Definition
ULONG DapiDOReadback32(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Ausgangs an, ab dem zurückgelesen werden soll (0, 32, 64, ..)

Return-Wert
Zustand von 32 Ausgängen.

Programmierbeispiel

// Kanal 1-32 zurücklesen
unsigned long data;
data = DapiDOReadback32(handle, 0);

DapiDOReadback64

Dieser Befehl liest die 64 digitalen Ausgänge zurück.

Beschreibung
Dieser Befehl liest die 64 digitalen Ausgänge zurück.

Definition
ULONG DapiDOReadback64(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Ausgangs an, ab dem zurückgelesen werden soll (0, 32, 64, ..)

Return-Wert
Zustand von 64 Ausgängen.

Programmierbeispiel

// Kanal 1-64 zurücklesen
unsigned long data;
data = DapiDOReadback64(handle, 0);

DapiDOSetBit32

Mit diesem Befehl können Ausgänge gezielt auf 1 geschaltet werden, ohne die Zustände der benachbarten Ausgänge zu ändern.

Beschreibung
Mit diesem Befehl können Ausgänge gezielt auf 1 geschaltet werden, ohne die Zustände der benachbarten Ausgänge zu ändern.

Definition
void DapiDOSetBit32(uint handle, uint ch, uint data);

Parameter
handle = Dies ist das Handle eines geöffneten Moduls
ch = Gibt die Nummer des Ausgangs an, ab dem geschrieben werden soll
data = Gibt den Datenwert an, der geschrieben werden soll (bis zu 32 Bit)

Return-Wert
Keiner

Bemerkung
Nur die Bits mit einer Wertigkeit von 1 im data Parameter werden vom Befehl berücksichtigt.

Programmierbeispiel

data = 0x1; // Output 0 would be changed to 1. The states of outputs 1-31 won’t be changed
DapiDOSetBit32(handle, 0, data);

data = 0xf; // Outputs 0-3 would be changed to 1. The states of outputs 4-31 won’t be changed
DapiDOSetBit32(handle, 0, data);

data = 0xff; // Outputs 0-7 would be changed to 1. The states of outputs 8-31 won’t be changed
DapiDOSetBit32(handle, 0, data);

data = 0xff000000; // Outputs 23-31 would be changed to 1. The states of outputs 0-21 won’t be changed
DapiDOSetBit32(handle, 0, data);

DapiDOClrBit32

Mit diesem Befehl können Ausgänge gezielt auf 0 geschaltet werden, ohne die Zustände der benachbarten Ausgänge zu ändern.

Beschreibung
Mit diesem Befehl können Ausgänge gezielt auf 0 geschaltet werden, ohne die Zustände der benachbarten Ausgänge zu ändern.

Definition
void DapiDOClrBit32(uint handle, uint ch, uint data);

Parameter
handle = Dies ist das Handle eines geöffneten Moduls
ch = Gibt die Nummer des Ausgangs an, ab dem geschrieben werden soll
data = Gibt den Datenwert an, der geschrieben werden soll (bis zu 32 Bit)

Return-Wert
Keiner

Bemerkung
Nur die Bits mit einer Wertigkeit von 1 im data Parameter werden vom Befehl berücksichtigt.

Programmierbeispiel

data = 0x1; // Output 0 would be changed to 0. The states of outputs 1-31 won’t be changed
DapiDOSetBit32(handle, 0, data);

data = 0xf; // Outputs 0-3 would be changed to 0. The states of outputs 4-31 won’t be changed
DapiDOSetBit32(handle, 0, data);

data = 0xff; // Outputs 0-7 would be changed to 0. The states of outputs 8-31 won’t be changed
DapiDOSetBit32(handle, 0, data);

data = 0xff000000; // Outputs 23-31 would be changed to 0. The states of outputs 0-21 won’t be changed
DapiDOSetBit32(handle, 0, data);

DapiDOSet1_WithTimer

Diese Funktion setzt einen Digitalausgang (ch) auf einen Wert (data - 0 oder 1) für eine bestimmte Zeit in ms.

Beschreibung
Diese Funktion setzt einen Digitalausgang (ch) auf einen Wert (data – 0 oder 1) für eine bestimmte Zeit in ms.

Definition
void DapiDOSet1_WithTimer(ULONG handle, ULONG ch, ULONG data, ULONG time_ms);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des zu setzenden Ausgangs an (0 .. )
data=Gibt den Datenwert an, der geschrieben wird (0 / 1)
time_ms=Gibt die Zeit an, in der der Ausgang gesetzt wird [ms]

Return-Wert
Keiner

Bemerkung
Dieser Befehl wird von allen Ausgangsmodulen der NET-Serie, sowie von unserem RO-O8-R8 Modul unterstützt.
Dieser Befehl verliert seine Gültigkeit, sofern er mit anderen Werten überschrieben wird.
Möchte man den Befehl deaktivieren, dann muss er mit time_ms=0 überschrieben werden.

Programmierbeispiel

DapiDOSet1_WithTimer(handle, 2, 1, 1000);
//Setting channel 2 for 1000msec to 1

Digitale Eingabe-Counter

Icon Delib Command

DapiDIGet1

Dieser Befehl liest einen einzelnen digitalen Eingang.

Beschreibung
Dieser Befehl liest einen einzelnen digitalen Eingang.

Definition
ULONG DapiDIGet1(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangs an, der gelesen werden soll (0, 1, 2, 3, .. )

Return-Wert
Zustand des Eingangs (0/1)

Anforderungen
Die folgenden SW-Feature-Bits müssen vom Modul unterstützt werden:

DAPI_SW_FEATURE_BIT_CFG_DI

Die folgenden Bedingungen für die Übergabeparameter müssen eingehalten werden:

maxCh = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI, 0, 0);
maxCh > ch

Programmierbeispiel

// 1 Kanal auslesen
unsigned long data;
data = DapiDIGet1(handle, 0);

DapiDIGet8

Dieser Befehl liest gleichzeitig 8 digitale Eingänge.

Beschreibung
Dieser Befehl liest gleichzeitig 8 digitale Eingänge.

Definition
ULONG DapiDIGet8(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangs an, ab dem gelesen werden soll (0, 8, 16, 24, .. )

Return-Wert
Zustand der gelesen Eingänge.

Anforderungen
Die folgenden SW-Feature-Bits müssen vom Modul unterstützt werden:

DAPI_SW_FEATURE_BIT_CFG_DI

Die folgenden Bedingungen für die Übergabeparameter müssen eingehalten werden:

maxCh = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI, 0, 0);
maxCh > ch (ch muss sein 0, 8, 16, …)

Programmierbeispiel

// 8 Kanäle auslesen
unsigned long data;
data = DapiDIGet8(handle, 0);

DapiDIGet16

Dieser Befehl liest gleichzeitig 16 digitale Eingänge.

Beschreibung
Dieser Befehl liest gleichzeitig 16 digitale Eingänge.

Definition
ULONG DapiDIGet16(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangs an, ab dem gelesen werden soll (0, 16, 32, …)

Return-Wert
Zustand der gelesen Eingänge.

Anforderungen
Die folgenden SW-Feature-Bits müssen vom Modul unterstützt werden:

DAPI_SW_FEATURE_BIT_CFG_DI

Die folgenden Bedingungen für die Übergabeparameter müssen eingehalten werden:

maxCh = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI, 0, 0);
maxCh > ch (ch muss sein 0, 16, 32, …)

Programmierbeispiel

// 16 Kanäle auslesen
unsigned long data;
data = DapiDIGet16(handle, 0);

DapiDIGet32

Dieser Befehl liest gleichzeitig 32 digitale Eingänge.

Beschreibung
Dieser Befehl liest gleichzeitig 32 digitale Eingänge.

Definition
ULONG DapiDIGet32(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangs an, ab dem gelesen werden soll (0, 32, 64, ..)

Return-Wert
Zustand der gelesen Eingänge.

Anforderungen
Die folgenden SW-Feature-Bits müssen vom Modul unterstützt werden:

DAPI_SW_FEATURE_BIT_CFG_DI

Die folgenden Bedingungen für die Übergabeparameter müssen eingehalten werden:

maxCh = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI, 0, 0);
maxCh > ch (ch muss sein 0, 32, 64, …)

Programmierbeispiel

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();

DapiDIGet64

Dieser Befehl liest gleichzeitig 64 digitale Eingänge.

Beschreibung
Dieser Befehl liest gleichzeitig 64 digitale Eingänge.

Definition
ULONGLONG DapiDIGet64(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangs an, ab dem gelesen werden soll (0, 64, ..)

Return-Wert
Zustand der gelesen Eingänge.

Anforderungen
Die folgenden SW-Feature-Bits müssen vom Modul unterstützt werden:

DAPI_SW_FEATURE_BIT_CFG_DI

Die folgenden Bedingungen für die Übergabeparameter müssen eingehalten werden:

maxCh = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI, 0, 0);
maxCh > ch (ch muss sein 0 oder 64)

Programmierbeispiel

// 64 Kanäle auslesen
ULONGLONG data;
data = DapiDIGet64(handle, 0);

DapiDIGetFF32

Dieser Befehl liest die Flip-Flops der Eingänge aus und setzt diese zurück.

Beschreibung
Dieser Befehl liest die Flip-Flops der Eingänge aus und setzt diese zurück.

Definition
ULONG DapiDIGetFF32(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangs an, ab dem gelesen werden soll (0, 32, 64, ..)

Return-Wert
Zustand von 32 Eingangszustandsänderungen.

Anforderungen
Die folgenden SW-Feature-Bits müssen vom Modul unterstützt werden:

DAPI_SW_FEATURE_BIT_CFG_DI_FF

Die folgenden Bedingungen für die Übergabeparameter müssen eingehalten werden:

maxCh = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI_FF, 0, 0);
maxCh > ch (ch muss sein 0, 32, 64, …)

DapiDIGetCounter

Dieser Befehl liest den Eingangszähler eines digitalen Eingangs.

Beschreibung
Dieser Befehl liest den Eingangszähler eines digitalen Eingangs.

Definition
ULONG DapiDIGetCounter(ULONG handle, ULONG ch, ULONG mode);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls.
ch=Gibt die Nummer des Eingangs an, ab dem gelesen werden soll.
mode=0 (Normale Zählfunktion)
mode=DAPI_CNT_MODE_READ_WITH_RESET (Zähler auslesen und direktes Counter resetten)
mode=DAPI_CNT_MODE_READ_LATCHED (Auslesen des gespeicherten Zählerstandes)

Return-Wert
Ausgabe des Zählerwertes.

Anforderungen
Die folgenden SW-Feature-Bits müssen vom Modul unterstützt werden:

DAPI_SW_FEATURE_BIT_CFG_DI_CNT

Die folgenden Bedingungen für die Übergabeparameter müssen eingehalten werden:

maxCh = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_MODULE_CONFIG, DAPI_SPECIAL_GET_MODULE_CONFIG_PAR_DI_COUNTER, 0, 0);
maxCh > ch

Programmierbeispiel

value = DapiDIGetCounter(handle, 0 ,0); // Zähler von DI Chan 0 wird gelesen
value = DapiDIGetCounter(handle, 1 ,0); // Zähler von DI Chan 1 wird gelesen
value = DapiDIGetCounter(handle, 8 ,0); // Zähler von DI Chan 8 wird gelesen
value = DapiDIGetCounter(handle, 0 ,DAPI_CNT_MODE_READ_WITH_RESET); // Zähler von DI Chan 0 wird gelesen UND resettet
value = DapiDIGetCounter(handle, 1, DAPI_CNT_MODE_READ_LATCHED); // Auslesen des gespeicherten Zählerstandes von DI Chan 1

DapiSpecialCommand - DapiSpecialCounterLatchAll

Dieser Befehl speichert die Zählerstände aller Eingangszähler gleichzeitig in ein Zwischenspeicher (Latch).

Beschreibung
Dieser Befehl speichert die Zählerstände aller Eingangszähler gleichzeitig in ein Zwischenspeicher (Latch).
So können anschließend alle Zählerstände des Latches nacheinander ausgelesen werden.
Besonderheit hierbei ist, dass ein gleichzeitiges “Einfrieren” der Zählerstände möglich ist und die Eingefrorenen Stände (Latch) dann einzeln nacheinander ausgelesen werden können.

Definition
void DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_COUNTER, DAPI_SPECIAL_COUNTER_LATCH_ALL, 0, 0);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls.
mode=DAPI_SPECIAL_CMD_COUNTER (Es ist ein Counter-Befehl)
mode=DAPI_SPECIAL_COUNTER_LATCH_ALL (Friert alle Zählereingänge ein und stellt diese als Latch bereit)

Bemerkung
Dieser Befehl wird nur von unserem RO-O8-R8 Zeitmodulen unterstützt!

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_COUNTER, DAPI_SPECIAL_COUNTER_LATCH_ALL, 0, 0);

DapiSpecialCommand - DapiSpecialCounterLatchAllWithReset

Dieser Befehl speichert die Zählerstände aller Eingangszähler gleichzeitig in ein Zwischenspeicher (Latch). Zusätzlich werden die Zählerstände der Eingangszähler im Anschluss resettet.

Beschreibung
Dieser Befehl speichert die Zählerstände aller Eingangszähler gleichzeitig in ein Zwischenspeicher (Latch). Zusätzlich werden die Zählerstände der Eingangszähler im Anschluss resettet.

Definition
void DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_COUNTER, DAPI_SPECIAL_COUNTER_LATCH_ALL_WITH_RESET, 0, 0);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls.
mode=DAPI_SPECIAL_CMD_COUNTER (Es ist ein Counter-Befehl)
mode=DAPI_SPECIAL_COUNTER_LATCH_ALL_WITH_RESET (Friert alle Zählereingänge ein und stellt diese als Latch bereit und setzt den Zähler der Eingangskanäle zurück)

Bemerkung
Dieser Befehl wird nur von unserem RO-O8-R8 Zeitmodulen unterstützt!

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_COUNTER, DAPI_SPECIAL_COUNTER_LATCH_ALL_WITH_RESET, 0, 0);

DapiSpecialCommand - DapiSpecialDIFilterValueSet

Dieser Befehl setzt einen Filter [ms], in welchem Zeitintervall digitale Eingangskanäle abgetastet werden.

Beschreibung
Dieser Befehl setzt einen Filter [ms], in welchem Zeitintervall digitale Eingangskanäle abgetastet werden.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DI, DAPI_SPECIAL_DI_FILTER_VALUE_SET, ULONG time_ms, 0);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
time_ms=Zeitintervall [ms], indem digitale Eingangskanäle abgetastet werden.

Bemerkung
Dieser Befehl unterstützt nur Impulszeiten zwischen 5ms und 255ms.
Wird keine Zeit gesetzt, ist der Default-Wert 100ms.
Dieser Befehl wird nicht von unseren Modulen mit Ethernet-Schnittstelle unterstützt

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DI, DAPI_SPECIAL_DI_FILTER_VALUE_SET, 5, 0);
// Setzt das Zeitintervall auf 5ms
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DI, DAPI_SPECIAL_DI_FILTER_VALUE_SET, 150, 0);
// Setzt das Zeitintervall auf 150ms

DapiSpecialCommand - DapiSpecialDIFilterValueGet

Dieser Befehl gibt den vorher festgelegten Wert des Zeitintervalls zur Abtastung der digitalen Eingangskanäle in [ms] zurück.

Beschreibung
Dieser Befehl gibt den vorher festgelegten Wert des Zeitintervalls zur Abtastung der digitalen Eingangskanäle in [ms] zurück.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DI, DAPI_SPECIAL_DI_FILTER_VALUE_GET, 0, 0);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls

Return-Wert
Zeit [ms]

Bemerkung
Dieser Befehl wird nicht von unseren Modulen mit Ethernet-Schnittstelle unterstützt.

Programmierbeispiel

value = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DI, DAPI_SPECIAL_DI_FILTER_VALUE_GET, 0, 0);
//Gibt das Zeitintervall zum Abtasten der digitalen Eingangskanäle zurück.

DapiSpecialCommand - Dapi_Special_DI_FF_Filter_Value_Set

Dieser Befehl setzt einen Filter [ms], in welchem Zeitintervall die Eingangs-Flip-Flops und die Eingangs-Zähler abgefragt werden.

Beschreibung
Dieser Befehl setzt einen Filter [ms], in welchem Zeitintervall die Eingangs-Flip-Flops und die Eingangs-Zähler abgefragt werden.

Definition
void DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DI, DAPI_SPECIAL_DI_FF_FILTER_VALUE_SET, ULONG time_ms, 0);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
time_ms=Zeitintervall [ms], indem digitale Eingangskanäle abgetastet werden.

Bemerkung
Dieser Befehl unterstützt nur Impulszeiten zwischen 5ms und 255ms.
Wird keine Zeit gesetzt, ist der Default-Wert 100ms.
Dieser Befehl wird nicht von unseren Modulen mit Ethernet-Schnittstelle unterstützt.

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DI, DAPI_SPECIAL_DI_FF_FILTER_VALUE_SET, 5, 0);
// Setzt das Zeitintervall auf 5ms
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DI,
DAPI_SPECIAL_DI_FF_FILTER_VALUE_SET, 150, 0);
// Setzt das Zeitintervall auf 150ms

DapiSpecialCommand - Dapi_Special_DI_FF_Filter_Value_Get

Dieser Befehl gibt den vorher festgelegten Wert des Zeitintervalls zur Abtastung der Eingangs-Flip-Flops und der Eingangs-Zähler in [ms] zurück.

Beschreibung
Dieser Befehl gibt den vorher festgelegten Wert des Zeitintervalls zur Abtastung der Eingangs-Flip-Flops und der Eingangs-Zähler in [ms] zurück.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DI, DAPI_SPECIAL_DI_FF_FILTER_VALUE_GET, 0, 0);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls

Return-Wert
Zeit [ms]

Bemerkung
Dieser Befehl wird nicht von unseren Modulen mit Ethernet-Schnittstelle unterstützt.

Programmierbeispiel

value = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_DI, DAPI_SPECIAL_DI_FF_FILTER_VALUE_GET, 0, 0);
//Gibt das Zeitintervall zum Abtasten der digitalen Eingangskanäle zurück.

Puls-Gen-Funktionen

Icon Delib Command

DapiPulseGenSet

Dieser Befehl generiert eine gewisse Anzahl an Impulsen mit vorgegebenen low- und high-Zeiten.

Beschreibung
Dieser Befehl generiert eine gewisse Anzahl an Impulsen mit vorgegebenen low- und high-Zeiten.

Definition
void DapiPulseGenSet(ULONG handle, ULONG ch, ULONG mode, ULONG par0, ULONG par1, ULONG par2);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des zu setzenden Ausgangs an (0, 1, 2, .. )
mode=Modus, mit dem Impulse generiert werden (muss immer 0 sein).
par0=Anzahl der zu erzeugenden Impulsen (par0=0 -> unendlich viele Impulse)
par1=Low-Zeit des Impulses ( t[ns] / 10 – 1)
par2=High-Zeit des Impulses ( t[ns] / 10 – 1)

Beispiel für das Einstellen der low-/high-Zeit (Par1/Par2)
500ns -> 500 / 10 – 1 = 49(dez)
7us -> 7.000 / 10 – 1 = 699(dez)
2,5ms -> 2.500.000 / 10 – 1 = 249.999(dez)

Return-Wert
Keiner

Bemerkung
Wird nur von unseren RO-CNT8 Modulen unterstützt.

Programmierbeispiel

DapiPulseGenSet(handle, 0, 0, 10, 29, 69);
// generiert 10 Impulse an Pulsgenerator-Ausgang 0 mit einer low-Zeit von 300ns und einer high-Zeit von 700ns.
DapiPulseGenSet(handle, 3, 0, 100, 7999, 9999);
// generiert 100 Impulse an Pulsgenerator-Ausgang 3 mit einer low-Zeit von 80us und einer high-Zeit von 100us.
DapiPulseGenSet(handle, 10, 0, 0, 249999, 299999);
// generiert unendlich viele Impulse an Pulsgenerator-Ausgang 10 mit einer low-Zeit von 2,5ms und einer high-Zeit von 3ms.

PWM-Funktionen

Icon Delib Command

DapiPWMOutSet

Dieser Befehl setzt das PWM Verhältnis eines PWM-Kanals.

Beschreibung
Dieser Befehl setzt das PWM Verhältnis eines PWM-Kanals

Definition
void DapiPWMOutSet(ULONG handle, ULONG ch, float data);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Ausgangs an, der gesetzt werden soll
data=PWM-Verhältnis in von 0% bis 100% in 1% Schritten
Kleinstes PWM-Verhältnis ist abhängig von der PWM-Frequenz
10Hz data muss >= 0% sein
100Hz data muss >= 2% sein
250Hz data muss >= 3% sein
1000Hz data muss >= 9% sein

Return-Wert
Keiner

Programmierbeispiel

DapiPWMOutSet(handle, 0, 50);
// Sets the pwm ratio of channel 1 to 50% (50% high, 50% low)
DapiPWMOutSet(handle, 1, 100);
// Sets the pwm ratio of channel 2 to 100% (100% high, 0% low)

DapiPWMOutReadback

Dieser Befehl liest das PWM-Verhältnis eines PWM-Kanals.

Beschreibung
Dieser Befehl liest das PWM-Verhältnis eines PWM-Kanals

Definition
float DapiPWMOutReadback(ULONG handle, ULONG ch);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Ausgangs an, der gelesen werden soll

Return-Wert
PWM Verhältnis des Kanals von 0% bis 100%

Programmierbeispiel

float data = DapiPWMOutReadback(handle, 0);
// Reads the pwm ratio of the first channel
float data = DapiPWMOutReadback(handle, 2);
// Reads the pwm ratio of the second channel

DapiSpecialCommand - DAPI_SPECIAL_PWM_FREQ_SET

Dieser Befehl setzt die PWM Frequenz des Moduls.

Beschreibung
Dieser Befehl setzt die PWM Frequenz des Moduls

Definition
void DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_PWM, cmd, par1, par2);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
cmd=DAPI_SPECIAL_PWM_FREQ_SET
par1=channel area 0 (ch 0-15), 16 (ch 16-31) … usw.
par2=Frequenz = DAPI_PWM_FREQUENCY_10HZ, DAPI_PWM_FREQUENCY_100HZ, DAPI_PWM_FREQUENCY_250HZ oder DAPI_PWM_FREQUENCY_1000Hz

Return-Wert
Keiner

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_PWM, DAPI_SPECIAL_PWM_FREQ_SET, 0, DAPI_PWM_FREQUENCY_100HZ);
// Sets the pwm frequency of the module to 100Hz

DapiSpecialCommand - DAPI_SPECIAL_PWM_FREQ_READBACK

Dieser Befehl liest die aktuelle PWM Frequenz des Moduls.

Beschreibung
Dieser Befehl liest die aktuelle PWM Frequenz des Moduls

Definition
void DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_PWM, cmd, par1, par2);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
cmd=DAPI_SPECIAL_PWM_FREQ_READBACK
par1=0
par2=0

Return-Wert
uint = DAPI_PWM_FREQUENCY_10HZ, DAPI_PWM_FREQUENCY_100HZ, DAPI_PWM_FREQUENCY_250HZ oder DAPI_PWM_FREQUENCY_1000Hz

Programmierbeispiel

uint frequency = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_PWM, DAPI_SPECIAL_PWM_FREQ_READBACK, 0, 0);
// Reads the pwm frequency of the module

Register-Funktionen

Icon Delib Command

DapiWriteByte

Dieser Befehl führt einen direkten Register Schreibbefehl auf das Modul aus.

Beschreibung
Dieser Befehl führt einen direkten Register Schreibbefehl auf das Modul aus.

Definition
void DapiWriteByte(ULONG handle, ULONG adress, ULONG value);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
adress=Adresse, auf die zugegriffen werden soll
value=Gibt den Datenwert an, der geschrieben wird (8-Bit)

Return-Wert
Keiner

Bemerkung
Dies sollte nur von erfahrenen Programmieren benutzt werden. So kann auf alle zur Verfügung stehenden Register direkt zugegriffen werden.

Programmierbeispiel

// Daten werden in das Register 0x10 geschrieben
DapiWriteByte(handle, 0x10, 0xFF);

DapiWriteWord

Dieser Befehl führt einen direkten Register Schreibbefehl auf das Modul aus.

Beschreibung
Dieser Befehl führt einen direkten Register Schreibbefehl auf das Modul aus.

Definition
void DapiWriteWord(ULONG handle, ULONG adress, ULONG value);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
adress=Adresse, auf die zugegriffen werden soll
value=Gibt den Datenwert an, der geschrieben wird (16-Bit)

Return-Wert
Keiner

Bemerkung
Dies sollte nur von erfahrenen Programmieren benutzt werden. So kann auf alle zur Verfügung stehenden Register direkt zugegriffen werden.

Programmierbeispiel

// Daten werden in das Register 0x10 geschrieben
DapiWriteWord(handle, 0x10, 0xFFFF);

DapiWriteLong

Dieser Befehl führt einen direkten Register Schreibbefehl auf das Modul aus.

Beschreibung
Dieser Befehl führt einen direkten Register Schreibbefehl auf das Modul aus.

Definition
void DapiWriteLong(ULONG handle, ULONG adress, ULONG value);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
adress=Adresse, auf die zugegriffen werden soll
value=Gibt den Datenwert an, der geschrieben wird (32-Bit)

Return-Wert
Keiner

Bemerkung
Dies sollte nur von erfahrenen Programmieren benutzt werden. So kann auf alle zur Verfügung stehenden Register direkt zugegriffen werden.

Programmierbeispiel

// Daten werden in das Register 0x10 geschrieben
DapiWriteLong(handle, 0x10, 0xFFFFFFFF);

DapiWriteLongLong

Dieser Befehl führt einen direkten Register Schreibbefehl auf das Modul aus.

Beschreibung
Dieser Befehl führt einen direkten Register Schreibbefehl auf das Modul aus.

Definition
void DapiWriteLongLong(ULONG handle, ULONG adress, ULONGLONG value);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
adress=Adresse, auf die zugegriffen werden soll
value=Gibt den Datenwert an, der geschrieben wird (64-Bit)

Return-Wert
Keiner

Bemerkung
Dies sollte nur von erfahrenen Programmieren benutzt werden. So kann auf alle zur Verfügung stehenden Register direkt zugegriffen werden.

Programmierbeispiel

// Daten werden in das Register 0x10 geschrieben
DapiWriteLongLong(handle, 0x10, 0xFFFFFFFFFFFFFFFF);

DapiReadByte

Dieser Befehl führt einen direkten Register Lese-Befehl auf das Modul aus.

Beschreibung
Dieser Befehl führt einen direkten Register Lese-Befehl auf das Modul aus.

Definition
ULONG DapiReadByte(ULONG handle, ULONG adress);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
adress=Adresse, auf die zugegriffen werden soll

Return-Wert
Inhalt des zu lesenden Registers (8-Bit)

Bemerkung
Dies sollte nur von erfahrenen Programmieren benutzt werden. So kann auf alle zur Verfügung stehenden Register direkt zugegriffen werden.

Programmierbeispiel

// Ließt 8 Bit aus der Adresse 0x0
ULONG data;
data = DapiReadByte(handle, 0x0);

DapiReadWord

Dieser Befehl führt einen direkten Register Lese-Befehl auf das Modul aus.

Beschreibung
Dieser Befehl führt einen direkten Register Lese-Befehl auf das Modul aus.

Definition
ULONG DapiReadWord(ULONG handle, ULONG adress);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
adress=Adresse, auf die zugegriffen werden soll

Return-Wert
Inhalt des zu lesenden Registers (16-Bit)

Bemerkung
Dies sollte nur von erfahrenen Programmieren benutzt werden. So kann auf alle zur Verfügung stehenden Register direkt zugegriffen werden.

Programmierbeispiel

// Ließt 16 Bit aus der Adresse 0x0
ULONG data;
data = DapiReadWord(handle, 0x0);

DapiReadLong

Dieser Befehl führt einen direkten Register Lese-Befehl auf das Modul aus.

Beschreibung
Dieser Befehl führt einen direkten Register Lese-Befehl auf das Modul aus.

Definition
ULONG DapiReadLong(ULONG handle, ULONG adress);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
adress=Adresse, auf die zugegriffen werden soll

Return-Wert
Inhalt des zu lesenden Registers (32-Bit)

Bemerkung
Dies sollte nur von erfahrenen Programmieren benutzt werden. So kann auf alle zur Verfügung stehenden Register direkt zugegriffen werden.

Programmierbeispiel

// Ließt 32 Bit aus der Adresse 0x0
ULONG data;
data = DapiReadLong(handle, 0x0);

DapiReadLongLong

Dieser Befehl führt einen direkten Register Lese-Befehl auf das Modul aus.

Beschreibung
Dieser Befehl führt einen direkten Register Lese-Befehl auf das Modul aus.

Definition
ULONGLONG DapiReadLongLong(ULONG handle, ULONG address);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
address=Adresse, auf die zugegriffen werden soll

Return-Wert
Inhalt des zu lesenden Registers (64-Bit)

Bemerkung
Dies sollte nur von erfahrenen Programmieren benutzt werden. So kann auf alle zur Verfügung stehenden Register direkt zugegriffen werden.

Programmierbeispiel

// Ließt 64 Bit aus der Adresse 0x0
ULONGLONG data;
data = DapiReadLongLong(handle, 0x0);

Software FIFO-Funktionen

Icon Delib Command

DapiSpecialCMDSWFifo

Dieser Befehl dient zum Einstellen des Software FIFO.

Beschreibung
Dieser Befehl dient zum Einstellen des Software FIFO.
Es wird unterschieden zwischen FIFO-OUT (fifo_instance 0 – 3) für D/A- und DOAnwendungen
und FIFO-IN (fifo_instance 4 – 7) für A/D- und DI-Anwendungen.
Weitere Informationen zu den einzelnen Befehlen, finden Sie in den folgenden
Kapiteln und unserem Fifo In/Out Programmierbeispiel.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, par2);

Parameter
handle = Dies ist das Handle eines geöffneten Moduls
cmd = auszuführende Funktion
fifo_instance = Gibt die Instanz des Software FIFO an [0..7]
par2 = Wert, der an die Funktion übergeben wird

Bemerkung
Definieren Sie als erstes immer das Submodul mit dem
DapiSpecialSWFifoSetSubmodule-Befehl!

DapiSpecialSWFifoInitAndClear

Dieser Befehl löscht vorhandene Daten aus dem Software FIFO-Speicher und bringt den FIFO-Mechanismus in den Ausgangszustand zurück.

Beschreibung
Dieser Befehl löscht vorhandene Daten aus dem Software FIFO-Speicher und
bringt den FIFO-Mechanismus in den Ausgangszustand zurück.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_INIT_AND_CLEAR
fifo_instance = Gibt die Instanz des Software FIFO an

Wichtig
Das Interface und die Submodule haben separate Software-Fifos,
deshalb muss der DAPI_SPECIAL_SW_FIFO_INIT_AND_CLEAR Befehl auf beides
angewendet werden.

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_INIT_AND_CLEAR, fifo_instance, 0);
//Vorhandene Daten werden aus dem FIFO-Speicher gelöscht.

DapiSpecialSWFifoSetIOModule

Dieser Befehl gibt an, an welches NET-I/O-Modul die Daten des Software FIFO übergeben werden.

Beschreibung
Dieser Befehl gibt an, an welches NET-I/O-Modul die Daten des Software FIFO
übergeben werden.
Die Submodulreihenfolge die an das Interface-Module angeschlossenen ist,
bestimmt welche Submodulnummer Sie angeben müssen.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, par2);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_SET_IOMODULE
fifo_instance = Gibt die Instanz des Software FIFO an
par2 = gibt die Nummer des I/O-Moduls an (0, 1, 2, 3, …)

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_SET_IOMODULE, fifo_instance, 2);
//Der Software FIFO überträgt die Daten an NET-I/O-Moduls 2.

DapiSpecialSWFifoGetIOModule

Dieser Befehl gibt die Nummer des NET-I/O-Moduls, auf welches die Daten übertragen werden, zurück.

Beschreibung
Dieser Befehl gibt die Nummer des NET-I/O-Moduls, auf welches die Daten
übertragen werden, zurück.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_GET_IOMODULE
fifo_instance = Gibt die Instanz des Software FIFO an

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_GET_IOMODULE, fifo_instance, 0);
printf(“Submodule = %lu\n”, ret);
//Die Nummer des NET-I/O-Moduls wird ausgelesen und dargestellt.

DapiSpecialSWFifoIOModActivate

Dieser Befehl aktiviert die FIFO-Datenübertragung innerhalb der NET-Module.

Beschreibung
Dieser Befehl aktiviert die FIFO-Datenübertragung innerhalb der NET-Module.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_ACTIVATE
fifo_instance = Gibt die Instanz des Software FIFO an

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_ACTIVATE, fifo_instance, 0);
//Das automatische Ausgeben der Fifo-Datenübertragung wird aktiviert.

DapiSpecialSWFifoIOModDeactivate

Dieser Befehl deaktiviert die FIFO-Datenübertragung innerhalb der NET-Module.

Beschreibung
Dieser Befehl deaktiviert die FIFO-Datenübertragung innerhalb der NET-Module.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_DEACTIVATE
fifo_instance = Gibt die Instanz des Software FIFO an

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_DEACTIVATE, fifo_instance, 0);
//Das automatische Ausgeben der Fifo-Datenübertragung wird deaktiviert.

DapiSpecialSWFifoIOModSetChannel

Dieser Befehl gibt unter Angabe von Start- und Endkanal an, in welche Kanäle die Daten des FIFO übertragen werden sollen.

Beschreibung
Dieser Befehl gibt unter Angabe von Start- und Endkanal an, in welche Kanäle
die Daten des FIFO übertragen werden sollen.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, ch);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_SET_CHANNEL
fifo_instance = Gibt die Instanz des Software FIFO an
ch = Angabe des Start- und Endkanals

Programmierbeispiel

unsigned long ch_start = 0; //Start with Channel 0
unsigned long ch_end = 1; //End with Channel 1
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_SET_CHANNEL, fifo_instance,
((ch_end << 8) & 0xff00) | (ch_start & 0xff);
//Der Start- und Endkanal wird festgelegt

DapiSpecialSWFifoIOModGetChannel

Dieser Befehl zeigt die Kanäle, in welche die Daten übertragen werden.

Beschreibung
Dieser Befehl zeigt die Kanäle, in welche die Daten übertragen werden.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_GET_CHANNEL
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Nummer der Kanäle
Bit 0-7 Startkanal
Bit 8-15 Endkanal

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_GET_CHANNEL, fifo_instance,
0);
printf(“Channel = %lu\n”, ret);
//Zeigt auf in welche Submodulkanäle die Daten
übertragen werden.

DapiSpecialSWFifoIOModSetFrequencyHz

Dieser Befehl gibt an, mit welcher Frequenz (in Hertz) bei Eingabe gelesen wird und bei Ausgabe geschrieben wird.

Beschreibung
Dieser Befehl gibt an, mit welcher Frequenz (in Hertz) ..
.. bei Eingabe gelesen wird.
.. bei Ausgabe geschrieben wird.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, par2);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_SET_FREQUENCY_HZ
fifo_instance = Gibt die Instanz des Software FIFO an
par2 = Frequenz in Hertz (Hz)

Bemerkung
Zulässiger Wertebereich: min 1Hz, max. abhängig vom verwendeten Modul

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_SET_FREQUENCY_HZ,
fifo_instance, 10);
//Setzt das Frequenzintervall auf 10Hz.

DapiSpecialSWFifoIOModGetFrequencyHz

Dieser Befehl gibt die eingestellte Frequenz des NET-I/O-Moduls in Hertz wieder.

Beschreibung
Dieser Befehl gibt die eingestellte Frequenz des NET-I/O-Moduls in Hertz wieder.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_GET_FREQUENCY_HZ
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Frequenz in Hertz (Hz)

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_GET_FREQUENCY_HZ,
fifo_instance, 0);
printf(“Frequency = %lu (Hz)\n”, ret);
//Zeigt das vorher eingestellte Frequenz des NET-I/O-Moduls an.

DapiSpecialSWFifoIOModSetMode

Dieser Befehl setzt den Software FIFO-Mode.

Beschreibung
Dieser Befehl setzt den Software FIFO-Mode.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, par2);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_SET_MODE
fifo_instance = Gibt die Instanz des Software FIFO an

par2 = Software FIFO Mode Wert(hex)
DAPI_SPECIAL_SW_FIFO_MODE_IN_AD16 0x40
DAPI_SPECIAL_SW_FIFO_MODE_IN_AD16_TS 0xc0
DAPI_SPECIAL_SW_FIFO_MODE_IN_AD18 0x41
DAPI_SPECIAL_SW_FIFO_MODE_IN_AD18_TS 0xc1
DAPI_SPECIAL_SW_FIFO_MODE_IN_DI8 0x60
DAPI_SPECIAL_SW_FIFO_MODE_IN_DI8_TS 0xe0
DAPI_SPECIAL_SW_FIFO_MODE_IN_DI16 0x61
DAPI_SPECIAL_SW_FIFO_MODE_IN_DI16_TS 0xe1

Bemerkung
Der Software FIFO-Mode kann sowohl mit als auch ohne Timestamp (TS) eingestellt werden.

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_SET_MODE, fifo_instance, 0);
//Der Software FIFO-Mode wird gesetzt.

DapiSpecialSWFifoIOModGetMode

Dieser Befehl gibt den vorher eingestellten FIFO-Mode wieder. Aktuell wird dieser in der Firmware noch nicht unterstützt.

Beschreibung
Dieser Befehl gibt den vorher eingestellten FIFO-Mode wieder. Aktuell wird dieser
in der Firmware noch nicht unterstützt.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_GET_MODE
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
FIFO Software Mode

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_GET_MODE, fifo_instance, 0);
printf(“Mode = %lu\n”, ret);
//Gibt den vorher eingestellten FIFO Mode wieder.

DapiSpecialSWFifoIOModIOActivate

Dieser Befehl aktiviert die FIFO- I/O Ein-/Ausgabe.

Beschreibung
Dieser Befehl aktiviert die FIFO- I/O Ein-/Ausgabe.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_IO_ACTIVATE
fifo_instance = Gibt die Instanz des Software FIFO an

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_IO_ACTIVATE, fifo_instance,
0);
//Das automatische Ausgeben des FIFO an das Modul wird aktiviert.

DapiSpecialSWFifoIOModIODeactivate

Dieser Befehl deaktiviert die FIFO- I/O Ein-/Ausgabe.

Beschreibung
Dieser Befehl deaktiviert die FIFO- I/O Ein-/Ausgabe.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_IO_DEACTIVATE
fifo_instance = Gibt die Instanz des Software FIFO an

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_IO_DEACTIVATE,
fifo_instance, 0);
//Das automatische Ausgeben des FIFO an das Modul wird deaktiviert.

DapiSpecialSWFifoIOModGetBytesPerSample

Dieser Befehl gibt an wieviel Bytes für das Schreiben in den D/A-Wandler notwendig sind.

Beschreibung
Dieser Befehl gibt an wieviel Bytes für das Schreiben in den D/A-Wandler notwendig sind.
Beispiel: Werden bei einem 16 Bit (2Byte) D/A-Wandler 3 D/A-Kanäle beschrieben, werden also 3×2 Bytes pro Sample benötigt. Der Wert 6 wird wiedergeben.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_GET_BYTES_PER_SAMPLE
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Benötigte Bytes pro Sample

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_GET_BYTES_PER_SAMPLE, fifo_instance, 0);
printf(“Benoetigte Bytes = %lu\n”, ret);
//Ausgabe der notwendigen Bytes pro Sample.

DapiSpecialSWFifoIOModGetBytesAvailable

Dieser Befehl gibt an, wie viel Bytes zum schreiben zur Verfügung stehen.

Beschreibung
Dieser Befehl gibt an, wie viel Bytes zum schreiben zur Verfügung stehen.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_GET_BYTES_AVAILABLE
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Anzahl der Bytes

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_GET_BYTES_AVAILABLE,
fifo_instance, 0);
printf(“Verfügbaren Bytes = %lu\n”, ret);
//Anzahl Bytes.

DapiSpecialSWFifoIOModGetBytesFree

Dieser Befehl gibt an, wie viel Bytes im Software Fifo des Submodules noch frei sind.

Beschreibung
Dieser Befehl gibt an, wie viel Bytes im Software Fifo des Submodules noch frei sind.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_GET_BYTES_FREE
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Anzahl der Bytes

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_GET_BYTES_FREE,
fifo_instance, 0);
printf(“Freie Fifo Bytes = %lu\n”, ret);
//Anzahl Bytes.

DapiSpecialSWFifoIOModGetStatTXCnt

Gibt an, wie viele Pakete vom Submodul an den Software Fifo gesendet wurden.

Beschreibung
Gibt an, wie viele Pakete vom Submodul an den Software Fifo gesendet wurden.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_GET_STAT_TX_CNT
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Anzahl der Bytes

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_GET_STAT_TX_CNT,
fifo_instance, 0);
printf(“Gesendete Datenpakete = %lu\n”, ret);
//Ausgabe der Bytes

DapiSpecialSWFifoIOModGetStatTXErrCnt

Gibt an, wie oft Fehler beim Senden der Datenpakete an den Software Fifo auftraten.

Beschreibung
Gibt an, wie oft Fehler beim Senden der Datenpakete an den Software Fifo auftraten.
Fehler treten auf, wenn zum Beispiel der Fifo überläuft.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_GET_STAT_TX_ERR_CNT
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Anzahl der aufgetretenen Fehler beim Senden der Bytes

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_GET_STAT_TX_ERR_CNT,
fifo_instance, 0);
printf(“Verfügbaren Bytes = %lu\n”, ret);
//Ausgabe der Anzahl an aufgetretenen Fehler beim senden der Bytes

DapiSpecialSWFifoIOModGetStatRXCnt

Gibt an, wie viele Datenpakete vom Software Fifo empfangen wurden.

Beschreibung
Gibt an, wie viele Datenpakete vom Software Fifo empfangen wurden.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_GET_STAT_RX_CNT
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Anzahl der empfangenen Bytes

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_GET_STAT_RX_CNT,
fifo_instance, 0);
printf(“Verfügbaren Bytes = %lu\n”, ret);
//Anzahl der empfangen Bytes.

DapiSpecialSWFifoIOModGetStatRXErrCnt

Gibt an, wie oft Fehler beim Empfangen der Datenpakete Fehler auftraten.

Beschreibung
Gibt an, wie oft Fehler beim Empfangen der Datenpakete Fehler auftraten.
Fehler treten auf, wenn keine Daten im Fifo vorhanden sind, ein Abruf aber
stattfindet.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_IOMOD_GET_STAT_RX_ERR_CNT
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Anzahl der aufgetretenen Fehler beim Empfangen der Bytes

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_IOMOD_GET_STAT_RX_ERR_CNT,
fifo_instance, 0);
printf(“Verfügbaren Bytes = %lu\n”, ret);
//Ausgabe der Anzahl an aufgetretenen Fehler beim Empfangen der Bytes

DapiSpecialSWFifoGetStatus

Mit diesem Befehl können Statuswerte abgerufen werden.

Beschreibung
Mit diesem Befehl können Statuswerte abgerufen werden.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_GET_STATUS
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert

Befehl Beschreibung
(FIFO-Status erzeugt einen Return-Wert…)
Wert(hex)
DAPI_SPECIAL_SW_FIFO_
STATUS_IS_ACTIVE
… wenn die Ausgabe des D/AWandlers aktiv ist 0x01
DAPI_SPECIAL_SW_FIFO_
STATUS_IO_IS_ACTIVE
… wenn die Ausgabe des FIFO I/O aktiv ist 0x02
DAPI_SPECIAL_SW_FIFO_
STATUS_FIFO_OVERFLOW
… wenn zuviele Daten in den FIFO geschrieben werden 0x04
DAPI_SPECIAL_SW_FIFO_
STATUS_FIFO_UNDERRUN
… wenn der FIFO leer läuft (es soll eine Ausgabe am I/O-Modul stattfinden, aber es sind keine Daten im Fifo vorhanden) 0x08
DAPI_SPECIAL_SW_FIFO_
STATUS_FIFO_OUT_OF_SYNC
… wenn die FIFO-Kommunikation innerhalb der Module unterbrochen ist 0x10

 

Programmierbeispiel

unsigned long ret;
ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,DAPI_SPECIAL_SW_FIFO_GET_STATU
S, fifo_instance, 0);
if((ret & 0x01) != 0) {printf(“is_active”);}
if((ret & 0x02) != 0) {printf(“io_is_active”);}
if((ret & 0x04) != 0) {printf(“fifo_overflow”);}
if((ret & 0x08) != 0) {printf(“fifo_underrun”);}
if((ret & 0x10) != 0) {printf(“fifo_out_of_sync);}

DapiSpecialSWFifoGetStatusBytesOut

Dieser Befehl gibt an, wie viel Bytes gesendet wurden.

Beschreibung
Dieser Befehl gibt an, wie viel Bytes gesendet wurden.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_GET_STATUS_BYTES_OUT
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Anzahl der gesendeten Bytes

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_GET_STATUS_BYTES_OUT,
fifo_instance, 0);
printf(“Bytes gesendet = %lu\n”, ret);
//Ausgabe der bereits gesendeten Bytes

DapiSpecialSWFifoGetBytesFree

Dieser Befehl dient zum Auslesen der freien Bytes im Software FIFO-Buffer.

Beschreibung
Dieser Befehl dient zum Auslesen der freien Bytes im Software FIFO-Buffer.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_GET_BYTES_FREE
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Freie Bytes des Software FIFO

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_GET_BYTES_FREE, fifo_instance, 0);
printf(“Freier Speicher = %lu\n”, ret);
//Ausgabe der noch freien Bytes des Speichers.

DapiSpecialSWFifoGetActivity

Mit diesem Befehl wird der Übertragungs-Status des FIFO abgerufen (ob aktiv oder inaktiv).

Beschreibung
Mit diesem Befehl wird der Übertragungs-Status des FIFO abgerufen (ob aktiv oder inaktiv).

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_GET_ACTIVITY
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert
Return = 0 (Übertragung ist deaktiviert)
Return = 1 (Übertragung ist aktiviert)

Programmierbeispiel

unsigned long ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_GET_ACTIVITY, fifo_instance, 0);
printf(“Status = %lu\n”, ret);
//Übertragungs-Status wird abgerufen

DapiSpecialSWFifoGetInstanceType

Mit diesem Befehl kann ausgelesen werden, bei welchem Kanal es sich um einen Ein- bzw. Ausgangskanal handelt.

Beschreibung
Mit diesem Befehl kann ausgelesen werden, bei welchem Kanal es sich um einen Ein- bzw. Ausgangskanal handelt.

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SW_FIFO, cmd, fifo_instance, 0);

Parameter
cmd = DAPI_SPECIAL_SW_FIFO_GET_INSTANCE_TYPE
fifo_instance = Gibt die Instanz des Software FIFO an

Return-Wert

Befehl Beschreibung Wert(hex)
DAPI_SPECIAL_INSTANCE_TYPE_FIFO_IN … gibt an, ob es sich bei dem Kanal um einen Eingang handelt 0x01
DAPI_SPECIAL_INSTANCE_TYPE_FIFO_OUT … gibt an, ob es sich bei dem Kanal um einen Ausgang handelt 0x02

 

Programmierbeispiel

unsigned long ret;
for(int i=0;i!=10;++i)
{
ret = DapiSpecialCommand(handle,
DAPI_SPECIAL_CMD_SW_FIFO,
DAPI_SPECIAL_SW_FIFO_GET_INSTANCE_TYPE, i, 0);
switch(ret)
{
case DAPI_SPECIAL_INSTANCE_TYPE_FIFO_IN:
printf(“Instance %d = FIFO_IN\n\r”, i);break;
case DAPI_SPECIAL_INSTANCE_TYPE_FIFO_OUT:
printf(“Instance %d = FIFO_OUT\n\r”, i);break;
default:
printf(“Instance %d = INVALID\n\r”, i);break;
}
}
//Gibt wieder ob es sich um einen Ein- oder Ausgangskanal handelt

DapiWriteFifo

Dieser Befehl schreibt Datensätze in den Software FIFO.

Beschreibung
Dieser Befehl schreibt Datensätze in den Software FIFO.

Definition
DapiWriteFifo(ULONG handle, ULONG fifo_instance, ULONG type, UCHAR * buffer, ULONG buffer_length);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
fifo_instance=Gibt die Instanz des Software FIFO an
type=Gibt den FIFO-Typ an
buffer=Buffer für den zu sendenden Datensatz
buffer_length=Länge des Buffers

Programmierbeispiel

DapiWriteFifo(handle, fifo_instance, type, buffer, buffer_length);
//Schreibt den Datensatz in den Software FIFO.

DapiReadFifo

Dieser Befehl liest den Software-FIFO aus.

Beschreibung
Dieser Befehl liest den Software-FIFO aus.

Definition
ULONG DapiReadFifo(ULONG handle, ULONG fifo_instance, ULONG type, UCHAR * buffer, ULONG buffer_length);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
fifo_instance=Gibt die Instanz des Software FIFO an
type=Gibt den FIFO-Typ an
buffer=Buffer für den zu empfangenden Datensatz
buffer_length=Länge des Buffers

Return-Wert
Länge der ausgelesenen FIFO-Datensatzes

Programmierbeispiel

//Ließt den Datensatz vom Software FIFO
DapiReadFifo(handle, fifo_instance, type, buffer, buffer_length);

Stepper Motor-Funktionen

Icon Delib Command

DapiStepperCommandEx

Dieser erweiterte Befehl steuert Schrittmotoren an.

Beschreibung
Dieser erweiterte Befehl steuert Schrittmotoren an.

Definition
ULONG DapiStepperCommandEx(ULONG handle, ULONG motor, ULONG cmd, ULONG par1, ULONG par2, ULONG par3, ULONG par4, ULONG par5, ULONG par6, ULONG par7);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
motor=Nummer des anzusprechenden Motors
cmd=Erweitertes Kommando
par1..7=Erweiterte kommandoabhängige Parameter (s. Bemerkung)

Bemerkung
Siehe delib.h für die erweiterten Kommandos und den zugehörigen Parametern.

DapiStepperCommand_GoPosition

Hiermit wird eine bestimmte Position angefahren. Dieses Kommando darf nur ausgeführt werden, wen der Motor nicht disable ist und kein Go_Position oder Go_Referenz ausgeführt wird.

Beschreibung
Hiermit wird eine bestimmte Position angefahren. Dieses Kommando darf nur ausgeführt werden, wen der Motor nicht disable ist und kein Go_Position oder Go_Referenz ausgeführt wird.

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GO_POSITION, position, 0, 0, 0);

Parameter
position=Position, die angefahren werden soll

Programmierbeispiel

DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GO_POSITION , go_pos_par, 0,0,0);

DapiStepperCommand_GoPosition_Relative

Hiermit wird eine relative Position angefahren. Im Gegensatz zum Befehl GO_POSITION, der eine absolute Position anfährt, wird hier die momentane Position berücksichtigt.

Beschreibung
Hiermit wird eine relative Position angefahren. Im Gegensatz zum Befehl GO_POSITION, der eine absolute Position anfährt, wird hier die momentane Position berücksichtigt. Dieses Kommando darf nur ausgeführt werden, wenn der Motor nicht “disabled” ist und kein Go_Position oder Go_Referenz ausgeführt wird.

Definition
void DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GO_POSITION_RELATIVE, go_pos_rel_par, 0, 0, 0);

Parameter
go_pos_rel_par=Relative Position, die angefahren werden soll

Programmierbeispiel

DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GO_POSITION_RELATIVE, 100, 0, 0, 0);
//Motor fährt, von der aktuellen Position aus gesehen, 100 Schritte nach rechts.

DapiStepperCommand_GoRefswitch

Der Motor fährt zur Referenzposition.

Beschreibung
Der Motor fährt zur Referenzposition

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GO_REFSWITCH, par1, par2, par3, 0);

Parameter
Mögliche Werte für par1: (werden mehrere benötigt, müssen die einzelnen addiert werden)
DAPI_STEPPER_GO_REFSWITCH_PAR_REF1
DAPI_STEPPER_GO_REFSWITCH_PAR_REF2
DAPI_STEPPER_GO_REFSWITCH_PAR_REF_LEFT
DAPI_STEPPER_GO_REFSWITCH_PAR_REF_RIGHT
DAPI_STEPPER_GO_REFSWITCH_PAR_REF_GO_POSITIVE
DAPI_STEPPER_GO_REFSWITCH_PAR_REF_GO_NEGATIVE
DAPI_STEPPER_GO_REFSWITCH_PAR_SET_POS_0
par2=Motorpositionsoffset (1/16 Vollschritt)
par3=Timeoutzeit [ms]

Bemerkung
Anfahren des Referenzschalters
Zunächst fährt der Motor zur Referenzposition 1 oder 2 (siehe par1).
Hierbei kann angegeben werden, ob der Referenzschalter 1 (DAPI_STEPPER_GO_REFSWITCH_PAR_REF1) oder der Referenzschalter 2 (DAPI_STEPPER_GO_REFSWITCH_PAR_REF2) angefahren wird.

Dabei läßt sich die Richtung wählen in die der Motor startet. Mit dem Parameter DAPI_STEPPER_GO_REFSWITCH_PAR_REF_GO_NEGATIVE wird nach links und mit dem Parameter DAPI_STEPPER_GO_REFSWITCH_PAR_REF_GO_POSITIVE wird nach rechts gestartet.

Hierbei wird die Geschwindigkeit GOREFERENCEFREQUENCY_TOENDSWITCH benutzt (siehe DapiStepperCommand_SetMotorcharacteristic).

Herausfahren aus dem Referenzschalter
Danach fährt der Motor mit der Geschwindigkeit GOREFERENCEFREQUENCY_AFTERENDSWITCH aus der Referenzposition heraus. Dabei läßt sich wählen, ob der Motor die rechte oder linke Seite des Referenzschalters anfährt. Mit dem Parameter DAPI_STEPPER_GO_REFSWITCH_PAR_REF_LEFT wird die linke Kante angefahren und mit dem Parameter DAPI_STEPPER_GO_REFSWITCH_PAR_REF_RIGHT wird die rechte Kante angefahren.

Optionales Anfahren eines Offsets
Nach dem Herausfahren aus dem Referenzschalter kann noch ein Offset angefahren werden. Falls dieser Parameter nicht = 0 ist (par2), fährt der Motor zu diesem Offset mit der Geschwindigkeit GOREFERENCEFREQUENCY_TOOFFSET.

Nullen der Position des Motors
Mit dem Parameter DAPI_STEPPER_GO_REFSWITCH_PAR_SET_POS_0 kann zusätzlich eingestellt werden, ob der Motor jetzt die Position 0 bekommt.

Programmierbeispiel

DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GO_REFSWITCH, DAPI_STEPPER_GO_REFSWITCH_PAR_REF1 + DAPI_STEPPER_GO_REFSWITCH_PAR_REF_LEFT + DAPI_STEPPER_GO_REFSWITCH_PAR_REF_GO_POSITIVE + DAPI_STEPPER_GO_REFSWITCH_PAR_SET_POS_0, 0, 15000, 0);

DapiStepperCommand_SetPosition

Dieses Kommando dient zum setzen der Motorposition. Die Auflösung beträgt 1/16 Vollschritt. Dieses Kommando darf nur bei angehaltenem Motor verwendet werden.

Beschreibung
Dieses Kommando dient zum setzen der Motorposition. Die Auflösung beträgt 1/16 Vollschritt. Dieses Kommando darf nur bei angehaltenem Motor verwendet werden.

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_POSITION, par1, 0, 0, 0);

Parameter
par1=Motorposition

DapiStepperCommand_SetFrequency

Dieses Kommando dient zur Einstellung der Motorsollfrequenz. Die Motorfrequenzregelung übernimmt dabei die Einhaltung der Beschleunigungs- / Bremsrampe.

Beschreibung
Dieses Kommando dient zur Einstellung der Motorsollfrequenz. Die Motorfrequenzregelung übernimmt dabei die Einhaltung der Beschleunigungs- / Bremsrampe. Schrittverluste treten nicht auf. Die Motorsollfrequenz ist bezogen auf Vollschrittbetrieb. Über das Vorzeichen wird die Richtung ausgewählt.
Die Motorsollfrequenz darf nicht über der Maxfrequenz liegen, ansonsten wird das Kommando abgelehnt.
Bei geschlossenem Endschalter1 läßt sich nur in positive Richtung verfahren, bei geschlossenem Endschalter2 läßt sich nur in negative Richtung verfahren, ansonsten wird das Kommando abgelehnt.

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_FREQUENCY, par1, 0, 0, 0);

Parameter
par1=Motorsollfrequenz [Hz]

DapiStepperCommand_GetFrequency

Dieses Kommando dient zum Abfragen der Motorfrequenz. Dieses Kommando darf immer verwendet werden.

Beschreibung
Dieses Kommando dient zum Abfragen der Motorfrequenz. Dieses Kommando darf immer verwendet werden.

Definition
ULONG DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_FREQUENCY, 0, 0 ,0 ,0);

Return-Wert
Motorfrequenz [Hz]

DapiStepperCommand_SetFrequencyDirectly

Dieses Kommando dient zur Einstellung der Motorfrequenz. Die Motorfrequenzregelung übernimmt dabei keine Funktion. Für die Einhaltung der Beschleunigungs- / Bremsrampe ist der Anwender verantwortlich.

Beschreibung
Dieses Kommando dient zur Einstellung der Motorfrequenz. Die Motorfrequenzregelung übernimmt dabei keine Funktion. Für die Einhaltung der Beschleunigungs- / Bremsrampe ist der Anwender verantwortlich. Schrittverluste können bei Nichteinhaltung auftreten.
Die Motorfrequenz ist bezogen auf Vollschrittbetrieb. Über das Vorzeichen wird die Richtung ausgewählt.
Die Frequenz darf nicht über der Maxfrequenz liegen.

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_FREQUENCY_DIRECTLY, par1, 0 ,0 ,0);

Parameter
par1=Motorfrequenz [Hz]

DapiStepperCMDStop

Dieses Kommando dient zum Anhalten des Motors, die Bremsrampe wird dabei eingehalten.

Beschreibung
Dieses Kommando dient zum Anhalten des Motors, die Bremsrampe wird dabei eingehalten.

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_STOP, 0, 0, 0, 0);

DapiStepperCommand_Fullstop

Dieses Kommando dient zum sofortigen Anhalten des Motors, die Bremsrampe wird dabei nicht eingehalten. Die Motorposition kann vielleicht danach nicht mehr stimmen, da der Motor unkontrolliert angehalten wird.

Beschreibung
Dieses Kommando dient zum sofortigen Anhalten des Motors, die Bremsrampe wird dabei nicht eingehalten. Die Motorposition kann vielleicht danach nicht mehr stimmen, da der Motor unkontrolliert angehalten wird.

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_FULLSTOP, 0, 0, 0, 0);

Programmierbeispiel

DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_FULLSTOP , 0, 0, 0, 0);

DapiStepperCommand_Disable

Dieses Kommando dient zum disablen/enabeln des Motors, der Motor verfährt dann nicht mehr/oder wieder. Dieses Kommando darf nur bei Motorstillstand benutzt werden.

Beschreibung
Dieses Kommando dient zum disablen/enabeln des Motors, der Motor verfährt dann nicht mehr/oder wieder. Dieses Kommando darf nur bei Motorstillstand benutzt werden.

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_DISABLE, par1, 0, 0, 0);

Parameter
par1=Disablemode (0=Normale Funktion / 1=Disable)

DapiStepperCommand_SetMotorcharacteristic

Hiermit werden neue Motor Konfigurationen gesetzt.

Beschreibung
Hiermit werden neue Motor Konfigurationen gesetzt

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC, par1, par2, 0, 0);

Parameter
Parameter-Stepmode setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STEPMODE
par2=0 (Vollschrittbetrieb)
par2=1 (Halbschrittbetrieb)
par2=2 (Viertelschrittbetrieb)
par2=3 (Achtelschrittbetrieb)
par2=4 (Sechzehntelschrittbetrieb)

Parameter-GO-Frequency setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOFREQUENCY
par2=Geschwindigkeit [Vollschritt / s] – bezogen auf Vollschritt Frequenz – (Maximalwert=5000)

Parameter-Start-Frequency setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STARTFREQUENCY
par2=Startfrequenz [Vollschritt / s] – bezogen auf Vollschritt Frequenz – (Maximalwert=5000)

Parameter-Stop-Frequency setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STOPFREQUENCY
par2=Stopfrequenz [Vollschritt / s] – bezogen auf Vollschritt Frequenz – (Maximalwert=5000)

Parameter-Max-Frequency setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_MAXFREQUENCY
par2=Maximale Frequenz [Vollschritt / s] – bezogen auf Vollschritt Frequenz – (Maximalwert=5000)

Parameter-Accelerationslope setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_ACCELERATIONSLOPE
par2=Beschleunigungsrampe [Vollschritt / 10ms] – (Maximalwert=1000)

Parameter-Decelerationslope setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_DECELERATIONSLOPE
par2= Bremsrampe [Vollschritt / 10ms] – (Maximalwert=1000)

Parameter-Phasecurrent setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_PHASECURRENT
par2=Phasenstrom [mA] – (Maximalwert = 1500)

Parameter-Hold-Phasecurrent setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_HOLDPHASECURRENT
par2=Phasenstrom bei Motorstillstand [mA] – (Maximalwert=1500)

Parameter-Hold-Time setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_HOLDTIME
par2=Zeit in der der Haltestrom fließt nach Motorstop [ms]
par2=-1 / FFFF hex / 65535 dez (Zeit unendlich)

Parameter-Status-LED-Mode setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STATUSLEDMODE
par2=Betriebsart der Status-LED
par2=0 = (MOVE – LED leuchtet bei Motorbewegung)
par2=1 = (HALT – LED leuchtet bei Motorstillstand)
par2=2 = (ENDSW1 – LED leuchtet bei geschlossenen Endschalter1)
par2=3 = (ENDSW2 – LED leuchtet bei geschlossenen Endschalter2)
par2=4 = (REFSW1 – LED leuchtet bei geschlossenen Referenzschalterschalter1)
par2=5 = (REFSW2 – LED leuchtet bei geschlossenen Referenzschalterschalter2)

Parameter-Invert-END-Switch1 setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW1
par2=Invertiere Funktion des Endschalter1 (0=normal / 1=invertieren)

Parameter-Invert-END-Switch2 setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW2
par2=Invertiere Funktion des Endschalter2 (0=normal / 1=invertieren)

Parameter-Invert-Ref-Switch1 setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW1
par2=Invertiere Funktion des Referenzschalterschalter1 (0=normal / 1=invertieren)

Parameter-Invert-Ref-Switch2 setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW2
par2=Invertiere Funktion des Referenzschalterschalter2 (0=normal / 1=invertieren)

Parameter-Invert-direction setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_DIRECTION
par2=Invertiere alle Richtungsangaben (0=normal / 1=invertieren)

Parameter-Endswitch-Stopmode setzen
par1= DAPI_STEPPER_MOTORCHAR_PAR_ENDSWITCH_STOPMODE
par2=Einstellen des Stopverhaltens (0=Fullstop / 1=Stop)

Parameter-GoReferenceFrequency setzen (ACHTUNG: Dieser Parameter wird nicht mehr unterstützt!)
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY
Bemerkung: Dieser Parameter wird durch die nachfolgenden drei Parametern vollständig ersetzt.

Parameter-GoReferenceFrequnecyToEndSwitch setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TOENDSWITCH
par2=Geschwindigkeit, mit der der Enschalter angefahren wird (Frequenz [Vollschritt / s] – (Maximalwert=5000))

Parameter GoReferenceFrequencyAfterEndSwitch setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_AFTERENDSWITCH
par2=Geschwindigkeit, mit der vom Enschalter abgefahren wird (Frequenz [Vollschritt / s] – (Maximalwert=5000))

Parameter GoReferenceFrequencyToOffset setzen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TOOFFSET
par2=Geschwindigkeit, mit der der optionale Offset angefahren wird (Frequenz [Vollschritt / s] – (Maximalwert=5000))

Programmierbeispiel

DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_STEPMODE, 4,0,0); // Schrittmode (Voll-, Halb-, Viertel-, Achtel-, Sechszehntelschritt)
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_GOFREQUENCY, 1000,0,0); // Schrittmode bei Motorstop (Voll-, Halb-, Viertel-, Achtel-, Sechszehntelschritt)
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_STARTFREQUENCY, 100,0,0); // Startfrequenz [Vollschritt / s]
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_STOPFREQUENCY, 100,0,0); // Stopfrequenz [Vollschritt / s]
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_MAXFREQUENCY, 3500,0,0); // maximale Frequenz [Vollschritt / s]
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_ACCELERATIONSLOPE, 20,0,0); // Beschleunigung in [Vollschritten / ms]
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_DECELERATIONSLOPE, 20,0,0); // Bremsung in [Vollschritten / ms]
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_PHASECURRENT, 750,0,0); // Phasenstrom [mA]
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_HOLDPHASECURRENT, 500,0,0); // Phasenstrom bei Motorstillstand [mA]
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_HOLDTIME, 15000,0,0); // Zeit in der der Haltestrom fließt nach Motorstop [s]
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_STATUSLEDMODE, 0,0,0); // Betriebsart der Status-LED
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW1, 0,0,0); // invertiere Funktion des Endschalter1
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW2, 0,0,0); // invertiere Funktion des Endschalter2
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW1, 0,0,0); // invertiere Funktion des Referenzschalterschalter1
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW2, 0,0,0); // invertiere Funktion des Referenzschalterschalter2
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_INVERT_DIRECTION, 0,0,0); // invertiere alle Richtungsangaben
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_ENDSWITCH_STOPMODE, 0,0,0); // einstellen des Stopverhaltens
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TOENDSWITCH, 100,0,0); //Einstellung der Geschwindigkeit, mit der zum Endschalter angefahren wird.
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_AFTERENDSWITCH , 200,0,0); //Einstellung der Geschwindigkeit, mit der vom Endschalter abgefahren wird.
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TOOFFSET, 300,0,0); //Einstellung der Geschwindigkeit, mit der zum optionalen Offset angefahren wird.

DapiStepperCommand_GetMotorcharacteristic

Hiermit wird der Motorspezifische Parameter ausgelesen. Dieses Kommando darf immer benutzt werden. Es teilt sich in Unterkommandos auf, die analog den Parametern von DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC sind.

Beschreibung
Hiermit wird der Motorspezifische Parameter ausgelesen. Dieses Kommando darf immer benutzt werden. Es teilt sich in Unterkommandos auf, die analog den Parametern von DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC sind.

Definition
ULONG DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC, par1, 0, 0, 0);

Parameter
Parameter-Stepmode abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STEPMODE

Parameter-GO-Frequency abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOFREQUENCY

Parameter-Start-Frequency abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STARTFREQUENCY

Parameter-Stop-Frequency abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STOPFREQUENCY

Parameter-Max-Frequency abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_MAXFREQUENCY

Parameter-Accelerationslope abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_ACCELERATIONSLOPE

Parameter-Decelerationslope abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_DECELERATIONSLOPE

Parameter-Phasecurrent abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_PHASECURRENT

Parameter-Hold-Phasecurrent abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_HOLDPHASECURRENT

Parameter-Hold-Time abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_HOLDTIME

Parameter-Status-LED-Mode abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STATUSLEDMODE

Parameter-Invert-END-Switch1 abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW1

Parameter-Invert-END-Switch2 abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW2

Parameter-Invert-Ref-Switch1 abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW1

Parameter-Invert-Ref-Switch2 abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW2

Parameter-Invert-direction abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_DIRECTION

Parameter-Endswitch-Stopmode abfragen
par1= DAPI_STEPPER_MOTORCHAR_PAR_ENDSWITCH_STOPMODE

Parameter-GoReferenceFrequency abfragen (ACHTUNG: Dieser Parameter wird nicht mehr unterstützt!)
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY
Bemerkung: Dieser Parameter wird durch die nachfolgenden drei Parametern vollständig ersetzt.

Parameter-GoReferenceFrequnecyToEndSwitch abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TOENDSWITCH

Parameter GoReferenceFrequencyAfterEndSwitch abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_AFTERENDSWITCH

Parameter GoReferenceFrequencyToOffSet abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TOOFFSET

Return-Wert
Parameter-Stepmode abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STEPMODE
return=0 (Vollschrittbetrieb)
return=1 (Halbschrittbetrieb)
return=2 (Viertelschrittbetrieb)
return=3 (Achtelschrittbetrieb)
return=4 (Sechzehntelschrittbetrieb)

Parameter-GO-Frequency abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOFREQUENCY
return=Geschwindigkeit [Vollschritt / s] – bezogen auf Vollschritt

Parameter-Start-Frequency abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STARTFREQUENCY
return=Startfrequenz [Vollschritt / s]

Parameter-Stop-Frequency abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STOPFREQUENCY
return=Stopfrequenz [Vollschritt / s]

Parameter-Max-Frequency abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_MAXFREQUENCY
return=maximale Frequenz [Vollschritt / s]

Parameter-Accelerationslope abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_ACCELERATIONSLOPE
return=Beschleunigungsrampe [Vollschritt / 10ms]

Parameter-Decelerationslope abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_DECELERATIONSLOPE
return=Bremsrampe [Vollschritt / 10ms]

Parameter-Phasecurren abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_PHASECURRENT
return=Phasenstrom [mA]

Parameter-Hold-Phasecurrent abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_HOLDPHASECURRENT
return= Phasenstrom bei Motorstillstand [mA]

Parameter-Hold-Time abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_HOLDTIME
return=Zeit in der der Haltestrom fließt nach Motorstop [ms]

Parameter-Status-LED-Mode abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_STATUSLEDMODE
return=Betriebsart der Status-LED
return=0 (MOVE – LED leuchtet bei Motorbewegung)
return=1 (HALT – LED leuchtet bei Motorstillstand)
return=2 (ENDSW1 – LED leuchtet bei geschlossenen Endschalter1)
return=3 (ENDSW2 – LED leuchtet bei geschlossenen Endschalter2)
return=4 (REFSW1 – LED leuchtet bei geschlossenen Referenzschalterschalter1)
return=5 (REFSW2 – LED leuchtet bei geschlossenen Referenzschalterschalter2)

Parameter-Invert-END-Switch1 abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW1
return=Endschalter1 wird invertiert (0=normal / 1=invertieren)

Parameter-Invert-END-Switch2 abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW2
return=Endschalter2 wird invertiert (0=normal / 1=invertieren)

Parameter-Invert-Ref-Switch1 abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW1
return=Referenzschalterschalter1 wird invertiert (0=normal / 1=invertieren)

Parameter-Invert-Ref-Switch2 abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW2
return=Referenzschalterschalter2 wird invertiert (0=normal / 1=invertieren)

Parameter-Invert-Direction abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_DIRECTION
return=Richtungsangaben werden invertriert (0=normal / 1=invertieren)

Parameter-Endswitch-Stopmode abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_ENDSWITCH_STOPMODE
return=Einstellung des Stopverhaltens (0=Fullstop / 1=Stop)

Parameter-GoReferenceFrequnecyToEndSwitch abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TOENDSWITCH
return=Frequenz [Vollschritt / s]

Parameter GoReferenceFrequencyAfterEndSwitch abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_AFTERENDSWITCH
return=Frequenz [Vollschritt / s]

Parameter GoReferenceFrequencyToOffset abfragen
par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TOOFFSET
return=Frequenz [Vollschritt / s]

Programmierbeispiel

value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_STEPMODE, 0, 0, 0); // Schrittmode (Voll-, Halb-, Viertel-, Achtel-, Sechszehntelschritt)
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_GOFREQUENCY, 0,0,0); // Schrittmode bei Motorstop (Voll-, Halb-, Viertel-, Achtel-, Sechszehntelschritt)
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_STARTFREQUENCY, 0,0,0); // Startfrequenz [Vollschritt / s]
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_STOPFREQUENCY, 0,0,0); // Stopfrequenz [Vollschritt / s]
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_MAXFREQUENCY, 0,0,0); // maximale Frequenz [Vollschritt / s]
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_ACCELERATIONSLOPE, 0,0,0); // Beschleunigun in [Vollschritten / ms]
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_DECELERATIONSLOPE, 0,0,0); // Bremsung in [Vollschritten / ms]
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_PHASECURRENT, 0,0,0); // Phasenstrom [mA]
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_HOLDPHASECURRENT, 0,0,0); // Phasenstrom bei Motorstillstand [mA]
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_HOLDTIME, 0,0,0); // Zeit in der der Haltestrom fließt nach Motorstop [s]
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_STATUSLEDMODE, 0,0,0); // Betriebsart der Status-LED
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW1, 0,0,0); // invertiere Funktion des Endschalter1
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW2, 0,0,0); // invertiere Funktion des Endschalter12
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW1, 0,0,0); // invertiere Funktion des Referenzschalterschalter1
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW2, 0,0,0); // invertiere Funktion des Referenzschalterschalter2
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_INVERT_DIRECTION, 0,0,0); // invertiere alle Richtungsangaben
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC , DAPI_STEPPER_MOTORCHAR_PAR_ENDSWITCH_STOPMODE, 0,0,0); // einstellen des Stopverhaltens
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC ,
DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TOENDSWITCH, 0,0,0); // Abfrage der Geschwindigkeit, mit der der Endschalter angefahren wird.
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC ,
DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_AFTERENDSWITCH, 0,0,0); // Abfrage der Geschwindigkeit, mit der vom Endschalter abgefahren wird.
value = DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC ,
DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TOOFFSET, 0,0,0); // Abfrage der Geschwindigkeit, mit der der optionale Offset angefahren wird

DapiStepperCommand_Motorcharacteristic_EEPROMSave

Es wird die aktuelle Motorcharakteristik des Motors ins EEPROM abgespeichert.

Beschreibung
Es wird die aktuelle Motorcharakteristik des Motors ins EEPROM abgespeichert.

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_MOTORCHARACTERISTIC_EEPROM_SAVE, 0, 0, 0, 0);

DapiStepperCommand_Motorcharacteristic_EEPROMSLoad

Es wird die Motorcharakteristik des Motors aus dem EEPROM geladen.

Beschreibung
Es wird die Motorcharakteristik des Motors aus dem EEPROM geladen.

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_MOTORCHARACTERISTIC_EEPROM_LOAD, 0, 0, 0, 0);

DapiStepperCommand_MotorcharacteristicLoadDefault

Es wird die Motorcharakteristik des Motors auf Defaultwerte zurück gesetzt.

Beschreibung
Es wird die Motorcharakteristik des Motors auf Defaultwerte zurück gesetzt.

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_MOTORCHARACTERISTIC_LOAD_DEFAULT, 0, 0, 0, 0);

Bemerkung
Die Defaultwerte sind folgende:
– Stepmode: Vollschritt
– Schrittfrequenz bei GoPosition [Vollschritt / s]: 1000 Hz
– Startfrequenz [Vollschritt / s]: 200Hz
– Stopfrequenz [Vollschritt / s]: 200Hz
– Maximale Schrittfrequenz [Vollschritt / s]: 3000Hz
– Beschleunigungsrampe [Hz/10ms]: 10Hz/10ms
– Bremsrampe [Hz/10ms]: 10Hz/10ms
– Phasenstrom 0..1,5A [1mA]: 750mA
– Haltestorm 0..1,5A [1mA]: 500mA
– Haltezeit 0..unendlich [ms]: 15000ms
– Status_LEDfunktion: Move
– Funktion des Endschalter1: nicht invertiert
– Funktion des Endschalter2: nicht invertiert
– Funktion des Referenzschalter1: nicht invertiert
– Funktion des Referenzschalter2: nicht invertiert
– Funktion aller Richtungsangaben: nicht invertiert
– Endschaltermode: Fullstop
– Schrittfrequenz bei GoReferenz [Vollschritt / s]: 1000 Hz

DapiStepperCommand_GetCPUTemp

Die Temperatur des CPU wird abgefragt.

Beschreibung
Die Temperatur des CPU wird abgefragt.

Definition
ULONG DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_CPU_TEMP, 0, 0, 0, 0);

Parameter
cmd=DAPI_STEPPER_CMD_GET_CPU_TEMP

Return-Wert
Temperatur [°C]

DapiStepperCommand_GetMotorSupplyVoltage

Hiermit wird die Versorgungsspannung des Motors abgefragt.

Beschreibung
Hiermit wird die Versorgungsspannung des Motors abgefragt.

Definition
DapiStepperCommand(handle, motor, DAPI_STEPPER_CMD_GET_MOTOR_SUPPLY_VOLTAGE, 0, 0, 0, 0);

Parameter
cmd=DAPI_STEPPER_CMD_GET_MOTOR_SUPPLY_VOLTAGE

Return-Wert
Motorversorgungsspannung in [mV]

DapiStepperCommand_GetActivity

Hiermit werden verschiedene Statusinformationen (z.B. die Aktivität des Motorstroms, etc.) abgefragt.

Beschreibung
Hiermit werden verschiedene Statusinformationen (z.B. die Aktivität des Motorstroms, etc.) abgefragt.

Definition
ULONG DapiStepperGetStatus(handle, motor, DAPI_STEPPER_STATUS_GET_ACTIVITY);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls
motor=Nummer des anzusprechenden Motors

Return-Wert
Bit Command Beschreibung
0 DISABLE Motor darf nicht verfahren
1 MOTORSTROMACTIV Motorstrom ist aktiv
2 HALTESTROMACTIV Haltestrom ist aktiv
3 GOPOSITIONACTIV GoPosition ist aktiv
4 GOPOSITIONBREMSEN GoPosition Bremsung ist aktiv
5 GOREFERENZACTIV GoReference ist aktiv

Programmierbeispiel

ret = DapiStepperGetStatus(handle, motor, DAPI_STEPPER_STATUS_GET_ACTIVITY);

DapiStepperCommand_GetPosition

Hiermit wird eine bestimmte Position abgelesen.

Beschreibung
Hiermit wird eine bestimmte Position abgelesen

Definition
ULONG DapiStepperGetStatus(handle, motor, cmd);

Parameter
cmd=DAPI_STEPPER_STATUS_GET_POSITION

Return-Wert
Es wird die aktuelle Motorposition in 1/16 Schritteinheiten zurückgegeben

Programmierbeispiel

value = DapiStepperGetStatus(handle, motor, DAPI_STEPPER_STATUS_GET_POSITION);

DapiStepperCommand_GetSwitch

Hiermit wird der Zustand der Schalter abgefragt.

Beschreibung
Hiermit wird der Zustand der Schalter abgefragt

Definition
ULONG DapiStepperGetStatus(handle, motor, cmd);

Parameter
cmd=DAPI_STEPPER_STATUS_GET_SWITCH

Return-Wert
Es wird der Zustand der Schalter zurückgeliefert:
Bit0: ENDSCHALTER1; 1 = Endschalter1 ist geschlossen
Bit1: ENDSCHALTER2; 1 = Endschalter2 ist geschlossen
Bit2: REFSCHALTER1; 1 = Referenzschalter1 ist geschlossen
Bit3: REFSCHALTER2; 1 = Referenzschalter2 ist geschlossen

Programmierbeispiel

pos = DapiStepperGetStatus(handle, motor, DAPI_STEPPER_STATUS_GET_SWITCH);

Timeout-Schutz-Funktion

Icon Delib Command

DapiSpecialCMDTimeout

Dieser Befehl dient zum Einstellen der Timeout-Schutz-Funktion.

Beschreibung
Dieser Befehl dient zum Einstellen der Timeout-Schutz-Funktion.
Es gibt seit 2021 drei unterschiedliche Timeout-Methoden.

“normalen” Timeout
Dies ist der Timeout, den unsere Module schon seit 2009 besitzen.
Vorgehensweise für den Timeout-Befehl:
Der Timeout wird per Befehl aktiviert.
Findet dann ein sogenanntes Timeout-Ereignis statt(Pause zwischen zwei Zugriffen auf das Modul ist grösser, als die erlaubte Timeout-Zeit) passiert folgendes:
– Alle Ausgänge werden ausgeschaltet.
– Der Timeout-Status geht auf “2”.
– Die Timeout-LED geht an (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind dann weiterhin möglich, aber der Timeout ist nicht weiter aktiv. Erst wieder, wenn er wieder aktiviert wurde.

“auto reactivate” Timeout
Dies ist ein seit 2021 implementierter Timeout-Modus, der nach Auftreten des Timeout-Ereignisses den Timeout automatisch wieder aktiviert.
Vorgehensweise für den Timeout-Befehl:
Der Timeout wird per Befehl aktiviert.
Findet dann ein sogenanntes Timeout-Ereignis statt(Pause zwischen zwei Zugriffen auf das Modul ist grösser, als die erlaubte Timeout-Zeit) passiert folgendes:
– Alle Ausgänge werden ausgeschaltet.
– Der Timeout-Status geht auf “4”.
– Die Timeout-LED geht an (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind dann weiterhin möglich. UND der Timeout ist weiter aktiv. Bei erneuter Zeitüberschreitung der Timeout-Zeit werden die Ausgänge wieder ausgeschaltet.

“secure outputs” Timeout
Dies ist ein seit 2021 implementierter Timeout-Modus, der nach Auftreten des Timeout-Ereignisses einen Schreibenden Zugriff auf die Ausgänge verhindert.Somit wird sichergestellt, dass die Software erst einmal einen “sicheren” Zustand der Ausgänge wiederherstellen muss, da der Timeout-Mechanismus des Moduls die Ausgänge auf vordefinierte Werte verändert hat.
Vorgehensweise für den Timeout-Befehl:
Der Timeout wird per Befehl aktiviert.
Findet dann ein sogenanntes Timeout-Ereignis statt(Pause zwischen zwei Zugriffen auf das Modul ist grösser, als die erlaubte Timeout-Zeit) passiert folgendes:
– Alle Ausgänge werden ausgeschaltet.
– Der Timeout-Status geht auf “6”.
– Die Timeout-LED geht an (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind NICHT möglich. Erst nach erneutem Aktivieren des Timeouts oder Deaktivieren des Timeouts können die Ausgänge beschrieben werden.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, par1, par2);

Parameter
handle = Dies ist das Handle eines geöffneten Moduls
cmd = auszuführende Funktion
par1 = Wert, der an die Funktion übergeben wird
par2 = Wert, der an die Funktion übergeben wird

DapiSpecialTimeoutSetValueSec

Dieser Befehl dient zum Setzen der Timeout-Zeit.

Beschreibung
Dieser Befehl dient zum Setzen der Timeout-Zeit.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, par1, par2);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_SET_VALUE_SEC
par1 = Sekunden [s]
par2 = Millisekunden [100ms] (Wert 6 = 600ms)

Bemerkung
Der zulässige Wertebereich der Zeitangabe liegt zwischen 0,1 Sekunden und 6553 Sekunden

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_SET_VALUE_SEC, 3, 7);
//Die Zeit des Timeouts wird auf 3,7sek gesetzt.

DapiSpecialTimeoutActivate

Dieser Befehl aktiviert den "normalen" Timeout.

Beschreibung
Dieser Befehl aktiviert den “normalen” Timeout.
Nach dem Timeout-Ereignis werden..
– ..alle Ausgänge ausgeschaltet
– ..der Timeout-Status auf “2” gesetzt
– ..die Timeout-LED angeschaltet (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind dann weiterhin möglich, aber der Timeout ist nicht weiter aktiv.
Erst wieder, wenn er wieder aktiviert wurde.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_ACTIVATE

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_ACTIVATE, 0, 0);
//Der “normale” Timeout wird aktiviert.

DapiSpecialTimeoutActivateAutoReactivate

Dieser Befehl aktiviert den "auto reactivate" Timeout.

Beschreibung
Dieser Befehl aktiviert den “auto reactivate” Timeout.
In diesem Modus wird der Timeout nach dem Timeout-Ereignis automatisch wieder aktiviert.
Nach dem Timeout-Ereignis werden..
– ..alle Ausgänge ausgeschaltet
– ..der Timeout-Status auf “4” gesetzt
– ..die Timeout-LED angeschaltet (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind dann weiterhin möglich UND der Timeout ist weiter aktiv.
Bei erneuter Zeitüberschreitung der Timeout-Zeit werden die Ausgänge weider ausgeschaltet.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_ACTIVATE_AUTO_REACTIVATE

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_ACTIVATE_AUTO_REACTIVATE, 0, 0);
//Der “auto reactivate” Timeout wird aktiviert.

DapiSpecialTimeoutActivateSecureOutputs

Dieser Befehl aktiviert den "secure outputs" Timeout.

Beschreibung
Dieser Befehl aktiviert den “secure outputs” Timeout.
In diesem Modus wird ein schreibender Zugriff auf die Ausgänge nach einem Timeout-Ereignis verhindert.
Somit wird sichergestellt, dass die Software erst einmal einen “sicheren” Zustand der Ausgänge wiederherstellen muss,
da der Timeout-Mechanismus des Moduls die Ausgänge auf vordefinierte Werte verändert hat.
Nach dem Timeout-Ereignis werden..
– ..alle Ausgänge ausgeschaltet
– ..der Timeout-Status auf “6” gesetzt
– ..die Timeout-LED angeschaltet (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind NICHT möglich. Erst nach erneutem Aktivieren des
Timeouts oder Deaktivieren des Timeouts können die Ausgänge beschrieben werden.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_ACTIVATE_SECURE_OUTPUTS

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_ACTIVATE_SECURE_OUTPUTS, 0, 0);
//Der “secure outputs” Timeout wird aktiviert.

DapiSpecialTimeoutDeactivate

Dieser Befehl deaktiviert den Timeout.

Beschreibung
Dieser Befehl deaktiviert den Timeout.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_DEACTIVATE

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_DEACTIVATE, 0, 0);
//Der Timeout wird deaktiviert.

DapiSpecialTimeoutGetStatus

Dieser Befehl dient zum Auslesen des Timeout-Status.

Beschreibung
Dieser Befehl dient zum Auslesen des 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-Wert
Return = 0 (Timeout ist deaktiviert)

Werte für den “normalen” Timeout
Return = 1 (Timeout “normal” ist aktiviert)
Return = 2 (Timeout “normal” hat stattgefunden)

Werte für den “auto reactivate” Timeout
Return = 3 (Timeout “auto reactivate” ist aktiviert)
Return = 4 (Timeout “auto reactivate” hat ein oder mehrmals stattgefunden)

Werte für den “secure” Timeout
Return = 5 (Timeout “secure” ist aktiviert)
Return = 6 (Timout “secure” hat stattgefunden. In diesem Status wird ein Schreiben auf die Outputs verhindert)

Programmierbeispiel

unsigned long status = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_GET_STATUS, 0, 0);
printf(“Status = %ul\n”, status);
//Abfrage des Timeout-Status mit Ausgabe.

Timeout-Schutz-Funktion

Icon Delib Command

DapiSpecialCMDTimeout

Dieser Befehl dient zum Einstellen der Timeout-Schutz-Funktion.

Beschreibung
Dieser Befehl dient zum Einstellen der Timeout-Schutz-Funktion.
Es gibt seit 2021 drei unterschiedliche Timeout-Methoden.

“normalen” Timeout
Dies ist der Timeout, den unsere Module schon seit 2009 besitzen.
Vorgehensweise für den Timeout-Befehl:
Der Timeout wird per Befehl aktiviert.
Findet dann ein sogenanntes Timeout-Ereignis statt(Pause zwischen zwei Zugriffen auf das Modul ist grösser, als die erlaubte Timeout-Zeit) passiert folgendes:
– Alle Ausgänge werden ausgeschaltet.
– Der Timeout-Status geht auf “2”.
– Die Timeout-LED geht an (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind dann weiterhin möglich, aber der Timeout ist nicht weiter aktiv. Erst wieder, wenn er wieder aktiviert wurde.

“auto reactivate” Timeout
Dies ist ein seit 2021 implementierter Timeout-Modus, der nach Auftreten des Timeout-Ereignisses den Timeout automatisch wieder aktiviert.
Vorgehensweise für den Timeout-Befehl:
Der Timeout wird per Befehl aktiviert.
Findet dann ein sogenanntes Timeout-Ereignis statt(Pause zwischen zwei Zugriffen auf das Modul ist grösser, als die erlaubte Timeout-Zeit) passiert folgendes:
– Alle Ausgänge werden ausgeschaltet.
– Der Timeout-Status geht auf “4”.
– Die Timeout-LED geht an (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind dann weiterhin möglich. UND der Timeout ist weiter aktiv. Bei erneuter Zeitüberschreitung der Timeout-Zeit werden die Ausgänge wieder ausgeschaltet.

“secure outputs” Timeout
Dies ist ein seit 2021 implementierter Timeout-Modus, der nach Auftreten des Timeout-Ereignisses einen Schreibenden Zugriff auf die Ausgänge verhindert.Somit wird sichergestellt, dass die Software erst einmal einen “sicheren” Zustand der Ausgänge wiederherstellen muss, da der Timeout-Mechanismus des Moduls die Ausgänge auf vordefinierte Werte verändert hat.
Vorgehensweise für den Timeout-Befehl:
Der Timeout wird per Befehl aktiviert.
Findet dann ein sogenanntes Timeout-Ereignis statt(Pause zwischen zwei Zugriffen auf das Modul ist grösser, als die erlaubte Timeout-Zeit) passiert folgendes:
– Alle Ausgänge werden ausgeschaltet.
– Der Timeout-Status geht auf “6”.
– Die Timeout-LED geht an (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind NICHT möglich. Erst nach erneutem Aktivieren des Timeouts oder Deaktivieren des Timeouts können die Ausgänge beschrieben werden.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, par1, par2);

Parameter
handle = Dies ist das Handle eines geöffneten Moduls
cmd = auszuführende Funktion
par1 = Wert, der an die Funktion übergeben wird
par2 = Wert, der an die Funktion übergeben wird

DapiSpecialTimeoutSetValueSec

Dieser Befehl dient zum Setzen der Timeout-Zeit.

Beschreibung
Dieser Befehl dient zum Setzen der Timeout-Zeit.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, par1, par2);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_SET_VALUE_SEC
par1 = Sekunden [s]
par2 = Millisekunden [100ms] (Wert 6 = 600ms)

Bemerkung
Der zulässige Wertebereich der Zeitangabe liegt zwischen 0,1 Sekunden und 6553 Sekunden

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_SET_VALUE_SEC, 3, 7);
//Die Zeit des Timeouts wird auf 3,7sek gesetzt.

DapiSpecialTimeoutActivate

Dieser Befehl aktiviert den "normalen" Timeout.

Beschreibung
Dieser Befehl aktiviert den “normalen” Timeout.
Nach dem Timeout-Ereignis werden..
– ..alle Ausgänge ausgeschaltet
– ..der Timeout-Status auf “2” gesetzt
– ..die Timeout-LED angeschaltet (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind dann weiterhin möglich, aber der Timeout ist nicht weiter aktiv.
Erst wieder, wenn er wieder aktiviert wurde.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_ACTIVATE

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_ACTIVATE, 0, 0);
//Der “normale” Timeout wird aktiviert.

DapiSpecialTimeoutActivateAutoReactivate

Dieser Befehl aktiviert den "auto reactivate" Timeout.

Beschreibung
Dieser Befehl aktiviert den “auto reactivate” Timeout.
In diesem Modus wird der Timeout nach dem Timeout-Ereignis automatisch wieder aktiviert.
Nach dem Timeout-Ereignis werden..
– ..alle Ausgänge ausgeschaltet
– ..der Timeout-Status auf “4” gesetzt
– ..die Timeout-LED angeschaltet (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind dann weiterhin möglich UND der Timeout ist weiter aktiv.
Bei erneuter Zeitüberschreitung der Timeout-Zeit werden die Ausgänge weider ausgeschaltet.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_ACTIVATE_AUTO_REACTIVATE

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_ACTIVATE_AUTO_REACTIVATE, 0, 0);
//Der “auto reactivate” Timeout wird aktiviert.

DapiSpecialTimeoutActivateSecureOutputs

Dieser Befehl aktiviert den "secure outputs" Timeout.

Beschreibung
Dieser Befehl aktiviert den “secure outputs” Timeout.
In diesem Modus wird ein schreibender Zugriff auf die Ausgänge nach einem Timeout-Ereignis verhindert.
Somit wird sichergestellt, dass die Software erst einmal einen “sicheren” Zustand der Ausgänge wiederherstellen muss,
da der Timeout-Mechanismus des Moduls die Ausgänge auf vordefinierte Werte verändert hat.
Nach dem Timeout-Ereignis werden..
– ..alle Ausgänge ausgeschaltet
– ..der Timeout-Status auf “6” gesetzt
– ..die Timeout-LED angeschaltet (bei Modulen, die solch einen Status haben)
Weitere Zugriffe auf die Ausgänge sind NICHT möglich. Erst nach erneutem Aktivieren des
Timeouts oder Deaktivieren des Timeouts können die Ausgänge beschrieben werden.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_ACTIVATE_SECURE_OUTPUTS

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_ACTIVATE_SECURE_OUTPUTS, 0, 0);
//Der “secure outputs” Timeout wird aktiviert.

DapiSpecialTimeoutDeactivate

Dieser Befehl deaktiviert den Timeout.

Beschreibung
Dieser Befehl deaktiviert den Timeout.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_DEACTIVATE

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_DEACTIVATE, 0, 0);
//Der Timeout wird deaktiviert.

DapiSpecialTimeoutGetStatus

Dieser Befehl dient zum Auslesen des Timeout-Status.

Beschreibung
Dieser Befehl dient zum Auslesen des 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-Wert
Return = 0 (Timeout ist deaktiviert)

Werte für den “normalen” Timeout
Return = 1 (Timeout “normal” ist aktiviert)
Return = 2 (Timeout “normal” hat stattgefunden)

Werte für den “auto reactivate” Timeout
Return = 3 (Timeout “auto reactivate” ist aktiviert)
Return = 4 (Timeout “auto reactivate” hat ein oder mehrmals stattgefunden)

Werte für den “secure” Timeout
Return = 5 (Timeout “secure” ist aktiviert)
Return = 6 (Timout “secure” hat stattgefunden. In diesem Status wird ein Schreiben auf die Outputs verhindert)

Programmierbeispiel

unsigned long status = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_GET_STATUS, 0, 0);
printf(“Status = %ul\n”, status);
//Abfrage des Timeout-Status mit Ausgabe.

DapiSpecialTimeoutDoValueMaskWRSet32

Dieser Befehl aktiviert Relais bei einem Timeout.

Beschreibung
Dieser Befehl bestimmt die Ausgänge, die bei einem Timeout gesetzt werden sollen.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, ch, par2);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_DO_VALUE_MASK_WR_SET32
ch = Gibt die Nummer des Ausgangs an, ab dem geschrieben werden soll (0, 32, 64, ..)
par2 = [32 Bit] Gibt die Ausgänge an, welche bei einem Timeout aktiviert werden sollen

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_DO_VALUE_MASK_WR_SET32, 0, 0xff);
//Die ersten 8 Relais werden im Timeout Fall eingeschaltet.

DapiSpecialTimeoutDoValueMaskRDSet32

Dieser Befehl dient zum Auslesen der übergebenen Werte.

Beschreibung
Dieser Befehl dient zum Auslesen der übergebenen Werte

Definition
ULONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_DO_VALUE_MASK_RD_SET32

Return-Wert
[32 Bit] Wert der dem SET-Befehl übergeben wird

Programmierbeispiel

unsigned long value = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_DO_VALUE_MASK_RD_SET32, 0, 0);
printf(“%0x\n”, value);
//Der Wert der dem SET-Befehl übergeben wurde, wird ausgelesen und dargestellt.

DapiSpecialTimeoutDoValueMaskWRClr32

Dieser Befehl deaktiviert Relais bei einem Timeout.

Beschreibung
Dieser Befehl bestimmt die Ausgänge, die bei einem Timeout ausgeschaltet werden sollen.

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, ch, par2);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_DO_VALUE_MASK_WR_CLR32
ch = Gibt die Nummer des Ausgangs an, ab dem geschrieben werden soll (0, 32, 64, ..)
par2 = [32 Bit] Gibt die Ausgänge an, welche bei einem Timeout deaktiviert werden sollen

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_DO_VALUE_MASK_WR_CLR32, 0, 0xff);
//Die ersten 8 Relais werden im Timeout Fall ausgeschaltet.

DapiSpecialTimeoutDoValueMaskRDClr32

Dieser Befehl dient zum Auslesen der übergebenen Werte.

Beschreibung
Dieser Befehl dient zum Auslesen der übergebenen Werte.

Definition
LONG DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_DO_VALUE_MASK_RD_CLR32

Return-Wert
[32 Bit] Wert der dem CLR-Befehl übergeben wird

Programmierbeispiel

unsigned long value = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_DO_VALUE_MASK_RD_CLR32, 0, 0);
printf(“%0x\n”, value);
//Der Wert der dem CLR-Befehl übergeben wurde, wird ausgelesen und dargestellt.

DapiSpecialTimeoutDoValueLoadDefault

Setzt die SET- und CLR-Werte auf den Ursprungswert zurück.

Beschreibung
Setzt die SET- und CLR-Werte auf den Default-Wert zurück.
(SET-Wert = 0, CLR-Wert = FFFFFFFF)

Definition
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT, cmd, 0, 0);

Parameter
cmd = DAPI_SPECIAL_TIMEOUT_DO_VALUE_LOAD_DEFAULT

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_TIMEOUT,
DAPI_SPECIAL_TIMEOUT_DO_VALUE_LOAD_DEFAULT, 0, 0);
//SET- und CRL-Werte werden auf den Default-Wert gesetzt.

TTL-Funktionen

Icon Delib Command

DapiSpecialCMDSetDirDX_1

Dieser Befehl setzt die Richtung von 8 hintereinanderliegenden TTL-Ein/Ausgängen (1-Bit weise).

Beschreibung
Dieser Befehl setzt die Richtung von 8 hintereinanderliegenden TTL-Ein/Ausgängen (1-Bit weise).

Definition
void DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_SET_DIR_DX_1, ULONG ch, ULONG dir, 0);

Parameter
handle = Dies ist das Handle eines geöffneten Moduls
ch = Muss immer 0 sein!
dir = Gibt die Richtung für 8 Kanäle an (1=output / 0=input) / Bit 0 steht für Kanal 0, Bit 1 für Kanal 1 …

Return-Wert
Keiner

Bemerkung
Nicht kompatibel mit USB-TTL-32/64.
Verwenden Sie für diese Module den DAPI_SPECIAL_CMD_SET_DIR_DX_8 Befehl.

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_1, 0, 0x01 , 0);
// Set Dir of TTL-I/O CH0 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_1, 0, 0x02 , 0);
// Set Dir of TTL-I/O CH1 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_1, 0, 0x04 , 0);
// Set Dir of TTL-I/O CH2 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_1, 0, 0x08 , 0);
// Set Dir of TTL-I/O CH3 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_1, 0, 0x10 , 0);
// Set Dir of TTL-I/O CH4 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_1, 0, 0x20 , 0);
// Set Dir of TTL-I/O CH5 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_1, 0, 0x40 , 0);
// Set Dir of TTL-I/O CH6 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_1, 0, 0x80 , 0);
// Set Dir of TTL-I/O CH7 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_1, 0, 0x0f , 0);
// Set Dir of TTL-I/O CH0-3 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_1, 0, 0xff , 0);
// Set Dir of TTL-I/O CH0-7 to output, others to input

DapiSpecialCMDSetDirDX_8

Dieser Befehl setzt die Richtung von bis zu 64 hintereinanderliegenden TTL-Ein/Ausgängen (8-Bit weise). 1-Bit repräsentiert dabei 8 TTL-Ein/Ausgänge.

Beschreibung
Dieser Befehl setzt die Richtung von bis zu 64 hintereinanderliegenden TTL-Ein/Ausgängen (8-Bit weise).
1-Bit repräsentiert dabei 8 TTL-Ein/Ausgänge.

Definition
void DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_SET_DIR_DX_8, ULONG ch, ULONG dir, 0);

Parameter
handle = Dies ist das Handle eines geöffneten Moduls
ch = Muss immer 0 sein!
dir = (8-Bit) gibt die Richtung für bis zu 64 hintereinanderliegende TTL-Ein/Ausgänge an. (1=output / 0=input)

Return-Wert
Keiner

Bemerkung
Nur kompatibel mit USB-TTL-32/64.
Verwenden Sie für andere TTL-Produkte den DAPI_SPECIAL_CMD_SET_DIR_DX_1 Befehl.

Programmierbeispiel

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_8, 0, 0x1 , 0);
// Set Dir of TTL-I/O CH0-7 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_8, 0, 0x3 , 0);
// Set Dir of TTL-I/O CH0-15 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_8, 0, 0xc , 0);
// Set Dir of TTL-I/O CH16-31 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_8, 0, 0x33 , 0);
// Set Dir of TTL-I/O CH0-15 and CH32-47 to output, others to input
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_SET_DIR_DX_8, 0, 0xff , 0);
// Set Dir of TTL-I/O CH0-63 to output, others to input

DapiSpecialCMDGetDirDX_8

Dieser liest die Richtung von bis zu 64 hintereinanderliegenden TTL-Ein/Ausgängen (8-Bit weise). 1-Bit repräsentiert dabei 8 TTL-Ein/Ausgänge.

Beschreibung
Dieser Befehl liest die Richtung von bis zu 64 hintereinanderliegenden TTL-Ein/Ausgängen (8-Bit weise).
1-Bit repräsentiert dabei 8 TTL-Ein/Ausgänge.

Definition
ULONG DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_GET_DIR_DX_8, ULONG ch, ULONG dir, 0);

Parameter
handle = Dies ist das Handle eines geöffneten Moduls
ch = Muss immer 0 sein!
dir = Muss immer 0 sein!

Return-Wert
Richtungszustand von 64 Kanälen.

Bit 0: Richtung von TTL 0-7       / 1=Output, 0=Input
Bit 1: Richtung von TTL 8-15     / 1=Output, 0=Input
Bit 2: Richtung von TTL 16-23   / 1=Output, 0=Input
Bit 3: Richtung von TTL 24-31   / 1=Output, 0=Input
Bit 4: Richtung von TTL 32-39   / 1=Output, 0=Input
Bit 5: Richtung von TTL 40-47   / 1=Output, 0=Input
Bit 6: Richtung von TTL 48-55   / 1=Output, 0=Input
Bit 7: Richtung von TTL 56-63   / 1=Output, 0=Input

Bemerkung
Nur kompatibel mit USB-TTL-32/64.

Programmierbeispiel

ULONG ret = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_GET_DIR_DX_8, 0, 0, 0);
// Liest die Richtung von 64 Kanälen aus

Watchdog-Funktionen

Icon Delib Command

DapiWatchdogEnable

Diese Funktion aktiviert den Watchdog.

Beschreibung
Diese Funktion aktiviert den Watchdog.

Definition
void DapiWatchdogEnable(ULONG handle);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls

Return-Wert
Keiner

Programmierbeispiel

DapiWatchdogEnable(handle);
//Aktiviert den Watchdog

DapiWatchdogDisable

Diese Funktion deaktiviert den Watchdog.

Beschreibung
Diese Funktion deaktiviert den Watchdog.

Definition
void DapiWatchdogDisable(ULONG handle);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls

Return-Wert
Keiner

Programmierbeispiel

DapiWatchdogDisable(handle);
//Deaktiviert den Watchdog

DapiWatchdogRetrigger

Diese Funktion retriggert den Watchdog-Timer.

Beschreibung
Diese Funktion retriggert den Watchdog-Timer.

Definition
void DapiWatchdogRetrigger(ULONG handle);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls

Return-Wert
Keiner

Programmierbeispiel

DapiWatchdogRetrigger(handle);
//Retriggert den Watchdog-Timer

Watchdog-Special

Diese Funktion gibt verschiedene Status Informationen des Watchdog-Sticks zurück oder setzt diese.

Beschreibung
Diese Funktion gibt verschiedene Status Informationen des Watchdog-Sticks zurück oder setzt diese.

Definition
ULONG DapiSpecialCommand(ULONG handle, DAPI_SPECIAL_CMD_WATCHDOG, cmd, par1, 0);

Parameter
handle=Dies ist das Handle eines geöffneten Moduls

Abfragen des Timeout-Relais Zählers
cmd=DAPI_SPECIAL_WATCHDOG_GET_TIMEOUT_RELAIS_COUNTER_MSEC
par1=0

Abfragen des Watchdog-Status
cmd=DAPI_SPECIAL_WATCHDOG_GET_STATUS
par1=0

Abfragen der momentanen Timeout-Zeit
cmd=DAPI_SPECIAL_WATCHDOG_GET_TIMEOUT_MSEC
par1=0

Abfragen des Watchdog Timeout-Zählers
cmd=DAPI_SPECIAL_WATCHDOG_GET_WD_COUNTER_MSEC
par1=0

Setzen der Zeit, wie lange Relais 1 geschaltet wird
cmd=DAPI_SPECIAL_WATCHDOG_SET_TIMEOUT_REL1_COUNTER_MSEC
par1=Zeit, wie lange das 1.Relais geschaltet wird [ms]

Setzen der Zeit, wie lange Relais 2 geschaltet wird
cmd=DAPI_SPECIAL_WATCHDOG_SET_TIMEOUT_REL2_COUNTER_MSEC
par1=Zeit, wie lange das 2.Relais geschaltet wird [ms]

Return-Wert
Abfragen des Timeout-Relais Zählers
return=Vergangene Zeit nach einem Timeout [ms]

Abfragen des Watchdog-Status
return=Watchdog-Status
return=0 = Watchdog ist deaktiviert
return=1 = Watchdog ist aktiviert
return=2 = Watchdog ist retriggered
return=3 = Watchdog Timeout

Abfragen der momentanen Timeout-Zeit
return=Timeout-Zeit [ms]

Abfragen des Watchdog Timeout-Zählers
return=Vergangene Zeit ohne Retrigger [ms]

Programmierbeispiel

return = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_GET_TIMEOUT_RELAIS_COUNTER_MSEC, 0, 0);
//Abfragen des Timeout-Relais Zählers
return = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_GET_STATUS, 0, 0);
//Abfragen des Watchdog-Status
return = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_GET_TIMEOUT_MSEC, 0, 0);
//Abfragen der momentan benutzten Timeout-Zeit
return = DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_GET_WD_COUNTER_MSEC, 0, 0);
//Abfragen des Watchdog Timeout-Zählers

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_SET_TIMEOUT_REL1_COUNTER_MSEC, 500, 0);
//Schaltet das 1.Relais nach einem Timeout für 500 ms
DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_WATCHDOG, DAPI_SPECIAL_WATCHDOG_SET_TIMEOUT_REL1_COUNTER_MSEC, 700, 0);
//Schaltet das 2.Relais nach einem Timeout für 700 ms

Mein Warenkorb
Dein Warenkorb ist leer.

Sieht so aus, als hättest du noch keine Wahl getroffen.