Schrittmotorsteuerung

Alles 6-Achs-Schrittmotorsteuerungen für kleine Leistungen (bis 1 A Strangstrom). Wie bei allen sonst gesichteten Schrittmotorsteuerungen wird der Strangstrom durch motorspezifisch zu bestückende Messwiderstände eingestellt.

Mit ATmega8 (SM1 + SM2)

Der erste und zweite Entwurf verwendet ATmega8 und eine Reihe Portexpander (74HC595). Reicht sogar, aber der auf 8 kHz begrenzte Berechnungstakt hat den Nachteil, dass bei höheren Schrittfrequenzen der relative Jitter zunimmt, was Schrittverluste begünstigt. Der Flash-Speicher von 8 KByte ist nahezu ausgefüllt.

Schaltpläne und Platinen

Eigenschaften

Technische Daten der Motorsteuerung SM2 (SM1 nach Anpassungs-Bastelei) und der zugehörigen Firmware:

Aufbau-Fotos

So sieht's aus als eingehaustes Endprodukt
Das Bedienteil besteht aus 4 Tastern, 1 Inkrementalgeber und 1 Zweifarb-LED. Diese einfache Schaltung ist auf einer Lochrasterplatine untergebracht oder so-wie-es-ist aus einem Röhrenmonitor ausgeschlachtet.

Natürlich sind auch 3 Taster und 1 Inkrementalgeber mit Tastfunktion möglich. Die Tastfunktion ist dann mit Motoren STOP zu belegen.

Mit MSP430 (SM3)

Die dritte Version verwendet den MSP430F2614 (16-bit-Mikrocontroller). Dieser hat genügend Beine, um ohne Portexpander auszukommen. Er hat 7 eigenständige 16-Bit-Timer, sodass kein gemeinsamer Berechnungstakt vonnöten ist. Damit verringert sich der Jitter auf Interruptverzögerungszeiten, und die maximal mögliche Schrittfrequenz ist etwas höher. Bei langsamen Drehzahlen sowie Stillstand eignet sich der per D/A-Wandler mögliche Mikroschrittbetrieb für höhere Positionierpräzision und ruhigeren Lauf. Neu sind Einzelachsanschlüsse mit je 2 Null- oder Endkontakten, deren MicroMaTch-Leiterplattenstecker so belegt sind, dass Schneid-Klemm-Technik an einer 9-poligen SubD-Buchse verwendet werden kann und dabei eine isel-kompatible Anschlussbelegung herauskommt.

Schaltpläne und Platinen

Schaltplan im WMF-Vektorformat (weil sehr groß). Der Leiterplattenentwurf verwendet einige Drahtbrücken als gängiger Ersatz für eine sonst notwendige dritte Ebene oder mehr Durch­kontaktierungen. Wegen seiner vielen Anschlüsse sitzt der Controller verdreht in der Platinenmitte und „verdrängt“ die Schrittmotorendstufen-Schaltkreise UC3717 in etwas chaotischer Weise.

Bestückungsseite Leiterseite
 

Zu allen Steuerungen gehört eine Lokalbedienung mit 1 Inkrementalgeber, 4 Tasten und 1 Zweifarb-Leuchtdiode.
Das Leiterplatten-Design ist für die Selbstherstellung geeignet.

Fotos

Bestückungsseite, Leiterseite (zu sehen ist das angelötete JTAG-Kabel für die Firmware-Erstellung)
Ich habe hier noch 2 Leiterplatten (gebohrt) aus Überproduktion herumliegen, wer will?
Das zugehörige Bedienteil hat die gleichen Eingabe-Elemente wie alle hier vorgestellten Schrittmotor-Steuerkarten, zusätzlich eine Flüssigkristall-Anzeige (LCD) mit 2 Zeilen à 16 Zeichen. Es kommt mit minimalistischen 8 Anschlussleitungen aus. (Eine LCD-Ansteuerung würde bei der ATmega8-basierten Vorgängerversion nie und nimmer in den Flash-Speicher passen! Da müsste man schon ATmega168 bestücken …)

Mit einer Tochterplatine ist via RS485 eine Kopplung untereinander vorgesehen, auf der Leiterplatte „verewigt“ ist es aber erst mit SM4.

