CNC Kreuztisch für Ständer-Bohrmaschine

  Home     Übersicht     Mechanik     Steuerung     Bedien-Paneel     User-Interface     Dokumentation     Beispiele  

Bedienung und Programmierung

Manuelle Bedienung mit Paneel

Zum Einrichten muss die Maschine unabhängig von einer Programmierung bedient werden können. Das Werkstück wird aufgespannt und die Achsen müssen auf den Nullpunkt des Werkstücks ausgerichtet werden.

Es gibt zwei Betriebsarten, Manuell und Automatisch. Nach dem Einschalten läuft es in der Manuellen Betriebsart. Die Steuerung bleibt in dieser Betriebsart, wenn kein User-Interface angeschlossen ist. Sobald Kommandos vom User-Interface empfangen werden, schaltet es in die automatische Betriebsart.

Funktionen der Bedienelemente
Bedienelement
Manuelle Betriebsart
Automatik Betriebsart
Achsenwahl Tasten:
X+, X-, Y+, Y:
Funktionswahl F: Bewegt den Kreuztisch solange die Taste gedrückt bleibt in der entsprechenden Richtung mit der am Drehrad F eingestellten Eilgang Geschwindigkeit. Die Achsen können gleichzeitig bewegt werden. Während sich die Achse bewegt, leuchtet die Taste.
Funktionswahl 0.01, 0.1, 1, 10: Bewegt bei jedem Tastendruck den Kreuztisch um den eingestellten Betrag in mm.
Funktionswahl W1, W4: Vorwahl der Achse X oder Y. Beide X oder Y Tasten leuchten wenn vorgewählt. Mit aktiver Vorwahl kann der Tisch mit dem Handrad um 1mm oder 4mm pro Umdrehung bewegt werden. Die Vorwahl wird aufgehoben wenn die selbe Taste gedrückt wird, die andere Achse gewählt wird oder wenn mit dem Funktionswahlschalter die Funktion W abgeschaltet wird.
Die Tasten leuchten in der Richtung in die sich der Kreuztisch gerade bewegt. Werden beide Achsen gleichzeitig bewegt, leuchten die entsprechenden 2 Tasten.
Nullstelltasten:
X=0, Y=0,
Z=0
X=0, Y=0, Z=0 stellen die Positionsanzeige der entsprechenden Achse auf Null (0.00 auf der Steuerung bzw, 0.000mm am User Interface).

X=0 und Y=0 haben keine Funktion.
Z=0 ist jederzeit aktiv und kann auf Null gestellt werden wenn ein Loch gebohrt oder gefräst wird und der Bohrer/Fräser das Werkstück berührt um die Bohr-/Fräs-Tiefe zu messen.
Funktionswahlschalter
Wählt die Bewegungsart der Achsenwahl-Tasten.
Keine Funktion
Handrad
Dient zum manuellen Bewegen der Achsen wenn sich der Funktionswahlschalter in Stellung W befindet und eine Achse vorgewählt wurde.
Keine Funktion
Drehrad F,
Geschwindigkeit
Geschwindigkeit der Achsenbewegung im Eilgang, also wenn sich der Funktionswahlschalter in Stellung F befindet und eine Achsenwahltaste gedrückt ist.
Geschwindigkeit der Achsenbewegung im Eilgang,
Reduktion der Fräs-Geschwindigkeit im Fräs-Modus.
Operationstaste
HALT
Schrittfunktion, leuchtet im Halt Modus, alle Bewegungen sind unterbrochen. Erneutes Drücken beendet den Halt Modus.
Fährt eine Achse in den Endschalter, blinkt die HALT Taste und die entsprechende Achsenwahl-Taste leuchtet.
Befindet sich eine Achse am Endschalter, kann der Kreuztisch einzig mit dem Wahlschalter in Stellung F und der gegenüberliegenden Achsenwahl-Taste aus dem Endschalter bewegt werden.
Gleich wie in der Manuellen Betriebsart.
Zusätzlich: fährt eine Achse in einen Endschalter, schaltet die Betriebsart sofort in die Manuelle Betriebsart und alle Aktionen werden abgebrochen.
Operationstaste
TOOL
Keine Funktion.
Blinkt wenn das Werkzeug gewechselt werden muss. Drücken zum bestätigen und fortsetzen.
Operationstaste
START
Keine Funktion. Leuchtet wenn ein Z-Kommando empfangen wird und ein Loch gebohrt werden muss oder beim Fräsen die Pinole abgesenkt oder angehoben werden muss. Drücken zum bestätigen und fortsetzen.
Operationstaste
AUT
Keine Funktion.
Schrittaste Automatischer Start. Leuchtet wenn eingeschaltet. Wird im Eilgang gearbeitet zum Löcher bohren (also kein Fräsvorschub gewählt), wird automatisch gestartet nachdem die Pinole nach Oben gefahren wurde. So kann man rationell eine Mehrzahl von Löcher bohren.
Operationstasten
AUT
& HALT
Keine Funktion. Drückt man AUT und HALT gleichzeitig, schaltet die Betriebsart sofort in die Manuelle Betriebsart und alle Aktionen werden abgebrochen.
Tasten und Lampentest

