# Computerized Numerical Control

Computerized Numerical Control (dt. rechnergestützte numerische Steuerung), kurz CNC, bezeichnet ein elektronisches Verfahren zur Steuerung von Werkzeugmaschinen (CNC-Maschinen).

## Herkunft

Hervorgegangen ist die CNC aus der Numerischen Steuerung (englisch Numerical Control, NC), bei der die Informationen nicht als Komplettprogramm in der Steuerung einer Maschine gehalten, sondern satzweise von einem Lochstreifen eingelesen wurde. Die ersten CNC-Steuerungen wurden Mitte der 1960er Jahre auf den Markt gebracht.
Das Zeitalter der CNC-Technologie setzte ungefähr Mitte der 1970er Jahre ein. Sie ermöglichte eine Rationalisierung in der Serien- und Einzelfertigung durch die erheblich schnellere und dabei weiterhin sehr genaue Bewegung der Achsen und Werkzeuge. Heute sind nahezu alle neu entwickelten Werkzeugmaschinen mit einer CNC-Steuerung ausgerüstet. Es gibt weltweit aber noch immer einen beachtlichen Altbestand an konventionellen Werkzeugmaschinen.

## Marktentwicklung

Bereits zu Beginn der 1980er Jahre gab es Ansätze, die Programmierung der CNC zu vereinfachen und die DIN/ISO-Programmierung zu verlassen. Das führte zur Entwicklung der sogenannten werkstattorientierten Programmierung (WOP), die über eine benutzerführende, vereinfacht CAD-ähnliche Programmieroberfläche verfügt. Sie hat sich besonders in der Holz- und Kunststoffbearbeitung auf CNC-Bearbeitungszentren und der Fertigung von Einzelteilen etabliert.
Daneben ist mit DNC (Distributed Numerical Control) die vernetzte Arbeitsteilung, Programmerstellung im Büro / Programm am Arbeitsplatz simulieren zur Kollisionsüberprüfung und optimieren / Programm zur CNC übertragen, in Gebrauch. Diese Form der Programmierung gewinnt immer mehr an Bedeutung, vor allem in der Einzelteil- und Kleinserienfertigung, weil besonders hier die Stillstandszeiten zur Programmierung an der Maschine selbst sehr reduziert werden können, so dass die Maschinen insgesamt produktiver genutzt werden können. Moderne CAD/CAM Programme bieten noch weitere Vorteile, wie beispielsweise ein zentrales Werkzeugmanagement und Möglichkeiten zur Qualitätskontrolle.
Inzwischen ist die sogenannte Soft-CNC als Software verbreitet, weil dies preiswerter und leichter anzupassen ist. Diese läuft im Gegensatz zu speicherprogrammierbaren Steuerungen auf einem handelsüblichen PC, häufig in Verbindung mit einem Echtzeit-Betriebssystem.
Die Antriebskopplung erfolgt entweder über den PCI-Slot des PCs oder über die Ethernet-Schnittstelle. Eine Verbindung über USB ist aufgrund der mangelnden Echtzeitfähigkeit unüblich.

## Hardware

Die CNC läuft auf einem herstellerspezifischen Computer bzw. SPS, welche im Schaltschrank oder direkt hinter dem Bildschirm angebracht ist. 32-Bit-Prozessoren mit Taktfrequenzen im GHz-Bereich ermöglichen Block-Zykluszeiten unter 1 ms (Aufbereitungszeit eines unkorrigierten 3D-Linearsatzes). Das bedeutet, dass bei der Ausführung eines Programms, bei dem die Positionen in 0,1 mm Abstand aufeinander folgen, ein Fräsvorschub von 6 m/min ohne Stockungen eingehalten werden kann.
Moderne Motortreiber können direkt über ein Bussystem, bspw. EtherCat angesteuert werden. Ältere Treiber benötigen meistens Analog- bzw. Step/Direction Signale, welche entweder von der Steuerung direkt generiert werden oder mithilfe einer Schnittstellenkarte, welche die Bussignale des PCs in Signale für die Mototreiber umwandeln. Da diese Umwandlung sehr schnell geschehen muss, kommt häufig ein integrierter FPGA zum Einsatz.
Nichtflüchtiger Datenspeicher für Maschinendaten und Programme wurde früher im SDRAM mit einer Batterie oder Akku bei ausgeschalteter Maschine erhalten. Später wurden Festplatten verbaut, die speziell erschütterungsdämpfend aufgehängt waren. Zunehmend kommen Flash-Speicher zum Einsatz.
Um Programme vom Programmierplatz zur CNC und zurück zu übertragen, stehen folgende Schnittstellen zur Verfügung:
* serielle Schnittstelle RS-232 bis 20 m, oder RS-422 bis 1200 m
* Ethernet-Schnittstelle (LAN, Netzwerk) bis 100 m, schnellste Verbindung
oder Stecker für transportable Speichermedien: PCMCIA-Karte, CompactFlash, USB-Stick
Außerdem bieten heutzutage viele Hersteller die Einbindung eines Netzlaufwerkes an, wodurch die Distanz zwischen Programmierplatz und Maschine keine Rolle mehr spielt.

