Sie sind auf Seite 1von 17
CNC-Programmierung „CNC-Programme nach DIN 66025“ Dr.-Ing. Hans-Peter Linde Staatliche Studienakademie Dresden Dr.
CNC-Programmierung
„CNC-Programme nach DIN 66025“
Dr.-Ing. Hans-Peter Linde
Staatliche Studienakademie Dresden
Dr. Linde
Anwendung der Regelungen der DIN 66025 Betrachtet man die auf dem Markt befindlichen Steuerungen, lassen
Anwendung der Regelungen der DIN 66025
Betrachtet man die auf dem Markt befindlichen Steuerungen, lassen sich folgende
Gruppen erkennen.
1.
Steuerungen, die ausschließlich auf Basis der Syntax der DIN 66025
programmierbar sind.
2.
Steuerungen, die neben der Syntax der DIN 66025 auch
(herstellerabhängige) Sonderbefehle bzw. Hochsprachenelemente
verwenden.
3.
Steuerungen, die eigentlich in einer herstellerabhängigen Befehlssyntax
programmiert werden, aber in der Lage sind, Programme nach DIN 66025
abzuarbeiten.
Dr. Linde
Anwendung der Regelungen der DIN 66025 1. Steuerungen, die ausschließlich auf Basis der Syntax der
Anwendung der Regelungen der DIN 66025
1. Steuerungen, die ausschließlich auf Basis der Syntax der DIN 66025
programmierbar sind.
CNC55 (Eckelmann)
Bei dieser Gruppe von Steuerungen werden alle
Programmworte jeweils nur aus einem Adressbuchstaben und
einer (vorzeichenbehafteten) Ziffernfolge gebildet.
Erweiterungen im Funktions- bzw. Befehlsvorrat sind bei
diesen Steuerungen nur möglich, in dem „frei verfügbare“
Adressbuchstaben (z. B. Adressen H, L oder O) für die
Erweiterungen benutzt werden oder bestimmte
Adressbuchstaben werden über die Festlegungen der DIN
66025 hinaus mehrfach verwendet (z. B.
Funktionserweiterungen mit den Adressen D, R, F oder T). In
diesem Fall sind dann oft G-Befehle mit dreistelliger
Ziffernfolge in der Anwendung.
%2
N010 G17
N020 G1 F10000
N030 G60 X0
N040 M70
N050 T1 M06
N060 M03
N070 S10
N080 G88 C0
N090 G93 X100 Y100
N100 G00 X50 Y0
N110 G00 Z25
N120 G01 Z18 F2500
N130 G01 X70
N140 G00 Z25
N150 G89 C30
N160 G27 X100 Z12
N170 G88 C0
N180 G93 X0 Y0
N190 M05
N200 T00 M06
N210 S0
N220 G00 X1400
N230 M71
N240 M30
Dr. Linde
Anwendung der Regelungen der DIN 66025 2. Steuerungen, die neben der Syntax der DIN 66025
Anwendung der Regelungen der DIN 66025
2. Steuerungen, die neben der Syntax der DIN 66025 auch
(herstellerabhängige) Sonderbefehle bzw. Hochsprachenelemente
verwenden.
Zusätzlich zu den in der DIN 66025 vereinbarten
Befehlsstrukturen können Sonderbefehle verwendet
werden. Diese Sonderbefehle werden mit
reservierten Bezeichnungen versehen (z. B.
Vorschub steuernde Befehle wie CFIN, CPREKON).
Zusätzlich sind Sprungbefehle bzw.
Programmverwzeigungen möglich (z. B. IF THEN,
GOTO, REPEAT)
%_N_UHR200X200_MPF
;$PATH=/_N_WKS_DIR/_N_TEST_WPD
N010 G17 G90 G64 G40 G54 M51
N020 G53 G00 Z340 D0
N050 WECHSEL (1,100,3)
N090 TRANS X100 Y100
N100 MARKE1: G00 X50 Y0
N110 G00 Z25 D1
N120 G01 Z18 F2500
N130 G01 X70
N140 G00 Z25
N150 AROT RPL=30
N160 REPEATB MARKE1 P=12
N170 TRANS
N430 G53 G00 Z340 D0 S0
N440 WECHSEL (0,,)
N450 G00 X1400
N460 M41
N470 M30
Sinumerik 840D (Siemens)
Dr. Linde
Anwendung der Regelungen der DIN 66025 3. Steuerungen, die eigentlich in einer herstellerabhängigen Befehlssyntax
Anwendung der Regelungen der DIN 66025
3. Steuerungen, die eigentlich in einer herstellerabhängigen Befehlssyntax
programmiert werden, aber in der Lage sind, Programme nach DIN 66025
abzuarbeiten
Einige Steuerungshersteller verwenden eigene
Programmiersprachen (d. h. nicht konform zur DIN
66025), um Bearbeitungsprogramme aus Folgen von
Bearbeitungsschritten (Zyklen) zu bilden.
Darüber hinaus bieten derartige Steuerungen
zusätzlich die Möglichkeit, mittels einem „Interpreter“
auch Programm nach DIN 66025 zu verarbeiten.
0 BEGIN PGM LINEAR MM
1 BLK FORM 0.1 Z X+0 Y+0 Z-20
2 BLK FORM 0.2 X+100 Y+100 Z+0
3 TOOL DEF 1 L+0 R+10
4 TOOL CALL 1 Z S4000
5 L Z+250 R0 FMAX
6 L X-10 Y-10 R0 FMAX
7 L Z-5 R0 F1000 M3
8 APPR LT X+5 Y+5 LEN10 RL F300
9 L Y+95
10 L X+95
11 CHF 10
12 L Y+5
13 CHF 20
14 L X+5
15 DEP LT LEN10 R0 F1000
16 L Z+250 R0 FMAX M2
17 END PGM LINEAR MM
TNC 410 (Heidenhain)
Dr. Linde
ISO-Code Auf der Basis der im Jahre 1972 veröffentlichen Norm ISO 1058 entstand der nationale
ISO-Code
Auf der Basis der im Jahre 1972 veröffentlichen Norm ISO 1058 entstand der
nationale Standard DIN 66025 „Programmaufbau für numerisch gesteuerte
Arbeitsmaschinen“. Umgangssprachlich wird die Programmierung nach diesem
Standard dann auch als Programmierung im „ISO-Code“ bzw. „DIN-Code“
bezeichnet.
Im Zuge der technischen Entwicklung und der zunehmenden Komplexität der
Bearbeitungsaufgaben erwiesen sich die relativ starren Befehlstrukturen der DIN
66025 als nachteilig. In diesem Standard sind z. B. keine Sprungbefehle oder
Schleifenoperationen vereinbart. Da die Befehlsstrukturen der DIN 66025 aber
auf einheitlichen, internationalen Regeln basieren, wurden Lösungen gesucht,
um die Regeln der DIN 66025 einzuhalten und gleichzeitig eine höhere
Programmqualität zu erreichen.
 Ein Programm besteht aus dem Zeichen „%“ (Programmanfang) und einer