Alle Tasten sind mit einer LED ausgestattet. In der manuellen Betriebsart leuchtet jede Taste wenn sie gedrückt wird. So kann die Funktion der Taste und der LED geprüft werden.

Endschalter des Kreuztisches

Der Kreuztisch ist mit 4 Endschalter ausgestattet, einer für jede Richtung. Die Endschalter müssen so eingestellt sein, dass wenn man im Eilgang mit der höchsten Geschwindigkeit ans Ende fährt, der Motor rechtzeitig anhält ohne in das mechanische Ende zu fahren. Ansonsten können mechanische Schäden auftreten und der Motor kann Schritte verlieren womit auch die genaue Position verloren geht (siehe auch Mechanik).

Werkstück Nullpunkt einstellen

Hat man ein Kantentaster ("Zentrofix") zur Hand, geht es am einfachsten. Man kann aber auch wie Folgt vorgehen:

  • Einen Stift mit einem bekannten Durchmesser in das Bohrfutter einspannen (z.B. 6mm).
  • X- Achse links vom Wekstück positionieren, Y-Achse ca. in die Mitte.
  • Pinole herunterdrehen so dass der Stift links neben dem Werkstück liegt.
  • Schrittweise X+ drücken (0.1, 0.01-Schritte) und mit einer Fühlerlehre (z.B 0.05mm) tasten bis sie Reibung bekommt.
  • Pinole hochdrehen, +0.05mm fahren (5 x 0.01) und +3mm (3 x 1mm) für den 6mm Stift.
  • X=0 drücken, X-Achse ist genau beim Nullpunkt des Werkstücks.
  • Dasselbe mit der Y-Achse.

Man kann anstelle der 0.1 und 0.01 Schritten auch das Handrad benutzen, muss allerdings vorsichtig drehen da man relativ schnell ins Stück hineinfahren und etwas beschädigen kann.

Nullpunkt wiederherstellen

Der Nullpunkt wird nicht gespeichert und geht mit dem Netz-Ausschalten verloren. Das Problem ist, dass die Motorsteuerung nach dem Einschalten beim Motoren-Pol 0 beginnt. Da es pro Pol 64 Teil- und Mikroschritte sind, kann die Abweichung nach dem Einschalten bis 0.08mm betragen. Ist das genau genug, kann man einfach vor dem Ausschalten die Positionen auf den Nullpunkt fahren.

Die Software zählt aber die Schritte innerhalb des Pols mit. Nun kann man folgendermaßen die Schritte innerhalb eines Pols auf Null fahren: Funktionswahlschalter auf 0.01 und dann gleichzeitig X+ und X- Taste bzw. Y+ und Y- Taste drücken. So fährt die X-Achse auf den nächsten Pol. Fährt man nun vor dem Ausschalten mit den Achsen auf die Null-Position des Werkstücks und dann auf die X- und Y-Pole, wird sich der Motor nach dem Netz-Einschalten nicht bewegen da er sich bereits auf dem Pol befindet. Man notiert also den X- und Y-Wert auf den Polen vor dem Ausschalten. Nach dem Einschalten fährt auf die notierten Masse zurück und drückt danach die X=0 und Y=0 Tasten für den genauen Nullpunkt.

Es gibt eine weitere Hilfsfunktion um den Nullpunkt wiederherzustellen. Schaltet man im manuellen Modus den Funktionswahlschalter auf F und drückt eine der X oder Y Tasten und gleichzeitig die X=0 bzw. Y=0 Taste, wird die Achse auf Null gestellt wenn der Endschalter schaltet. Man sollte danach aus dem Endschalter zurück fahren und wiederholen mit der minimalen Geschwindigkeit so dass der Schaltpunkt präziser wird. Nun die Achse nullen und erst danach den Nullpunkt des Werkstücks abtasten. Nun dieses Maß notieren bevor man die Achse auf Null stellt. Nach dem Netz aus-, einschalten erneut auf den Endschalter fahren und nullen. Danach auf das notierte Maß zurück fahren, welches der Nullpunkt des Werkstücks ist.