Weil der verwendete Mikrocontroller MSP430F2614 im 80-pol. TQFP-Gehäuse genügend Beine für die direkte Ansteuerung der Schrittmotor-Endstufen hat (ohne Port-Expander 74HC595) und außerdem genügend Timer, kann das interne Regime für die Rampengenerierung ganz anders gestaltet werden. Das Interface an der Schnittstelle soll kompatibel bleiben.

Ideen (für später)

Kann zurzeit auch durch ein externes System via serielle Schnittstelle erledigt werden.

Schrittmotor-Achs-Anschluss

MicroMaTch♀SubD9♀Belegung ISELBelegung bei mir Pin bei OWIS (STANDA nach Umbau)
11Motorphase 1A1
32Motorphase 1B2
53Motorphase 2A3
74Motorphase 2B4
-5+24V Schalterkein Kontakt-
26+24V Bremse+5V Sensorspeisung8
47Endschalter 215 (motorfern; Öffner bei OWIS, Schließer bei STANDA)
68GND BremseGND für Schalter13
89Endschalter 111 (motornah; Öffner bei OWIS, Schließer bei STANDA)

Der Schrittmotor-Anschluss ist — so gut es geht — kompatibel zu ISEL-Steuerungen. Bei ISEL gehen die Schalter wahrscheinlich zum Pin 5, bei mir zum Pin 8. Ein Widerstand im Stecker (ca. 10 kΩ von Pin 5 nach Pin 8) macht einen (bremsenlosen!) ISEL-Antrieb kompatibel zu SM3. Ärgerlicherweise backen OWIS und STANDA jeweils ihren eigenen Standard, basierend auf SubD15HD-Steckern. Ob ISEL Öffner oder Schließer als Endschalter verwendet bleibt unklar.

Hinweis zum Verständnis: Alle Schrittmotorsteuerungen können mit Adaptern passend zu jedwedem Antrieb gemacht werden. Beim SM3 ist der Adapter am einfachsten konstruiert, weil ein MicroMaTch-Stecker, ein 8-poliges Flachbandkabel und eine SubD-Buchse mit Schneid/Klemm-Anschluss genügt (ohne zu löten), sofern man es mit einem ISEL-kompatiblen Antrieb zu tun hat. Viele Bastler benutzen jene Anschlussbelegung.

Mit ARM7 (SM4) (Fotos siehe Hexapod-Projekt)

Gegenüber SM2 folgende Veränderungen:

Alle Steuerungen sind per serieller Schnittstelle fernsteuerbar.

Piezo-Steuerung mit MSP430 (PS1)

6-kanalig für Piezo-Schiebeaktoren (wahrscheinlich von SmarAct) unter Ausnutzung von Gleit- und Haftreibung.

Die neue Serie MSP430F55xx ist endlich mit USB verfügbar, so kommt man schließlich von der seriellen Schnittstelle weg und hat eine günstige Option der Selbstversorgung.

Diesmal wird der Weg mit der RS485-Kaskadierung gegangen, um gemeinsam mit den Hexapods nur ein Steuergerät zu benötigen.

Probeweise Inbetriebnahme des MSP430F5525-Bootloaders

Zunächst wurde eine Universalträgerleiterplatte entwickelt und bestückt (siehe Archivdatei unten).

Die erprobte, erforderliche Minimalbeschaltung des 80-poligen Gehäuses sieht so aus:

Alle übrigen Anschlüsse sind offenbar im Schaltkreis genügend niederohmig gebrückt. Als Quarz eignen sich eine Reihe „glatter“ Quarzfrequenzen; diese werden vom Bootloader automatisch detektiert.
Das genügte im Versuchsaufbau (Juli 2010). Keine Kondensatoren!
Der Mikrocontroller meldet sich als HID-Gerät.

Sicherheitshalber wurden die Kondensatoren und Brücken nachher hinzugefügt. Danach geht's ans Testen der Bootloader-Software. Die originale von Texas Instruments erwies sich als nicht allzu nützlich, deshalb habe ich sie kurzerhand noch einmal geschrieben.

Aufbau

Die Steuerung besteht aus sechs Hochvolt-Verstärkern mit OPA454, die an sechs D/A-Wandler-Ausgängen angeschlossen sind. Der Mikrocontroller muss die entsprechenden Rampenformen generieren und per SPI ausgeben.

