USB-RS232-TTL-STICK Hardware-Beschreibung 2010 September
INDEX 1. Einleitung 4 1.1. Vorwort 4 1.2. Kundenzufriedenheit 4 1.3. Kundenresonanz 4 2. Hardware Beschreibung 6 2.1. Einführung 6 2.2. Technische Daten 7 2.3. Pinbelegung Steckverbinder (3pol. Anschlussleitung) 8 2.4. Kontroll LED's 8 3. Software 3.1. Installation "VCP Treiber (Virtueller COM-Port)" 4. Anhang 10 10 13 4.1. Produktinformation 13 4.2. Revisionen 14 4.3.
Einleitung I Einleitung | Seite 3
1. Einleitung 1.1. Vorwort 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.
Hardware Beschreibung II Hardware Beschreibung | Seite 5
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.
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 ..
2.3. Pinbelegung Steckverbinder (3pol. Anschlussleitung) 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 Pin Braun Weiß Grün RX TX GND 2.4. Kontroll LED's Zwei LED's signalisieren Sende- und Empfangsereignisse.
Software III Software | Seite 9
3. Software 3.1. Installation "VCP Treiber (Virtueller COM-Port)" Legen Sie die DEDITEC driver CD in das Laufwerk und starten Sie “vcp_driver_install.exe”. Die “VCP Treiber (Virtueller COM-Port)” Software ist auch unter http://www.deditec.de/de/entwicklungstools/download.html erhältlich.
Drücken Sie auf “Install”. Die Treiber werden nun installiert. Die “VCP Treiber (Virtueller COM-Port)” Software wurde nun installiert. Drücken sie auf “Close” um die Installation zu beenden.
Anhang IV Anhang | Seite 12
4. Anhang 4.1. Produktinformation Best.Nr.: USB-RS232-TTL-STICK Produkt: USB-RS-232(TTL-Pegel)-Konverter für den Anschluss von seriellen Schnittstellen (TTL-Pegel) an den PC über USB Produktlink: http://www.deditec.de/de/entwicklungstools/prod/usb-rs232-ttlstick.
4.2. Revisionen Rev 1.00 Rev 2.
4.3. Urheberrechte und Marken Linux ist eine registrierte Marke von Linus Torvalds. Windows CE ist eine registrierte Marke von Microsoft Corporation. USB ist eine registrierte Marke von USB Implementers Forum Inc. LabVIEW ist eine registrierte Marke von National Instruments. Intel ist eine registrierte Marke von Intel Corporation AMD ist eine registrierte Marke von Advanced Micro Devices, Inc.
DELIB DEDITEC Treiber Bibliothek 2010 Dezember
INDEX 1. Software 7 1.1. Benutzung unserer Produkte 7 1.1.1. Ansteuerung über grafische Anwendungen 1.1.2. Ansteuerung über unsere DELIB Treiberbibliothek 1.1.3. Ansteuerung auf Protokollebene 1.1.4. Ansteuerung über mitgelieferte Testprogramme 1.2. DELIB Treiberbibliothek 1.2.1. Übersicht 1.2.2. Unterstützte Betriebssysteme 1.2.3. Unterstützte Programmiersprachen 1.2.4. Installation DELIB-Treiberbibliothek 1.2.5. DELIB Configuration Utility 1.3. Testprogramme 1.3.1. Digital Input-Output Demo 1.3.2.
INDEX 3.3. Digitale Eingänge lesen 3.3.1. DapiDIGet1 3.3.2. DapiDIGet8 3.3.3. DapiDIGet16 3.3.4. DapiDIGet32 3.3.5. DapiDIGet64 3.3.6. DapiDIGetFF32 3.3.7. DapiDIGetCounter 26 26 27 28 29 30 31 32 3.4. Digitale Ausgänge verwalten 33 3.4.1. DapiDOSet1 3.4.2. DapiDOSet8 3.4.3. DapiDOSet16 3.4.4. DapiDOSet32 3.4.5. DapiDOSet64 3.4.6. DapiDOReadback32 3.4.7. DapiDOReadback64 33 3.5. A/D Wandler Funktionen 34 35 36 37 38 39 40 3.5.1. DapiADSetMode 3.5.2. DapiADGetMode 3.5.3. DapiADGet 3.5.4.
INDEX 56 3.8.1.1. DAPI_STEPPER_CMD_GO_POSITION 3.8.1.2. DAPI_STEPPER_CMD_GO_POSITION_RELATIVE 57 3.8.1.3. DAPI_STEPPER_CMD_SET_POSITION 58 3.8.1.4. DAPI_STEPPER_CMD_SET_FREQUENCY 59 3.8.1.5. DAPI_STEPPER_CMD_GET_FREQUENCY 60 3.8.1.6. DAPI_STEPPER_CMD_SET_FREQUENCY_DIRECTLY 61 3.8.1.7. DAPI_STEPPER_CMD_STOP 62 3.8.1.8. DAPI_STEPPER_CMD_FULLSTOP 63 3.8.1.9. DAPI_STEPPER_CMD_DISABLE 64 3.8.1.10. DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC 65 3.8.1.11.
INDEX 3.11. Register Schreib-Befehle 3.11.1. DapiWriteByte 3.11.2. DapiWriteWord 3.11.3. DapiWriteLong 3.11.4. DapiWriteLongLong 3.12. Register Lese-Befehle 3.12.1. DapiReadByte 3.12.2. DapiReadWord 3.12.3. DapiReadLong 3.12.4. DapiReadLongLong 3.13. Programmier-Beispiel 4. Anhang 92 92 93 94 95 96 96 97 98 99 100 103 4.1. Revisionen 103 4.2.
Software I Software | Seite 6
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.
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.
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: Betriebssystem unabhängig Programmiersprachen unabhängig Produkt unabhängig Programmieren unter diversen Betriebssystemen Die DELIB Treiberbibliothek ermöglicht ein einheitliches Ansprechen unserer Produkte auf diversen Betriebssystemen.
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.
1.2.2. Unterstützte Betriebssysteme Unsere Produkte unterstützen folgende Betriebssysteme: 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.
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”.
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).
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.
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).
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).
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).
Verzeichnisstruktur der DELIB II Verzeichnisstruktur der DELIB | Seite 18
2. Verzeichnisstruktur der DELIB Nach erfolgreicher Installation liegt folgender Verzeichnissbaum vor: C:\Programme\DEDITEC\DELIB\ > > > > > include Includes für Programmiersprachen ( Abschnitt 3.1.1) lib Library ( Abschnitt 3.1.2) lib\bc Borland Compiler Library ( Abschnitt 3.1.2) programs Modul-Testprogramme ( Abschnitt 2.3) USB-Driver Treiber für USB-Module Zudem wurde auch in C:\WINNT\system32\ die Datei delib.dll sowie diverse USB Systemtreiber installiert. 2.1.
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.
DELIB API Referenz III DELIB API Referenz | Seite 21
3. DELIB API Referenz 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.
3.1.2. DapiCloseModule Beschreibung Dieser Befehl schliesst ein geöffnetes Modul.
3.2. Fehlerbehandlung 3.2.1. DapiGetLastError Beschreibung Diese Funktion liefert den letzten erfassten Fehler. Definition ULONG DapiGetLastError(); Parameter Keine Return-Wert Fehler Code 0=kein Fehler. (siehe delib.
3.2.2. DapiGetLastErrorText Beschreibung Diese Funktion liest den Text des letzten erfassten Fehlers.
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, ..
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, ..
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, ...
3.3.4. DapiDIGet32 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, ..
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, ..
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, ..
3.3.7. DapiDIGetCounter Beschreibung Dieser Befehl liest den Eingangszähler eines digitalen Eingangs.
3.4. Digitale Ausgänge verwalten 3.4.1. DapiDOSet1 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 ..
3.4.2. DapiDOSet8 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, ..
3.4.3. DapiDOSet16 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, ..
3.4.4. DapiDOSet32 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, ..
3.4.5. DapiDOSet64 Beschreibung Dieser Befehl setzt gleichzeitig 64 digitale Ausgänge. Definition void DapiDOSet64(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, 64, ..
3.4.6. DapiDOReadback32 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.
3.4.7. DapiDOReadback64 Beschreibung Dieser Befehl liest die 64 digitalen Ausgänge zurück. Definition ULONGLONG 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, 64, ..) Return-Wert Zustand von 64 Ausgängen.
3.5. A/D Wandler Funktionen 3.5.1. DapiADSetMode 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 ..
Ströme: ADDA_MODE_0_20mA ADDA_MODE_4_20mA ADDA_MODE_0_24mA ADDA_MODE_0_25mA ADDA_MODE_0_50mA DELIB API Referenz | Seite 41
3.5.2. DapiADGetMode 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 ..
3.5.3. DapiADGet 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 ..
3.5.4. DapiADGetVolt 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 ..
3.5.5. DapiADGetmA Beschreibung Dieser Befehl liest einen Datenwert von einen Kanal 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 Modul abhängig. Er funktioniert natürlich nur, wenn das Modul auch den Strom-Modus unterstützt.
3.6. D/A Ausgänge verwalten 3.6.1. DapiDASetMode 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 ..
Ströme: ADDA_MODE_0_20mA ADDA_MODE_4_20mA ADDA_MODE_0_24mA ADDA_MODE_0_25mA ADDA_MODE_0_50mA DELIB API Referenz | Seite 47
3.6.2. DapiDAGetMode 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 ..
3.6.3. DapiDASet 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 ..
3.6.4. DapiDASetVolt 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 ..
3.6.5. DapiDASetmA 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 Modul abhängig. Er funktioniert natürlich nur, wenn das Modul auch den Strom-Modus unterstützt.
3.6.6. DapiSpecialCmd_DA 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, ..
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.
3.7. TTL-Ein-/Ausgangs Richtungen setzen mit 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). 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=Gibt die Nummer des Ausgangs an, ab dem die Richtung gesetzt werden soll (0, 1, 2, 3, 4 ..
3.7.2. DAPI_SPECIAL_CMD_SET_DIR_DX_8 Beschreibung Dieser Befehl setzt die Richtung von TTL-Ein/Ausgängen (8-Bit weise). 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=Gibt die Nummer des Ausgangs an, ab dem die Richtung gesetzt werden soll (0, 8, 16, 24 ..). Zwischenwerte sind ungültig dir=(8-Bit) gibt die Richtung für 8 hintereinanderliegende Ein/Ausgänge an.
3.8. Schrittmotoren Funktionen 3.8.1. Befehle mit DapiStepperCommand 3.8.1.1. DAPI_STEPPER_CMD_GO_POSITION Beschreibung 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.
3.8.1.2. DAPI_STEPPER_CMD_GO_POSITION_RELATIVE 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.
3.8.1.3. DAPI_STEPPER_CMD_SET_POSITION Beschreibung Dieses Kommando dient zum setzten der Motorposition. Die Auflösung beträgt 1/16 Vollschritt. Dieses Kommando darf nur bei angehaltenem Motor verwendet werden.
3.8.1.4. DAPI_STEPPER_CMD_SET_FREQUENCY 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.
3.8.1.5. DAPI_STEPPER_CMD_GET_FREQUENCY Beschreibung Dieses Kommando dient zum Abfragen der Motorfrequenz. Dieses Kommando darf immer verwendet werden.
3.8.1.6. DAPI_STEPPER_CMD_SET_FREQUENCY_DIRECTLY 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.
3.8.1.7. DAPI_STEPPER_CMD_STOP Beschreibung Dieses Kommando dient zum Anhalten des Motors, die Bremsrampe wird dabei eingehalten.
3.8.1.8. DAPI_STEPPER_CMD_FULLSTOP 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.
3.8.1.9. DAPI_STEPPER_CMD_DISABLE 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.
3.8.1.10. DAPI_STEPPER_CMD_SET_MOTORCHARACTERISTIC Beschreibung Hiermit werden neue Motor Konfigurationen gesetzt.
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_STEP
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 1=invertieren) Parameter-Invert-Ref-Switch2 setzen par1=DAPI_STEPPER_MOTO
Parameter GoReferenceFrequencyAfterEndSwitch setzen par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_AFT ERENDSWITCH par2=Geschwindigkeit, mit der vom Enschalter abgefahren wird (Frequenz [Vollschritt / s] - (Maximalwert=5000)) Parameter GoReferenceFrequencyToOffset setzen par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TO OFFSET par2=Geschwindigkeit, mit der der optionale Offset angefahren wird (Frequenz [Vollschritt / s] - (Maximalwert=5000)) Programmierbeispiel DapiStepperCommand(handle, motor,
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_STEP
3.8.1.11. DAPI_STEPPER_CMD_GET_MOTORCHARACTERISTIC 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.
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-Sw
Parameter GoReferenceFrequencyAfterEndSwitch abfragen par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_AFT ERENDSWITCH Parameter GoReferenceFrequencyToOffSet abfragen par1=DAPI_STEPPER_MOTORCHAR_PAR_GOREFERENCEFREQUENCY_TO OFFSET DELIB API Referenz | Seite 72
Return-Wert Parameter-Stepmode ablesen par1=DAPI_STEPPER_MOTORCHAR_PAR_STEPMODE return=0 (Vollschrittbetrieb) return=1 (Halbschrittbetrieb) return=2 (Viertelschrittbetrieb) return=3 (Achtelschrittbetrieb) return=4 (Sechzehntelschrittbetrieb) Parameter-GO-Frequency par1=DAPI_STEPPER_MOTORCHAR_PAR_GOFREQUENCY return=Geschwindigkeit [Vollschritt / s] - bezogen auf Vollschritt Parameter-Start-Frequency par1=DAPI_STEPPER_MOTORCHAR_PAR_STARTFREQUENCY return=Startfrequenz [Vollschritt / s] Parameter-Stop-Frequency
Parameter-Phasecurrent par1=DAPI_STEPPER_MOTORCHAR_PAR_PHASECURRENT return=Phasenstrom [mA] Parameter-Hold-Phasecurrent 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
Parameter-Invert-Ref-Switch2 par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_REFSW2 return=Referenzschalterschalter2 wird invertiert (0=normal / 1=invertieren) Parameter-Invert-direction par1=DAPI_STEPPER_MOTORCHAR_PAR_INVERT_DIRECTION return=Richtungsangaben werden invertiert (0=normal / 1=invertieren) Parameter-Endswitch-Stopmode par1= DAPI_STEPPER_MOTORCHAR_PAR_ENDSWITCH_STOPMODE return=Einstellung des Stopverhaltens (0=Fullstop / 1=Stop) Parameter-GoReferenceFrequnecyToEndSwitch par1=DAPI_STEPPER_MOTORCHAR_PAR_G
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_MOTORCHARACTERIST
// 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_STEPPE
3.8.1.12. DAPI_STEPPER_CMD_MOTORCHARACTERISTIC_EEPROM_SAVE Beschreibung Es wird die aktuelle Motorcharakteristik des Motors ins EEPROM abgespeichert.
3.8.1.13. DAPI_STEPPER_CMD_MOTORCHARACTERISTIC_EEPROM_LOAD Beschreibung Es wird die Motorcharakteristik des Motors aus dem EEPROM geladen.
3.8.1.14. DAPI_STEPPER_CMD_MOTORCHARACTERISTIC_LOAD_DEFAULT Beschreibung Es wird die Motorcharakteristik des Motors auf Defaultwerte zurück gesetzt.
3.8.1.15. DAPI_STEPPER_CMD_GO_REFSWITCH Beschreibung Der Motor fährt zur Referenzposition.
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.
3.8.1.16. DAPI_STEPPER_CMD_GET_CPU_TEMP Beschreibung Die Temperatur des CPU wird abgefragt.
3.8.1.17. DAPI_STEPPER_CMD_GET_MOTOR_SUPPLY_VOLTAGE Beschreibung Hiermit wird die Versorgungsspannung des Motors abgefragt.
3.8.2. Status abfragen mit DapiStepperGetStatus 3.8.2.1. DAPI_STEPPER_STATUS_GET_ACTIVITY Beschreibung Hiermit werden verschiedene Statusinformationen (z.B. die Aktivität des Motorstroms, etc.) abgefragt.
3.8.2.2. DAPI_STEPPER_STATUS_GET_POSITION Beschreibung Hiermit wird eine bestimmte Position abgelesen.
3.8.2.3. DAPI_STEPPER_STATUS_GET_SWITCH Beschreibung Hiermit wird der Zustand der Schalter abgefragt.
3.8.3. DapiStepperCommandEx 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.
3.9. Ausgabe-Timeout verwalten 3.9.1.
3.9.2. DapiSpecialCMDTimeoutGetStatus Beschreibung Dieser Befehl dient zum Auslesen des Timeout-Status.
3.10. Testfunktionen 3.10.1. DapiPing Beschreibung Dieser Befehl prüft die Verbindung zu einem geöffneten Modul.
3.11. Register Schreib-Befehle 3.11.1. DapiWriteByte 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.
3.11.2. DapiWriteWord 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.
3.11.3. DapiWriteLong 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.
3.11.4. DapiWriteLongLong 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.
3.12. Register Lese-Befehle 3.12.1. DapiReadByte 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.
3.12.2. DapiReadWord 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.
3.12.3. DapiReadLong 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.
3.12.4. DapiReadLongLong Beschreibung Dieser Befehl führt einen direkten Register Lese-Befehl auf das Modul aus. Definition ULONGLONG DapiReadLongLong(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 (64 Bit) Bemerkung Dies sollte nur von erfahrenen Programmieren benutzt werden. So kann auf alle zur Verfügung stehenden Register direkt zugegriffen werden.
3.13. Programmier-Beispiel // **************************************************************************** // **************************************************************************** // **************************************************************************** // **************************************************************************** // **************************************************************************** // // (c) DEDITEC GmbH, 2009 // // web: http://www.deditec.
return; } // Zum Testen - ein Ping senden // ---------------------------------------------------printf("PING\n"); anz=10; for(i=0;i!=anz;++i) { data=DapiPing(handle, i); if(i==data) { // OK printf(".
Anhang IV Anhang | Seite 102
4. Anhang 4.1. Revisionen Rev 1.00 Rev 1.1 Rev 1.2 Rev 1.3 Rev 2.00 Rev 2.01 Rev 2.02 Rev 2.03 Rev 2.
4.2. Urheberrechte und Marken Linux ist eine registrierte Marke von Linus Torvalds. Windows CE ist eine registrierte Marke von Microsoft Corporation. USB ist eine registrierte Marke von USB Implementers Forum Inc. LabVIEW ist eine registrierte Marke von National Instruments. Intel ist eine registrierte Marke von Intel Corporation AMD ist eine registrierte Marke von Advanced Micro Devices, Inc.