Kommandos an die Steuerung

Wird der USB Anschluss mit einem PC verbunden, wird mit Linux automatisch ein Gerät mit dem Namen "/dev/ttyACM0" erstellt. Bei Windows wird die nächste freie COMx Schnittstelle erzeugt. Mit einem einfachen Terminal-Programm kann man dann Kommandos an die Steuerung senden. Das geht sogar mit einem Handy und den entsprechenden Kommandos.

Die USB Schnittstelle arbeitet als einfaches Text-Terminal. Man kann Kommandos senden und bekommt jeweils die Position der Achsen und den Status als Antwort. Man kann noch eine einfache oder detailliertere Antwort wählen.

Einfach: [-]xxx.xx[ ][-]yyy.yy[ ]s[cr/lf] wobei:
[-] = Minuszeichen oder Leerzeichen
xxx.xx = X-Wert in mm mit Dezimalpunkt
yyy.yy = Y-Wert in mm mit Dezimalpunkt
[ ] = Leerzeichen
s = Status, 0=Beschäftigt (Motoren laufen gerade), 1=Wartet aufs nächste Kommando, 2=Warte auf Start (nach Z oder T), 3=Manuell
cr/lf = Zeilenende

Detailliert: [-]xxx.xxx[ ][-]yyy.yyy[ ][-]zzz.zzz[ ]s[cr/lf] wobei:
[-] = Minuszeichen oder Leerzeichen
xxx.xxx = X-Wert in mm mit Dezimalpunkt
yyy.yyy = Y-Wert in mm mit Dezimalpunkt
zzz.zzz  = Z-Wert in mm mit Dezimalpunkt
[ ] = Leerzeichen
s = Status, 0=Beschäftigt (Motoren laufen gerade), 1=Wartet aufs nächste Kommando, 2=Warte auf Start (nach Z oder T), 3=Manuell
cr/lf = Zeilenende

Für eine flüssige Anzeige am User-Interface werden alle 50ms ein [cr] an die Steuerung gesendet welche daraufhin den entsprechenden Status sendet. Dieser wird dann vom User-Interface Programm (in unserem Fall das cnc.py Python Script) entsprechend verarbeitet und angezeigt.

Wahl des Protokolls: Mit dem Kommando V1 und V2 kann die einfache (V1) oder detaillierte (V2) Antwort eingestellt werden. Addiert man 10 dazu, also V11 oder V12, wählt man zusätzlich den Simulationsmodus.

Simulationsmodus: Mit der Protokollwahl V11 und V12 schaltet man den Simulationsmodus ein. Er wird benötigt um das User-Interface oder CNC Programme zu testen. Dieser Modus wird beim User-Interface beschrieben.

Software Update: Um eine neue Software-Version in die CNC Steuerung einzuspielen, kann man den RP2040-Zero in den Boot-Modus versetzen mit dem Kommando BOOT. Dies funktioniert aber nur wenn zuvor die korrekte Software geladen wurde (bei der Steuerung beschrieben). Das Kommando kann man mit dem User Interface via Taste "ManKomd" eingeben, welches erlaubt direkt Kommandos an die Steuerung zu senden. Nach der Eingabe von "BOOT" bricht die Verbindung ab und ein USB-Speicher erscheint. Um die Software zu laden, kopiert man das CNC-Steuerung-Binary mit der Endung .uf2 auf den USB-Speicher.