geordneten Folge von Programmsätzen.
 Ein Programmsatz besteht aus Programmworten und dem Zeichen
„Satzende“.
 Ein Programmwort besteht aus einem Adressbuchstaben und einer
(vorzeichenbehafteten) Ziffernfolge.
Dr. Linde

ISO-Code

ISO-Code
ISO-Code
Dr. Linde
Dr. Linde
Programmstruktur ISO-Code Ein Programm besteht aus dem Zeichen „%“ (Programmanfang) und einer geordneten Folge von
Programmstruktur ISO-Code
Ein Programm besteht aus dem Zeichen „%“ (Programmanfang) und einer
geordneten Folge von Programmsätzen.
Wird das Programm durch eine Programmnummer (Siemens: auch
Programmname) gekennzeichnet, steht diese unmittelbar nach dem Zeichen
„Programmanfang“. Ein Satz beginnt mit der Satznummer (optional) und endet mit
dem Zeichen „Satzende“ (line feed, entsteht durch Drücken der Enter-Taste).
Alt: Ein Programm kann in Abschnitte, die aus mehreren Sätzen bestehen,
unterteilt werden. Der erste Satz ist dann als
Hauptsatz (mit dem Zeichen „:“) zu programmieren.
Speziell: Fa. Siemens  Programmtyp: MPF=main program file,
SPF=sub program file usw.
%_N_MUSTER_MPF
;$PATH=/_N_WKS_DIR/_N_TEST_WPD
;AUTOR: MUSTERMANN
;ROHTEIL X=480MM Y=480MM Z=19MM
;BAUTEIL
N1 G40 G451 G54 G64 CFIN M51
N2 G53 G0 G90 D0 Z610
N5 G0 B0 C0
Dr. Linde
Programmstruktur ISO-Code Ein Programmsatz besteht aus Programmworten und dem Zeichen „Satzende“. Art und Anzahl
Programmstruktur ISO-Code
Ein Programmsatz besteht aus Programmworten und dem Zeichen
„Satzende“.
Art und Anzahl der zu programmierenden Worte werden durch die Steuerung
bestimmt. Ein Programmsatz kann maximal 242 bzw. maximal 512 Zeichen
enthalten. In einem Programmsatz können die Programmworte weggelassen
werden, die für den jeweiligen Arbeitsablauf nicht notwendig sind
(variable Satzlänge). Ein Wort, das sich in mehreren aufeinander folgenden
Programmsätzen nicht ändert, braucht nur einmal angegeben werden und kann in
den nachfolgenden Sätzen, in denen es unverändert gelten soll, weggelassen
werden. Ein Satz sollte alle Daten zur Ausführung eines Arbeitsschrittes enthalten
und endet mit dem Zeichen "LF" (LINE FEED = neue Zeile). Bei den
Programmworten ist folgende Reihenfolge einzuhalten:
1. Satznummer  N
2. Wort (e) mit Wegebedingungen  G
3. Wort (e) mit Koordinaten  X, Y, Z, A, B, C, I, J, K, I1=, J1=, K1=
4. Wort mit Vorschubangaben  F
5. Wort mit Spindeldrehzahl  S
6. Wort mit Werkzeug und Werkzeugkorrekturen  T, D
7. Wort (e) mit Zusatzbedingungen und Hilfsfunktionen  M, H
Dr. Linde
Programmstruktur ISO-Code Ein Programmwort besteht aus einem Adressbuchstaben und einer (vorzeichenbehafteten)
Programmstruktur ISO-Code
Ein Programmwort besteht aus einem Adressbuchstaben und einer
(vorzeichenbehafteten) Ziffernfolge.
Eine Ziffernfolge ist entweder ganzzahlig oder wird durch einen Dezimalpunkt
getrennt. Koordinaten (und Radiuswerte) sind vorzeichenbehaftet. Das Zeichen
„Plus“ ist Standard und kann entfallen; das Zeichen „Minus“ ist zu schreiben.
Besteht eine Ziffernfolge nur aus Nullen, so ist mindestens eine Null zu schreiben.
Speziell: Fa. Siemens: Erweiterung des Funktionsumfangs durch
- Verwendung von Hochsprachenelementen, z. B. IF, THEN, GOTO
- Verwendung Standardfunktionen, z. B. SIN, EXP, SQRT
- Verwendung von Variablen, z. B. CR=  Hier werden die Werte der
Variablen durch Gleichheitszeichen zugewiesen
- Verwendung von Vorschub steuernden Funktionen, z. B. CFIN, CFC,
ADIS
N40 G2 X240 Y-475 CR=235 F4500
N45 G3 X242 Y-477 CR=2
N50 G1 G40 G90 X241 Y-478 Z17
N55 G0 Z80
N60 G90 G53 G0 D0 Z610 B0 C0 S0
Dr. Linde

