CNC-Fraese/Schrittmotortreiber

Aus LaborWiki
Version vom 27. März 2012, 22:15 Uhr von Pl4nkton (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Die Schrittmotor-Ansteuerung der Fräse besteht aus einem kleinen 19-Zoll Gehäuse mit einem Steuerungseinschub und drei Schrittmotortreiber-Einschüben.

Steuerungseinschub[Bearbeiten | Quelltext bearbeiten]

Das Herz der Steuerbaugruppe ist ein 8051 µC der seine Befehle vom Steuerrechner über die serielle Schnittstelle erhält und daraus dann die Ansteuersignale für die Schrittmotortreiber generiert. Über das Kommunikationsprotokoll gibt es keine Informationen. Es ist jedoch eine funktionierender Steuerrechner mit passender Software vorhanden, so dass reverse-engineering hier möglich wäre. Die Baugruppe wird über die Backplane mit ungeregelten 12V aus einer der Schrittmotortreiber Karte versorgt.

PC-Interface Karte[Bearbeiten | Quelltext bearbeiten]

Diese Karte ersetzt den Steuerungseinschub der Schrittmotorsteuerung.

Die Schrittmotortreiber benötigen zur Ansteuerung nur ein Takt- und Richtungssignal. Das wir bei dem Lasercutter-Projekt gute Erfahrungen mit der freien CNC-Software EMC2 gemacht haben, soll diese nun auch hier ihre Arbeit verrichten. Also wurde auf die schnelle eine Einsteckkarte zusammengeschustert, die Signale des Parallelport des Steuerrechners auf die Backplane umsetzt.

Parallel-Interface Belegung[Bearbeiten | Quelltext bearbeiten]

Pin Signal Bemerkung
1 Not-Aus Im Momente nicht benutzt
2 X- Direction
3 X-Step
4 Y-Dir
5 Y-Step
6 Z-Dir
7 Z-Step
8
9
10
11
12 Home & Endschalter X Active Low
13 Home & Endschalter Y Active Low
14
15 Home & Endschalter Z Active Low
16
17 Amplifier Enable Geht auf Pin3 der Schrittmotorkarten(L297 Enable)
18 GND
19
20
21
22
23
24
25

Schrittmotortreiber- Einschub[Bearbeiten | Quelltext bearbeiten]

Die Schrittmotortreiber wird mit 230VAC über die Backplane versorgt. Auf der Karte befindet sich Ringkerntrafo (30,5V 2,5A & 9V 1A) und ein 7805 zur Spannungsversorgung. Die Schrittmotorsteuerung erfolgt mit dem typischem Chipsatz bestehend aus L297 (Datenblatt) und L298 (Datenblatt).

Schaltplan[Bearbeiten | Quelltext bearbeiten]

Reverse engineerter Schaltplan:

Isel az0621.png

Ich Tixiv habe mal den Schaltplan reversed. Die Überstromsicherung (Q1, Q2, Q3 im Schatplan) sieht mir sehr Zweifelhaft aus. Hier mal eine kurze Erklärung, wie ich die Schaltung verstehe: Normalerweise Leitet Q1 durch Den Basistrom durch R3. Über R2 Fällt eine Spannung proportional zum Motorstrom durch alle Wicklungen ab (man beachte, dass die Rücklaufdioden am Motorausgang vor die Strombegrenzung nach V+ gehen!). Wird dieser Strom zu hoch, so leitet Q2, welcher den Strom durch Q1 begrenzt. Wenn dadurch über Q1 mer als 18V abfallen, so leitet auch Q3, nachdem sich C2 auf 0.7V aufladen konnte. Man beachte, dass dieser falschherum gepolt ist! Das Schaltet dann Q1 für immer aus, da diese Stufe mitkoppelnd arbeitet. C2 dient dazu, dass im Einschaltaugenblick diese Schaltung nochnicht anspricht, und sich am Ausgang erstmal eine Spannung aufbauen kann.

Das Problem mit dieser Schaltung sehe ich darin, das unter gewissen Betreibsumständen die Spannung am Versorgungsanschluss des L298 wesentlich niedriger sein kann als V+. Wenn nun noch welche von den Motorwicklungen gechopped werden, dann werden die Spannungsspitzen nach V+ gekappt. Der IC dürfte aber nur max. 5V über V+ vertragen, da sonst die Basis Emitter Dioden der oberen Transistoren rückwärts gespannt werden. Dadurch dürfte der Sterben, falls die Schaltung jemals arbeitet.

Ich habe an dem Testexemplar hier die Schaltung ein paar mal durch brücken von B-E am BD442 die Schaltung ausgelöst, und beim zweiten mal war der BD442 hin!! Irgendwas ist seehr merkwürdig an der Schaltung...

Die Strombegrenzung scheint außerdem auf 2A dimensioniert zu sein, was ja eigentlich keinen Sinn macht, wenn die Ausgangsmotorströme je 2A betragen dürfen. Sie wird also wahrscheinlich bei hoch eingestelltem Strom schon im Normalbetrieb immer mal ansprechen.

Am L298 slebst ist auch kein ordentlicher Abblock-Elko in der Nähe angebracht. Es sind hässliche Spannungsspitzen zwischen VCC und GND messbar. Der kleine 22µF Pisser, der da ist, hat allerhöchstens homeopathische Wirkung.

Verbesserung[Bearbeiten | Quelltext bearbeiten]

Ich habe hier an einer Platine mal den BD682 rausgeschmissen, und einfach überbrückt. Außerdem habe ich die Rücklaufdioden direkt an den VCC des L298 angeschlossen, und diesem noch einen 220µF/63V Elko direkt am IC spendiert. Ergebnis: Die Karte läuft gefühlt um einiges kälter, und die Spannungen sehen viel sauberer aus.

Ich würde vorschlagen, diese Modifikation bei allen Karten durchzuführen, und in die Frtontblende einfach eine Sicherung für die 30.5V Trafospannung oder die Netzspannung einzubauen, damit im Kurzschlussfall nichts abbrennt.

Wir haben jetzt erstmal auf allen Karten die Schutzschaltungen überbrückt, wodurch der Merkwürdige Fehler, den die Z-Achse manchmal hatte (fiepte und verlor Schritte), schonmal gefixed wurde. Die Karten liefen alle einwandfrei ca. 12 Stunde am Stück durch.

Wir haben nun Einschnitte für die Sicherungshalter in die Frontplatte gefräst (mit der Fräse selbst) und die Sicherung zwischen die Gleichspannung vom Trafo und die versorgung des L298 geschltet. Die Rücklaufdioden sind weiterhin mit dem IC/220µF Elko direkt verbunden. Die rote LED haben wir so verschltet, dass sie leuchtet, wenn die Sicherung durchgebrannt ist.

Nur auf einer der Schrittmotorkarten war der C7 am Schritteingang des L297 bestückt. Diese Karte funktionierte nicht mit den kurzen Schrittpulsen von emc2. Nachdem C7 entfernt wurde lief sie problemlos.

Jumper[Bearbeiten | Quelltext bearbeiten]

Position JP1 ist oben unter der grünen LED

Jumper Gruppe Funktion
1 Schrittmodus Halbschritt
2 Vollschritt
3 Externe Auswahl über Pin 10 der Backplane
4 Strom Absenkung Strom Absenkung aus (Jumper kann auch weggelassen werden)
5 Strom Absenkung über Pullup / Pin5 der Backplane
6 D-Sub Pin 8(Endschalter NO) Über Diode an 5V. AUF KEINEN FALL SETZTEN, da die aktuellen Endschalter dann 5V Versorgung kurzschließen würden.
7 also Eingang (an NAND Pin 4B, NO=GND setzt flipflop)
8 Pin 9 Backplane(Endschalter out) an Flipflop: NC Kontakt löscht flipflop, NO Kontakt setzt flipflop
9 direkt an NC Kontakt von schalter. High=betätigt oder Kabel ab, Low=nicht betätigt

Pin-Belegung zur Backplane[Bearbeiten | Quelltext bearbeiten]

Draufsicht, Pin 1 liegt links unten

Pin Signal Bemerkung
1 Masse
2 Versorungsspannung Ausgang Wählbar über Jumper neben 9V Gleichrichter, umshaltbar zwischen 5V und 12V
3 L297 Enable über Lötbrücke (normalerweise offen, haben wir gebrückt)
4 DSUB Pin 7 geht auch auf Erweiterungsstiftleiste
5 Strom Absenkung High senkt den Motorstrom auf einen geringen Wert wenn Jumper 5 gesetzt. Hat Pullup.
6 Eingang Schritttakt 1
7 Richtung
8 Eingang Schritttakt 2 Zusammen mit Pin 6 über ein NAND an Takteingang des L297
9 Endschalterausgang Modus über Jumper wählbar (JP8 oder JP9)
10 Voll- oder Halbschritt-Modus Nur nutzbar wenn Jumper auf JP3 und nicht JP1(Halbschritt)&JP2(Vollschritt)!
11 D-SUB Pin 6 geht auch auf Erweiterungsstiftleiste
12 Synchronisation Sync-Pin des L297
13 kein Pin
14 230V Netz Zusammen mit Pin darüber
15 230V Netz Zusammen mit Pin darüber
16 Schutzleiter Verbunden mit Kühlkörper und Gehäuse

Pin-Belegung Ausgang[Bearbeiten | Quelltext bearbeiten]

Pin Signal Bemerkung
1 Motor A
2 Motor B
3 Motor C
4 Motor D
5 Endschalter COM / GND liegt intern an GND
6 Backplane/Erweiterungsstiftleiste not connected am Motor
7 Backplane/Erweiterungsstiftleiste not connected am Motor
8 Endschalter NO interner Pullup 100k auf +5V, Wahlweise Flipflop Eingang (Jumper 7(Standart))oder über Diode an 5V (Jumper 8). Auf keinen Fall Jumper 8 setzen, dann schließt Endschalter Versorgung kurz.
9 Endschalter NC interner Pullup 100k auf +5V