## Steuern und Regeln

In Computersteuerungen zur automatischen Positionierung von Geräten, Werkstücken oder Werkzeugen werden unterschiedlich präzise Methoden angewandt:
* Eine geschaltete Maschinenachse bewegt sich ohne Positionserfassung selbsttätig nach dem Einschalten zu einer Zielposition, welche einen Endschalter für die Bewegung trägt, der die Achse beim Ankommen dort abschaltet.
* Eine Maschinenachse heißt gesteuert, wenn ihre Bewegung von der Ist- zur Sollposition zwar vorgegeben, aber nicht permanent überprüft und korrigiert wird.
* Eine geregelte Maschinenachse wird von mehreren ineinander geschachtelten und jeweils für sich geschlossenen Regelkreisen in allen für die Bewegung relevanten, zeitlichen Ableitungen des Ortes vollständig durch einen entsprechenden Rechner kontrolliert.
* Miteinander interpolierte Maschinenachsen sind geregelt, wobei ihre Sollpositionen jeweils gegeneinander verrechnet werden, wodurch sich ihre Stellgrößen gegenseitig beeinflussen.
Die gewünschte Form des herzustellenden Werkstücks und die anzuwendende Technologie werden im NC-Programm beschrieben. Im Hintergrund der Steuerung und für den Bediener der Maschine zunächst unsichtbar berechnen ein Geometrieprogramm und ein Interpolationsprogramm daraus Stützpunkte im Raster der Zykluszeit der Lageregler. Die Koordinaten der Stützpunkte stellen die Sollpositionen der an der interpolierten Bewegung beteiligten Achsen dar. Der Vorschub ergibt sich aus den Stützpunktabständen und dem Lageregelzyklus, dem zeitlichen Raster der Positionierung. Neben den Vorgaben aus dem NC-Programm verwenden der Interpolator und die meist dreistufig ausgeführten Reglerkaskaden ein Maschinenabbild, welches die dynamischen und kinematischen Eigenschaften aller geregelten Achsen beschreibt. Vorschub, Beschleunigung und Ruck (erste, zweite und dritte Ableitung der Position nach der Zeit) werden dem Vermögen der Achsen entsprechend begrenzt und aufeinander abgestimmt. Encoder zur Positionserfassung liefern die Istwerte der Positionskoordinaten zur Berechnung der Stellgrößen der Lage. Diese Sollgeschwindigkeiten ergeben in jeweiliger Differenz zu den von Drehgebern gemessenen Achsanteilen des Vorschubs die Stellgrößen der Geschwindigkeitsregler. Diese Sollbeschleunigungen bilden in jeweiliger Differenz zu Messergebnissen der Motorströme Stellgrößen der Achsbeschleunigungen in den Stromreglern. Durch geregelte Motorströme wird die Präzision der Bearbeitung in weiten Grenzen nahezu unabhängig von Lastwechseln, wie sie typisch etwa beim plötzlichen Materialeingriff auftreten. Zudem kann damit der Ruck kompensiert werden, der zum Beispiel bei tangentialen Bahnübergängen mit unstetiger Geschwindigkeitsänderung (etwa beim tangentialen Übergang einer Geraden in eine Kreisbahn) entsteht und bei fehlender Kompensation die Kontur verletzt. Der geschleppte Betrieb wurde inzwischen weitgehend von der Geschwindigkeitsvorsteuerung abgelöst, mit der vorgegebene Konturen deutlich präziser reproduziert werden.

## Steuerungsarten