Adressen

 

Bedeutung [Dimension]

Format

Min. Wert

Max. Wert

 

A

Drehung um die X-Achse [Grad]

A+033

A-999.999

A999.999

B

Drehung um die Y-Achse [Grad]

B+033

B-999.999

B999.999

C

Drehung um die Z-Achse [Grad]

C+033

B-999.999

C999.999

D

Werkzeugkorrekturblock

D02

D0

D99

E

Gesonderte Bedeutung

     

F

Vorschubgeschwindigkeit [mm/min]

F05

F0

F60000

G

Wegebedingung

G03

G0

G99 (G999)

H

Hilfsfunktion

H02

H0

H99

I

Interpolationsparameter X-Achse [mm]

I+053

I-99999.999

I99999.999

J

Interpolationsparameter Y-Achse [mm]

J+053

J-99999.999

J99999.999

K

Interpolationsparameter Z-Achse [mm]

K+053

K-99999.999

K99999.999

L

Unterprogrammaufruf

L03

L0

L999

M

Zusatzfunktion

M02

M0

M99

N

Satznummer

N05

N0

N99999

O

Nicht vereinbart

     

P

Bewegung parallel zur X-Achse [mm]

P+053

P-99999.999

P99999.999

Q

Bewegung parallel zur Y-Achse [mm]

