Auswuchtsteuerung

Um die hier beschriebene Auswuchtmaschine als Standalone-Gerät betreiben zu können, wird eine Steuerung benötigt, die sowohl den Ablauf für die Ermittelung der Messwerte kontrolliert als auch die Auswertung der Messung ermöglicht und Betrag sowie Lage der notwendigen Ausgleichsmasse angibt.

Im Bestand findet sich ein Atmel AtMega328p im 28poligen DIP-Gehäuse sowie eine LCD-Anzeige mit 2 Zeilen mit je 24 Zeichen. Ein paar Taster zur Menüsteuerung sind auch schnell gefunden, die Hardware wäre also soweit vorhanden.

Die Software soll mit BASCOM erstellt werden, der stellt Routinen zur Abfrage von einfachen Tastaturen sowie zur Ansteuerung von LCD-Displays mit Standard-Controllern zur Verfügung.

Das Schaltbild war schnell zusammen gehäkelt, für Tests habe ich auch hier zuerst mal einen Prototyp auf Lochraster-Material aufgebaut, weil die Port-Belegung noch ein wenig unsicher war. Es stellte sich z.B. heraus, dass die an sich schon vielfach erfolgreich verwendete doppelte Portbelegung für LCD-Ansteuerung und Tastaturabfrage mit den von BASCOM zur Verfügung gestellten Routinen nicht funktioniert.

Genauso stellte sich im Zuge meiner Entwicklung heraus, dass sowohl die Definition des Schlüsselwortes “$baud” im Code als auch offenbar implizit die Verwendung eines Bootloaders zur Firmwareaktualisierung, die Verwendung der Pins der Hardware-Seriell-Schnittstelle als IO-Ports verhindert. Im Umkehrschluss ergibt sich damit folgerichtig, dass immer ein SPI-Programmer zum Firmwareupdate verwendet werden muss. Aber das nur am Rande.

Das Stichwort Menü ist weiter oben ja schon gefallen, hier drängt sich also die Verwendung des prima gemachten Grundgerüsts für eine Menü-Steuerung aus dem RoboterNETZ auf. Ich habe lediglich die Vorgabetexte auf zwei Zeilen erweitert, natürlich die einzelnen Menü- und Submenü-Routinen mit passendem Leben gefüllt und darüber hinaus ein paar eigene Zeichen definiert, um in jedem State des Menüs die möglichen Richtungen für den nächsten Statewechsel per Tastatur anzuzeigen.


Doch zuerst musste die Hardware erstellt werden. Der Prototyp der Steuerung sieht so aus:

Auswuchtsteuerung - Prototyp

Am rechten Rand der Platine sitzen die beiden Stecker für die PWM-Motorsteuerung sowie den Eingang vom Messverstärker. Das Kabel rechts oben führt zum Programmieradapter, unten links sieht man den 16poligen Stecker für das LCD-Display, unten rechts das Kabel zur Tastatur. Der 3polige Stecker oben links ist der nicht verwendbare Anschluss der seriellen Schnittstelle. Einzelne Massepins und ein Doppelstecker für den Reset des µC vervollständigen die vorhandenen Anschlüsse. Das Poti dient zum Einstellen des Kontrasts am LCD-Display.

Das Schaltbild ist recht übersichtlich geraten:

Schaltbild der Auswuchtsteuerung (Click für volle Auflösung)
             (Click auf das Bild für größere Darstellung)

Das Layout konnte durch Verwendung von 3 Drahtbrücken einseitig realisiert werden, die Tastatur ist abgesetzt und besteht aus 5 Tasten, die zusammen einen Cursor-Kreis bilden. Die mittlere Taste ist zur Zeit unbenutzt, kann aber noch aktiviert werden, sollte sich das als notwendig erweisen.

Layout der Auswuchtsteuerung und Tastatur

Ohne Platine lassen sich die Schalter kaum korrekt anordnen, so dass ich kein Foto machen kann. Deshalb hier eine Abbildung vom Hersteller des Tastaturmoduls:

NaviMEC Tastatur, Copyrigth MEC Switches A/S, Denmark

Auch diesmal die 3D-Ansicht der Platine zur gefälligen Begutachtung ;-)

Platine der Auswuchtsteuerung

Nachtrag:
Die Platinen sind inzwischen angekommen:

Bei MME gefertigte Platinen für die Auswuchtsteuerung

Die große Platine für den µC ist hier von der Unterseite gezeigt, die Oberseite ist unbestückt wenig beeindruckend ;-)

Jetzt kann ich auch die Schalter auflöten und das gewählte Ultrablau präsentieren:

Tastatur in Utrablau