Die Steuerung einer CNC-Werkzeugmaschine erfolgt über einen direkt in die Steuerung integrierten Computer, der mit Positions-, Dreh(winkel)- und Zustands-Sensoren den IST-Zustand erfasst und nach Berechnung der Interpolation zum SOLL-Zustand aus dem CNC-Programm die Steuerung der Motoren und andere gesteuerte Maschinenelemente entsprechend regelt. Die Interpolation erfolgt dabei im Bereich von Millisekunden, so dass eine hohe Präzision auch bei hoher Geschwindigkeit selbst bei komplizierten Formen gewährleistet ist.
Die CNC-Technik erlaubt eine automatisierte Bearbeitung mit mehreren gleichzeitig gesteuerten Achsen. Man klassifiziert CNC-Steuerungen nach der Anzahl der gleichzeitig interpolierbaren Achsen, wobei noch zwischen Punkt-, Strecken- und Bahnsteuerung unterschieden wird.

### Punktsteuerung

Bei der Point-to-Point oder Punktsteuerung kann nur der Endpunkt einer Bewegung festgelegt werden, den die Maschine dann auf ihrem schnellsten Weg anfährt. Im Besonderen findet während der Bewegung keine abgestufte Regelung der Verfahrgeschwindigkeit statt, sondern die Antriebe laufen in der Regel so schnell wie möglich. Deswegen kann nur an den Endpunkten der Bewegung das Werkzeug eingreifen und ein Loch bohren oder stanzen. Die Punktsteuerung findet heute bei Werkzeugmaschinen kaum noch Verwendung, doch für einfache Stanzmaschinen, Punktschweißmaschinen, Bohrmaschinen oder Greifroboter ist sie immer noch ausreichend, wenn diese keine definierte Strecke abfahren müssen. Aus dem unbestimmten Bewegungsablauf entsteht allerdings auch eine erhöhte Kollisionsgefahr, besonders für Menschen.

### Streckensteuerung

Die Streckensteuerung ist im Wesentlichen eine Punktsteuerung, bei der zusätzlich die Bewegungsgeschwindigkeit genau steuerbar ist. Mit der Streckensteuerung wird bei jeweils einer Achse die Geschwindigkeit und Position gesteuert. So ist es möglich, eine achsparallele Bewegung mit Arbeitsvorschub zu verfahren und damit beispielsweise eine gerade Nut zu fräsen. Eine Streckensteuerung wird auch verwendet, um Bearbeitungsaggregate einer Durchlaufmaschine in dem Moment einsetzen zu lassen, in dem das Werkstück das Aggregat passiert. Dabei handelt es sich um eine Kombination von Strecken- und PTP-Steuerung, da nicht die Vorschubbewegung der Achse selbst gesteuert wird, sondern anhand der vorberechneten Bahn die Einsatzpunkte von Point-to-Point-gesteuerten Werkzeugen an der streckengesteuerten Achse bestimmt werden.
Diese Art der Steuerung ist nur noch bei kleinen und spezialisierten Maschinen anzutreffen, also Maschinen für den Ausbildungsbetrieb, den Vorrichtungsbau und Nutenfräsmaschinen, da sie unflexibel ist und nur ein kleiner preislicher Unterschied zu einer Bahnsteuerung besteht. Bei alten Ausführungen mit Drehgebern können Steigungsfehler der Gewindespindel oder Geometriefehler der Führung während des Bewegungsablaufs nicht korrigiert werden.

### Bahnsteuerung

Bei der Bahnsteuerung können beliebige Verfahrbewegungen mit mindestens zwei gleichzeitig geregelten Achsen realisiert werden. Die Bahnsteuerung unterteilt sich in die miteinander interpolierten und „gleichzeitig“ geregelten Achsen. Interpolieren von Achsen bedeutet, dass die jeweils zunächst unabhängigen Bewegungsabläufe der einzelnen Achsen so miteinander synchronisiert werden, dass die Werkzeugspitze möglichst genau der programmierten und korrigierten Bahn folgt. Die 2 D-Bahnsteuerung kann beliebige Konturen mit zwei festgelegten Achsen abfahren. Bei Drehmaschinen ist das oft ausreichend, da das Werkstück durch seine Rotationsbewegung die dritte Dimension erstellt. Kann der Bediener zwischen den miteinander interpolierten, geregelten Achsen auswählen, spricht man von einer 2½ D-Bahnsteuerung, die heute bei Drehmaschinen mit angetriebenen Werkzeugen Standard ist. Können drei geregelte Achsen miteinander interpoliert werden, nennt man sie 3 D-Bahnsteuerung. Sie ist Standard bei den Fräsmaschinen. Bei vielen Maschinen werden inzwischen zusätzliche Achsen für schwenk- und drehbare Werkstück- oder Werkzeugaufnahmen angeboten. Bahnsteuerungen müssen mit entsprechend vielen Sensoreingängen und Stellgrößenausgängen ausgestattet sein, sowie eine ausreichend leistungsfähige Software besitzen, um das jeweils vom Maschinenkonstrukteur vorgegebene Potenzial der Maschine auszunutzen.

