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
Page 5
Hardware Beschreibung
II
Hardware Beschreibung |Seite5
Page 6
2. Hardware Beschreibung
2.1. Einführung
Mit diesem handlichen Stick verbinden Sie Ihren PC/Notebook mit der Welt der
RS-485 Geräte. Die galvanische Trennung bewirkt eine elektrische Trennung
des PC's zur RS-485 Schnittstelle. Störende Impulse auf der RS-485 Seite, die
solch einen Konverter zerstören, gehören damit zur Vergangenheit.
Durch die galvanische Trennung können auch Industrieanlagen mit dem PC
verbunden werden, die auf einem anderen elektrischem Level liegen, wie der
verwendete PC oder Notebook.
Hardware Beschreibung |Seite6
Page 7
2.2. Technische Daten
+5V Spannungsversorgung
USB auf RS-485 Konverter
Galvanisch getrennt
50 Baud ..115200 Baud (per Software konfigurierbar)
Windows VCP (Virtueller COM Port)
Linux Treiber inklusive
Abmessung: 84,5 x 21 x 12,5/9,5 mm (ohne Kabel)
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
Page 20
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
Page 21
Software
I
Software |
Seite6
Page 22
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
Page 23
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
Page 24
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
Page 25
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
Page 27
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
Page 28
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
Page 29
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
Page 30
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
Page 31
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
Page 32
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
Page 33
Verzeichnisstruktur der DELIB
II
Verzeichnisstruktur der DELIB |
Seite18
Page 34
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
Page 35
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
Page 38
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
Page 41
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
Page 42
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
Page 43
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
Page 44
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
Page 45
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
Page 46
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
Page 47
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
Page 49
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
Page 51
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
Page 66
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
Page 68
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
Page 69
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
Page 82
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
Page 84
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
Page 92
// 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.