Das Auflöten der Schalter auf die Platine ist eine spannende Angelegenheit, da die Tastenkappen montiert sein müssen, um den Abstand zueinander korrekt ausrichten zu können. Somit kommt man kaum noch an die Lötstellen heran. Der mittlere Schalter muss zuerst aufgelötet werden und dient dann für die anderen als Ausrichthilfe. Das alles trifft natürlich nur für die von mir verwendeten SMD-Varianten der Schalter zu.


Die Komplettansicht des lauffähigen Prototyps der Steuerung, allerdings noch mit kleinen Defiziten in der Berechnung der Auswuchtergebnisse:

Auswuchtsteuerung - Prototyp komplett

Angezeigt werden hier die X- und Y-Komponenten des resultierenden Vektors für die Korrekturmasse sowie der Winkel, bezogen auf einen beliebig festgelegten Null-Winkel, die zu applizierende Masse als relative Angabe in Bezug auf die Testmasse, mit der die Messwerte ermittelt wurden, sowie der Quadrant im Einheitskreis, in dem die Korrekturmasse angebracht werden muss. Letztere Angabe dient nur zur Kontrolle des Ergebnisses und wird im endgültigen Zustand der Software nicht mehr vorhanden sein.


Die beiden Prototypen (Steuerung mit µC und Tastatur) sind in der Zwischenzeit durch bei MME gefertigte Platinen ersetzt worden:


Auswuchtsteuerung - finale Elektronik

Unterhalb des Display sieht man den Tiefpass-Messverstärker-Messgleichrichter.

Mendocinomanni hat seiner Steuerung ein adäquates Zuhause spendiert:

Gehäuse der Steuerung


Die Software ist noch nicht vollständig implementiert, die bereits vorhandenen Teile sind hier in einer Übersicht dargestellt.

Die Menüstruktur ist in einem Zustandgraphen festgehalten:

Menüstruktur  (Click für größere Darstellung)
            (Click auf das Bild für größere Darstellung)

Die möglichen Zustandswechsel sind mit farbigen Pfeilen angegeben. Die Farben haben jeweils eine festgelegte Bedeutung:

  • Blau: manuell ausgelöster Zustandswechsel
  • Grün: automatischer Zustandswechsel nach Ablauf einer bestimmten Zeit oder nach Erreichen eines internen Zustandes
  • Rot: Auswahl nur zum Test, wird später still gelegt
  • Gelb: State-Nummer, findet ihre Entsprechung im Code

Pfeile mit heller Farbgebung habe ich verwendet, wenn sie über einen Text hinweg verlaufen, die Bedeutung der Farbe ist identisch.

Zusätzlich habe ich alle Zeichen in den verschiedenen Anzeigen aufsummiert, weil ich anfangs befürchtete, dass die vielen Texte den Speicher des µC sprengen werden. Diese Befürchtung erwies sich allerdings bis jetzt als unbegründet, der Chip ist momentan erst zu ca. 64% ausgelastet.

Zuletzt habe ich die Struktur des Menüs noch etwas aufgeräumter gestaltet, Festlegungen, die länger gelten in ein Untermenü verbannt und, weil die Programmiererei gerade so gut lief, noch ein paar Gimmicks eingebaut, die nicht unbedingt notwendig für die Funktion sind.

Die erste Zeile des Begrüßungsschirms kann jetzt frei gestaltet werden, hilfreich, wenn man nicht gerade Manni heißt ;-)
Der “Editor” hierfür ist, geschuldet den wenigen Tasten, nur sehr rudimentär, aber das macht man ja auch nicht alle Tage.
Dann gibt es eine kleine “Bitte warten”-Animation und in der rechten unteren Ecke wird mit benutzerdefinierten Zeichen angezeigt, in welche Richtungen man den aktuellen Zustand verlassen kann.

Ach ja, nicht zuletzt funktioniert auch die Bestimmung der Korrekturmasse ganz ordentlich, wenngleich ich von der Reproduzierbarkeit der Ergebnisse nicht ganz überzeugt bin. Ich hätte erwartet, dass mehr oder weniger unabhängig von der Masse des Testgewichts und/oder der (für alle vier Messungen eines Laufs gleichen) Drehzahl beim Messen, immer der gleiche Winkel und die gleiche Masse zur Korrektur der Unwucht errechnet wird. Das stimmt aber leider nicht, sowohl Winkel als auch Masse variieren leicht.

Und zu guter Letzt ist das Ergebnis des Auswuchtens noch korrekturbedürftig. Allerdings konnte ich einen sehr liederlich zusammen getackerten Testrotor durch drei zusätzlich nach Gefühl angebrachte Korrekturmassen zu sehr rundem Lauf bringen, nachdem ich mit zwei Messläufen nacheinander die beiden Seiten ausgewuchtet hatte. Mit ein bisschen gutem Willen würde ich das als Erfolg werten :-)