Kommando Liste
Kommando
Funktion
Beschreibung
M
Manuelle Betriebsart
Bricht alle laufenden Aktionen ab, gespeicherte Nullpunkte werden zurück geholt.
F nnnn
Fräsvorschub in mm/min
Schaltet auf Betriebsart Fräsvorschub und stellt die gewählte Geschwindigkeit in mm/min ein (max. 2750mm/min). Alle Bewegungen werden nun mit dieser Geschwindigkeit gefahren. Werden X- und Y-Achse gleichzeitig bewegt, wird im Winkel gefahren und der Vorschub gilt für die resultierende Geschwindigkeit. Beim Abbremsen bleibt das Verhältnis der Geschwindigkeit erhalten.
F
Fräsvorschub Schaltet auf Betriebsart Fräsvorschub wie oben beschrieben und verwendet die zuvor gewählte Geschwindigkeit.
P
Positionieren im Eilgang
Schaltet auf Betriebsart Eilgang zum Positionieren. Im Eilgang fährt er mit max. 2750mm/min. Die Position wird angefahren und eine Spielaufhebung verwendet. Das heißt, die Achsen fahren eine Position -0.1mm an und fahren dann mit einer definierten Geschwindigkeit zur Endposition. Wird also z.B. XI-1mm gefahren, fährt sie -1.1mm und dann +0.1mm, also nach -1.00mm. Wird jedoch z.B. XI+1mm gefahren, fährt sie +0.9mm und dann +0.1mm, also nach +1.00mm. Werden X- und Y-Achse gleichzeitig bewegt, laufen beide Achsen im Eilgang und bremsen und positionieren unabhängig.
X / Y
+/-
n.nnn
Fährt absolut
Fährt auf ein absolutes Mass, z.B. auf X+1.000mm und Y-1.000mm. Beim Positionieren fährt er im Eilgang, beim Fräsen mit entsprechendem Vorschub im Winkel.
XI/YI
+/-
n.nnn
Fährt
inkremental
Fährt ein inkrementales Mass, z.B. von X+10.000 auf X+11.000 und von Y-10.000 auf Y-11.000mm. Beim Positionieren fährt er im Eilgang, beim Fräsen mit entsprechendem Vorschub im Winkel. Das I kann bei jeder X und Y Bewegung hinzugefügt werden um inkremental statt absolut zu fahren. Also auch bei Mehrfach-Löcher, Lochkreis, gerade Fräsen, Winkel fräsen oder Radien fräsen.
[F]X/Y/Rnnn
Radius Fräsen
Fräsbewegung in einem Radius. Anstelle von einer Geraden oder einem Winkel wird im Radius bewegt. Z.B. XI100 R50 bewegt X um +100mm, Y fährt im Radius 50mm mit nach +50 und zurück auf 0. Gibt man R-50 ein, fährt er im Gegenuhrzeiger. Also X um +100mm, Y fährt im Radius auf -50mm und zurück auf 0.
Um z.B: einen Kreis von 100mm im Uhrzeigersinn zu fräsen, gibt man 2 aufeinanderfolgende Kommandos ein, erst XI100R50 und dann XI-100R50. Im Gegenuhrzeigersinn wäre es dann erst XI100R-50 und dann XI-100R-50.
Z
Loch bohren
Wartet und die START Taste leuchtet um ein Loch zu bohren. Um zu fräsen muss die Pinole abgesenkt und arretiert werden. In der Folge muss ein F Kommando erfolgen um nach dem Drücken der Start Taste mit gesenkter Pinole weiter zu fahren. Ansonsten wartet er bis die Pinole oben ist. Am Ende des Fräsvorgangs erfolgt wieder ein Z Kommando und danach ein P Kommando.
[P]X/Ynnn
Z n
Mehrfach Loch
Auf der Strecke nach X/Y werden mehrere Löcher gebohrt. Z.B. mit XI100 und Z10 werden 10 Löcher auf der Strecke nach XI100 gebohrt, also alle 10mm. Das Loch auf der aktuellen Position wird nicht mit gezählt. Das heisst, er fährt erst 10mm, dann kommt die START Taste, dann die nächsten 10mm usw.
[P]X/Ynnn
Rnn Znn
Lochkreis
Auf der Strecke nach X/Y werden mehrere Löcher mit dem Radius R gebohrt. Z.B. ist die X-Achse bei 0.000 werden mit X100 R50 Z4 vier Löcher auf der Strecke nach X100 im Radius 50mm gebohrt. Er macht also erst ein Loch bei X14.645, Y35.355, dann bei X50.000 Y50.000, dann bei X85.355, Y35.355 und noch bei X100.000, Y0.000.
XZ / YZ
Nullpunkt verschieben
Verschiebt den Nullpunkt indem es die aktuelle Position auf Null stellt. Dies kann verwendet werden wenn z.B. mehrere identische Werkstücke an verschiedenen Positionen bearbeitet werden sollen. Es können bis 9 Nullpunkte überlagert werden.
XZ- / YZ-
Vorherigen Nullpunkt
Holt den vorherigen Nullpunkt zurück. Wurde z.B. auf X100 gefahren und nun XZ ausgeführt, wird X auf 0.000 gestellt. Wird nun auf X50 gefahren und erneut XZ ausgeführt, wird erneut X auf 0.000 gestellt. Fährt man nun X30 und führt XZ- aus, springt die X-Anzeige auf 80.000 ohne sich zu bewegen, also aktuell X 30 + der letzte Nullpunkt bei X 50. Führt man erneut XZ- aus, springt die X Anzeige auf 180.000, also da wo sich die X-Achse befindet ohne die Nullpunkte.
Kk=nnn
Korrektur setzen
Setzt die Werkzeugkorrektur k (0<k<9) auf den Wert von nnn. Die Korrektur kann nur positive Werte annehmen, es können 10 Korrekturen gesetzt und abgerufen werden, K0...K9. Kk=0 Setzt die Korrektur k auf den Wert 0.
X/Y/R +/- Kk
Korrektur anwenden
Wendet die Werkzeugkorrektur für die gewählte Achse an. Die Korrektur kann positiv oder negativ sein. Z.B. X+K1 korrigiert X positiv, also z.B. wenn sich der Fräser rechts von der Fräskante befindet. Entsprechend würde X-K1 links von der Fräskante stehen.
Das Selbe gilt für den Radius. R+K1 vergrößert den Radius (aussen), R-K1 verkleinert ihn (innen).
Die Korrektur kann auf einer einzelnen Zeile oder inline angewendet werden. Sie gilt immer für die nächste Bewegung. Wenn z.B. ein Innenrechteck gefräst wird und man beginnt links, würde man erst mit "Xnnn X+K1" das Werkzeug positionieren, und danach mit "XI+nnn X-K1" zur rechten Seite fahren. Damit wird der Weg von X um 2xK1 verkürzt.
Die Korrektur gilt auch beim Positionieren im Eilgang. So kann z.B. ein Fräser korrekt an den Anfang positioniert werden oder ein Lochkreis kann auf die Innen- oder Außenseite eines Kreises gebohrt werden.
XK, YK, RK
Korrektur aufheben
Hebt die Werkzeugkorrektur für die entsprechende Achse auf. Die Korrekturen werden auch aufgehoben, wenn ein Werkzeugwechsel stattfindet mit dem Kommando T.

