Wir beglückwünschen Sie zum Kauf eines hochwertigen DEDITEC Produktes!
Unsere Produkte werden von unseren Ingenieuren nach den heutigen
geforderten Qualitätsanforderungen entwickelt. Wir achten bereits bei der
Entwicklung auf flexible Erweiterbarkeit und lange Verfügbarkeit.
Wir entwickeln modular!
Durch eine modulare Entwicklung verkürzt sich bei uns die Entwicklungszeit
und - was natürlich dem Kunden zu Gute kommt - ein fairer Preis!
Wir sorgen für eine lange Lieferverfügbarkeit!
Sollten verwendete Halbleiter nicht mehr verfügbar sein, so können wir
schneller reagieren. Bei uns müssen meistens nur Module redesigned werden
und nicht das gesamte Produkt. Dies erhöht die Lieferverfügbarkeit.
1.2. Kundenzufriedenheit
Ein zufriedener Kunde steht bei uns an erster Stelle!
Sollte mal etwas nicht zu Ihrer Zufriedenheit sein, wenden Sie sich einfach per
Telefon oder mail an uns.
Wir kümmern uns darum!
1.3. Kundenresonanz
Die besten Produkte wachsen mit unseren Kunden. Für Anregungen oder
Vorschläge sind wir jederzeit dankbar.
Einleitung | Seite4
Hardware Beschreibung
II
Hardware Beschreibung |Seite5
2. Hardware Beschreibung
2.1. Einführung
Dieser USB Umsetzer auf RS-232 mit TTL-Pegel ist ideal für z.B. Debugging
Zwecke an Microcontroller Schaltungen. Durch die galvanische Trennung wird
zudem Ihr Prozessor-Board in hohem Maße geschützt.
Dieser kleine USB-Stick überträgt serielle Daten mit TTL-Pegel (z.B.
Debugging-Informationen) über die USB-Schnittstelle. Auf Steuerungen stehen
meist nur TTL-Signale an den seriellen Schnittstellen von Prozessoren zur
Verfügung. Mit diesem Tool können Sie sich diese Signal jetzt bequem auf
einem PC oder Notebook anzeigen lassen. Und die "empfindlichen TTLSignale" werden durch die galvanische Trennung sicher mit dem PC verbunden.
Hardware Beschreibung |Seite6
2.2. Technische Daten
+5V Spannungsversorgung (über USB-BUS)
USB auf RS-232 mit TTL Pegel
Je eine LED für TX und RX
Galvanisch getrennt
50 Baud ..3MBaud (per Software konfigurierbar)
Windows VCP (Virtueller COM Port)
Linux Treiber inklusive
Abmessungen: 84,5 x 21 x 12,5/9,5 mm (ohne Kabel)
Der Anschluss an den Stick erfolgt auf der RS-232 Seite mittels einer 3pol.
Anschlussleitung. Die Aderenden sind beschriftet und mit Aderendhülsen
versehen.
RS-232 Pinbelegung
2.4. Kontroll LED's
Zwei LED's signalisieren Sende- und Empfangsereignisse.
3.8.1.17.
DAPI_STEPPER_CMD_GET_MOTOR_SUPPLY_VOLTAG
E
3.8.2. Status abfragen mit DapiStepperGetStatus
3.8.2.1. DAPI_STEPPER_STATUS_GET_ACTIVITY
3.8.2.2. DAPI_STEPPER_STATUS_GET_POSITION
3.8.2.3. DAPI_STEPPER_STATUS_GET_SWITCH
3.8.3. DapiStepperCommandEx
56
57
58
59
60
61
62
63
64
65
70
78
79
80
81
83
84
85
85
86
87
88
3.9. Ausgabe-Timeout verwalten89
3.9.1. DapiSpecialCMDTimeout
3.9.2. DapiSpecialCMDTimeoutGetStatus
89
90
3.10. Testfunktionen91
3.10.1. DapiPing
91
Index |
4Seite
INDEX
3.11. Register Schreib-Befehle92
3.11.1. DapiWriteByte
3.11.2. DapiWriteWord
3.11.3. DapiWriteLong
3.11.4. DapiWriteLongLong
92
93
94
95
3.12. Register Lese-Befehle96
3.12.1. DapiReadByte
3.12.2. DapiReadWord
3.12.3. DapiReadLong
3.12.4. DapiReadLongLong
96
97
98
99
3.13. Programmier-Beispiel100
4. Anhang103
4.1. Revisionen103
4.2. Urheberrechte und Marken104
Index |
5Seite
Software
I
Software |
Seite6
1. Software
1.1. Benutzung unserer Produkte
1.1.1. Ansteuerung über grafische Anwendungen
Wir stellen Treiberinterfaces z.B. für LabVIEW und ProfiLab zur Verfügung. Als
Basis dient die DELIB Treiberbibliothek, die von ProfiLab direkt angesteuert
werden kann.
Für LabVIEW bieten wir eine einfache Treiberanbindung mit Beispielen an!
1.1.2. Ansteuerung über unsere DELIB Treiberbibliothek
Im Anhang befindet sich die komplette Funktionsreferenz für das Integrieren
unserer API-Funktionen in Ihre Software. Des Weiteren bieten wir passende
Beispiele für folgende Programmiersprachen:
C
C++
C#
Delphi
VisualBasic
VB.NET
MS-Office
1.1.3. Ansteuerung auf Protokollebene
Das Protokoll für die Ansteuerung unserer Produkte legen wir komplett offen. So
können Sie auch auf Systemen ohne Windows oder Linux unsere Produkte
einsetzen!
Software |
Seite7
1.1.4. Ansteuerung über mitgelieferte Testprogramme
Für die wichtigsten Funktionen unserer Produkte stellen wir einfach zu
bedienende Testprogramme zur Verfügung,. Diese werden bei der Installation
der DELIB Treiberbibliothek direkt mit installiert.
So können z.B. Relais direkt getestet werden oder Spannungen am A/D Wandler
direkt überprüft werden.
Software |
Seite8
1.2. DELIB Treiberbibliothek
1.2.1. Übersicht
Die folgende Abbildung erläutert den Aufbau der DELIB Treiberbibliothek
Die DELIB Treiberbibliothek ermöglicht ein einheitliches Ansprechen von
DEDITEC Hardware, mit der besonderen Berücksichtigung folgender
Gesichtspunkte:
Die DELIB Treiberbibliothek ermöglicht ein einheitliches Ansprechen unserer
Produkte auf diversen Betriebssystemen.
Wir haben dafür gesorgt, dass mit wenigen Befehlen alle unsere Produkte
angesprochen werden können.
Dabei spielt es keine Rolle, welches Betriebssystem Sie verwenden. - Dafür
sorgt die DELIB !
Software |
Seite9
Programmieren mit diversen Programmiersprachen
Für das Erstellen eigener Anwendungen stellen wir Ihnen einheitliche Befehle
zur Verfügung. Dies wird über die DELIB Treiberbibliothek gelöst.
Sie wählen die Programmiersprache !
So können leicht Anwendung unter C++, C, Visual Basic, Delphi oder
LabVIEW® entwickelt werden.
Schnittstellenunabhängiges programmieren
Schreiben Sie Ihre Anwendung schnittstellenunabhängig !
Programmieren Sie eine Anwendung für ein USB-Produkt von uns. - Es wird
auch mit einem Ethernet oder RS-232 Produkt von uns laufen !
SDK-Kit für Programmierer
Integrieren Sie die DELIB in Ihre Anwendung. Auf Anfrage erhalten Sie von uns
kostenlos Installationsskripte, die es ermöglichen, die DELIB Installation in Ihre
Anwendung mit einzubinden.
Windows 2000
Windows XP
Windows Vista
Windows 7
Linux
1.2.3. Unterstützte Programmiersprachen
Unsere Produkte sind über folgende Programmiersprachen ansprechbar:
C
C++
C#
Delphi
VisualBasic
VB.NET
MS-Office
Software |
Seite11
1.2.4. Installation DELIB-Treiberbibliothek
Legen Sie die DEDITEC driver CD in das Laufwerk und starten Sie
“delib_install.exe”. Die DELIB-Treiberbibliothek ist auch unter http://www.
deditec.de/delib erhältlich.
Drücken Sie auf “Install”.
Software |
Seite12
Die Treiber werden nun installiert.
Die DELIB Treiberbibliothek wurde nun Installiert. Drücken sie auf “Close” um
die Installation zu beenden.
Mit dem “DELIB Configuration Utility” (nächstes Kapitel) können Sie Ihr Modul
konfigurieren (dies ist nur nötig, wenn Sie mehr als ein Modul ansprechen
möchten).
Software |
Seite13
1.2.5. DELIB Configuration Utility
“DELIB Configuration Utility” wird auf dem folgendem Weg gestartet:
Start Programme DEDITEC DELIB DELIB Configuration Utility.
Das “DELIB Configuration Utility” ist ein Programm zur Konfiguration und
Unterteilung Identischer USB-Module im System. Dies ist aber nicht nötig falls
nur ein Modul vorhanden ist.
Weiteres zum Inhalt der “DELIB Installation”, siehe “Manual für DELIB
Treiberbibliothek”
Software |
Seite14
1.3. Testprogramme
1.3.1. Digital Input-Output Demo
“Digital Input-Output Demo” wird auf dem folgendem Weg gestartet:
Start Programme DEDITEC DELIB Digital Input-Output Demo.
Diese Grafik zeigt einen Test des RO-USB-O64-R64. Oben links kann man die
Konfiguration des Moduls ablesen (64 Eingänge und 64 Ausgänge).
Software |
Seite15
1.3.2. Analog Input-Output Demo
“Analog Input-Output Demo” wird auf dem folgendem Weg gestartet:
Start Programme DEDITEC DELIB Analog Input-Output Demo.
Diese Grafik zeigt einen Test des RO-USB-AD16-DA4. Oben links kann man
die Konfiguration des Moduls ablesen (16 A/D-Eingänge und 4 D/A-Ausgänge).
Software |
Seite16
1.3.3. Stepper Demo
“Stepper Demo” wird auf dem folgendem Weg gestartet:
Start Programme DEDITEC DELIB Stepper Demo.
Diese Grafik zeigt einen Test des RO-USB-STEPPER2. Oben links kann man
die Konfiguration des Moduls ablesen (2 Stepper).
Software |
Seite17
Verzeichnisstruktur der DELIB
II
Verzeichnisstruktur der DELIB |
Seite18
2. Verzeichnisstruktur der DELIB
Nach erfolgreicher Installation liegt folgender Verzeichnissbaum vor:
C:\Programme\DEDITEC\DELIB\
> include Includes für Programmiersprachen ( Abschnitt 3.1.1)
> libLibrary ( Abschnitt 3.1.2)
> lib\bcBorland Compiler Library ( Abschnitt 3.1.2)
> programsModul-Testprogramme ( Abschnitt 2.3)
> USB-DriverTreiber für USB-Module
Zudem wurde auch in C:\WINNT\system32\ die Datei delib.dll sowie diverse
USB Systemtreiber installiert.
2.1. Include Verzeichnis
Das für die DELIB angelegte Include-Verzeichnis enthält die Dateien, welche
die entsprechenden Library-Funktionen beschreiben. Diese sind für die
Programmiersprachen C (.h), Delphi (.pas) und Visual Basic (.bas) gegeben.
2.2. Library-Verzeichnis
Hierin befindet sich die Datei “DELIB.lib”. Sie dient als Bindeglied für das
Compilieren von eigenen Programmen, die die “DELIB.dll” benutzen.
Verzeichnisstruktur der DELIB |
Seite19
2.3. Library-Verzeichnis für Borland
Für Borland Compiler gibt es eine separate DELIB.lib, die sich im
Unterverzeichnis “bc” befindet. Diese dient ebenfalls als Bindeglied für das
Compilieren von eigenen Programmen, die die “DELIB.dll” benutzen.
2.4. Umgebungsvariablen
Zwei Umgebungsvariablen weisen auf wichtige Verzeichnisse hin, die Dateien
für die Programmiersprachen C, Delphi und Visual Basic enthalten.
“DELIB_INCLUDE” zeigt auf das Include-Verzeichnis.
// USB-Modul öffnen
handle = DapiOpenModule(RO_USB1, 0);
printf("handle = %x\n", handle);
if (handle==0)
{
// USB Modul wurde nicht gefunden
printf("Modul konnte nicht geöffnet werden\n");
return;
}
3.1. Verwaltungsfunktionen
3.1.1. DapiOpenModule
Beschreibung
Diese Funktion öffnet ein bestimmtes Modul.
Definition
ULONG DapiOpenModule(ULONG moduleID, ULONG nr);
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
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.
Programmierbeispiel
DELIB API Referenz |
Seite22
3.1.2. DapiCloseModule
// Modul schliessen
DapiCloseModule(handle);
Beschreibung
Dieser Befehl schliesst ein geöffnetes Modul.
Definition
ULONG DapiCloseModule(ULONG handle);
Parameter
handle=Dies ist das Handle eines geöffneten Moduls
Diese Funktion liest den Text des letzten erfassten Fehlers.
Definition
extern ULONG __stdcall 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
DELIB API Referenz |
Seite25
3.3. Digitale Eingänge lesen
3.3.1. DapiDIGet1
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)
DELIB API Referenz |
Seite26
3.3.2. DapiDIGet8
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
DELIB API Referenz |
Seite27
3.3.3. DapiDIGet16
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
DELIB API Referenz |
Seite28
3.3.4. DapiDIGet32
unsigned long data;
// ---------------------------------------------------// Einen Wert von den Eingängen lesen (Eingang 1-31)
data = (unsigned long) DapiDIGet32(handle, 0);
// Chan Start = 0
printf("Eingang 0-31 : 0x%x\n", data);
printf("Taste für weiter\n");
getch();
// ---------------------------------------------------// Einen Wert von den Eingängen lesen (Eingang 32-64)
data = (unsigned long) DapiDIGet32(handle, 32);
// Chan Start = 32
printf("Eingang 32-64 : 0x%x\n", data);
printf("Taste für weiter\n");
getch();
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
Programmierbeispiel
DELIB API Referenz |
Seite29
3.3.5. DapiDIGet64
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
DELIB API Referenz |
Seite30
3.3.6. DapiDIGetFF32
Beschreibung
Dieser Befehl liest die Flip-Flops der Eingänge aus und setzt diese zurück
(Eingangszustands-Änderung).
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
DELIB API Referenz |
Seite31
3.3.7. DapiDIGetCounter
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
Beschreibung
Dieser Befehl liest den Eingangszähler eines digitalen Eingangs.
Definition
ULONG DapiDIGetCounter(handle, ch, par1);
Parameter
handle=Dies ist das Handle eines geöffneten Moduls
ch=Gibt die Nummer des Eingangs an, ab dem gelesen werden soll
par1=0 (Normale Zählfunktion)
par1=DAPI_CNT_MODE_READ_WITH_RESET (Zähler auslesen und direktes
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
DELIB API Referenz |
Seite33
3.4.2. DapiDOSet8
Beschreibung
Dieser Befehl setzt gleichzeitig 8 digitale Ausgänge.
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
DELIB API Referenz |
Seite35
3.4.4. DapiDOSet32
// Einen Wert auf die Ausgänge schreiben
data = 0x0000ff00; // Ausgänge 9-16 werden auf 1 gesetzt
DapiDOSet32(handle, 0, data); // Chan Start = 0
printf("Schreibe auf Ausgänge Daten=0x%x\n", data);
printf("Taste für weiter\n");
getch();
// ---------------------------------------------------// Einen Wert auf die Ausgänge schreiben
data = 0x80000000; // Ausgang 32 wird auf 1 gesetzt
DapiDOSet32(handle, 0, data); // Chan Start = 0
printf("Schreibe auf Ausgänge Daten=0x%x\n", data);
printf("Taste für weiter\n");
getch();
// ---------------------------------------------------// Einen Wert auf die Ausgänge schreiben
data = 0x80000000; // Ausgang 64 wird auf 1 gesetzt
DapiDOSet32(handle, 32, data); // Chan Start = 32
printf("Schreibe auf Ausgänge Daten=0x%x\n", data);
printf("Taste für weiter\n");
getch();
Beschreibung
Dieser Befehl setzt gleichzeitig 32 digitale Ausgänge.
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
DELIB API Referenz |
Seite50
3.6.5. DapiDASetmA
Beschreibung
Dieser Befehl setzt einen Strom an einen Kanal eines D/A Wandlers.
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/StromWert, 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.
DELIB API Referenz |
Seite52
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.
DELIB API Referenz |
Seite53
3.7. TTL-Ein-/Ausgangs Richtungen setzen mit
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
DapiSpecialCommand
3.7.1. DAPI_SPECIAL_CMD_SET_DIR_DX_1
Beschreibung
Dieser Befehl setzt die Richtung von TTL-Ein/Ausgängen (1-Bit weise).
Hiermit wird eine bestimmte Position angefahren. Dieses Kommando darf nur
ausgeführt werden, wenn der Motor nicht "disabled" ist und kein Go_Position
oder Go_Referenz ausgeführt wird.
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.
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.
Dieses Kommando dient zum setzten der Motorposition. Die Auflösung beträgt
1/16 Vollschritt. Dieses Kommando darf nur bei angehaltenem Motor verwendet
werden.
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.
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.
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.
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.
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)
DELIB API Referenz |
Seite66
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
par2=Geschwindigkeit, mit der der optionale Offset angefahren wird (Frequenz
[Vollschritt / s] - (Maximalwert=5000))
Programmierbeispiel
DELIB API Referenz |
Seite68
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.
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.
par1=DAPI_STEPPER_MOTORCHAR_PAR_HOLDPHASECURRENT
return= Phasenstrom bei Motorstillstand [mA]
Parameter-Hold-Time
par1=DAPI_STEPPER_MOTORCHAR_PAR_HOLDTIME
return=Zeit in der der Haltestrom fließt nach Motorstop [ms]
return=-1 / FFFF hex / 65535 dez (Zeit unendlich)
Parameter-Status-LED-Mode
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
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW1
return=Endschalter1 wird invertiert (0=normal / 1=invertieren)
Parameter-Invert-END-Switch2
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_ENDSW2
return=Endschalter2 wird invertiert (0=normal / 1=invertieren)
Parameter-Invert-Ref-Switch1
par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW1
return=Referenzschalterschalter1 wird invertiert (0=normal / 1=invertieren)
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);
DELIB API Referenz |
Seite76
// 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.
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).
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.