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