EMIS GmbH USB-iSMIF Das intelligente USB-Schrittmotor-Interface (Die Hardware) Leistungsumfang • • • • • Kunststoffgehäuse (L x B x H) 85 x 81x 40 mm Stromversorgung über USB-Anschluß (kein externes Netzteil notwendig) serielle Ansteuerung über USB bis zu 7 Einzelprogramme im integrierten Festwertspeicher downloadbar für Standalone-Anwendungen jedes Programm kann einzeln (auch ohne PC) abgearbeitet werden
Technische Daten Interface: Festwertspeicher: Eingänge: Ausgänge: USB insg.
Belegung der 25-pol SUB-D Buchse Takt/Richtung Variante 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 DIR-X TAKT-X DIR-Y TAKT-Y DIR-Z TAKT-Z A3 REFSW-X REFSW-Y REFSW-Z A1 E1 A2 REFANF START STOP PAUSE PARKEN PS0 PS1 PS2 GND SMC – Variante für SMC800 / SMC1500 /STROBE D1 D2 D3 D4 D5 D6 D7 D8 A3 REFSW-X REFSW-Y REFSW-Z A1 E1 A2 REFANF START STOP PAUSE PARKEN PS0 PS1 PS2 GND Bedeutung der Ein-/Ausgangsbezeichnungen: Eingänge: Takt/Richtung Variante: DIR-X TAKT-X DIR-Y TAKT-Y DIR-Z TAKT-
Eingänge: SMC-Variante: /STROBE D1 D2 D3 D4 D5 D6 D7 D8 siehe auch Technisches Handbuch ‚Schrittmotorsteuerkarte SMC800/ SMC1500 S.
EMIS GmbH USB-iSMIF Das intelligente USB-Schrittmotor-Interface (Der ASCII-Befehlssatz) Version 1.0 vom 01.07.
Das intelligente USB-Schrittmotor-Interface Inhaltsverzeichnis 1. 2. 3. 4. Einführung Aufbau Funktionsweise Befehlsübertragung 4.1. Datenübertragung 4.2. Befehlsaufbau 4.3. Fehlercodes 5. Befehlsbeschreibung 5.1. Reset durchführen 5.2. Version abfragen 5.3. Status abfragen 5.4. Achsenposition abfragen 5.5. Ansteuersignal einstellen 5.6. Halb- und Vollschritt einstellen / Ruhestrom 5.7. Startgeschwindigkeit einstellen 5.8. Endgeschwindigkeit einstellen 5.9. Rampenlänge einstellen 5.10.
Das intelligente USB-Schrittmotor-Interface 1. Einführung Das intelligente USB-Schrittmotor-Interface dient zur Anbindung der SchrittmotorSteuerkarten SMC800 und SMC1500 über die serielle USB-Schnittstelle. Zudem können auch handelsübliche Schrittmotorendstufen mit dem SchrittmotorInterface über die serielle USB-Schnittstelle angesteuert werden.
Das intelligente USB-Schrittmotor-Interface 2. Aufbau Die Belegung der Steckverbinder, Jumper usw.
Das intelligente USB-Schrittmotor-Interface 3. Funktionsweise Das intelligente USB-Schrittmotor-Interface dient als Bindeglied zwischen Steuersoftware und Schrittmotor-Endstufe. Das Interface enthält einen Mikrocontroller, der die Erzeugung von Datensignalen übernimmt. Es werden keine Software-Treiber benötigt. Die Ansteuerung erfolgt mit einfachen Steuerkommandos im ASCII-Format, die über die serielle Schnittstelle ausgegeben werden. Diese Steuerkommandos können in jedem Betriebssystem, bzw.
Das intelligente USB-Schrittmotor-Interface 4. Befehlsübertragung 4.1. Datenübertragung Die Datenübertragung zum Interface basiert auf einem ASCII- oder Text-protokoll. Alle Befehle sind aus ASCII-Zeichen aufgebaut. Ein Handshake-Verfahren ist nicht vorgesehen. Zusätzliche Steuersignale werden für die Datenübertragung nicht verwendet. Als Übertragungsparameter sind einzustellen: Baudrate: 115200 Datenbit: 8 StopBit:1 Parität: keine 4.2.
Das intelligente USB-Schrittmotor-Interface Beispiele für Masterbefehle sind der „Reset“-Befehl, die „Statusabfrage“ oder der „Achsen sofort stoppen“-Befehl. So kann z.B. während einer Vektorfahrt mittels „Achsenposition abfragen“ zwischen durch immer wieder die Position bestimmt werden. Alle anderen Befehle werden zwar auch gleich abgearbeitet, können aber nicht zu jedem Zeitpunkt an das Interface geschickt werden.
Das intelligente USB-Schrittmotor-Interface 5. Befehlsbeschreibung Nachfolgend werden alle zur Verfügung stehenden Befehle genauer beschrieben. Die Masterbefehle sind besonders gekennzeichnet! 5.1 Reset durchführen (Masterbefehl) Dieser Befehl führt einen Reset aus und setzt das Interface in einen definierten Zustand. Dabei werden alle Positionen auf Null gesetzt. Laufende Bewegungsabläufe werden sofort, ohne Rampe, gestoppt.
Das intelligente USB-Schrittmotor-Interface 5.3 Status abfragen (Masterbefehl) Den aktuellen Zustand des Interfaces abfragen. Als Quittierung liefert das Interface sechs Zeichen, welche durch die Darstellung einer ‚Null‘ (0) oder einer ‚Eins‘ (1) den aktuellen Zustand der Steuerung signalisieren. Befehl: @X Quittierung: @Xaaaaaa Der Buchstabe a steht hier lediglich als Platzhalter für den Status. Die sechs Zeichen der Quittierung haben folgende Bedeutung: 1.
Das intelligente USB-Schrittmotor-Interface Beispiel: @X @X 100110 Statusabfrage Quittierung Es wird eine Referenzfahrt durchgeführt (5. Zeichen) und die Maschine läuft (1. Zeichen). Die aktuelle Position ist nicht bekannt (4. Zeichen), da diese erst durch die Referenzfahrt definiert wird. Welche der Motorachsen gerade in Bewegung ist, kann nicht festgestellt werden.
Das intelligente USB-Schrittmotor-Interface 5.5 Ansteuersignal einstellen Festlegung mit welchen Signalen die Ansteuerung von Schrittmotor-Steuerkarten bzw. Schrittmotorendstufen erfolgen soll. Dies kann ein SMC-Signal sein zur Ansteuerung der Schrittmotor-Steuerkarten SMC800 bzw. SMC1500 oder ein Takt- und Richtungssignal für StandardSchrittmotorendstufen.
Das intelligente USB-Schrittmotor-Interface 5.7 Startgeschwindigkeit einstellen Festlegen der Startgeschwindigkeit für die Ansteuerung eines Schrittmotors in Schritte/sec (Hz). Die Startgeschwindigkeit ist für alle Achsen gleich, kann also nicht für jede Achse einzeln definiert werden Befehl: #Saaaa Quittierung: Der Buchstabe a steht als Platzhalter für die Startgeschwindigkeit. Beispiel: #S150 Startgeschwindigkeit auf 150 Hz einstellen Quittierung Voreinstellung: 200 Schritte/sec.
Das intelligente USB-Schrittmotor-Interface 5.9 Rampenlänge einstellen Festlegen der Rampenlänge in Millisekunden (ms). Die Rampenlänge gilt für alle Achsen und alle Bewegungsabläufe, eine Unterscheidung wird hier nicht getroffen. Aus der Rampenlänge und der Startgeschwindigkeit errechnet sich die Startrampe und Bremsrampe, wobei Start- und Bremsrampe identisch sind. Befehl: #Raaaa Quittierung: Der Buchstabe a steht als Platzhalter für die Rampenlänge.
Das intelligente USB-Schrittmotor-Interface 5.11 Offset nach Referenzfahrt einstellen Dieser Parameter gibt die Anzahl der Schritte an, die nach einer Referenzfahrt vom Schalter weggefahren werden soll. Die Referenzfahrt besteht aus drei Bewegungsabläufen, der Suchfahrt hin zum Referenzschalter, der Freifahrt vom Schalter und der anschließenden Offsetfahrt. Für die Offsetfahrt wird hier die Schrittanzahl festgelegt. Der Offset kann für jede Achse explizit definiert werden.
Das intelligente USB-Schrittmotor-Interface 5.13 Vektorfahrt ausführen Führt eine Vektorfahrt in Schritten linear interpoliert aus. Die Schrittausgabe kann entweder relativ zur aktuellen Position oder absolut erfolgen. Die jeweilige Achse, sowie die Richtung werden ebenfalls als Parameter übergeben.
Das intelligente USB-Schrittmotor-Interface 5.14 Achsen anhalten (Masterbefehl) Mit diesem Befehl werden alle Achsen mit Rampenfahrt angehalten. Der aktuelle Verfahrbefehl wird beendet. Die Positionsinformationen bleiben erhalten. Befehl: @B Quittierung: @B 5.15 Achsen sofort stoppen (Masterbefehl) Alle Achsen werden sofort, ohne Rampenfahrt gestoppt. Es gehen alle Positionsdaten verloren.
Das intelligente USB-Schrittmotor-Interface 5.17 Pause beenden (Masterbefehl) Dieser Befehl beendet die mit dem „Pause setzen“-Befehl eingeleitete Unterbrechung und fährt mit der Abarbeitung der Befehlskette fort. Wurde vorher keine Pause gesetzt, so hat dies keine Auswirkungen; der Befehl wird einfach ignoriert. Da es sich um einen Masterbefehl handelt, wird dieser sofort ausgeführt. Befehl: @C Quittierung: @C Dieser Befehle ist noch nicht implementiert! 5.
Das intelligente USB-Schrittmotor-Interface 5.19 Wartezeit einfügen Dieser Befehl fügt eine vorgegebene Zeitspanne in den aktuellen Arbeitsablauf ein. Die Zeit wird in Millisekunden angegeben. Die weitere Ausführung wird für eine gewisse Zeit unterbrochen, um z.B. ein Ventil zu schalten. Nach Ablauf der Zeit werden die nachfolgenden Befehle bearbeitet. Die max. mögliche Wartezeit beträgt 3.600.000 ms (=1 Std).
Das intelligente USB-Schrittmotor-Interface 5.21 Eingang abfragen (Masterbefehl) Befehl: @In Quittierung: @In b Bitte beachten Sie das Leerzeichen in der Rückmeldung nach @In.
Das intelligente USB-Schrittmotor-Interface 5.22 Programm schreiben Dieser Befehl bewirkt, dass nachfolgende Befehle in einem der möglichen Programmspeicherplätze abgelegt werden. Ingesamt stehen 7 solche Programmspeicherplätze mit jeweils 65536 Bytes zur Verfügung. Sollte ein Programm mehr als 65536 Bytes benötigen, reduziert sich die maximale Anzahl der Programmspeicherplätze. Befehl: *PWn *PWn Hh C c C (ProgrammWrite...
Das intelligente USB-Schrittmotor-Interface Beispiel für eine Befehlskette: A1,1 L1,x100 W250 L1,y200 A1,0 Ausgang 1 setzen Quittierung Vektorfahrt x-Achse: 100 Schritte Quittierung Wartezeit 250ms Vektorfahrt y-Achse: 200 Schritte Quittierung Ausgang 1 zurücksetzen; Das -Zeichen definiert das Ende der Befehlskette und muss daher an den letzten Befehl statt des angehängt werden.
Das intelligente USB-Schrittmotor-Interface 5.23 Programm lesen Der Programm-Header und die Programm-Befehlskette wird ausgelesen. Befehl: *PRn (ProgrammRead...) Quittierung: *PRn HhCcC Bitte beachten Sie das Leerzeichen in der Rückmeldung nach *PRn. Der Buchstabe n steht als Platzhalter für eine Programm-Nr. [1...7]. Man kann mit n gleich [a] oder [A] den kompletten Festwertspeicher auslesen. Die Buchstaben Hh stehen als Platzhalter für die Programm-Header.
Das intelligente USB-Schrittmotor-Interface 5.24 Programm-Header lesen Der Programm-Header umfasst alle Zeichen bis zum Programmstartkennzeichen . Der Programm-Header ist auf 256 Bytes begrenzt und bietet z.B. die Möglichkeit Windows-Datei-Informationen abzulegen, z.B. Dateiname - Dateidatum Dateiuhrzeit – Dateigröße. So kann durch Vergleich die Aktualität der Daten im Programmspeicher festgestellt werden. Der Programm-Header kann natürlich auch für andere Zwecke verwendet werden.
Das intelligente USB-Schrittmotor-Interface 5.25 Programmgröße ermitteln Dieser Befehl ermöglicht die benötigten Speicherbytes eines Programms zu ermitteln. Es könnte z.B. die Notwendigkeit bestehen, im Vorfeld die Größe des Programms zu kennen, welches in einem Programmspeicher ablegt werden soll bzw. ob das Programm noch vergrößert werden kann.
Das intelligente USB-Schrittmotor-Interface 5.26 Programm löschen Das angegebene Programm wird aus dem Programmspeicher gelöscht. Der Löschvorgang dauert ca. 0.7 sec pro Programmsektor (65536 Bytes). Befehl: *PEn Quittierung: *PEn (ProgrammErase...) Der Buchstabe n steht als Platzhalter für eine Programm-Nr. [1...7]. Man kann mit n gleich [a] oder [A] auch alle Programme gleichzeitig löschen.
Das intelligente USB-Schrittmotor-Interface 5.27 FAT lesen Die FAT (File Allocation Table) wird mit diesem Befehl gelesen. Die Einträge der FAT enthalten die Start-Adressen und End-Adressen der Programme. Das Programm 1 kann irgendwo im Speicherbereich des FlashSpeichers abgelegt sein. Die FAT gibt Auskunft wo das Programm liegt.
Das intelligente USB-Schrittmotor-Interface Symbolhafte Darstellung der Speicherverwaltung: FAT Programm 1 Programm 2 Programm 7 StartAdr | EndAdr 000000 000033 StartAdr | EndAdr - StartAdr | EndAdr - Programm-Header Programm-Befehlskette Programmspeicherplatz 1 Programmspeicherplatz 2 34 von 65.536 Bytes belegt A1,1L1,x100W250L1,y200A1,0 vektoren.etab | 01.07.2009 | 08:00:00 | 37 Insgesamt stehen 7 Programmspeicherplätze mit jeweils 65536 Bytes zur Verfügung.
Das intelligente USB-Schrittmotor-Interface EMIS GmbH • Zur Drehscheibe 4 • 92637 Weiden Tel. 0961/32040 Fax 0961/31494 www.emisgmbh.