## Maschinenachsen

Moderne Steuerungen verwalten und regeln bei Bedarf über 30 Achsen. Diese können dabei in mehrere virtuelle und voneinander unabhängige Maschinenteile aufgeteilt werden. Durch Verwendung dreier senkrecht aufeinander stehender Achsen X, Y und Z wird jeder Punkt im Bearbeitungsraum einer Werkzeugmaschine erreicht. Es sind mit dieser Methode alle nur denkbaren Bahnen interpolierbar, allerdings mit einer wichtigen Einschränkung, die am Beispiel einer Fräsmaschine besonders deutlich hervortritt: das rotierende Werkzeug steht immer senkrecht zum Kreuztisch. Technologisch höherwertige Bearbeitung kann etwa voraussetzen, dass der Fräser jeweils senkrecht auf der zu fräsenden Kontur stehen muss. Um beispielsweise eine Bohrung unter einem Winkel von 45° anzubringen, ist es erforderlich, das Werkstück oder das Werkzeug (oder beides) zu drehen. Viele moderne Maschinen bieten die Möglichkeit, den Maschinentisch zu drehen oder zu schwenken, um weitere Konturbearbeitungen zu ermöglichen. Diese Rotationsachsen werden je nach Anordnung auf der Maschine (nach DIN 66217) mit den Buchstaben A, B und C bezeichnet: A rotierend um die X-Achse, B um die Y-Achse und C um die Z-Achse. Während bei älteren oder einfachen Maschinen diese Achsen nur gesteuert oder sogar nur geschaltet werden, regeln und interpolieren die Steuerungen der Bearbeitungszentren sie heute mit. So wird etwa mit 5-Achs-Bearbeitung von Fräsmaschinen hervorragende Oberflächenqualität erzielt. Des Weiteren können noch lineare Parallelachsen zu X, Y und Z real konfiguriert oder virtuell erzeugt werden, die dann mit U, V, W bezeichnet werden. Eine Anwendung für das virtuelle UVW-Dreibein ist das virtuelle Schwenken der Bearbeitungsebene zur Vereinfachung einer Bearbeitung auf einer Fläche, welche schräg zum Kreuztisch liegt. Alle Achs-Richtungen können mehrfach an einer Werkzeugmaschine vorkommen und erhalten dann zur Unterscheidung Indizes oder weitere, von der jeweiligen Syntax der NC-Sprache zugelassene Bezeichner. Zum Beispiel existieren bei einer Portalfräsmaschine mit einem Gantry-Antrieb in X eine X-Achse und eine X$_1$-Achse. CNC-Drehmaschinen besitzen als Hauptachsen nur die X- und Z-Achse. Ist die Antriebsspindel auch als Rotationsachse programmierbar, wird sie zu einer C-Achse. Auch selbst angetriebene Werkzeuge sind denkbar, die dann eigene Achsenbezeichnungen erhalten, zum Beispiel W-Achse.
Maschinenachsen können in mehrere Bearbeitungskanäle gruppiert werden. Jeder CNC-Kanal arbeitet wie eine eigene CNC sein Programm ab. Eine mehrkanalfähige CNC kann gleichzeitig mehrere Programme abarbeiten und z. B. in einem Kanal die Vorderseite bearbeiten, danach das Werkstück an den 2. Kanal übergeben, dort die Rückseite bearbeiten, während der 1. Kanal die Vorderseite des nächsten Werkstückes bearbeitet.

## Bezugspunkte
### Maschinennullpunkt M

    Er ist der Ursprung des Maschinen-Koordinatensystems und wird vom Maschinenhersteller festgelegt.

### Referenzpunkt R

    Ist der Ursprung des inkrementalen Wegmesssystems mit einem vom Hersteller festgelegten Abstand zum Maschinennullpunkt. Zur Eichung des Wegmesssystems muss dieser Punkt in allen Maschinenachsen mit dem Werkzeugträger-Bezugspunkt T angefahren werden.

