Manuelle Verwendung
Nach Durchführung der Referenzfahrt legt man den Werkzeuglängensensor auf die Oberfläche des Werkstücks und fährt man mit
Manuelle Kontrolle den Fräser über den Sensor. Dazu verwendet man entweder die Radiobuttons X/Y/Z sowie den - und + Knopf, oder die Pfeiltasten (für X und Y) sowie die Bildlauf-Tasten (für Z) auf der Tastatur.
Mit dem Slider Schrittgeschwindigkeit kann man die Geschwindigkeit reduzieren, wenn man sonst die Position nicht trifft.
Mit der Z-Achse fährt man einige mm über den Sensor, dann wechselt man auf den
MDI Reiter, und setzt das Kommando
G38.2 Z-10 F20 ab.
Die Z-Achse fährt nun nach unten, bis der Schalter im Sensor erreicht und ausgelöst wird, dann stoppt die Maschine.
Da wir wissen, dass der Sensor auf 33mm Höhe liegt, können wir das nun wiederum im
Manuelle Kontrolle Reiter einstellen:
Wie in der Grafik schon dargestellt:
- Die Z-Achse auswählen
- Auf den Antasten Knopf klicken
- 33 in das Eingabefeld des Dialogs eingeben
- OK klicken
Danach zeigt die Koordinaten-Anzeige Z: 33.000, wir haben die Werkzeuglänge exakt eingestellt.
Einbindung in Axis
Nun ist die manuelle Verwendung wie oben gezeigt, doch eher mühsam, daher folgt nun eine Anleitung, wie wir die schritte bequem ins Axis-GUI integrieren können.
Anpassungen im .ini - File
Zuerst muss man das .ini - File der Fräse öffnen und an zwei Stellen Anpassungen vornehmen:
Unter [DISPLAY] muss die Datei mit der GUI-Definition als PYVCP angegeben werden (die Datei laengensensor.xml folgt weiter unten)
Ein wenig weiter unten in der Datei geht es weiter ...
Unter [HAL] definiert das POSTGUI_HALFILE die "Verbindungen" unseres
GUIs zur Fräse (die Datei laengensensor.hal folgt weiter unten).
Wichtig ist auch die Zeile HALUI = halui, diese war bei mir schon dabei, scheint aber in vielen Fällen zu Fehlen, dann bekommt man die Fehlermeldung:
Pin 'halui.mdi-command-00' does not exist.
Unter
[HALUI] haben wir hier 4 mal den Schlüssel MDI_COMMAND mit folgenden Befehlen:
- G30.1 ... Merken der aktuellen Position als Referenzpunkt
- G30 ... Anfahren der gemerkten Position
- G38.2 Z-3 F20 ... Langsam (20 mm / Minute) mit der Z Achse bis zu 3 mm nach unten fahren, aufhören, sobald der Kontakt geschlossen ist.
- G92 Z33 ... Setzen der Z Koordinate auf 33 mm (die Höhe des Stepcraft Sensors)
GUI-Datei
Unser GUI sieht so aus:
4 Knöpfe, die mit je einem sogenannten halpin verbunden sind.
HAL-Datei
Was machen nun diese Halpins? Das steht in der laengensensor.hal:
Die vier Halpins sind mit mdi-command-00 bis mdi-command-01 verbunden und deren Bedeutung haben wir wiederum in der .ini - Datei unter [HALUI] festgelegt.
Die etwas eigenartige Kette von Verknüpfunen lautet also:
- .ini File bindet laengensensor.xml und laengensensor.hal ein
- laengensensor.xml macht 4 Knöpfe, die sich auf Pins in der laengensensor.hal beziehen
- laengensensor.hal definiert Pins, die MDI-Befehler ausführen die in der .ini - Datei stehen.
Starten wir nun Axis, bekommen wir neben der 3-D Ansicht unsere Panel mit den 4 Knöpfen (die auch hoffentlich funktionieren):
|
Geschafft! Das Axis-GUI erweitert um unsere 4 Knöpfe. |
Anwendungsidee
Gedacht ist das nun so, dass man
die Fräse an eine Position fährt, wo man den
Sensor bequem
drunterstellen kann. Dann fährt man schon mal
mit Z bis knapp vor den Sensor, damit man sieht, ob der Druckknopf auch schön unterhalb des Fräsers steht (wer das nicht will, muss beim MDI_COMMAND in der .ini-Datei einen größeren Z-Wert angeben, z.B. Z-50).
Diese
Position kann man sich nun
mit dem
ersten Knopf merken, um sie später (nach einem Werkzeugtausch)
mit dem
zweiten Knopf wieder leicht
anfahren zu können.
Mit dem
dritten Knopf führt man die
Längenmessung aus, d.h. es wird nach unten gefahren, bis der Kontakt des Schalters im Sensor geschlossen wird.
Danach drückt man auf den
vierten Knopf, wodurch
Z automatisch auf die
Höhe (33mm) gesetzt wird (Hat man einen anderen Sensor, muss man das vierte MDI Kommando in der .ini-Datei entsprechend anpassen)
Download
Die Dateien
laengensensor.xml und
laengensensor.hal zum Download.
X/Y-Nullpunkt Knopf
Auf Anregung eines Benutzers
im Stepcraft Forum habe ich die Axis-Erweiterung noch um einen Knopf ergänzt, der X und Y an der aktuellen Stelle auf 0 setzt.
Dazu muss man:
- In laengensensor.xml einen weiteren Knopf einführen, der mit einem neuen halpin verbunden ist
- In laengensensor.hal den halpin definieren und ihn mit dem nächsten mdi-command verbinden
- In der .ini - Datei MDI_COMMAND = G92 X0 Y0 anfügen
Das Gesamt-Ergebnis sieht dann so aus:
laengensensor.xml:
<pyvcp>
<button>
<halpin>"set-probe-xy"</halpin>
<text>"Längensensorposition merken"</text>
</button>
<button>
<halpin>"goto-probe-xy"</halpin>
<text>"Zur Längensensorposition"</text>
</button>
<button>
<halpin>"do-the-probe"</halpin>
<text>"Werkzeuglänge messen"</text>
</button>
<button>
<halpin>"set-the-toollength"</halpin>
<text>"Werkzeuglänge setzen"</text>
</button>
<button>
<halpin>"set-xy-zero"</halpin>
<text>"X/Y auf 0 setzen"</text>
</button>
</pyvcp>
laengensensor.hal:
net set-probe-xy halui.mdi-command-00 <= pyvcp.set-probe-xy
net goto-probe-xy halui.mdi-command-01 <= pyvcp.goto-probe-xy
net do-the-probe halui.mdi-command-02 <= pyvcp.do-the-probe
net set-the-toollength halui.mdi-command-03 <= pyvcp.set-the-toollength
net set-xy-zero halui.mdi-command-04 <= pyvcp.set-xy-zero
.ini-Datei (Ausschnitt):
[HALUI]
MDI_COMMAND = G30.1
MDI_COMMAND = G30
MDI_COMMAND = G38.2 Z-3 F20
MDI_COMMAND = G92 Z33
MDI_COMMAND = G92 X0 Y0
Die (finale?) Deluxe-Version
Nach ein paar weiteren Überlegungen (u.a. im Stepcraft Forum) habe ich nun noch die Knöpfe "do-the-probe" und "set-the-toollength" zusammengefasst und ausserdem das automatische Freifahren des Sensors noch dazuprogrammiert.
Dazu braucht man neben den drei schon bekannten Dateien (laengensensor.xml, laengensensor.hal und .ini-Datei der Fräse) eine vierte (probez.ngc), wo der zusammengefasste Code (runterfahren, Höhe setzen, freifahren) drin ist, diese Datei legt man im Verzeichnis linuxcnc/nc_files ab.
Hier die 4 Dateien:
laengensensor.xml:
<pyvcp>
<button>
<halpin>"set-probe-xy"</halpin>
<text>"Längensensorposition merken"</text>
</button>
<button>
<halpin>"goto-probe-xy"</halpin>
<text>"Zur Längensensorposition"</text>
</button>
<button>
<halpin>"do-the-probe"</halpin>
<text>"Werkzeuglänge messen"</text>
</button>
<button>
<halpin>"set-xy-zero"</halpin>
<text>"X/Y auf 0 setzen"</text>
</button>
</pyvcp>
laengensensor.hal:
net set-probe-xy halui.mdi-command-00 <= pyvcp.set-probe-xy
net goto-probe-xy halui.mdi-command-01 <= pyvcp.goto-probe-xy
net do-the-probe halui.mdi-command-02 <= pyvcp.do-the-probe
net set-xy-zero halui.mdi-command-03 <= pyvcp.set-xy-zero
.ini-Datei (Ausschnitt):
[HALUI]
MDI_COMMAND = G30.1
MDI_COMMAND = G30
MDI_COMMAND = O<probez> call
MDI_COMMAND = G92 X0 Y0
probez.ngc
O<probez> sub
G38.2 Z-20 F60
G92 Z33
G0 Z40 F800
O<probez> endsub
Damit kann man den Sensor unter den Fräser stellen, den Knopf Werkzeuglänge messen drücken und alles ist gut: Der Fräser fährt runter, bis er Schalter auslöst, merkt sich Z=33mm und fährt anschliessenf auf Z=40mm hoch, damit man den Schalter wegräumen kann.