CNC Programmierung

Parameterprogrammierung verstehen: Variablen, Reihen und Prüfbedingungen

Parameterprogrammierung ersetzt ausgewählte feste Zahlen eines CNC-Programms durch Variablen, Formeln und gegebenenfalls Ablaufbedingungen. Damit lassen sich beispielsweise gleichartige Positionen systematisch berechnen. Die Formel allein ergibt aber noch keinen vollständigen Bearbeitungsablauf: Syntax, Einheiten, Koordinatenbezug, Gültigkeitsbereich und zulässige Eingaben müssen zur konkreten Steuerung passen.

Meine selbst auf CNC umgerüstete Optimum BF 20 gibt dem Thema den persönlichen Werkstattbezug. Welche Steuerung dort eingesetzt wird, ist hier nicht festgelegt. Das folgende LinuxCNC-Beispiel erläutert ausdrücklich dessen dokumentierte Schreibweise; es ist keine Aussage über die Software meiner Maschine und kein freigegebenes Bearbeitungsprogramm.

Erst die Geometrie, dann den Programmablauf beschreiben

Für eine eigene Lehrreihe werden vier Positionen auf gleicher Y-Koordinate berechnet. Die erste X-Position beträgt 10 mm, der Abstand zwischen benachbarten Positionen 15 mm. Der Index k nimmt nacheinander die Werte 0, 1, 2 und 3 an. Damit lautet die Vorschrift x(k) = x₀ + k × p.

Vier mit einer Parameterformel berechnete X-PositionenParameterreihe: vier Positionen, drei Abständex₀ = 10 mm · p = 15 mm · N = 4 · y = 20 mm+Xk = 010 mmk = 125 mmk = 240 mmk = 355 mm(N − 1) × p = 3 × 15 mm = 45 mmNur berechnete Positionen · keine Fahrbewegung und kein Bohrzyklus
Eigene Positionsrechnung mit vier Indizes. Die Punkte bezeichnen berechnete Orte; sie geben weder Werkzeugdurchmesser noch Bohrtiefe oder Bearbeitungsreihenfolge vor.

Das Prinzip Schritt für Schritt

Vier mit einer Parameterformel berechnete X-PositionenParameterreihe: vier Positionen, drei Abständex₀ = 10 mm · p = 15 mm · N = 4 · y = 20 mm+Xk = 010 mmk = 125 mmk = 240 mmk = 355 mm(N − 1) × p = 3 × 15 mm = 45 mmNur berechnete Positionen · keine Fahrbewegung und kein Bohrzyklus

Startet nur auf Wunsch. Pause hält den aktuellen Stand fest. Die Darstellung läuft in Lerngeschwindigkeit; sie simuliert keine Maschinensteuerung. Ohne Bewegung erklären Grafik und Liste denselben Inhalt.

  1. Index k = 0: x = 10 + 0 × 15 = 10 mm. Der Index beginnt in diesem eigenen Modell bei null.
  2. Index k = 1: x = 10 + 1 × 15 = 25 mm. Die zweite Position liegt um genau einen Teilungsabstand weiter.
  3. Index k = 2: x = 10 + 2 × 15 = 40 mm. Berechnung und konkrete Maschinenbewegung sind weiterhin getrennte Aufgaben.
  4. Index k = 3: x = 10 + 3 × 15 = 55 mm. Vier Positionen enthalten drei Zwischenräume; die Gesamtausdehnung beträgt daher 45 mm.
Index kRechnungX-Position
010 + 0 × 1510 mm
110 + 1 × 1525 mm
210 + 2 × 1540 mm
310 + 3 × 1555 mm

Der Abstand von der ersten bis zur letzten Position ist (N − 1) × p = 45 mm. Die Rechnung N × p würde hier 60 mm ergeben und einen zusätzlichen Zwischenraum enthalten. Dieser Unterschied ist eine typische Stelle für einen Zählfehler. Eine Zeichnung mit nummerierten Positionen macht ihn leichter sichtbar als eine unkommentierte Schleife.

Ein reines Rechenfragment in LinuxCNC-Schreibweise

LinuxCNC dokumentiert benannte Parameter mit der Schreibweise #<name>, Zuweisungen mit dem Gleichheitszeichen und Ausdrücke in eckigen Klammern. Das folgende Fragment berechnet nur die dritte Position unserer Reihe. Jede Zuweisung steht in einer eigenen Zeile; Bewegungsbefehle sind nicht enthalten.