### Werkzeugträger-Bezugspunkt T

    Er liegt mittig auf der Anschlagfläche der Werkzeugaufnahme. Bei Fräsmaschinen ist dies die Spindelnase, bei Drehmaschinen die Anschlagfläche des Werkzeughalters am Revolver.

### Werkstücknullpunkt W

    Er ist der Ursprung des Werkstück-Koordinatensystems und wird vom Programmierer nach fertigungstechnischen Gesichtspunkten festgelegt.

## Bemaßungsarten
### Absolutbemaßung (G90)

    Die Koordinaten der Zielpunkte einer Verfahrbewegung werden als Absolutwerte eingegeben, also als tatsächlicher Abstand vom Werkstücknullpunkt. Durch die Angabe des NC-Wortes G90 wird die Steuerung auf diese Absolutmaßprogrammierung programmiert. Nach dem Einschalten ist die Steuerung automatisch auf G90 eingestellt.

### Kettenbemaßung (G91)

    Bei der Kettenmaßprogrammierung (auch Inkrementalmaßprogrammierung genannt) teilt man der Steuerung die Koordinaten des Zielpunktes der Verfahrbewegung vom zuletzt angefahrenen Punkt aus mit. Der zuletzt erreichte Punkt ist also Ursprung für den nächsten Punkt. Man kann sich vorstellen, dass sich das Koordinatensystem von Punkt zu Punkt verschiebt. Durch die Angabe des NC-Wortes G91 wird die Steuerung auf diese Kettenmaßprogrammierung programmiert. Der Befehl G91 ist modal wirksam, das heißt, er bleibt im Programm solange gültig, bis er durch den Befehl G90 wieder aufgehoben wird.

## Programmierung

Es gibt verschiedene Programmierarten und -verfahren. Die Übergänge zwischen den Programmierverfahren sind fließend und können nicht direkt getrennt werden. An neuen CNC sind mehrere Programmierverfahren möglich. In der anschließenden Auflistung soll ein Überblick, teilweise mit Beispielen, dargestellt werden.

### Programmierarten

* maschinenfern auf einem Programmierplatz
    z. B. in der Arbeitsvorbereitung. Vorteil: kein Maschinenlärm, die Maschine arbeitet weiter.
* maschinennah direkt an der Maschine
    Vorteil: Facharbeiter nutzt sein Fachwissen und den Umstand, dass er den Fortgang der Fertigung laufend beobachtet.

### Programmierverfahren

* manuelle Programmierung: jedes Zeichen des Programms von Hand eingeben/ändern
* maschinelle Programmierung: CAD → CAM z. B.: Umwandlung einer 2D-Geometrie oder eines 3D-Modells mittels Prä- und Postprozessoren in ein maschinenverständliches Programm
* G-Code (DIN/ISO): siehe nachfolgendes Beispiel (DIN/ISO-Programmierung bzw. G-Code)
* Dialog- oder Werkstattorientierte Programmierung (WOP): grafische Unterstützung, Abfrage von Parametern → Einbindung ins Programm, z. B.: DIN-PLUS, Turn Plus, Deckeldialog (Einschränkung: Kompliziertheit des Teiles, maximal 45 Minuten für die Programmierung an der Maschine sind legitim, Ablenkung des Programmierers durch Geräuschkulisse an der Maschine)
* Parameterprogrammierung: Keine Bearbeitung des eigentlichen Programmes durch Maschinenbediener möglich.
* Teach-in: vergleichbar „Kopieren“ → Anfahren von Punkten an reellem Teil → Programmgerüst → Programmergänzung
* Playback: Aufzeichnen → Wiederholen z. B.: Farbspritzroboter

### DIN/ISO-Programmierung bzw. G-Code

Der Satz- und Adressaufbau der zu übermittelnden numerischen Steuerungsinformationen ist in der Norm DIN 66025/ISO 6983, meist kurz DIN/ISO-Programmierung genannt, beschrieben. Ein DIN-Programm ist auf jeder CNC-Maschine lauffähig. Allerdings gibt es für fast alle Maschinen spezielle Befehle, z. B. Zyklen, die nur von diesen Maschinen interpretiert werden können. Zyklen sind fertige Unterprogramme, die mit Parametern/Variablen angepasst werden. Mit ihnen lassen sich „Taschen“ (Rechteckkonturen oder ähnliche Taschen) oder Bohrungen etc. beschreiben. Diese Zyklen erleichtern die Programmierung und dienen der Übersichtlichkeit.