Abarbeiten von CNC Programmen mit dem User-Interface.

Eine Beschreibung vom User-Interface und wie es funktioniert gibt es hier. Das User-Interface kann CNC Programme abarbeiten und interpretiert auch ein paar eigene Kommandos, welche das programmieren vereinfachen. Diese Kommandos betreffen den Programmablauf, was die Steuerung nicht kann, da diese die Kommandos einzeln verarbeitet und das CNC-Programm selbst nicht kennt.

Programm-Kommandos

Die folgenden Tabelle listet und beschreibt die Kommandos, welches das User Interface selbst interpretiert. Dabei wird intern alles in GROSSBUCHSTABEN umgewandelt. Es werden nur Kommandos an die Steuerung gesendet, welche nicht vom User-Interface interpretiert werden, also Goto, Loop, Sprungmarken usw. werden nicht gesendet. Ebenfalls wird alles hinter dem Semikolon ; ignoriert. Das dient zum einfügen von Kommentaren oder auch welches Werkzeug man verwenden soll.

Im User-Interface wird das Programm im rechten Fenster Schritt für Schritt aufgelistet, die Letzte Zeile ist jeweils die als nächstes verwendete. Im Linken Fenster erscheinen die Kommandos welche an die Steuerung gesendet wurden, auch die Manuell eingegebenen.

Kommando
Beschreibung
Goto Label
Führt das Programm weiter aus an der Stelle nach der entsprechenden Sprungmarke. Beispiel: Goto Bohrbild
Gosub Label
Verzweigt in ein Unterprogramm und führt das Programm weiter aus an der Stelle nach der Sprungmarke. Die Stelle nach dem Gosub Kommando im Programm wird gespeichert. Beispiel: Goto Bohrbild
Return
Beendet ein Unterprogramm und springt an die Stelle nach dem Gosub-Kommando. Beispiel: Return
Sprungmarke: Eine Sprungmarke steht einzeln auf einer Zeile und endet mit einem Doppelpunkt. Beispiel Bohrbild:
Loop Name n
Eine Wiederholung von Befehlen innerhalb einer Schleife. Ein Name wird benötigt da mehrere Schleifen verschachtelt sein können. n ist die Anzahl der Wiederholungen. Beispiel: Loop SchleifeX 10
Next Name
Das Ende der Schleife. Das Programm Springt zurück auf die Zeile nach dem Loop Kommando mit dem entsprechenden Namen und zählt von n eins ab. Ist n auf Null, springt es nicht zurück und läuft weiter.


© 2025 by Stefan Ludescher