Q+053

Q-99999.999

Q99999.999

R

Bewegung parallel zur Z-Achse [mm] oder Parameter

R+053

R-99999.999

R99999.999

R03

R0

R999

S

Spindeldrehzahl [1/min]

S03

S0

S18000

T

Werkzeugauswahl, Motor vorlegen

T02

T0

T99, T12

U

Bewegung parallel zur X-Achse [mm]

U+053

U-99999.999

U99999.999

V

Bewegung parallel zur Y-Achse [mm]

V+053

Q-99999.999

V99999.999

W

Bewegung parallel zur Z-Achse [mm]

W+053

R-99999.999

W99999.999

X

Koordinate in X-Richtung [mm]

X+053

X-99999.999

X99999.999

Y

Koordinate in Y-Richtung [mm]

Y+053

Y-99999.999

Y99999.999

DIN 66025

Z

Koordinate in Z-Richtung [mm]

Z+053

Z-99999.999

Z99999.999

Dr. Linde
Dr. Linde
Programmelemente  Programmname Befindet sich mehr als ein CNC-Programm im Anwenderspeicher, so sind die Programme
Programmelemente  Programmname
Befindet sich mehr als ein CNC-Programm im Anwenderspeicher, so sind die
Programme durch Programmnamen zu unterschieden. Ein Programmname kann
frei gewählt werden. Es gelten folgende Regeln.
- In Namen dürfen die Buchstaben A bis Z, die Ziffern 0 bis 9 und der Unterstrich
„_“ verwendet werden.
- Die ersten beiden Zeichen sollten entweder zwei Buchstaben oder ein Unterstrich
mit einem Buchstaben sein.
- Obwohl beim System Sinumerik grundsätzlich auch Kleinbuchstaben zugelassen
sind, sollten beim Programmnamen Grossbuchstaben verwendet werden.
Abweichend davon, kann bei einem Unterprogrammen auch der Programmname
aus einem Buchstaben und einer Ziffernfolge bestehen.
Extern erstellte CNC-Programme, die in die Steuerung eingelesen werden,
beginnen nach dem %-Zeichen mit der Zeichenkette „_N_“.
Beispiel: Hauptprogramm „TEIL32“, Unterprogramme „PLATTE400X400“ und
„L899“
%_N_TEIL32_MPF
%_N_PLATTE400X400_SPF
%_N_L899_SPF
Dr. Linde
Programmelemente  Kommentare Ein Kommentar dient der Erläuterung eines Programms. Kommentare werden von der
Programmelemente  Kommentare
Ein Kommentar dient der Erläuterung eines Programms. Kommentare werden von
der Steuerung ignoriert.
Ein Kommentar darf nicht die Zeichen „Programmanfang (%)“ oder „Hauptsatz (:)“
enthalten. Ein Kommentar beginnt mit dem Zeichen „Kommentarbeginn (;)“ und
endet mit dem Zeichen „Satzende“.
Gesamter Satz als Kommentar:
N300 ; FAHREN ZUM ANSCHNITT
Teil des Satzes als Kommentar:
N310 G0 X205 Y103.7 F3500 ; FRAESEN
Kommentar-Vorspann eines Programms:
%_N_DECKEL_MPF
;$PATH=/_N_WKS_DIR/_N_TEST_WPD
;ROHTEIL X=480MM Y=480MM Z=19MM
;ABDECKUNG OBEN
EXTERN WECHSEL (INT,INT,INT)
N1 G40 G451 G54 G64 CFIN M51
N4 G53 G0 G90 D0 Z340
Dr. Linde
Programmelemente  Meldungen Meldungen sind Hinweise/Erläuterungen für den Maschinenführer und werden auf dem
Programmelemente  Meldungen
Meldungen sind Hinweise/Erläuterungen für den Maschinenführer und werden auf
dem Bildschirm angezeigt. Eine Meldung wird solange angezeigt, bis sie durch eine
andere Meldung überschrieben oder durch einen Löschbefehl gelöscht wird.
Hinweis: In der DIN 66025 sind keine Meldungen vereinbart. Die Beispiele
beziehen sich auf Steuerung Sinumerik 840D.
N300 MSG („ANZEIGETEXT“)  Zeichenkette zwischen „
Meldung auf dem Monitor dargestellt.
wird als
N310 MSG ()
 die Meldung auf dem Monitor wird gelöscht.