#### Beispiel 1

Hier ein einfaches Beispiel G-Code für das CNC-Fräsen mit anschließender Erläuterung. Rechts das gleiche Beispiel als Dialogprogrammierung im „Klartext“ an einer Heidenhain-Steuerung:
| G-Code | Heidenhain-„Klartext“ |
| N080 … N090 G00 X100 Y100 N100 Z0 N110 G01 Z-2 F10 N120 G01 X110 F20 N130 Y200 F15 N140 G00 Z10 N150 … | 80 … 90 L X+100 Y+100 R0 FMAX 100 L Z+0 R0 FMAX 110 L Z-2 R0 F10 120 L X+110 R0 F20 130 L Y+200 R0 F15 140 L Z+10 R0 FMAX 150 … |
In diesem Programmteil ist beschrieben, dass ein Fräswerkzeug in dem Satz N090 in einem Arbeitsraum im Eilgang (G00) eine Position anfährt, beschrieben mit den Koordinaten X100 und Y100. Im nächsten Satz N100 verfährt das Werkzeug (weiterhin im Eilgang) auf die Tiefenposition Z0, danach im Vorschub (G01) 10 mm pro Minute auf die Tiefenposition Z-2 (dies könnte die neu herzustellende Oberfläche sein). Im nächsten Satz N120 verfährt das Werkzeug im Vorschub mit einer Geschwindigkeit von 20 mm pro Minute hinein in das Werkstück auf die Position X110. Im Satz N130 verfährt das Werkzeug mit leicht verringertem Vorschub quer zur letzten Bewegung auf die Y-Koordinate 200 (zuvor 100, also um 100 mm). Im letzten Satz zieht sich das Werkzeug von −2 auf 10 mm in der Höhe per Eilgang (G00) zurück.

#### Beispiel 2 (mit Werkzeugbahnkorrektur)

Hier ein Beispiel für CNC-Drehen mit Werkzeugbahnkorrektur (G41/G42) in der Endbearbeitung (Schlichten) einer Kontur:
| G-Code | Heidenhain-„Klartext“ |
| N080 … N090 G00 X-1,6 Z2 N100 G42 N110 G01 Z0 F10 N120 G01 X0 F20 N130 G03 X20 Z-10 I0 K-10 N140 G01 Z-50 N150 G01 X50 Z-100 N160 G40 N170 … | 80 … 90 L X-1,6 Z+2 R0 FMAX 100 L Z+0 RR F10 110 L X+0 RR F20 120 CT X+20 Z-10 RR 130 L Z-50 RR 140 L X+50 RR 150 … |
Dabei stehen (unter „Heidenhain“) R0 für Fräsermittelpunktsbahn (ohne Werkzeugbahnkorrektur), RL für Werkzeugbahnkorrektur links der Kontur (in DIN G41) und RR für Werkzeugbahnkorrektur rechts der Kontur.
Voraussetzung: die Kontur wurde vorher vorgeschruppt, d. h. vorbearbeitet. In Satz 90 fährt das Werkzeug über die Mitte (X-1,6 mm) und bleibt 2 mm vor der Kontur stehen. Dann wird mit G42 die Werkzeugbahnkorrektur eingeschaltet und in Satz 110 an den Nullpunkt in Z-Richtung herangefahren. In Satz 120 wird noch auf die Werkzeugmitte gefahren (dies verhindert in Verbindung mit Satz N090 das Stehenbleiben eines erhöhten Materialrests („Butzen“) an der vorderen Werkstückfläche) und fährt schließlich in Satz 130 einen Halbkreis mit einem Radius von 10 mm. Letztlich wird in Satz 140 und 150 in Längs- bzw. Querrichtung noch auf Durchmesser 50 mm und Länge 50 mm verfahren. Mit G40 im Satz 160 wird schließlich die Werkzeugbahnkorrektur wieder aufgehoben.

#### Werkzeugbahnkorrektur

Die Werkzeugbahnkorrektur ist wichtig zur Vermeidung von Konturfehlern, die bei Kreisbahnen oder kegeligen Formen entstehen würden, da das Werkzeug selbst an der Schneide einen Radius besitzt.