Im Programm noch nicht bedacht ist bisher die Korrektur einer dynamischen Unwucht. Die Aufteilung der Korrekturmasse des zweiten Laufs auf die beiden Seiten des Rotors liegt noch in der Zukunft.

Programm
Die oben aufgezeigte Menüstruktur ist im richtigen Leben des verwendeten µC durch Befehle in BASCOM -Sytax realisiert. Ich verzichte auf die Darstellung des Listings und gebe den Downloadlink für den Code der Auswuchtsteuerung an. Auf Grund des Umfangs ist die Vollversion von BASCOM notwendig um den Code zu übersetzen.

Die verlinkte Version V2 der Software enthält bereits Vorbereitungen auf die Erweiterung der gleichzeitigen Messung mit zwei Sensoren, allerdings sind die Änderungen nicht durchgezogen. Lediglich die Variablen sind bereits definiert und die Ansteuerung der Entlademimik für die Ausgangskondensatoren des Messgleichrichters ist umgestellt, weil die Steuerungshardware ursprünglich für die Messung mit nur einem Sensor ausgelegt wurde.

Mit ein bisschen gutem Willen ist der geneigte Nachbauer sicher in der Lage, die Arbeitsweise des Programms zu erfühlen, um den Einstieg aber zu erleichtern hier ein Schnelldurchgang mit den wesentlichen Punkten.
Der Text bezieht sich auf einen Mendocinomotor-Rotor, daher sind ungewöhnliche Vokabeln wie “5-Flächner” oder “5er Rotor” enthalten.

Kurzanleitung für das Auswuchten:

  1. Mit "Testlauf" die notwendige PWM-Einstellung finden. Die Unwuchtwerte sollten so um 120 .. 140 (Erfahrungswert. Maximalausschlag der Schaltung ist bei ca. 190) anzeigen. Ansonsten mehr oder weniger Drehzahl über die PWM-Einstellung einstellen. (Die Drehzahl, die hier eingestellt wird, wird beim nächsten Einschalten der Steuerung wieder vergessen sein. Um diese Drehzahl immer zu verwenden, muss über “Einstellungen” gegangen werden).
  2. Jetzt Messen. Vor Start der ersten Messung ohne Testmasse warten, bis der Rotor wieder still steht.
  3. Messung starten. Die Motorhochlaufphase muss ausreichend lang sein, damit bei jeder Messung immer die gleiche Drehzahl erreicht wird. Im Zweifelsfall lieber zu lange hochlaufen lassen.
    War die Zeit zu kurz für diesen Rotortyp, dann in den Einstellungen die Zeit erhöhen.
  4. Nach Ablauf der Messung wird die gemessene Unwucht als einheitenlose Zahl, z.B. irgendwo um die 130 herum, angezeigt. Um die Hochlaufphase zu verlängern (bei meinem ersten Test mit dem vollständigen 5er Rotor war die Enddrehzahl noch nicht erreicht), mit HOCH, LINKS ins Hauptmenü, dann mit RUNTER zu den Einstellungen und "Motorhochlauf" wählen.
    Eine gute Idee ist, schon beim Testlauf (1.) auf die Zeit zu achten, die der Rotor bis zu einer stabilen Drehzahl benötigt.
  5. Ok, 20 Sekunden dürften als Startwert reichen, ggf. anpassen. Zurück zur Messung, und die Messung ohne Testmasse wiederholen.
  6. Die nächste Messung erfolgt mit Testmasse auf 0 Grad.
    Ich verwende zuerst mal die 4 mm Schraube, da habe ich mit 8 und 12 mm das Doppelte und das Dreifache zur Auswahl. Wenn sich durch diese Testmasse zu geringe "Störungen" ergeben, muss eine größere Testmasse ausgewählt werden. Wird man sehen.
    Wenn der Rotor nicht von selbst anläuft, einfach einen kleinen Schubs geben um ihm über den Totpunkt zu helfen (bei gröberer Unwucht).
  7. Den gleichen Trick mit Messlauf 3 und 4 mit Testmasse auf 144 und -144 Grad (beim 5-Flächner).
  8. Alle vier Messungen sind durch. Jetzt mit zweimal RUNTER die resultierende Ausgleichsmasse ausrechnen lassen.
  9. Und mit RECHTS die Verteilung auf die beiden benachbarten Schraublöcher ausgeben.
  10. Die Testmasse entfernen (wenn sie nicht zufällig schon mit passender Masse und im richtigen Loch steckt ;-) und die beiden errechneten Ausgleichsmassen in die richtigen Löcher montieren.
    Hierbei wieder auf den gleichen Drehsinn wie bei den Messungen achten.
    Es ist prinzipiell egal, ob man sich im kartesischen Koordinatensystem bewegt und positive Winkel gegen den Uhrzeigersinn annimmt, oder umgekehrt, aber man muss sich IMMER an die einmal ausgesuchte Richtung für positive Winkel halten. Ich arbeite immer mit positiven Winkeln IM Uhrzeigersinn. Geschmackssache :-)
  11. Jetzt wird ein erneuter "Testlauf" gestartet, wir wollen ja sehen, ob die Auswuchterei was gebracht hat.
    Auch wenn jetzt noch eine relativ starke Unwucht angezeigt wird, nicht verzagen, das kommt von der anderen Seite des Rotors, die ja noch nicht behandelt wurde.
  12. Also jetzt den Rotor wenden.
  13. Und die Schritte 3. und 5.-11. für diese Seite wiederholen.

