Mach3-Handrad
Zurück Home Nach oben Weiter

disclaimer

 Home
Nach oben

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Handrad für CNC-Fräse

Ich übernehme keinerlei Haftung für etwaige Schäden, die beim Nachbau entstehen.

Grunlegendes

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.

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.

        

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?

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 man zum Bau und zum Einbinden des Handrades braucht. Als WICHTIGE 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?

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 selbstgebauten 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 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 Mach 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 das 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 grundliegenden 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 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 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.

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 verfügbar sind, sind  die OUTPUT#. Ich fand aber keinerlei direkte Funktion, die in Abhängigkeit der selektierten Achse einen Ausgang für die LEDs schaltet. Man kommt nicht umhin, selber was zu schreiben. VB-Script wird ja unterstützt. 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 am Anfang. Sucht man nach  SetTriggerMacro, dann stößt man irgendwann auf VB-Script und Makro (M-Code). Der Code 301 macht nichts anderes als das Makro aufzurufen, das in der Mach3 Systemvariablen SetTriggerMacro gesetzt ist. Man kann unter Mach3 auch Befehle direkt eingeben; also auch die Variable setzen. So wird hier beispielsweise mit ( 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:

goto ende

ende:
Manche sind sogar zum Datenklauen 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, das sich neutral "Das Mach3 Support Forum für professionelle Anwender" nennt, wurde der Thread einfach geschlossen. Zitat:   Hey Jungs, das 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.