Dr. Linde
Programmelemente  Satznummerierung Das Programmwort für Satznummer besteht aus dem Adressbuchstabe „N“ und einer
Programmelemente  Satznummerierung
Das Programmwort für Satznummer besteht aus dem Adressbuchstabe „N“ und
einer ganzzahligen Ziffernfolge. Ein Programm sollte numerisch aufsteigend
nummeriert werden. Als Schrittweite der Satznummerierung sollte 5 oder 10
gewählt werden. Die Programmsätze (bei unverzweigtem Programm) werden
entsprechend der Reihenfolge der Eingabe abgearbeitet und nicht in der
Reihenfolge der Satznummern. Bei einigen Steuerungen ist die Angabe von
Satznummern nicht zwingend notwendig und kann entfallen.
Aber: Stellt die Steuerung in einem CNC-Programm Fehler fest, so werden diese
Fehler benannt und als Ort der Feststellung (d. h. wo die Fehler wirksam werden 
muss nicht der Ort des Entstehens sein) die dazugehörige Satznummer
angegeben.
N100
N105
Ein Ausblendsatz kann wahlweise abgearbeitet werden, wenn er vor der
Satznummer das Zeichen „/“ (Satzausblenden) enthält. Wurde durch den
Maschinenführer am Bedienfeld der Steuerung der Schalter „Satzausblenden“
manuell betätigt, dann werden alle als Ausblendsätze gekennzeichneten
Programmsätze ignoriert.
/N150
Dr. Linde
Programmelemente  Sprungziele Durch die Definition von Sprungzielen (so genannte Labels), bei bedingten oder
Programmelemente  Sprungziele
Durch die Definition von Sprungzielen (so genannte Labels), bei bedingten oder
unbedingten Sprüngen, können innerhalb eines Programms Verzweigungen
programmiert werden.
Der Name eines Labels kann mit mindestens 2 und höchstens 32 Zeichen
(Buchstaben, Ziffern, Unterstrich) angegeben werden. Dabei müssen die ersten
beiden Zeichen müssen Buchstaben sein. Nach dem Namen des Labels folgt ein
Doppelpunkt (":"). Der Name eines Labels muss eindeutig sein.
Ein Label steht immer am Satzanfang; wird eine Satznummer verwendet steht das
Label unmittelbar hinter der Satznummer.
N10 MARKE1: G00 X20 Y105
N200 IF R10<R22 THEN GOTOB MARKE1
Dr. Linde
Programmelemente  erweiterte Adressschreibweise Bei der Steuerung Sinumerik 840D werden folgende Unterscheidungen
Programmelemente  erweiterte Adressschreibweise
Bei der Steuerung Sinumerik 840D werden folgende Unterscheidungen getroffen.
1.
Adressen
Adressen für die Bezeichnung u. a. für Satznummern, Achsen, Wegebedingungen,
Werkzeugaufrufe, Werkzeugkorrektur, Spindeldrehzahl, Vorschub und
Zusatzfunktionen.
N10 G00 X120.5 oder N15 G01 Z40 F3500
2.
Wertzuweisungen
Den Adressen können Werte zugewiesen werden. Die Wertzuweisung erfolgt
abhängig von der Art des Adressbezeichners unterschiedlich.
Ein "="-Zeichen zwischen dem Adressbezeichner und dem Wert muss geschrieben
werden, wenn:
- der Adressbezeichner aus mehr als einem Buchstaben besteht,
- der Wert aus mehr als einer Konstanten besteht.
X=10*(5+SIN(37.5))
Wertzuweisung über einen numerischen Ausdruck
3.
Bezeichner
Die Adressen nach DIN 66025 können durch Bezeichner (Namen) ergänzt werden.
Die Bezeichner müssen eindeutig sein. Derselbe Bezeichner darf nicht für
verschiedene Objekte verwendet werden.
N205 TRANS X20 Y-15.7 oder N210 AROT RPL=60
Dr. Linde