Dieser Testlauf zeigt eine Reduzierung der Unwucht von anfangs 135 auf 85, der Vorgang scheint also zumindest zielführend zu sein.

Das ganze Brimborium vom Start bis Abschluss Punkt 13 kostet etwa 15 Minuten, wobei ich den Text bis Punkt 4. inklusive parallel zu den Messungen getippt habe.

Permanente Einstellungen.

  • Die Anzahl der Solarzellen oder Rotorblätter (im Menü "Flächenanzahl") wird unter Einstellungen festgelegt.
  • Ebenso die Winkel - positiver und negativer, unter denen die Testmassen und letztlich auch die Ausgleichsmassen an den Seitenteilen montiert werden können. Beim 5-Flächner sind das 144 Grad, beim 3- oder 6-Flächner 120 Grad. Bei einem 4-Flächner müssen hier 90 Grad eingestellt werden. Möglich sind 9 Flächen. Sollte irgendwann mal einen Dodekaeder oder einen Ikosaeder auszuwuchten sein, erweitere ich das Programm entsprechend. Versprochen! ;-)
  • Die Motorhochlaufzeit und die Drehzahlvorwahl haben wir ja schon am Anfang kennen gelernt.
  • Sollte sich heraus stellen, dass die errechnete Korrekturmasse die Unwucht verschlimmert, muss der 180°-Versatz der Ausgleichsmassen aktiviert werden.
  • Der bisher letzte Menüpunkt unter Einstellungen ist die Möglichkeit, den Namen zu editieren, der in der ersten Zeile des Begrüßungsbildschirms angezeigt wird. Ich habe hier z.B. momentan "Die" eingegeben :-)

Um sich anfangs in der Menüstruktur nicht zu verlaufen, hilft ein Blick in den Zustandsgraphen.

Inzwischen ist das Menü richtig erwachsen geworden, was der Übersichtlichkeit immanent nicht gut tut. Aber nach drei Messläufen findet man sich nahezu blind zurecht… vielleicht auch erst nach 4 bis 11 ;-)

Der mittlere Knopf des Steuerkreuzes hat in der Version 2 des Programms ebenfalls eine Aufgabe gefunden. Während der Motor läuft, löst der Druck auf die mittlere Taste einen Nothalt aus, was entsprechend im Display angezeigt wird. Die Motorspannung wird sofort abgeschaltet, hilfreich z.B. wenn der auszuwuchtende Rotor sich gerade in den Kopf gesetzt hat, die Halterung unangemeldet zu verlassen.


Nachtrag 11/2012
Die weitere Entwicklung der Auswuchtmaschine ist auf Eis gelegt, da absehbar wurde, dass der Zeitaufwand für einen kompletten Wuchtlauf größer ist, als Manni durch probieren mit der Hand braucht. Dieses Verfahren beherrscht er mittlerweile perfekt.
Hinzu kommt, dass der momentane Stand der Software nicht ausreichend genau wiederholbare Ergebnisse erzielt und die Messanlage nicht in der Lage ist, nur schwach unwuchtige Rotoren überhaupt als unwuchtig zu erkennen, geschweige denn, korrekte Ausgleichsmassen zu bestimmen.
Der letzte Punkt, der für die (vorläufige) Einstellung des Projekts spricht ist, dass Hardware und Programm noch nicht in der Lage sind, echt dynamisch zu wuchten, was für den Rotor eines Mendocino-Motors unabdingbar ist.

Sollte ein Leser dieser Seiten zielführende Ideen an der Hand haben und diese auch in BASIC-Code ausdrücken können, ist er herzlich dazu eingeladen, das Projekt weiter oder gar zu Ende zu führen.

Hier noch einmal der Link auf die bisher vorhandenen Sourcen der Auswuchtsteuerung und der Hinweis auf die Anmerkungen zum Code.


 

Über eine Suchmaschine hier gelandet? Dann bitte mit Click Navigations Schaltflächen anzeigen

[Home] [Modelle] [Eisenbahn TT] [Was ist neu ?] [Elektronik] [Kontakt] [Links] [Tipps+Tricks]