Handrad für CNC-Fräse
Ich übernehme keinerlei Haftung für etwaige Schäden, die beim Nachbau entstehen.
Grundlegendes
Ein Mach3-Handrad ist nicht dazu gedacht an der Überschall-Geschwindigkeit für Flugzeuge zu kurbeln. Mach3 ist eine Steuerungs-Software für CNC Maschinen - und mit dem Handrad bewegt man die drei Achsen einer CNC-Fräse. Hier ein Bild meiner Fräse.
Die Frontplatte ist mit der Fräse oben gefertigt. Rechts das Bild zeigt das fertige Handrad. Ich habe lange nach einer Anleitung für den Bau eines Handrades und die Einbindung in Mach3 gesucht. Fündig bin ich eigentlich nicht geworden. Irgendwie hab ich das Gefühl, dass die kleinen Geheimnisse um die Handrad-Thematik nicht ausgespuckt werden. Es soll ja teuer verkauft werden, was für ein paar Euro selbst gebaut werden kann. Ich versuch hier mal das Geheimnis um das Handrad zu lüften. So besonders schwierig ist das nicht und zudem ist die originale, englische Mach3-Software offen wie ein Scheunentor.
Aber wo bekommt man die Info her
Das Handrad liefert Impulse oder Rechtecksignale, die von der Mach3-Software umgesetzt, und an die Motorsteuerung weitergeleitet werden. Die Motorsteuerung bewegt dann entsprechend die Achsen der CNC-Maschine. Das eigentliche Handrad ist ein fertiger Inkrementalgeber, der zwei nicht überlappende Signale liefert. Anhand beider Signale kann man die Richtung und die Impulsbreite ableiten - auf gut Deutsch Drehrichtung und Geschwindigkeit des Handrades. In meinem selbst gebauten Handrad sind noch einige Tasten und LEDs integriert. Mit der Set-Taste wählt man die X, Y oder Z Achse aus, die mit dem Handrad gefahren werden soll. Entsprechend der gewählten Achse leuchtet die zugehörige LED. Zero fährt das Werkzeug zum Werkstück-Nullpunkt. Home fährt alle Achsen an den Maschinen-Nullpunkt. Reset setzt eine Notaus-Funktion und setzt diese auch zurück. Diese Funktionen braucht man beim Einrichten ständig und sind zweckmäßig als "tragbare Funktionen" ins Handrad übernommen.
Was braucht man alles zum Bau des Handrades
Einen Inkrementalgeber ( Encoder, Drehgeber ) Schnäppchen in der Bucht um einen Euro, ein Gehäuse, ein 1:1 Kabel mit zwei 25-pol SUB-D Stecker, drei LEDs mit Sockel, einen Widerstand, eine Kabeldurchführung, vier Taster und wenn nicht bereits vorhanden eine LPT Karte. Grob geschätzt etwa 15 Euro.
Zuerst mal den Schaltplan.
Auf das Bild klicken, dann wird es groß und leserlich dargestellt. Achtung: Die LPT2 Karte ist Modifiziert. Auf Pin 13 achten. Hier ist normal der Select Input.
Nix dran, wie man sieht. Die paar Bauteile lassen sich sogar ohne Platine einfach hinter der Frontplatte verdrahten.
Ein kleiner Exkurs zu Mach3 bringt hier an dieser Stelle Sinn.
Mach3 ist eine klasse Software, wenn es darum geht CNC-Maschinen ohne eigene Steuerungs- Software zu betreiben. Beispiele sind hier Selbstbau oder Umbauten auf CNC. Der große Vorteil von Mach3 ist der, dass auch "richtiger" CNC-Code oder G-Code verarbeitet wird. Mach3 ist also schon weit aus der Spielphase heraus. Wie schon erwähnt ist Mach3 sehr offen und lässt sich benutzerspezifisch bearbeiten. Neben einem festen Kern bietet die Software das Gestalten oder Ergänzen der Bediener Oberfläche - wenn man will. Hierzu gibt es mehrere Screen Tools. Auch VB- Script wird unterstützt. Am Anfang empfand ich die Oberfläche lächerlich, habe dann aber schnell meine Meinung geändert. Die Gestaltung der Oberfläche benutze ich z.B. zum Einbinden des Handrades. Die anfangs etwas gewöhnungsbedürftige Oberfläche besteht aus grundlegenden Dingen wie Schaltknöpfen, LEDs und Anzeigen. Hinter diesen Bildchen verbirgt sich die anfangs erwähnte Offenheit. Man kann z.B. mit Mach3Screen eine Taste in eine Oberfläche einbinden, mit Text belegen und irgendwelche Funktionen damit verknüpfen. Alle machbaren Funktionen, und das sind nicht wenig, sind im WIKI dargestellt. So könnte man z.B. einer Taste einen Ausgang zuweisen, der dann ein Relais ziehen lässt und eine Wasserpumpe startet.
Und nun an' s Eingemachte - Handrad konfigurieren unter Mach3.
Physikalische Ein- Ausgänge und Encoder-Kanäle eintragen.
Mein Handrad ist auf die zweite LPT Karte aufgesetzt. Man bringt Mach3 dies im Menue Config Port & Pins bei, indem man Port #2 freigibt und die Portadresse eintippt. Da Mach3 auf die LPT2 in Form von Ein- und Ausgängen zugreift, muss man Mach3 sagen wie die Ein- bzw. Ausgänge physikalisch verdrahtet sind. Frei zu verdrahtende Eingänge heißen OEM Trig # . Eingetragen werden sie unter Config Input Signals . Frei zu verdrahtende Ausgänge heißen OUTPUT #. Eingetragen werden sie unter Config Output Signals . Die beiden Kanäle A und B des Handrades heißen MPG #. Eingetragen werden sie unter Config Encoder/MPG's . Die Kanäle A und B sind unter MPG#1 einzutragen. Nach dem Eintrag soll es so aussehen. Modifizierte LPT Karte für 5V Spannungsversorgung. Diese Angaben sind ohne Gewähr. Ich habe bei meiner LPT2-Karte den Pin 13 (Select In) freigelegt und von der Karte selbst die 5V+ auf den Pin gelegt. Die +5V liegen am kleineren Stecker ganz hinten. Es sind jeweils zwei Pins vorne und hinten - also die letzten zwei Pins an beiden Seiten des kleinen Steckers. Zur Sicherheit das Pinout der PCI Schnittstelle suchen. Man kann auch Batterie betrieben arbeiten oder die Spannung aus dem Netzteil in einem separaten Kabel führen. Tasten die eine direkte Mach3 Funktion belegen. (Reset, Home, Zero) Die Tasten sind vorher schon (im Schaltplan und Config) auf die OEM Trig# 4,3 und 2 festgelegt worden. Was die Tasten nun tun sollen wird unter Config System Hotkeys konfiguriert.
Hier sieht man die Zuordnung von den Eingängen ( OEM Trig# ) zu den OEM Codes. Die OEM- Codes sind die Funktionen, die beim Tastendruck ausgeführt werden sollen. So entspricht z.B. OEM Trig#2 dem Mach3 OEM-Button 1017. Und das ist, wenn man im WIKI unter der Liste nachschaut die Funktion Goto Zero. In gleicher Weise werden auch die Trigger 3 und 4 abgehandelt. Bisher war alles durchschaubar - aber jetzt kommt es "dicker".
Sonderlocke LEDS und SET-Taste.
Vorweg zum Verständnis - Makro ist ein VB Script (Visual Basic Programm im Klartext). Die SET-Taste soll eine der drei Achsen für das Handrad selektieren und als optische Anzeige eine LED entsprechend der Achse leuchten lassen - genauso wie man es mit Maus und Tastatur im PMG-Fenster machen kann. Die Maus schaltet die Achsen um, und die Pfeiltasten bewegen die Motoren. Frei benutzbare Ausgänge, die an der LPT2 Karte verfügbar sind, heißen OUTPUT#. Ich fand keinerlei direkte Funktion, die in Abhängigkeit der selektierten Achse einen OUTPUT# für die LEDs schaltet. Man kommt nicht umhin, selber was mit VB-Script zu schreiben. Wie setzt man nun den Tastendruck der SET-Taste mit einem Macro um. Das ist auch wieder einfach, aber draufkommen muss man. Da gibt es eine Funktion 301 (Code for OEMTriggers runs the macro in SetTriggerMacro). Nicht sehr aussagekräftig - klingeln tut‘ s dann, wenn man rausgefunden hat, dass SetTriggerMacro eine Systemvariable von Mach3 ist. Der Code 301 macht nichts anderes als das Makro aufzurufen, das in der Mach3 Systemvariablen SetTriggerMacro gesetzt ist. Man muss nun, wie weiter oben beschrieben, den External Button mit dem Code 301 verbinden und in der Systemvariablen das selbst geschriebene Macro eintragen. Man kann unter Mach3 Befehle auch direkt eingeben (gelbe Zeile ganz unten) - also auch die Variable proforma von Hand setzen. So wird hier beispielsweise mit dem Befehl ( settriggermacro 334 ) das Makro M334 definiert, das dann beim Tastendruck der SET-Taste über OEM-Code 301 aufgerufen wird. Automatisiert man das, so schreibt man zwei Makros M333 und M334: M333 mit dem SetTriggerMacro als Inhalt und M334 mit dem Code für das Handrad. Das erste Makro kann man beim Start von Mach3 automatisch aufrufen ( Unter General Config - Initstring M333 anfügen). Mach3 sucht die Makros im Mach3- Systemordner unter macros/Mach3Mill. Also dort ablegen. Die LEDs werden unter VB-Script von den Makros geschaltet und müssen in Config Output Signals eingetragen werden.
Einfach, oder? Nun noch die beiden Makros.
Achtung: Beim Veröffentlichen meiner Daten in anderen Webpages wenigstens so clever verändern, dass es aussieht als hätte man das selbst geschrieben - oder einfach als Zitat veröffentlichen und den Urheber-Namen drin lassen. Denn sowas fällt auf: g oto ende ende: Manche sind sogar noch zum Daten klauen und Kupfern zu blöd.
M333.m1s ' ------------------------------------------------------------------------------- ' Handrad Makro 05.09.2008 (c) Gerhard Günzel ' ------------------------------------------------------------------------------- SetTRiggerMacro 334 'Setzt Makro M334 bei OEM-Code 301 dooembutton (327) 'MPG Jog Mode DoOEMButton (303) 'Geschwindigkeits-Modus Handrad dooembutton (119) 'Softlimit M334.m1s ' ------------------------------------------------------------------------------- ' Handrad Makro 05.09.2008 (c) Gerhard Günzel ' ------------------------------------------------------------------------------- Sub Main() DoOEMButton (175) 'Cycle axis controlled by MPG 1 If getoemled (59) Then DoOEMButton (233) 'OUTPUT 4 an button 233 DoOEMButton (236) 'OUTPUT 5 aus DoOEMButton (238) 'OUTPUT 6 aus End If If getoemled (60) Then DoOEMButton (235) 'OUTPUT 5 an DoOEMButton (234) 'OUTPUT 4 aus DoOEMButton (238) 'OUTPUT 6 aus End If If getoemled (61) Then DoOEMButton (237) 'OUTPUT 6 an DoOEMButton (234) 'OUTPUT 4 aus DoOEMButton (236) 'OUTPUT 5 aus End If End Sub Noch eine zweite Variante - Zero Taste nullt die entsprechende Achse. Und nicht vergessen - OEM Trig#2 auf Code 301 M334.m1s Sub Main() ' ------------------------------------------------------------------------------- ' Handrad Makro 05.09.2008 (c) Gerhard Günzel ' ------------------------------------------------------------------------------- ' ' Aktive Achse Nullen wenn Taste ZERO gedrueckt ist ' If IsActive (OEMTRIG2) and getoemled (59) Then 'Zero Taste und X aktiv 'msgbox "Setze X auf NULL" 'Auskommentieren zum Test dooembutton (1008) 'Setze X auf NULL goto ende End If if IsActive (OEMTRIG2) and getoemled (60) Then 'Zero Taste und Y aktiv 'msgbox "Setze Y auf NULL" dooembutton (1009) 'Setze Y auf NULL goto ende End If if IsActive (OEMTRIG2) and getoemled (61) Then 'Zero Taste und Z aktiv 'msgbox "Setze Z auf NULL" dooembutton (1010) 'Setze Z auf NULL goto ende End If ' ' Achse umschalten und zugehoerige LED am Handrad an ' DoOEMButton (175) 'MPG-Achse wechseln If getoemled (59) Then DoOEMButton (233) 'OUTPUT 4 an, Button 233 DoOEMButton (236) 'OUTPUT 5 aus DoOEMButton (238) 'OUTPUT 6 aus End If If getoemled (60) Then DoOEMButton (235) 'OUTPUT 5 an DoOEMButton (234) 'OUTPUT 4 aus DoOEMButton (238) 'OUTPUT 6 aus End If If getoemled (61) Then DoOEMButton (237) 'OUTPUT 6 an DoOEMButton (234) 'OUTPUT 4 aus DoOEMButton (236) 'OUTPUT 5 aus End If goto ende ende: End Sub
Dann noch viel Spaß beim Nachbau und gutes Handradeln.
Nachtrag zum Schmunzeln.
Bei der Hilfestellung zu dieser Seite hier, in einem deutschen Forum, dass sich neutral "Das Mach3 Support Forum für professionelle Anwender" nennt, wurde der Thread einfach geschlossen. Zitat: Hey Jungs, dass ist kein Privatforum für Gerhards Handrad. Und dann noch nicht einmal auf die deutsche Version zu verweisen finde ich etwas unverschämt, daher geschlossen .... Zitat Ende .
Wie schlau ist das denn . Threads werden beispielsweise wegen Verstoß gegen gute Sitten etc. geschlossen. Zudem war der Beitrag auch noch in der Sparte Fremdhardware. Ein privates Forum lt. Inhaber; aber voll von Hinweisen auf Produkte einer deutschen Firma. Reinschauen und sich selbst eine Meinung bilden lohnt sich bestimmt.
Auf dem Tisch die Fräse und die Motorsteuerung, drunter der PC mit Mach3 und rechts der Monitor und Tastatur . Das schwarze Kästchen hinter dem gelben Schlauch ist das Handrad. Und um das geht es hier.
Na beim Hersteller. Da gibt es alles, was man dazu braucht. Allerdings nur in Englisch. Auf der Homepage von Mach3 kann man sich im Bereich Support alles an Doku ziehen, was zum Bau und Einbinden des Handrades nötig ist. Als WICHTIGSTE Doku sehe ich Customizing-mach3.pdf, Mach3Screen.exe und die WIKI Seite von Mach3. Mit den drei Sachen kommt man schon ganz gut zurecht. Allerdings sei erwähnt, dass man rund 1000 Seiten zu lesen hat.
Was macht ein Handrad genau