#### Programmiersoftware

Programmiersoftware und CNC verfügen über eine grafische Simulation, die einen Programmtest schon vor dem Start der Bearbeitung erlauben. Außerdem gibt es Geometrierechner, die selbständig fehlende Maße, Schnittpunkte, Fasen und Verrundungen an Ecken berechnen. Damit können auch nicht NC-gerecht bemaßte Zeichnungen einfach programmiert werden.
2021 stellte eine Forschungsgruppe der Loughborough University eine Excel-basierte Open-Source-Software vor, mit der sich parametrische Anpassungen direkt am G-Code vornehmen lassen.

#### G- und M-Befehle

Die G- und M-Befehle sind in Gruppen eingeteilt. Es ist immer nur die zuletzt programmierte Funktion aus der Gruppe wirksam. Die M-Befehle (von englisch Miscellaneous) werden für verschiedene Maschinenfunktionen genutzt und vom Hersteller der CNC-Maschine festgelegt. Folgende Befehle können unabhängig vom Steuerungs- und Maschinenhersteller verwendet werden:
| G-Befehle | M-Befehle |
| Verfahrbefehl G00 Eilgang – Positionierbewegung mit höchster Geschwindigkeit G10 Vorschub geradlinig G20 Vorschub Kreisbogen im Uhrzeigersinn G30 Vorschub Kreisbogen gegen Uhrzeigersinn G33 Gewindedrehen Sonstiges, satzweise wirksam (nur in programmierter Zeile) G40 Verweilzeit in Sekunden F…, oder Verweilzeit pro Umdrehung S… G90 Genauhalt – Vorschub anhalten, bevor die nächste Bewegung ausgeführt wird. Werkzeugbahnkorrektur G40 Korrektur aus G41 links der Kontur in Vorschubrichtung G42 rechts der Kontur in Vorschubrichtung Koordinatensystem G54 erstes Werkstück-Koordinatensystem G55 zweites Werkstück-Koordinatensystem … G59 sechstes Werkstück-Koordinatensystem Bemaßungsart G90 Absolutmaßeingabe G91 Kettenmaßeingabe Vorschubangabe G94 Vorschub in mm/min G95 Vorschub in mm/Umdrehung Drehzahlangabe G96 konstante Schnittgeschwindigkeit G97 konstante Drehzahl | Programmsteuerung M00 Programm-Halt M10 wahlweiser Programm-Halt, abhängig von externem Schalter M30 Programm-Ende Spindelsteuerung M03 Spindel ein im Uhrzeigersinn M04 Spindel ein gegen den Uhrzeigersinn M05 Spindelstopp M19 positionierter Spindelstopp Kühlung, Schmierung M07 Zweite Kühlung, Schmierung ein M08 Kühlung, Schmierung ein M09 Kühlung, Schmierung aus Getriebe der Spindel M40 Neutralstellung oder automatische Getriebewahl M41 Getriebe auf Stufe 1 schalten … M44 Getriebe auf Stufe 4 schalten |

## Vorteile

Vorteile einer CNC-Steuerung liegen einerseits in der Möglichkeit zur wirtschaftlichen Bearbeitung von komplexen Geometrien zweidimensional (2D) und besonders dreidimensional (3D), andererseits in der Bearbeitungs-/Wiederholgenauigkeit und hohen Geschwindigkeit der Bearbeitungsschritte. Durch die Möglichkeit, Programme zu speichern, können viele gleiche Teile ohne das Zutun eines Menschen in Serie produziert werden. Zudem ermöglicht die CNC-Technik neue Maschinenkonzepte, da keine mechanische Verbindung zwischen Hauptantrieb und Vorschubantrieben nötig ist.

## Geschichte

Die ersten CNC-Maschinen wurden in den 1940er Jahren gebaut. Frühe Servomechanismen wurden durch analoge und digitale Computer erweitert, wodurch moderne CNC-Werkzeugmaschinen entstanden, die Bearbeitungsprozesse revolutionierten. Heute ist die CNC-Technologie im Bereich der Bearbeitung und Fertigung weit verbreitet und hat mit ihrer Unterstützung die Qualität und Effizienz der Fertigungsindustrie deutlich verbessert. Der neueste Trend im CNC-Bereich besteht natürlich darin, die traditionelle subtraktive Fertigung mit der additiven Fertigung (3D-Druck) zu kombinieren.