#<x_start> = 10
#<abstand> = 15
#<index> = 2
#<x_position> = [#<x_start> + #<index> * #<abstand>]

Das Ergebnis ist 40. Die Zuordnung zu Millimetern stammt in diesem Lehrbeispiel aus der vorher definierten Modellaufgabe. Das Fragment setzt selbst keinen Einheitenmodus und kein Koordinatensystem. Es enthält auch keinen Programmabschluss, keine Werkzeugdaten und keine Prüfung eines Bewegungsraums. Es soll deshalb nicht als eigenständig ausführbares CNC-Programm verstanden werden.

Warum Zeilenfolge und Gültigkeitsbereich wichtig sind

Nach der LinuxCNC-Dokumentation wirken Parameterzuweisungen innerhalb eines Blocks erst nach dem Auslesen der dort verwendeten Parameterwerte. Eine neue Zuweisung und deren vermeintlich sofortige Nutzung in derselben Zeile können deshalb anders wirken als erwartet. Getrennte, klar geordnete Rechenschritte erleichtern die Prüfung.

LinuxCNC unterscheidet außerdem lokale und globale benannte Parameter. Die O-Code-Dokumentation beschreibt eigene Regeln für Unterprogrammaufrufe; die dort ebenfalls behandelte Fanuc-Kompatibilitätsvariante besitzt nicht in jeder Hinsicht denselben Gültigkeitsbereich. Eine Aussage wie „Variablen werden beim Aufruf immer zurückgesetzt“ wäre daher zu pauschal.

Für ein eigenes Programm würde ich festhalten, welche Werte Eingaben sind, welche im Ablauf berechnet werden und welche nach einem Aufruf noch verfügbar sein sollen. Alle benötigten Eingaben müssen vor ihrer Nutzung einen definierten Wert besitzen. Eine zufällig verbliebene Belegung aus einem früheren Lauf darf nicht unbemerkt zur Voraussetzung werden.

Eingaben prüfen, bevor daraus Positionen entstehen

Für unsere gerade Reihe ist N als positive ganze Zahl definiert. Ein Wert von 3,5 passt nicht zu dieser Aufgabe. Auch die Bedeutung von p muss eindeutig bleiben: In diesem Beispiel ist es ein positiver Abstand in Richtung +X. Eine Funktion für rückwärts laufende Reihen könnte anders definiert werden, müsste das aber ausdrücklich vorsehen.

PrüffallErwartung im eigenen Reihenmodell
N = 1Nur x₀; Abstand zwischen erster und letzter Position ist null
N = 4Genau vier Positionen mit Indizes 0 bis 3
N = 0Für diese Aufgabenbeschreibung ungültige Eingabe
N nicht ganzzahligEingabe zurückweisen, nicht stillschweigend runden

Anschließend müssen die berechneten Positionen zur tatsächlichen Zeichnung und zum verwendeten Bezug passen. Eine formal korrekte Zahl beweist weder eine freie Anfahrt noch eine zulässige Werkzeugposition. Die Geometrieprüfung und die Prüfung des vollständigen Maschinenablaufs sind getrennte Aufgaben.

Parameter nicht mit Koordinatenmodi verwechseln

Ein Parameterwert ist zunächst eine Zahl im jeweiligen Programmzusammenhang. Ob ein später verwendeter Koordinatenwert eine absolute Position oder eine inkrementelle Änderung bezeichnet, ergibt sich daraus noch nicht. Der Beitrag zu Absolutmaß und Kettenmaß erklärt diesen Unterschied. Auch der Werkstücknullpunkt und seine Abgrenzung zum Maschinenbezug muss zur Rechnung passen.

Zur Prüfung würde ich zunächst die erwarteten Ergebnisse tabellarisch berechnen, dann die Auswertung im vorgesehenen Steuerungsumfeld kontrollieren und erst anschließend den vollständigen Ablauf beurteilen. Die Grundlagen der CNC-Programmerstellung sowie der G-Codes und Vorschubmodi bleiben dabei relevant. Eine kürzere parametrische Schreibweise reduziert Wiederholungen; sie ersetzt keine fehlenden Festlegungen.

Quellen und fachliche Einordnung

Primärquellen, geprüft am 25.10.2026. Eigene Lehrbeispiele und schematische Grafiken. Produkt- und Verfahrensangaben gelten im jeweils beschriebenen Zusammenhang.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Wir benutzen Cookies um die Nutzerfreundlichkeit der Webseite zu verbessen. Durch Deinen Besuch stimmst Du dem zu.