Die Lageregelung erfolgt mit den Sinus- und Kosinussignalen (Analogspannungen) in den Aktoren, diese werden direkt den 12 A/D-Wandler-Anschlüssen des Mikrocontrollers zugeführt und dort verarbeitet.

Ein mikrocontroller-gesteuerter Hochspannungs-Generator (mit PWM-Ausgang zum Schalttransistor und A/D-Wandler-Eingang zum Messen der Ausgangsspannung) liefert und regelt die benötigte Speisespannung.

Der Rest ist übrige Stromversorgung sowie drei serielle Schnittstellen:

Funktionsprinzip

Der Schaltungskern sind sechs 12-bit-D/A-Wandler mit Ausgangsspannungen von 0 bis 100 V, realisiert mit Hochvolt-Operationsverstärkern OPA454 und nachgeschalteten Komplementärpärchen FZT653 + FZT753 zur Stromverstärkung. Da die Präzision der Ausgangsspannung nicht so wichtig ist, wurden diese Booster nicht in die Gegenkopplung der Operationsverstärker einbezogen, um Schwingneigung zu vermeiden. Damit werden die Piezostellelemente mit Sägezahnkurven angesteuert.

Zur Positionsermittlung werden die Sinus- und Kosinussignale der Inkrementalgeber an insgesamt 12 A/D-Wandler-Eingänge geführt, die sich im Mikrocontroller befinden. Das Mikrocontroller-Programm macht damit eine Lageregelung.

[Diagramm]
Signalverläufe zum Piezo-Aktuator
Der Rest der Schaltung kümmert sich um die Bereitstellung der verschiedenen Betriebsspannungen sowie von Interfaces, insbesondere zu einer „Fernbedienung“ mit Flüssigkristallanzeige und Inkrementalgeber.

Mehrwegebetrieb

Die Steuerungen SM4 und PS1 sind mit RS485-Busschnittstellen auf MicroMaTch-Buchsen ausgestattet, auf der die Rohspannung (7..24 V =) mitgeführt wird. Das ermöglicht Kaskadierung, und es wird nur dieses eine 4-polige Kabel benötigt.

Das Protokoll sieht vor, dass es einen „Master“ gibt, an dem die Lokalbedienung (mit LC-Anzeige) angeschlossen ist. Dieser kann auch mit dem PC verbunden sein. Je nach angewähltem „Slave“ leitet der Master die Lokalbedienungs-Kommandos an den Slave weiter und stellt Informationen vom Slave auf der LC-Anzeige dar. Das gleiche gilt für Kommandos vom PC, wobei hier der „Fokus“ (also mit welchem Slave der PC gerade spricht) getrennt ist.

Eventuell kann später die Lokalbedienung an einem Slave hängen sowie mehrere Bedienteile (mit getrenntem Fokus) erlaubt sein.

Digitale Ein/Ausgabe (mal ohne Mikrocontroller)

Ein Richtungswechsel zu Druckluft und Druckluft-Ventilen machte eine Umstellung auf (ekelhaft umständliche) 24-V-Technik vonnöten. Dazu wurde eine „formfaktor“-kompatible Schaltung mit möglichst vielen Digitalausgängen (also geschaltete 24 V) benötigt. Um das gleiche 12-V-Netzteil wie für die Motorsteuerungen zu verwenden, ist der DC/DC-Wandler gleich mit drauf.

Zur Ansteuerung ein Demo-Programm in LabVIEW.

Icon  Name                    Last modified      Size  Description
[DIR] LabVIEW/ 2015-01-26 18:03 - Allgemein nützliche Hilfsprogramme (besonders um Unicode) [TXT] 5-4-Umrüstung.htm 2016-04-15 15:04 2.7K Umrüstung eines Schrittmotors von 5-Draht auf 4-Draht-Anschluss [IMG] a-aus-x.gif 2014-01-20 10:52 6.7K [   ] Eagle.zip 2015-02-27 13:36 1.2M Eagle-Quellen (Einsicht) [   ] Firmware.zip 2015-02-12 15:57 94K Firmware-Quelltexte (Einsicht) [TXT] Programmierung-OWIS.htm 2016-04-29 13:07 16K Programmierung der Schrittmotorsteuerung „SM1“ [   ] smc.zip 2014-05-09 18:58 41K [   ] SolidEdge.zip 2014-01-21 14:43 17K
Siehe auch: Umrüstung eines Schrittmotors von 5-Draht auf 4-Draht-Anschluss