0% fanden dieses Dokument nützlich (0 Abstimmungen)
412 Ansichten688 Seiten

Sinumerik Sinumerik 840D Sl/840di sl/840D/840Di/810D Arbeitsvorbereitung

Hochgeladen von

setmein
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
412 Ansichten688 Seiten

Sinumerik Sinumerik 840D Sl/840di sl/840D/840Di/810D Arbeitsvorbereitung

Hochgeladen von

setmein
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

Vorwort

SINUMERIK SINUMERIK 840D sl/840Di sl/840D/840Di/810D Arbeitsvorbereitung

1
______________
Flexible NC-Programmierung

Unterprogrammtechnik,
2
SINUMERIK ______________
Makrotechnik

Datei- und
3
SINUMERIK ______________
Programmverwaltung

840D sl/840Di sl/840D/840Di/810D 4


Arbeitsvorbereitung ______________
Schutzbereiche

5
Programmierhandbuch ______________
Spezielle Wegbefehle

6
______________
Frames

7
______________
Transformationen

8
______________
Werkzeugkorrekturen

9
______________
Bahnverhalten

Bewegungs-
10
______________
synchronaktionen

Gültig für 11
Steuerung
______________
Pendeln

SINUMERIK 840D sl/840DE sl


12
SINUMERIK 840Di sl/840DiE sl
SINUMERIK 840D powerline/840DE powerline
______________
Stanzen und Nibbeln

SINUMERIK 840Di powerline/840DiE powerline


13
SINUMERIK 810D powerline/810DE powerline
______________
Weitere Funktionen
Software Version
14
NCU Systemsoftware für 840D sl/840DE sl
NCU Systemsoftware für 840Di sl/DiE sl
NCU Systemsoftware für 840D/840DE
1.4
1.0
7.4
______________
Eigene Abspanprogramme

NCU Systemsoftware für 840Di/840DiE 3.3


15
NCU Systemsoftware für 810D/810DE 7.4 ______________
Tabellen

A
11/2006
6FC5398-2BP10-2AA0 ______________
Anhang
Sicherheitshinweise
Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie zur Vermeidung von
Sachschäden beachten müssen. Die Hinweise zu Ihrer persönlichen Sicherheit sind durch ein Warndreieck
hervorgehoben, Hinweise zu alleinigen Sachschäden stehen ohne Warndreieck. Je nach Gefährdungsstufe
werden die Warnhinweise in abnehmender Reihenfolge wie folgt dargestellt.

Gefahr
bedeutet, dass Tod oder schwere Körperverletzung eintreten wird, wenn die entsprechenden
Vorsichtsmaßnahmen nicht getroffen werden.

Warnung
bedeutet, dass Tod oder schwere Körperverletzung eintreten kann, wenn die entsprechenden
Vorsichtsmaßnahmen nicht getroffen werden.

Vorsicht
mit Warndreieck bedeutet, dass eine leichte Körperverletzung eintreten kann, wenn die entsprechenden
Vorsichtsmaßnahmen nicht getroffen werden.

Vorsicht
ohne Warndreieck bedeutet, dass Sachschaden eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen
nicht getroffen werden.

Achtung
bedeutet, dass ein unerwünschtes Ergebnis oder Zustand eintreten kann, wenn der entsprechende Hinweis nicht
beachtet wird.
Beim Auftreten mehrerer Gefährdungsstufen wird immer der Warnhinweis zur jeweils höchsten Stufe verwendet.
Wenn in einem Warnhinweis mit dem Warndreieck vor Personenschäden gewarnt wird, dann kann im selben
Warnhinweis zusätzlich eine Warnung vor Sachschäden angefügt sein.

Qualifiziertes Personal
Das zugehörige Gerät/System darf nur in Verbindung mit dieser Dokumentation eingerichtet und betrieben
werden. Inbetriebsetzung und Betrieb eines Gerätes/Systems dürfen nur von qualifiziertem Personal
vorgenommen werden. Qualifiziertes Personal im Sinne der sicherheitstechnischen Hinweise dieser
Dokumentation sind Personen, die die Berechtigung haben, Geräte, Systeme und Stromkreise gemäß den
Standards der Sicherheitstechnik in Betrieb zu nehmen, zu erden und zu kennzeichnen.

Bestimmungsgemäßer Gebrauch
Beachten Sie Folgendes:

Warnung
Das Gerät darf nur für die im Katalog und in der technischen Beschreibung vorgesehenen Einsatzfälle und nur in
Verbindung mit von Siemens empfohlenen bzw. zugelassenen Fremdgeräten und -komponenten verwendet
werden. Der einwandfreie und sichere Betrieb des Produktes setzt sachgemäßen Transport, sachgemäße
Lagerung, Aufstellung und Montage sowie sorgfältige Bedienung und Instandhaltung voraus.

Marken
Alle mit dem Schutzrechtsvermerk ® gekennzeichneten Bezeichnungen sind eingetragene Marken der Siemens
AG. Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durch Dritte für deren
Zwecke die Rechte der Inhaber verletzen kann.

Haftungsausschluss
Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit der beschriebenen Hard- und Software geprüft.
Dennoch können Abweichungen nicht ausgeschlossen werden, so dass wir für die vollständige Übereinstimmung
keine Gewähr übernehmen. Die Angaben in dieser Druckschrift werden regelmäßig überprüft, notwendige
Korrekturen sind in den nachfolgenden Auflagen enthalten.

Siemens AG Dokumentbestell-Nr. 6FC5398-2BP10-2AA0 Copyright © Siemens AG 2006.


Automation and Drives Ausgabe 10/2006 Änderungen vorbehalten
Postfach 48 48
90437 NÜRNBERG
DEUTSCHLAND
Vorwort

Vorwort

SINUMERIK-Dokumentation
Die SINUMERIK-Dokumentation ist in 3 Ebenen gegliedert:
● Allgemeine Dokumentation
● Anwender-Dokumentation
● Hersteller-/Service-Dokumentation

Eine monatlich aktualisierte Druckschriften-Übersicht mit den jeweils verfügbaren


Sprachen finden Sie im Internet unter:
[Link]
Folgen Sie den Menüpunkten "Support" → "Technische Dokumentation" → "Druckschriften-
Übersicht".
Die Internet-Ausgabe der DOConCD, die DOConWEB, finden Sie unter:
[Link]
Informationen zum Trainingsangebot und zu FAQs (frequently asked questions) finden Sie
im Internet unter:
[Link] und dort unter Menüpunkt "Support"

Zielgruppe
Die vorliegende Druckschrift wendet sich an:
● Programmierer
● Projekteure

Nutzen
Das Programmierhandbuch befähigt die Zielgruppe, Programme und Software-Oberflächen
zu entwerfen, zu schreiben, zu testen und Fehler zu beheben.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 iii
Vorwort

Standardumfang
In der vorliegenden Programmieranleitung ist die Funktionalität des Standardumfangs
beschrieben. Ergänzungen oder Änderungen, die durch den Maschinenhersteller
vorgenommen werden, werden vom Maschinenhersteller dokumentiert.
Es können in der Steuerung weitere, in dieser Dokumentation nicht erläuterte Funktionen
ablauffähig sein. Es besteht jedoch kein Anspruch auf diese Funktionen bei der Neulieferung
bzw. im Servicefall.
Ebenso enthält diese Dokumentation aus Gründen der Übersichtlichkeit nicht sämtliche
Detailinformationen zu allen Typen des Produkts und kann auch nicht jeden denkbaren Fall
der Aufstellung, des Betriebes und der Instandhaltung berücksichtigen.

Technical Support
Bei technischen Fragen wenden Sie sich bitte an folgende Hotline:

Europa / Afrika Asien / Australien Amerika


Telefon +49 180 5050 222 +86 1064 719 990 +1 423 262 2522
Fax +49 180 5050 223 +86 1064 747 474 +1 423 262 2289
Internet [Link]
E-Mail [Link]

Hinweis
Landesspezifische Telefonnummern für technische Beratung finden Sie im Internet:
[Link]

Fragen zur Dokumentation


Bei Fragen zur Dokumentation (Anregungen, Korrekturen) senden Sie bitte ein Fax oder
eine E-Mail an folgende Adresse:

Fax: +49 (0) 9131 / 98 - 63315


E-Mail: [Link]
Faxformular: siehe Rückmeldeblatt am Schluss der Druckschrift

Internetadresse für SINUMERIK


[Link]

Arbeitsvorbereitung
iv Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Vorwort

EG-Konformitätserklärung
Die EG-Konformitätserklärung zur EMV-Richtlinie finden/erhalten Sie
● im Internet:
[Link]
unter der Produkt-/Bestellnummer 15257461
● bei der zuständigen Zweigniederlassung des Geschäftsgebiets A&D MC der Siemens AG

Exportvariante
Folgende Funktionen sind in der Exportvariante nicht enthalten:

Funktion 810DE 840DE sl 840DE 840DiE sl 840DiE


Schraubenlinieninterpolation 2D+6 − − − − −
(Grundausführung, keine Option)
Bearbeitungspaket Fräsen − − − − −
Bearbeitungspaket 5 Achsen − − − − −
Transformationspaket Handling − − − − −
Mehrachsen-Interpolation (>4 interpolierende Achsen) − − − − −
OA-NCK-Compilezyklen − − − − −
Abstandsregelung 1D/3D im LR-Takt 1) − − − − −
Synchronaktionen 1) # # # # #
(Grundausführung, keine Option)
Leitwertkopplung und Kurventabellen-Interpolation # # # # #
Durchhangskompensation mehrdimensional # # # # #
Synchronaktionen Stufe 2 1) − − # − #
Elektronisches Getriebe 1) − − # − #
Elektronischer Transfer − − # − #
# eingeschränkte Funktionalität
− Funktion nicht möglich

1) Die Funktionseinschränkungen für die Export-Varianten SINUMERIK 810DE powerline / SINUMERIK 840DE sl /
SINUMERIK 840DE powerline / SINUMERIK 840DiE sl / SINUMERIK 840DiE powerline sind auf "max. 4
interpolierende Achsen" begrenzt.

Beschreibung
Grundlagen
Die Programmieranleitung "Grundlagen" dient dem Maschinenfacharbeiter und setzt
entsprechende Kenntnisse für Bohr-, Fräs- und Drehbearbeitungen voraus. An einfachen
Programmierbeispielen werden die auch nach DIN 66025 bekannten Befehle und
Anweisungen erläutert.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 v
Vorwort

Arbeitsvorbereitung
Die Programmieranleitung "Arbeitsvorbereitung" dient dem Technologen mit Kenntnissen
über die gesamten Programmiermöglichkeiten. Die SINUMERIK 840D sl/840Di
sl/840D/840Di/810D ermöglicht mit einer speziellen Programmiersprache die
Programmierung eines komplexen Werkstückprogramms (z. B. Freiformflächen,
Kanalkoordinierung,...) und erleichtert dem Technologen eine aufwendige Programmierung.
Die Befehle und Anweisungen, die in dieser Programmieranleitung beschrieben sind, sind
Technologie-unabhängig.
Verwendet werden können sie z. B. für:
● Drehen, Fräsen und Schleifen
● Zyklische Maschinen (Verpackungs-, Holzbearbeitung)
● Laser-Leistungssteuerungen

Arbeitsvorbereitung
vi Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Inhaltsverzeichnis
Vorwort ...................................................................................................................................................... iii
1 Flexible NC-Programmierung ................................................................................................................. 1-1
1.1 Variable und Rechenparameter (Anwenderdefinierte Variable, Rechenparameter,
Systemvariable) ......................................................................................................................... 1-1
1.2 Variablendefinition (DEF Anwenderdefinierte Variable LUD, GUD, PUD) ................................ 1-3
1.3 Felddefinitionen (DEF, SET, REP)............................................................................................. 1-7
1.4 Indirekte Programmierung ....................................................................................................... 1-14
1.4.1 String als Teileprogrammzeile abarbeiten (EXECSTRING) .................................................... 1-17
1.5 Zuweisungen............................................................................................................................ 1-18
1.6 Rechenoperationen/Rechenfunktionen ................................................................................... 1-19
1.7 Vergleichs- und logische Operationen..................................................................................... 1-22
1.7.1 Genauigkeitskorrektur bei Vergleichsfehlern (TRUNC)........................................................... 1-25
1.7.2 Minimum, Maximum und Bereich von Variablen (MINVAL, MAXVAL, BOUND)..................... 1-26
1.8 Priorität der Operationen.......................................................................................................... 1-28
1.9 Mögliche Typenkonvertierungen.............................................................................................. 1-29
1.10 Stringoperationen..................................................................................................................... 1-30
1.10.1 Typenkonvertierung nach STRING.......................................................................................... 1-31
1.10.2 Typenkonvertierung von STRING............................................................................................ 1-32
1.10.3 Verkettung von Strings............................................................................................................. 1-33
1.10.4 Wandlung in Klein-/Großbuchstaben....................................................................................... 1-34
1.10.5 Länge des Strings .................................................................................................................... 1-35
1.10.6 Zeichen/String in String suchen ............................................................................................... 1-35
1.10.7 Auswahl eines Teilstrings ........................................................................................................ 1-37
1.10.8 Selektion eines Einzelzeichens................................................................................................ 1-37
1.11 CASE-Anweisung .................................................................................................................... 1-39
1.12 Kontrollstrukturen..................................................................................................................... 1-41
1.13 Programmkoordinierung .......................................................................................................... 1-45
1.14 Interruptroutine (SETINT, DISABLE, ENABLE, CLRINT)........................................................ 1-50
1.15 Achstausch, Spindeltausch (RELEASE, GET, GETD) ............................................................ 1-59
1.16 Achse einem anderen Kanal übergeben (AXTOCHAN) .......................................................... 1-63
1.17 NEWCONF: Maschinendaten wirksam setzen ........................................................................ 1-64
1.18 WRITE: Datei schreiben .......................................................................................................... 1-65
1.19 DELETE: Datei löschen ........................................................................................................... 1-67
1.20 READ: Zeilen in Datei lesen .................................................................................................... 1-69
1.21 ISFILE: Datei im Anwendunsspeicher NCK vorhanden .......................................................... 1-71

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 vii
Inhaltsverzeichnis

1.22 FILEDATE/TIME/SIZE/STAT/INFO: File Informationen .......................................................... 1-72


1.23 CHECKSUM: Checksummenbildung über ein Feld................................................................. 1-74
1.24 ROUNDUP: Aufrunden ............................................................................................................ 1-75
2 Unterprogrammtechnik, Makrotechnik .................................................................................................... 2-1
2.1 Unterprogramme einsetzen........................................................................................................ 2-1
2.2 Unterprogramme mit SAVE-Mechanismus ................................................................................ 2-4
2.3 Unterprogramme mit Parameterübergabe (PROC, VAR).......................................................... 2-5
2.4 Unterprogramme aufrufen (L bzw. EXTERN) ............................................................................ 2-9
2.5 Parametrierbarer Unterprogrammrücksprung (RET) ............................................................... 2-14
2.6 Unterprogramm mit Programmwiederholung (P) ..................................................................... 2-18
2.7 Modales Unterprogramm (MCALL).......................................................................................... 2-20
2.8 Unterprogramm indirekt aufrufen (CALL)................................................................................. 2-22
2.9 Programmteilwiederholung mit indirekter Programmierung (CALL) ........................................ 2-22
2.10 Indirekter Aufruf eines in ISO-Sprache programmierten Programms (ISOCALL) ................... 2-24
2.11 Unterprogramm mit Pfadangabe und Parametern aufrufen (PCALL) ..................................... 2-25
2.12 Suchpfad bei Unterprogrammaufrufen mit CALLPATH erweitern ........................................... 2-26
2.13 Externes Unterprogramm abarbeiten (EXTCALL) ................................................................... 2-28
2.14 Einzelsatzunterdrückung (SBLOF, SBLON) ............................................................................ 2-32
2.15 Aktuelle Satzanzeige unterdrücken (DISPLOF) ...................................................................... 2-36
2.16 Unterprogramme mit Vorbereitung kennzeichnen (PREPRO) ................................................ 2-38
2.17 Zyklen: Anwenderzyklen parametrieren................................................................................... 2-39
2.18 Makrotechnik (DEFINE...AS) ................................................................................................... 2-42
3 Datei- und Programmverwaltung ............................................................................................................ 3-1
3.1 Programmspeicher..................................................................................................................... 3-1
3.2 Arbeitsspeicher .......................................................................................................................... 3-6
3.3 Anwenderdaten definieren ......................................................................................................... 3-8
3.4 Schutzstufen für Anwenderdaten, MD, SD und NC-Sprachbefehle ........................................ 3-11
3.4.1 Schutzstufen für Anwenderdaten (GUD) definieren ................................................................ 3-11
3.4.2 Automatische Aktivierung von GUDs und MACs ..................................................................... 3-13
3.4.3 Schutzstufen für Maschinen- und Settingdaten ändern (REDEF MD, SD) ............................. 3-14
3.4.4 Schutzstufen für NC-Sprachbefehle (REDEF)......................................................................... 3-16
3.5 REDEF: Attribute von NC-Sprachelementen ändern............................................................... 3-18
3.6 Strukturierungsanweisung SEFORM im Stepeditor................................................................. 3-24
4 Schutzbereiche ....................................................................................................................................... 4-1
4.1 Festlegung der Schutzbereiche (CPROTDEF, NPROTDEF) .................................................... 4-1
4.2 Schutzbereiche aktivieren, deaktivieren (CPROT, NPROT)...................................................... 4-4
4.3 Überprüfung auf Schutzbereichsverletzung, Arbeitsfeldbegrenzung und Softwarelimits.......... 4-8

Arbeitsvorbereitung
viii Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Inhaltsverzeichnis

5 Spezielle Wegbefehle ............................................................................................................................. 5-1


5.1 Codierte Positionen anfahren (CAC, CIC, CDC, CACP, CACN)............................................... 5-1
5.2 Spline-Interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN)......................... 5-2
5.3 Spline-Verbund (SPLINEPATH) .............................................................................................. 5-11
5.4 Kompressor (COMPOF/ON, COMPCURV, COMPCAD) ........................................................ 5-13
5.5 Polynom-Interpolation (POLY, POLYPATH)............................................................................ 5-17
5.6 Einstellbarer Bahnbezug (SPATH, UPATH) ............................................................................ 5-23
5.7 Messen mit schaltendem Taster (MEAS, MEAW) ................................................................... 5-25
5.8 Erweiterte Messfunktion (MEASA, MEAWA, MEAC) (Option) ................................................ 5-28
5.9 Spezielle Funktionen für den OEM-Anwender (OEMIPO1, OEMIPO2, G810 bis G829)........ 5-37
5.10 Vorschubreduzierung mit Eckenverzögerung (FENDNORM, G62, G621).............................. 5-37
5.11 Programmierbares Bewegungsendekriterium (FINEA, COARSEA, IPOENDA, IPOBRKA,
ADISPOSA).............................................................................................................................. 5-38
5.12 Programmierbarer Servo-Parametersatz (SCPARA) .............................................................. 5-42
6 Frames ................................................................................................................................................... 6-1
6.1 Koordinatentransformation über Framevariable ........................................................................ 6-1
6.1.1 Vordefinierte Framevariable ($P_BFRAME, $P_IFRAME, $P_PFRAME, $P_ACTFRAME) .... 6-3
6.2 Framevariablen/Frames Werte zuweisen .................................................................................. 6-8
6.2.1 Direkte Werte zuweisen (Achswert, Winkel, Maßstab).............................................................. 6-8
6.2.2 Framekomponenten lesen und verändern (TR, FI, RT, SC, MI) ............................................. 6-10
6.2.3 Verknüpfung von kompletten Frames...................................................................................... 6-12
6.2.4 Definition neuer Frames (DEF FRAME) .................................................................................. 6-13
6.3 Grob- und Feinverschiebung (CFINE; CTRANS) .................................................................... 6-14
6.4 DRF-Verschiebung .................................................................................................................. 6-16
6.5 Externe Nullpunktverschiebung ............................................................................................... 6-17
6.6 Preset-Verschiebung (PRESETON) ........................................................................................ 6-18
6.7 Frame-Berechnung aus 3 Messpunkten im Raum (MEAFRAME) .......................................... 6-19
6.8 NCU-globale Frames ............................................................................................................... 6-22
6.8.1 Kanalspezifische Frames ($P_CHBFR, $P_UBFR)................................................................. 6-23
6.8.2 Im Kanal wirksame Frames ..................................................................................................... 6-25
7 Transformationen.................................................................................................................................... 7-1
7.1 Allgemeine Programmierung der Transformationsarten............................................................ 7-1
7.1.1 Orientierungsbewegungen bei den Transformationen .............................................................. 7-3
7.1.2 Übersicht der Orientierungstransformation TRAORI ................................................................. 7-7
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)............................................................... 7-9
7.2.1 Allgemeine Zusammenhänge Kardanischer Werkzeugkopf...................................................... 7-9
7.2.2 Drei, Vier, und Fünf- Achs-Transformation (TRAORI) ............................................................. 7-12
7.2.3 Varianten der Orientierungsprogrammierung und Grundstellung (OTIRESET) ...................... 7-13
7.2.4 Programmierung der Werkzeugorientierung (A..., B..., C..., LEAD, TILT)............................... 7-15
7.2.5 Stirnfräsen (3D-Fräsen A4, B4, C4, A5, B5, C5) ..................................................................... 7-21
7.2.6 Bezug der Orientierungsachsen (ORIWKS, ORIMKS) ............................................................ 7-22
7.2.7 Programmierung der Orientierungsachsen (ORIAXES, ORIVECT, ORIEULER, ORIRPY).... 7-25

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 ix
Inhaltsverzeichnis

7.2.8 Orientierungsprogrammierung entlang einer Kegelmantelfläche


(ORIPLANE, ORICONxx)......................................................................................................... 7-27
7.2.9 Orientierungsvorgabe zweier Kontaktpunke (ORICURVE, PO[XH]=, PO[YH]=,
PO[ZH]=) .................................................................................................................................. 7-30
7.3 Orientierungspolynome (PO[Winkel], PO[Koordinate])............................................................ 7-33
7.4 Drehungen der Werkzeugorientierung (ORIROTA, ORIROTR/TT, ORIROTC,
THETA) .................................................................................................................................... 7-35
7.5 Bahnrelative Orientierungen .................................................................................................... 7-37
7.5.1 Orientierungsarten relativ zur Bahn ......................................................................................... 7-37
7.5.2 Bahnrelative Drehung der Werkzeugorientierung (ORIPATH, ORIPATHS, Drehwinkel)........ 7-39
7.5.3 Bahnrelative Interpolation der Werkzeugdrehung (ORIROTC, THETA) ................................. 7-40
7.5.4 Glättung des Orientierungsverlaufs (ORIPATHS A8=, B8=, C8=)........................................... 7-42
7.6 Komprimierung der Orientierung COMPON (A..., B..., C..., THETA) ...................................... 7-43
7.7 Online-Werkzeuglängenkorrektur (TOFFON, TOFFOF) ......................................................... 7-47
7.8 Kinematische Transformation .................................................................................................. 7-49
7.8.1 Fräsbearbeitung an Drehteilen (TRANSMIT)........................................................................... 7-49
7.8.2 Zylindermanteltransformation (TRACYL)................................................................................. 7-53
7.8.3 Schräge Achse (TRAANG) ...................................................................................................... 7-61
7.8.4 Schräge Achse programmieren (G05, G07) ............................................................................ 7-64
7.9 Kartesisches PTP-Fahren ........................................................................................................ 7-66
7.9.1 PTP bei TRANSMIT ................................................................................................................. 7-70
7.10 Randbedingungen bei der Anwahl einer Transformation ........................................................ 7-74
7.11 Transformation abwählen (TRAFOOF).................................................................................... 7-75
7.12 Verkettete Transformationen (TRACON, TRAFOOF) ............................................................. 7-75
7.13 Umschaltbare Geometrieachsen (GEOAX) ............................................................................. 7-77
8 Werkzeugkorrekturen ............................................................................................................................. 8-1
8.1 Korrekturspeicher....................................................................................................................... 8-1
8.2 Sprachbefehle zur Werkzeugverwaltung ................................................................................... 8-4
8.3 Online-Werkzeugkorrektur (PUTFTOCF, PUTFTOC, FTOCON, FTOCOF) ............................. 8-7
8.4 Werkzeugradiuskorrektur konstant halten (CUTCONON) ....................................................... 8-12
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...).............................................. 8-14
8.5.1 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC, CUT3DF, CUT3DFS, CUT3DFF) .............. 8-14
8.5.2 3D-Werkzeugradiuskorrektur: Umfangfräsen, Stirnfräsen....................................................... 8-16
8.5.3 Werkzeugtypen/Werkzeugwechsel mit veränderten Abmessungen (G40, G41, G42) ........... 8-17
8.5.4 Korrektur auf der Bahn, Bahnkrümmung, Eintauchtiefe ISD und Werkzeugzustellung
(CUT3DC) ................................................................................................................................ 8-19
8.5.5 Innenecken/Außenecken und Schnittpunktverfahren (G450/G451)........................................ 8-21
8.5.6 3D-Umfangsfräsen mit Begrenzungsflächen allgemeine Anwendung .................................... 8-23
8.5.7 Berücksichtigung einer Begrenzungsfläche (CUT3DCC, CUT3DCCD) .................................. 8-23
8.6 Werkzeugorientierung (ORIC, ORID, OSOF, OSC, OSS, OSSE, OSD, OST) ....................... 8-27
8.7 Freie D-Nummernvergabe, Schneidennummer ....................................................................... 8-33
8.7.1 Freie D-Nummernvergabe, Schneidennummer (Adresse CE) ................................................ 8-33
8.7.2 D-Nummern prüfen (CHKDNO) ............................................................................................... 8-34
8.7.3 D-Nummern umbenennen (GETDNO, SETDNO).................................................................... 8-34
8.7.4 T-Nummer zur vorgegebenen D-Nummer ermitteln (GETACTTD) ......................................... 8-35

Arbeitsvorbereitung
x Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Inhaltsverzeichnis

8.7.5 D-Nummern ungültig setzen (DZERO) .................................................................................... 8-36


8.8 Werkzeugträgerkinematik ........................................................................................................ 8-37

9 Bahnverhalten ........................................................................................................................................ 9-1


9.1 Tangentialsteuerung (TANG, TANGON, TANGOF, TANGDEL) ............................................... 9-1
9.2 Mitschleppen (TRAILON, TRAILOF) ......................................................................................... 9-7
9.3 Kurventabellen (CTAB) ............................................................................................................ 9-11
9.3.1 Kurventabellen: Allgemeine Zusammenhänge ........................................................................ 9-11
9.3.2 Kurventabellen Schwerpunktfunktionen (CTABDEF, CATBEND, CTABDEL) ........................ 9-12
9.3.3 Kurventabellen Formen (CTABDEL, CTABNOMEM, CTABFNO, CTABID, CTABLOCK,
CTABUNLOCK) ....................................................................................................................... 9-17
9.3.4 Verhalten an den Rändern von Kurventabellen (CTABTSV, CATBTSP, CTABMIN,
CTABMAX)............................................................................................................................... 9-22
9.3.5 Zugriff auf Kurventabellenpositionen und Tabellensegmente (CTAB, CTABINV,
CTABSSV, CATBSEV) ............................................................................................................ 9-26
9.4 Axiale Leitwertkopplung (LEADON, LEADOF) ........................................................................ 9-29
9.5 Vorschubverlauf (FNORM, FLIN, FCUB, FPO) ....................................................................... 9-35
9.6 Programmablauf mit Vorlaufspeicher (STARTFIFO, STOPFIFO, STOPRE).......................... 9-42
9.7 Bedingt unterbrechbare Programmabschnitte (DELAYFSTON, DELAYFSTOF).................... 9-44
9.8 Programmstelle für SERUPRO verhindern (IPTRLOCK, IPTRUNLOCK)............................... 9-49
9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN, RMB, RME) ..................... 9-51
10 Bewegungssynchronaktionen ............................................................................................................... 10-1
10.1 Struktur, allgemeine Grundlagen ............................................................................................. 10-1
10.1.1 Programmierung und Befehlselemente ................................................................................... 10-3
10.1.2 Gültigkeitsbereich: Identifikationsnummer ID .......................................................................... 10-4
10.1.3 Zyklische Prüfung der Bedingung ............................................................................................ 10-5
10.1.4 Aktionen ................................................................................................................................... 10-7
10.2 Operatoren für Bedingungen und Aktionen ............................................................................. 10-8
10.3 Hauptlaufvariablen für Synchronaktionen................................................................................ 10-9
10.3.1 Allgemeines zu Systemvariablen ............................................................................................. 10-9
10.3.2 Implizite Typwandlung ........................................................................................................... 10-10
10.3.3 GUD-Variablen für Synchronaktionen ................................................................................... 10-12
10.3.4 Default-Achsbezeichner (NO_AXIS) ...................................................................................... 10-13
10.3.5 Synchronaktions-Marker $AC_MARKER[n]........................................................................... 10-14
10.3.6 Synchronaktions-Parameter $AC_PARAM[n]........................................................................ 10-15
10.3.7 Rechenparameter $R[n]......................................................................................................... 10-16
10.3.8 NC-Maschinen- und NC-Settingdaten lesen und schreiben.................................................. 10-17
10.3.9 Timer-Variable $AC_Timer[n] ................................................................................................ 10-18
10.3.10 FIFO-Variable $AC_FIFO1[n] ... $AC_FIFO10[n] .................................................................. 10-19
10.3.11 Auskunft über Satztypen im Interpolator................................................................................ 10-21
10.4 Aktionen in Synchronaktionen ............................................................................................... 10-23
10.4.1 Übersicht ................................................................................................................................ 10-23
10.4.2 Ausgabe von Hilfsfunktionen ................................................................................................. 10-26
10.4.3 Einlesesperre setzen (RDISABLE) ........................................................................................ 10-27
10.4.4 Vorlaufstopp aufheben (STOPREOF) ................................................................................... 10-28
10.4.5 Restweglöschen (DELDTG)................................................................................................... 10-28
10.4.6 Polynomdefinition (FCTDEF) ................................................................................................. 10-30

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 xi
Inhaltsverzeichnis

10.4.7 Synchronfunktion (SYNFCT).................................................................................................. 10-32


10.4.8 Abstandsregelung mit begrenzter Korrektur $AA_OFF_MODE............................................. 10-35
10.4.9 Online-Werkzeugkorrektur (FTOC)........................................................................................ 10-37
10.4.10 Online-Werkzeuglängenkorrektur ($AA_TOFF[Werkzeugrichtung])...................................... 10-39
10.4.11 Positionierbewegungen.......................................................................................................... 10-40
10.4.12 Achse positionieren (POS)..................................................................................................... 10-41
10.4.13 Position im vorgegebenen Referenzbereich (POSRANGE) .................................................. 10-42
10.4.14 Achse starten/stoppen (MOV)................................................................................................ 10-43
10.4.15 Achstausch (RELEASE, GET) ............................................................................................... 10-44
10.4.16 Axialer Vorschub (FA) ............................................................................................................ 10-48
10.4.17 SW-Endschalter ..................................................................................................................... 10-48
10.4.18 Achskoordinierung ................................................................................................................. 10-48
10.4.19 Istwertsetzen (PRESETON)................................................................................................... 10-49
10.4.20 Spindelbewegungen............................................................................................................... 10-50
10.4.21 Mitschleppen (TRAILON, TRAILOF)...................................................................................... 10-51
10.4.22 Leitwertkopplung (LEADON, LEADOF) ................................................................................. 10-53
10.4.23 Messen (MEAWA, MEAC) ..................................................................................................... 10-55
10.4.24 Initialisierung von Feld-Variablen mit SET, REP.................................................................... 10-56
10.4.25 Wartemarken setzen/löschen mit SETM, CLEARM .............................................................. 10-57
10.4.26 Fehlerreaktionen bei Zyklenalarmen SETAL ......................................................................... 10-57
10.4.27 Fahren auf Festanschlag (FXS und FOCON/FOCOF) .......................................................... 10-58
10.4.28 Bestimmung des Bahntangentenwinkels in Synchronaktionen ............................................. 10-60
10.4.29 Bestimmung des aktuellen Override ...................................................................................... 10-60
10.4.30 Auslastungsauswertung über Zeitbedarf der Synchronaktionen ........................................... 10-61
10.5 Technologiezyklen ................................................................................................................. 10-63
10.5.1 Kontext-Variable ($P_TECCYCLE)........................................................................................ 10-65
10.5.2 Call by Value Parameter ........................................................................................................ 10-66
10.5.3 Default-Parameter-Initialisierung ........................................................................................... 10-67
10.5.4 Steuerung der Abarbeitung von Technologiezyklen (ICYCOF, ICYCON)............................. 10-67
10.5.5 Kaskadierungen von Technologiezyklen ............................................................................... 10-68
10.5.6 Technologiezyklen in satzweisen Synchronaktionen............................................................. 10-69
10.5.7 IF-Kontrollstrukturen............................................................................................................... 10-69
10.5.8 Sprunganweisungen (GOTO, GOTOF, GOTOB) .................................................................. 10-69
10.5.9 Sperren, freischalten, unterbrechen (LOCK, UNLOCK, RESET) .......................................... 10-70
10.6 Synchronaktion löschen (CANCEL)....................................................................................... 10-71
10.7 Randbedingungen.................................................................................................................. 10-72
11 Pendeln ................................................................................................................................................ 11-1
11.1 Asynchrones Pendeln .............................................................................................................. 11-1
11.2 Über Synchronaktionen gesteuertes Pendeln ......................................................................... 11-6
12 Stanzen und Nibbeln ............................................................................................................................ 12-1
12.1 Aktivierung, Deaktivierung ....................................................................................................... 12-1
12.1.1 Stanzen und Nibbeln ein oder aus (SPOF, SON, PON, SONS, PONS, PDELAYON/OF) ..... 12-1
12.2 Automatische Wegaufbereitung............................................................................................... 12-4
12.2.1 Wegaufteilung bei Bahnachsen ............................................................................................... 12-7
12.2.2 Wegaufteilung bei Einzelachsen.............................................................................................. 12-9

Arbeitsvorbereitung
xii Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Inhaltsverzeichnis

13 Weitere Funktionen............................................................................................................................... 13-1


13.1 Achsfunktionen (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING) ................................... 13-1
13.2 Vorhandenen NC-Sprachumfang prüfen (STRINGIS)............................................................. 13-3
13.3 Funktionsaufruf ISVAR ( ) und Maschinendaten Array-Index lesen ........................................ 13-7
13.4 Kompensationskennlinien einlernen (QECLRNON, QECLRNOF) ........................................ 13-10
13.5 Synchronspindel .................................................................................................................... 13-12
13.5.1 Synchronspindel (COUPDEF, COUPDEL, COUPON/ONC, COUPOF/OFS, COUPRES) ... 13-12
13.6 Elektronisches Getriebe (EG) ................................................................................................ 13-24
13.6.1 Elektronisches Getriebe definieren (EGDEF) ........................................................................ 13-24
13.6.2 Elektronisches Getriebe einschalten (EGON) ....................................................................... 13-25
13.6.3 Elektronisches Getriebe ausschalten (EGOFS) .................................................................... 13-29
13.6.4 Umdrehungsvorschub (G95)/Elektronisches Getriebe (FPR) ............................................... 13-30
13.7 Erweitertes Stillsetzen und Rückziehen................................................................................. 13-30
13.7.1 Antriebsautarke Reaktionen auf ESR .................................................................................... 13-32
13.7.2 NC-geführte Reaktionen auf Rückziehen .............................................................................. 13-34
13.7.3 NC-geführte Reaktionen auf Stillsetzen................................................................................. 13-38
13.7.4 Generatorbetrieb/Zwischenkreisstützung .............................................................................. 13-38
13.7.5 Antriebsautarkes Stillsetzen................................................................................................... 13-39
13.7.6 Antriebsautarkes Rückziehen ................................................................................................ 13-40
13.8 Link-Kommunikation .............................................................................................................. 13-40
13.8.1 Zugriff auf einen NCU-globalen Speicherbereich .................................................................. 13-41
13.9 Achscontainer (AXCTWE, AXCTWED) ................................................................................. 13-42
13.10 Programmlaufzeit/Werkstückzähler ....................................................................................... 13-45
13.10.1 Allgemeines............................................................................................................................ 13-45
13.10.2 Programmlaufzeit................................................................................................................... 13-45
13.10.3 Werkstückzähler .................................................................................................................... 13-46
13.11 Fenster aus dem Teileprogramm interaktiv aufrufen Befehl (MMC)...................................... 13-48
13.12 Beeinflussung der Bewegungsführung .................................................................................. 13-49
13.12.1 Prozentuale Ruckkorrektur (JERKLIM).................................................................................. 13-49
13.12.2 Prozentuale Geschwindigkeitskorrektur (VELOLIM) ............................................................. 13-50
13.13 Master-/Slave-Verband (MASLDEF, MASLDEL, MASLOF, MASLOF, MASLOFS) ............. 13-51
14 Eigene Abspanprogramme ................................................................................................................... 14-1
14.1 Unterstützende Funktion für das Abspanen ............................................................................ 14-1
14.2 Konturaufbereitung (CONTPRON) .......................................................................................... 14-2
14.3 Konturdecodierung (CONTDCON) .......................................................................................... 14-9
14.4 Schnittpunkt zweier Konturelemente (INTERSEC)................................................................ 14-13
14.5 Verfahren eines Konturelementes aus der Tabelle (EXECTAB) ........................................... 14-15
14.6 Kreisdaten berechnen (CALCDAT) ....................................................................................... 14-15
15 Tabellen................................................................................................................................................ 15-1
15.1 Liste der Anweisungen............................................................................................................. 15-1

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 xiii
Inhaltsverzeichnis

A Anhang ...................................................................................................................................................A-1
A.1 Liste der Abkürzungen ...............................................................................................................A-2
A.2 Publikationsspezifische Information...........................................................................................A-7
A.2.1 Korrekturblatt - Faxvorlage.........................................................................................................A-7
A.2.2 Dokumentationsübersicht...........................................................................................................A-9
Glossar ......................................................................................................................................... Glossar-1
Index................................................................................................................................................ Index-1

Arbeitsvorbereitung
xiv Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung 1
1.1 1.1 Variable und Rechenparameter (Anwenderdefinierte Variable,
Rechenparameter, Systemvariable)

Funktion
Durch Verwendung von Variablen statt fester Werte können Sie ein Programm flexibel
gestalten. Sie können damit auf Signale reagieren, wie z. B. Messwerte, oder Sie können
durch Verwendung von Variablen als Sollwert dasselbe Programm für verschiedene
Geometrien einsetzen.
Zusammen mit Variablenrechnung und Programmsprüngen eröffnet dies dem geschickten
Programmierer die Möglichkeit, ein hochflexibles Programmarchiv anzulegen und damit viel
Programmierarbeit zu sparen.

Variablenarten
Die Steuerung unterscheidet 3 Arten von Variablen:

Anwenderdefinierte Variable Vom Anwender mit Namen und Typ definierte Variable, z. B.
Rechenparameter.
Rechenparameter Spezielle, vordefinierte Rechenvariable, für die die Adresse R mit
nachfolgender Nummer vorgesehen ist. Die vordefinierten
Rechenvariablen sind vom Typ REAL.
Systemvariable Von der Steuerung zur Verfügung gestellte Variable, die im
Programm verarbeitet werden können (schreiben, lesen).
Systemvariable bieten Zugriff auf Nullpunktverschiebungen,
Werkzeugkorrekturen, Istwerte, Messwerte der Achsen, Zustände
der Steuerung usw.
(Bedeutung der Systemvariablen siehe Anhang).

Variablentypen

Typ Bedeutung Wertebereich


INT ganzzahlige (Integer-)Werte mit ±(231 - 1)
Vorzeichen
REAL Real-Zahlen (gebrochene Zahlen mit ±(10-300 … 10+300)
Dezimalpunkt, LONG REAL nach
IEEE)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-1
Flexible NC-Programmierung
1.1 Variable und Rechenparameter (Anwenderdefinierte Variable, Rechenparameter, Systemvariable)

BOOL Wahrheitswerte: TRUE (1) und 1.0


FALSE (0)
CHAR Zeichen ASCII, entsprechend Code 0 … 255
STRING Zeichenkette, Zeichenzahl in […], Folge von Werten mit 0 … 255
maximal 200 Zeichen
AXIS nur Achsnamen (Achsadressen) alle im Kanal vorhandenen
Achsbezeichner
FRAME geometrische Angaben für
Verschieben, Drehen, Skalieren,
Spiegeln, siehe Kapitel "Frames"

Rechenvariable
Unter der Adresse R stehen ohne weitere Definition standardmäßig 100 Rechenvariable
vom Typ REAL zur Verfügung.
Die genaue Anzahl der Rechenvariablen (maximal 32535) wird über Maschinendaten
festgelegt.
Beispiel: R10=5

Systemvariable
Die Steuerung stellt Systemvariable zur Verfügung, die in allen laufenden Programmen zur
Verfügung stehen und verarbeitet werden können.
Systemvariable liefern Maschinen- und Steuerungszustände. Sie sind teilweise nicht
beschreibbar.
Überblick über die Systemvariablen
Zur besonderen Kennzeichnung beginnt der Name von Systemvariablen immer mit einem
"$"-Zeichen. Danach folgen die spezifischen Bezeichnungen.

1. Buchstabe Bedeutung
$M Maschinendaten
$S Settingdaten
$T Werkzeugverwaltungsdaten
$P Programmierte Werte
$A Aktuelle Werte
$V Service-Daten

2. Buchstabe Bedeutung
N NCK-global
C kanalspezifisch
A achsspezifisch

Beispiel: $AA_IM
Bedeutet: Aktueller axialer Istwert im Maschinenkoordinatensystem.

Arbeitsvorbereitung
1-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.2 Variablendefinition (DEF Anwenderdefinierte Variable LUD, GUD, PUD)

1.2 1.2 Variablendefinition (DEF Anwenderdefinierte Variable LUD, GUD,


PUD)

Funktion
Neben den vordefinierten Variablen kann der Programmierer eigene Variablen definieren
und mit Werten belegen.
Die lokalen Variablen (LUD) gelten nur in dem Programm, in dem sie definiert sind.
Die globalen Variablen (GUD) gelten in allen Programmen.
Über Maschinendatum werden die im Hauptprogramm definierten lokalen
Anwendervariablen (LUD) zu programmglobalen Anwendervariablen (PUD) umdefiniert,
siehe Anwenderbeispiel.
Maschinenhersteller
siehe Angaben des Maschinenherstellers.

Programmierung
Variablentyp INT
DEF INT name
oder
DEF INT name=Wert
Variablentyp REAL
DEF REAL name
oder
DEF REAL name1,name2=3,name4
oder
DEF REAL name[feldindex1,feldindex2]
Variablentyp BOOL
DEF BOOL name
Variablentyp CHAR
DEF CHAR name
oder
DEF CHAR name[feldindex]=("A","B",…)
Variablentyp STRING
DEF STRING[Stringlänge] name
Variablentyp AXIS
DEF AXIS name
oder
DEF AXIS name[feldindex]
Variablentyp FRAME
DEF FRAME name

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-3
Flexible NC-Programmierung
1.2 Variablendefinition (DEF Anwenderdefinierte Variable LUD, GUD, PUD)

Hinweis
Wird einer Variablen bei der Definition kein Wert zugewiesen, so wird sie vom System mit
Null vorbelegt.
Variable müssen vor ihrer Verwendung am Anfang des Programms definiert werden. Die
Definition muss in einem eigenen Satz erfolgen; pro Satz kann nur ein Variablentyp definiert
werden.

Parameter

INT Variablentyp Integer, d. h. ganzzahlig


REAL Variablentyp Real, d. h. gebrochene Zahl mit Dezimalpunkt
BOOL Variablentyp Bool, d. h. 1 oder 0 (TRUE oder FALSE)
CHAR Variablentyp Char, d. h. ein Zeichen entsprechend
ASCII-Code (0 bis 255)
STRING Variablentyp String, d. h. Zeichenkette
AXIS Variablentyp Axis, d. h. Achsadressen und Spindeln
FRAME Variablentyp Frame, d. h. geometrische Angaben

Beispiel

Variablentyp Bedeutung
INT
DEF INT ANZAHL Es wird eine Variable vom Typ Integer mit dem
Namen ANZAHL angelegt.
Vorbelegung vom System mit Null.
DEF INT ANZAHL=7 Es wird eine Variable vom Typ Integer mit dem
Namen ANZAHL angelegt. Die Variable hat den
Anfangswert 7.
REAL
DEF REAL TIEFE Es wird eine Variable vom Typ Real mit dem
Namen TIEFE angelegt.
Vorbelegung vom System mit Null (0.0).
DEF REAL TIEFE=6.25 Es wird eine Variable vom Typ Real mit dem
Namen TIEFE angelegt. Die Variable hat den
Anfangswert 6.25.
DEF REAL TIEFE=3.1,LAENGE=2,ANZAHL In einer Zeile können auch mehrere Variable
definiert werden.
BOOL
DEF BOOL WENN_ZUVIEL Es wird eine Variable vom Typ Bool mit dem
Namen WENN_ZUVIEL angelegt.
Vorbelegung vom System mit Null (FALSE).
DEF BOOL WENN_ZUVIEL=1 oder Es wird eine Variable vom Typ Bool mit dem
DEF BOOL WENN_ZUVIEL=TRUE oder Namen WENN_ZUVIEL angelegt.
DEF BOOL WENN_ZUVIEL=FALSE
CHAR

Arbeitsvorbereitung
1-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.2 Variablendefinition (DEF Anwenderdefinierte Variable LUD, GUD, PUD)

DEF CHAR GUSTAV_1=65 Den Variablen vom Typ Char kann ein Codewert
für das entsprechende ASCII-Zeichen oder
DEF CHAR GUSTAV_1="A" das ASCII-Zeichen direkt zugewiesen werden
(Codewert 65 entspricht dem Buchstaben "A").
STRING
DEF STRING[6] MUSTER_1="ANFANG" Die Variablen vom Typ String können eine
Zeichenkette aufnehmen. Die maximale Anzahl
der Zeichen steht in eckiger Klammer hinter dem
Variablentyp.
AXIS
DEF AXIS ACHSNAME=(X1) Die Variablen vom Typ AXIS haben den Namen
ACHSNAME und enthalten den Achsbezeichner
eines Kanals - hier X1.
(Achsnamen mit erweiterter Adresse stehen in
runden Klammern.)
FRAME
DEF FRAME SCHRAEG_1 Die Variablen vom Typ FRAME haben den Namen
SCHRAEG_1.

Hinweis
Eine Variable vom Typ AXIS nimmt Achsbezeichner und Spindelbezeichner eines Kanals
auf.
Hinweis
Achsnamen mit erweiterter Adresse müssen in runden Klammern geschrieben werden.

Beispiel Lokale (LUD) und programmglobale Anwendervariablen (PUD) umdefinieren


Wenn sie im Hauptprogramm definiert sind, gelten sie auch in allen Ebenen der
aufgerufenen Unterprogramme. Sie werden mit Teileprogrammstart angelegt und mit
Teileprogrammende bzw. RESET gelöscht.
Wenn das Maschinendatum $MN_LUD_EXTENDED_SCOPE gesetzt ist, ist es nicht mehr
möglich, in Haupt- und Unterprogrammen eine Variable mit dem selben Namen zu
definieren.

$MN_LUD_EXTENDED_SCOPE=1
PROC MAIN ;Hauptprogramm
DEF INT VAR1 ;PUD-Definition
... ;Unterprogrammaufruf
SUB2
...
M30

PROC SUB2 ;Unterprogramm SUB2


DEF INT VAR2 ;LUD-DEFINITION
...
IF (VAR1==1) ;PUD lesen

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-5
Flexible NC-Programmierung
1.2 Variablendefinition (DEF Anwenderdefinierte Variable LUD, GUD, PUD)

VAR1=VAR1+1 ;PUD lesen und schreiben


VAR2=1 ;LUD schreiben
ENDIF ;Unterprogrammaufruf
SUB3
...
M17

PROC SUB3 ;Unterprogramm SUB3


...
IF (VAR1==1) ;PUD lesen
VAR1=VAR1+1 ;PUD lesen und schreiben
VAR2=1 ;Fehler: LUD aus SUB2 nicht bekannt
ENDIF
...
M17

Variablennamen
Ein Variablenname besteht aus maximal 31 Zeichen. Die beiden ersten Zeichen müssen ein
Buchstabe oder ein Unterstrich sein.
Das "$"-Zeichen kann nicht für anwenderdefinierte Variable benutzt werden, weil dieses
Zeichen für die Systemvariablen verwendet wird.

Beispiel Programmlokale Variablen

DEF INT ZAEHLER


SCHLEIFE: G0 X… ;Schleife
ZAEHLER=ZAEHLER+1
IF ZAEHLER<50 GOTOB SCHLEIFE
M30

Arbeitsvorbereitung
1-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.3 Felddefinitionen (DEF, SET, REP)

Beispiel Abfrage auf vorhandene Geometrieachsen

DEF AXIS ABSZISSE ;1. Geometrieachse


IF ISAXIS(1) == FALSE GOTOF WEITER
ABSZISSE = $P_AXN1
WEITER:

Beispiel Indirekte Spindel Programmierung

DEF AXIS SPINDLE


SPINDLE=(S1)
OVRA[SPINDLE]=80 ;Spindeloverride = 80%
SPINDLE=(S3)

1.3 1.3 Felddefinitionen (DEF, SET, REP)

Funktion
Ein Feld ist ein Speicherbock, das über den Variablentyp mit Name und Größe definiert wird.
Es können Felder mit maximal 2 Dimensionen definiert werden.

Hinweis
Maximale Feldgröße
Bei der Definition von Feldern beträgt die maximale Feldgröße der 1. und 2. Dimension
32767 für den Feldindex [n, m].
Initialisierung von Feldern
Den Feldelementen können Initialisierungswerte zugeordnet werden:
● während des Programmlaufs
oder
● auch bereits bei der Felddefinition.
Bei zweidimensionalen Feldern wird der rechte Feldindex zuerst inkrementiert.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-7
Flexible NC-Programmierung
1.3 Felddefinitionen (DEF, SET, REP)

Programmierung
DEF CHAR NAME[n,m]
oder
DEF INT NAME[n,m]
oder
DEF REAL NAME[n,m]
oder
DEF AXIS NAME[n,m]
oder
DEF FRAME NAME[n,m]
oder
DEF STRING[Stringlänge] NAME[m]
oder
DEF BOOL[n,m]
● Initialisierung mit Wertelisten; SET
Möglichkeiten bei der Felddefinition
DEF Typ VARIABLE = SET(WERT)
DEF Typ FELD[n,m] = SET(WERT, Wert, …)
oder
DEF Typ VARIABLE = Wert
DEF Typ FELD[n,m] = (Wert, Wert, …)

Hinweis
Bei der Felddefinition können Sie SET optional angeben.
Möglichkeiten im Programmlauf
FELD[n,m]= SET(Wert, Wert, Wert,…)
FELD[n,m]= SET(Ausdruck, Ausdruck, Ausdruck,…)
● Initialisierung mit gleichen Werten, REP
Möglichkeiten bei der Felddefinition
Beim Anlegen der Variablen "Feld" werden mit
DEF Typ FELD[n,m] = REP(Wert) alle Elemente initialisiert. Mit
DEF Typ FELD[n,m] = REP(Wert, AnzahlFeldelemente) wird nur die mit
"AnzahlFeldelemente" definierte Anzahl von Feldelementen mit "Wert" initialisiert.
Die Initialisierung beginnt mit dem Feldindex 0. Die restlichen Elemente der Variablen
werden mit Null vorbelegt. Ist "AnzahlFeldelemente" = 0, wird das gesamte
Variablenfeld mit Null vorbesetzt, wie z. B. für alle 30 Feldelemente von varName:
DEF REAL varName[30] =REP(3.5, 0)

Arbeitsvorbereitung
1-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.3 Felddefinitionen (DEF, SET, REP)

Hinweis
Variable vom Typ FRAME lassen sich nicht initialisieren.
Wird für die Bereichsangabe ein Wert kleiner Null oder größer als die Anzahl der
Feldelemente programmiert, so wird ein Alarm "Wertebereich überschritten" ausgegeben.
Möglichkeiten im Programmlauf
FELD[n,m] = REP(Wert)
FELD[n,m] = REP(Ausdruck)
FELD[n,m] = REP(Wert, AnzahlFeldelemente)
FELD[n,m] = REP(Ausdruck, AnzahlFeldelemente)
Wenn die Bereichsangabe "AnzahlFeldelemente" = 0 ist, bleiben die aktuellen Werte
aller Feldvariablen unverändert z. B.:
varName [12] =REP(44.5, 0)

Hinweis
Variable vom Typ FRAME sind zugelassen und können hierdurch sehr einfach initialisiert
werden.

Parameter

DEF Variablentyp Felddefinition


SET WERT oder Ausdruck Initialisierung mit Wertelisten bei der
Felddefinition oder im Programmlauf
REP WERT oder Ausdruck Initialisierung mit gleichen Werten bei der
Felddefinition oder im Programmlauf
REP WERT, AnzahlFeldelem. Initialisierung mit gleichen Werten für eine
bestimmte Anzahl der Feldelemente, die überschrieben
werden sollen. Der Wert Null des zweiten Parameters
z B. REP(10,0) führt dazu, dass Initialisierungswerte
nicht beschreiben werden.
CHAR NAME[n,m] Variablentyp
INT NAME[n,m] (CHAR, INTEGER, REAL, AXIS, FRAME, BOOL)
REAL NAME[n,m]
AXIS NAME[n,m]
FRAME NAME[n,m]
BOOL[n,m]
STRING[Stringlänge] NAME[m] Der Datentyp STRING kann nur mit eindimensionalen
Feldern definiert werden.
Die Stringlänge wird nach dem Datentyp STRING
angegeben.
NAME Variablenname
Typ VARIABLE Variablentyp
(CHAR, INTEGER, REAL, AXIS, FRAME, BOOL)
TYP FELD[n,m] = SET(Wert, Initialisierung aller Elemente eines Feldes mit
Wert, ...) aufgelisteten Werten bei der Felddefinition
TYP FELD[n,m] = REP(Wert) Initialisierung aller Elemente eines Feldes mit dem
gleichen Wert bei der Felddefinition

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-9
Flexible NC-Programmierung
1.3 Felddefinitionen (DEF, SET, REP)

FELD[n,m] = SET(Wert, Wert, Initialisierung aller Elemente eines Feldes mit


..) FELD[n,m] = SET(Ausdruck, aufgelisteten Werten im Programmlauf
...)
FELD[n,m] = REP(Wert) Initialisierung aller Elemente eines Feldes mit dem
FELD[n,m] = REP(Ausdruck) gleichen Wert im Programmlauf
FELD[n, m] Feldindex
n Feldgröße für 1. Dimension
m Feldgröße für 2. Dimension
maximale Feldgröße z.B. DEF INT NAME[32767]
AnzahlFeldelem. Anzahl der Feldelemente, die mit "Wert" vom REP-
Befehl überschrieben werden sollen. Werden alle
Feldelemente mit "Wert" überschrieben.

Felder mit Variablen vom Typ STRING dürfen nur eindimensional sein.
Feldindex [n,m]
Auf die Elemente eines Feldes kann über den Feldindex zugegriffen werden. Über diesen
Feldindex können die Feldelemente entweder mit Werten belegt oder die Werte der
Feldelemente gelesen werden.
Das erste Feldelement beginnt mit dem Index [0,0]; bei einer Feldgröße von [3,4] ist
beispielsweise der maximal mögliche Feldindex [2,3].

)HOGLQGH[
>QP@
P

    P



    P


Q Q Q Q 
 Q P

Arbeitsvorbereitung
1-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.3 Felddefinitionen (DEF, SET, REP)

Speicherbedarf

Variablentyp Speicherbedarf pro Element


BOOL 1 Byte
CHAR 1 Byte
INT 4 Bytes
REAL 8 Bytes
STRING Stringlänge + 1
FRAME ∼ 400 Bytes, abhängig von Achsanzahl
AXIS 4 Bytes

Hinweis
Die maximale Feldgröße bestimmt die Größe der Speicherblöcke, in denen der
Variablenspeicher verwaltet wird. Sie sollte nicht größer als notwendig eingestellt werden.
Standard: 812 Bytes
Werden keine großen Felder definiert, wählen Sie: 256 Bytes.
Beispiel: Definition von BOOL - Feldern
Globale Anwenderdaten sollen PLC-Maschinendaten für das Ein-/Ausschalten der
Steuerung enthalten.
Beispiel Definition von Feldern mit maximaler Feldgröße für die 1. und 2. Dimension
DEF INT NAME[32767,32767]

Beispiel Initialisierung kompletter Variablenfelder


Die jeweils aktuelle Belegung sehen Sie in der Zeichnung.

N10 DEF REAL FELD1[10,3] = SET(0, 0, 0, 10, 11, 12, 20, 20, 20, 30, 30, 30, 40, 40,
40,)
N20 FELD1[0,0] = REP(100)
N30 FELD1[5,0] = REP(-100)
N40 FELD1[0,0] = SET(0, 1, 2, -10, -11, -12, -20, -20, -20, -30, , , ,
-40, -40, -50, -60, -70)
N50 FELD1[8,1] = SET(8.1, 8.2, 9.0, 9.1, 9.2)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-11
Flexible NC-Programmierung
1.3 Felddefinitionen (DEF, SET, REP)

)HOGLQGH[ 

1,QLVWLDOLVLHUXQJEHL 11,QLVWLDOLVLHUXQJPLW  11 ,QLWLDOLVLHUXQJPLW


 'HILQLWLRQ LGHQWLVFKHP:HUW YHUVFKLHGHQHQ:HUWHQ

        
         
         
         
         
         
         
         
         
         
         
'LH)HOGHOHPHQWH>@ 'LH)HOGHOHPHQWH>@
ELV>@ZXUGHQPLWGHP ELV>@ZXUGHQPLWGHP
'HIDXOWZHUW  LQLVWLDOLVLHUW 'HIDXOWZHUW  
LQLVWLDOLVLHUW'LH)HOGHOH

PHQWH>@ELV>@ZXUGHQ
QLFKWYHU¦QGHUW

Initialisierung mit Wertelisten bei der Felddefinition, SET


● Es werden so viele Feldelemente zugewiesen, wie Initialisierungswerte programmiert
sind.
● Feldelemente ohne Werte (Lücken in der Werteliste) werden automatisch mit 0 belegt.
● Bei Variablen vom Typ AXIS sind Lücken in der Werteliste nicht zugelassen.
● Werden mehr Werte programmiert als restliche Feldelemente vorhanden sind, löst das
System Alarm aus.
Beispiel:
DEF REAL FELD[2,3]=(10, 20, 30, 40)

Initialisierung mit Wertelisten im Programmlauf, SET


● Die Initialisierung erfolgt wie bei der Definition.
● Als Werte sind hier auch Ausdrücke möglich.
● Die Initialisierung beginnt bei den programmierten Feldindizes. Hierdurch lassen sich
auch gezielt Teilfelder mit Werten belegen.
Beispiel: Zuweisung von Ausdrücken
DEF INT FELD[5, 5]
FELD[0,0] = SET(1, 2, 3, 4, 5)

Arbeitsvorbereitung
1-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.3 Felddefinitionen (DEF, SET, REP)

FELD[2,3] = SET(VARIABLE, 4*5.6)


Bei Achsvariablen wird der Achsindex nicht durchlaufen:
Beispiel: Initialisierung in einer Zeile
$MA_AX_VELO_LIMIT[1, AX1] = SET(1.1, 2.2, 3.3)
Entspricht:
$MA_AX_VELO_LIMIT[1,AX1] = 1.1
$MA_AX_VELO_LIMIT[2,AX1] = 2.2
$MA_AX_VELO_LIMIT[3,AX1] = 3.3

Initialisierung mit gleichen Werten bei der Felddefinition, REP


Alle Feldelemente werden mit dem gleichen Wert (Konstante) belegt.
Variable vom Typ FRAME lassen sich nicht initialisieren.
Beispiele:
DEF REAL FELD5[10,3] = REP(9.9)
Die Bereiche der Variablenfelder varName[0] bis varName[3] mit 3,5 initialisieren:
DEF REAL varName[30] = REP(3.5, 4)
Feldvariable bereichsweise auf einen programmierten Wert setzen:
varName[5] = REP(4.5, 10) ;varName[5] bis varName[14] auf den Wert 4 setzen
R-Parameter bereichsweise auf bestimmte Werte setzen:
R10 = REP(2.4, 15) ;R10 bis R24 auf den Wert 2,4 setzten

Initialisierung mit gleichen Werten im Programmlauf


● Als Werte sind hier auch Ausdrücke möglich.
● Alle Feldelemente werden mit dem gleichen Wert initialisiert.
● Die Initialisierung beginnt bei den programmierten Feldindizes. Hierdurch lassen sich
auch gezielt Teilfelder mit Werten belegen.
Beispiel: Initialisierung aller Elemente mit einem Wert
DEF FRAME FRM[10]
FRM[5] = REP(CTRANS (X,5))

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-13
Flexible NC-Programmierung
1.4 Indirekte Programmierung

1.4 1.4 Indirekte Programmierung

Funktion
Durch indirekte Programmierung können Programme sehr universell genutzt werden. Dabei
wird die erweiterte Adresse (Index) jeweils durch eine Variable geeigneten Typs ersetzt.
Indirekte G-Code-Programmierung
Die indirekte Programmierung von G-Codes über Variable ermöglicht eine effektive
Zyklenprogrammierung. Hierfür stehen zwei Parameter
G-Code-Gruppen mit Integer-Konstante
G-Code-Nummern mit Variable vom Typ Integer/Real
zur Verfügung.

Programmierung
ADRESSE[INDEX]
oder
G[<Gruppen-Index>] = <Integer/Real-Variable>
Indirekte Programmierung von G-Codes über Variable für eine effektive
Zyklenprogrammierung

Parameter
Alle Adressen sind parametrierbar außer:
● N - Satznummer
● L - Unterprogramm
Für alle einstellbaren Adressen ist keine indirekte Programmierung möglich.
Beispiel: X[1] anstelle von X1 ist nicht zulässig.

ADRESSE Adresse mit Parameterangabe als Index


[INDEX] Index Variable z. B. Spindel Nr., Achse ....
G<Gruppen-Index G-Code-Gruppen: Integer-Konstante mit der die
G-Code-Gruppe ausgewählt wird
<Integer/Real-Variable> G-Code-Nummern: Variable vom Typ Integer oder Real mit
der die G-Code-Nummer ausgewählt wird

Gültige G-Code-Gruppen
Es können nur modal wirksame G-Code-Gruppen indirekt programmiert werden.
Satzweise wirksame G-Code-Gruppen werden mit dem Alarm 12470 abgelehnt.
Gültige G-Code-Nummern
In der indirekten G-Code-Programmierung sind keine Arithmetik-Funktionen erlaubt.
Die G-Code Nummer muss in einer Variablen vom Typ Integer oder Real abgelegt sein.
Ungültige G-Code-Nummern werden mit dem Alarm 12475 abgelehnt.

Arbeitsvorbereitung
1-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.4 Indirekte Programmierung

Eine notwendige Berechnung der G-Code-Nummer muss in einer eigenen


Teileprogrammzeile vor der indirekten G-Code-Programmierung erfolgen.

Hinweis
Alle gültigen G-Codes sind in der PG, im Kapitel "Liste der G-Funktionen/Wegbedingungen"
in verschiedenen Gruppen dargestellt. Siehe /PG/ Programmierhandbuch Grundlagen,
"Tabellen"

Beispiel

Spindel
S1=300 ;direkte Programmierung
DEF INT SPINU=1 ;indirekte Programmierung:
S[SPINU]=300 ;Drehzahl 300 U/min für die Spindel,
;deren Nummer in der Variablen SPINU
;abgelegt ist (in diesem Beispiel 1).
Vorschub
FA[U]=300 ;direkte Programmierung
DEF AXIS AXVAR2=U ;indirekte Programmierung:
FA[AXVAR2]=300 ;Vorschub für Positionierachse, deren
;Adressname in der Variablen vom Typ AXIS mit
;dem Variablennamen AXVAR2 abgelegt ist.
Messwert
$AA_MM[X] ;direkte Programmierung
DEF AXIS AXVAR3=X ;indirekte Programmierung:
$AA_MM[AXVAR3] ;Messwert in Maschinenkoordinaten für Achse,
;deren Name in der Variablen AXVAR3
;abgelegt ist.
Feldelement
DEF INT FELD1[4,5] ;direkte Programmierung
DEFINE DIM1 AS 4 ;indirekte Programmierung:
DEFINE DIM2 AS 5 ;Bei Felddimensionen müssen Feldgrößen
DEF INT FELD[DIM1,DIM2] ;als feste Werte angegeben werden.

FELD[DIM1-1,DIM2-1]=5
Achsanweisung mit Achsvariablen
X1=100 X2=200 ;direkte Programmierung
DEF AXIS AXVAR1 AXVAR2 ;indirekte Programmierung:
AXVAR1=(X1) AXVAR2=(X2) ;Definition der Variablen
AX[AXVAR1]=100 AX[AXVAR2]=200 ;Zuweisung der Achsnamen Verfahren der
;Achsen, die in den Variablen hinterlegt sind
;auf 100 bzw. 200.
Interpolationsparameter mit
Achsvariablen
G2 X100 I20 ;direkte Programmierung

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-15
Flexible NC-Programmierung
1.4 Indirekte Programmierung

DEF AXIS AXVAR1=X ;indirekte Programmierung:


G2 X100 IP[AXVAR1]=20 ;Definition und Zuweisung des Achsnamens
;Indirekte Programmierung der
;Mittelpunktsangabe
Indirekter Unterprogrammaufruf
CALL "L" << R10 ;Aufruf des Programms, dessen Nummer in R10
;steht

Hinweis
Auch R-Parameter können als eindimensionales Feld mit verkürzter Schreibweise
verstanden werden (R10 entspricht R[10]).

Beispiel Indirekte G-Code-Programmierung


Einstellbare Nullpunktverschiebung G-Code-Gruppe 8

N1010 DEF INT INT_VAR


N1020 INT_VAR = 2
...
N1090 G[8] = INT_VAR G1 X0 Y0 ;G54
N1100 INT_VAR = INT_VAR + 1 ;G-Code-Berechnung
N1110 G[8] = INT_VAR G1 X0 Y0 ;G55

Ebenenanwahl G-Code-Gruppe 6

N2010 R10 = $P_GG[6] ;G-Code für aktuelle Ebene lesen


...
N2090 G[6] = R10 ;G17

Arbeitsvorbereitung
1-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.4 Indirekte Programmierung

1.4.1 String als Teileprogrammzeile abarbeiten (EXECSTRING)

Funktion
Mit dem Teileprogrammbefehl EXECSTRING wird als Parameter ein String übergeben, der
die eigentlich auszuführende Teileprogrammzeile enthält.

Programmierung
EXECSTRING (<String-Variable>)

Parameter

EXECSTRING Übergabe einer String-Variablen mit der auszuführenden


Teileprogrammzeile
(<String-Variable>) Parameter mit eigentlich auszuführender
Teileprogrammzeile

Hinweis
Alle Teileprogramm-Konstrukte können abgesetzt werden, die im Programmteil eines
Teileprogramms programmiert werden können. Ausgeschlossen sind damit PROC- und
DEF-Anweisungen sowie generell die Verwendung in INI- und DEF-Files.

Beispiel Indirekte Teileprogrammzeile

N100 DEF STRING[100] BLOCK ;String-Variable zur Aufnahme der


;Teileprogrammzeile
N110 DEF STRING[10] MFCT1 = "M7"

N200 EXECSTRING(MFCT1 << " M4711") ;Teileprogrammzeile "M7 M4711" ausführen

N300 R10 = 1
N310 BLOCK = "M3"
N320 IF(R10)
N330 BLOCK = BLOCK << MFCT1
N340 ENDIF
N350 EXECSTRING(BLOCK) ;Teileprogrammzeile "M3 M4711" ausführen

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-17
Flexible NC-Programmierung
1.5 Zuweisungen

1.5 1.5 Zuweisungen

Funktion
Den Variablen/Rechenparametern können im Programm Werte eines passenden Typs
zugewiesen werden.

Programmierung
Die Zuweisung erfordert dabei stets einen eigenen Satz; pro Satz sind mehrere
Zuweisungen möglich. Die Zuweisung zu Achsadressen (Verfahranweisungen) erfordert
einen getrennten Satz gegenüber den Variablenzuweisungen.

Parameter
Zuweisung an String-Variable
Innerhalb einer CHAR- oder STRING-Kette wird zwischen Groß- und Kleinschreibung
unterschieden.
Sollen ' oder " Bestandteil der Zeichenkette sein, so ist dies in '…' zu klammern.
Beispiel:
MSG("Viene lavorata l'''ultima figura")
gibt den Text 'Viene lavorata l'ultima figura' am Bildschirm aus.
Nicht darstellbare Zeichen können als Binär- oder Hexadezimal-Konstante in den String
aufgenommen werden.

Beispiel

R1=10.518 R2=4 VARI1=45 ;Zuweisung eines numerischen Werts


X=47.11 Y=R2
R1=R3 VARI1=R4 ;Zuweisung einer Variablen passenden Typs
R4=-R5 R7=-VARI8 ;Zuweisung mit entgegengesetztem Vorzeichen
;(nur bei Typ INT und REAL erlaubt)

Arbeitsvorbereitung
1-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.6 Rechenoperationen /Rechenfunktionen

1.6 1.6 Rechenoperationen/Rechenfunktionen

Funktion
Die Rechenfunktionen sind vorrangig für R-Parameter und Variable (oder Konstante und
Funktionen) vom Typ REAL anwendbar. Zulässig sind auch die Typen INT und CHAR.
Rechenfunktion ATAN2( , )
Die Funktion berechnet aus zwei aufeinander senkrecht stehenden Vektoren den Winkel des
Summenvektors. Das Ergebnis liegt im Bereich von vier Quadranten (–° < 0 < +180°). Basis
für den Winkelbezug ist immer der 2. Wert in positiver Richtung.

5 $7$1 

9HNWRU

:LQNHO r
9HNWRU 

5 $7$1 

:LQNHO r
9HNWRU

 9HNWRU

Genauigkeiten bei Vergleichsbefehlen einstellbar mit TRUNC( )


Siehe "Genauigkeitskorrektur bei Vergleichsbefehlen"
Minimum, Maximum und Bereich von Variablen
Siehe "Minimum, Maximum und Bereich von Variablen (MINVAL, MAXVAL und BOUND)"

Programmierung
Bei den Rechenoperatoren gilt die übliche mathematische Schreibweise. Prioritäten in der
Abarbeitung werden durch runde Klammern gesetzt. Für die trigonometrischen und deren
inverse Funktionen gilt die Gradangabe (rechter Winkel = 90°).

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-19
Flexible NC-Programmierung
1.6 Rechenoperationen /Rechenfunktionen

Parameter
Operatoren/Rechenfunktionen

+ Addition
- Subtraktion
* Multiplikation
/ Division
Achtung: (Typ INT)/(Typ INT)=(Typ REAL); Beispiel: 3/4 = 0.75
DIV Division, für Variablentyp INT und REAL
Achtung: (Typ INT)DIV(Typ INT)=(Typ INT); Beispiel: 3 DIV 4 = 0
MOD Modulo-Division (nur für Typ INT) liefert Rest einer INT-Division;
Beispiel 3 MOD 4=3
: Kettungsoperator (bei FRAME-Variablen)
Sin () Sinus
COS () Cosinus
TAN () Tangens
ASIN () Arcussinus
ACOS () Arcuscosinus
ATAN2 (,) Arcustangens2
SQRT () Quadratwurzel
ABS () Betrag
POT () 2. Potenz (Quadrat)
TRUNC () ganzzahliger Teil
ROUND () Runden auf ein Ganzzahliges
LN () natürlicher Logarithmus
EXP () Exponentialfunktion
MINVAL () kleinerer Wert zweier Variablen
MAXVAL () größerer Wert zweier Variablen
BOUND () Variablenwert der im definierten Wertebereich liegt
CTRANS () Verschiebung
CROT () Drehung
CSCALE () Maßstabsveränderung
CMIRROR () Spiegeln

Arbeitsvorbereitung
1-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.6 Rechenoperationen /Rechenfunktionen

Beispiel Initialisierung kompletter Variablenfelder

R1=R1+1 ;neues R1 = altes R1 +1


R1=R2+R3 R4=R5-R6 R7=R8*R9
R10=R11/R12 R13=SIN(25.3)
R14=R1*R2+R3 ;Punktrechnung geht vor Strichrechnung
R14=(R1+R2)*R3 ;Klammern werden zuerst berechnet
R15=SQRT(POT(R1)+POT(R2)) ;innere Klammern werden zuerst aufgelöst
;R15 = Quadratwurzel aus (R1+R2)
RESFRAME= FRAME1:FRAME2 ;Mit dem Kettungsoperator werden Frames zu
FRAME3=CTRANS(…):CROT(…) ;einem resultierenden Frame verknüpft oder
;den Frame-Komponenten Werte zugewiesen innere

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-21
Flexible NC-Programmierung
1.7 Vergleichs - und logische Operationen

1.7 1.7 Vergleichs- und logische Operationen

Funktion
Vergleichsoperationen können z. B. zur Formulierung einer Sprungbedingung benutzt
werden. Vergleichbar sind dabei auch komplexe Ausdrücke.
Die Vergleichsoperationen sind für Variable vom Typ CHAR, INT, REAL und BOOL
anwendbar. Beim Typ CHAR wird der Codewert verglichen.
Bei den Typen STRING, AXIS und FRAME sind möglich: == und <>, die für Operationen vom
Typ STRING auch in Synchronaktionen angewendet werden können.
Das Ergebnis von vergleichenden Operationen ist immer vom Typ BOOL.
Logische Operatoren dienen zur Verknüpfung von Wahrheitswerten.
Die Logischen Operationen sind nur auf Variable vom Typ BOOL anwendbar. Über interne
Typenkonvertierung sind sie auch auf die Datentypen CHAR, INT, und REAL anwendbar.
Bei den logischen (boolschen) Operationen gilt für die Datentypen BOOL, CHAR, INT und
REAL:
● 0 entspricht: FALSE
● ungleich 0 entspricht: TRUE
Bitweise logische Operatoren
Mit den Variablen vom Typ CHAR und INT können auch bitweise logische Operationen
vorgenommen werden. Gegebenenfalls erfolgt eine Typkonvertierung automatisch.

Programmierung
Vergleichsoperatoren
==
oder
<>
oder
>
oder
<
oder
>=
oder
<=
Logische Operatoren
AND
oder
OR
oder

Arbeitsvorbereitung
1-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.7 Vergleichs - und logische Operationen

NOT
oder
XOR
Zwischen BOOLSCHEN Operanden und Operatoren müssen Zwischenräume geschrieben
werden.
Bitweise Logische Operatoren
B_AND
oder
B_OR
oder
B_NOT
oder
B_XOR

Parameter
Bedeutung der Vergleichsoperatoren

== gleich
<> ungleich
> größer
< kleiner
>= größer oder gleich
<= kleiner oder gleich

Bedeutung der logischen Operatoren

AND UND
OR ODER
NOT Negation
XOR Exklusiv-ODER

In arithmetischen Ausdrücken kann durch runde Klammern die Abarbeitungsreihenfolge aller


Operatoren festgelegt und damit von den normalen Prioritätsregeln abgewichen werden.
Bedeutung der bitweisen logischen Operatoren

B_AND bitweises UND


B_OR bitweises ODER
B_NOT bitweise Negation
B_XOR bitweises Exklusiv-ODER

Hinweis
Der Operator B_NOT bezieht sich auf nur einen Operanden;
dieser steht nach dem Operator.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-23
Flexible NC-Programmierung
1.7 Vergleichs - und logische Operationen

Beispiel Vergleichsoperatoren
IF R10>=100 GOTOF ZIEL
oder
R11=R10>=100
IF R11 GOTOF ZIEL
Das Ergebnis des Vergleichs R10>=100 wird zunächst in R11 zwischengespeichert.

Beispiel Logische Operatoren


IF (R10<50) AND ($AA_IM[X]>=17.5) GOTOF ZIEL
oder
IF NOT R10 GOTOB START
NOT bezieht sich nur auf einen Operanden.

Beispiel Bitweise logische Operatoren


IF $MC_RESET_MODE_MASK B_AND 'B10000' GOTOF ACT_PLANE

Arbeitsvorbereitung
1-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.7 Vergleichs - und logische Operationen

1.7.1 Genauigkeitskorrektur bei Vergleichsfehlern (TRUNC)

Funktion
Der TRUNC-Befehl schneidet den mit einem Genauigkeitsfaktor multiplizierten Operanden
ab.
Einstellbare Genauigkeit bei Vergleichsbefehlen
Teileprogrammdaten vom Typ REAL werden intern im IEEE-Format mit 64 Bit dargestellt.
Aufgrund dieser Darstellungsform können Dezimalzahlen ungenau abgebildet werden, die
bei einem Vergleich mit ideal gerechneten Werten zu unerwarteten Ergebnissen führen
können.
Relative Gleichheit
Damit die durch die Darstellungsform hervorgerufenen Ungenauigkeiten den Programmfluß
nicht verfälschen, wird bei den Vergleichsbefehlen nicht auf absolute Gleichheit, sondern auf
eine relative Gleichheit geprüft.

Programmierung
Genauigkeitskorrektur bei Vergleichsfehlern
TRUNC (R1*1000)

Parameter

TRUNC( ) Abschneiden der Nachkommastellen

Berücksichtigte relative Gleichheit von 10-12 bei


● Gleichheit: (==)
● Ungleichheit: (<>)
● Größer-Gleich: (>=)
● Kleiner-Gleich: (<=)
● Größer/Kleiner: (><) mit absoluter Gleichheit
● Größer: (>)
● Kleiner: (<)
Kompatibilität
Aus Kompatibilitätsgründen kann die Prüfung auf relative Gleichheit bei (>) und (<) durch
Setzen von Maschinendatum MD 10280: PROG_FUNCTION_MASK Bit0 = 1 deaktiviert
werden.

Hinweis
Vergleiche mit Daten vom Typ REAL sind aus den genannten Gründen generell mit einer
gewissen Ungenauigkeit behaftet. Bei nicht akzeptablen Abweichungen muss auf INTEGER-
Rechnung ausgewichen werden, indem die Operanden mit einem Genauigkeitsfaktor
multipliziert und danach mit TRUNC abgeschnitten werden.
Synchronaktionen

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-25
Flexible NC-Programmierung
1.7 Vergleichs - und logische Operationen

Das beschriebene Verhalten der Vergleichsbefehle gilt auch bei Synchronaktionen.

Beispiel Genauigkeitsbetrachtungen

N40 R1=61.01 R2=61.02 R3=0.01 ;Zuweisung der Anfangswerte


N41 IF ABS(R2-R1) > R3 GOTOF FEHLER ;Sprung würde bisher ausgeführt werden
N42 M30 ;Programmende
N43 FEHLER: SETAL(66000)
R1=61.01 R2=61.02 R3=0.01 ;Zuweisung der Anfangswerte
R11=TRUNC(R1*1000) R12=TRUNC(R2*1000) ;Genauigkeitskorrektur
R13=TRUNC(R3*1000)
IF ABS(R12-R11) > R13 GOTOF FEHLER ;Sprung wird nicht mehr ausgeführt
M30 ;Programmende
FEHLER: SETAL(66000)

Beispiel Quotient beider Operanden bilden und auswerten

R1=61.01 R2=61.02 R3=0.01 ;Zuweisung der Anfangswerte


IF ABS((R2-R1)/R3)-1) > 10EX-5 GOTOF ;Sprung wird nicht ausgeführt
FEHLER
M30 ;Programmende
FEHLER: SETAL(66000)

1.7.2 Minimum, Maximum und Bereich von Variablen (MINVAL, MAXVAL, BOUND)

Funktion
Mit den beiden Funktionen MINVAL und MAXVAL können zwei Variable miteinander
verglichen werden und als Ergebnis wird der kleinere Wert bzw. größere Wert
zurückgeliefert.
Mit der Funktion BOUND wird geprüft, ob der Wert einer Prüfvariablen innerhalb des
definierten Wertebereichs liegt. Ist dies der Fall, so wird der Wert der Variablen
zurückgegeben. Wenn der Wert der Prüfvariablen größer als der Maximalwert ist, dann wird
der Maximalwert ausgegeben. Analog wird beim Unterschreiten des Minimalwertes der
Minimalwert geliefert.
Verhalten bei Gleichheit
Bei Gleichheit wird bei den Funktionen MINVAL, MAXVAL dieser gleiche Wert geliefert und
bei BOUND wird der Wert der zu prüfenden Variablen wieder zurückgegeben.

Programmierung
Minimum

Arbeitsvorbereitung
1-26 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.7 Vergleichs - und logische Operationen

Ergebnis kleinerer Wert = <MINVAL>(<Variable1>, <Variable2>)


Maximum
Ergebnis größerer Wert = <MAXVAL>(<Variable1>, <Variable2>)
Bereich
Rückgabewert = <BOUND>(<Variable Min>, <Variable Max>, <Variable
Prüf>)

Hinweis
Die drei Funktionen MINVAL( ), MAXVAL( ) und BNOUND( ) können auch in
Synchronaktionen programmiert werden.

Parameter

MINVAL( ) ermittelt kleineren Wert zweier Variablen


MAXVAL( ) ermittelt größerer Wert zweier Variablen
BOUND( ) prüft, ob die zu prüfende Variable innerhalb eines
definierten Wertebereichs Min / Max liegt
Variable1, Variable2 erste Variable und zweite Variable deren Wert auf
Minimum / Maximum geprüft wird
Variable Min Unterer Definitionsbereich für den Wert der Prüfvariablen
Variable Max Oberer Definitionsbereich für den Wert der Prüfvariablen
Variable Prüf Prüfvariable, ob dessen Wert im Definitionsbereich liegt

Beispiele

DEF REAL rVar1 = 10.5, rVar2 = 33.7, rVar3, rVar4, rVar5, rValMin, rValMax, rRetVar
rValMin = MINVAL(rVar1, rVar2) ;rValMin wird auf den Wert 10.5 gesetzt
rValMax = MAXVAL(rVar1, rVar2) ;rValMax wird auf den Wert 33.7 gesetzt

rVar3 = 19.7
rRetVar = BOUND(rVar1, rVar2, rVar3) ;rVar3 liegt innerhalb der Grenzen,
;rRetVar wird auf 19.7 gesetzt
rVar3 = 1.8
rRetVar = BOUND(rVar1, rVar2, rVar3) ;rVar3 liegt unterhalb der Minimumgrenze,
;rRetVar wird auf 10.5 gesetzt
rVar3 = 45.2
rRetVar = BOUND(rVar1, rVar2, rVar3) ;rVar3 liegt oberhalb der Maximumgrenze,
;rRetVar wird auf 33.7 gesetzt

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-27
Flexible NC-Programmierung
1.8 Priorität der Operationen

1.8 1.8 Priorität der Operationen

Funktion
Jedem Operator ist eine Priorität zugeordnet. Bei der Auswertung eines Ausdrucks werden
stets die Operatoren höherer Priorität zuerst angewandt. Bei gleichrangigen Operatoren
erfolgt die Auswertung von links nach rechts.
In arithmetischen Ausdrücken kann durch runde Klammern die Abarbeitungsreihenfolge aller
Operatoren festgelegt und damit von den normalen Prioritätsregeln abgewichen werden.

Reihenfolge der Operatoren


Von der höchsten zur niedrigsten Priorität

1. NOT, B_NOT Verneinung, bitweise Verneinung


2. *, /, DIV, MOD Multiplikation, Division
3. +, – Addition, Subtraktion
4. B_AND bitweises UND
5. B_XOR bitweises exklusives ODER
6. B_OR bitweises ODER
7. AND UND
8. XOR exklusives ODER
9. OR ODER
10. << Verkettung von Strings, Ergebnistyp STRING
11. ==, <>, >, <, >=, <= Vergleichsoperatoren

Hinweis
Der Kettungsoperator ":" für Frames darf nicht mit anderen Operatoren in einem Ausdruck
vorkommen. Eine Prioritätseinstufung für diesen Operator ist deshalb nicht erforderlich.

Beispiel If-Anweisung
If (otto==10) and (anna==20) gotof end

Arbeitsvorbereitung
1-28 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.9 Mögliche Typenkonvertierungen

1.9 1.9 Mögliche Typenkonvertierungen

Funktion
Typkonvertierung bei Zuweisung
Der konstante Zahlenwert, die Variable oder der Ausdruck, der einer Variablen zugewiesen
wird, muss mit dem Typ dieser Variablen verträglich sein. Ist dies gegeben, so wird bei der
Zuweisung der Typ automatisch umgewandelt.

Mögliche Typkonvertierungen

nach REAL INT BOOL CHAR STRING AXIS FRAME


von
REAL ja ja* ja1) ja* – – –
INT ja ja ja1) ja2) – – –
BOOL ja ja ja ja ja – –
CHAR ja ja ja1) ja ja – –
STRING – – ja4) ja3) ja – –
AXIS – – – – – ja –
FRAME – – – – – – ja
Erklärungen

* Bei Typumwandlung von REAL nach INT wird bei gebrochenem Wert >= 0.5
aufgerundet, ansonsten wird abgerundet (vgl. Funktion ROUND)
1) Wert <> 0 entspricht TRUE, Wert == 0 entspricht FALSE
2) Wenn der Wert im zulässigen Zahlenbereich liegt
3) Wenn nur 1 Zeichen
4) Stringlänge 0 = >FALSE, ansonsten TRUE

Hinweis
Ist beim Konvertieren ein Wert größer als der Zielbereich, erfolgt eine Fehlermeldung.
Treten in einem Ausdruck gemischte Typen auf, so wird eine Typanpassung automatisch
durchgeführt. Typumwandlungen sind auch in Synchronaktionen möglich, siehe Kapitel
Bewegungssynchronaktionen, Implizite Typwandlung".

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-29
Flexible NC-Programmierung
1.10 Stringoperationen

1.10 1.10 Stringoperationen

Überblick
Neben den in diesem Kapitel beschriebenen klassischen Operationen "Zuweisung" und
"Vergleich" stehen weitere Möglichkeiten für Stringmanipulationen zur Verfügung:

Parameter

Typkonvertierung nach STRING:


STRING_ERG = <<bel._Typ1) Ergebnistyp: STRING
STRING_ERG = AXSTRING (AXIS) Ergebnistyp: STRING

Typkonvertierung von STRING:


BOOL_ERG = ISNUMBER (STRING) Ergebnistyp: BOOL
REAL_ERG = NUMBER (STRING) Ergebnistyp: REAL
AXIS_ERG = AXNAME (STRING Ergebnistyp: AXIS

Verkettung von Strings:


bel._Typ1) << bel. Typ1) Ergebnistyp: STRING

Wandlung in Klein-/Großbuchstaben:
STRING_ERG = TOUPPER (STRING) Ergebnistyp: STRING
STRING_ERG = TOLOWER (STRING) Ergebnistyp: STRING

Länge des Strings:


INT_ERG = STRLEN (STRING) Ergebnistyp: INT

Zeichen/String in String suchen:


INT_ERG = INDEX (STRING, CHAR) Ergebnistyp: INT
INT_ERG = RINDEX (STRING, CHAR) Ergebnistyp: INT
INT_ERG = MINDEX (STRING, STRING) Ergebnistyp: INT
INT_ERG = MATCH (STRING, STRING) Ergebnistyp: INT

Auswahl eines Teilstrings:


STRING_ERG = SUBSTR (STRING, INT) Ergebnistyp: INT
STRING_ERG = SUBSTR (STRING, INT, Ergebnistyp: INT
INT)

Selektion eines Einzelzeichens:


CHAR_ERG = STRINGVAR [IDX] Ergebnistyp: CHAR
CHAR_ERG = STRINGFELD [IDX_FELD, Ergebnistyp: CHAR
IDX_CHAR]
1)
"bel._Typ" steht für die Variablen-Typen INT, REAL, CHAR, STRING und BOOL.

Arbeitsvorbereitung
1-30 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.10 Stringoperationen

Sonderbedeutung des 0-Zeichens


Das 0-Zeichen wird intern als Enderkennung eines Strings interpretiert. Wird ein Zeichen
durch das 0-Zeichen ersetzt, wird der String damit verkürzt.

Beispiel

DEF STRING[20] STRG = "Achse .


steht"
STRG[6] = "X" ;liefert die Meldung "Achse X steht"
MSG(STRG)
STRG[6] = 0
MSG(STRG) ;liefert die Meldung "Achse"

1.10.1 Typenkonvertierung nach STRING

Funktion
Hierdurch lassen sich Variablen unterschiedlichen Typs als Bestandteil einer Meldung
(MSG) nutzen.
Erfolgt bei Verwendung des Operators << implizit für die Datentypen INT, REAL, CHAR und
BOOL (siehe "Verkettung von Strings").
Ein INT-Wert wird in die normal lesbare Form umgewandelt. Bei REAL-Werten werden bis
zu 10 Nachkommastellen angegeben.

Programmierung
Syntax

STRING_ERG = AXSTRING (AXIS) Ergebnistyp: STRING

Semantik:
AXSTRING (AXIS) liefert den angegebenen Achsbezeichner als String.

Parameter
Variable vom Typ AXIS können durch die Funktion AXSTRING nach STRING gewandelt
werden.
FRAME-Variable können nicht konvertiert werden.
Beispiel:
MSG("Position:"<<$AA_IM[X])

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-31
Flexible NC-Programmierung
1.10 Stringoperationen

Beispiel

DEF STRING[32] STRING_ERG


STRING_ERG = AXSTRING(X) ;jetzt: STRING_ERG == "X"

1.10.2 Typenkonvertierung von STRING

Funktion
Mit der Funktion NUMBER wird von STRING nach REAL konvertiert.
Liefert ISNUMBER den Wert FALSE, wird bei AUFRUF von NUMBER mit dem gleichen
Parameter Alarm ausgelöst.
Mit der Funktion AXNAME kann eine String in den Datentyp AXIS konvertiert werden. Kann
der String keinem projektierten Achsbezeichner zugeordnet werden, wird ein Alarm
ausgelöst.

Programmierung
Syntax

REAL_ERG = NUMBER (STRING) Ergebnistyp: REAL


BOOL_ERG = ISNUMBER (STRING) Ergebnistyp: BOOL
AXIS_ERG = AXNAME (STRING) Ergebnistyp: AXIS

Semantik:
NUMBER (STRING) liefert die durch den String dargestellte Zahl als REAL-Wert zurück.
ISNUMBER (STRING) liefert TRUE, wenn der String eine nach den Regeln der Sprache
gültige REAL-Zahl darstellt. Damit kann überprüft werden, ob der String in eine gültige Zahl
gewandelt werden kann.
AXNAME (STRING) wandelt den angegebenen String in einen Achsbezeichner.

Beispiel

DEF BOOL BOOL_ERG


DEF REAL REAL_ERG
DEF AXIS AXIS_ERG
BOOL_ERG = ISNUMBER ("1234.9876Ex-7") ;jetzt: BOOL_ERG == TRUE
BOOL_ERG = ISNUMBER ("1234XYZ") ;jetzt: BOOL_ERG == FALSE
REAL_ERG = NUMBER ("1234.9876Ex-7") ;jetzt: REAL_ERG == 1234.9876Ex-7
AXIS_ERG = AXNAME("X") ;jetzt: AXIS_ERG == X

Arbeitsvorbereitung
1-32 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.10 Stringoperationen

1.10.3 Verkettung von Strings

Funktion
Diese Funktionalität schafft die Möglichkeit, einen String aus einzelnen Bestandteilen
zusammensetzen zu können.
Realisiert wird die Verkettung über den Operator: <<. Dieser Operator hat für alle
Kombinationen der Basistypen CHAR, BOOL, INT, REAL und STRING als Zieltyp STRING.
Eine eventuell notwendige Konvertierung wird nach den bestehenden Regeln
vorgenommen.

Programmierung
Syntax

bel._Typ << bel._Typ Ergebnistyp: STRING

Semantik
Die gegebenen Strings (ggf. der implizit gewandelte andere Typ) werden miteinander
verkettet.
Dieser Operator ist auch alleinig als sog. "unäre" Variante verfügbar. So ist es möglich, eine
explizite Typwandlung nach STRING auszuführen (nicht für FRAME und AXIS).
Die Typen FRAME und AXIS können nicht mit diesem Operator verwendet werden.
Syntax

<< bel._Typ Ergebnistyp: STRING

Semantik
Der angegebene Typ wird implizit in den Typ STRING konvertiert.
Beispielsweise läßt sich so eine Meldung oder ein Kommando aus Textlisten
zusammensetzen und Parameter (etwa ein Bausteinname) einfügen:
MSG(STRG_TAB[LOAD_IDX]<<BAUSTEIN_NAME)

Vorsicht
Die Zwischenergebnisse bei der Stringverkettung dürfen die maximale Stringlänge nicht
überschreiten.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-33
Flexible NC-Programmierung
1.10 Stringoperationen

Beispiel Verkettung von Strings

DEF INT IDX = 2


DEF REAL VALUE = 9.654
DEF STRING[20]STRG = "INDEX:2"
IF STRG == "Index:" <<IDX GOTOF NO_MSG
MSG ("Index:" <<IDX <<"/Wert:" <<VALUE) ;Anzeige: "Index: 2/Wert: 9.654"
NO_MSG:

1.10.4 Wandlung in Klein-/Großbuchstaben

Funktion
Diese Funktionalität erlaubt es, alle Buchstaben eines Strings in eine einheitliche Darstellung
zu wandeln.
Syntax

STRING_ERG = TOUPPER (STRING) Ergebnistyp: STRING


STRING_ERG = TOLOWER (STRING) Ergebnistyp: STRING

Semantik
Alle Kleinbuchstaben werden in Groß- bzw. Kleinbuchstaben gewandelt.

Beispiel
Da es auch möglich ist, Benutzereingaben an der HMI anzustoßen, kann eine einheitliche
Darstellung mit Klein- oder Großbuchstaben erreicht werden:
DEF STRING [29] STRG

IF "[Link]" == TOUPPER (STRG) GOTOF LOAD_LEARN

Arbeitsvorbereitung
1-34 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.10 Stringoperationen

1.10.5 Länge des Strings

Funktion
Diese Funktionalität erlaubt es, die Länge eines Strings zu bestimmen.
Syntax

INT_ERG = STRLEN (STRING) Ergebnistyp: INT

Semantik
Es wird eine Anzahl der Zeichen zurückgegeben, die - vom Anfang des Strings an gezählt -
kein 0-Zeichen sind.

Beispiel
Dies erlaubt es z. B. im Zusammenhang mit dem weiter unten beschriebenen
Einzelzeichenzugriff, das Ende des Strings zu bestimmen:
IF(STRLEN (BAUSTEIN_NAME) > 10) GOTOF FEHLER

1.10.6 Zeichen/String in String suchen

Funktion
Diese Funktionalität erlaubt es, einzelne Zeichen bzw. einen String in einem weiteren String
zu suchen. Die Funktionsergebnisse geben an, an welcher Position des Strings das
Zeichen/der String im zu untersuchenden String gefunden wurde.

Programmierung
Syntax

INT_ERG = INDEX (STRING,CHAR) Ergebnistyp: INT


INT_ERG = RINDEX (STRING,CHAR) Ergebnistyp: INT
INT_ERG = MINDEX (STRING,STRING) Ergebnistyp: INT
INT_ERG = MATCH (STRING,STRING) Ergebnistyp: INT

Semantik
Suchfunktionen: Sie liefern die Position im String (erster Parameter) zurück, wo die Suche
erfolgreich war. Kann das Zeichen/der String nicht gefunden werden, wird der Wert -1
zurückgegeben. Das erste Zeichen hat dabei die Position 0.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-35
Flexible NC-Programmierung
1.10 Stringoperationen

Parameter

INDEX sucht das als zweiten Parameter


angegebene Zeichen (von vorne) im ersten
Parameter.
RINDEX sucht das als zweiten Parameter
angegebene Zeichen (von hinten) im ersten
Parameter.
MINDEX entspricht der Funktion INDEX, außer,
dass eine Liste von Zeichen (als String)
übergeben wird, von denen der Index des
ersten gefundenen Zeichens zurückgegeben
wird.
MATCH sucht einen String in einem String.

So lassen sich Strings nach bestimmten Kriterien zerlegen, etwa an Positionen mit
Leerzeichen oder Pfadtrennzeichen ("/").

Beispiel Zerlegen einer Eingabe in Pfad- und Bausteinnamen

DEF INT PFADIDX, PROGIDX


DEF STRING[26] EINGABE
DEF INT LISTIDX
EINGABE = "/_N_MPF_DIR/_N_EXECUTE_MPF"
LISTIDX = MINDEX (EINGABE, "M,N,O,P") + 1 Als Wert in LISTIDX wird 3
zurückgeliefert; da "N" das erste Zeichen
im Parameter EINGABE, aus der
Auswahlliste von vorne, ist.
PFADIDX = INDEX (EINGABE, "/") +1 ;damit gilt: PFADIDX = 1
PROGIDX = RINDEX (EINGABE, "/") +1 ;damit gilt: PROGIDX = 12
;mit Hilfe der im nächsten Abschnitt
;eingeführten Funktion SUBSTR läßt sich
;die Variable EINGABE in die Komponenten
;"Pfad";und "Baustein" zerlegen:
VARIABLE = SUBSTR (EINGABE, PFADIDX, ;liefert dann "_N_MPF_DIR"
PROGIDX-PFADIDX-1)
VARIABLE = SUBSTR (EINGABE, PROGIDX) ;liefert dann "_N_EXECUTE_MPF"

Arbeitsvorbereitung
1-36 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.10 Stringoperationen

1.10.7 Auswahl eines Teilstrings

Funktion
Diese Funktionalität erlaubt es, einen Teilstring aus einem String herauszulösen. Dazu wird
der Index des ersten Zeichens und ggf. die gewünschte Länge angegeben. Wird die
Längeninformation nicht angegeben, ist der Reststring gemeint.

Programmierung
Syntax

STRING_ERG = SUBSTR (STRING,INT) Ergebnistyp: INT


STRING_ERG = SUBSTR(STRING,INT, INT) Ergebnistyp: INT

Semantik
Im ersten Fall wird der Teilstring ab der Position, die durch den ersten Parameter festgelegt
ist, bis zum Ende des Strings zurückgegeben.
Im zweiten Fall ist der Ergebnisstring auf die maximale Länge, gegeben durch den dritten
Parameter, begrenzt.
Liegt die Anfangsposition hinter dem Stringende, wird der Leerstring (" ") zurückgegeben.
Ist die Anfangsposition oder die Länge negativ, wird ein Alarm ausgelöst.

Beispiel

DEF STRING [29] ERG


ERG = SUBSTR ("QUITTUNG: 10 bis 99", 10, ;damit gilt: ERG == "10"
2)

1.10.8 Selektion eines Einzelzeichens

Funktion
Diese Funktionalität erlaubt es, die einzelnen Zeichen eines Strings zu selektieren. Dies trifft
sowohl auf den lesenden als auch auf den schreibenden Zugriff zu.

Programmierung
Syntax

CHAR_ERG = STRINGVAR [IDX] Ergebnistyp: CHAR


CHAR_ERG = STRINGFELD [IDX_FELD, IDX_CHAR] Ergebnistyp: CHAR

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-37
Flexible NC-Programmierung
1.10 Stringoperationen

Semantik
Es wird das Zeichen innerhalb des Strings gelesen/geschrieben, das an der angegebenen
Stelle steht. Ist die Positionsangabe negativ oder größer als der String, wird ein Alarm
ausgelöst.
Beispiel Meldungen:
Einsetzen eines Achsbezeichners in einem vorgefertigten String.

DEF STRING [50] MELDUNG = "Achse n hat


Position erreicht"
MELDUNG [6] = "X"
MSG (MELDUNG) ;liefert die Meldung "Achse X hat
;Position erreicht"

Parameter
Der Einzelzeichenzugriff ist nur auf vom Anwender definierte Variablen
(LUD-,GUD- und PUD-Daten) möglich.
Außerdem ist diese Art des Zugriffs bei einem Unterprogrammaufruf nur für Parameter vom
Typ "Call-By-Value" möglich.

Beispiel Einzelzeichenzugriff auf ein System-, Maschinendatum, …

DEF STRING [50] STRG


DEF CHAR QUITTUNG

STRG = $P_MMCA
QUITTUNG = STRG [0] ;Auswerten der Quittungskomponente

Beispiel Einzelzeichenzugriff bei Call-By-Reference-Parameter

DEF STRING [50] STRG


DEF CHAR CHR1
EXTERN UP_CALL (VAR CHAR1) ;Call-By-Reference-Parameter!

CHR1 = STRG [5]
UP_CALL (CHR1) ;Call-By-Reference
STRG [5] = CHR1

Arbeitsvorbereitung
1-38 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.11 CASE-Anweisung

1.11 1.11 CASE-Anweisung

Funktion
Die CASE-Anweisung bietet die Möglichkeit, abhängig von einem aktuellen Wert des Typs
INT unterschiedlich zu verzweigen.
Je nachdem, welchen Wert die von der CASE-Anweisung überprüfte Konstante annimmt,
verzweigt das Programm an die Stelle, die durch das zugehörige Sprungziel bestimmt wird.

Programmierung
CASE (Ausdruck) OF Konstante1 GOTOF LABEL1 … DEFAULT GOTOF LABELn
CASE (Ausdruck) OF Konstante1 GOTOB LABEL1 … DEFAULT GOTOB LABELn

Parameter

CASE Schlüsselwort für Sprunganweisung


GOTOB Sprunganweisung mit Sprungziel rückwärts
(Richtung Programmanfang)
GOTOF Sprunganweisung mit Sprungziel vorwärts
(Richtung Programmende)
GOTO Sprunganweisung mit Sprungziel erst
vorwärts und anschließend rückwärts
(Richtung erst zum Programmende und dann
zum Programmanfang)
GOTOC Alarm 14080 "Sprungziel nicht gefunden"
unterdrücken.
Sprunganweisung mit Sprungziel erst
vorwärts und anschließend rückwärts
(Richtung erst zum Programmende und dann
zum Programmanfang)
LABEL Ziel (Markierung innerhalb des Programms)
LABEL: nach dem Namen des Sprungziels folgt ein
Doppelpunkt
Ausdruck arithmetischer Ausdruck
Konstante Konstante vom Typ INT
DEFAULT Programmpfad, wenn keine der vorher
genannten Konstanten zutrifft

Hinweis
Mehr Informationen zu den GOTO Befehlen siehe in Kapitel 10 Rechenparameter und
Programmsprünge.
Für die Fälle, in denen die Konstante keinen der vorbestimmten Werte annimmt, kann mit
der Anweisung DEFAULT ein Sprungziel bestimmt werden.
Falls die DEFAULT-Anweisung nicht programmiert ist, wird in diesen Fällen der auf die
CASE-Anweisung folgende Satz zum Sprungziel.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-39
Flexible NC-Programmierung
1.11 CASE-Anweisung

Beispiel 1
CASE(Ausdruck) OF 1 GOTOF LABEL1 2 GOTOF LABEL2 … DEFAULT GOTOF
LABELn
"1" und "2" sind mögliche Konstanten.
Ist der Wert des Ausdrucks = 1 (INT-Konstante), springe zu Satz mit LABEL1
Ist der Wert des Ausdrucks = 2 (INT-Konstante), springe zu Satz mit LABEL2

ansonsten springe zu Satz mit LABELn

Beispiel 2

DEF INT VAR1 VAR2 VAR3


CASE(VAR1+VAR2-VAR3) OF 7 GOTOF MARKE1 9 GOTOF MARKE2 DEFAULT GOTOF MARKE3
MARKE1: G0 X1 Y1
MARKE2: G0 X2 Y2
MARKE3: G0 X3 Y3

Arbeitsvorbereitung
1-40 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.12 Kontrollstrukturen

1.12 1.12 Kontrollstrukturen

Funktion
Die Steuerung arbeitet die NC-Sätze standardmäßig in der programmierten Reihenfolge ab.
Mit diesen Befehlen lassen sich - neben den in diesem Kapitel beschriebenen
Programmsprüngen - zusätzliche Alternativen und Programmschleifen festlegen.
Die Befehle ermöglichen strukturierte Programmierung und gute Lesbarkeit der Programme.

Programmierung
Schachtelungstiefe
Kontrollstrukturen gelten programm-lokal. Innerhalb jeder Unterprogrammebene ist eine
Schachtelungstiefe von bis zu 8 Kontrollstrukturen möglich.

+DXSWSURJUDPP 8QWHUSURJUDPP

352&68%352*
/223 5(3($7
)25
:+,/( )25
,) :+,/(

(1',) (1':+,/(
:+,/( :+,/(
(1':+,/(
68%352* (1')25
(1':+,/( (1')25
(1':+,/( 817,/
(1'/223

Vorsicht
Kontrollstrukturen sind nur innerhalb des Anweisungsteils eines Programms möglich.
Definitionen im Programmkopf können nicht bedingt oder wiederholt ausgeführt werden.
Schlüsselworte für Kontrollstrukturen dürfen ebenso wie Sprungziele nicht mit Makros
überlagert werden. Eine Abprüfung bei der Makrodefinition findet nicht statt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-41
Flexible NC-Programmierung
1.12 Kontrollstrukturen

Parameter

IF Auswahl zwischen 2 Alternativen


LOOP Endlos-Schleife
FOR Zählschleife
WHILE Schleife mit Bedingung am Schleifenanfang
REPEAT Schleife mit Bedingung am Schleifenende

Beispiel Endlosprogramm

%_N_LOOP_MPF
LOOP
IF NOT $P_SEARCH ;kein Satzsuchlauf
G01 G90 X0 Z10 F1000
WHILE $AA_IM[X] <= 100
G1 G91 X10 F500 ;Bohrbild
Z–F100
Z5
ENDWHILE
Z10
ELSE ;Satzsuchlauf
MSG("Im Suchlauf wird nicht gebohrt")
ENDIF
$A_OUT[1] = 1 ;nächste Bohrplatte
G4 F2
ENDLOOP
M30

Beispiel Fertigung einer festen Teilestückzahl

%_N_STUECKZAHL_MPF

DEF INT STUECKZAHL


FOR STUECKZAHL = 0 TO 100
G01 …
ENDFOR
M30

Arbeitsvorbereitung
1-42 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.12 Kontrollstrukturen

Beispiel für Variable vom Typ INT und REAL als Zählschleife

%_N_VARIABLENZAEHLER_MPF
;bisherige Programmiermöglichkeit
DEF INT iVARIABLE1
R10 = R12-R20*R1 R11 = 6
FOR iVARIABLE1 = R10 TO R11 ;Zählervariable = Integervariable
R20 = R21*R22 + R33
ENDFOR
M30
;erweiterte Programmiermöglichkeit
R11 = 6
FOR R10 = R12-R20*R1 TO R11 ;Zählervariable = R-Parameter (Realvariable)
R20 = R21*R22 + R33
ENDFOR
M30

Laufzeitverhalten
Im standardmäßig aktiven Interpreterbetrieb kann durch Verwendung von
Programmsprüngen ein schnellerer Programmablauf als mit Kontrollstrukturen erreicht
werden.
In vorkompilierten Zyklen ist kein Unterschied zwischen Programmsprüngen und
Kontrollstrukturen vorhanden.

Randbedingungen
Sätze mit Kontrollstrukturelementen können nicht ausgeblendet werden. Labels sind in
solchen Sätzen nicht erlaubt.
Kontrollstrukturen werden interpretativ abgearbeitet. Bei Erkennen eines Schleifenendes
wird unter Berücksichtigung der dabei gefundenen Kontrollstrukturen nach dem
Schleifenanfang gesucht.
Daher wird im Interpreterbetrieb die Blockstruktur eines Programms nicht komplett geprüft.
Grundsätzlich empfiehlt sich, Kontrollstrukturen und Programmsprünge nicht gemischt zu
verwenden.
Bei Vorverarbeitung von Zyklen kann die korrekte Schachtelung von Kontrollstrukturen
überprüft werden.

Ablauf
1. IF-ELSE-ENDIF
Ein IF-ELSE-ENDIF-Block dient zur Auswahl zwischen 2 Alternativen:
IF (Ausdruck)
NC-Sätze

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-43
Flexible NC-Programmierung
1.12 Kontrollstrukturen

ELSE
NC-Sätze
ENDIF
Hat der Ausdruck den Wert TRUE, d. h. die Bedingung ist erfüllt, so wird der nachfolgende
Programmblock ausgeführt. Ist die Bedingung nicht erfüllt, so wird der ELSE-Zweig
durchlaufen.
Der ELSE-Zweig kann entfallen.
2. Endlos-Programmschleife LOOP
Die Endlos-Schleife findet Verwendung in Endlos-Programmen. Am Schleifenende findet
immer wieder der Rücksprung zum Schleifenanfang statt.
LOOP
NC-Sätze
ENDLOOP
3. Zählschleife FOR
Die FOR-Schleife wird verwendet, wenn ein Arbeitsablauf mit einer festen Anzahl von
Durchläufen wiederholt werden soll. Die Zählvariable wird dabei vom Anfangswert bis zum
Endwert hochgezählt. Der Anfangswert muss kleiner sein als der Endwert. Die Zählvariable
kann vom Typ INT oder REAL sein. Der Typ REAL wird genommen, wenn z. B. R-Parameter
für eine Zählschleife programmiert werden. Ist die Zählvariable vom Typ REAL, wird ihr Wert
auf einen ganzzahligen Wert gerundet.
FOR Variable = Anfangswert TO Endwert
NC-Sätze
ENDFOR
4. Programmschleife mit Bedingung am Schleifenanfang WHILE
Die WHILE-Schleife wird durchlaufen, solange die Bedingung erfüllt ist.
WHILE Ausdruck
NC-Sätze
ENDWHILE
5. Programmschleife mit Bedingung am Schleifen-Ende REPEAT
Die REPEAT-Schleife wird einmal durchlaufen und solange wiederholt, bis die Bedingung
erfüllt ist.
REPEAT
NC-Sätze
UNTIL (Ausdruck)

Arbeitsvorbereitung
1-44 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.13 Programmkoordinierung

1.13 1.13 Programmkoordinierung

Funktion
Kanäle
Ein Kanal kann sein eigenes Programm, unabhängig von anderen Kanälen, abarbeiten.
Damit sind die ihm zeitweise zugeordneten Achsen und Spindeln über das Programm
steuerbar.
Bei der Inbetriebnahme können für die Steuerung zwei oder mehr Kanäle eingerichtet
werden.
Programmkoordinierung
Sind mehrere Kanäle an der Fertigung eines Werkstücks beteiligt, so kann eine
Synchronisation der Programmabläufe erforderlich werden.
Für diese Programmkoordinierung gibt es besondere Anweisungen (Kommandos). Sie
stehen jeweils in einem Satz für sich.

Hinweis
Programmkoordinierung ist auch im eigenen Kanal möglich.

Anweisungen zur Programmkoordinierung

● Angabe mit absoluter Pfadangabe

Dabei wird der absolute Pfad nach folgenden


Regeln gebildet:
INIT (n,"/_HUGO_DIR/_N_name_MPF" ) - aktuelles Directory/_N_name_MPF
oder "aktuelles Directory" steht für das angewählte
Werkstückdirectory oder das
Standarddirectory /_N_MPF_DIR.
INIT (n,"/_N_MPF_DIR/_N_name_MPF" ) - Anwahl eines bestimmten Programms zur
Abarbeitung in einem bestimmten Kanal:
n: Nummer des Kanals, Wert je nach
Steuerungskonfiguration
- Kompletter Programmname
Beispiel: bis SW 3:
INIT(2,"/_N_WKS_DIR/_ABRICHT_MPF") Zwischen einem init-Befehl (ohne
G01 F0.1 Synchronisation) und einem NC-Start muss
mindestens ein ausführbarer Satz stehen.
START
Bei Unterprogrammaufrufen muss "_SPF" in
der Pfadangabe ergänzt werden
INIT
(2,"/_N_WKS_DIR/_N_UNTER_1_SPF")
● Angabe mit relativer Pfadangabe

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-45
Flexible NC-Programmierung
1.13 Programmkoordinierung

Bei relativer Pfadangabe gelten dieselben


Beispiel: Regeln wie für Unterprogrammaufrufe.
INIT(2,"ABRICHT")
INIT(3,"UNTER_1_SPF") Bei Unterprogrammaufrufe muss "_SPF" im
Programmnamen ergänzt werden.

Parameter
Zum Datenaustausch zwischen den Programmen können die Variablen benutzt werden,
über die Kanäle gemeinsam verfügen (NCK-spezifische globale Variable). Ansonsten wird
die Programmerstellung für jeden Kanal getrennt vorgenommen.

INIT(n, Pfadangabe, Quittungsmodus) Anweisung zur Abarbeitung in einem Kanal.


Anwahl eines bestimmten Programms mit
absoluter oder relativer Pfadangabe.
START (n, n) Starten der angewählten Programme in den
anderen Kanälen.
n,n: Aufzählung der Kanalnummern: Wert je
nach Steuerungskonfiguration
WAITM (Marker-Nr., n, n, ...) Setzen des Markers "Marker-Nr." im eigenen
Kanal. Vorhergehenden Satz mit Genauhalt
beenden. Warten auf die Marker mit der
gleichen "Marker-Nr." in den angegebenen
Kanälen "n" (eigener Kanal muss nicht
angegeben werden). Marker wird nach
Synchronisation gelöscht.
Gleichzeitig können max. 10 Marker pro
Kanal gesetzt werden.
WAITMC (Marker-Nr., n, n, …) Setzen des Markers "Marker-Nr." im eigenen
Kanal. Genauhalt wird nur eingeleitet, wenn
die anderen Kanäle den Marker noch nicht
erreicht haben. Warten auf den Marker mit
der gleichen "Marker-Nr." in den
angegebenen Kanälen "n" (eigener Kanal muss
nicht angegeben werden). Sobald Marker
"Marker-Nr." in angegebenen Kanälen
erreicht ist, die Bearbeitung ohne Beenden
des Genauhalts fortsetzen.
WAITE (n, n, ...) Warten auf das Programmende der angegebenen
Kanäle (eigenen Kanal nicht angeben).
Beispiel:Programmierung einer Verweilzeit
nach dem Start-Befehl.
N30 START(2)
N31 G4 F0.01
N40 WAITE(2)
SETM (Marker-Nr., Marker-Nr., …) Setzen der Marker "Marker-Nr." im eigenen
Kanal, ohne Einfluss auf die laufende
Bearbeitung. SETM() behält Gültigkeit über
RESET und NC-START hinweg.

Arbeitsvorbereitung
1-46 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.13 Programmkoordinierung

CLEARM (Marker-Nr., Marker-Nr., …) Löschen der Marker "Marker-Nr." im eigenen


Kanal, ohne Einfluss auf die laufende
Bearbeitung. Alle Marker im Kanal können
mit CLEARM() gelöscht werden. CLEARM (0)
löscht den Marker "0". CLEARM() behält
Gültigkeit über RESET und NC-START hinweg.
n Entsprechende Kanalnummer oder Kanalname

Hinweis
Alle obigen Befehle müssen in eigenständigen Sätzen stehen.
Die Anzahl der Marker ist abhängig von der eingebauten CPU.
Kanalnummern
Für die zu koordinierenden Kanäle können bis zu 10 Kanäle als Kanalnummer (Integerwert)
angegeben werden.
Kanalnamen
Kanalnamen müssen über Variable (siehe Kapitel "Variable und Rechenparameter") in
Nummern gewandelt werden oder anstelle von Kanalnummern können auch die über
$MC_CHAN_NAME definierten Kanalnamen (Bezeichner oder Schlüsselwort) programmiert
werden. Die definierten Namen müssen den NC-Sprachkonventionen entsprechen (D. h. die
ersten beiden Zeichen müssen entweder aus Buchstaben oder ein Unterstrich bestehen).

Vorsicht
Die Nummernzuordnung ist vor leichtfertiger Änderung zu sichern.
Die Namen dürfen nicht bereits in der NC in anderer Bedeutung wie z.B. als Schlüsselwort,
Sprachbefehl, Achsname etc. vorhanden sein.
SETM() und CLEARM()
SETM()und CLEARM() können auch aus einer Synchronaktion heraus programmiert
werden. Siehe Kapitel "Wartemarken setzen/ Löschen: SETM CLEARM"

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-47
Flexible NC-Programmierung
1.13 Programmkoordinierung

Beispiel
Kanal mit Namen "MASCHINE" soll Kanalnummer 1 erhalten,
Kanal mit Namen "LADER" soll Kanalnummer 2 erhalten:
DEF INT MASCHINE=1, LADER=2
Die Variablen erhalten den gleichen Namen wie die Kanäle.
Damit lautet beispielsweise die Anweisung START:
START(MASCHINE)

Beispiel Programmkoordinierung
Kanal 1:
%_N_MPF100_MPF

N10 INIT(2,"MPF200")
N11 START(2) ;Bearbeiten im Kanal 2
.
N80 WAITM(1,1,2) ;Warten auf WAIT-Marke 1 im Kanal 1 und
. ;im Kanal 2 weiteres Bearbeiten in Kanal 1

N180 WAITM(2,1,2) ;Warten auf WAIT-Marke 2 im Kanal 1 und


. ;im Kanal 2 weiteres Bearbeiten in Kanal 1

N200 WAITE(2) ;Warten auf Programmende des Kanals 2


N201 M30 ;Programmende Kanal 1, Gesamtende

Kanal 2:
%_N_MPF200_MPF

;$PATH=/_N_MPF_DIR
;Bearbeiten im Kanal 2
N70 WAITM(1,1,2) ;Warten auf WAIT-Marke 1 im Kanal 1 und
. ;im Kanal 2 weiteres Bearbeiten in Kanal 1

N270 WAITM(2,1,2) ;Warten auf WAIT-Marke 2 im Kanal 1 und


. ;im Kanal 2 weiteres Bearbeiten in Kanal 2

N400 M30 ;Programmende des Kanals 2

Arbeitsvorbereitung
1-48 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.13 Programmkoordinierung

1 1
:$,70  :$,70 

.DQDO
1
03) 1       
ZDUWHQ 0

.DQDO 1
1 1        
 ZDUWHQ ZDUWHQ 0

1 1 1


67$57 
:$,70  :$,70  :$,7( 

%HJLQQ 67$57  0 0 (QGH=HLW

Beispiel Programm aus Werkstück


N10 INIT(2,"/_N_WKS_DIR/_N_WELLE1_WPD/_N_ABSPAN1_MPF")

Beispiel INIT-Befehl mit relativer Pfadangabe


Im Kanal 1 ist das Programm /_N_MPF_DIR/_N_MAIN_MPF angewählt

N10 INIT(2,"MYPROG") ;Programm /_N_MPF_DIR/_N_MYPROG_MPF in Kanal 2 anwählen

Beispiel für Kanalname und Kanalnummer mit Integer Variable


$MC_CHAN_NAME[0]= "CHAN_X" ;Name des 1. Kanals
$MC_CHAN_NAME[1]= "CHAN_Y" ;Name des 2. Kanals

START(1, 2) ;Start im 1. und 2. Kanal ausführen

Analog dazu Programmierung mit den Kanalbezeichnern:

START(CHAN_X, CHAN_Y) ;Start im 1. und 2. Kanal ausführen


;Die Bezeichner Kanal_X und Kanal_Y repräsentieren
;aufgrund des Maschinendatums $MC_CHAN_NAME
;intern die Kanalnummer 1 und 2. Dementsprechend führen
;Sie ebenfalls einen Start im 1. und 2. Kanal aus

Programmierung mit Integer Variable:

DEF INT chanNo1, chanNo2) ;Kanalnummer definieren


chanNo1=CHAN_X
chanNo2=CHAN_Y
START(chanNo1, chanNo2)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-49
Flexible NC-Programmierung
1.14 Interruptroutine (SETINT, DISABLE, ENABLE, CLRINT)

1.14 1.14 Interruptroutine (SETINT, DISABLE, ENABLE, CLRINT)

Funktion
Die Zusammenhänge bezüglich Programmierung einer Interruptroutine werden anhand
eines typischen Beispiels verdeutlicht:
Während der Bearbeitung bricht das Werkzeug. Hierdurch wird ein Signal ausgelöst, das
den laufenden Bearbeitungsablauf stoppt und gleichzeitig ein Unterprogramm –die sog.
Interruptroutine –startet. In diesem Unterprogramm stehen alle Anweisungen, die in diesem
Fall ausgeführt werden sollen.
Ist das Unterprogramm abgearbeitet (und hierdurch die Betriebsbereitschaft hergestellt),
springt die Steuerung in das Hauptprogramm zurück und setzt die Bearbeitung –je nach
REPOS-Befehl –an der Unterbrechungsstelle fort.

,QWHUUXSWURXWLQH

:HJIDKUHQYRQ
GHU.RQWXU
:HUN]HXJZHFKVHO
1HXH.RUUHNWXU
ZHUWH
:LHGHUDQIDKUHQ

+DXSW
SURJUDPP

Mehr Informationen zu REPOS in " Wiederanfahren an Kontur".

Programmierung
SETINT(3) PRIO=1 NAME
SETINT(3) PRIO=1 LIFTFAST
SETINT(3) PRIO=1 NAME LIFTFAST
G… X… Y… ALF=…
DISABLE (3)
ENABLE (3)
CLRINT (3)

Arbeitsvorbereitung
1-50 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.14 Interruptroutine (SETINT, DISABLE, ENABLE, CLRINT)

Parameter

SETINT(n) Interruptroutine starten, wenn Eingang n schaltet, n (1…8)


steht für die Nummer des Eingangs
PRIO=1 Festlegung der Priorität 1 bis 128 (1 hat Vorrang)
LIFTFAST Schnellabheben von der Kontur
NAME Hier steht der Name des Unterprogramms, das abgearbeitet
werden soll
ALF=… Programmierbare Verfahrrichtung (steht im Bewegungssatz)
DISABLE(n) Interruptroutine Nummer n ausschalten
ENABLE(n) Interruptroutine Nummer n wieder einschalten
CLRINT(n) Interruptzuordnungen von Interruptroutine Nummer n löschen

Rückzugsbewegung
Die Richtung der Rückzugsbewegung wird durch den G-Code LFTXT bzw. LFWP mit der
Variablen ALF programmiert.
● LFTXT
Die Ebene der Rückzugsbewegung wird aus der Bahntangente und der
Werkzeugrichtung bestimmt. Mit diesem G-Code (Standardeinstellung) wird das bisherige
Verhalten beim Schnellabheben programmiert.
● LFWP
Die Ebene der Rückzugsbewegung ist die aktive Arbeitsebene, die mit den G-Codes
G17, G18 oder G19 ausgewählt wird. Die Richtung der Rückzugsbewegung ist
unabhängig von der Bahntangente. Damit ist ein achsparalleles Schnellabheben
programmierbar.
● LFPOS
Rückzug der mit POLFMASK bekannt gemachten Achse auf die mit POLF programmierte
absolute Achsposition. Siehe auch NC-geführtes Rückziehen im Funktionshandbuch M3.
ALF hat keinen Einfluss auf die Abheberichtung für mehrere Achsen sowie für mehrere
Achsen im linearen Zusammenhang.
In der Ebene der Rückzugsbewegung wird wie bisher mit ALF die Richtung in diskreten
Schritten von 45 Grad programmiert. Bei LFTXT ist für ALF=1 der Rückzug in
Werkzeugrichtung festgelegt.
Bei LFWP ergibt sich die Richtung in der Arbeitsebene nach folgender Zuordnung:
● G17:X/Y-EbeneALF=1Rückzug in X-Richtung
ALF=3Rückzug in Y-Richtung
● G18:Z/X-EbeneALF=1Rückzug in Z-Richtung
ALF=3Rückzug in X-Richtung
● G19:Y/Z-EbeneALF=1Rückzug in Y-Richtung
ALF=3Rückzug in Z-Richtung

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-51
Flexible NC-Programmierung
1.14 Interruptroutine (SETINT, DISABLE, ENABLE, CLRINT)

Beispiel
In diesem Beispiel soll ein abgebrochenes Werkzeug automatisch durch ein
Schwesterwerkzeug ersetzt werden. Die Bearbeitung wird dann mit dem neuen Werkzeug
fortgesetzt.
Hauptprogramm

N10 SETINT(1) PRIO=1 W_WECHS -> Wenn Eingang 1 schaltet, wird sofort das
-> LIFTFAST Werkzeug mit Schnellabheben (Code Nr. 7 für
Werkzeugradiuskorrektur G41) von der Kontur
weggefahren. Dann wird Interruptroutine
W_WECHS abgearbeitet.
N20 G0 Z100 G17 T1 ALF=7 D1
N30 G0 X-5 Y-22 Z2 M3 S300
N40 Z-7
N50 G41 G1 X16 Y16 F200
N60 Y35
N70 X53 Y65
N90 X71.5 Y16
N100 X16
N110 G40 G0 Z100 M30

Unterprogramm

PROC W_WECHS SAVE Unterprogramm mit Speicherung des aktuellen


Betriebszustands
N10 G0 Z100 M5 ;Werkzeugwechselposition, Spindelstopp
N20 T11 M6 D1 G41 ;Werkzeug wechseln
N30 REPOSL RMB M3 ;Kontur wiederanfahren und Rücksprung
;ins Hauptprogramm
-> wird in einem Satz programmiert.

Vorsicht
Wenn Sie im Unterprogramm keinen der REPOS-Befehle programmieren, so wird auf den
Endpunkt des Satzes, der auf den unterbrochenen Satz folgt, positioniert.

Interruptroutine als Unterprogramm erstellen


Die Interruptroutine wird bei der Definition wie ein Unterprogramm gekennzeichnet.
Beispiel:
PROC ABHEB_Z
N10…
N50 M17
Programmname ABHEB_Z, danach folgen die NC-Sätze, zum Schluss M17
Programmende und Rückkehr ins Hauptprogramm.

Arbeitsvorbereitung
1-52 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.14 Interruptroutine (SETINT, DISABLE, ENABLE, CLRINT)

Hinweis
Innerhalb der Interruptroutine können SETINT-Anweisungen programmiert und hierdurch
weitere Interruptroutinen scharf geschaltet werden. Das Auslösen erfolgt erst durch den
Eingang.
Für weitere Informationen zur Erstellung von Unterprogrammen siehe Kapitel
"Unterprogrammtechnik, Makrotechnik".

Unterbrechungsposition speichern, SAVE


Die Interruptroutine kann bei der Definition mit SAVE gekennzeichnet werden.
Beispiel:
PROC ABHEB_Z SAVE
N10…
N50 M17
Durch das SAVE-Attribut werden die modalen G-Funktionen nach dem Ende der
Interruptroutine auf den Wert, den sie beim Start der Interruptroutine hatten, eingestellt.
Zusätzlich zur einstellbaren Nullpunktverschiebung (modale G-Funktionsgruppe 8) werden
die programmierbare Nullpunktverschiebung und die Basisverschiebung wiederhergestellt.
Ergibt sich eine Änderung der G-Funktionsgruppe 15 (Vorschubtyp), z.B. von G94 auf
G95, wird auch der entsprechende F-Wert wiederhergestellt.
Hierdurch kann später die Bearbeitung an der Unterbrechungsstelle fortgesetzt werden.

Interruptroutine zuordnen und starten, SETINT


Die Steuerung verfügt über Signale
(Eingang 1…8), die eine Unterbrechung des laufenden Programms auslösen und die
entsprechende Interruptroutine starten können.
Die Zuordnung, welcher Eingang welches Programm startet, erfolgt im
Bearbeitungsprogramm.
Beispiel:
N10 SETINT(3) PRIO=1 ABHEB_Z
Beim Schalten von Eingang 3 wird die Routine ABHEB_Z sofort gestartet.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-53
Flexible NC-Programmierung
1.14 Interruptroutine (SETINT, DISABLE, ENABLE, CLRINT)

 6(7,17  
 6(7,17  
 6(7,17  
 6(7,17  

Mehrere Interruptroutinen starten, Rangfolge festlegen, PRIO=


Falls in Ihrem NC-Programm mehrere SETINT-Anweisungen stehen und hierdurch mehrere
Signale gleichzeitig eintreffen können, müssen Sie die Interruptroutinen mit Rangfolgen
belegen, nach denen abgearbeitet werden soll: PRIO 1 bis 128, 1 hat Vorrang.
Beispiel:
N10 SETINT(3) PRIO=1 ABHEB_Z
N20 SETINT(2) PRIO=2 ABHEB_X
Die Routinen werden in der Reihenfolge der Rangordnung nacheinander abgearbeitet, wenn
die Eingänge gleichzeitig anstehen. Zuerst SETINT(3), dann SETINT(2).
Treffen während der Interruptbearbeitung neue Signale ein, unterbrechen Routinen höherer
Priorität die aktuelle Interruptroutine.

Interruptroutine aus-/wieder einschalten, DISABLE, ENABLE


Sie können Interruptroutinen im NC-Programm mit DISABLE(n) ausschalten und mit
ENABLE(n) wieder einschalten (n steht für die Eingangsnummer).
Die Zuordnung Eingang/Routine bleibt bei DISABLE erhalten und wird mit ENABLE wieder
aktiviert.

Arbeitsvorbereitung
1-54 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.14 Interruptroutine (SETINT, DISABLE, ENABLE, CLRINT)

Interruptroutinen neu zuordnen


Wird einem belegten Eingang eine neue Routine zugeordnet, ist die alte Zuordnung
automatisch unwirksam.
Beispiel:
N20 SETINT(3) PRIO=2 ABHEB_Z


N120 SETINT(3) PRIO=1 ABHEB_X
Zuordnung löschen, CLRINT
Mit CLRINT(n) können Zuordnungen gelöscht werden.
Beispiel:
N20 SETINT(3) PRIO=2 ABHEB_Z
N50 CLRINT(3)
Die Zuordnung zwischen Eingang 3 und der Routine ABHEB_Z ist gelöscht.

Schnellabheben von der Kontur, LIFTFAST


Mit LIFTFAST wird beim Schalten eines Eingangs das Werkzeug durch schnelles Abheben
von der Werkstückkontur weggefahren.

Enthält die SETINT-Anweisung neben LIFTFAST eine Interruptroutine, wird das


Schnellabheben vor der Interruptroutine ausgeführt.
Beispiel:
N10 SETINT(2) PRIO=1 LIFTFAST
oder
N30 SETINT(2) PRIO=1 ABHEB_Z LIFTFAST

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-55
Flexible NC-Programmierung
1.14 Interruptroutine (SETINT, DISABLE, ENABLE, CLRINT)

In beiden Fällen wird beim Schalten von Eingang 2 mit höchster Priorität Schnellabheben
ausgeführt.
● Bei N10 wird die Bearbeitung mit dem Alarm 16010 gestoppt (da kein asynchrones
Unterprogramm, ASUP, angegeben wurde).
● Bei N30 wird das ASUP "ABHEB-Z" ausgeführt.
Bei der Bestimmung der Abheberichtung wird geprüft, ob ein Frame mit Spiegelung aktiv ist.
In diesem Fall werden bei der Abheberichtung bezogen auf die Tangentenrichtung, rechts
und links vertauscht. Die Richtungsanteile in Werkzeugrichtung werden nicht gespiegelt.
Aktiviert wird dieses Verhalten durch das MD $MC_LIFTFAST_WITH_MIRROR=TRUE

Bewegungsablauf beim Schnellabheben


Der Betrag, um den die Geometrieachsen beim Schnellabheben von der Kontur wegfahren,
ist im Maschinendatum einstellbar.
Interruptroutine ohne LIFTFAST
Bremst auf der Bahn und startet die Interruptroutine sobald die Bewegung auf der Bahn zum
Stillstand gekommen ist.
Diese Position wird als Unterbrechungsposition abgespeichert und wird bei REPOS mit RMI
am Ende der Interruptroutine angefahren.
Interruptroutine mit LIFTFAST
Bremst auf der Bahn und führt gleichzeitig die FIFTFAST-Bewegung als überlagerte
Bewegung aus. Wenn die Bahnbewegung und LIFTFAST-Bewegung zum Stillstand
gekommen sind wird die Interruptroutine gestartet.
Als Unterbrechungsposition wird die Position auf der Kontur abgespeichert, bei der die
LIFTFAST-Bewegung gestartet wurde und dadurch die Bahn verlassen wurde.
Die Interruptroutine verhält sich mit LIFTFAST und ALF=0 identisch wie die
Interruptroutine ohne LIFTFAST.

Programmierbare Verfahrrichtung, ALF=…


Die Richtung, in die das Werkzeug beim Schnellabheben fahren soll, geben Sie im NC-
Programm an.
Die möglichen Verfahrrichtungen sind in der Steuerung unter speziellen Code-Nummern
gespeichert und unter dieser Nummer abrufbar.
Beispiel:
N10 SETINT(2) PRIO=1 ABHEB_Z LIFTFAST
ALF=7
Das Werkzeug fährt eingeschaltetem G41 (Bearbeitungsrichtung links von der Kontur)
Betrachtung der Draufsicht senkrecht von der Kontur weg.

Arbeitsvorbereitung
1-56 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.14 Interruptroutine (SETINT, DISABLE, ENABLE, CLRINT)

* $/) 

Bezugsebene für die Beschreibung der Verfahrrichtungen


Im Eingriffspunkt des Werkzeugs an der programmierten Kontur wird eine Ebene
aufgespannt, die als Bezug für die Angabe der Abhebebewegung mit der entsprechenden
Code-Nummer dient.
Die Bezugsebene wird aufgespannt aus der Werkzeuglängsachse (Zustellrichtung) und
einem Vektor, der zu dieser und senkrecht zur Tangente im Eingriffspunkt des Werkzeugs
an der Kontur steht.

7DQJHQWH
7DQJHQWH
(LQJULIIV
SXQNW

7DQJHQWH
7DQJHQWH
(LQJULIIV
SXQNW

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-57
Flexible NC-Programmierung
1.14 Interruptroutine (SETINT, DISABLE, ENABLE, CLRINT)

Code-Nummern mit Verfahrrichtungen im Überblick


Ausgehend von der Bezugsebene finden Sie in nebenstehender Abbildung die Code-
Nummern mit Verfahrrichtungen.

$QVLFKWLQ

=XVWHOODFKVH
9HUIDKUULFKWXQJ
 


r
 

r





  
'UDXIVLFKW
*

 
*
9HUIDKUULFKWXQJ

  

Mit ALF=0 ist die Funktion Schnellabheben ausgeschaltet.

Vorsicht
Bei eingeschalteter Werkzeugradiuskorrektur sollten
bei G41 die Codierungen 2, 3, 4 und
bei G42 die Codierungen 6, 7, 8
nicht verwendet werden.
In diesen Fällen würde das Werkzeug zur Kontur hinfahren und mit dem Werkstück
kollidieren.

Arbeitsvorbereitung
1-58 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.15 Achstausch , Spindeltausch (RELEASE, GET, GETD)

1.15 1.15 Achstausch, Spindeltausch (RELEASE, GET, GETD)

Funktion
Eine oder mehrere Achsen bzw. Spindeln können immer nur in einem Kanal interpoliert
werden. Muss eine Achse wechselweise in zwei verschiedenen Kanälen arbeiten (z. B.
Palettenwechsler), so muss sie zunächst im aktuellen Kanal freigegeben und dann in den
anderen Kanal übernommen werden. Die Achse wird zwischen den Kanälen getauscht.
Achstauscherweiterungen
Eine Achse/Spindel kann mit Vorlaufstopp und Synchronisation zwischen Vorlauf und
Hauptlauf oder alternativ auch ohne Vorlaufstopp getauscht werden. Außerdem ist ein
Achstausch auch möglich über
● Achscontainer-Drehung AXCTSWE bzw. AXCTWED mittels impliziten GET/GETD.
● Frame mit Rotation, wenn diese Achse hierüber mit anderen Achsen verknüpft ist.
● Synchronaktionen, siehe Bewegungssynchronaktionen, "Achstausch RELEASE, GET".
Maschinenhersteller
Bitte beachten Sie die Angaben des Maschinenherstellers. Über projektierbare
Maschinendaten muss eine Achse für den Achstausch in allen Kanälen eindeutig definiert
sein und das Achstauschverhalten ist auch über Maschinedaten veränderbar einstellbar.

Programmierung
RELEASE(Achsname, Achsname, ...) oder RELEASE(S1)
GET(Achsname, Achsname, ...) oder GET(S2)
oder
GETD(Achsname, Achsname, ...) oder GETD (S3)
Mit GETD (GET Directly) wird eine Achse direkt aus einem anderen Kanal geholt. Das
bedeutet, dass zu diesem GETD kein passendes RELEASE in einem anderen Kanal
programmiert sein muss. Es bedeutet aber auch, dass jetzt eine andere
Kanalkommunikation aufgebaut werden muss (z. B. Waitmarken).

Parameter

RELEASE (Achsname, Achsname, …) Freigeben der Achse(n)


GET (Achsname, Achsname, …) Übernehmen der Achse(n)
GETD (Achsname, Achsname, …) Direktes Übernehmen der Achse(n)
Achsname Achszuordnung im System: AX1, AX2, … oder
Angabe der Maschinenachsnamen
RELEASE (S1) Freigeben der Spindel S1, S2, …
GET(S2) Übernehmen der Spindel S1, S2, …
GETD(S3) Direktes Übernehmen der Spindel S1, S2, …

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-59
Flexible NC-Programmierung
1.15 Achstausch , Spindeltausch (RELEASE, GET, GETD)

GET-Anforderung ohne Vorlaufstopp


Wird nach einer GET-Anforderung ohne Vorlaufstopp die Achse mit RELEASE(Achse) oder
WAITP(Achse) wieder freigegeben, so führt ein nachfolgender GET zu einem GET mit
Vorlaufstopp.

Vorsicht
Eine mit GET übernommene Achse bzw. Spindel bleibt auch nach einem Tasten- oder
Programm-RESET diesem Kanal zugeordnet.
Bei neuem Programmstart muss die Zuordnung der getauschten Achsen bzw. Spindeln
programmtechnisch erfolgen, falls die Achse in ihrem Grundkanal benötigt wird.
Bei POWER ON wird sie dem im Maschinendatum hinterlegten Kanal zugeordnet.

Beispiel eines Achstausches zwischen zwei Kanälen


Von 6 Achsen werden in Kanal 1 zur Bearbeitung benutzt: 1., 2., 3. und 4. Achse.
5. und 6. Achse werden in Kanal 2 zum Werkstückwechsel benutzt.
Achse 2 soll zwischen beiden Kanälen getauscht werden können und nach POWER ON
dem Kanal 1 zugeordnet sein.
Programm "MAIN" in Kanal 1

%_N_MAIN_MPF
INIT (2,"TAUSCH2") ;Programm TAUSCH2 im Kanal 2 anwählen
N… START (2) ;Programm in Kanal 2 starten
N… GET (AX2) ;Achse AX2 übernehmen


N… RELEASE (AX2) ;Achse AX2 freigeben
N… WAITM (1,1,2) ;Warten auf WAIT-Marke in Kanal 1 und 2
;zur Synchronisation in den beiden Kanälen
N… ;Weiterer Ablauf nach Achstausch
N… M30

Programm "Tausch2" in Kanal 2

%_N_TAUSCH2_MPF
N… RELEASE (AX2)
N160 WAITM (1,1,2) ;Warten auf WAIT-Marke in Kanal 1 und 2
;zur Synchronisation in den beiden Kanälen
N150 GET (AX2) ;Achse AX2 übernehmen
N… ;Weiterer Ablauf nach Achstausch
N…M30

Arbeitsvorbereitung
1-60 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.15 Achstausch , Spindeltausch (RELEASE, GET, GETD)

Beispiel für Achstausch ohne Synchronisierung


Wenn die Achse nicht synchronisiert werden muss, wird durch GET kein Vorlaufstopp
erzeugt.

N01 G0 X0
N02 RELEASE(AX5)
N03 G64 X10
N04 X20
N05 GET(AX5) ;Wenn keine Synchronisation nötig, wird
;dies kein ausführbarer Satz.
N06 G01 F5000 ;Kein ausführbarer Satz.
N07 X20 ;Kein ausführbarer Satz, da X-Position wie
;in N04.
N08 X30 ;Erster ausführbarer Satz nach N05.
N09 …

Beispiel einer Aktivierung eines Achstauschs ohne Vorlaufstopp


Voraussetzung
Der Achstausch ohne Vorlaufstopp muss über ein Maschinendatum projektiert werden.

N010 M4 S100
N011 G4 F2
N020 M5
N021 SPOS=0
N022 POS[B]=1
N023 WAITP(B) ;Achse B wird zur neutralen Achse
N030 X1 F10
N031 X100 F500
N032 X200
N040 M3 S500 ;Achse löst kein Vorlaufstopp/REORG aus
N041 G4 F2
N050 M5
N099 M30

Wird die Spindel bzw. Achse B unmittelbar nach dem Satz N023 als PLC-Achse z. B. auf
180 Grad und zurück auf 1 Grad verfahren, dann wird diese Achse wieder zur neutralen
Achse und löst im Satz N40 keinen Vorlaufstopp auf.

Voraussetzung
Voraussetzungen für den Achstausch
● Die Achse muss über Maschinendaten in allen Kanälen definiert sein, die Achse
verwenden wollen.
● Über das achsspezifische Maschinendatum muss festgelegt sein, welchem Kanal die
Achse nach POWER ON zugeordnet werden soll.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-61
Flexible NC-Programmierung
1.15 Achstausch , Spindeltausch (RELEASE, GET, GETD)

Beschreibung
Achse freigeben: RELEASE
Bei der Achsfreigabe ist zu beachten:
1. Die Achse darf an keiner Transformation beteiligt sein.
2. Bei Achskopplungen (Tangentialsteuerung), müssen alle Achsen des Verbands
freigegeben werden.
3. Eine konkurrierende Positionierachse kann in diesem Zustand nicht getauscht werden.
4. Bei einer Gantry-Masterachse werden auch alle Folgeachsen getauscht.
5. Bei Achskopplungen (Mitschleppen, Leitwertkopplung, Elektronisches Getriebe) kann nur
die Leitachse des Verbandes freigegeben werden.
Achse übernehmen: GET
Mit diesem Befehl wird der eigentliche Achstausch durchgeführt. Die Verantwortung für die
Achse liegt vollständig bei dem Kanal, in dem der Befehl programmiert wurde.
Auswirkungen von GET:
Achstausch mit Synchronisierung:
Eine Achse muss immer dann synchronisiert werden, wenn sie zwischenzeitlich in einem
anderen Kanal oder der PLC zugeordnet war, und vor dem GET keine Synchronisierung
durch "WAITP", G74 oder Restweglöschen stattgefunden hat.
● Ein Vorlaufstopp erfolgt (wie bei STOPRE).
● Die Bearbeitung wird so lange unterbrochen, bis der Tausch vollständig ausgeführt ist.

Automatisches "GET"
Wenn eine Achse prinzipiell im Kanal verfügbar, jedoch derzeitig nicht als "Kanal-Achse"
vorhanden ist, wird automatisch ein GET ausgeführt. Falls die Achse(n) schon synchronisiert
ist (sind), wird kein Vorlaufstopp erzeugt.

Achstauschverhalten veränderbar einstellen


Der Abgabezeitpunkt von Achsen lässt sich über ein Maschinendatum wie folgt einstellen:
● Automatischer Achstausch findet zwischen zwei Kanälen auch dann statt, wenn die
Achse durch WAITP in einen neutralen Zustand gebracht wurde (Verhalten wie bisher)
● Bei der Anforderung einer Achs-Containerdrehung werden alle dem ausführenden Kanal
zuordenbaren Achsen des Achs-Containers mittels impliziten GET bzw. GETD in den
Kanal geholt. Ein anschließender Achstausch ist erst nach dem Abschluss der Achs-
Containerdrehung wieder erlaubt.
● Nach einem eingeschobenen Zwischensatz im Hauptlauf wird geprüft, ob ein
Reorganisieren erforderlich ist oder nicht. Nur wenn die Achszustände dieses Satzes mit
den aktuellen Achszuständen nicht übereinstimmen, ist ein Reorganisieren erforderlich.
● Statt eines GET-Satzes mit Vorlaufstopp und Synchronisation zwischen Vorlauf und
Hauptlauf kann ein Achstausch auch ohne Vorlaufstopp erfolgen. Es wird dann nur ein
Zwischensatz mit der GET-Anforderung erzeugt. Im Hauptlauf wird bei Abarbeitung
dieses Satzes überprüft, ob die Zustände der Achse im Satz mit den aktuellen
Achszuständen übereinstimmen.

Arbeitsvorbereitung
1-62 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.16 Achse einem anderen Kanal übergeben (AXTOCHAN)

Weitere Informationen zur Funktionalität eines Achs- oder Spindeltausches siehe


/FB2/ Funktionshandbuch Erweiterungsfunktionen; BAGs, Kanäle, Achstausch (K5).

1.16 1.16 Achse einem anderen Kanal übergeben (AXTOCHAN)

Funktion
Mit dem Sprachbefehl AXTOCHAN kann eine Achse angefordert werden, um diese Achse
einem anderen Kanal zu übergeben. Die Achse kann sowohl vom NC-Teileprogramm als
auch aus einer Synchronaktion heraus in den entsprechenden Kanal gebracht werden.

Programmierung
AXTOCHAN(Achsname,Kanalnummer[,Achsname,Kanalnummer[,...]])

Parameter

AXTOCHAN Achse für einen bestimmten Kanal anfordern


Achsname Achszuordnung im System: X, Y, … oder
Angabe der beteiligten Maschinenachsnamen.
Der auszuführende Kanal muss nicht der
eigene Kanal sein und es muss auch nicht
der Kanal sein, der aktuell das
Interpolationsrecht für die Achse besitzt
Kanalnummer Nummer des Kanals, dem die Achse zugeordnet
werden soll

Hinweis
Konkurrierende Positionierachse und ausschließlich PLC kontrollierte Achse
Eine PLC-Achse kann als konkurrierende Positionierachse den Kanal nicht wechseln. Eine
ausschließlich von der PLC kontrollierte Achse kann nicht dem NC-Programm zugeordnet
werden.
Literatur
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Positionierachsen (P2)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-63
Flexible NC-Programmierung
1.17 NEWCONF: Maschinendaten wirksam setzen

Beispiel AXTOCHAN im NC-Programm


Die Achsen X und Y sind im 1. Kanal und im 2. Kanal bekannt. Aktuell hat der Kanal 1 das
Interpolationsrecht und im Kanal 1 wird folgendes Programm gestartet:

N110 AXTOCHAN(Y,2) ;Y-Achse in den 2. Kanal schieben


N111 M0
N120 AXTOCHAN(Y,1) ;Y-Achse wieder zurückholen (neutral)
N121 M0
N130 AXTOCHAN(Y,2,X,2) ;Y-Achse und X-Achse in den 2. Kanal schieben (Achsen
neutral)
N131 M0
N140 AXTOCHAN(Y,2) ;Y-Achse in den 2. Kanal schieben (NC-Programm)
N141 M0

Beschreibung
AXTOCHAN im NC-Programm
Dabei wird nur bei einer Anforderung der Achse für das NC-Programm im eigenen Kanal ein
GET durchgeführt und damit auch auf die tatsächliche Zustandsänderung gewartet. Wird die
Achse für einen anderen Kanal angefordert oder soll sie zur neutralen Achse im eigenen
Kanal werden, dann nur wird die Anforderung entsprechend abgesetzt.
AXTOCHAN aus einer Synchronaktion
Wird eine Achse für den eigenen Kanal angefordert so wird AXTOCHAN aus einer
Synchronaktion auf ein GET aus einer Synchronaktion abgebildet. In diesem Fall wird die
Achse bei der ersten Anforderung für den eigenen Kanal zur neutralen Achse. Bei der
zweiten Anforderung wird die Achse dem NC-Programm analog zur GET-Anforderung im
NC-Programm zugeordnet. Zur GET-Anforderung aus einer Synchronaktion siehe Kapitel
"Bewegungssynchronaktionen".

1.17 1.17 NEWCONF: Maschinendaten wirksam setzen

Funktion
Mit dem Sprachbefehl NEWCONF werden alle Maschinendaten der Wirksamkeitsstufe
"NEW_CONFIG" wirksam gesetzt. Die Funktion kann auch in der Bedienoberfläche HMI
durch Betätigen des Softkeys "MD wirksam setzen" aktiviert werden.
Bei der Ausführung der Funktion NEWCONF erfolgt ein impliziter Vorlaufstopp, d.h. die
Bahnbewegung wird unterbrochen.

Programmierung
NEWCONF

Arbeitsvorbereitung
1-64 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.18 WRITE: Datei schreiben

Parameter

NEWCONF Alle Maschinendaten der Wirksamkeitsstufe "NEW_CONFIG" werden


wirksam gesetzt.

NEWCONF aus den Teileprogramm kanalübergreifend ausführen


Werden axiale Maschinendaten aus dem Teileprogramm verändert und anschließend mit
NEWCONF aktiviert, so setzt NEWCONF nur die Maschinendaten, die Änderungen für den
Kanal des Teileprogramms bewirken, aktiv.

Hinweis
Um alle Änderungen sicher wirksam werden zu lassen, muss die Anweisung NEWCONF in
jedem Kanal ausgeführt werden, in dem auch die von den Maschinendaten veränderten
betroffenen Achsen oder Funktionen aktuell gerechnet werden.
Bei NEWCONF werden keine axialen Maschinendaten wirksam gesetzt.
Für von der PLC kontrollierte Achsen muss ein axialer RESET ausgeführt werden.

Beispiel
Fräsbearbeitung: Bohrposition mit verschiedenen Technologien bearbeiten

N10 $MA_CONTOUR_TOL[AX]=1.0 ;Maschinendatum ändern


N20 NEWCONF ;Maschinendaten wirksam setzen

1.18 1.18 WRITE: Datei schreiben

Funktion
Mit dem WRITE-Befehl können Daten (z. B. Messergebnisse bei den Messzyklen) an das
Ende der angegebenen Datei angefügt werden.
Die angelegten Dateien können
● von allen Benutzern gelesen, geändert und gelöscht werden,
● in das gerade in Abarbeitung befindliche Teileprogramm geschrieben werden.
Die Sätze werden am Dateiende eingefügt, also nach M30.
Die aktuell eingestellte Schutzstufe muss gleich oder größer dem WRITE-Recht der Datei
sein. Ist dies nicht der Fall, wird der Zugriff mit Fehlermeldung (error=13) abgelehnt

Programmierung
WRITE(VAR INT error, CHAR[160] filename, CHAR[200] STRING)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-65
Flexible NC-Programmierung
1.18 WRITE: Datei schreiben

Parameter
Maschinenhersteller
Mit dem Befehl WRITE können aus dem Teileprogramm Sätze in einer Datei abgelegt
werden. Die Dateigröße für Protokolldateien (kByte) wird im MD festgelegt.
Über das MD 11420: LEN_PROTOCOL_FILE wird die maximale Länge der Protokolldateien
in KByte eingestellt. Diese Länge gilt für alle Dateien, die mit dem WRITE-Befehl angelegt
werden.
Erreicht die Datei die angegebene Länge, wird eine Fehlermeldung ausgegeben, der
STRING wird nicht abgespeichert. Sofern der Speicher ausreicht, kann eine neue Datei
angelegt werden.

WRITE Daten an das Ende der angegebenen Datei anfügen


error Fehlervariable für Rückgabe
0: kein Fehler
1: Pfad nicht erlaubt
2: Pfad nicht gefunden
3: Datei nicht gefunden
4: falscher Dateityp
10: Datei ist voll
11: Datei wird benutzt
12: keine Ressourcen frei
13: keine Zugriffsrechte
20: sonstiger Fehler
filename Name der Datei, in die der String geschrieben werden soll.
Enthält filename Leer- oder Steuerzeichen (Zeichen mit dezimal
ASCII-Code <= 32), so wird der WRITE-Befehl mit Fehlerkennung
1 "Pfad nicht erlaubt" abgebrochen.
Der Dateiname kann mit Pfad und Datei-Kennung angegeben
werden. Pfadnamen müssen absolut sein, d. h. sie beginnen mit
"/". Enthält der Dateiname keine Domainkennung (_N_), wird er
entsprechend ergänzt. Ist keine Kennung (_MPF oder _SPF)
angegeben, wird automatisch _MPF ergänzt. Erfolgt die Angabe
ohne Pfad, wird die Datei im aktuellen Verzeichnis
(=Verzeichnis des angewählten Programms) abgelegt. Die Länge
des Dateinamens darf maximal 32 Bytes, die Länge der
Pfadangabe maximal 128 Bytes betragen.
Beispiel:
PROTFILE
_N_PROTFILE
_N_PROTFILE_MPF
/_N_MPF_DIR_/_N_PROTFILE_MPF/
STRING Zu schreibender Text. Intern wird noch LF angehängt, d. h. der
Text wird um 1 Zeichen länger.

Arbeitsvorbereitung
1-66 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.19 DELETE: Datei löschen

Hinweis
Eine per WRITE-Befehl zu beschreibende Datei wird neu angelegt, wenn sie nicht in der NC
existiert.
Existiert eine Datei gleichen Namens auf der Festplatte, wird diese nach dem Schließen der
Datei (in der NC) überschrieben.
Abhilfe: Unter Bedienbereich Dienste über den Softkey "Eigenschaften" Namen in der NC
ändern.

Beispiel

N10 DEF INT ERROR


N20 WRITE(ERROR,"TEST1","PROTOKOLL VOM ;schreibe den Text aus PROTOKOLL VOM
7.2.97") ;7.2.97 in die Datei TEST1
N30 IF ERROR
N40 MSG ("Fehler bei WRITE-Befehl:"
<<ERROR)
N50 M0
N60 ENDIF
...
WRITE(ERROR, ;absolute Pfadangabe
"/_N_WKS_DIR/_N_PROT_WPD/_N_PROT_MPF",
"PROTOKOLL VOM 7.2.97")

1.19 1.19 DELETE: Datei löschen

Funktion
Mit dem DELETE-Befehl können alle Dateien gelöscht werden, egal, ob diese per WRITE-
Befehl entstanden sind oder nicht. Auch Dateien, die unter höherer Zugriffsstufe erstellt
wurden, können mit DELETE gelöscht werden.

Programmierung
DELETE(VAR INT error, CHAR[160] filename)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-67
Flexible NC-Programmierung
1.19 DELETE: Datei löschen

Parameter

DELETE Die angegebene Datei löschen.


error Fehlervariable für Rückgabe
0: kein Fehler
1: Pfad nicht erlaubt
2: Pfad nicht gefunden
3: Datei nicht gefunden
4: falscher Dateityp
11: Datei wird benutzt
12: keine Ressourcen frei
20: sonstiger Fehler
filename Name der Datei, die gelöscht werden soll.
Der Dateiname kann mit Pfad und Datei-Kennung angegeben
werden. Pfadnamen müssen absolut sein, d. h. sie beginnen mit
" / ". Enthält der Dateiname keine Domainkennung (_N_), wird
er entsprechend ergänzt. Die Dateikennung ("_" plus 3
Zeichen), z. B. _SPF) ist optional. Ist keine Kennung
vorhanden, wird der Dateiname automatisch mit _MPF versehen.
Erfolgt die Angabe ohne Pfad, wird die Datei im aktuellen
Verzeichnis (=Verzeichnis des angewählten Programms) abgelegt.
Die Länge des Dateinamens darf maximal 32 Bytes, die Länge der
Pfadangabe maximal 128 Bytes betragen.
Beispiel:
PROTFILE
_N_PROTFILE
_N_PROTFILE_MPF
/_N_MPF_DIR/_N_PROTFILE_MPF/

Beispiel

N10 DEF INT ERROR


N15 STOPRE ;Vorlaufstopp
N20 DELETE (ERROR, ;lösche die Datei TEST1 im
"/_N_SPF_DIR/_N_TEST1_SPF") ;Unterprogrammzweig
N30 IF ERROR
N40 MSG ("Fehler bei DELETE-Befehl:"
<<ERROR)
N50 M0
N60 ENDIF

Arbeitsvorbereitung
1-68 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.20 READ: Zeilen in Datei lesen

1.20 1.20 READ: Zeilen in Datei lesen

Funktion
Der READ-Befehl liest in der angegebenen Datei eine oder mehrere Zeilen und legt die
gelesenen Informationen in einem Feld vom Typ STRING ab. Jede gelesene Zeile belegt in
diesem Feld ein Feldelement.
Die aktuell eingestellte Schutzstufe muss gleich oder größer dem READ-Recht der Datei
sein. Ist dies nicht der Fall, wird der Zugriff mit Fehlermeldung (error=13) abgelehnt.

Programmierung
READ(VAR INT error, STRING[160] file, INT line, INT number,
VAR STRING[255] result[])

Parameter

READ In der angegebenen Datei eine oder mehrere Zeilen lesen und in
einem Feldelement eines Feldes ablegen.
Die Information liegt als STRING vor.
error Fehlervariable für Rückgabe (Call-By-Reference-Parameter, Typ INT)
0: kein Fehler
1: Pfad nicht erlaubt
2: Pfad nicht gefunden
3: Datei nicht gefunden
4: falscher Dateityp
13: Zugriffsrechte nicht ausreichend
21: Zeile nicht vorhanden (Parameter "line" oder "number"
größer als Anzahl Zeilen der Datei)
22: Feldlänge der Ergebnis-Variable "result" ist zu klein
23: Zeilenbereich zu groß (Parameter "number"
so groß gewählt, dass über das Dateiende hinausgelesen wird)
file Name/Pfad der zu lesenden Datei (Call-By-Value-Parameter vom Typ
STRING mit einer max. Länge von 160 Byte). Die Datei muss sich im
Anwenderspeicher des NCK's (Passives Filesystem) befinden. Dem
Dateinamen kann die Domainkennung _N_ vorangestellt werden. Fehlt
die Domainkennung wird sie entsprechend ergänzt.
Die Dateikennung ("_" plus drei Zeichen, z. B. _SPF) ist optional
Ist keine Kennung vorhanden, wird der Dateiname automatisch mit
_MPF versehen
Ist in "file" keine Pfadangabe vorhanden, wird die Datei im
aktuellen Verzeichnis (=Verzeichnis des angewählten Programms)
gesucht. Vorhandene Pfadangaben in "file", müssen mit einem "/"
beginnen (absolute Pfadangabe).

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-69
Flexible NC-Programmierung
1.20 READ: Zeilen in Datei lesen

line Positionsangabe des zu lesenden Zeilenbereichs


(Call-By-Value-Parameter vom Typ INT).
0: Es werden die mit dem Parameter "number"
angegebene Anzahl der Zeilen vor dem Dateiende gelesen
1 bis n: Nummer der ersten zu lesenden Zeile
number Anzahl der zu lesenden Zeilen (Call-By-Value-Parameter vom Typ INT)
result Feld vom Typ STRING, in dem der gelesene Text abgelegt wird
(Call-By-Reference-Parameter mit einer Länge von 255)

Sind im Parameter "number" weniger Zeilen angegeben als die Feldlänge von "result"
beträgt, so werden die restlichen Feldelemente nicht verändert.
Der Abschluss einer Zeile durch die Steuerzeichen "LF" (Line Feed) oder "CR LF" (Carrige
Return Line Feed) wird nicht in der Zielvariablen "result" abgelegt. Gelesene Zeilen werden
abgeschnitten, wenn die Zeile länger als die Stringlänge der Zielvariable "result" ist. Es
erfolgt keine Fehlermeldung.

Hinweis
Binäre Files können nicht eingelesen werden.
Es wird der Fehler error=4:falscher Dateityp ausgegeben. Folgenden Dateitypen sind nicht
lesbar: _BIN, _EXE, _OBJ, _LIB, _BOT, _TRC, _ACC, _CYC, _NCK.

Beispiele

N10 DEF INT ERROR ;Fehlervariable


N20 STRING[255] RESULT[5] ;Ergebnisvariable
...
N30 READ(ERROR, "TESTFILE", 1, 5, ;Dateiname ohne Domain-
RESULT) ;und Dateikennung
...
N30 READ(ERROR, "TESTFILE_MPF", 1, 5, ;Dateiname ohne Domain-
RESULT) ;und mit Dateikennung
...
N30 READ(ERROR,"_N_TESTFILE_MPF", 1, 5, ;Dateiname mit Domain-
RESULT) ;und Dateikennung
...
N30 READ(ERROR,"/_N_CST_DIR/_N_TESTFILE_MPF" , ;Dateiname mit Domain-,
1, 5 RESULT) ;Dateikennung und Pfadangabe
...
N40 IF ERROR <>0 ;Fehlerauswertung
N50 MSG("FEHLER "<<ERROR<<" BEI READ-BEFEHL")
N60 M0
N70 ENDIF
...

Arbeitsvorbereitung
1-70 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.21 ISFILE: Datei im Anwendunsspeicher NCK vorhanden

1.21 1.21 ISFILE: Datei im Anwendunsspeicher NCK vorhanden

Funktion
Mit dem ISFILE-Befehl wird geprüft, ob eine Datei im Anwenderspeicher des NCK's
(passives Filesystem) existiert. Als Ergebnis wird TRUE (Datei vorhanden) oder FALSE
(Datei nicht vorhanden) geliefert.

Programmierung
result=ISFILE(STRING[160]file)

Parameter

ISFILE Prüft, ob eine Datei im NCK-Anwenderspeicher existiert


file Name bzw. Pfad der zu lesenden Datei (Call-By-Value-Parameter
vom Typ STRING mit einer maximalen Länge von 160 Byte).
Die Datei muss sich im Anwenderspeicher des NCKs (Passives
Filesystem) befinden. Dem Dateinamen kann die Domainkennung
_N_ vorangestellt werden. Fehlt die Domainkennung wird sie
entsprechend ergänzt.
Die Dateikennung ("_" plus drei Zeichen, z. B. _SPF) ist
optional. Ist keine Kennung vorhanden wird der Dateiname
automatisch mit _MPF versehen.
Ist in "file" keine Pfadangabe vorhanden, wird die Datei im
aktuellen Verzeichnis (=Verzeichnis des angewählten Programms)
gesucht. Vorhandene Pfadangaben in "file", müssen mit einem
"/" beginnen (absolute Pfadangabe).
result Variable zur Aufnahme des Ergebnisses vom Typ BOOL (TRUE oder
FALSE)

Beispiel
N10 DEF BOOL RESULT
N20 RESULT=ISFILE("TESTFILE")
N30 IF(RESULT==FALSE)
N40 MSG("DATEI NICHT VORHANDEN")
N50 M0
N60 ENDIF
...
oder:
N30 IF(NOT ISFILE("TESTFILE"))
N40 MSG("DATEI NICHT VORHANDEN")
N50 M0
N60 ENDIF
...

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-71
Flexible NC-Programmierung
1.22 FILEDATE/TIME/SIZE/STAT/INFO: File Informationen

1.22 1.22 FILEDATE/TIME/SIZE/STAT/INFO: File Informationen

Funktion
Über die Sprachbefehle FILEDATE, FILETIME, FILESIZE, FILESTAT und FILEINFO können
bestimmte File Informationen wie Datum, Urzeit, aktuelle Dateigröße, File Status oder die
Summe dieser Informationen vom Anwenderspeicher des NCK`s (passives Filesystem)
ausgelesen werden.
Die aktuell eingestellte Schutzstufe muss gleich oder größer dem Show-Recht des
übergeordneten Verzeichnisses sein. Ist dies nicht der Fall, wird der Zugriff mit
Fehlermeldung (error=13) abgelehnt.
Anwendung:
Bereitstellung neuer File Informationen, wenn sich eine Datei für den Anwender geändert hat
und diese z. B. neu berechnet werden soll.

Programmierung
FILExxxx(VAR INT error, STRING[160] file, VAR {STRING[yy]INT}result)

Parameter

FILEDATE liefert das Datum des letzten schreibenden Zugriffs auf die
Datei
FILETIME liefert die Uhrzeit des letzten schreibenden Zugriffs auf die
Datei
FILESIZE liefert die aktuelle Größe der Datei
FILESTAT liefert den Filestatus wie Lese-, Schreib- und Ausführrechte
FILEINFO liefert die Summe der Informationen aus einem Directory-
Eintrag
error Fehlervariable für Rückgabe Darstellung
0: kein Fehler
1: Pfad nicht erlaubt
2: Pfad nicht gefunden
3: Datei nicht gefunden
13: Zugriffsrechte nicht ausreichend
22: Feldlänge der Ergebnis-Variable "result" ist zu klein

Arbeitsvorbereitung
1-72 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.22 FILEDATE/TIME/SIZE/STAT/INFO: File Informationen

file Name bzw. Pfad der zu lesenden Datei (Call-By-Value-Parameter


vom Typ STRING mit einer maximalen Länge von 160 Byte).
Die Datei muss sich im Anwenderspeicher des NCKs (Passives
Filesystem) befinden. Dem Dateinamen kann die Domainkennung
_N_ vorangestellt werden. Fehlt die Domainkennung wird sie
entsprechend ergänzt.
Die Dateikennung ("_" plus drei Zeichen, z. B. _SPF) ist
optional. Ist keine Kennung vorhanden wird der Dateiname
automatisch mit _MPF versehen.
Ist in "file" keine Pfadangabe vorhanden, wird die Datei im
aktuellen Verzeichnis (=Verzeichnis des angewählten Programms)
gesucht. Vorhandene Pfadangaben in "file", müssen mit einem
"/" beginnen (absolute Pfadangabe).
result Variable mit dem Ergebnis, in dem die File Information
abgelegt wird
(Call-By-Reference-Parameter) vom Typ STRING bei:
FILEDATE, die Länge muss 8 sein, Format ist "[Link]"
FILETIME, die Länge muss 8 sein, Format ist "hh:[Link]"
FILESTAT, die Länge muss 5 sein, Format ist "rwxsd"
FILEINFO, die Länge muss 32 sein, Format ist
"rwxsd nnnnnnnn [Link] hh:mm:ss"
(Call-By-Reference-Parameter) vom Typ INT bei:
FILESIZE, Filegröße wird in Byte ausgegeben
"rwxsd" (Read, write, eXecute, Show, Delete)

Beispiele

N10 DEF INT ERROR ;Fehlervariable


N20 STRING[32] RESULT ;Ergebnisvariable
...
N30 FILEINFO(ERROR, "TESTFILE", RESULT) ;Dateiname ohne Domain- und Dateikennung
...
N30 FILEINFO(ERROR, "TESTFILE_MPF", ;Dateiname ohne Domain- und mit
RESULT) ;Dateikennung
...
N30 FILEINFO(ERROR,"_N_TESTFILE_MPF", ;Dateiname mit Domain- und Dateikennung
RESULT)
...
N30 FILEINFO ;Dateiname mit Domain- , Dateikennung
(ERROR,"/_N_MPF_DIR/_N_TESTFILE_MPF", ;und Pfadangabe
RESULT)
...
N40 IF ERROR <>0 ;Fehlerauswertung
N50 MSG("FEHLER "<<ERROR<<"
BEI FILEINFO-BEFEHL")
N60 M0
N70 ENDIF
...
Liefert in der Ergebnisvariablen RESULT: "77777 12345678 26.05.00 13:51:30"

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-73
Flexible NC-Programmierung
1.23 CHECKSUM: Checksummenbildung über ein Feld

1.23 1.23 CHECKSUM: Checksummenbildung über ein Feld

Funktion
Mit CHECKSUM bilden Sie die Checksumme über ein Feld.
Anwendung:
Prüfung, ob sich beim Abspanen die Eingangskontur geändert hat.

Programmierung
error=CHECKSUM(VAR STRING[16] chksum, STRING[32]array, INT first,
INT last)

Parameter

CHECKSUM Über ein Feld die Checksumme bilden


error Fehlervariable für Rückgabe Darstellung
0: kein Fehler
1: Symbol nicht gefunden
2: kein Feld
3: Index 1 zu groß
4: Index 2 zu groß
5: ungültiger Datentyp
10: Überlauf der Checksumme
chksum Checksumme über das Feld als STRING (Call-By-Reference-
Parameter vom Typ STRING), mit einer festgesetzten Länge von
16.
Die Checksumme wird als Zeichenkette von 16 Hex-Ziffern
dargestellt. Es werden aber keine Formatzeichen mit angegeben.
Beispiel: "A6FC3404E534047C"
array Name des Feldes über das die Checksumme gebildet werden soll.
(Call-By-Value-Parameter vom Typ STRING), mit einer max. Länge
von 32.
Zulässige Felder:
1- oder 2-dimensionale Felder der Typen
BOOL, CHAR, INT, REAL, STRING
Felder von Maschinendaten sind nicht zulässig.
first Spaltennummer der Anfangsspalte (optional)
last Spaltennummer der Endspalte (optional)

Hinweis
Die Parameter first und last sind optional. Werden keine Spaltenindizes angegeben, so wird
die Checksumme über das komplette Feld gebildet.
Das Ergebnis der Checksumme ist immer eindeutig. Bei Änderungen eines Feldelements
ergibt sich auch ein anderer Ergebnisstring.

Arbeitsvorbereitung
1-74 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Flexible NC-Programmierung
1.24 ROUNDUP: Aufrunden

Beispiel

N10 DEF INT ERROR


N20 DEF STRING[16] MY_CHECKSUM
N30 DEF INT MY_VAR[4,4]
N40 MY_VAR=...
N50 ERROR=CHECKSUM (CHECKSUM;"MY_VAR", 0, 2)
...
liefert in MY_CHECKSUM den Wert "A6FC3404E534047C"

1.24 1.24 ROUNDUP: Aufrunden

Funktion
Die Funktion ROUNDUP liefert bei
● positiven Eingabewerten
die nächste größere ganze Zahl
● negativen Eingabewerten
die nächste kleinere ganze Zahl
Ist der Eingabewert vom Typ Integer (eine ganze Zahl), so wird der Wert unverändert
zurückgeliefert.

Programmierung
ROUNDUP(Variable Real)

Parameter

ROUNDUP Rundet auf die nächste größere ganze Zahl


vorzeichenrichtig auf.
Variable Eingabewert vom Typ Real
Real Variablen Typ für gebrochene Zahlen mit Dezimalpunkt

ROUNDUP im NC-Teileprogramm

N10 X = ROUNDUP(3.5) Y = ROUNDUP(R2+2)


N15 R2 = ROUNDUP($AA_IM[Y])
N20 WHEN X = = 100 DO Y = ROUNDUP($AA_IM[X])

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 1-75
Flexible NC-Programmierung
1.24 ROUNDUP: Aufrunden

Beispiele
ROUNDUP(3.1) ergibt 4.0
ROUNDUP(3.6) ergibt 4.0
ROUNDUP(-3.1) ergibt -3.0
ROUNDUP(-3.6) ergibt -3.0
ROUNDUP(3.0) ergibt 3.0
ROUNDUP(3) ergibt 3.0

Arbeitsvorbereitung
1-76 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik 2
2.1 2.1 Unterprogramme einsetzen

Funktion
Im Prinzip ist ein Unterprogramm aufgebaut wie ein Teileprogramm. Es setzt sich aus NC-
Sätzen mit Fahr- und Schaltbefehlen zusammen.
Prinzipiell besteht zwischen Haupt- und Unterprogramm kein Unterschied. Das
Unterprogramm enthält entweder Arbeitsabläufe oder Arbeitsabschnitte, die mehrfach
durchlaufen werden sollen.

+DXSWSURJUDPP

8QWHUSURJUDPP

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-1
Unterprogrammtechnik, Makrotechnik
2.1 Unterprogramme einsetzen

Anwendung
Bearbeitungsfolgen, die sich wiederholen, programmiert man nur einmal in einem
Unterprogramm. Beispielsweise bestimmte Konturformen, die immer wieder vorkommen
oder auch Bearbeitungszyklen.
Dieses Unterprogramm kann dann in jedem beliebigen Hauptprogramm aufgerufen und
abgearbeitet werden.

8QWHUSURJUDPP

Aufbau des Unterprogramms


Der Aufbau des Unterprogramms ist identisch mit dem des Hauptprogramms.
Zusätzlich kann im Unterprogramm ein Programmkopf mit Parameterdefinitionen
programmiert werden.
Unterprogramme werden mit dem Programmende M17 versehen. Dies bedeutet hier die
Rückkehr in die aufrufende Programmebene. Über Maschinendatum kann das
Programmende M17 unterdrückt werden (z. B. um Laufzeitvorteile zu erreichen).

Unterprogrammende mit RET


Als Ersatz für den Rücksprung mit M17 kann im Unterprogramm auch die Anweisung RET
verwendet werden. RET erfordert einen eigenen Satz.
Die RET-Anweisung ist dann zu benutzen, wenn ein G64-Bahnsteuerbetrieb (G641, G642,
G643) durch die Rückkehr nicht unterbrochen werden soll. Voraussetzung dafür ist, dass
das Unterprogramm kein SAVE-Attribut besitzt.
Wird M17 in einem eigenen Satz programmiert, wird G64 unterbrochen und Genauhalt
erzeugt. Abhilfe: M17 nicht alleine in einem UP-Satz schreiben, sondern z. B. mit einem
Verfahrweg:
G1 X=YY M17
Per Maschinendatum muss gesetzt sein: "kein M17 aus PLC".

Arbeitsvorbereitung
2-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.1 Unterprogramme einsetzen

Unterprogrammname
Um ein bestimmtes Unterprogramm aus mehreren auswählen zu können, bekommt das
Programm einen Namen. Der Name kann beim Erstellen des Programms unter Einhaltung
folgender Festlegungen frei gewählt werden:
● die ersten beiden Zeichen müssen Buchstaben sein
● sonst Buchstaben, Ziffern oder Unterstriche
● maximal 31 Zeichen verwenden
● keine Trennzeichen verwenden (siehe Kapitel "Sprachelemente der
Programmiersprache")
Es gelten die gleichen Regeln wie für Hauptprogrammnamen.

Schachtelung von Unterprogrammen


Unterprogramme können nicht nur im Hauptprogramm aufgerufen werden, sondern auch in
einem Unterprogramm. Insgesamt stehen für einen derartigen geschachtelten Aufruf
maximal 12 Programmebenen zur Verfügung; einschließlich der Hauptprogrammierebene.
Dies bedeutet: Von einem Hauptprogramm können 11 geschachtelte Unterprogrammaufrufe
ausgehen.

3URJUDPPHEHQHQPD[

+DXSW
SURJU 8QWHU
SURJU 8QWHU
SURJU
... 8QWHU
... SURJU

Randbedingungen für Unterprogramme in Interruptroutinen und Zyklenbearbeitung


Auch in Interruptroutinen können Unterprogramme aufgerufen werden. Für das Arbeiten mit
Interruptroutinen sollten Sie 4 Ebenen freihalten bzw. nur 7 Unterprogrammaufrufe
verschachteln.
Für SIEMENS Bearbeitungs- und Messzyklen werden 3 Ebenen benötigt. Soll ein Zyklus von
einem Unterprogramm aufgerufen werden, kann dies maximal in Ebene 5 erfolgen (falls 4
Ebenen für Interruptroutinen reserviert bleiben).

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-3
Unterprogrammtechnik, Makrotechnik
2.2 Unterprogramme mit SAVE-Mechanismus

2.2 2.2 Unterprogramme mit SAVE-Mechanismus

Funktion
Hierfür geben Sie bei der Definitionsanweisung mit PROC zusätzlich den Befehl SAVE an.

Programmierung
Im Unterprogramm
PROC Unterprogrammname SAVE
Durch das SAVE-Attribut werden die modalen G-Funktionen nach dem Ende der
Unterprogramme auf den Wert, den sie beim Start der Unterprogramme hatten, eingestellt.
Ergibt sich dadurch eine Änderung der
G-Funktionsgruppe 8 (einstellbare Nullpunktverschiebung)
oder
G-Funktionsgruppe 52 (Framedrehung eines drehbaren Werkstücks)
oder
G–Funktionsgruppe 53 (Framedrehung in Werkzeugrichtung),
so werden die jeweiligen Frames wiederhergestellt.
● Der aktive Basisframe wird beim Unterprogrammrücksprung nicht verändert
● Die programmierbare Nullpunktverschiebung wird wiederhergestellt

Parameter
Das Verhalten von einstellbarer Nullpunktverschiebung und Basisframe kann über das
Maschinendatum MD 10617: FRAME_SAVE_MASK verändert werden. Siehe Literatur,
/FB1/ Funktionshandbuch Grundfunktionen; Achsen, Koordinatensysteme, Frames (K2),
Kapitel "Unterprogrammrücksprung mit SAVE".

Beispiel
Unterprogrammdefinition
PROC KONTUR (REAL WERT1) SAVE
N10 G91 …
N100 M17
Hauptprogramm
%123
N10 G0 X… Y… G90
N20…
N50 KONTUR (12.4)
N60 X… Y…
Im Unterprogramm KONTUR wirkt G91 Kettenmaß. Nach Rücksprung ins Hauptprogramm
wirkt wieder Absolutmaß, da die modalen Funktionen des Hauptprogramms mit SAVE
gespeichert wurden.

Arbeitsvorbereitung
2-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.3 Unterprogramme mit Parameterübergabe (PROC, VAR)

2.3 2.3 Unterprogramme mit Parameterübergabe (PROC, VAR)

Funktion
Programmanfang, PROC
Ein Unterprogramm, das beim Programmablauf vom aufrufenden Programm Parameter
übernehmen soll, wird mit dem Schlüsselwort PROC gekennzeichnet.
Unterprogrammende M17, RET
Mit dem Befehl M17 kennzeichnet man das Unterprogrammende mit gleichzeitiger
Anweisung zum Rücksprung in das aufrufende Hauptprogramm. Alternativ zu M17: Das
Schlüsselwort RET steht für Unterprogrammende ohne Unterbrechung des
Bahnsteuerbetriebs und ohne Funktionsausgabe an die PLC.

Programmierung
Die für die Parameterübergabe relevanten Parameter müssen im Programmanfang des
Unterprogramms mit Typ und Name aufgeführt werden.
Parameterübergabe Call-by-value
PROC PROGRAMMNAME(VARIABLENTYP1 VARIABLE1,VARIABLENTYP2 VARIABLE2,…)
Beispiel:
PROC KONTUR(REAL LAENGE, REAL BREITE)
Parameterübergabe Call-by-reference, Kennzeichnung mit Schlüsselwort VAR
PROC PROGRAMMNAME(VAR VARIABLENTYP1 VARIABLE1,VAR VARIABLENTYP2 …,)
Beispiel:
PROC KONTUR(VAR REAL LAENGE, VAR REAL BREITE)
Übergabe von Feldern Call-by-reference, Kennzeichnung mit Schlüsselwort VAR
PROC PROGRAMMNAME(VAR VARIABLENTYP1 FELDNAME1[Feldgröße],
VAR VARIABLENTYP2 FELDNAME2[Feldgröße],
VAR VARIABLENTYP3 FELDNAME3[Feldgröße1, Feldgröße2],
VAR VARIABLENTYP4 FELDNAME4[ ],
VAR VARIABLENTYP5 FELDNAME5 [,Feldgröße])
Beispiel:
PROC PALETTE(VAR INT FELD[,10])

Parameter
PROC Erste Anweisung eines Programms
PROGRAMMNAHME Unterprogrammname, das die relevanten Werte der Parameter
übernehmen soll
VARIABLENTYP Variablentypen mit Angabe der Variablenwerte.
VARIABLE Es sind jeweils mehrere Angaben sind möglich.
VAR Schlüsselwort für die Art der Parameterübergabe
FELDNAME Elemente eines Feldes mit aufgelisteten Werten bei der
Felddefinition
Feldgröße1 für eindimensionales Feld
Feldgröße2 für zweidimensionals Feld

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-5
Unterprogrammtechnik, Makrotechnik
2.3 Unterprogramme mit Parameterübergabe (PROC, VAR)

Hinweis
Die Definitionsanweisung mit PROC muss in einem eigenen NC-Satz programmiert werden.
Für die Parameterübergabe können maximal 127 Parameter vereinbart werden.

Beispiel Parameterübergabe zwischen Haupt- und Unterprogramm


N10 DEF REAL LAENGE,BREITE
N20 LAENGE=12 BREITE=10
N30 RAHMEN(LAENGE,BREITE)

+DXSWSURJUDPP

:HUW]XZHLVXQJ
/$(1*( 
%5(,7(  8QWHUSURJUDPP
/$(1*(%5(,7(

QHXH
:HUW]XZHLVXQJ
/$(1*( 
%5(,7( 
QHXH:HUWH
J¾OWLJ

DOWH:HUWH
J¾OWLJ

Die im Hauptprogramm in N20 zugewiesenen Werte werden beim Unterprogrammaufruf in


N30 übergeben. Die Übergabe der Parameter erfolgt in der angegebenen Reihenfolge.
Die Parameternamen müssen in Haupt- und Unterprogramm nicht identisch sein.
Zweite Möglichkeiten für Parameterübergabe:
● Werte werden nur übergeben (Call-by-value)
Falls die übergebenen Parameter beim Ablauf des Unterprogramms verändert werden, hat
dies keinen Einfluss auf das Hauptprogramm. Hier bleiben die Parameter unverändert (siehe
Bild).

Arbeitsvorbereitung
2-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.3 Unterprogramme mit Parameterübergabe (PROC, VAR)

+DXSWSURJUDPP

:HUW]XZHLVXQJ
/$(1*( 
%5(,7( 
8QWHUSURJUDPP
/$(1*(%5(,7(

QHXH
:HUW]XZHLVXQJ
/$(1*( 
%5(,7( 
QHXH:HUWH
J¾OWLJ

/$(1*(%5(,7(
QHXH:HUWH
J¾OWLJ

● Parameterübergabe mit Datenaustausch (Call-by-reference)


Jede Änderung der Parameter im Unterprogramm bewirkt gleichzeitig die Änderung des
Parameters im Hauptprogramm (siehe Bild).

Beispiel Variablen Feldlängen

%_N_BOHRPLATTE_MPF Hauptprogramm
DEF REAL TABELLE[100,2] ;Positionstabelle definieren
EXTERN BOHRBILD (VAR REAL[,2],INT)
TABELLE[0,0]=-17.5 ;Positionen festlegen

TABELLE[99,1]=45
BOHRBILD(TABELLE,100) ;Unterprogrammaufruf
M30

Beispiel Herstellung eines Bohrbilds anhand einer übergebenen Positionstabelle variabler Länge

%_N_BOHRBILD_SPF Unterprogramm
PROC BOHRBILD(VAR REAL FELD[,2],-> ;Parameterübergabe
-> INT ANZAHL)
DEF INT ZAEHLER
STEP: G1 X=FELD[ZAEHLER,0]-> ;Bearbeitungsfolge
-> Y=FELD[ZAEHLER,1] F100
Z=IC(-5)
Z=IC(5)
ZAEHLER=ZAEHLER+1

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-7
Unterprogrammtechnik, Makrotechnik
2.3 Unterprogramme mit Parameterübergabe (PROC, VAR)

IF ZAEHLER<ANZAHL GOTOB STEP


RET ;Unterprogrammende

Unterbrechungsfreier Bahnsteuerbetrieb
Voraussetzung dafür, dass der Bahnsteuerbetrieb nicht unterbrochen wird ist:
Das Unterprogramm darf kein SAVE-Attribut besitzen. Weitere Hinweise zum SAVE-
Mechanismus siehe Kapitel Unterprogramm mit SAVE-Mechanismus.
RET muss im eigenen NC-Satz programmiert werden.
PROC KONTUR
N10…

N100 M17

Parameterübergabe zwischen Haupt- und Unterprogramm


Wenn Sie im Hauptprogramm mit Parametern arbeiten, können Sie die entsprechenden
berechneten oder zugewiesenen Werte auch im Unterprogramm verwenden. Hierfür werden
die Werte der aktuellen Parameter des Hauptprogramms beim Unterprogramm-Aufruf an die
formalen Parameter des Unterprogramms übergeben und dann beim Unterprogramm-Ablauf
verarbeitet.

Felddefinition
Für die Definition der formalen Parameter gilt: Bei zweidimensionalen Feldern muss die
Feldanzahl der 1. Dimension nicht angegeben werden, das Komma aber geschrieben
werden.
Beispiel:
VAR REAL FELD[,5]
Mit unbestimmten Feldlängen können Unterprogramme Felder variabler Länge bearbeiten.
Bei der Definition der Variablen muss jedoch festgelegt werden, wie viele Elemente
aufgenommen werden sollen. Die Erklärungen zur Felddefinition finden Sie unter "Flexible
NC-Programmierung" im gleichnamigen Kapitel Felddefinition.

Arbeitsvorbereitung
2-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.4 Unterprogramme aufrufen (L bzw. EXTERN)

2.4 2.4 Unterprogramme aufrufen (L bzw. EXTERN)

Funktion
Unterprogrammaufrufe ohne Parameterübergabe
Im Hauptprogramm rufen Sie das Unterprogramm entweder
● mit Adresse L und Unterprogrammnummer oder
● durch Angabe des Programmnamens auf.
Beispiel:
N10 L47 oder
N10 ZAPFEN_2

+DXSWSURJUDPP

1/
RGHU 8QWHUSURJUDPP
1 =DSIHQB

Programmierung
Unterprogramm mit Parameterübergabe, Erklärung mit EXTERN
EXTERN
Unterprogramme mit Parameterübergabe müssen vor dem Aufruf im Hauptprogramm mit
EXTERN aufgeführt werden, z. B. am Programmanfang.
Angegeben werden der Name des Unterprogramms und die Variablentypen in der
Reihenfolge der Übergabe, siehe Beispiel.
Unterprogramme mit Parameterübergabe
Im Hauptprogramm rufen Sie das Unterprogramm durch Angabe des Programmnamens und
der Parameterübergabe auf. Bei der Parameterübergabe können Sie Variablen oder Werte
direkt (nicht bei VAR-Parametern) übergeben, siehe Beispiel.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-9
Unterprogrammtechnik, Makrotechnik
2.4 Unterprogramme aufrufen (L bzw. EXTERN)

Parameter

Adresse L Unterprogramm-Nummer.
Für den Wert sind 7 Dezimalstellen (nur ganzzahlig) möglich.
Achtung: Führende Nullen sind bei der Namensgebung von
Bedeutung (z. B. sind L123, L0123 und L00123 drei verschiedene
Unterprogramme).
EXTERN Bekanntmachung eines Unterprogramms mit Parameterangabe.
EXTERN muss nur dann angegeben werden, wenn das Unterprogramm
im Werkstück oder im globalen Unterprogrammdirectory steht.
Zyklen müssen nicht als EXTERN erklärt werden.

Unvollständige Parameterübergabe
Beim Unterprogrammaufruf können eigentlich vorgeschriebene Werte oder Parameter
weggelassen werden. In diesem Fall wird der entsprechende Parameter im Unterprogramm
mit Null belegt.
Für die Angabe der Reihenfolge muss das Komma geschrieben werden. Stehen die
Parameter am Ende der Reihenfolge, kann das Komma ebenfalls entfallen.

Vorsicht
Aktuelle Parameter vom Typ AXIS dürfen nicht weggelassen werden. VAR-Parameter
müssen vollständig übertragen werden

Beispiel Unterprogramm mit Parameterübergabe, Erklärung mit EXTERN


N10 EXTERN RAHMEN(REAL, REAL, REAL)

N40 RAHMEN(15.3,20.2,5)
N10 Angabe des Unterprogramms, N40 Aufruf des Unterprogramms mit
Parameterübertragung.

+DXSWSURJUDPP

1(;7(51
5$+0(1 5($/5($/5($/


15$+0(1 

Arbeitsvorbereitung
2-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.4 Unterprogramme aufrufen (L bzw. EXTERN)

Beispiel Unterprogrammaufruf mit Parameterübergabe


N10 DEF REAL LAENGE,BREITE,TIEFE
N20 …
N30 LAENGE=15.3 BREITE=20.2 TIEFE=5
N40 RAHMEN(LAENGE,BREITE,TIEFE)
oder
N40 RAHMEN(15.3,20.2,5)

+DXSWSURJUDPP

1/$(1*( %5(,7( 7,()( 


15$+0(1 /$(1*(%5(,7(7,()(
RGHU
15$+0(1 

Beispiel Unterprogramm
PROC SUB1 (INT VAR1, DOUBLE VAR2)
IF $P_SUBPAR[1]==TRUE
;Parameter VAR1 wurde im Unterprogrammaufruf programmiert
ELSE
;Parameter VAR1 wurde im Unterprogrammaufruf nicht programmiert
;und vom System mit dem Defaultwert 0 vorbesetzt
ENDIF
IF $P_SUBPAR[2]==TRUE
;Parameter VAR2 wurde im Unterprogrammaufruf programmiert
ELSE
;Parameter VAR2 wurde im Unterprogrammaufruf nicht
;programmiert und vom System mit dem Defaultwert 0.0 vorbesetzt
ENDIF
;Parameter 3 ist nicht definiert
IF $P_SUBPAR[3]==TRUE -> Alarm 17020
M17

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-11
Unterprogrammtechnik, Makrotechnik
2.4 Unterprogramme aufrufen (L bzw. EXTERN)

Beschreibung

Vorsicht
Unterprogrammdefinition entspricht Unterprogrammaufruf
Sowohl die Variablentypen als auch die Reihenfolge der Übergabe muss mit den
Definitionen, die im Unterprogrammnamen unter PROC vereinbart wurden, übereinstimmen.
Die Parameternamen können in Haupt- und Unterprogramm unterschiedlich sein.
Definition im Unterprogramm:
PROC RAHMEN(REAL LAENGE, REAL BREITE, REAL TIEFE)
Aufruf im Hauptprogramm:
N30 RAHMEN(LAENGE, BREITE, TIEFE)

Unvollständige Parameterübergabe
Zurück zum letzten Beispiel:
N40 RAHMEN(15.3, ,5)
Der mittlere Wert 20.2 wurde hier weggelassen.

+DXSWSURJUDPP

1/$(1*( %5(,7( 7,()( 


15$+0(1 

Bei unvollständiger Parameterübergabe kann über die Systemvariable $P_SUBPAR[i]


erkannt werden, ob der Übergabeparameter für Unterprogramme tatsächlich programmiert
wurde oder nicht. Die Systemvariable erhält als Argument (i) die Nummer des
Übergabeparameters.
Die Systemvariable $P_SUBPAR liefert
● TRUE, wenn der Übergabeparameter programmiert wurde
● FALSE, wenn als Übergabeparameter kein Wert eingesetzt wurde.
Wurde eine unzulässige Parameternummer angegeben, dann wird die
Teileprogrammbearbeitung mit Alarm abgebrochen.

Arbeitsvorbereitung
2-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.4 Unterprogramme aufrufen (L bzw. EXTERN)

Hauptprogramm als Unterprogramm aufrufen


Auch ein Hauptprogramm kann als Unterprogramm aufgerufen werden. Das im
Hauptprogramm gesetzte Programmende M2 oder M30 wird in diesem Fall wie M17
(Programmende mit Rücksprung ins aufrufende Programm) gewertet.
Den Aufruf programmieren Sie durch Angabe des Programmnamens.
Beispiel:
N10 MPF739 oder
N20 Welle3

+DXSWSURJUDPP

103) ZHLWHUHV
RGHU +DXSWSURJUDPP
1:(//(

1



10

Entsprechend kann ein Unterprogramm auch als Hauptprogramm gestartet werden.

Hinweis
Suchstrategie der Steuerung:
Gibt es *_MPF?
Gibt es *_SPF?
Daraus folgt: Falls der Name des aufzurufenden Unterprogramms mit dem Namen des
Hauptprogramms identisch ist, dann wird das aufrufende Hauptprogramm wieder
aufgerufen. Dieser in der Regel nicht gewünschte Effekt muss durch eindeutige
Namenswahl über Unterprogramme und Hauptprogramme vermieden werden.

Aufruf von Unterprogrammen mit der INI-Datei


Aus einer Initialisierungsdatei können Unterprogramme, die keine Parameterübergabe
erfordern, aufgerufen werden:
Beispiel:
N10 MYINISUB1 ;Unterprogrammaufruf ohne Parameter

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-13
Unterprogrammtechnik, Makrotechnik
2.5 Parametrierbarer Unterprogrammrücksprung (RET)

2.5 2.5 Parametrierbarer Unterprogrammrücksprung (RET)

Funktion
Im allgemeinen wird aus einem Unterprogramm mit einem Unterprogrammende RET oder
M17 in das aufgerufene Programm zurückgesprungen und die Bearbeitung des
Teileprogramms mit der auf den Unterprogrammaufruf folgenden Programmzeile fortgesetzt.
Es gibt jedoch auch Anwendungsfälle, wo es gewünscht ist, die Programmbearbeitung an
einer anderen Stelle fortzusetzen:
● Fortsetzung der Programmbearbeitung nach Aufruf der Abspanzyklen im ISO-Dialekt-
Mode, nach der Konturbeschreibung.
● Rücksprung ins Hauptprogramm aus einer beliebigen Unterprogrammebene (auch nach
ASUP) beim Fehlerhandling.
● Rücksprung über mehrere Programmebenen für spezielle Anwendungen in
Compilezyklen und im ISO-Dialekt-Mode.

Programmierung
RET (<Satznummer/Label>, <Satz nach Satz mit Satznummer/Label>,
<Anzahl der Rücksprungebenen>), <Rücksprung auf Programmanfang>)
oder
RET (<Satznummer/Label>, < >, < >)
oder Unterprogrammrücksprung über mehrere Ebenen
(springe um die angegebene Anzahl der Unterprogrammebenen zurück).
RET (, , <Anzahl_Rücksprungebenen>, <Rücksprung auf Programmanfang>)

Parameter
Mit dem parametrierbaren Befehl RET können die Anforderungen der Fortsetzung bzw. des
Rücksprungs mit 4 Parametern erfüllt werden:
1. <Satznummer/Label>
2. <Satz nach Satz mit Satznummer/Label>
3. <Anzahl der Rücksprungebenen>
4. <Rücksprung auf Programmanfang>

RET Unterprogrammende
(Verwendung statt M17)
<Satznummer/Label> Parameter: Satznummer oder Label als
STRING (Konstante oder Variable) des
Satzes an dem die
Programmbearbeitung fortgesetzt
werden soll.
Die Programmbearbeitung im
aufrufenden Programm wird mit dem
Satz mit "Satznummer/Label"
fortgesetzt.

Arbeitsvorbereitung
2-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.5 Parametrierbarer Unterprogrammrücksprung (RET)

<Satz nach Satz mit Satznummer/Label>, Parameter vom Typ INTEGER


Ist der Wertgrößer als 0, wird mit
dem nächsten Satz nach
"Satznummer/Label" fortgesetzt. Ist
der Wertgleich 0, erfolgt der
Unterprogrammrücksprung auf den Satz
mit <Satznummer/Label>.
<Anzahl_Rücksprungebenen>, Parameter vom Typ INTEGER mit den
zulässigen Werten1 bis 11.
Wert = 1: Das Programm wird in der
aktuellen Programmebene –fortgesetzt
(wie RET ohne Parameter).
Wert = 2: Das Programm wird in der
aktuellen Programmebene –
fortgesetzt, dabei wird eine Ebene
übersprungen usw.
<Rücksprung auf Programmanfang>, Parameter vom Typ BOOL
Wert1 oder 0.
Wert = 1 Wenn der Rücksprung ins
Hauptprogramm erfolgt und dort ein
ISO-Dialekt-Mode aktiv ist, wird auf
den Programmanfang verzweigt.

Beispiel Fehlerhandling: Wiederaufsetzen im Hauptprogramm nach ASUP-Bearbeitung

N10010 CALL "UP1" ;Programmebene 0 Hauptprogramm


N11000 PROC UP1 ;Programmebene 1
N11010 CALL "UP2
N12000 PROC UP2 ;Programmebene 2
N19000 PROC ASUP ;Programmebene 2 (ASUP-Bearbeitung)
... RET("N10900", , ... ;Programmebene 3
N19100 RET(N10900, ,$P_STACK) ;Unterprogrammrücksprung
N10900 ;Wiederaufsetzen im Hauptprogramm
N10910 MCALL ;modales Unterprogramm ausschalten
N10920 G0 G60 G40 M5 ;weitere modale Einstellungen
;korrigieren

Beschreibung
1. <Satznummer/Label>
Im aufrufenden Programm (Hauptprogramm) wird mit dem Satz mit <Satznummer/Label>
fortgesetzt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-15
Unterprogrammtechnik, Makrotechnik
2.5 Parametrierbarer Unterprogrammrücksprung (RET)


+DXSWSURJUDPP 

8QWHUSURJUDPP 
168%
1*
352&68%
1



15(7 1ರ 

1

2. <Satz nach Satz mit Satznummer/Label>


Der Unterprogrammrücksprung erfolgt auf den Satz nach dem Satz mit
<Satznummer/Label>.


+DXSWSURJUDPP 

8QWHUSURJUDPP 
168%
1*
352&68%
1



15(7 1ರ 
1
1
1

3. <Anzahl der Rücksprungebenen>


Das Programm wird in der aktuellen Programmebene minus <Anzahl der
Rücksprungebenen> fortgesetzt.

Arbeitsvorbereitung
2-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.5 Parametrierbarer Unterprogrammrücksprung (RET)

+DXSW
SURJU

8QWHU
SURJU

3URJUDPPHEHQHQ
8QWHU PD[
SURJU

8QWHU
SURJU

5(7 1

1
5¾FNVSUXQJ

5¾FNVSUXQJ

Nicht zulässige Rücksprungebenen


Ist für die Anzahl der Rücksprungebenen ein
● negativer Wert oder
● ein Wert größer als die aktuell aktiven Programmebenen –(maximal 11)
programmiert, wird der Alarm 14091 mit dem Parameter 5 ausgegeben.

Rücksprung mit SAVE-Anweisungen


Beim Rücksprung über mehrere Programmebenen werden die SAVE-Anweisungen der
einzelnen Programmebenen ausgewertet.

Beim Rücksprung modales Unterprogramm aktiv


Ist bei einem Rücksprung über mehrere Programmebenen ein modales Unterprogramm
aktiv und ist in einem der übersprungenen Unterprogramme der Abwahlbefehl MCALL für
das modale Unterprogramm programmiert, bleibt das modale Unterprogramm weiterhin
aktiv.

Vorsicht
Der Anwender muss immer selbst sicherstellen, dass beim Rücksprung über mehrere
Programmebenen mit den richtigen modalen Einstellungen fortgesetzt wird. Dies wird z. B.
durch Programmierungen eines entsprechenden Hauptsatzes erreicht.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-17
Unterprogrammtechnik, Makrotechnik
2.6 Unterprogramm mit Programmwiederholung (P)

2.6 2.6 Unterprogramm mit Programmwiederholung (P)

Funktion
Soll ein Unterprogramm mehrfach hintereinander abgearbeitet werden, kann im Satz mit
dem Unterprogrammaufruf unter der Adresse P die gewünschte Anzahl der
Programmwiederholungen programmiert werden.

Parameter

Vorsicht
Unterprogrammaufruf mit Programmwiederholung und Parameterübergabe
Parameter werden nur beim Programmaufruf bzw. ersten Durchlauf übergeben. Für die
weiteren Wiederholungen bleiben die Parameter unverändert.
Falls Sie bei Programmwiederholungen die Parameter verändern wollen, müssen Sie im
Unterprogramm entsprechende Vereinbarungen festlegen.

P Anzahl der Unterprogrammdurchläufe


Wertebereich: 1…9999 (Integer ohne Vorzeichen)

Vorsicht
Für jeden Unterprogrammaufruf gilt:
Der Unterprogrammaufruf muss immer im eigenen NC-Satz programmiert werden.

Beispiel
N40 RAHMEN P3

Arbeitsvorbereitung
2-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.6 Unterprogramm mit Programmwiederholung (P)

+DXSWSURJUDPP

8QWHUSURJUDPP
15$+0(13

  

Das Unterprogramm Rahmen soll dreimal hintereinander abgearbeitet werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-19
Unterprogrammtechnik, Makrotechnik
2.7 Modales Unterprogramm (MCALL)

2.7 2.7 Modales Unterprogramm (MCALL)

Funktion
Mit dieser Funktion wird das Unterprogramm nach jedem Satz mit Bahnbewegung
automatisch aufgerufen und abgearbeitet. Hierdurch lässt sich der Aufruf von
Unterprogrammen, die an unterschiedlichen Werkstückpositionen abgearbeitet werden
sollen, automatisieren; zum Beispiel für die Herstellung von Bohrbildern.
Modalen Unterprogrammaufruf ausschalten
Mit MCALL ohne Unterprogrammaufruf oder durch Programmierung eines neuen modalen
Unterprogrammaufrufs für ein neues Unterprogramm.

Parameter

MCALL Modaler Unterprogrammaufruf


Adresse L Unterprogramm-Nummer

Vorsicht
In einem Programmablauf kann gleichzeitig nur ein MCALL-Aufruf wirken. Parameter werden
nur einmal beim MCALL-Aufruf übergeben. Das modale Unterprogramm wird in folgenden
Situationen auch ohne Programmierung einer Bewegung aufgerufen: Bei Programmierung
der Adressen S und F wenn G0 oder G1 aktiv ist. G0/G1 allein im Satz oder mit weiteren G-
Codes programmiert wurde.

Beispiel
N10 G0 X0 Y0
N20 MCALL L70
N30 X10 Y10
N40 X50 Y50
In den Sätzen N30 und N40 wird die programmierte Position angefahren und anschließend
das Unterprogramm L70 abgearbeitet.
N10 G0 X0 Y0
N20 MCALL L70
N30 L80

Arbeitsvorbereitung
2-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.7 Modales Unterprogramm (MCALL)

+DXSWSURJUDPP

1*;<
10&$/// 8QWHUSURJUDPP /
1;<

1;<

In diesem Beispiel stehen die nachfolgenden NC-Sätze mit programmierten Bahnachsen in


Unterprogramm L80. L70 wird durch L80 aufgerufen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-21
Unterprogrammtechnik, Makrotechnik
2.8 Unterprogramm indirekt aufrufen (CALL)

2.8 2.8 Unterprogramm indirekt aufrufen (CALL)

Funktion
In Abhängigkeit von den gegebenen Bedingungen können an einer Stelle unterschiedliche
Unterprogramme aufgerufen werden. Hierzu wird der Name des Unterprogramms in einer
Variablen vom Typ STRING hinterlegt. Der Unterprogrammaufruf erfolgt mit CALL und dem
Variablennamen.

Programmierung
CALL <Programmname>

Parameter

CALL Schlüsselwort für indirekten Unterprogrammaufruf


<Programmname> Variable oder Konstante vom Typ String
Name des Programms, das den zu bearbeitenden Programmteil
enthält

Vorsicht
Der indirekte Unterprogrammaufruf ist nur für Unterprogramme ohne Parameterübergabe
möglich. Für den direkten Aufruf eines Unterprogramms hinterlegen Sie den Namen in einer
String-Konstanten

Beispiel
Direkter Aufruf mit String-Konstante
CALL "/_N_WKS_DIR/_N_SUBPROG_WPD/_N_TEIL1_SPF"
Indirekter Aufruf über Variable
DEF STRING[100] PROGNAME
PROGNAME="/_N_WKS_DIR/_N_SUBPROG_WPD/_N_TEIL1_SPF"
CALL PROGNAME
Das Unterprogramm Teil1 wird der Variablen PROGNAME zugeordnet. Mit CALL und
Pfadangabe wird das Unterprogramm indirekt aufgerufen.

2.9 2.9 Programmteilwiederholung mit indirekter Programmierung (CALL)

Funktion
Mit CALL können Unterprogramme indirekt aufgerufen werden, bei denen die mit BLOCK
definierten Programmteilwiederholungen gemäß Startlabel und Endelabel durchgeführt
werden.

Arbeitsvorbereitung
2-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.9 Programmteilwiederholung mit indirekter Programmierung (CALL)

Programmierung
CALL <Programmname> BLOCK <Startlabel> TO <Endelabel>
CALL BLOCK <Startlabel> TO <Endelabel>

Parameter

CALL Schlüsselwort für indirekten


Unterprogrammaufruf
<Programmname> (Option) Variable oder Konstante vom Typ
String Name des Programms, das den
zu bearbeitenden Programmteil
enthält.
Ist kein <Programmname>
programmiert, wird der Programmteil
mit <Statlabel> <Endelabel> im
aktuellen Programm gesucht und
ausgeführt.
BLOCK ... TO ... Schlüsselwort für
indirekte Programmteilwiederholung
<Startlabel> <Endelabel> Variable oder Konstante vom Typ
String
Verweist auf den Beginn bzw. Ende
der zu bearbeitenden Programmteile

Beispiel

DEF STRING[20] STARTLABEL, ENDELABEL


STARTLABEL = "LABEL_1"
ENDELABEL = "LABEL_2"
...
CALL "CONTUR_1" BLOCK STARTLABEL TO ENDELABEL ...
M17
PROC CONTUR_1 ...
LABEL_1 ;Beginn Programmteilwiederholung
N1000 G1 ...
LABEL_2 ;Ende Programmteilwiederholung

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-23
Unterprogrammtechnik, Makrotechnik
2.10 Indirekter Aufruf eines in ISO-Sprache programmierten Programms (ISOCALL)

2.10 2.10 Indirekter Aufruf eines in ISO-Sprache programmierten Programms


(ISOCALL)

Funktion
Mit dem indirekten Programmaufruf ISOCALL kann ein in einer ISO-Sprache
programmiertes Programm aufgerufen werden. Dabei wird der in den Maschinendaten
eingestellte ISO-Mode aktiviert. Am Programmende wird wieder der ursprüngliche
Bearbeitungsmode wirksam. Ist in den Maschinendaten kein ISO-Mode eingestellt, erfolgt
der Aufruf des Unterprogramms im Siemens-Mode.
Weitere Informationen zum ISO-Mode siehe
/FBFA/ Funktionsbeschreibung ISO-Dialekte.

Programmierung
ISOCALL <Programmname>

Parameter

ISOCALL Unterprogrammaufruf mit dem der in den Maschinendaten


eingestellte ISO-Mode aktiviert wird
<Programmname> Variable oder Konstante vom Typ String
Name des in einer ISO-Sprache programmierten Programms

Beispiel Kontur mit Zyklenprogrammierung aus dem ISO-Mode heraus aufrufen

%_N_0122_SPF ;Konturbeschreibung im ISO-Mode


N1010 G1 X10 Z20
N1020 X30 R5
N1030 Z50 C10
N1040 X50
N1050 M99
N0010 DEF STRING[5] PROGNAME = "0122" ;Siemens-Teileprogramm (-Zyklus)
...
N2000 R11 = $AA_IW[X]
N2010 ISOCALL PROGNAME
N2020 R10 = R10+1 ;Programm [Link] im ISO-Mode
N2300 ... ;bearbeiten

N2400 M30

Arbeitsvorbereitung
2-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.11 Unterprogramm mit Pfadangabe und Parametern aufrufen (PCALL)

2.11 2.11 Unterprogramm mit Pfadangabe und Parametern aufrufen (PCALL)

Funktion
Mit PCALL können Unterprogramme mit absoluter Pfadangabe und Parameterübergabe
aufgerufen werden.

Programmierung
PCALL <Pfad/Programmname>(Parameter 1, …, Parameter n)

Parameter

PCALL Schlüsselwort für Unterprogrammaufruf mit absoluter


Pfadangabe.
<Pfadname> Absolute Pfadangabe beginnend mit "/", einschließlich
Unterprogrammnamen.
Wurde kein absoluter Pfad angegeben, verhält sich PCALL wie
ein Standard-Unterprogrammaufruf mit Programmbezeichner.
Der Programmbezeichner wird ohne Vorspann _N_ und ohne
Extention angegeben.
Soll der Programmname mit Vorspann und Extention programmiert
werden, so muss er explizit mit Vorspann und Extention als
Extern erklärt werden.
Parameter 1 bis n Aktual-Parameter entsprechend der PROC-Anweisung des
Unterprogramms.

Beispiel
PCALL/_N_WKS_DIR/_N_WELLE_WPD/WELLE(parameter1, parameter2, …)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-25
Unterprogrammtechnik, Makrotechnik
2.12 Suchpfad bei Unterprogrammaufrufen mit CALLPATH erweitern

2.12 2.12 Suchpfad bei Unterprogrammaufrufen mit CALLPATH erweitern

Funktion
Mit dem Befehl CALLPATH kann der Suchpfad für Unterprogrammaufrufe erweitert werden.
Damit können auch Unterprogramme aus einem nicht ausgewählten Werkstückdirectory
aufgerufen werden, ohne den vollständigen, absoluten Pfadnamen des Unterprogramms
anzugeben.
Die Suchpfaderweiterung erfolgt vor dem Eintrag für Anwenderzyklen (_N_CUS-DIR).
Abwahl der Suchpfaderweiterung
Die Suchpfaderweiterung wird durch folgende Ereignisse abgewählt:
● CALLPATH mit Leerstring
● CALLPATH ohne Parameter
● Teileprogrammende
● Reset

Programmierung
Außerhalb des existierenden Filesystems des NCK abgelegte Unterprogramme zum bereits
bestehenden NCK-Filesystem ergänzen.
CALLPATH <Pfadname>

Parameter

CALLPATH Schlüsselwort für programmierbare Suchpfaderweiterung. Der


Befehl CALLPATH wird in einer eigenen Teileprogrammzeile
programmiert.
<Pfadname> Konstante oder Variable vom Typ String. Enthält die absolute
Pfadangabe eines Directories beginnend mit "/", um das der
Suchpfad erweitert werden soll. Der Pfad muss vollständig mit
Prefixes und Suffixes angegeben werden (z. B.:
/_N_WKS_DIR/_N_WST_WPD). Enthält <Pfadname> einen Leerstring
oder wird CALLPATH ohne Parameter aufgerufen, wird die
Suchpfadanweisung wieder zurückgesetzt. Die maximale
Pfadlänge beträgt 128 Bytes.

Hinweis
CALLPATH prüft, ob der programmierte Pfadname tatsächlich vorhanden ist. Im Fehlerfall
wird die Teileprogrammbearbeitung mit Korrektursatz-Alarm 14009 abgebrochen.

Arbeitsvorbereitung
2-26 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.12 Suchpfad bei Unterprogrammaufrufen mit CALLPATH erweitern

Beispiel
CALLPATH ("/_N_WKS_DIR/_N_MYWPD_WPD")
Damit wird folgender Suchpfad eingestellt (Position 5. ist neu):
1. aktuelles Directory/unterprogrammbezeichner
2. aktuelles Directory/unterprogrammbezeichner_SPF
3. aktuelles Directory/unterprogrammbezeichner_MPF
4. /_N_SPF_DIR/unterprogrammbezeichner_SPF
5. /_N_WKS_DIR/_N_MYWPD/unterprogrammbezeichner_SPF
6. N_CUS_DIR/_N_MYWPD/unterprogrammbezeichner_SPF
7. /_N_CMA_DIR/unterprogrammbezeichner_SPF
8. /_N_CST_DIR/unterprogrammbezeichner_SPF

Hinweis
CALLPATH kann auch in INI-Dateien programmiert werden. Er wirkt dann für die
Bearbeitungsdauer der INI-Datei (WPD-INI-Datei oder Initialisierungsprogramm für NC-
aktive Daten, z. B. Frames im 1. Kanal _N_CH1_UFR_INI). Danach wird das
Initialisierungsprogramm wieder zurückgesetzt

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-27
Unterprogrammtechnik, Makrotechnik
2.13 Externes Unterprogramm abarbeiten (EXTCALL)

2.13 2.13 Externes Unterprogramm abarbeiten (EXTCALL)

Funktion
Mit EXTCALL können Sie ein Programm vom HMI im Modus "Abarbeiten von Extern"
nachladen. Dabei können alle Programme, die über die Verzeichnis-Struktur des HMI
erreichbar sind, nachgeladen und abgearbeitet werden.

Programmierung
EXTCALL ("<Pfad/Programmname>")

Parameter

EXTCALL Schlüsselwort für Unterprogrammaufruf


<Pfad/Programmname> Konstante/Variable vom Typ STRING
Es kann ein absoluter Pfad (bzw. ein
relativer Pfad) oder ein Programmname
angegeben werden.
Der Programmname wird mit/ohne Vorspann
_N_ und ohne Extension angegeben. Eine
Extension kann mit dem Zeichen <_> am
Programmnamen angefügt werden.
Beispiel:
EXTCALL ("/_N_WKS_DIR/_N_WELLE_WPD/_N_WELLE_SPF") oder EXTCALL ("WELLE")

Hinweis
Externe Unterprogramme dürfen keine Sprunganweisungen wie GOTOF, GOTOB, CASE, FOR,
LOOP, WHILE oder REPEAT enthalten.
IF-ELSE-ENDIF-Konstrukte sind möglich.
Unterprogrammaufrufe und geschachtelte EXTCALL-Aufrufe sind möglich.

RESET, POWER ON
Durch RESET und POWER ON werden externe Unterprogrammaufrufe abgebrochen und
die jeweiligen Nachladespeicher gelöscht.
Ein für "Abarbeiten von Extern" selektiertes Unterprogramm bleibt über RESET /
Teileprogrammende weiterhin für "Abarbeiten von Extern" angewählt. Durch POWER ON
geht die Anwahl verloren.

Arbeitsvorbereitung
2-28 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.13 Externes Unterprogramm abarbeiten (EXTCALL)

Beispiele
1. Abarbeiten von der lokalen Festplatte
Systeme: SINUMERIK solution line / powerline mit HMI Advanced
Das Hauptprogramm "_N_MAIN_MPF" befindet sich im NC-Speicher und ist zur Abarbeitung
angewählt:

N010 PROC MAIN


N020 ...
N030 EXTCALL ("SCHRUPPEN")
N040 ...
N050 M30

Das nachzuladende Unterprogramm "_N_SCHRUPPEN_SPF" befindet sich auf der lokalen


Festplatte in dem Verzeichnis "_N_WKS_DIR/_N_WST1".
Der Pfad zu dem Unterprogramm ist im SD42700 voreingestellt:
SD42700 $SC_EXT_PROG_PATH = "_N_WKS_DIR/_N_WST1"

N010 PROC SCHRUPPEN


N020 G1 F1000
N030 X= ... Y= ... Z= ...
N040 ...
...
...
N999999 M17

2. Abarbeiten vom Netzlaufwerk


Systeme: SINUMERIK solution line / powerline mit HMI sl / HMI Advanced / HMI Embedded
Das nachzuladende Programm "[Link]" befindet sich auf dem Netzlaufwerk im
Verzeichnis "\\R4711\Werkstücke".

...
N... EXTCALL("\\R4711\Werkstücke\[Link]")
...

Angabe eines externen Programmpfades


Der Pfad zum externen Unterprogrammverzeichnis kann voreingestellt werden mit dem
Settingdatum:
SD42700 $SC_EXT_PROG_PATH
Zusammen mit dem beim EXTCALL-Aufruf angegebenen Unterprogrammpfad bzw. -
bezeichner ergibt sich daraus der Gesamtpfad des aufzurufenden Programms.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-29
Unterprogrammtechnik, Makrotechnik
2.13 Externes Unterprogramm abarbeiten (EXTCALL)

Auswirkungen
EXTCALL-Aufruf mit absoluter Pfadangabe
Wenn das Unterprogramm unter dem angegebenen Pfad existiert, dann wird es nach dem
EXTCALL-Aufruf ausgeführt. Wenn es nicht existiert, dann wird die Programmausführung
abgebrochen.
EXTCALL-Aufruf mit relativer Pfadangabe / ohne Pfadangabe
Bei einem EXTCALL-Aufruf mit relativer Pfadangabe bzw. ohne Pfadangabe werden die
vorhandenen Programmspeicher nach folgendem Muster durchsucht:
● Wenn in SD42700 eine Pfadangabe voreingestellt ist, dann wird zuerst ausgehend von
diesem Pfad nach der Angabe im EXTCALL-Aufruf (Programmname ggf. mit relativer
Pfadangabe) gesucht. Der absolute Pfad ergibt sich dann durch Zeichenverkettung aus:
– der in SD42700 voreingestellten Pfadangabe
– dem Zeichen "/" als Trennzeichen
– dem bei EXTCALL angegebenen Unterprogrammpfad bzw. -bezeichner
● Wurde das aufgerufene Unterprogramm unter dem voreingestellten Pfad nicht gefunden,
werden als nächstes die Verzeichnisse des Anwenderspeichers nach der Angabe im
EXTCALL-Aufruf durchsucht.
● Wurde das aufgerufene Unterprogramm auf dem aktuell durchsuchten
Programmspeicher (z. B. CompactFlash Card) nicht gefunden, wird der nächste
Programmspeicher (z. B. Netzlaufwerk) gemäß Punkt 1 und 2 durchsucht.
● Die Suche endet, wenn das Unterprogramm erstmalig gefunden wurde. Sollte die Suche
keinen Treffer ergeben, kommt es zum Programmabbruch.

Hinweis
SINUMERIK powerline mit HMI Embedded
Bei SINUMERIK powerline mit HMI Embedded muss immer ein absoluter Pfad
angegeben werden.

Externe Programmspeicher
Abhängig vom System (SINUMERIK solution line / powerline), der vorhandenen
Bedienoberfläche (HMI sl / HMI Advanced / HMI Embedded) und den erworbenen Optionen
können sich externe Programmspeicher auf folgenden Datenträgern befinden:
● CompactFlash Card
● Netzlaufwerk
● USB-Laufwerk
● Lokale Festplatte

Arbeitsvorbereitung
2-30 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.13 Externes Unterprogramm abarbeiten (EXTCALL)

Hinweis
Abarbeiten von Extern über USB-Schnittstelle bei SINUMERIK solution line
Sollen externe Programme von einem externen USB-Laufwerk über USB-Schnittstelle
übertragen werden, so darf hierfür nur die Schnittstelle über X203 mit den Namen
"TCU_1" verwendet werden.
Ein USB-FlashDrive kann als persistentes Speichermedium nicht empfohlen werden.
Hinweis
Abarbeiten von Extern über V24-Schnittstelle bei SINUMERIK powerline
Mit HMI Embedded können mit dem Softkey "Abarbeiten von Extern" externe Programme
über die V24-Schnittstelle in die NC übertragen werden.

Einstellbarer Nachladespeicher (FIFO-Puffer)


Für die Bearbeitung eines Programms im Modus "Abarbeiten von Extern" (Hauptprogramm
oder Unterprogramm) wird im NCK ein Nachladespeicher benötigt. Die Größe des
Nachladespeichers ist mit 30 kByte voreingestellt und kann wie weitere speicherrelevante
Maschinendaten nur vom Maschinenhersteller bedarfsorientiert verändert werden.
Für alle Programme (Hauptprogramme oder Unterprogramme), die gleichzeitig im Modus
"Abarbeiten von Extern" bearbeitet werden, muss jeweils ein Nachladespeicher eingestellt
werden.
Maschinenhersteller
Bitte wenden Sie sich an den Maschinenhersteller, wenn die Größe und Anzahl des
Nachladespeichers erweitert werden soll.
Weitere Informationen zu "Abarbeiten von Extern" siehe:
Literatur:
/FB1/ Funktionshandbuch Grundfunktionen; BAG, Kanal, Programmbetrieb (K1)

Satzanzeige, Einzelsatz und Verhalten bei NC-Stopp


Beim Abarbeiten von der Festplatte sowie bei EXTCALL ist nur die HMI Advanced 3-
Satzanzeige "Programmablauf" möglich. Diese Einstellung bleibt für Einzelsatz oder NC-
Stopp-Zustand erhalten.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-31
Unterprogrammtechnik, Makrotechnik
2.14 Einzelsatzunterdrückung (SBLOF, SBLON)

2.14 2.14 Einzelsatzunterdrückung (SBLOF, SBLON)

Funktion
Einzelsatzunterdrückung programmspezifisch
Mit SBLOF gekennzeichnete Programme werden bei jedem Einzelsatztyp wie ein Satz
komplett abgearbeitet. SBLOF steht in der PROC-Zeile und gilt bis zum Ende oder Abbruch
des Unterprogramms. Mit dem Rücksprung-Befehl wird entschieden, ob am Ende des
Unterprogramms angehalten wird oder nicht.
Rücksprung mit M17: Stopp am Ende des Unterprogramms
Rücksprung mit RET: Kein Stopp am Ende des Unterprogramms
SBLOF gilt auch in den aufgerufenen Unterprogrammen.
Beispiel für Unterprogramm ohne Stopp im Einzelsatz:
PROC BEISPIEL SBLOF
G1 X10
RET

Programmierung

PROC ... SBLOF ;der Befehl kann in einem PROC-Satz oder allein im Satz stehen
SBLON ;der Befehl muss in einem eigenen Satz stehen
Einzelsatzunterdrückung im Programm
SBLOF muss allein im Satz stehen. Ab diesem Satz wird Einzelsatz ausgeschaltet bis
● zum nächsten SBLON oder
● zum Ende der aktiven Unterprogrammebene.

Parameter

SBLOF Einzelsatz ausschalten


SBLON Einzelsatz wieder einschalten

Beispiel Einzelsatzunterdrückung im Programm

N10 G1 X100 F1000


N20 SBLOF
N30 Y20 ;Einzelsatz ausschalten
N40 M100
N50 R10=90
N60 SBLON
N70 M110 ;Einzelsatz wieder einschalten
N80 ...

Arbeitsvorbereitung
2-32 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.14 Einzelsatzunterdrückung (SBLOF, SBLON)

Der Bereich zwischen N20 und N60 wird im Einzelsatzbetrieb als ein Schritt bearbeitet.

Beispiel Zyklus soll für den Anwender wie ein Befehl wirken
Hauptprogramm

N10 G1 X10 G90 F200


N20 X-4 Y6
N30 CYCLE1
N40 G1 X0
N50 M30
Programm cycle:1
N100 PROC CYCLE1 DISPLOF SBLOF ;Einzelsatz unterdrücken
N110 R10=3*SIN(R20)+5
N120 IF (R11 <= 0)
N130 SETAL(61000)
N140 ENDIF
N150 G1 G91 Z=R10 F=R11
N160 M17

Der Zyklus CYCLE1 wird bei aktivem Einzelsatz abgearbeitet, d.h. es muss für die
Bearbeitung von CYCLE1 einmal die Start-Taste gedrückt werden.

Beispiel Ein vom PLC gestartetes ASUP zum Aktivieren von geänderten Nullpunktverschiebung und
Werkzeugkorrekturen soll nicht sichtbar sein

N100 PROC NV SBLOF DISPLOF


N110 CASE $P_UIFRNUM OF 0 GOTOF _G500
-->1 GOTOF _G54 2 GOTOF _G55 3
-->GOTOF _G56 4 GOTOF _G57
-->DEFAULT GOTOF END
N120 _G54: G54 D=$P_TOOL T=$P_TOOLNO
N130 RET
N140 _G54: G55 D=$P_TOOL T=$P_TOOLNO
N150 RET
N160 _G56: G56 D=$P_TOOL T=$P_TOOLNO
N170 RET
N180 _G57: G57 D=$P_TOOL T=$P_TOOLNO
N190 RET
N200 END: D=$P_TOOL T=$P_TOOLNO
N210 RET

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-33
Unterprogrammtechnik, Makrotechnik
2.14 Einzelsatzunterdrückung (SBLOF, SBLON)

Beispiel Mit MD 10702 IGNORE_SINGLEBLOCK_MASK, Bit 12 = 1 wird nicht angehalten


Im Einzelsatztyp SBL2 (Stopp in jeder Teileprogrammzeile) in der SBLON-Anweisung.

;SBL2 ist aktiv


;$MN_IGNORE_SINGLEBLOCK_MASK = 'H1000' ;im MD 10702: Bit 12 = 1 setzen
N10 G0 X0 ;in dieser Teileprogrammzeile stoppen
N20 X10 ;in dieser Teileprogrammzeile stoppen
N30 CYCLE ;vom Zyklus generierter Verfahrsatz
PROC CYCLE SBLOF ;Einzelsatz-Stopp unterdrücken
N100 R0 = 1
N110 SBLON ;wegen MD 10702: Bit 12 = 1 wird nicht
;gestoppt
N120 X1 ;in dieser Teileprogrammzeile stoppen
N140 SBLOF
N150 R0 = 2
RET
N50 G90 X20 ;in dieser Teileprogrammzeile stoppen
M30

Beispiel Einzelsatzunterdrückung bei Programmschachtelung

;Einzelsatz ist aktiv


N10 X0 F1000 ;in diesem Satz wird gestoppt
N20 UP1(0)
PROC UP1(INT _NR) SBLOF ;Einzelsatz AUS
N100 X10
N110 UP2(0)
PROC UP2(INT _NR)
N200 X20
N210 SBLON ;Einzelsatz EIN
N220 X22 ;in diesem Satz wird gestoppt
N230 UP3(0)
PROC UP3(INT _NR)
N302 SBLOF ;Einzelsatz AUS
N300 X30
N310 SBLON ;Einzelsatz EIN
N320 X32 ;in diesem Satz wird gestoppt
N330 SBLOF ;Einzelsatz AUS
N340 X34
N350 M17 ;SBLOF aktiv
N240 X24 ;in diesem Satz wird gestoppt,
;SBLON aktiv
N250 M17 ;in diesem Satz wird gestoppt,
;SBLON aktiv
N120 X12

Arbeitsvorbereitung
2-34 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.14 Einzelsatzunterdrückung (SBLOF, SBLON)

N130 M17 ;in diesem Rücksprungssatz wird


;gestoppt,
;SBLOF der PROC-Anweisung aktiv
N30 X0 ;in diesem Satz wird gestoppt
N40 M30 ;in diesem Satz wird gestoppt

Randbedingungen
● Die aktuelle Satzanzeige kann in Zyklen mit DISPLOF unterdrückt werden.
● Wird DISPLOF zusammen mit SBLOF programmiert, so wird bei Einzelsatz-Stopps
innerhalb des Zyklus nach wie vor der Zyklen-Aufruf angezeigt.
● Wurde der Einzelsatz-Stopp im System-ASUP oder Anwender-ASUP mit Bit0 = 1 bzw.
Bit1 = 1 von MD 10702: IGNORE_SINGLEBLOCK_MASK unterdrückt, so kann durch
Programmierung von SBLON im ASUP der Einzelsatz-Stopp wieder aktiviert werden.
● Der Einzelsatz-Stopp im Anwender-ASUP wird mit
MD 20117: IGNORE_SINGLEBLOCK_ASUP unterdrückt und kann durch
Programmierung von SBLON nicht mehr aktiviert werden.
● Durch die Anwahl von SBL3 wird der Befehl SBLOF unterdrückt.
● Einzelsatz-Stopp im Einzelsatztyp 2 ignorieren. Im Einzelsatztyp 2 (SBL2) wird im
SBLON-Satz nicht angehalten, wenn das Bit12 = 1 von MD
10702: IGNORE_SINGLEBLOCK_MASK gesetzt wird.

Hinweis
Weitere Informationen zur Satzanzeige mit/ohne Einzelsatzunterdrückung siehe unter
/FB1/ Funktionshandbuch Grundfunktionen; BAG, Kanal, Programmbetrieb (K1),
Kapitel "Einzelsatz".

Einzelsatzsperre für asynchrone Unterprogramme


Um ein ASUP im Einzelsatz in einem Schritt abzuarbeiten, muss im ASUP eine PROC-
Anweisung mit SBLOF programmiert werden. Dies gilt auch für die Funktion "editierbares
System-ASUP" über MD 11610: ASUP_EDITABLE.
Beispiel für "editierbaren System-ASUP":

N10 PROC ASUP1 SBLOF DISPLOF


N20 IF $AC_ASUP=='H200'
N30 RET ;kein REPOS bei BA-Wechsel
N40 ELSE
N50 REPOSA ;REPOS in allen übrigen Fällen
N60 ENDIF

Programmbeeinflussungen im Einzelsatz
In der Funktion Einzelsatz kann der Anwender das Teileprogramm satzweise abarbeiten. Es
existieren folgende Einstellungsarten der Funktion Einzelsatz:

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-35
Unterprogrammtechnik, Makrotechnik
2.15 Aktuelle Satzanzeige unterdrücken (DISPLOF)

● SBL1: IPO-Einzelsatz mit Stopp nach jedem Maschinenfunktionssatz.


● SBL2: Einzelsatz mit Stopp nach jedem Satz.
● SBL3: Halt im Zyklus (durch die Anwahl von SBL3 wird der SBLOF Befehl unterdrückt).

Einzelsatzunterdrückung bei Programmschachtelung


Wurde in einem Unterprogramm SBLOF in der PROC-Anweisung programmiert, so wird auf
den Unterprogrammrücksprung mit M17 angehalten. Damit wird verhindert, dass im
aufrufenden Programm bereits der nächste Satz ausgeführt wird. Wird in einem
Unterprogramm mit SBLOF, ohne SBLOF in der PROC-Anweisung, eine
Einzelsatzunterdrückung aktiviert, wird erst nach dem nächsten Maschinenfunktionssatz des
aufrufenden Programms angehalten. Ist dies nicht erwünscht, muss im Unterprogramm noch
vor dem Rücksprung (M17) wieder SBLON programmiert werden. Bei einem Rücksprung mit
RET in ein übergeordnetes Programm wird nicht angehalten.

2.15 2.15 Aktuelle Satzanzeige unterdrücken (DISPLOF)

Funktion
Mit DISPLOF wird die aktuelle Satzanzeige für ein Unterprogramm unterdrückt. DISPLOF
steht am Ende der PROC-Anweisung. Anstelle des aktuellen Satzes wird der Aufruf des
Zyklus bzw. des Unterprogramms angezeigt werden.
Standardmäßig ist die Satzanzeige eingeschaltet. Das Ausschalten der Satzanzeige mit
DISPLOF gilt bis zum Rücksprung aus dem Unterprogramm oder Programm-Ende.

Programmierung
In der PROC-Anweisungszeile
PROC … DISPLOF
Werden aus dem Unterprogramm mit DISPLOF-Attribut weitere Unterprogramme
aufgerufen, so wird auch in diesen die aktuelle Satzanzeige unterdrückt. Wird ein
Unterprogramm mit unterdrückter Satzanzeige durch ein asynchrones Unterprogramm
unterbrochen, so werden die Sätze des aktuellen Unterprogramms angezeigt.

Arbeitsvorbereitung
2-36 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.15 Aktuelle Satzanzeige unterdrücken (DISPLOF)

Parameter

DISPLOF Aktuelle Satzanzeige unterdrücken

Beispiel Aktuelle Satzanzeige im Zyklus unterdrücken

%_N_CYCLE_SPF ;$PATH=/_N_CUS_DIR
PROC CYCLE (AXIS TOMOV, REAL POSITION) SAVE DISPLOF
;aktuelle Satzanzeige unterdrücken
;jetzt wird als aktueller Satz der
;Aufruf des Zyklus angezeigt
;z. B.: CYCLE(X, 100.0)
DEF REAL DIFF ;Zyklen-Inhalt

G01 …

RET ;Unterprogramm-Rücksprung, der
;nachfolgende Satz des aufrufenden
;Programms wird wieder angezeigt

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-37
Unterprogrammtechnik, Makrotechnik
2.16 Unterprogramme mit Vorbereitung kennzeichnen (PREPRO)

2.16 2.16 Unterprogramme mit Vorbereitung kennzeichnen (PREPRO)

Funktion
Mit dem Schlüsselwort PREPRO können im Hochlauf am Ende der PROC-Anweisungszeile
alle Dateien gekennzeichnet werden.
Maschinenhersteller
Diese Art der Programmvorbereitung ist vom entsprechend eingestellten Maschinendatum
abhängig. Bitte beachten Sie hierfür die Angaben des Maschinenherstellers.
/FB3/ Funktionshandbuch Sonderfunktionen; Vorverarbeitung (V2)

Programmierung
In der PROC-Anweisungszeile
PROC … PREPERO

Parameter

PREPERO Schlüsselwort für Kennzeichnung aller im


Hochlauf vorbereiteten Dateien, der in
Zyklenverzeichnissen abgelegten NC-Programme

Unterprogramme mit Vorbereitung einlesen und Unterprogrammaufruf


Sowohl im Hochlauf vorbereiteter Unterprogramme mit Parametern als auch beim
Unterprogrammaufruf werden die Zyklenverzeichnissen in der gleichen Reihenfolge
1. _N_CUS_DIR Anwenderzyklen
2. _N_CMA_DIR Herstellerzyklen
3. _N_CST_DIR Standardzyklen
behandelt. Im Falle gleichnamiger NC-Programme mit unterschiedlicher Ausprägung wird
die zuerst gefundene PROC-Anweisung aktiviert und diie andrere PROC-Anweisung wird
ohne Alarmmeldung überlesen.

Arbeitsvorbereitung
2-38 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.17 Zyklen : Anwenderzyklen parametrieren

2.17 2.17 Zyklen: Anwenderzyklen parametrieren

Funktion
Mit den Dateien [Link] und [Link] können eigene Zyklen parametriert werden.
Die Datei [Link] wird mit den Standardzyklen geliefert und ist entsprechend zu erweitern.
Die Datei [Link] ist vom Anwender selbst zu erstellen.
Beide Dateien sind im passiven Filesystem in das Verzeichnis "Anwenderzyklen" zu laden
(bzw. mit entsprechender Pfadangabe):
;$PATH=/_N_CUS_DIR
im Programm zu versehen.

Dateien und Pfade

cov.com_COM Übersicht über die Zyklen


[Link] Zyklenaufrufbeschreibung

Anpassung [Link] - Übersicht der Zyklen


Die mit den Standardzyklen ausgelieferte Datei [Link] hat folgende Struktur:

%_N_COV_COM Dateiname
;$PATH=/_N_CST_DIR Pfadangabe
;Vxxx 11.12.95 Sca Zyklenuebersicht Kommentarzeile
C1(CYCLE81) Bohren, Zentrieren Aufruf für 1. Zyklus
C2(CYCLE82) Bohren, Plansenken Aufruf für 2. Zyklus
...
C24(CYCLE98) Ketten von Gewinden Aufruf für letzten Zyklus
M17 Dateiende

Programmierung
Für jeden neu hinzukommenden Zyklus ist eine Zeile in folgender Syntax einzufügen:
C<Nummer> (<Zyklusname>) Kommentartext
Nummer: eine beliebige ganze Zahl, sie darf bisher in der Datei noch nicht verwendet
worden sein;
Zyklusname: der Programmname des einzubindenden Zyklus
Kommentartext: wahlweise ein Kommentartext zum Zyklus
Beispiel:
C25 (MEIN_ZYKLUS_1) Anwenderzyklus_1
C26 (SPEZIALZYKLUS)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-39
Unterprogrammtechnik, Makrotechnik
2.17 Zyklen : Anwenderzyklen parametrieren

Beispiel Datei [Link] - Anwenderzyklenbeschreibung


Die Erläuterung erfolgt anhand der Fortsetzung des
Beispiels:
Für die folgenden beiden Zyklen soll eine Zyklenparametrierung neu erstellt werden:

PROC MEIN_ZYKLUS_1 (REAL PAR1, INT PAR2, CHAR PAR3, STRING[10] PAR4)
;Der Zyklus hat folgende Übergabeparameter:
;PAR1: Real-Wert im Bereich von -1000.001 <= PAR2 <= 123.456, Vorbelegung
mit 100
;PAR2: positiver ganzzahliger Wert zwischen 0 <= PAR3 <= 999999, Vorbelegung
mit 0
;PAR3: 1 ASCII-Zeichen
;PAR4: String der Länge 10 für einen Unterprogrammnamen
...
M17

PROC SPEZIALZYKLUS (REAL WERT1, INT WERT2)


;Der Zyklus hat folgende Übergabeparameter:
;
;WERT1: Real-Wert ohne Wertebereichsbeschränkung und Vorbelegung
;WERT2: ganzzahliger Wert ohne Wertebereichsbeschränkung und Vorbelegung
...
M17
Zugehörige Datei [Link]:

%_N_UC_COM
;$PATH=/_N_CUS_DIR
//C25(MEIN_ZYKLUS_1) Anwenderzyklus_1
(R/-1000.001 123.456 / 100 /Parameter_2 des Zyklus)
(I/0 999999 / 1 / ganzzahliger Wert)
(C//"A" / Zeichenparameter)
(S///Unterprogrammname)

//C26(SPEZIALZYKLUS)
(R///Gesamtlänge)
(I/*123456/3/Bearbeitungsart)
M17

Arbeitsvorbereitung
2-40 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.17 Zyklen : Anwenderzyklen parametrieren

Beispiel Beide Zyklen


Anzeigemaske für Zyklus MEIN_ZYKLUS_1

3DUDPHWHUGHV=\NOXV 

JDQ]]DKOLJHU:HUW 

=HLFKHQSDUDPHWHU

8QWHUSURJUDPPH

Anzeigemaske für Zyklus SPEZIALZYKLUS

*HVDPWO¦QJH 

%HDUEHLWXQJVDUW 

Syntaxbeschreibung für die Datei [Link] - Anwenderzyklenbeschreibung


Kopfzeile pro Zyklus:
wie in der Datei [Link] mit vorgesetztem "//"
//C <Nummer> (<Zyklusname>) Kommentartext
Beispiel:
//C25 (MEIN_ZYKLUS_1) Anwenderzyklus_
Zeile für Beschreibung pro Parameter:
(<Datentypkennung> / <Minimalwert> <Maximalwert>
/ <Vorbelegungswert> /<Kommentar>)
Datentypkennung:

R für Real
I für Integer
C für Charakter (1 Zeichen)
S für String

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-41
Unterprogrammtechnik, Makrotechnik
2.18 Makrotechnik (DEFINE...AS)

Minimalwert, Maximalwert (kann entfallen)


Grenzen des einzugebenden Wertes, die bei der Eingabe überprüft werden; Werte
außerhalb dieses Bereichs können nicht eingegeben werden. Es können Aufzählungswerte
angegeben werden, die mit der Toggle-Taste bedient werden können; diese werden
beginnend mit "*" aufgezählt, andere Werte sind dann nicht zulässig.
Beispiel:
(I/*123456/1/Bearbeitungsart)
Bei den Typen String und Charakter gibt es keine Grenzen.
Vorbelegungswert (kann entfallen)
Wert, der bei Aufruf des Zyklus in der entsprechenden Maske vorbesetzt ist; er kann per
Bedienung geändert werden.
Kommentar
Text, maximal 50 Zeichen, der in der Aufrufmaske für den Zyklus vor dem Eingabefeld für
den Parameter angezeigt wird.

2.18 2.18 Makrotechnik (DEFINE...AS)

Funktion
Als Makro bezeichnet man die Zusammenfassung von einzelnen Anweisungen zu einer
neuen Gesamtanweisung mit eigenem Namen. Auch G-, M- und H-Funktionen oder L-
Unterprogrammnamen können als Makros angelegt werden. Bei Aufruf des Makros im
Programmablauf werden die unter dem Makronamen programmierten Anweisungen
nacheinander abgearbeitet.
Einsatz von Makros
Anweisungsfolgen, die sich wiederholen, programmiert man nur einmal als Makro in einem
eigenen Makrobaustein oder einmal am Programmanfang. Das Makro kann dann in jedem
beliebigen Haupt- oder Unterprogramm aufgerufen und abgearbeitet werden.

Programmierung
Makros werden mit dem Schlüsselwort DEFINE…AS gekennzeichnet.
Die Makrodefinition lautet:
DEFINE NAME AS <Anweisung>
Beispiel:
Makrodefinition:
DEFINE LINIE AS G1 G94 F300
Aufruf im NC-Programm:
N20 LINIE X10 Y20
Makro aktivieren
Wenn das Makro in die NC geladen wird (Softkey "Laden"), ist dieses aktiv.

Arbeitsvorbereitung
2-42 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Unterprogrammtechnik, Makrotechnik
2.18 Makrotechnik (DEFINE...AS)

Parameter

Vorsicht
Schlüsselworte und reservierte Namen dürfen nicht mit Makros überdefiniert werden
Mit Makrotechnik kann die Programmiersprache der Steuerung stark verändert werden!
Setzen Sie deshalb die Makrotechnik mit großer Sorgfalt ein!

DEFINE Makro definieren


NAME Hier steht der Name des Makros
AS Makrodefinition STRING
Anweisung Programmieranweisungen z. B. G-, M- H- und L-
Funktionen

Mit Makrotechnik können beliebige Bezeichner, G-, M-, H-Funktionen und L-


Programmnamen definiert werden. H- und L-Funktionen sind zweistellig programmierbar.
Dreistellige M-/G-Funktion
Dreistellige M- und G-Funktionen können programmiert werden.
Beispiel:
N20 DEFINE M100 AS M6
N80 DEFINE M999 AS M6

Hinweis
Makros können auch im NC-Programm vereinbart werden. Als Makronamen sind nur
Bezeichner zulässig. G-Funktions-Makros können nur steuerungsglobal im Makrobaustein
vereinbart werden.
Eine Schachtelung von Makros ist nicht möglich.

Beispiel Makrodefinitionen

DEFINE M6 AS L6 Beim Werkzeugwechsel wird ein Unterprogramm


aufgerufen, das den nötigen Datentransfer übernimmt.
Im Unterprogramm wird die eigentliche Werkzeugwechsel-
M-Funktion ausgegeben (z. B. M106).
DEFINE G81 AS DRILL(81) Nachbildung der DIN-G-Funktion
DEFINE G33 AS M333 G333 Beim Gewindeschneiden wird Synchronisation mit der PLC
angefordert. Die ursprüngliche G-Funktion G33 wurde
per MD in G333 umbenannt, die Programmierung bleibt
für den Anwender gleich.

Beispiel Makrodatei
Nach dem Einlesen der Makrodatei in die Steuerung aktivieren Sie die Makros (siehe oben).
Die Makros können nun im Teileprogramm verwendet werden.

%_N_UMAC_DEF

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 2-43
Unterprogrammtechnik, Makrotechnik
2.18 Makrotechnik (DEFINE...AS)

;$PATH=/_N_DEF_DIR ;Kundenspezifische Makros


DEFINE PI AS 3.14
DEFINE TC1 AS M3 S1000
DEFINE M13 AS M3 M7 ;Spindel rechts, Kühlmittel ein
DEFINE M14 AS M4 M7 ;Spindel links, Kühlmittel ein
DEFINE M15 AS M5 M9 ;Spindel Halt, Kühlmittel aus
DEFINE M6 AS L6 ;Aufruf des Werkzeugwechselprogramms
DEFINE G80 AS MCALL ;Abwahl Bohrzyklus
M30

Arbeitsvorbereitung
2-44 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung 3
3.1 3.1 Programmspeicher

Funktion
Im Programmspeicher werden Dateien und Programme (z. B. Haupt- und Unterprogramme,
Makro-Definitionen) persistent gespeichert (→ Passives Filesystem).
Literatur:
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Speicherkonfiguration (S7)
Daneben gibt es eine Anzahl von Dateitypen, die hier zwischengespeichert werden können
und bei Bedarf (z. B. bei Bearbeitung eines bestimmten Werkstückes) in den Arbeitsspeicher
zu übertragen sind (z. B. für Initialisierungszwecke).

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-1
Datei- und Programmverwaltung
3.1 Programmspeicher

3URJUDPPVSHLFKHU

B1B'()B',5 B1B&67B',5 B1B&0$B',5 B1B&86B',5 B1B63)B',5 B1B03)B',5 B1B:.6B',5 B1B&20B',5

B1B60$&B'() B1B/B63) B1B*/2%B63) B1B03)B03)


B1B00$&B'() B1BB63) B1BB63) B1B029B03)
B1B80$&B'() B1BB03)
B1B6*8'B'() B1B
B1B0*8'B'()
B1B8*8'B'()
B1B*8'B'()

B1B*8'B'()
B1B32&.(7B63)
B1B:(//(B:3' B1B03)B:3' 
B1BB63)

B1B:(//(B03) B1B03)B03)
B1B3$57B03) B1B/B63)
B1B3$57B63) B1BB
B1B3$57B63)
B1B:(//(B,1,
B1B:(//(B6($
B1B3$57B,1,
6FKZDU]H1DPHQIHVWYRUKDQGHQ B1B3$57B8)5
2UDQJH1DPHQYRP$QZHQGHUYHUJHEHQ B1B3$57B&20
B1B:(//(

Standard-Verzeichnisse
Folgende Verzeichnisse sind standardmäßig vorhanden:

Verzeichnis Inhalt
_N_DEF_DIR Datenbausteine und Makrobausteine
_N_CST_DIR Standard-Zyklen
_N_CMA_DIR Hersteller-Zyklen
_N_CUS_DIR Anwender-Zyklen
_N_WKS_DIR Werkstücke
_N_SPF_DIR Globale Unterprogramme
_N_MPF_DIR Hauptprogramme
_N_COM_DIR Kommentare

Arbeitsvorbereitung
3-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung
3.1 Programmspeicher

Dateitypen
Im Programmspeicher können folgende Dateitypen eingebracht werden:

Dateityp Beschreibung
name_MPF Hauptprogramm
name_SPF Unterprogramm
name_TEA Maschinendaten
name_SEA Settingdaten
name_TOA Werkzeugkorrekturen
name_UFR Nullpunktverschiebungen/Frame
name_INI Initialisierungsdatei
name_GUD Globale Anwenderdaten
name_RPA R-Parameter
name_COM Kommentar
name_DEF Definitionen für globale Anwenderdaten und Makros

Werkstück-Hauptverzeichnis (_N_WKS_DIR)
Das Werkstück-Hauptverzeichnis ist standardmäßig unter der Bezeichnung _N_WKS_DIR im
Programmspeicher eingerichtet. Das Werkstück-Hauptverzeichnis enthält für alle
Werkstücke, die Sie programmiert haben, die entsprechenden Werkstückverzeichnisse.

Werkstückverzeichnisse ( ..._WPD)
Für eine flexiblere Handhabung von Daten und Programmen können bestimmte Daten und
Programme gebündelt oder in einzelnen Werkstückverzeichnissen abgelegt werden.
Ein Werkstückverzeichnis enthält alle Dateien, die zum Bearbeiten eines Werkstückes
notwendig sind. Dies können Hauptprogramme, Unterprogramme, beliebige Initialisierungs-
Programme und Kommentar-Dateien sein.
Initialisierungsprogramme werden nach der Programmanwahl mit dem ersten
Teileprogrammstart einmalig ausgeführt (entsprechend Maschinendatum MD11280
$MN_WPD_INI_MODE).
Beispiel:
Das Werkstückverzeichnis _N_WELLE_WPD, das für das Werkstück WELLE angelegt wurde,
enthält folgende Dateien:

_N_WELLE_MPF Hauptprogramm
_N_PART2_MPF Hauptprogramm
_N_PART1_SPF Unterprogramm
_N_PART2_SPF Unterprogramm
_N_WELLE_INI Allgemeines Initialisierungsprogramm der Daten für das
Werkstück
_N_WELLE_SEA Initialisierungsprogramm Settingdaten

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-3
Datei- und Programmverwaltung
3.1 Programmspeicher

_N_PART2_INI Allgemeines Initialisierungsprogramm der Daten für Programm


Part 2
_N_PART2_UFR Initialisierungsprogramm für Frame-Daten für Programm Part 2
_N_WELLE_COM Kommentardatei

Werkstückverzeichnisse am externen PC anlegen


Die nachstehend beschriebene Vorgehensweise wird an einer externen Datenstation
durchgeführt. Für die Datei- und Programmverwaltung (vom PC zur Steuerung), direkt an
der Steuerung, finden Sie die Informationen in Ihrer Bedienungsanleitung.

Werkstückverzeichnis anlegen mit Pfadangabe ($PATH=…)


In der zweiten Zeile einer Datei wird der Zielpfad mit $PATH=… angegeben. Die Datei wird
dann unter dem angegebenen Pfad abgelegt.
Beispiel:

%_N_WELLE_MPF
;$PATH=/_N_WKS_DIR/_N_WELLE_WPD
N10 G0 X… Z…
...
M2

Die Datei _N_WELLE_MPF wird im Verzeichnis /_N_WKS_DIR/_N_WELLE_WPD abgelegt.

Werkstückverzeichnis anlegen ohne Pfadangabe


Fehlt die Pfadangabe, so werden Dateien mit der Endung _SPF im Verzeichnis
/_N_SPF_DIR, Dateien mit der Endung _INI im Arbeitsspeicher und alle übrigen Dateien
im Verzeichnis /_N_MPF_DIR abgelegt.
Beispiel:

%_N_WELLE_SPF
...
M17

Die Datei _N_WELLE_SPF wird im Verzeichnis /_N_SPF_DIR abgelegt.

Werkstück für die Bearbeitung anwählen


Ein Werkstückverzeichnis kann für die Abarbeitung in einem Kanal angewählt werden.
Befindet sich in diesem Verzeichnis ein Hauptprogramm gleichen Namens oder nur ein
einziges Hauptprogramm (_MPF), so wird dieses automatisch für die Abarbeitung angewählt.
Literatur:
/BAD/ Bedienungshandbuch HMI Advanced; Kapitel "Jobliste" sowie "Programm zur
Abarbeitung anwählen"

Arbeitsvorbereitung
3-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung
3.1 Programmspeicher

Suchpfade beim Unterprogrammaufruf


Wird der Aufruf-Pfad nicht explizit im Teileprogramm beim Aufruf eines Unterprogramms
(oder auch Initialisierungsdatei) angegeben, so wird das aufgerufene Programm nach einem
festen Suchpfad ermittelt.

Unterprogrammaufruf mit absoluter Pfadangabe


Beispiel:

...
CALL"/_N_CST_DIR/_N_CYCLE1_SPF"
...

Unterprogrammaufruf ohne absoluter Pfadangabe


In der Regel werden die Programme ohne Pfadangabe aufgerufen.
Beispiel:

...
CYCLE1
...

Die Verzeichnisse werden nach dem aufgerufenen Programm in der folgenden Reihenfolge
durchsucht:

Nr. Verzeichnis Beschreibung


1 aktuelles Directory / name Werkstück-Hauptverzeichnis oder Standard-
Verzeichnis _N_MPF_DIR
2 aktuelles Directory / name_SPF
3 aktuelles Directory / name_MPF
4 /_N_SPF_DIR / name_SPF Globale Unterprogramme
5 /_N_CUS_DIR / name_SPF Anwender-Zyklen
6 /_N_CMA_DIR / name_SPF Hersteller-Zyklen
7 /_N_CST_DIR / name_SPF Standard-Zyklen

Suchpfade beim Unterprogrammaufruf programmieren (CALLPATH)


Der Suchpfad beim Unterprogrammaufruf kann mit dem Teileprogrammbefehl CALLPATH
erweitert werden.
Beispiel:

...
CALLPATH ("/_N_WKS_DIR/_N_MYWPD_WPD")
...

Der Suchpfad wird vor Position 5 (Anwender-Zyklus) entsprechend der angegebenen


Programmierung abgelegt.
Weitere Informationen zum programmierbaren Suchpfad bei Unterprogrammaufrufen mit
CALLPATH siehe Kapitel "Suchpfad bei Unterprogrammaufrufen mit CALLPATH erweitern".

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-5
Datei- und Programmverwaltung
3.2 Arbeitsspeicher

3.2 3.2 Arbeitsspeicher

Funktion
Der Arbeitsspeicher enthält die aktuellen System- und Anwenderdaten, mit denen die
Steuerung betrieben wird (aktives Filesystem).
Beispiel: Aktive Maschinendaten, Werkzeugkorrekturdaten, Nullpunktverschiebungen.

Parameter
Initialisierungsprogramme
Hierbei handelt es sich um Programme, mit denen die Daten des Arbeitsspeichers
vorbesetzt (initialisiert) werden. Hierfür können folgende Dateitypen verwendet werden:

name_TEA Maschinendaten
name_SEA Settingdaten
name_TOA Werkzeugkorrekturen
name_UFR Nullpunktverschiebungen/Frame
name_INI Initialisierungsdatei
name_GUD Globale Anwenderdaten
name_RPA R-Parameter

Datenbereiche
Die Daten können in unterschiedliche Bereiche eingegliedert werden, in denen sie gelten
sollen. Beispielsweise kann eine Steuerung über mehrere Kanäle verfügen
(nicht bei 810D CCU1, 840D NCU 571) oder gewöhnlich auch über mehrere Achsen. Es
gibt:

Kennung Datenbereiche
NCK NCK-spezifische Daten
CHn Kanalspezifische Daten (n gibt die
Kanalnummer an)
AXn Achsspezifische Daten (n gibt die Nummer
der Maschinenachse an)
TO Werkzeugdaten
COMPLETE Alle Daten

Beispiel Initialisierungsprogramm am externen PC erzeugen


Mit Hilfe von Datenbereichskennung und Datentypenkennung können die Bereiche bestimmt
werden, die bei der Datensicherung als Einheit betrachtet werden.

_N_AX5_TEA_INI Maschinendaten für Achse 5


_N_CH2_UFR_INI Frames des Kanals 2
_N_COMPLETE_TEA_INI Alle Maschinendaten

Arbeitsvorbereitung
3-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung
3.2 Arbeitsspeicher

Nach Inbetriebnahme der Steuerung ist ein Datensatz im Arbeitsspeicher vorhanden, der
den ordnungsgemäßen Betrieb der Steuerung gewährleistet.

Beispiel Vorgehensweise bei mehrkanaligen Steuerungen


CHANDATA (Kanalnummer) für mehrere Kanäle ist nur in der Datei N_INITIAL_INI
zulässig.
N_INITIAL_INI ist die Inbetriebnahmedatei, mit der alle Daten der Steuerung initialisiert
werden.
%_N_INITIAL_INI
CHANDATA(1)
;Maschinenachszuordnung Kanal 1
$MC_AXCONF_MACHAX_USED[0]=1
$MC_AXCONF_MACHAX_USED[1]=2
$MC_AXCONF_MACHAX_USED[2]=3
CHANDATA(2)
;Maschinenachszuordnung Kanal 2
$MC_AXCONF_MACHAX_USED[0]=4
$MC_AXCONF_MACHAX_USED[1]=5
CHANDATA(1)
;axiale Maschinendaten
;Genauhaltfenster grob:
$MA_STOP_LIMIT_COARSE[AX1]=0.2 ;Achse 1
$MA_STOP_LIMIT_COARSE[AX2]=0.2 ;Achse 2
Genauhaltfenster fein:
$MA_STOP_LIMIT_FINE[AX1]=0.01 ;Achse 1
$MA_STOP_LIMIT_FINE[AX1]=0.01 ;Achse 2

Vorsicht
CHANDATA-Anweisung
Im Teileprogramm darf die CHANDATA-Anweisung nur für den Kanal gesetzt werden, auf
dem das NC-Programm abgearbeitet wird, d. h. die Anweisung kann dazu benutzt werden,
NC-Programme davor zu schützen, dass sie auf einem nicht vorgesehenen Kanal
abgearbeitet werden.
Im Fehlerfall wird die Programmabarbeitung abgebrochen.

Hinweis
INI-Dateien in Joblisten enthalten keine CHANDATA-Anweisungen.

Initialisierungsprogramme sichern
Die Dateien des Arbeitsspeichers können auf einem externen PC gesichert und von dort
wieder eingelesen werden.
● Die Dateien werden mit COMPLETE gesichert.
● Mit INITIAL wird über alle Bereiche eine INI-Datei: _N_INITIAL_INI erzeugt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-7
Datei- und Programmverwaltung
3.3 Anwenderdaten definieren

Initialisierungsprogramme laden
Die INI-Programme können auch als Teileprogramme angewählt und aufgerufen werden,
wenn sie nur Daten eines Kanals verwenden. So ist es auch möglich, programmgesteuerte
Daten zu initialisieren.
Informationen zu allen Dateitypen finden Sie in der Bedienungsanleitung.

3.3 3.3 Anwenderdaten definieren

Funktion

Achtung
Die Definition von Anwenderdaten (GUD) erfolgt zum Zeitpunkt der Inbetriebnahme. Die
notwendigen Maschinendaten müssen entsprechend gesetzt sein. Der Anwenderspeicher
muss konfiguriert sein. Alle relevanten Maschinendaten haben den Namensbestandteil
GUD.
Die Definition von Anwenderdaten(GUD) kann in der HMI Bedienoberfläche im
Bedienbereich Dienste erstellt werden. Damit entfällt ein zeitaufwendiges Wiedereinspielen
der Datensicherung (%_N_INITIAL_INI).
Es gilt dabei:
● Definitions-Dateien, die auf der Festplatte liegen, sind nicht aktiv.
● Definitions-Dateien, die auf der NC liegen, sind immer aktiv.

Programmierung
Die Programmierung der einzelnen GUD-Variablen erfolgt mit dem DEF-Befehl:
DEF Bereich VL-Stop Typ Name[.., ...]=Wert

Arbeitsvorbereitung
3-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung
3.3 Anwenderdaten definieren

Parameter

Bereich Bereich kennzeichnet die Variable als


GUD-Variable und legt den
Gültigkeitsbereich fest:
NCK NCK-weit
CHAN Kanalweit
VL-Stop Optionales Attribut Vorlaufstopp:
SYNR Vorlaufstopp beim Lesen
SYNW Vorlaufstopp beim Schreiben
SYNRW Vorlaufstopp beim Lesen/Schreiben
Typ Datentyp
BOOL
REAL
INT
AXIS
FRAME
STRING
CHAR
Name Variablenname
[.., ...] Optionale Laufgrenzen für Feldvariablen
Wert Optionaler Vorbesetzungswert, mehrere
Werte bei Feldern, getrennt durch Komma
oder REP (w1), SET(w1, W2, ...), (w1, w2,
...)
Bei Typ Frame sind keine
Initialisierungswerte möglich.

Beispiel Definitionsdatei, globale Daten (Siemens)

%_N_SGUD_DEF
;$PATH=/_N_DEF_DIR
DEF NCK REAL RTP ;Rückzugsebene
DEF CHAN INT SDIS ;Sicherheitsabstand
M30

Beispiel Definitionsdatei, globale Daten (Maschinenhersteller)

%_N_MGUD_DEF
;$PATH=/_N_DEF_DIR
;globale Datendefinitionen des Maschinenherstellers

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-9
Datei- und Programmverwaltung
3.3 Anwenderdaten definieren

DEF NCK SYNRW INT STUECKZAHL ;impliziter Vorlaufstopp beim


;Lesen/Schreiben
;spez. Datum in der Steuerung vorhanden
;Zugriff von allen Kanälen
DEF CHAN INT WERKZEUGTABELLE[100] ;Werkzeugtabelle zur kanalspez. Abbildung
;der Werkzeugnummer auf Magazinplätzen
M30 ;Tabelle getrennt für jeden Kanal
;angelegt

Reservierte Bausteinnamen
Im Verzeichnis /_N_DEF_DIR können folgende Bausteine hinterlegt werden:

_N_SMAC_DEF enthält Makrodefinitionen (Siemens-Systemanwendungen)


_N_MMAC_DEF enthält Makrodefinitionen (Maschinenhersteller)
_N_UMAC_DEF enthält Makrodefinitionen (Anwender)
_N_SGUD_DEF enthält Definitionen für globale Daten (Siemens-
Systemanwendungen)
_N_MGUD_DEF enthält Definitionen für globale Daten (Maschinenhersteller)
_N_UGUD_DEF enthält Definitionen für globale Daten (Anwender)
_N_GUD4_DEF frei definierbar
_N_GUD5_DEF enthält Definitionen für Messzyklen (Siemens-Systemanwendungen)
_N_GUD6_DEF enthält Definitionen für Messzyklen (Siemens-Systemanwendungen)
_N_GUD7_DEF enthält Definitionen für Standardzyklen (Siemens-
Systemanwendungen)
_N_GUD8_DEF frei definierbar
_N_GUD9_DEF frei definierbar

Hinweis
Wenn keine Messzyklen/Standardzyklen vorhanden sind, so sind auch die hierfür
reservierten Bausteine frei definierbar
1. Anwenderdaten (GUD) definieren
1.1 Baustein _N_INITIAL_INI sichern
1.2 Definitionsdatei für Anwenderdaten im HMI Bedienbereich Dienste erstellen
1.3 Definitionsdatei in den Programmspeicher der Steuerung laden
1.4 Definitionsdateien aktivieren
1.5 Datensicherung
2. Definitionsdatei für Anwenderdaten erstellen
Definitionsdateien können auf dem externen PC oder im Bedienbereich Dienste erstellt
werden. Es existieren auch vordefinierte Dateinamen (siehe dazu "Reservierte
Bausteinnamen"):
_N_SGUD_DEF
_N_MGUD_DEF
_N_UGUD_DEF

Arbeitsvorbereitung
3-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung
3.4 Schutzstufen für Anwenderdaten, MD, SD und NC-Sprachbefehle

_N_GUD4_DEF … _N_GUD9_DEF
Dateien mit diesen Namen können Definitionen für GUD-Variable enthalten.
3. Definitionsdatei in den Programmspeicher der Steuerung laden
Die Steuerung legt defaultmäßig immer ein Verzeichnis _N_DEF_DIR an. Dieser Name
wird als Pfad in den Kopf der GUD-Definitionsdatei eingetragen und beim Einlesen über
die entsprechende Schnittstelle ausgewertet.
4. Definitionsdateien aktivieren und dessen Inhalt neu aktivieren
Wenn die GUD-Definitions-Datei in die NC geladen wird (Softkey "Laden"), wird diese
aktiv. Siehe "Automatische Aktivierung ...". Wird der Inhalt einer bestimmten GUD-
Definitions-Datei neu aktiviert, so wird der alte GUD Datenbaustein im aktiven Filesystem
gelöscht und die neuen Parameter werden dabei zurückgesetzt. Erfolgt dieser Vorgang
über den Dialog HMI Dienste => Daten verwalten => Anwenderdaten (GUD) definieren
und aktivieren, dann werden die Variableninhalte per INI File gesichert und am Ende
dieses Vorgangs wieder hergestellt.
5. Datensicherung
Bei Archivierung der Datei _N_COMPLETE_GUD aus dem Arbeitsspeicher werden nur die
Dateninhalte gesichert. Die erstellten Definitionsdateien für die globalen
Anwendervariablen müssen getrennt archiviert werden.
Die Variablenzuweisungen an globale Anwenderdaten werden auch in
_N_INITIAL_INI gespeichert, die Namen müssen mit den Namen in den
Definitionsdateien identisch sein.

3.4 3.4 Schutzstufen für Anwenderdaten, MD, SD und NC-Sprachbefehle

3.4.1 Schutzstufen für Anwenderdaten (GUD) definieren

Funktion
Durch Definition von Zugriffskriterien lassen sich GUD-Bausteine vor Manipulationen
schützen. In Zyklen können GUD-Variablen abgefragt werden, die so vor Änderung über die
HMI-Bedienoberfläche oder aus dem Programm heraus geschützt sind. Der Zugriffsschutz
bezieht sich auf alle Variablen, die in diesem Baustein definiert sind. Bei nicht erlaubtem
Zugriff meldet die Steuerung einen entsprechenden Alarm.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-11
Datei- und Programmverwaltung
3.4 Schutzstufen für Anwenderdaten, MD, SD und NC-Sprachbefehle

Programmierung
Schutzstufen für den ganzen Baustein werden nach den Kopfzeilen angegeben.

%_N_MGUD_DEF ;Bausteinart
;$PATH=/_N_DEF_DIR ;Pfad
APR Wert APW n ;Schutzstufen in eigener Zeile

Der Zugriffsschutz wird im GUD-Baustein selbst vor der ersten Definition einer Variablen mit
der gewünschten Schutzstufe programmiert. Schlüsselwörter müssen in einem eigenen Satz
stehen.

Parameter

Schutzstufe: Zugriffsschutz (Access Protection)


APW n für Schreiben (Write)
APR n für Lesen (Read)
n Schutzstufe n
von 0 oder 10 (höchste Stufe)
bis 7 oder 17 (niedrigste Stufe)
Bedeutung der Schutzstufen n:
0 oder 10 SIEMENS
1 oder 11 OEM_HIGH
2 oder 12 OEM_LOW
3 oder 13 Endanwender
4 oder 14 Schlüsselschalter 3
... ...
7 oder 17 Schlüsselschalter 0
APW 0-7, APR 0-7 Diese Werte sind in GUD Bausteinen und
Der Schreib- und Leseschutz wirkt an der in Schutzstufenangaben für einzelne
Bedienoberfläche und im NC-Programm bzw. Variablen in der REDEF-Anweisung
im MDA-Betrieb. zulässig.

APW 10-17, APR 10-17:


Der Schreib- und Leseschutz wirkt hier an Diese Werte sind nur bei
der Bedienoberfläche. bausteinspezifischer GUD Schutzstufe
zulässig.

Hinweis
Wird eine komplette Datei geschützt, dann müssen die Befehle vor den ersten Definitionen
der Datei stehen, sonst in der REDEF - Anweisung des betreffenden Datums, siehe Kapitel
"Schutzstufen für NC-Sprachbefehle".

Beispiel Definitionsdatei mit Zugriffsschutz Schreiben


(Maschinenhersteller), Lesen (Schlüsselschalter 2 an der Bedienoberfläche):

%_N_GUD6_DEF

Arbeitsvorbereitung
3-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung
3.4 Schutzstufen für Anwenderdaten, MD, SD und NC-Sprachbefehle

;$PATH=/_N_DEF_DIR
APR 15 APW 12 ;Schutzstufen für alle folgenden Variablen
DEF CHAN REAL_CORRVAL
DEF NCK INT MYCOUNT

M30

GUD-Definitionsdatei erstmalig aktivieren


Beim erstmaligen Aktivieren einer GUD-Definitionsdatei wird das möglicherweise darin
enthaltene definierte Zugriffsrecht ausgewertet und auf die Schreib- und Leserechte der
GUD-Definitionsdatei selbst automatisch rückübertragen.

Hinweis
Zugriffsrecht-Einträge in der GUD-Definitionsdatei können nötige Zugriffsberechtigung auf
die GUD-Definitionsdatei selbst beschränken, aber nicht erweitern.
Beispiel:
In der Definitionsdatei _N_GUD7_DEF steht: APW2
1. Die Datei _N_GUD7_DEF hat als write-Schutz den Wert 3. Der Wert 3 wird dann mit Wert
2 überschrieben.
2. Die Datei _N_GUD7_DEF hat als write-Schutz den Wert 0. Es erfolgt keine Änderung.
Mit der Anweisung APW wird rückwirkend das write-Recht der Datei selbst beeinflusst.
Mit der Anweisung APR wird rückwirkend das read-Recht der Datei selbst beeinflusst.

Hinweis
Trägt man versehentlich ein höheres Recht in der GUD-Definitionsdatei ein als einem selbst
zugänglich ist, muss die Archivdatei neu eingespielt werden.

3.4.2 Automatische Aktivierung von GUDs und MACs

Funktion
Definitions-Dateien für GUD- und Makro-Definitionen werden für HMI Advanced im
Bedienbereich Dienste editiert.
Wird eine Definitions-Datei in der NC editiert, erscheint beim Verlassen des Editors eine
Abfrage, ob die Definitionen wirksam gesetzt werden sollen.

GUD- und Makro-Definitionen entladen


Wird eine Definitions-Datei entladen, wird der zugehörige Datenbaustein nach dem
Aufblenden einer Abfrage gelöscht.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-13
Datei- und Programmverwaltung
3.4 Schutzstufen für Anwenderdaten, MD, SD und NC-Sprachbefehle

GUD- und Makro-Definitionen laden


Wird eine Definitions-Datei geladen, so erscheint eine Abfrage, ob die Datei aktiviert bzw.
die Daten erhalten bleiben sollen. Lehnen Sie das Aktivieren ab, wird die Datei nicht
geladen.
Befindet sich der Cursor auf einer geladenen Definitions-Datei, ändert sich die Softkey-
Beschriftung von "Laden" auf "Aktivieren" zum Wirksamsetzen der Definitionen. Wählen Sie
"Aktivieren", erfolgt wieder eine Abfrage, ob die Daten erhalten bleiben sollen.
Das Sichern der Daten erfolgt nur bei Variablen-Definitions-Dateien, nicht bei Makros.

Hinweis
HMI Advanced
Falls nicht genügend Speicher für die Aktivierung der Definitions-Datei zur Verfügung steht,
muss nach der Änderung der Speichergröße die Datei von der NC in die PCU und wieder
zurück in die NC geladen und damit aktiviert werden.

Beispiel Abfrage beim Verlassen des Editors


"Wollen Sie die Definitionen aus Datei [Link] aktivieren?"

"OK": Es erscheint eine Abfrage, ob die momentan aktiven Daten gerettet werden sollen.
"Sollen die bisherigen Daten der Definitionen erhalten bleiben?"
OK": Die GUD-Bausteine der zu bearbeitenden Definitions-Datei werden
gesichert, die neuen" Definitionen werden aktiviert und die geretteten
Daten werden wieder eingespielt.
"Abbruch": Die neuen Definitionen werden aktiviert, die alten Daten sind verloren.
"Abbruch": Die Änderungen in der Definitions-Datei werden verworfen, der
zugehörige Datenbaustein wird nicht verändert.

3.4.3 Schutzstufen für Maschinen- und Settingdaten ändern (REDEF MD, SD)

Funktion
Der Anwender hat die Möglichkeit, die Schutzstufen zu verändern. Bei den Maschinendaten
können nur Schutzstufen niedrigerer Priorität vergeben werden, bei den Settingdaten auch
höhere.

Programmierung
REDEF Maschinendatum/Settingdatum Schutzstufe

Parameter

Arbeitsvorbereitung
3-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung
3.4 Schutzstufen für Anwenderdaten, MD, SD und NC-Sprachbefehle

REDEF Neudefinition (REDEFintion) z. B.


Maschinen- und Settingdaten einstellen
Maschinen-/Settingdatum Maschinen- oder Settingdatum, dem eine
Schutzstufe zugeordnet werden soll.
Schutzstufe: Zugriffsschutz (Access Protection)
APW n für Schreiben (Write)
APR n für Lesen (Read)
n Schutzstufe n
von 0 (höchste Stufe)
bis 7 (niedrigste Stufe)

Maschinen-/Settingdaten wieder zurücksetzen


Soll die Änderung der Schutzstufen wieder rückgängig gemacht werden, müssen die
ursprünglichen Schutzstufen wieder zurückgeschrieben werden.
REDEF Erweiterungen
Weitere Informationen zur Wirkungsweise der REDEF Anweisung im Teileprogramm siehe
das Kapitel "Schutzstufen für NC-Sprachbefehle".

Beispiel Rechte bei einzelnen MD ändern

%_N_SGUD_DEF
;$PATH=/_N_DEF_DIR
REDEF $MA_CTRLOUT_SEGMENT_NR APR 2 APW 2
REDEF $MA_ENC_SEGMENT_NR APR 2 APW 2
REDEF $SN_JOG_CONT_MODE_LEVELTRIGGRD APR 2 APW 2
M30

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-15
Datei- und Programmverwaltung
3.4 Schutzstufen für Anwenderdaten, MD, SD und NC-Sprachbefehle

Beispiel Rechte bei einzelnen MD auf ursprünglichen Wert zurücksetzen

%_N_SGUD_DEF
;$PATH=/_N_DEF_DIR
REDEF $MA_CTRLOUT_SEGMENT_NR APR 7 APW 2
REDEF $MA_ENC_SEGMENT_NR APR 0 APW 0
REDEF $SN_JOG_CONT_MODE_LEVELTRIGGRD APR 7 APW 7
M30

3.4.4 Schutzstufen für NC-Sprachbefehle (REDEF)

Funktion
Das bestehende Schutzstufenkonzept für den Zugriff auf Maschinen-/Settingdaten und
GUDs wird auf die oben aufgeführten Teileprogrammbefehle erweitert. Dazu wird mit dem
REDEF-Befehl einem Teileprogrammbefehl eine Schutzstufe 0 bis 7 zugeordnet.

Hinweis
Dieser Befehl wird jetzt in der Teileprogrammbearbeitung nur noch ausgeführt, wenn das
entsprechende Ausführungsrecht vorhanden ist.

Programmierung
G-Codes laut "Liste der G-Funktionen/Wegbedingungen"
REDEF (NC-Sprachelement) APX Wert
oder einen Schreibzugriff vom Teileprogramm oder Synchronaktionen auf Systemvariable
REDEF (Systemvariable) APW Wert
oder ändern des Schreib- oder Lesezugriff auf Maschinen- und Settingdaten wie bisher
REDEF (Maschinendatum/Settingdatum) APW Wert
REDEF (Maschinendatum/Settingdatum) APR Wert

Arbeitsvorbereitung
3-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung
3.4 Schutzstufen für Anwenderdaten, MD, SD und NC-Sprachbefehle

Parameter
Der REDEF Befehl wirkt global für alle Kanäle und BAGs

REDEF Wirkung und Anwendung des REDEF-Befehls


NC-Sprachelement Sprachelement dem eine Schutzstufe für das
Ausführen des Befehls zugeordnet werden soll:
1. Vordefinierte Unterprogramme/Funktionen
(siehe gleichnamige Liste)
2. Schlüsselwort "DO"-Anweisung für
Synchronaktionen
3. G-Funktionen (G-Funktionen/Wegbedingungen)
4. Programmbezeichner für Zyklus
Der Zyklus muss in einem der Zyklenverzeichnisse
abgelegt sein und eine PROC-Anweisung enthalten.
Systemvariable Systemvariable, die eine Schutzstufe für den
Schreibzugriff zugeordnet werden soll. Der lesende
Zugriff ist immer möglich. (siehe Liste der
Systemvariablen).
Maschinendatum/Settingdatum Maschinen- bzw. Settingdatum, dem eine Schutzstufe
für den Schreib-/Lesezugriff zugeordnet werden
soll.
APX Schlüsselwort für Zugriffsschutz
APW, APR Ausführen
Schreiben, Lesen
Wert Zahlenwert der Schutzstufe (0 bis 7)
von 0 (höchste Stufe)
bis 7 (niedrigste Stufe)
Wert 7 Schlüsselschalterstellung 0 entspricht der
Voreinstellung aller verfügbaren
Teileprogrammbefehle

Beispiel Unterprogrammaufruf in Definitionsdateien

N10 REDEF GEOAX APX 3


N20 IF(ISFILE("/_N_CST_DIR/_N_SACCESS_SUB1_SPF"))
N30 PCALL /_N_CST_DIR/_N_SACCESS_SUB1_SPF
N40 ENDIF
N40 M17

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-17
Datei- und Programmverwaltung
3.5 REDEF: Attribute von NC-Sprachelementen ändern

Beschreibung
Analog zu den GUD-Definitionen stehen eigene Definitionsdateien zur Verfügung, die im
Steuerungshochlauf ausgewertet werden:
Endanwender: /_N_DEF_DIR/_N_UACCESS_DEF
Hersteller: /_N_DEF_DIR/_N_MACCESS_DEF
Siemens: /_N_DEF_DIR/_N_SACCESS_DEF
Unterprogrammaufruf in Definitionsdateien
In den oben genannten Definitionsdateien können auch Unterprogramme aufgerufen
werden, die REDEF Anweisungen enthalten. Die REDEF Anweisungen müssen grundsätzlich
wie die DEF-Anweisungen am Anfang im Datenteil stehen. Die Unterprogramme müssen die
Extension SPF oder MPF haben und erben den mit den $MN_ACCESS_WRITE_xACCESS
eingestellten Schreibschutz der Definitionsdateien.

Hinweis
Erweiterung des REDEF-Befehls
Sobald die Funktion "Schutzstufen für NC-Sprachbefehle" aktiv ist, müssen die bisher in
GUD-Definitionsdateien angelegten Redefinitionen von Maschinendaten/Settingdaten in die
neuen Definitionsdateien für Schutzstufenzuweisungen verlagert werden, d. h. das Setzen
von Schutzstufen für Maschinen- und Settingdaten ist nur noch in den oben genannten
Schutzstufen-Definitionsdateien erlaubt und in den GUD-Definitionsdateien mit dem Alarm
15420 abgelehnt.

Hinweis
Das Setzen der Initialisierungsattribute und Synchronisationsattribute ist weiterhin nur in den
GUD-Definitionsdateien möglich.
Schutzstufen für Systemvariable
Schutzstufen auf Systemvariable gelten nur für die Wertzuweisungen über
Teileprogrammbefehl. In der Bedienoberfläche wirkt das Schutzstufenkonzept der jeweiligen
HMI-Advanced/Embedded.
Weitere Informationen zum "Schutzstufenkonzept" entnehmen Sie bitte:
/BAD/, Bedienungsanleitung HMI, im Kapitel "Schlüsselschalter" und "Maschinendaten"
/IAD/, Inbetriebnahmeanleitung, "Parametrierung der Steuerung"

3.5 3.5 REDEF: Attribute von NC-Sprachelementen ändern

Funktion
Die in dem vorangehenden Unterkapitel beschriebenen Funktionen zum Definieren von
Datenobjekten und Festlegen von Schutzstufen wird mit der verfügbaren Erweiterung der
REDEF-Anweisung zu einer allgemeinen Schnittstelle zur Einstellung von Attributen und
Werten verallgemeinert.

Arbeitsvorbereitung
3-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung
3.5 REDEF: Attribute von NC-Sprachelementen ändern

Programmierung
REDEF NC-Sprachelement Attribut Wert
oder
REDEF name (ohne weitere Parameterangabe)

Parameter

NC-Sprachelement Hierunter fallen:


GUD
R-Parameter
Maschinendaten/Settingdaten
Synchronvariablen ($AC_PARAM, $AC_MARKER, $AC_TIMER)
aus Teileprogrammen schreibbare Systemvariablen (siehe PGA1)
Anwenderframes (G500, etc.)
Magazin-/Werkzeugkonfigurationen
name Die Einstellungen für APX, APR, APW werden auf Default Werte
gesetzt und INIPO, INIRE, INICF, PRLOC werden wieder
zurückgesetzt.
Attribut Zulässig bei:
Initialisierungen
INIPO GUD, R-Parametern, Synchronvariablen
INIRE GUD, R-Parametern, Synchronvariablen
INICF GUD, R-Parametern, Synchronvariablen
PRLOC Settingdaten
Synchronisation Zulässig bei: Vorgabe eines Defaultwertes:
SYNR GUD Vorlaufstopp beim Lesen
SYNW GUD Vorlaufstopp beim Schreiben
SYNRW GUD Vorlaufstopp beim Lesen u.
Zugriffsberechti- Zulässig bei: Schreiben
gung
APW Maschinen- u. Settingdaten
APR Maschinen- u. Settingdaten Zugriffsrecht beim Schreiben
Zugriffsrecht beim Lesen
Für Maschinen- und Settingdaten
kann man nachträglich die
voreingestellten
Zugriffsberechtigungen
überschreiben. Die zulässigen
Werte reichen dabei von
'0' (Siemens Passwort) bis
'7' (Schlüsselschalterstellung 0)

Optionale Parameter

Wert (optional) Optionaler Parameter bei den Attributen INIPO, INIRE, INICF,
PRLOC: Nachträgliche(r ) Startwert(e)
Formen:

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-19
Datei- und Programmverwaltung
3.5 REDEF: Attribute von NC-Sprachelementen ändern

Einzelwert z. B. 5
Werteliste z. B. (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) für Variable mit 10
Elementen mit
REP (w1) w1: zu wiederholende Werteliste
für Variable mit mehreren Elementen, z. B. REP(12)
SET(w1, w2, w3, ...) oder
(w1, w2, w3, ...) Werteliste
n: erforderlicher Parameter Schutzstufe bei Attributen bei APR
oder APW
Für GUD kann bei der Definition ein Startwert angegeben werden
(DEF NCK INT _MYGUD=5). Wird dieser Startwert (z. B. bei DEF
NCK INT _MYINT) nicht angegeben, so kann bei der REDEF-
Anweisung dieser Startwert nachträglich festgelegt werden.
Der Initialisierungswert für ein Feld gilt für alle
Feldelemente. Einzelne Elemente können mit einer
Initialisierungsliste oder REP( ) gesetzt werden. Beispiele:
REDEF_MYGUD INIRE 5
REDEF_MYGUD INIRE 0,1,2,3,4,5,6,7,8,9
REDEF_MYGUD INIRE REP(12,14,16,18,20)
Nicht anwendbar für R-Parameter und Systemvariablen.
Es können nur Konstanten zugewiesen werden.
Ausdrücke sind als Wert nicht erlaubt.

Bedeutung der Attribute

INIPO INIt bei Power On


Die Daten werden bei gepuffertem Wiederanlauf der NC mit dem(n)
Defaultwert(en) überschrieben.
INIRE INIt bei Bedientafelfront-Reset oder TP-Ende
Beim Ende eines Hauptprogramms mit z. B. M2, M30, etc. oder dem
Abbruch mit Reset werden die Daten mit dem Defaultwert
überschrieben.
INIRE wirkt auch bei INIPO.
INICF INIt bei NewConf-Anforderung oder TP-Befehl NEWCONF
Bei NewConf-Anforderung oder TP-Befehl NEWCONF werden die Daten
mit dem Defaultwert überschrieben.
INICF wirkt auch bei INIRE und INIPO.
PRLOC Nur programmlocale Änderung
Wird das Datum in einem Teileprogramm, Unterprogramm, Zyklus
oder ASUP geändert, so nimmt es nach dem Ende des Hauptprogramms
(Ende mit z. B. M2, M30, etc. oder bei Abbruch durch
Bedientafelfrontreset) wieder seinen ursprünglichen Wert an.
Dieses Attribut ist nur für programmierbare Settingdaten
zulässig, siehe programmierbare Settingdaten.

Die Synchronisation der die Initialisierung auslösenden Ereignisse muss der Anwender
realisieren, d. h. wird z. B. ein Teileprogrammende in zwei verschiedenen Kanälen
ausgeführt, so werden bei jedem dieser Vorgänge die Variablen initialisiert. Das hat
Auswirkung auf globale oder axiale Daten!
Programmierbare Settingdaten und aus dem Teileprogramm schreibbare Systemvariablen
Die folgenden SD sind in Verbindung mit der REDEF Anweisung initialisierbar:

Arbeitsvorbereitung
3-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung
3.5 REDEF: Attribute von NC-Sprachelementen ändern

Nummer Bezeichner GCODE


42000 $SC_THREAD_START_ANGLE SF
42010 $SC_THREAD_RAMP_DISP DITS/DITE
42400 $SA_PUNCH_DWELLTIME PDELAYON
42800 $SA_SPIND_ASSIGN_TAB SETMS
43210 $SA_SPIND_MIN_VELO_G25 G25
43220 $SA_SPIND_MAX_VELO_G26 G26
43230 $SA_SPIND_MAX_VELO_LIMS LIMS
43300 $SA_ASSIGN_FEED_PER_REV_SOURCE FPRAON
43420 $SA_WORKAREA_LIMIT_PLUS G26
43430 $SA_WORKAREA_LIMIT_MINUS G25
43510 $SA_FIXED_STOP_TORQUE FXST
43520 $SA_FIXED_STOP_WINDOW FXSW
43700 $SA_OSCILL_REVERSE_POS1 OSP1
43710 $SA_OSCILL_REVERSE_POS2 OSP2
43720 $SA_OSCILL_DWELL_TIME1 OST1
43730 $SA_OSCILL_DWELL_TIME2 OST2
43740 $SA_OSCILL_VELO FA
43750 $SA_OSCILL_NUM_SPARK_CYCLES OSNSC
43760 $SA_OSCILL_END_POS OSE
43770 $SA_OSCILL_CTRL_MASK OSCTRL
43780 $SA_OSCILL_IS_ACTIVE OS
43790 $SA_OSCILL_START_POS OSB

In der PGA1 "Liste der Systemvariablen" finden Sie die Auflistung der Systemvariablen. Alle
Systemvariablen, die in der Spalte Teileprogramm mit W (write) oder WS (write mit
Vorlaufstopp) gekennzeichnet sind, können mit RESET-Anweisung initialisiert werden.

Beispiel
Resetverhalten bei GUD:
/_N_DEF_DIR/_N_SGUD_DEF
DEF NCK INT _MYGUD1 ;Definitionen
DEF NCK INT _MYGUD2 = 2
DEF NCK INT _MYGUD3 = 3
Initialisieren bei Bedientafelfrontreset/Teileprogrammende:
DEF _MYGUD2 INIRE ;Initialisierung
M17

Damit wird dann bei Bedientafelfrontreset / Teileprogrammende "_MYGUD2" wieder auf den
Wert "2" gesetzt, während "_MYGUD1" und "_MYGUD3" ihren Wert beibehalten.

Beispiel Modale Drehzahlbegrenzung im Teileprogramm (Settingdatum)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-21
Datei- und Programmverwaltung
3.5 REDEF: Attribute von NC-Sprachelementen ändern

/_N_DEF_DIR/_N_SGUD_DEF
REDEF $SA_SPIND_MAX_VELO_LIMS PRLOC ;Settingdatum für Grenzdrehzahl
M17

/_N_MPF_DIR/_N_MY_MPF
N10 SETMS (3)
N20 G96 S100 LIMS=2500
...
M30

Die im Settingdatum ($SA_SPIND_MAX_VELO_LIMS) Drehzahlbegrenzung festgelegte


Grenzdrehzahl sei 1200U/min. Da man in einem eingerichteten und fertig ausgetesteten
Teileprogramm durchaus eine höhere Drehzahl zugelassen werden kann, wird hier
LIMS=2500 programmiert. Nach dem Ende des Programms wirkt dann aber wieder der über
das Settingdatum projektierte Wert.

Einstellungen wieder auf Default Werte setzen und Initialisierungen wieder löschen

Neudefinition Attribut Default Werte Initialisierungen


zurücksetzen
REDEF NC-Sprachelement APX = 7
REDEF Maschinendaten/Settingdaten APW = 7 APR = 7 PRLOC zurücksetzen
REDEF Synchronisationsvariable APW = 7 INIRE, INIPO, INICF zurücksetzen
REDEF GUD, LUD INIRE, INIPO, INICF zurücksetzen
Beispiel
REDEF MASLON APX 2
REDEF SYG RS INIRE APW3
REDEF R[ ] INIRE
REDEF MASLON ;APX auf 7 gesetzt
REDEF SYG RS ;APW auf 7 gesetzt und INIRE gelöscht
REDEF R[ ] ;INIRE gelöscht

Randbedingungen
● Die Änderung der Attribute von NC-Objekten kann erst nach der Definition des Objektes
erfolgen. Insbesondere bei GUD ist damit auf die Reihenfolge DEF.../ REDEF zu achten.
(Settingdaten/Systemvariablen werden implizit und bereits vor der Bearbeitung der
Definitionsdateien angelegt). Es muss immer zuerst das Symbol definiert werden (implizit
von System oder durch die DEF Anweisung) und es kann erst im Anschluss daran mit
REDEF geändert werden.
● Werden mehrere konkurrierende Attributänderungen programmiert, so wird immer die
letzte Änderung aktiv.
● Attribute von Feldern können nicht für einzelne Elemente, sondern immer nur für das
gesamte Feld gesetzt werden:

DEF CHAN INT _MYGUD[10,10]


REDEF _MYGUD INIRE // ok

Arbeitsvorbereitung
3-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Datei- und Programmverwaltung
3.5 REDEF: Attribute von NC-Sprachelementen ändern

REDEF _MYGUD[1,1] INIRE // nicht möglich, Alarm wird ausgegeben


// (Feldwert)

● Das Initialisieren von GUD-Feldern selbst bleibt unbeeinflusst.

DEF NCK INT _MYGUD[10] =(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)


DEF NCK INT _MYGUD[100,100] = REP (12)
DEF NCK INT _MYGUD[100,100] ;

● REDEF Anweisung mit R-Parameter müssen mit Klammern angegeben werden.

REDEF R[ ]INIRE

● INI-Attribute
Es ist jedoch dabei zu beachten, dass beim Setzen der INI-Attribute für diese Variablen
ein entsprechend großer Speicher für INIT-Werte, einstellbar über MD 18150:
MM_GUD_VAL_MEM, zur Verfügung stehen muss. Im MD 11270:
DEFAULT_VALUES_MEM_MASK muss Bit1 = 1 gesetzt sein (Speicher für
Initialisierungswerte aktiv). Ein zu kleiner Speicher hat den Alarm 12261 "Initialisierung
nicht erlaubt" zur Folge
● R-Parameter und Systemvariablen
Für R- und Systemvariablen besteht nicht die Möglichkeit einen vom einkompilierten Wert
abweichenden Defaultwert anzugeben. Das Rücksetzen auf den einkompilierten Wert mit
INIPO, INIRE oder INICF ist aber möglich.
● Für den Datentyp FRAME von GUD kann ebenfalls (wie bereits bei der Definition des
Datums) kein vom einkompilierten Wert abweichender Defaultwert angegeben werden.
● GUD (DEF NCK INT_MYGUD)
Für globale GUD (DEF NCK INT_MYGUD) ist nur das Attribut INIPO zulässig.
Für kanalspezifische GUD (DEF CHAN INT_MYGUD) werden beim entsprechenden
Ergebnis (RESET, BAG-RESET oder NewConfig) nur die Daten im jeweiligen Kanal
initialisiert.
Beispiel: Es sind 2 Kanäle mit dem kanalspezifischen definiert, das bei RESET initialisiert
werden soll:
DEF CHAN INT _MYGUD
REDEF _MYGUD INIRE
Bei einem RESET im ersten Kanal wird das GUD für diesen Kanal zurückgesetzt, der
Wert im zweiten Kanal bleibt unbeeinflusst.

Vorgabe eines Defaultwertes


Wenn mit REDEF <name> INIRE, INIPO; INICF; PRLOC das Verhalten einer
Systemvariablen oder GUD verändert wird, muss das Maschinendatum
MD 11270: DEFAULT_VALUES_MEM_MASK = 1 gesetzt sein (Speicher für
Initialisierungswerte aktiv). Ist das nicht der Fall, führt dies zum Alarm 12261 "Initialisierung
nicht erlaubt".

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 3-23
Datei- und Programmverwaltung
3.6 Strukturierungsanweisung SEFORM im Stepeditor

3.6 3.6 Strukturierungsanweisung SEFORM im Stepeditor

Funktion
Die Anweisung SEFORM wird im Stepeditor ausgewertet, um daraus die Schrittansicht für
HMI-Advanced zu generieren. Die Schrittansicht ist im HMI-Advanced verfügbar und dient
zur besseren Lesbarkeit des NC-Unterprogramms. Mit der Strukturierungsanweisung
SEFORM wird der Stepeditor (editorbasierte Programmunterstützung) über die drei
angegebenen Parameter unterstützt.

Programmierung
SEFORM(STRING[128] abschnittsname, INT ebene, STRING[128] icon)

Parameter
SEFORM Funktionsaufruf der Strukturierungsanweisung mit
den Parametern: abschnittsname, ebene und icon
abschnittname Bezeichner des Arbeitsschrittes
ebene Index für die Haupt- oder Unterebene.
=0 entspricht Hauptebene
=1, ... entspricht Unterebene 1 bis n
icon Name des Icons, welches für diesen Abschnitt
angezeigt werden soll.

Hinweis
Die SEFORM-Anweisungen werden im Stepeditor erzeugt.
Der mit dem Parameter <abschnittsname> übergebene String wird analog zur MSG-
Anweisung hauptlaufsynchron in der BTSS-Variable abgelegt. Die Information bleibt bis zum
Überschreiben der nächsten SEFROM-Anweisung bestehen. Mit Reset und
Teileprogrammende wird der Inhalt gelöscht.
Der Parameter ebene und icon werden bei der Teileprogrammbearbeitung vom NCK geprüft,
aber nicht weiterverarbeitet.
Weitere Informationen zur editorbasierten Programmierunterstützung entnehmen Sie bitte:
/BAD/ Bedienungsanleitung HMI Advanced.

Arbeitsvorbereitung
3-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Schutzbereiche 4
4.1 4.1 Festlegung der Schutzbereiche (CPROTDEF, NPROTDEF)

Funktion
Mit Hilfe von Schutzbereichen lassen sich verschiedene Elemente an der Maschine, die
Ausrüstung sowie das Werkstück vor falschen Bewegungen schützen.
Werkzeugbezogene Schutzbereiche:
Für Teile, die zum Werkzeug gehören (z. B. Werkzeug, Werkzeugträger).
Werkstückbezogene Schutzbereiche:
Für Teile, die zum Werkstück gehören (z. B. Teile des Werkstücks, Aufspanntisch,
Spannpratzen, Spindelfutter, Reitstock).

:HUN]HXJEH]RJHQHU < :HUN]HXJEH]RJHQHU


6FKXW]EHUHLFK 6FKXW]EHUHLFK

%

=
;

:HUNVW¾FNEH]RJHQHU
6FKXW]EHUHLFK

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 4-1
Schutzbereiche
4.1 Festlegung der Schutzbereiche (CPROTDEF, NPROTDEF)

Programmierung
DEF INT NOT_USED
CPROTDEF(n,t,applim,applus,appminus)
NPROTDEF(n,t,applim,applus,appminus)
EXECUTE (NOT_USED)

Parameter

DEF INT NOT_USED Lokale Variable, Datentyp Integer definieren (vgl. Kap.
Bewegungssynchronaktion)
CPROTDEF Kanalspezifische Schutzbereiche (nur für NCU 572/573)
definieren
NPROTDEF Maschinenspezifische Schutzbereiche definieren
EXECUTE Definition beenden
n Nummer des definierten Schutzbereichs
t TRUE = Werkzeugbezogener Schutzbereich
FALSE = Werkstückbezogener Schutzbereich
applim Art der Begrenzung in der 3. Dimension
0 = keine Begrenzung
1 = Begrenzung in Plus-Richtung
2 = Begrenzung in Minus-Richtung
3 = Begrenzung in Plus- und Minus-Richtung
applus Wert der Begrenzung in Plus-Richtung der 3. Dimension
appminus Wert der Begrenzung in Minus-Richtung der 3. Dimension
NOT_USED Die Fehlervariable ist bei Schutzbereichen mit EXECUTE
wirkungslos

Beschreibung
Zur Definition von Schutzbereichen gehören:
● CPROTDEF für kanalspezifische Schutzbereiche
● NPROTDEF für maschinenspezifische Schutzbereiche
● Konturbeschreibung des Schutzbereichs
● Abschluss der Definition mit EXECUTE
Bei Aktivierung des Schutzbereichs im NC-Teileprogramm können Sie den Bezugspunkt des
Schutzbereichs relativ verschieben.

Bezugspunkt der Konturbeschreibung


Die werkstückbezogenen Schutzbereiche werden im Basiskoordinatensystem definiert. Die
werkzeugbezogenen Schutzbereiche werden bezogen auf den Werkzeugträgerbezugspunkt
F angegeben.

Arbeitsvorbereitung
4-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Schutzbereiche
4.1 Festlegung der Schutzbereiche (CPROTDEF, NPROTDEF)

Konturbeschreibung von Schutzbereichen


Die Kontur der Schutzbereiche wird mit maximal 11 Verfahrbewegungen in der angewählten
Ebene angegeben. Dabei ist die erste Verfahrbewegung die Bewegung an die Kontur. Als
Schutzbereich gilt dabei der Bereich links von der Kontur. Die zwischen CPROTDEF bzw.
NPROTDEF und EXECUTE stehenden Verfahrbewegungen werden nicht ausgeführt,
sondern definieren den Schutzbereich.

Arbeitsebene
Die gewünschte Ebene wird vor CPROTDEF bzw. NPROTDEF mit G17, G18, G19
angewählt und darf vor EXECUTE nicht geändert werden. Eine Programmierung der
Applikate zwischen CPROTDEF bzw. NPROTDEF und EXECUTE ist nicht zulässig.

Konturelemente
Zulässig sind:
● G0, G1 für gerade Konturelemente
● G2 für Kreisabschnitte im Uhrzeigersinn (nur für werkstückbezogene Schutzbereiche)
● G3 für Kreisabschnitte gegen den Uhrzeigersinn

Hinweis
Bei 810D stehen max. 4 Konturelemente zur Definition von jeweils einem Schutzbereich
(max. 4 kanalspezifische und 4 NCK-spezifische Schutzbereiche) zur Verfügung.
Soll ein Vollkreis den Schutzbereich beschreiben, so ist er in zwei Teilkreise aufzuteilen.
Die Folge G2, G3 bzw. G3, G2 ist nicht zulässig. Hier ist ggf. ein kurzer G1-Satz
einzuschieben.
Der letzte Punkt der Konturbeschreibung muss mit dem ersten Punkt zusammenfallen.
Außenschutzbereiche (nur bei werkstückbezogenen Schutzbereichen möglich) sind im
Uhrzeigersinn zu definieren.
Bei rotationssymmetrischen Schutzbereichen (z. B. Spindelfutter) müssen Sie die
Gesamtkontur beschreiben (nicht nur bis zur Drehmitte!).
Werkzeugbezogene Schutzbereiche müssen immer konvex sein. Falls ein konkaver
Schutzbereich gewünscht ist, ist dieser in mehrere konvexe Schutzbereiche zu zerlegen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 4-3
Schutzbereiche
4.2 Schutzbereiche aktivieren, deaktivieren (CPROT, NPROT)

.RQYH[H6FKXW]EHUHLFKH

.RQNDYH6FKXW]EHUHLFKH QLFKW]XO¦VVLJ

Während der Definition der Schutzbereiche darf


● keine Fräserradius- bzw. Schneidenradiuskorrektur,
● keine Transformation,
● kein Frame aktiv sein.
Es darf auch nicht Referenzpunktanfahren (G74), Festpunktanfahren (G75), Satzvorlauf-
Stopp oder Programmende programmiert sein.

4.2 4.2 Schutzbereiche aktivieren, deaktivieren (CPROT, NPROT)

Funktion
Vorher definierte Schutzbereiche zur Kollisionsüberwachung aktivieren, voraktivieren oder
aktive Schutzbereiche deaktivieren.
Die maximale Anzahl der gleichzeitig in einem Kanal aktiven Schutzbereiche wird über
Maschinendatum festgelegt.
Ist kein werkzeugbezogener Schutzbereich aktiv, so wird die Werkzeugbahn gegen die
werkstückbezogenen Schutzbereiche geprüft.

Hinweis
Ist kein werkstückbezogener Schutzbereich aktiv, so findet keine
Schutzbereichsüberwachung statt.

Programmierung
CPROT (n,state,xMov,yMov,zMov)
NPROT (n,state,xMov,yMov,zMov)

Parameter

CPROT Aufruf kanalspezifischer Schutzbereich (nur für NCU 572/573)

Arbeitsvorbereitung
4-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Schutzbereiche
4.2 Schutzbereiche aktivieren, deaktivieren (CPROT, NPROT)

NPROT Aufruf maschinenspezifischer Schutzbereich


n Nummer des Schutzbereichs
state Statusangabe
0 =Schutzbereich deaktivieren
1 = Schutzbereich voraktivieren
2 = Schutzbereich aktivieren
3 = Schutzbereich voraktivieren mit bedingtem Stopp
xMov,yMov,zMov Bereits definierten Schutzbereich in den Geometrieachsen
verschieben

Beispiel Fräsen
Für eine Fräsmaschine soll eine mögliche Kollision des Fräsers mit dem Messtaster
überwacht werden. Die Lage des Messtasters soll bei der Aktivierung durch eine
Verschiebung angegeben werden. Es werden dafür folgende Schutzbereiche definiert:
● Jeweils ein maschinenspezifischer und werkstückbezogener Schutzbereich für den
Messtasterhalter (n-SB1) und für den Messtaster selbst (n-SB2).
● Jeweils ein kanalspezifischer und werkzeugbezogener Schutzbereich für den
Fräserhalter (c-SB1), den Fräserschaft (c-SB2) und für den Fräser selbst (c-SB3).
Die Orientierung aller Schutzbereiche liegt in Z-Richtung.
Die Lage des Bezugspunktes des Messtasters bei der Aktivierung soll bei X = –120, Y = 60
und Z = 80 liegen.

%H]XJVSXQNWI¾U 
GHQ6FKXW]EHUHLFK
GHV0H¡WDVWHUV
Q6%
Q6% &6%







&6%
=



&6%



<

DEF INT SCHUTZB Definition einer Hilfsvariablen


Definition der Schutzbereiche Orientierung einstellen
G17

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 4-5
Schutzbereiche
4.2 Schutzbereiche aktivieren, deaktivieren (CPROT, NPROT)

NPROTDEF(1,FALSE,3,10,–10) Schutzbereich n–SB1


G01 X0 Y–10
X40
Y10
X0
Y–10
EXECUTE(SCHUTZB)

NPROTDEF(2,FALSE,3,5,–5) Schutzbereich n–SB2


G01 X40 Y–5
X70
Y5
X40
Y–5
EXECUTE(SCHUTZB)

CPROTDEF(1,TRUE,3,0,–100) Schutzbereich c–SB1


G01 X–20 Y–20
X20
Y20
X–20
Y–20
EXECUTE(SCHUTZB)

CPROTDEF(2,TRUE,3,–100,–150) Schutzbereich c–SB2


G01 X0 Y–10
G03 X0 Y10 J10
X0 Y–10 J–10
EXECUTE(SCHUTZB)

CPROTDEF(3,TRUE,3,–150,–170) Schutzbereich c–SB3


G01 X0 Y–27,5
G03 X0 Y27,5 J27,5
X0 Y27,5 J–27,5
EXECUTE(SCHUTZB)
Aktivierung der Schutzbereiche:
NPROT(1,2,–120,60,80) Schutzbereich n–SB1 m. Versch. aktivieren
NPROT(2,2,–120,60,80) Schutzbereich n–SB2 m. Versch. aktivieren
CPROT(1,2,0,0,0) Schutzbereich c–SB1 m. Versch. aktivieren
CPROT(2,2,0,0,0) Schutzbereich c–SB2 m. Versch. aktivieren
CPROT(3,2,0,0,0) Schutzbereich c–SB3 m. Versch. aktivieren

Aktivierungsstatus
Ein Schutzbereich wird im allgemeinen im Teileprogramm mit Status = 2 aktiviert.

Arbeitsvorbereitung
4-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Schutzbereiche
4.2 Schutzbereiche aktivieren, deaktivieren (CPROT, NPROT)

Der Status ist immer kanalspezifisch, auch bei maschinenbezogenen Schutzbereichen.


Wenn durch das PLC-Anwenderprogramm vorgesehen ist, dass ein Schutzbereich durch
das PLC-Anwenderprogramm wirksam gesetzt werden kann, so erfolgt die dafür
erforderliche Voraktivierung durch den Status = 1.
Die Deaktivierung und damit das Ausschalten der Schutzbereiche erfolgt durch den Status =
0. Es ist dabei keine Verschiebung notwendig.

Verschiebung von Schutzbereichen beim (Vor-)Aktivieren


Die Verschiebung kann in 1, 2 oder 3 Dimensionen erfolgen. Die Angabe der Verschiebung
bezieht sich auf:
● den Maschinennullpunkt bei werkstückspezifischen Schutzbereichen,
● den Werkzeugträgerbezugspunkt F bei werkzeugspezifischen Schutzbereichen.

Status nach dem Hochlaufen


Schutzbereiche können bereits nach dem Hochlaufen und anschließendem
Referenzpunktanfahren aktiviert sein. Es muss dafür die Systemvariable
$SN_PA_ACTIV_IMMED [n] bzw.
$SN_PA_ACTIV_IMMED[n] = TRUE gesetzt sein.
Sie werden immer mit dem Status = 2 aktiviert und haben keine Verschiebung.

Mehrfache Aktivierung von Schutzbereichen


Ein Schutzbereich kann gleichzeitig auch in mehreren Kanälen wirksam sein (z. B. Pinole bei
zwei gegenüberliegenden Schlitten). Die Überwachung der Schutzbereiche erfolgt nur, wenn
alle Geometrieachsen referiert sind. Dabei gilt:
● Der Schutzbereich ist in einem Kanal nicht gleichzeitig mehrfach mit verschiedenen
Verschiebungen aktivierbar.
● Maschinenbezogene Schutzbereiche müssen in beiden Kanälen die gleiche Orientierung
aufweisen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 4-7
Schutzbereiche
4.3 Überprüfung auf Schutzbereichsverletzung, Arbeitsfeldbegrenzung und Softwarelimits

4.3 4.3 Überprüfung auf Schutzbereichsverletzung, Arbeitsfeldbegrenzung


und Softwarelimits

Funktion
Die Funktion CALCPOSI dient dazu zu überprüfen, ob ausgehend von einem gegebenen
Startpunkt die Geometrieachsen einen vorgegebenen Weg verfahren können, ohne die
Achsgrenzen (Softwarelimits), Arbeitsfeldbegrenzungen oder Schutzbereiche zu verletzen.
Für den Fall, dass der vorgegebene Weg nicht gefahren werden kann, wird der maximal
zulässige Wert zurückgeben.
Die Funktion CALCPOSI ist ein vordefiniertes Unterprogramm. Sie muss alleine in einem
Satz stehen.

Programmierung
Status=CALCPOSI(_STARTPOS, _MOVDIST, _DLIMIT, _MAXDIST, _BASE_SYS,
_TESTLIM)

Parameter

Status 0: Funktion o. k.,


der vorgegebene Weg kann vollständig abgefahren werden.
–: In _DLIMIT ist mindestens eine Komponente negativ
–: In einer Transformationsberechnung ist ein Fehler aufgetreten
Kann der vorgegebene Weg nicht vollständig abgefahren werden, wird
ein positiver, dezimal codierter Wert zurückgegeben:
Einerstelle (Art der verletzten Grenze):
1: Softwarelimits begrenzen den Verfahrweg.
2: Arbeitsfeldbegrenzung begrenzt den Verfahrweg.
3: Schutzbereiche begrenzen den Verfahrweg.
Sind gleichzeitig mehrere Grenzen verletzt (z. B. Softwarelimits
und Schutzbereiche), wird in der Einerstelle die Grenze gemeldet,
die zur stärksten Einschränkung des vorgegebenen Verfahrweges
führt.
Zehnerstelle
10:
Der Anfangswert verletzt die Grenze
20:
Die vorgegebene Gerade verletzt die Grenze. Dieser Wert wird auch
dann zurückgegeben, wenn der Endpunkt selbst keine Grenze
verletzt, auf dem Weg vom Start–zum Endpunkt aber eine Verletzung
eines Grenzwertes auftreten würde (z. B. Durchfahren eines
Schutzbereiches, gekrümmte Softwarelimits im WKS bei nichtlinearen
Transformationen, z. B. Transmit).

Arbeitsvorbereitung
4-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Schutzbereiche
4.3 Überprüfung auf Schutzbereichsverletzung, Arbeitsfeldbegrenzung und Softwarelimits

Hunderterstelle
100:
Der positive Grenzwert ist verletzt (nur, wenn die Einerstelle 1
oder 2 ist, d. h. bei Softwarelimits und Arbeitsfeldbegrenzung)
100:
Es ist ein NCKSchutzbereich verletzt (nur, wenn die Einerstelle 3
ist).
200:
Der negative Grenzwert ist verletzt (nur, wenn die Einerstelle 1
oder 2 ist, d. h. bei Softwarelimits und Arbeitsfeldbegrenzung)
200:
Es ist ein kanalspezifischer Schutzbereich verletzt (nur, wenn die
Einerstelle 3 ist).
Tausenderstelle
1000:
Faktor, mit dem die Nummer der Achse multipliziert wird, die die
Grenze verletzt (nur, wenn die Einerstelle 1 oder 2 ist, d. h. bei
Softwarelimits und Arbeitsfeldbegrenzung).
Die Zählung der Achsen beginnt bei 1 und bezieht sich bei
verletzten Softwarelimits (Einerstelle = 1) auf die
Maschinenachsen und bei verletzter Arbeitsfeldbegrenzung
(Einerstelle =2) auf die Geometrieachsen.
1000:
Faktor, mit dem die Nummer des verletzten Schutzbereiches
multipliziert wird (nur, wenn die Einerstelle 3 ist).
Sind mehrere Schutzbereiche verletzt, wird in den Hunderter–und
Tausenderstellen der Schutzbereich gemeldet, der zur stärksten
Einschränkung des vorgegebenen Verfahrweges führt.
_STARTPOS Anfangswert für Abszisse [0], Ordinate [1] und Applikate [2] im
(WKS)
_MOVEDIST Wegvorgabe inkrementell für Abszisse [0], Ordinate [1] und
Applikate [2]
_DLIMIT [0] - [2]: Mindestabstände die den Geometrieachsen zugeordnet
sind.
[3]: Mindestabstand, der einer linearen Maschinenachse zugeordnet
wird bei einer nicht linearen Transformation, wenn keine
Geometrieachse eindeutig zugeordnet werden kann.
[4]: Mindestabstand, der einer rotatorischen Maschinenachse
zugeordnet wird bei einer nicht linearen Transformation, wenn
keine Geometrieachse eindeutig zugeordnet werden kann. Nur bei
speziellen Transformationen, wenn SW-Limits überwacht werden
sollen.
_MAXDIST Feld [0] - [2] für Rückgabewert. Inkrementeller Weg in allen drei
Geometrieachsen, ohne dass der vorgegebene Mindestabstand von
einer Achsgrenze in den beteiligten Maschinenachsen unterschritten
wird.
Ist der Verfahrweg nicht eingeschränkt, ist der Inhalt dieses
Rückgabeparameters gleich dem Inhalt von _MOVDIST.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 4-9
Schutzbereiche
4.3 Überprüfung auf Schutzbereichsverletzung, Arbeitsfeldbegrenzung und Softwarelimits

_BASE_SYS FALSE oder Parameter nicht angegeben:


Bei der Bewertung der Positions- und Längenangaben wird der G-Code
der Gruppe 13 (G70, G71, G700, G710; inch/metrisch) ausgewertet.
Bei aktivem G70 und metrischem Grundsystem (bzw. aktivem G71 und
inch) werden die WKSSystemvariablen $AA_IW[X] und $AA_MW[X]) im
Grundsystem geliefert und müssen gegebenenfalls zur Verwendung
durch die Funktion CALCPOSI umgerechnet werden.
TRUE:
Bei der Bewertung der Positions–und Längenangaben wird stets das
Grundsystem der Steuerung unabhängig vom Wert des aktiven Gder
Gruppe 13 verwendet.
_TESTLIM Zu überprüfende Begrenzungen (binär codiert):
1: Software Limits überwachen
2: Arbeitsfeldbegrenzungen überwachen
3: Aktivierte Schutzbereiche überwachen
4: Voraktivierte Schutzbereiche überwachen
Kombinationen durch addieren der Werte. Default: 15; alle prüfen.

Beispiel
Im Beispiel (siehe Bild) sind in der XSoftwarelimits und Arbeitsfeldbegrenzungen
eingezeichnet. Zusätzlich sind drei Schutzbereiche definiert, die beiden kanalspezifischen
Schutzbereiche C2 und C4 sowie der NCKSchutzbereich N3. C2 ist ein kreisförmiger aktiver,
werkzeugbezogener Schutzbereich mit 2 mm Radius. C4 ist ein quadratischer, voraktivierter
und werkstückbezogener Schutzbereich mit 10 mm Seitenlänge und N3 ist ein rechteckiger
aktiver Schutzbereich mit 10 mm bzw. 15 mm Seitenlänge. Im folgenden NCwerden
zunächst die Schutzbereiche und Arbeitsfeldbegrenzungen wie skizziert definiert, und
anschließend wird die Funktion CALCPOSI mit verschiedenen Parametrierungen
aufgerufen. Die Ergebnisse der einzelnen Aufrufe von CALCPOSI sind in der Tabelle am
Beispielende zusammengefasst.

Arbeitsvorbereitung
4-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Schutzbereiche
4.3 Überprüfung auf Schutzbereichsverletzung, Arbeitsfeldbegrenzung und Softwarelimits

<
6RIWZDUHOLPLWV

& YRUDNWLY

11

1

1



1

&
  

$UEHLWVIHOGEHJUHQ]XQJ

N10 def real _STARTPOS[3]


N20 def real _MOVDIST[3]
N30 def real _DLIMIT[5]
N40 def real _MAXDIST[3]
N50 def int _SB
N60 def int _STATUS
N70 cprotdef(2, true, 0) ;werkzeugbezogener Schutzbereich
N80 g17 g1 x–y0
N90 g3 i2 x2
N100 i–x–
N110 execute(_SB)
N120 cprotdef(4, false, 0) ;werkstückbezogener Schutzbereich
N130 g17 g1 x0 y15
N140 x10
N150 y25
N160 x0
N170 y15
N180 execute(_SB)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 4-11
Schutzbereiche
4.3 Überprüfung auf Schutzbereichsverletzung, Arbeitsfeldbegrenzung und Softwarelimits

N190 nprotdef(3, false, 0) ;maschinenbezogener Schutzbereich


N200 g17 g1 x10 y5
N210 x25
N220 y15
N230 x10
N240 y5
N250 execute(_SB)
N260 cprot(2,2,0, 0, 0) ;Schutzbereiche aktivieren bzw.
N270 cprot(4,1,0, 0, 0) ;voraktivieren

N280 nprot(3,2,0, 0, 0)
N290 g25 XX=–YY=– ;Arbeitsfeldbegrenzungen definieren
N300 g26 xx= 20 yy= 21
N310 _STARTPOS[0] = 0.
N320 _STARTPOS[1] = 0.
N330 _STARTPOS[2] = 0.
N340 _MOVDIST[0] = 35.
N350 _MOVDIST[1] = 20.
N360 _MOVDIST[2] = 0.
N370 _DLIMIT[0] = 0.
N380 _DLIMIT[1] = 0.
N390 _DLIMIT[2] = 0.
N400 _DLIMIT[3] = 0.
N410 _DLIMIT[4] = 0.
;Verschiede Funktionsaufrufe
N420 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST)
N430 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,,3)
N440 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,,1)
N450 _STARTPOS[0] = 5. ;Anderer Startpunkt
N460 _STARTPOS[1] = 17.
N470 _STARTPOS[2] = 0.
N480 _MOVDIST[0] = 0. ;Anderes Ziel
N490 _MOVDIST[1] =–.
N500 _MOVDIST[2] = 0.
;Verschiede Funktionsaufrufe
N510 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,,14)
N520 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,, 6)
N530 _DLIMIT[1] = 2.
N540 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,, 6)
N550 _STARTPOS[0] = 27.
N560 _STARTPOS[1] = 17.1
N570 _STARTPOS[2] = 0.
N580 _MOVDIST[0] =–.
N590 _MOVDIST[1] = 0.
N600 _MOVDIST[2] = 0.

Arbeitsvorbereitung
4-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Schutzbereiche
4.3 Überprüfung auf Schutzbereichsverletzung, Arbeitsfeldbegrenzung und Softwarelimits

N610 _DLIMIT[3] = 2.
N620 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,, 12)
N630 _STARTPOS[0] = 0.
N640 _STARTPOS[1] = 0.
N650 _STARTPOS[2] = 0.
N660 _MOVDIST[0] = 0.
N670 _MOVDIST[1] = 30.
N680 _MOVDIST[2] = 0.
N690 trans x10
N700 arot z45
N710 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST)
N720 M30

Ergebnisse der Prüfungen im Beispiel:

Satznr. _STATUS _MAXDIST _MAXDIST Bemerkungen


N... [0] (= X) [1] (= Y)
420 3123 8.040 4.594 Schutzbereich SB N3 wird verletzt.
430 1122 20.000 11.429 Keine SB–Überwachung,-Arbeitsfeld-
begrenzung wird verletzt.
440 1121 30.000 17.143 Nur noch Überwachung der
Softwarelimits aktiv.
510 4213 0.000 0.000 Startpunkt verletzt SB C4
520 0000 0.000 –.000 Voraktivierter SB C4 wird nicht
überwacht. Vorgegebener Weg kann
vollständig verfahren werden.
540 2222 0.000 –.000 Wegen _DLIMIT[1]=2 wird der
Verfahrweg durch
Arbeitsfeldbegrenzung eingeschränkt.
620 4223 –.000 0.000 Abstand zu C4 wegen C2 und
_DLIMIT[3] insgesamt 4 mm. Abstand
C2 –N3 von 0.1 mm führt nicht zur
Beschränkung des Verfahrwegs.
710 1221 0.000 21.213 Frame mit Translation und Rotation
aktiv. Der zulässige Verfahrweg in
_MOVDIST gilt im verschobenen und
gedrehten Koordinatensystem (WKS).

Sonderfälle und weitere Details


Alle Wegangaben sind immer im Radiusmaß auch bei einer Planachse mit aktivem
G"DIAMON". Kann der Weg einer der beteiligten Achsen nicht vollständig verfahren werden,
werden im Rückgabewert _MAXDIST auch die Wege der anderen Achsen entsprechend
reduziert, so dass der resultierende Endpunkt auf der vorgegebenen Bahn liegt.
Es ist zulässig, dass für eine oder mehrere der beteiligten Achsen keine Softwarelimits bzw.
Arbeitsfeldbegrenzungen oder Schutzbereiche definiert sind. Sämtliche Grenzen werden nur
überwacht, wenn die beteiligten Achsen referiert sind. Eventuell beteiligte Rundachsen
werden nur überwacht, wenn sie keine Moduloachsen sind.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 4-13
Schutzbereiche
4.3 Überprüfung auf Schutzbereichsverletzung, Arbeitsfeldbegrenzung und Softwarelimits

Die Überwachung der Softwarelimits und der Arbeitsfeldbegrenzungen ist wie im normalen
Verfahrbetrieb abhängig von aktiven Einstellungen (Interfacesignale zur Auswahl der
Softwarelimits 1 bzw. Softwarelimits 2, GWALIMON/WALIMOF, Settingdaten zur
individuellen Aktivierung der Arbeitsfeldgrenzen und zur Festlegung, ob bei der
Überwachung der Arbeitsfeldbegrenzungen der Radius des aktiven Werkzeuges
berücksichtigt werden soll oder nicht).
Bei bestimmten kinematischen Transformationen (z.B. TRANSMIT) kann die Position der
Maschinenachsen aus den Positionen im Werkstückkoordinatensystem (WKS) nicht
eindeutig bestimmt werden (Mehrdeutigkeit). Im normalen Verfahrbetrieb ergibt sich die
Eindeutigkeit in der Regel aus der Vorgeschichte und der Bedingung, dass einer
kontinuierlichen Bewegung im WKS eine kontinuierliche Bewegung der Maschinenachsen
entsprechen muss. Bei der Überwachung der Softwarelimits mit Hilfe der Funktion
CALCPOSI wird deshalb in derartigen Fällen die gegenwärtige Maschinenposition zur
Auflösung der Mehrdeutigkeit herangezogen. Gegebenenfalls muss deshalb vor CALCPOSI
ein STOPRE programmiert werden, um die Funktion mit gültigen Maschinenachspositionen
versorgen zu können.
Es ist nicht sichergestellt, dass zu den Schutzbereichen bei einer Bewegung auf dem
vorgegebenen Verfahrweg der in _DLIMIT[3] spezifizierte Abstand überall eingehalten wird.
Dafür kann bei Verlängerung des in _MOVDIST zurückgelieferten Endpunktes um diese
Distanz kein Schutzbereich verletzt werden. Die Gerade kann in ihrem Verlauf aber beliebig
dicht an einem Schutzbereich vorbei führen.

Hinweis
Details zu Arbeitsfeldbegrenzungen finden Sie im
/PG/ Programmierhandbuch Grundlagen,
zu den Softwarelimits in
/FB1/ Funktionshandbuch Grundfunktionen; Achsüberwachungen, Schutzbereiche (A3).

Arbeitsvorbereitung
4-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle 5
5.1 5.1 Codierte Positionen anfahren (CAC, CIC, CDC, CACP, CACN)

Funktion
Über Maschinendaten können Sie für 2 Achsen jeweils maximal 60 (0 bis 59) Positionen in
Positionstabellen eingeben.

Programmierung
CAC (n)
oder
CIC (n)
oder
CACP (n)
oder
CACN (n)

Parameter

CAC (n) Codierte Position absolut anfahren


CIC (n) Codierte Position um n-Plätze vor (+) oder zurück (–) inkrementell
anfahren
CDC (n) Codierte Position auf kürzestem Weg anfahren (nur für Rundachsen)
CACP (n) Codierte Position absolut in positiver Richtung (nur für
Rundachsen)
CACN (n) Codierte Position absolut in negativer Richtung (nur für
Rundachsen)
(n) Positionsnummer 1, 2, … max. 60 Positionen pro Achse

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-1
Spezielle Wegbefehle
5.2 Spline-Interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN)

Beispiel Positioniertabelle für Linearachse und Rundachse

    

7DEHOOH /LQLHQDFKVH
3RVLWLRQVQXPPHU    
3RVLWLRQVZHUW      PP
7HLOXQJVDFKVH 
 

 

 
7DEHOOH 5XQGDFKVH 
3RVLWLRQVQXPPHU     
3RVLWLRQVZHUW      *UDG

Hinweis
Falls eine Achse zwischen zwei Positionen steht, wird bei inkrementeller Angabe mit CIC(…)
nicht verfahren. Es empfiehlt sich, den ersten Fahrbefehl immer mit absoluter
Positionsangabe zu programmieren.

Beispiel 2

N10 FA[B]= 300 ;Vorschub für Positionsachse B


N20 POS[B]= CAC (10) ;Codierte Position 10 anfahren (absolut)
N30 POS[B]= CIC (-4) ;Fahre von der aktuellen Position 4 Plätze zurück

5.2 5.2 Spline-Interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT,


BTAN)

Funktion
Mit der Spline-Interpolation können Punktefolgen durch glatte Kurven verbunden werden.
Splines können z. B. verwendet werden, um digitalisierte Punkte zu Kurven zu verbinden.
Es gibt verschiedene Spline-Typen mit unterschiedlichen Eigenschaften, die auch zu
unterschiedlichen Ergebnissen führen. Neben der Auswahl der Spline-Typen hat der

Arbeitsvorbereitung
5-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.2 Spline-Interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN)

Benutzer auch noch Einfluss auf eine Reihe von Parametern. Oftmals bedarf es einiger
Versuche, um das gewünschte Bild zu erzeugen.

3
3

3 3

3
3

3ELV3YRUJHJHEHQH.RRUGLQDWHQ

Einen Spline programmieren Sie, wenn eine Punktfolge durch eine Kurve verbunden werden
soll. Drei Spline-Arten sind möglich:
● A-Spline (Akima-Spline)
● B-Spline (Nicht uniformer, rationaler Basis-Spline, NURBS)
● C-Spline (Kubischer Spline)

Programmierung
ASPLINE X Y Z A B C
oder
BSPLINE X Y Z A B C
oder
CSPLINE X Y Z A B C

Parameter

ASPLINE Akima-Spline verläuft tangentenseitig durch die programmierten


Stützpunkte.
BSPLINE B-Spline verläuft nicht direkt durch die Kontrollpunkte,
sondern lediglich in deren Nähe. Die programmierten Positionen
sind keine Stützpunkte, sondern nur Kontrollpunkte.
CSPLINE Kubischer Spline mit Übergängen an den Stützpunten tangenten-
und krümmungsseitig.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-3
Spezielle Wegbefehle
5.2 Spline-Interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN)

A-, B- und C-Spline sind modal wirksam und gehören zur Gruppe der Wegbefehle.
Die Werkzeugradiuskorrektur ist einsetzbar.
Kollisionsüberwachung erfolgt in der Projektion auf die Ebene.

Hinweis
Parameter für A-SPLINE und C-SPLINE
Für den Akima-Spline (A-Spline) und den Kubischen Spline (C-Spline) können
Randbedingungen für das Übergangsverhalten am Beginn und am Ende der Spline Kurve
programmiert werden.
Diese Randbedingungen für das Übergangsverhalten sind in zwei Gruppen mit
Anweisungen zu je drei Befehlen wie folgt aufgeteilt:

Beginn der Spline-Kurve:


BAUTO keine Vorgabe; Anfang ergibt sich aus der Lage des ersten
Punktes
BNAT Krümmung Null
BTAN tangentialer Übergang zum Satz vorher (Löschstellung)
Ende der Spline-Kurve:
EAUTO keine Vorgabe; Ende ergibt sich aus der Lage des letzten
Punktes
ENAT Krümmung Null
ETAN tangentialer Übergang zum nächsten Satz (Löschstellung)

%$872
($872

NHLQH9RUJDEH

%1$7
(1$7

.U¾PPXQJ1XOO

žEHUJDQJ
WDQJHQWLDO

%7$1 (7$1

Arbeitsvorbereitung
5-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.2 Spline-Interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN)

Hinweis
Parameter für B-SPLINE
Die programmierbaren Randbedingungen (siehe A- bzw. C-Spline) haben keinen Einfluss
auf den B-Spline. Der B-Spline ist in Start- und Endpunkt immer tangential zum
Kontrollpolygon.

Punktgewicht::
PW = n Für jeden Stützpunkt ist die Programmierung der Gewichtsangabe
als sogenanntes Punkt-Gewicht PW möglich.
Wertebereich:
<= n <= 3 in Schritten von 0.0001
Wirkung:
n > 1 Die Kurve wird vom Kontrollpunkt stärker angezogen
n < 1 Die Kurve wird vom Kontrollpunkt weniger stark angezogen
Spline-Grad:
SD = 2 Standardmäßig wird ein Polygon 3. Grades verwendet. Sie können
auch ein Polygon 2. Grades verwenden.
Knotenabstand:
PL = Wert Die Knotenabstände werden intern geeignet berechnet. Die
Steuerung kann aber auch vorgegebene Knotenabstände
verarbeiten, die in der sogenannten Parameter-Intervall-Länge
PL angegeben werden.
Wert Wertebereich wie Wegmaß

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-5
Spezielle Wegbefehle
5.2 Spline-Interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN)

Beispiel B-Spline

<

.RQWUROOSRO\JRQ
DOOH*HZLFKWH
 XQWHUVFKLHGOLFKH*HZLFKWH








;

     

alle Gewichte 1 unterschiedliche Gewichte Kontrollpolygon


N10 G1 X0 Y0 F300 G64 N10 G1 X0 Y0 F300 G64 N10 G1 X0 Y0 F300 G64
N20 BSPLINE N20 BSPLINE N20 ;entfällt
N30 X10 Y20 N30 X10 Y20 PW=2 N30 X10 Y20
N40 X20 Y40 N40 X20 Y40 N40 X20 Y40
N50 X30 Y30 N50 X30 Y30 PW=0.5 N50 X30 Y30
N60 X40 Y45 N60 X40 Y45 N60 X40 Y45
N70 X50 Y0 N70 X50 Y0 N70 X50 Y0

Arbeitsvorbereitung
5-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.2 Spline-Interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN)

Beispiel C-Spline, am Anfang und am Ende Krümmung Null

<










;

        

N10 G1 X0 Y0 F300
N15 X10
N20 BNAT ENAT ;C-Spline, am Anfang und am Ende Krümmung Null
N30 CSPLINE X20 Y10
N40 X30
N50 X40 Y5
N60 X50 Y15
N70 X55 Y7
N80 X60 Y20
N90 X65 Y20
N100 X70 Y0
N110 X80 Y10
N120 X90 Y0
N130 M30

A-Spline
Der A-Spline (Akima-Spline verläuft exakt durch die Stützpunkte. Er erzeugt kaum
ungewollte Schwingungen, ist aber dafür in den Stützpunkten nicht krümmungsstetig. Der
Akima-Spline ist lokal, d. h die Veränderung eines Stützpunktes wirkt sich nur auf bis zu 6
benachbarte Stützpunkte aus. Er eignet sich so vor allem für die Interpolation von
digitalisierten Punkten. Zur Interpolation wird ein Polynom 3. Grades verwendet.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-7
Spezielle Wegbefehle
5.2 Spline-Interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN)

$6SOLQH $NLPD6SOLQH

3 3
3
3
3

3

3

3ELV3YRUJHJHEHQH.RRUGLQDWHQ

B-Spline
Beim B-Spline sind die programmierten Positionen keine Stützpunkte, sondern lediglich
Kontrollpunkte des Splines, d. h. die Kurve verläuft nicht direkt durch diese Punkte, sondern
wird durch sie "angezogen". Die Verbindung der Punkte durch Geraden bildet das
Kontrollpolygon des Splines. Der B-Spline ist optimal zur Beschreibung von Werkzeugwegen
auf Freiformflächen. Er ist primär als Schnittstelle zu CAD-Systemen gedacht. Ein B-Spline
3. Grades erzeugt keine Schwingungen trotz krümmungsstetiger Übergänge.

%6SOLQH

.RQWUROOSRO\JRQ 3 3
3
3
3

3

3

3ELV3YRUJHJHEHQH.RRUGLQDWHQ

Arbeitsvorbereitung
5-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.2 Spline-Interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN)

C-Spline
Im Unterschied zum Akima-Spline ist der kubische Spline (C-Spline) in den Stützpunkten
krümmungsstetig. Er neigt jedoch zu unerwarteten Schwingungen. Er kann dann eingesetzt
werden, wenn die Punkte auf einer analytisch bekannten Kurve liegen. Der C-Spline benutzt
Polynome 3. Grades.
Der Spline ist nicht lokal, d. h. die Veränderung eines Stützpunktes kann sich in vielen
Sätzen auswirken (mit abnehmender Stärke).

&6SOLQH NXELVFKHU6SOLQH

3
3 3
3

3

3

3

3ELV3YRUJHJHEHQH.RRUGLQDWHQ

Gegenüberstellung der drei Spline-Typen bei gleichen Stützpunkten:


A-Spline (Akima-Spline)
B-Spline (Bezier-Spline)
C-Spline (kubischer Spline)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-9
Spezielle Wegbefehle
5.2 Spline-Interpolation (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN)

3
3
3
3
3

3

3

$6SOLQH
%6SOLQH
&6SOLQH

Mindestanzahl an Spline-Sätzen
Die G-Codes ASPLINE, BSPLINE und CSPLINE verbinden Satzendpunkte mit Splines.
Dazu müssen im Vorlauf eine Reihe von Sätzen (Endpunkte) gleichzeitig berechnet werden.
Die Größe des Puffers für die Berechnung beträgt standardmäßig 10 Sätze. Nicht jede
Satzinformation ist ein Spline-Endpunkt. Die Steuerung benötigt jedoch von 10 Sätzen eine
bestimmte Anzahl an Spline-Endpunkt-Sätzen:

Spline-Typ Mindestanzahl an Spline-Sätzen


A-Spline: Von je 10 Sätzen müssen mindestens 4 Spline-Sätze sein.
Kommentarsätze und Parameterrechnungen zählen hierbei nicht.
B-Spline: Von je 10 Sätzen müssen mindestens 6 Spline-Sätze sein.
Kommentarsätze und Parameterrechnungen zählen hierbei nicht.
C-Spline: Die benötigte Mindestanzahl an Spline-Sätzen ergibt sich aus folgender Summe:
Wert aus MD20160 $MC_CUBIC_SPLINE_BLOCKS + 1
Im MD20160 wird die Anzahl der Punkte eingetragen, über die der Spline-Abschnitt
berechnet wird. Die Standardeinstellung beträgt 8. Von je 10 Sätzen müssen daher
im Standardfall mindestens 9 Spline-Sätze sein.

Hinweis
Bei Unterschreitung des tolerierbaren Werts wird ein Alarm ausgegeben, ebenso, wenn eine
am Spline beteiligte Achse als Positionierachse programmiert wird.

Zusammenfassung kurzer Spline-Sätze


Bei der Spline-Interpolation können kurze Spline-Sätze entstehen, die zu einer unnötigen
Reduzierung der Bahngeschwindigkeit führen. Mit der Funktion "Zusammenfassung kurzer
Spline-Sätze" können diese Sätze so zusammengefasst werden, dass die resultierende

Arbeitsvorbereitung
5-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.3 Spline-Verbund (SPLINEPATH)

Satzlänge ausreichend groß ist und nicht zu einer Verringerung der Bahngeschwindigkeit
führt.
Die Funktion wird aktiviert über das kanalspezifische Maschinendatum:
MD20488 $MC_SPLINE_MODE (Einstellung für Spline-Interpolation)
Literatur:
/FB1/ Funktionshandbuch Grundfunktionen; Bahnsteuerbetrieb, Genauhalt, LookAhead (B1),
Kapitel: Zusammenfassung kurzer Spline-Sätze

5.3 5.3 Spline-Verbund (SPLINEPATH)

Funktion
Die im Splineverbund zu interpolierenden Achsen werden mit dem Befehl SPLINEPATH
ausgewählt. Bis zu acht Bahnachsen sind bei der Spline-Interpolation möglich. Mit der
SPLINEPATH-Anweisung werden die am Spline teilnehmenden Achsen festgelegt.

Programmierung
SPLINEPATH(n,X,Y,Z,…)
Die Festlegung erfolgt in einem gesonderten Satz. Wird SPLINEPATH nicht explizit
programmiert, so werden die ersten drei Achsen des Kanals als Splineverbund verfahren.

Parameter

SPLINEPATH Spline-Verband festlegen


n = 1 fester Wert
X,Y,Z,… Bahnachsen angaben

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-11
Spezielle Wegbefehle
5.3 Spline-Verbund (SPLINEPATH)

Beispiel Spline-Verbund mit drei Bahnachsen

=
63/,1(3$7+ ;<=

<

N10 G1 X10 Y20 Z30 A40 B50 F350


N11 SPLINEPATH(1,X,Y,Z) ;Spline-Verbund
N13 CSPLINE BAUTO EAUTO X20 Y30 Z40 A50 B60 ;C-Spline
N14 X30 Y40 Z50 A60 B70 ;Stützpunkte

N100 G1 X… Y… ;Abwahl Spline-Interpolation

Arbeitsvorbereitung
5-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.4 Kompressor (COMPOF/ON, COMPCURV, COMPCAD)

5.4 5.4 Kompressor (COMPOF/ON, COMPCURV, COMPCAD)

Funktion
Mit dem G-Code COMPON sind die Satzübergänge nur stetig in der Geschwindigkeit,
während die Beschleunigung der beteiligten Achsen an den Satzübergängen Sprünge
machen kann. Dies kann zur Anregung von Schwingungen der Maschine führen.
Mit dem G-Code COMPCURV werden die Satzübergänge beschleunigungsstetig gestaltet.
Damit ist sowohl ein glatter Verlauf der Geschwindigkeit als auch der Beschleunigung aller
Achsen an den Satzübergängen gewährleistet. Mit dem G-Code COMPCAD kann eine
weitere Kompression gewählt werden, die bezüglich Oberflächengüte und Geschwindigkeit
optimiert werden kann.
Maschinenhersteller
Die Kompressorfunktionen sind projektierbar und damit von Maschinendateneinstellungen
abhängig.

Programmierung
COMPON
oder
COMPOF
oder
COMPCURV
oder
COMPCAD
Einsatzbedingungen für programmierte NC-Sätze
Dieser Kompressionsvorgang wird nur für Linearsätze (G1) durchgeführt. Er wird
unterbrochen durch jede andere NC-Anweisung, z.B. eine Hilfsfunktionsausgabe, nicht
jedoch durch Parameterrechnungen. Es werden nur Sätze komprimiert, die nicht mehr
enthalten als Satznummer, G1, Achsadressen, Vorschub und Kommentar. Alle anderen
Sätze werden unverändert abgearbeitet (ohne Kompression). Variablen dürfen nicht
verwendet werden.

Parameter
COMPON/ / Kompressor ein, stetig in der
COMPOF Geschwindigkeit
Kompressor aus
COMPCURV Kompressor ein, krümmungsstetige Polynome
(beschleunigungsstetig)
COMPCAD Kompressor ein, optimierte Oberflächengüte
(geschwindigkeitsoptimiert)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-13
Spezielle Wegbefehle
5.4 Kompressor (COMPOF/ON, COMPCURV, COMPCAD)

Hinweis
Die G-Codes COMPOF/COMPON, COMPCURV und COMPCAD sind modal wirksam.

Beispiel COMPON

N10 COMPON ;bzw. COMPCURV, Kompressor ein


N11 G1 X0.37 Y2.9 F600 ;G1 muss vor dem Endpunkt und Vorschub
;stehen
N12 X16.87 Y–.698
N13 X16.865 Y–.72
N14 X16.91 Y–.799…
N1037 COMPOF ;Kompressor aus

Hinweis
Komprimiert werden alle Sätze, die einer einfachen Syntax genügen, z.B.
N19 X0.103 Y0. Z0.
N20 X0.102 Y-0.018
N21 X0.097 Y-0.036
N22 X0.089 Y-0.052
N23 X0.078 Y-0.067
Bewegungssätze mit erweiterten Adressen wie C=100 oder A=AC(100) werden auch
komprimiert.

Beispiel COMPCAD

G00 X30 Y6 Z40


G1 F10000 G642
SOFT
COMPCAD ;Kompressor Oberflächenoptimierung ein
STOPFIFO
N24050 Z32.499
N24051 X41.365 Z32.500
N24052 X43.115 Z32.497
N24053 X43.365 Z32.477
N24054 X43.556 Z32.449
N24055 X43.818 Z32.387
N24056 X44.076 Z32.300
...
COMPOF ;Kompressor aus
G00 Z50
M30

Arbeitsvorbereitung
5-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.4 Kompressor (COMPOF/ON, COMPCURV, COMPCAD)

Voraussetzung
Maschinenhersteller
Für die Kompressorfunktion gibt es drei Maschinendaten:
● $MC_COMPRESS_BLOCK_PATH_LIMIT
Eine maximale Weglänge wird eingestellt, bis zu der Sätze als komprimierbar gelten.
Längere Sätze werden nicht komprimiert.
● $MA_COMPRESS_POS_TOL
Für jede Achse kann eine Toleranz eingestellt werden. Die erzeugte Spline-Kurve weicht
maximal um diesen Wert von den programmierten Endpunkten ab. Je größer diese Werte
sind, umso mehr Sätze können komprimiert werden.
● $MC_COMPRESS_VELO_TOL
Die maximal zulässige Abweichung des Bahnvorschubes bei aktivem Kompressor in
Verbindung mit FLIN und FCUB kann vorgegeben werden.
COMPCAD
● $MN_MM_EXT_PROG_BUFFER_SIZE soll groß z.B. 100 (kB) gewählt werden.
● $MC_COMPRESS_BLOCK_PATH_LIMIT muss deutlich größer z.B. 50 (mm) angegeben
werden.
● $MC_MM_NUM_BLOCKS_IN_PREP muss >= 60 gesetzt werden, um deutlich mehr als
10 Punkte bearbeiten zu können.
● FLIN und FCUB können nicht benutzt werden.
Empfohlen für große Satzlänge und optimale Geschwindigkeit:
● $MC_MM_MAX_AXISPOLY_PER_BLOCK = 5
$MC_MM_PATH_VELO_SEGMENTS = 5
$MC_MM_ARCLENGTH_SEGMENTS = 10

Beschreibung
CAD/CAM-Systeme liefern in der Regel Linearsätze, welche die parametrierte Genauigkeit
einhalten. Dies führt bei komplexen Konturen zu einer erheblichen Datenmenge und zu
eventuell kurzen Bahnabschnitten. Diese kurzen Bahnabschnitte begrenzen die
Abarbeitungsgeschwindigkeit.
Der Kompressor hat die Möglichkeit, eine bestimmte Anzahl (max. 10) dieser kurzen
Bahnabschnitte zu einem Bahnabschnitt zusammenzufassen.
Mit dem modalen G-Code COMPON bzw. COMPCURV kann ein "NC-Satz-Kompressor"
eingeschaltet werden. Diese Funktion sammelt bei Linearinterpolation eine Reihe von
Geraden-Sätzen (Anzahl ist auf 10 beschränkt) und nähert sie im Rahmen einer über
Maschinendatum angebbaren Fehlertoleranz durch Polynome 3. Grades (COMPON) bzw. 5.
Grades (COMPCURV) an. Statt vieler kleiner wird ein größerer Bewegungssatz durch die NC
verarbeitet. Weitere Informationen zur Kompression kurzer Spline-Sätze siehe Kapitel
"Spline-Interpolation".

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-15
Spezielle Wegbefehle
5.4 Kompressor (COMPOF/ON, COMPCURV, COMPCAD)

COMPCAD
COMPCAD ist rechenzeit- und speicherplatzintensiv. Es sollte nur eingesetzt werden, wenn
Maßnahmen zur Oberflächenverbesserung vom CAD/CAM-Programm nicht vorab geleistet
werden können. Merkmale:
● COMPCAD erzeugt beschleunigungsstetig ineinander übergehende Polynomsätze.
● Bei benachbarten Bahnen führen die Abweichungen jeweils in die gleiche Richtung.
● Mit dem Settingdatum $SC_CRIT_SPLINE_ANGLE kann ein Grenzwinkel festgelegt
werden, ab dem COMPCAD Ecken stehen lässt.
● Die Anzahl der zu komprimierenden Sätze ist nicht auf 10 begrenzt.
● COMPCAD eliminiert mangelhafte Flächenübergänge. Dabei werden die Toleranzen
weitgehend eingehalten, der Eckengrenzwinkel jedoch nicht berücksichtigt.
● Die Überschleiffunktion G642 ist zusätzlich nutzbar.
Erweiterungen COMPON, COMPCURV und COMPCAD
Die Kompressoren COMPON, COMPCURV und COMPCAD sind so erweitert, dass auch NC-Pro-
gramme, in denen die Orientierung mittels Richtungsvektoren programmiert ist, unter
Einhaltung einer vorgebbaren Toleranz komprimiert werden können.

Orientierungstransformation TRAORI
Für die Funktion "Kompressor für Orientierungen" muss die Option
Orientierungstransformation verfügbar sein. Die oben unter "Einsatzbedingungen"
genannten Einschränkungen sind dahingehend gelockert, das jetzt auch Positionswerte über
Parameterzuweisungen erfolgen können.
Allgemeine Form des NC-Satzes:

N10 G1 X=<...> Y=<...> Z=<...> ;Achspositionen als Parameterausdrücke mit


A=<...> B=<...> F=<...>
;Kommentar < ... > Parameterausdruck z.B.
X=R1*(R2+R3)
Aktivierung
Die Aktivierung von "Kompressor für Orientierungen" erfolgt mit einer der Anweisungen:
COMPON, COMPCURV (COMPCAD ist nicht möglich).
Die Kompressoren können bei aktiver Orientierungstransformation (TRAORI) sowohl bei
● 5-Achs-Maschinen als auch bei
● 6-Achs-Maschinen bei denen zusätzlich zur Werkzeugorientierung auch die Drehung des
Werkzeugs programmiert werden kann
angewendet werden. Weitere Erläuterungen zu Anwendung der Kompressoren bei 5- und 6-
Achs-Maschinen siehe Kapitel Transformationen "Komprimierung der Orientierung"
Literatur: /FB3/ Funktionshandbuch Sonderfunktionen; 3- bis 5-Achs-Transformation (F2).

Arbeitsvorbereitung
5-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.5 Polynom-Interpolation (POLY, POLYPATH)

5.5 5.5 Polynom-Interpolation (POLY, POLYPATH)

Funktion
Im eigentlichen Sinn handelt es sich bei der Polynom-Interpolation (POLY) nicht um eine
Spline-Interpolationsart. Sie ist in erster Linie als Schnittstelle für die Programmierung extern
erzeugter Spline-Kurven gedacht. Hierbei können die Spline-Abschnitte direkt programmiert
werden.
Diese Interpolationsart entlastet die NC von der Berechnung der Polynomkoeffizienten. Sie
ist dann optimal einsetzbar, wenn die Koeffizienten direkt von einem CAD-System oder
Postprozessor kommen.

Programmierung
POLY PO[X]=(xe,a2,a3) PO[Y]=(ye,b2,b3) PO[Z]=(ze,c2,c3) PL=n Polynom 3.
Grades
oder Erweiterung auf Polynome [Link] und neuer Polynomsyntax
POLY X=PO(xe,a2,a3,a4,a5) Y=PO(ye,b2,b3,b4,b5) Z=PO(ze,c2,c3,c4,c5) PL=n
POLYPATH ("AXES", VECT")

Parameter

POLY Einschalten der Polynom-Interpolation


mit einem Satz mit POLY.
POLYPATH Polynominterpolation selektierbar für
die beiden Achsgruppen AXIS oder VECT
PO [achsbezeichner/variable]=(…,…,…) Endpunkte und Polynomkoeffizienten
X, Y, Z Achsbezeichner
xe, ye, ze Angabe der Endposition für die jeweilige
Achse; Wertebereich wie Wegmaß
a2, a3, a4, a5 Die Koeffizienten a2, a3, a4, und a5
werden mit ihrem Wert geschrieben;
Wertebereich wie Wegmaß. Der jeweils
letzte Koeffizient kann entfallen, wenn
er den Wert Null hat.
PL Länge des Parameterintervalls, auf dem
die Polynome definiert sind
(Definitionsbereich der Funktion f(p)).
Das Intervall beginnt immer bei 0. p
kann Werte von 0 bis PL annehmen.
Theoretischer Wertebereich für
PL: 0,0001 … 99 999,9999. Der PL-Wert
gilt für den Satz, in dem er steht.
Ist kein PL programmiert, wirkt PL=1.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-17
Spezielle Wegbefehle
5.5 Polynom-Interpolation (POLY, POLYPATH)

POLY einschalten/ausschalten
Die Polynominterpolation ist zusammen mit G0, G1, G2, G3, A-Spline, B-Spline und C-
Spline in der ersten G-Gruppe. Wenn sie aktiv ist, ist es nicht erforderlich, die
Polynomsyntax zu programmieren: Achsen, die nur mit ihrem Namen und Endpunkt
programmiert sind, werden linear auf ihren Endpunkt verfahren. Wenn alle Achsen so
programmiert sind, verhält sich die Steuerung wie bei G1.
Die Polynominterpolation wird durch einen anderen Befehl der G-Gruppe (z. B. G0, G1)
ausgeschaltet.
Polynomkoeffizient
Der PO-Wert (PO[]=) bzw. ...=PO(...) gibt alle Polynomkoeffizienten für eine Achse
an. Entsprechend dem Polynomgrad werden mehrere Werte durch Kommata getrennt
angegeben. Innerhalb eines Satzes sind unterschiedliche Polynomgrade für verschiedene
Achsen möglich.
Neue Polynomsyntax mit PO: Die bisherige Syntax bleibt weiterhin gültig.
Unterprogrammaufruf POLYPATH
Mit POLYPATH kann die Polynominterpolation selektiv für folgende Achsgruppen
angegeben werden:
● POLYPATH ("AXES")
Alle Bahnachsen und Zusatzachsen.
● POLYPATH ("VECT") Orientierungsachsen
(bei Orientierungstransformation).
Standardmäßig werden für beide Achsgruppen die programmierten Polynome auch als
Polynom interpoliert.
Beispiele:
POLYPATH ("VECT")
Für die Polynominterpolation werden nur die Orientierungsachsen ausgewählt, alle anderen
Achsen verfahren linear.
POLYPATH ( )
Deaktiviert die Polynominterpolation für alle Achsen

Beispiel

N10 G1 X… Y… Z… F600
N11 POLY PO[X]=(1,2.5,0.7) -> ;Polynom-Interpolation ein
-> PO[Y]=(0.3,1,3.2) PL=1.5
N12 PO[X]=(0,2.5,1.7) PO[Y]=(2.3,1.7) PL=3

N20 M8 H126 …
N25 X70 PO[Y]=(9.3,1,7.67) PL=5 ;gemischte Angaben für die Achsen
N27 PO[X]=(10,2.5) PO[Y]=(2.3) ;kein PL programmiert; es wirkt PL=1
N30 G1 X… Y… Z. ;Polynom-Interpolation aus

Arbeitsvorbereitung
5-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.5 Polynom-Interpolation (POLY, POLYPATH)

Beispiel Gültige Polynomsyntax mit PO

Bisherige Polynomsyntax bleibt gültig ;Neue Polynomsyntax (ab SW 6)


PO[Achsbezeichner]=(.. , ..) ;Achsbezeichner=PO(.. , ..)
PO[PHI]=(.. , ..) ;PHI=PO(.. , ..)
PO[PSI]=(.. , ..) ;PSI=PO(.. , ..)
PO[THT]=(.. , ..) ;THT=PO(.. , ..)
PO[]=(.. , ..) ;PO(.. , ..)
PO[variable]=IC(.. , ..) ;variable=PO IC(.. , ..)

Beispiel Kurve in der X/Y-Ebene

<

 (QGSXQNW

S
;
 (QGSXQNW


%HLVSLHO
 1;<*
132/<32><@
  32>;@
 3/ 

     3/ S

N9 X0 Y0 G90 F100
N10 POLY PO[Y]=(2) PO[X]=(4,0.25) PL=4

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-19
Spezielle Wegbefehle
5.5 Polynom-Interpolation (POLY, POLYPATH)

<

(UJHEQLVLQ;<(EHQH



 3/



     ;

Beschreibung
Die Steuerung ist in der Lage, Kurven (Bahnen) zu verfahren, bei denen jede ausgewählte
Bahnachse einer Polynom-Funktion max. 5. Grades folgt.
Die allgemeine Form der Polynom-Funktion lautet:
f(p)= a0 + a1p + a2p2 + a3p3
oder
f(p)= a0 + a1p + a2p2 + a3p3 + a4p4 + a5p5
Dabei bedeuten:
an: konstante Koeffizienten
p: Parameter

Arbeitsvorbereitung
5-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.5 Polynom-Interpolation (POLY, POLYPATH)

<

(UJHEQLVLQ;<(EHQH



 3/



     ;

Durch Belegen der Koeffizienten mit konkreten Werten sind die unterschiedlichsten
Kurvenverläufe, wie Geraden-, Parabel-, Potenzfunktion, erzeugbar.
Beim Setzen der Koeffizienten a2 = a3 = 0 oder a2 = a3 = a4 = a5 = 0 ergibt sich z. B. eine
Gerade mit:
f(p) = a0 + a1p
Es gilt:
a0 = Achsposition am Ende des vorangehenden Satzes
p = PL
a1 = (xE - a0 - a2*p2 - a3*p3) / p
Es ist möglich Polynome zu programmieren, ohne dass der G-Code POLY aktiv ist. In
diesem Fall werden jedoch nicht die programmierten Polynome interpoliert, sondern es wird
der jeweils programmierte Endpunkt jeder Achse linear angefahren (G1). Durch
Programmierung von POLY wird dann die Polynominterpolation aktiviert.
Weiterhin kann bei aktiven G-Code POLY mit dem vordefinierten Unterprogramm
POLYPATH (...) ausgewählt werden, welche Achsen mit Polynom interpoliert werden sollen.

Besonderheit Nennerpolynom
Für die Geometrieachsen kann mit PO[]=(…) ohne Angabe eines Achsnamens auch ein
gemeinsames Nennerpolynom programmiert werden, d. h. die Bewegung der
Geometrieachsen wird als Quotient zweier Polynome interpoliert.
Damit lassen sich z. B. Kegelschnitte (Kreis, Ellipse, Parabel, Hyperbel) exakt darstellen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-21
Spezielle Wegbefehle
5.5 Polynom-Interpolation (POLY, POLYPATH)

Beispiel:

POLY G90 X10 Y0 F100 ;Geometrieachsen verfahren


;linear auf die Position X10, Y0
PO[X]=(0,–) PO[Y]=(10) PO[]=(2,1) ;Geometrieachsen verfahren im
;Viertelkreis auf X0, Y10

Der konstante Koeffizient (a0) des Nennerpolynoms wird stets mit 1 angenommen, der
angegebene Endpunkt ist unabhängig von G90/G91.
Aus obigem Beispiel entsteht folgendes Ergebnis:
X(p)=10(1)/(1+p2) und Y(p)=20p/(1+p2) mit 0<=p<=1
Aufgrund der programmierten Anfangspunkte, Endpunkte, Koeffizient a2 und PL=1 ergeben
sich folgende Zwischenwerte:
Zähler (X)=10+0*p–p2
Zähler (Y)=0+20*p+0*p2
Nenner = 1+2*p+1*p2

<



Bei eingeschalteter Polynom-Interpolation wird die Programmierung eines Nennerpolynoms


mit Nullstellen innerhalb des Intervalls [0,PL] mit einem Alarm abgelehnt. Auf die Bewegung
von Zusatzachsen hat das Nennerpolynom keinen Einfluss.

Hinweis
Eine Werkzeugradiuskorrektur ist bei der Polynom-Interpolation mit G41, G42 einschaltbar
und wie für Geraden- oder Kreisinterpolation verwendbar.

Arbeitsvorbereitung
5-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.6 Einstellbarer Bahnbezug (SPATH, UPATH)

5.6 5.6 Einstellbarer Bahnbezug (SPATH, UPATH)

Funktion
Während Polynominterpolation können vom Anwender zwei unterschiedliche Beziehungen
zwischen den geschwindigkeitsbestimmenden FGROUP-Achsen und den übrigen
Bahnachsen gewünscht sein: Letztere sollen
● entweder synchron zum Bahnweg der FGROUP-Achsen
● oder synchron zum Kurvenparameter geführt werden.
Für die nicht in FGROUP enthaltenen Achsen gibt es daher zwei Möglichkeiten, der Bahn zu
folgen:
1. Entweder sind sie synchron zum Weg S (SPATH)
2. oder synchron zum Kurvenparameter U der FGROUP-Achsen (UPATH).
Beide Arten der Bahninterpolation werden in unterschiedlichen Applikationen gebraucht und
können durch die G-Codes SPATH und UPATH umgeschaltet werden.

Programmierung
SPATH
oder
UPATH

Parameter

SPATH Bahnbezug für FGROUP-Achsen ist Bogenlänge


UPATH Bahnbezug für FGROUP-Achsen ist Kurvenparameter
FGROUP Festlegung der Achsen mit Bahnvorschub

SPATH, UPATH
Über einen der beiden G-Code (SPATH, UPATH) kann das gewünschte Verhalten
ausgewählt und programmiert werden.
Die Befehle sind modal wirksam. Bei aktivem SPATH werden die Achsen synchron zum
Weg geführt, bei aktivem UPATH synchron zum Kurvenparameter.
UPATH und SPATH bestimmen auch den Zusammenhang des F-Wort-Polynoms
(FPOLY, FCUB, FLIN) mit der Bahnbewegung.
Aktivierung FGROUP
Der Bahnbezug für die nicht in FGROUP enthaltenen Achsen wird durch die beiden in der
45. G-Code-Gruppe enthaltenen Sprachbefehle SPATH und UPATH eingestellt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-23
Spezielle Wegbefehle
5.6 Einstellbarer Bahnbezug (SPATH, UPATH)

Beispiel 1
Im nachfolgenden Beispiel wird ein Quadrat mit 20 mm Kantenlänge mit G643 überschliffen.
Die maximalen Abweichungen von der exakten Kontur werden dabei durch die
Maschinendaten MD 33100: COMPRESS_POS_TOL[...] für jede Achse festgelegt.

N10 G1 X… Y… Z… F500
N20 G643 ;Satzinternes Überschleifen mit G643
N30 XO Y0
N40 X20 Y0 ;mm Kantenlänge für die Achsen
N50 X20 Y20
N60 X0 Y20
N70 X0 Y0
N100 M30

Beispiel 2
Das folgende Beispiel illustriert den Unterschied zwischen den beiden Arten der
Bewegungsführung. Beide Male sei die Voreinstellung FGROUP(X,Y,Z) aktiv.

$ 63$7+ $ 863$7+
$ ; ; $ ; 6457 ;
 

 ;  ;

8QWHUVFKLHGOLFKHJHRPHWULVFKH%H]LHKXQJHQ
]ZLVFKHQ$FKVHQEHL63$7+XQG83$7+

N10 G1 X0 A0 F1000 SPATH


N20 POLY PO[X]=(10, 10) A10
bzw.
N10 G1 X0 F1000 UPATH
N20 POLY PO[X]=(10, 10) A10

Im Satz N20 hängt der Weg S der FGROUP-Achsen vom Quadrat des Kurvenparameters U
ab. Daher ergeben sich entlang des Weges von X unterschiedliche Positionen der
Synchronachse A, je nachdem, ob SPATH oder UPATH aktiv ist.

Arbeitsvorbereitung
5-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.7 Messen mit schaltendem Taster (MEAS, MEAW)

Randbedingungen
Der eingestellte Bahnbezug hat keine Bedeutung bei
● Linear- und Kreisinterpolation,
● in Gewindesätzen und
● dann nicht, wenn alle Bahnachsen in FGROUP enthalten sind.

Beschreibung
Während Polynominterpolation - und damit seien immer die Polynominterpolation
● im engeren Sinne (POLY),
● alle Splineinterpolationsarten (ASPLINE, BSPLINE, CSPLINE) und
● Linearinterpolation mit Kompressor (COMPON, COMPCURV)
verstanden, - sind die Positionen aller Bahnachsen i durch Polynome pi(U) vorgegeben. Der
Kurvenparameter U bewegt sich dabei innerhalb eines NC-Satzes von 0 bis 1, ist also
normiert.
Durch den Sprachbefehl FGROUP können innerhalb der Bahnachsen diejenigen Achsen
ausgewählt werden, auf die sich der programmierte Bahnvorschub beziehen soll. Eine
Interpolation mit konstanter Geschwindigkeit auf dem Weg S dieser Achsen bedeutet
während Polynominterpolation jedoch in der Regel eine nicht konstante Änderung des
Kurvenparameters U.

Steuerungsverhalten bei Reset und Maschinen-/Optionsdaten


Nach Reset ist der durch MD 20150: GCODE_RESET_VALUES [44] bestimmte G-Code
wirksam (45. G-Code-Gruppe).
Der Grundstellungswert für die Art des Überschleifens wird mit MD 20150:
GCODE_RESET_VALUES [9] festgelegt (10. G-Code-Gruppe).
Der nach Reset aktive Wert der G-Code-Gruppe wird durch das Maschinendatum MD
20150: GCODE_RESET_VALUES [44] bestimmt. Um kompatibel zu bestehenden Anlagen
zu bleiben, wird hier als Standardwert SPATH voreingestellt.
Die axialen Maschinendaten MD 33100: COMPRESS_POS_TOL haben eine erweiterte
Bedeutung: Sie enthalten die Toleranzen für die Kompressorfunktion und für das
Überschleifen mit G642.

5.7 5.7 Messen mit schaltendem Taster (MEAS, MEAW)

Funktion
Für alle im NC-Satz programmierten Achsen werden die Positionen bei der Schaltflanke des
Messtasters erfasst und für jede Achse in die entsprechende Speicherzelle geschrieben. Es
existieren maximal zwei Messtaster.
Messergebnis lesen

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-25
Spezielle Wegbefehle
5.7 Messen mit schaltendem Taster (MEAS, MEAW)

Das Messergebnis steht für die mit Messtaster erfassten Achsen unter folgenden Variablen
zur Verfügung:
● Im Maschinenkoordinatensystem unter $AA_MM[Achse]
● Im Werkstückkoordinatensystem unter $AA_MW[Achse]
Beim Lesen dieser Variablen wird intern kein Vorlaufstopp erzeugt.
Mit STOPRE muss im NC-Programm an geeigneter Stelle ein Vorlaufstopp programmiert
werden. Ansonsten werden falsche Werte gelesen.

Programmierung
Messsätze programmieren, MEAS, MEAW
Mit dem Befehl MEAS und einer Interpolationsart werden Istpositionen am Werkstück
angefahren und dabei Messwerte übernommen. Der Restweg zwischen Ist- und Sollposition
wird gelöscht.
Für spezielle Messaufgaben, bei denen in jedem Fall die programmierte Position angefahren
werden soll, wird MEAW eingesetzt. MEAS und MEAW sind satzweise wirksam.

MEAS=±1 G... X... Y... Z... (+1/+2 Messen mit Restweglöschen


MEAS=±2 G... X... Y... Z... und steigender Flanke)
(–/–Messen mit Restweglöschen und
fallender Flanke)
MEAW=±1 G... X... Y... Z... (+1/+2 Messen ohne Restweglöschen
MEAW=±2 G... X... Y... Z... und steigender Flanke)
(–/–Messen ohne Restweglöschen und
fallender Flanke)

Arbeitsvorbereitung
5-26 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.7 Messen mit schaltendem Taster (MEAS, MEAW)

Parameter

MEAS=±1 Messen mit Taster 1 auf Messeingang 1


MEAS=±2* Messen mit Taster 2 auf Messeingang 2
MEAW=±1 Messen mit Taster 1 auf Messeingang 1
MEAW=±2* Messen mit Taster 2 auf Messeingang 2
G... Interpolationsart z. B. G0, G1, G2 oder G3
X... Y... Z... Endpunkt in kartesischen Koordinaten

*Je nach Ausbaustufe max. 2 Eingänge

Beispiel Messsätze programmieren


MEAS und MEAW werden im Satz mit Bewegungsanweisungen programmiert. Die
Vorschübe und Interpolationsarten (G0, G1, …) sind dem jeweiligen Messproblem
anzupassen; ebenso die Anzahl der Achsen.
N10 MEAS=1 G1 F1000 X100 Y730 Z40
Messsatz mit Messtaster des ersten Messeingangs und Geradeninterpolation. Vorlaufstopp
wird automatisch erzeugt.

Beschreibung
Messauftragsstatus
Ist im Programm eine Auswertung erforderlich, ob der Messtaster geschaltet hat oder nicht,
kann die Zustandsvariable $AC_MEA[n] (n= Nummer des Messtasters) abgefragt werden:
0 Messauftrag nicht erfüllt
1 Messauftrag erfolgreich beendet (Messtaster hat geschaltet)

Hinweis
Wird der Messtaster im Programm ausgelenkt, wird die Variable auf 1 gesetzt. Beim Start
eines Messsatzes wird die Variable automatisch auf Anfangszustand des Tasters gesetzt.
Messwerteaufnahme
Es werden die Positionen aller verfahrenen Bahn- und Positionierachsen des Satzes
(maximale Anzahl an Achsen je nach Steuerungskonfiguration) erfasst. Bei MEAS wird die
Bewegung nach dem Schalten des Messtasters definiert abgebremst.

Hinweis
Ist in einem Messsatz eine GEO-Achse programmiert, werden die Messwerte für alle
aktuellen GEO-Achsen abgelegt.
Ist in einem Messsatz eine an einer Transformation beteiligten Achse programmiert, werden
die Messwerte aller an dieser Transformation beteiligten Achsen abgelegt

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-27
Spezielle Wegbefehle
5.8 Erweiterte Messfunktion (MEASA, MEAWA, MEAC) (Option)

5.8 5.8 Erweiterte Messfunktion (MEASA, MEAWA, MEAC) (Option)

Funktion
Beim axialen Messen können mehrere Messtaster und mehrere Messsysteme benutzt
werden.
Bei MEASA, MEAWA werden für die jeweils programmierte Achse bis zu vier Messwerte pro
Messung erfasst und passend zum Trigger-Ereignis in Systemvariablen abgelegt.
Kontinuierliche Messaufträge können mit MEAC durchgeführt werden. In diesem Fall werden
die Messergebnisse in FIFO-Variablen abgelegt. Auch für MEAC sind pro Messung maximal
vier Messwerte möglich:
● Im Maschinenkoordinatensystem unter $AA_MM1 bis 4[Achse]
● Im Werkstückkoordinatensystem unter $AA_WM1 bis 4[Achse]

Programmierung
MEASA und MEAWA sind satzweise wirksam und können in einem Satz programmiert
werden. Wird MEASA/MEAWA mit MEAS/MEAW in einem Satz programmiert, so erfolgt eine
Fehlermeldung.
MEASA[Achse]=(Modus, TE1,..., TE4)
oder
MEAWA[Achse]=(Modus, TE1,..., TE4)
oder
MEAC[Achse]=(Modus, Messspeicher, TE1,..., TE4)

Arbeitsvorbereitung
5-28 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.8 Erweiterte Messfunktion (MEASA, MEAWA, MEAC) (Option)

Parameter
MEASA Messen mit Restweglöschen
MEAWA Messen ohne Restweglöschen
MEAC Kontinuierliches Messen ohne Restweglöschen
Achse Name der zur Messung verwendeten Kanalachse
Modus Zweistellige Angabe zum Betriebsmodus; bestehend aus
Messmodus (Einerdekade) und
0: Modus 0: Messauftrag abbrechen
1: Modus 1: bis zu 4 verschiedene gleichzeitig aktivierb.
Triggerereignisse
2: Modus 2: bis zu 4 nacheinander aktivierbare Triggerereignisse
3: Modus 3: bis zu 4 nacheinander aktivierbare Triggerereignisse,
jedoch keine Überwachung von Triggerereignis 1
beim START (Alarme 21700/21703 werden unterdrückt)
Hinweis: Modus 3 bei MEAC nicht möglich
Messsystem (Zehnerdekade)
0 oder keine Angabe: aktives Messsystem
1: Messsystem 1
2: Messsystem 2
3: beide Messsysteme
TE 1…4 Trigger-Ereignis
1: steigende Flanke, Messtaster 1
-1: fallende Flanke, Messtaster 1
2: steigende Flanke, Messtaster 2
-2: fallende Flanke, Messtaster 2
Messspeicher Nummer des FIFO (Umlaufspeichers)

Beispiel Messen mit Restweglöschen im Modus 1


(Auswertung in zeitlicher Reihenfolge)
a) mit 1 Messsystem

...
N100 MEASA[X] = (1,1,-1) G01 X100 F100 ;Messen im Modus 1 mit aktivem
;Messsystem. Warten auf Messsignal
;mit steigender/fallender Flanke von
;Messtaster 1 auf dem Verfahrweg nach
;X = 100.
N110 STOPRE ;Vorlaufstopp
N120 IF $AC_MEA[1] == FALSE gotof ENDE ;Erfolg der Messung kontrollieren.
N130 R10 = $AA_MM1[X] ;Zum ersten programmierten
;Triggerereignis (steigende Flanke)
;gehörigen Messwert speichern.
N140 R11 = $AA_MM2[X] ;Zum zweiten programmierten
;Triggerereignis (fallende Flanke)
;gehörigen Messwert speichern.
N150 ENDE:

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-29
Spezielle Wegbefehle
5.8 Erweiterte Messfunktion (MEASA, MEAWA, MEAC) (Option)

Beispiel Messen mit Restweglöschen im Modus 1


b) mit 2 Messsystemen

...
N200 MEASA[X] = (31,1-1) G01 X100 F100 ;Messen im Modus 1 mit beiden
;Messsystemen. Warten auf Messsignal
;mit steigender/fallender Flanke von
;Messtaster 1 auf dem Verfahrweg nach
;X = 100.
N210 STOPRE ;Vorlaufstopp
N220 IF $AC_MEA[1] == FALSE gotof ENDE ;Erfolg der Messung kontrollieren.
N230 R10 = $AA_MM1[X] ;Messwert des Messsystems 1 bei
;steigender Flanke speichern.
N240 R11 = $AA_MM2[X] ;Messwert des Messsystems 2 bei
;steigender Flanke speichern.
N250 R12 = $AA_MM3[X] ;Messwert des Messsystems 1 bei
;fallender Flanke speichern.
N260 R13 = $AA_MM4[X] ;Messwert des Messsystems 2 bei
;fallender Flanke speichern.
N270 ENDE:

Beispiel Messen mit Restweglöschen im Modus 2


(Auswertung in programmierter Reihenfolge)

...
N100 MEASA[X] = (2,1,-1,2,-2) G01 X100 F100 ;Messen im Modus 2 mit aktivem
;Messsystem. Warten auf Messsignal in
;der Reihenfolge steigende Flanke von
;Messtaster 1, fallende Flanke
;Messtaster 1, steigende Flanke von
;Messtaster 2, fallende Flanke
;Messtaster 2 auf dem Verfahrweg nach
;X = 100.
N110 STOPRE ;Vorlaufstopp
N120 IF $AC_MEA[1] == FALSE gotof ;Erfolg der Messung mit
;Messtaster 1 kontrollieren.
MESSTASTER2
N130 R10 = $AA_MM1[X] ;Zum ersten programmierten
;Triggerereignis
;(steigende Flanke Messtaster 1)
;gehörigen Messwert speichern.
N140 R11 = $AA_MM2[X] ;Zum zweiten programmierten
;Triggerereignis
;(steigende Flanke Messtaster 1)
;gehörigen Messwert speichern.
N150 MESSTASTER2:
N160 IF $AC_MEA[2] == FALSE gotof ENDE ;Erfolg der Messung mit Messtaster 2
;kontrollieren.

Arbeitsvorbereitung
5-30 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.8 Erweiterte Messfunktion (MEASA, MEAWA, MEAC) (Option)

N170 R12 = $AA_MM3[X] ;Zum dritten programmierten


;Triggerereignis
;(steigende Flanke Messtaster 2)
;gehörigen Messwert speichern.
N180 R13 = $AA_MM4[X] ;Zum vierten programmierten
;Triggerereignis
;(steigende Flanke Messtaster 2)
;gehörigen Messwert speichern.
N190 ENDE:

Beispiel Kontinuierliches Messen im Modus 1


(Auswertung in zeitlicher Reihenfolge)
a) Messen von bis zu 100 Messwerten

...
N110 DEF REAL MESSWERT[100]
N120 DEF INT Schleife = 0
N130 MEAC [X] = (1,1,-1) G01 X1000 F100 ;Messen im Modus 1 mit aktivem
;Messsystem, Speichern der Messwerte
;unter $AC_FIFO1, Warten auf
;Messsignal mit fallender Flanke von
;Messtaster 1 auf dem Verfahrweg nach
;X = 1000.
N135 STOPRE
N140 MEAC[X] = (0) ;Messung nach Erreichen der
;Achsposition abbrechen.
N150 R1 = $AC_FIFO1[4] ;Anzahl aufgelaufener Messwerte in
;Parameter R1 speichern.
N160 FOR Schleife = 0 TO R1-1
N170 MESSWERT[Schleife] = $AC_FIFO1[0] ;Messwerte aus dem $AC_FIFO1
;auslesen und abspeichern.
N180 ENDFOR

Beispiel Kontinuierliches Messen im Modus 1


(Auswertung in zeitlicher Reihenfolge)
b) Messen mit Restweglöschen nach 10 Messwerten

...
N10 WHEN $AC_FIFO1[4]>=10 DO ;Restweg löschen
MEAC[x]=(0) DELDTG (x)
N20 MEAC[x]=(1,1,1,-1) G01 X100 F500
N30 MEAC [X]=(0)
N40 R1=$AC_FIFO1[4] ;Anzahl Messwerte
...

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-31
Spezielle Wegbefehle
5.8 Erweiterte Messfunktion (MEASA, MEAWA, MEAC) (Option)

Beschreibung
Die Programmierung kann im Teileprogramm oder aus einer Synchronaktion (siehe Kapitel
"Bewegungssynchronaktion") heraus erfolgen. Pro Achse kann dabei zu ein- und demselben
Zeitpunkt nur ein Messauftrag aktiv sein.

Hinweis
Der Vorschub ist dem jeweiligen Messproblem anzupassen.
Bei MEASA und MEAWA können korrekte Ergebnisse nur bei Vorschüben gewährleistet
werden, bei denen nicht mehr als ein gleiches und nicht mehr als 4 verschiedene Trigger-
Ereignisse pro Lagereglertakt eintreffen.
Beim kontinuierlichen Messen mit MEAC darf das Verhältnis zwischen Interpolationstakt und
Lagereglertakt nicht größer als 8 : 1 werden.

Triggerereignisse
Ein Triggerereignis setzt sich zusammen aus der Nummer des Messtasters und dem
Auslösekriterium (steigende oder fallende Flanke) des Messsignals.
Für jede Messung können jeweils bis zu 4 Triggerereignisse der angesprochenen
Messtaster verarbeitet werden, also bis zu zwei Messtaster mit je zwei Messflanken. Die
Reihenfolge der Verarbeitung sowie die maximale Anzahl der Trigger-Ereignisse sind dabei
abhängig vom gewählten Modus.

Hinweis
Ein gleiches Triggerereignis darf nur einmal in einem Messauftrag programmiert werden (gilt
nur für Modus 1)!

Betriebsmodus
Mit der ersten Ziffer des Modus wird das gewünschte Messsystem angewählt. Ist nur ein
Messsystem vorhanden, jedoch das zweite programmiert, wird automatisch das vorhandene
eingesetzt.
Mit der zweiten Ziffer, dem Messmodus, wird der Messvorgang an die Möglichkeiten der
jeweiligen Steuerung angepasst:
● Modus 1: Die Auswertung der Trigger-Ereignisse erfolgt in der zeitlichen Reihenfolge
ihres Auftretens. In diesem Modus ist bei Einsatz von Sechsachsbaugruppen nur ein
Trigger-Ereignis programmierbar bzw. wird bei Angabe mehrerer Trigger-Ereignisse
automatisch in Modus 2 umgesetzt (ohne Meldung).
● Modus 2: Die Auswertung der Trigger-Ereignisse erfolgt in der programmierten
Reihenfolge.
● Modus 3: Die Auswertung der Triggerereignisse erfolgt in der programmierten
Reihenfolge, jedoch keine Überwachung von Triggerereignis 1 beim START.

Hinweis
Bei Einsatz von 2 Messsystemen sind nur zwei Trigger-Ereignisse programmierbar.

Arbeitsvorbereitung
5-32 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.8 Erweiterte Messfunktion (MEASA, MEAWA, MEAC) (Option)

Messen mit und ohne Restweglöschen, MEASA, MEAWA


Bei der Programmierung von MEASA wird Restweglöschen erst nach der Erfassung aller
geforderten Messwerte durchgeführt.
Für spezielle Messaufgaben, bei denen in jedem Fall die programmierte Position angefahren
werden soll, wird MEAWA eingesetzt.

9

7( 7( 7( 7( W

5HVWZHJ

SURJUDPPLHUWHU:HJ

● MEASA ist nicht in Synchronaktionen programmierbar. Ersatzweise kann MEAWA plus


Restweglöschen als Synchronaktion programmiert werden.
● Wird der Messauftrag mit MEAWA aus den Synchronaktionen gestartet, sind die
Messwerte nur im Maschinen-Koordinatensystem verfügbar.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-33
Spezielle Wegbefehle
5.8 Erweiterte Messfunktion (MEASA, MEAWA, MEAC) (Option)

Messergebnisse für MEASA, MEAWA


Die Messergebnisse stehen unter folgenden Systemvariablen zur Verfügung:
● Im Maschinen-Koordinatensystem:

$AA_MM1[Achse] Messwert des programmierten Messsystems bei Triggerereignis


1
... ...
$AA_MM4[Achse] Messwert des programmierten Messsystems bei Triggerereignis
4
● Im Werkstück-Koordinatensystem:

$AA_WM1[Achse] Messwert des programmierten Messsystems bei Triggerereignis


1
... ...
$AA_WM4[Achse] Messwert des programmierten Messsystems bei Triggerereignis
4

Hinweis
Beim Lesen dieser Variablen wird intern kein Vorlaufstopp erzeugt. Mit STOPRE (Kapitel
"Liste der Anweisungen") muss an geeigneter Stelle ein Vorlaufstopp programmiert werden.
Ansonsten werden falsche Werte eingelesen.
Soll das axiale Messen für eine Geometrieachse gestartet werden, muss der gleiche
Messauftrag explizit für alle restlichen Geometrieachsen programmiert werden. Das gleiche
gilt für Achsen, die an einer Transformation beteiligt sind.
Beispiel:
N10 MEASA[Z]=(1,1) MEASA[Y]=(1,1) MEASA[X]=(1,1) G0 Z100;
oder
N10 MEASA[Z]=(1,1) POS[Z]=100

Arbeitsvorbereitung
5-34 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.8 Erweiterte Messfunktion (MEASA, MEAWA, MEAC) (Option)

Messauftrag mit 2 Messsystemen


Wird ein Messauftrag mit zwei Messsystemen durchgeführt, wird jedes der beiden möglichen
Trigger-Ereignisse von beiden Messsystemen der jeweiligen Achse erfasst. Die Belegung
der reservierten Variablen ist damit vorgegeben:

$AA_MM1[Achse] bzw. $AA_MW1[Achse] Messwert von Messsystem 1 bei


Triggerereignis 1
$AA_MM2[Achse] bzw. $AA_MW2[Achse] Messwert von Messsystem 2 bei
Triggerereignis 1
$AA_MM3[Achse] bzw. $AA_MW3[Achse] Messwert von Messsystem 1 bei
Triggerereignis 2
$AA_MM4[Achse] bzw. $AA_MW4[Achse] Messwert von Messsystem 2 bei
Triggerereignis 2

Messtasterstatus lesbar über $A_PROBE[n]


n=Messtaster
1==Messtaster ausgelenkt
0==Messtaster nicht ausgelenkt

Messauftragsstatus bei MEASA, MEAWA


Ist im Programm eine Auswertung erforderlich, so kann der Messauftragsstatus über
$AC_MEA[n], mit n = Nummer des Messtasters, abgefragt werden. Sobald alle in einem
Satz programmierten Trigger-Ereignisse der Messtaster "n" erfolgt sind, liefert diese Variable
den Wert 1. Anderenfalls ist der Wert 0.

Hinweis
Wird Messen aus Synchronaktionen gestartet, wird $AC_MEA nicht mehr aktualisiert. In
diesem Fall sind neue PLC-Statussignale DB(31-48) DBB62 Bit 3 bzw. die gleichwertige
Variable $AA_MEAACT["Achse"] abzufragen.
Bedeutung:
$AA_MEAACT==1: Messen aktiv
$AA_MEAACT==0: Messen nicht aktiv
Literatur:
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Messen (M5).

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-35
Spezielle Wegbefehle
5.8 Erweiterte Messfunktion (MEASA, MEAWA, MEAC) (Option)

Kontinuierliches Messen MEAC


Die Messwerte liegen bei MEAC im Maschinenkoordinatensystem vor und werden im
angegebenen FIFO[n]-Speicher (Umlaufspeicher) abgelegt. Sind für die Messung zwei
Messtaster projektiert, werden die Messwerte des zweiten Messtasters getrennt im
zusätzlich dafür projektierten (über MD einstellbar) FIFO[n+1]-Speicher abgelegt.
FIFO-Speicher ist ein Umlaufspeicher, in den Messwerte im Umlaufprinzip in $AC_FIFO-
Variablen eingetragen werden, siehe Kapitel "Bewegungssynchronaktionen".

Hinweis
Der FIFO-Inhalt kann nur einmal aus dem Umlaufspeicher ausgelesen werden. Zur
Mehrfachverwendung der Messdaten müssen diese in den Anwenderdaten
zwischengespeichert werden.
Überschreitet die Anzahl der Messwerte für den FIFO-Speicher die im Maschinendatum
festgelegte Höchstzahl, so wird die Messung automatisch beendet.
Endloses Messen lässt sich durch zyklisches Auslesen von Messwerten realisieren. Das
Auslesen muss dabei mindestens in der gleichen Häufigkeit wie der Eingang von neuen
Messwerten erfolgen.

Erkannte Fehlerprogrammierungen
Folgende Fehlprogrammierungen werden erkannt und mit einem Fehler angezeigt:
● MEASA/MEAWA zusammen mit MEAS/MEAW in einem Satz programmiert
Beispiel:
N01 MEAS=1 MEASA[X]=(1,1) G01 F100 POS[X]=100
● MEASA/MEAWA mit Parameteranzahl <2 oder >5
Beispiel:
N01 MEAWA[X]=(1) G01 F100 POS[X]=100
● MEASA/MEAWA mit Triggerereignis ungleich 1/ -1/ 2/ -2
Beispiel:
N01 MEASA[B]=(1,1,3) B100
● MEASA/MEAWA mit falschem Modus
Beispiel:
N01 MEAWA[B]=(4,1) B100
● MEASA/MEAWA mit doppelt programmierten Triggerereignis
Beispiel:
N01 MEASA[B]=(1,1,-1,2,-1) B100
● MEASA/MEAWA und fehlende GEO-Achse
Beispiel:
N01 MEASA[X]=(1,1) MESA[Y]=(1,1) G01 X50 Y50 Z50 F100 ;GEO-Achse
X/Y/Z
● Uneinheitlicher Messauftrag bei GEO-Achsen
Beispiel:
N01 MEASA[X]=(1,1) MEASA[Y]=(1,1) MEASA[Z]=(1,1,2)
G01 X50 Y50 Z50 F100

Arbeitsvorbereitung
5-36 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.9 Spezielle Funktionen für den OEM-Anwender (OEMIPO1, OEMIPO2, G810 bis G829)

5.9 5.9 Spezielle Funktionen für den OEM-Anwender (OEMIPO1, OEMIPO2,


G810 bis G829)

Funktion
OEM-Adressen
Die Bedeutung der OEM-Adressen bestimmt der OEM-Anwender. Die Funktionalität wird
über Compile-Zyklen eingebracht. 5 OEM-Adressen sind reserviert. Die Adressbezeichner
sind einstellbar. OEM-Adressen sind in jedem Satz zulässig.

Parameter
Reservierte G-Gruppen
Gruppe 1 mit OEMIPO1, OEMIPO2
Der OEM-Anwender kann zwei zusätzliche Namen der G-Funktionen OEMIPO1, OEMIPO2
definieren. Diese Funktionalität wird über Compile-Zyklen eingebracht und ist für den OEM-
Anwender reserviert.
● Gruppe 31 mit G810 bis G819
● Gruppe 32 mit G820 bis G829
Für den OEM-Anwender sind zwei G-Gruppen mit jeweils 10 OEM-G-Funktionen reserviert.
Damit lassen sich die vom OEM-Anwender eingebrachten Funktionen zur Nutzung nach
außen bringen.
Funktionen und Unterprogramme
Zusätzlich können OEM-Anwender auch vordefinierte Funktionen und Unterprogramme mit
Parameterübergabe anlegen.

5.10 5.10 Vorschubreduzierung mit Eckenverzögerung (FENDNORM, G62,


G621)

Funktion
Bei der automatischen Eckenverzögerung wird der Vorschub glockenförmig kurz vor der
betreffenden Ecke abgesenkt. Außerdem kann das Ausmaß des für die Bearbeitung
relevanten Werkzeugverhaltens über Settingdaten parametriert werden. Dies sind:
● Beginn und Ende der Vorschubreduzierung
● Override, mit dem der Vorschub reduziert wird
● Erkennung der relevanten Ecke
Als relevante Ecken werden diejenigen Ecken berücksichtigt, deren Innenwinkel kleiner als
die über Settingdatum parametrierte Ecke ist.
Mit dem Defaultwert FENDNORM wird die Funktion des automatischen Eckenoverride
ausgeschaltet.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-37
Spezielle Wegbefehle
5.11 Programmierbares Bewegungsendekriterium (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

Hinweis
Diese Funktion gehört nicht zum Standardumfang von SINUMERK und muss für die
relevanten Softwarestände freigeschaltet werden.
Literatur:
/FBA/ Funktionsbeschreibung ISO-Dialekte.

Programmierung
FENDNORM
G62 G41
oder
G621

Parameter

FENDNORM Automatischer Eckenverzögerung aus


G62 Eckenverzögerung an Innenecken bei aktiver
Werkzeugradiuskorrektur
G621 Eckenverzögerung an allen Ecken bei aktiver
Werkzeugradiuskorrektur

G62 wirkt nur an den Innenecken mit


● aktiver Werkzeugradiuskorrektur G41, G42 und
● aktiven Bahnsteuerbetrieb G64, G641
Die entsprechende Ecke wird mit dem abgesenkten Vorschub angefahren, der sich ergibt
aus:
F * (Override zur Vorschubreduzierung) * Vorschuboverride
Die maximal mögliche Vorschubabsenkung wird genau dann erreicht, wenn das Werkzeug,
bezogen auf die Mittelpunktsbahn, den Richtungswechsel an der betreffenden Ecke
vornehmen soll.
G621 wirkt analog zu G62 an jeder Ecke, der durch FGROUP festgelegten Achsen.

5.11 5.11 Programmierbares Bewegungsendekriterium (FINEA, COARSEA,


IPOENDA, IPOBRKA, ADISPOSA)

Funktion
Ähnlich dem Satzwechselkriterium bei Bahninterpolation (G601, G602 und G603) kann das
Bewegungsendekriterium bei Einzelachsinterpolation in einem Teileprogramm bzw. in
Synchronaktionen für Kommando–/PLCprogrammiert werden.

Arbeitsvorbereitung
5-38 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.11 Programmierbares Bewegungsendekriterium (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

Je nachdem welches Bewegungsendekriterium eingestellt ist, werden Teileprogrammsätze


bzw. Technologiezyklussätze mit Einzelachsbewegungen unterschiedlich schnell beendet.
Gleiches gilt für PLC über FC15/16/18.

Programmierung
FINEA[Achse]
oder
COARSEA[Achse]
oder
IPOENDA[Achse]
oder
IPOBRKA(Achse,[, [Wert in Prozent]]) Mehrfachangaben sind möglich
oder
ADISPOSA(Achse, [Int][, [Real]]) Mehrfachangaben sind möglich

Parameter
FINEA Bewegungsende bei Erreichen von "Genauhalt Fein"
COARSEA Bewegungsende bei Erreichen von "Genauhalt GROB"
IPOENDA Bewegungsende bei Erreichen von "Interpolator"
IPOBRKA Satzwechsel in der Bremsrampe möglich (ab SW 6.2)
ADISPOSA Größe des Toleranzfensters zum Bewegungsendekriterium (ab SW
6.4)
Achse Kanalachsname (X, Y, ....)
Wert in Prozent Wann bezogen auf die Bremsrampe der Satzwechsel erfolgen soll
in %
Int Mode 0: Toleranzfenster nicht aktiv
Mode 1: Toleranzfenster bezüglich Sollposition
Mode 2: Toleranzfenster bezüglich Istposition
Real Größe des Toleranzfensters. Dieser Wert wird hauptlaufsynchron
in das Settingdatum 43610: ADISPOSA_VALUE eingetragen

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-39
Spezielle Wegbefehle
5.11 Programmierbares Bewegungsendekriterium (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

Beispiel Bewegungsende bei Erreichen von Interpolator-Stopp

...
N110 G01 POS[X]=100 FA[X]=1000 ACC[X]=90 IPOENDA[X]
Fahren auf Position X100 mit einer Bahngeschwindigkeit von 1000 U/min mit
einem Beschleunigungswert von 90% und dem Bewegungsende bei Erreichen von
Interpolator Stopp
...
N120 EVERY $A_IN[1] DO POS[X]=50 FA[X]=2000 ACC[X]=140 IPOENDA[X]
Fahren auf Position X50, wenn der Eingang 1 aktiv ist, mit einer
Bahngeschwindigkeit von 2000 U/min und einem Beschleunigungswert von 140%
und dem Bewegungsende bei Erreichen von Interpolator Stopp
...

Beispiel Satzwechselkriterium Bremsrampe im Teileprogramm

;Defaulteinstellung wirksam
N40 POS[X]=100
;Satzwechsel erfolgt, wenn X-Achse die Position 100 und Genauhalt fein
;erreicht hat
N20 IPOBRKA(X,100) ;Satzwechselkriterium Bremsrampe aktivieren
N30 POS[X]=200 ;Satzwechsel erfolgt, sobald die X-Achse zu bremsen beginnt
N40 POS[X]=250
;die X-Achse bremst nicht auf Position 200, sondern fährt weiter auf
;Position 250, sobald die X-Achse zu bremsen beginnt erfolgt
;der Satzwechsel
N50 POS[X]=0 ;die X-Achse bremst und fährt auf Position 0 zurück
;der Satzwechsel erfolgt bei Position 0und Genauhalt fein
N60 X10 F100
N70 M30
...

Arbeitsvorbereitung
5-40 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.11 Programmierbares Bewegungsendekriterium (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

Beispiel Satzwechselkriterium Bremsrampe in Synchronaktionen

Im Technologie-
Zyklus:
FINEA ;Bewegungsendekriterium Genauhalt fein
POS[X]=100 ;Technologie-Zyklus-Satzwechsel erfolgt, wenn die X-Achse
;die Position 100 und Genauhalt fein erreicht hat
IPOBRKA(X,100) ;Satzwechselkriterium Bremsrampe aktivieren
POS[X]=100 ;POS[X]=100; Technologie-Zyklus-Satzwechsel erfolgt,
;sobald die X-Achse zu bremsen beginnt
POS[X]=250 ;die X-Achse bremst nicht auf Position 200 sondern fährt
;weiter auf Position 250, sobald die X-Achse zu bremsen
;beginnt, erfolgt der Satzwechsel im Technologie-Zyklus
POS[X]=250 ;die X-Achse bremst und fährt auf Position 0 zurück
;der Satzwechsel erfolgt bei Position 0und Genauhalt fein
M17

Beschreibung
Systemvariable $AA_MOTEND
Das eingestellte Bewegungsendekriterium kann mit der Systemvariablen
$AA_MOTEND[Achse] abgefragt werden.

$AA_MOTEND[Achse]=1 Bewegungsende mit "Genauhalt Fein"


$AA_MOTEND[Achse]=2 Bewegungsende mit "Genauhalt Grob"
$AA_MOTEND[Achse]=3 Bewegungsende mit "IPO–Stop"
$AA_MOTEND[Achse]=4 Satzwechselkriterium Bremsrampe der
Achsbewegung
$AA_MOTEND[Achse]=5 Satzwechsel in der Bremsrampe mit
Toleranzfenster bezüglich "Sollposition"
$AA_MOTEND[Achse]=6 Satzwechsel in der Bremsrampe mit
Toleranzfenster bezüglich "Istposition"

Hinweis
Nach RESET bleibt der letzte programmierte Wert bestehen.
Literatur:
/FB1/ Funktionshandbuch Grundfunktionen; Vorschübe (V1).
Satzwechselkriterium in der Bremsrampe
Der prozentuelle Wert wird hauptlaufsynchron in das
SD 43600: IPOBRAKE_BLOCK_EXCHANGE eingetragen. Wird kein Wert angegeben, so
wird der aktuelle Wert dieses Settingdatums wirksam. Es ist ein Bereich von 0% bis 100%
einstellbar.
Zusätzliches Toleranzfenster für IPOBRKA

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-41
Spezielle Wegbefehle
5.12 Programmierbarer Servo-Parametersatz (SCPARA)

Zum bereits bestehenden Satzwechselkriterium in der Bremsrampe kann auch ein


zusätzliches Satzwechselkriterium Toleranzfenster angewählt werden. Die Freigabe erfolgt
erst, wenn die Achse
● wie bisher den vorgegebenen %-Wert ihrer Bremsrampe erreicht hat und
● ihre aktuelle Ist- oder Sollposition nicht weiter als eine Toleranz von der Endposition der
Achse im Satz entfernt ist.
Weitere Informationen zum Satzwechselkriterium von Positionierachsen entnehmen Sie
bitte:
Literatur:
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Positionierachsen (P2).
/PG/ Programmierhandbuch Grundlagen; "Vorschubregelung und Spindelbewegung".

5.12 5.12 Programmierbarer Servo-Parametersatz (SCPARA)

Funktion
Mit SCPARA kann der Parametersatz (bestehend aus MDs) im Teileprogramm und in
Synchronaktionen programmiert werden (bisher nur über PLC).
DB3n DBB9 Bit3
Damit es zu keinen Konflikten zwischen PLCund NCkommt, wird ein weiteres Bit auf der
PLC–>NCK-Nahtstelle definiert:
DB3n DBB9 Bit3 "Parametersatzvorgabe durch SCPARA gesperrt".
Bei einer gesperrten Parametersatzvorgabe für SCPARA kommt es zu keiner
Fehlermeldung, falls diese doch programmiert wird.

Programmierung
SCPARA[Achse]=Wert

Parameter

SCPARA Parametersatz festlegen


Achse Kanalachsname (X, Y, ...)
Wert gewünschter Parametersatz (1<= Wert <=6)

Hinweis
Der aktuelle Parametersatz kann mit der Systemvariablen $AA_SCPAR[Achse] abgefragt
werden.
Bei G33, G331 bzw. G332 wird der geeignetste Parametersatz von der Steuerung
ausgewählt.
Falls der Servo-Parametersatz sowohl in einem Teileprogramm bzw. in einer Synchronaktion
und der PLC gewechselt werden soll, muss das PLC-Anwenderprogramm erweitert werden.

Arbeitsvorbereitung
5-42 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Spezielle Wegbefehle
5.12 Programmierbarer Servo-Parametersatz (SCPARA)

Literatur:
/FB1/ Funktionshandbuch Grundfunktionen; Vorschübe (V1),
Kapitel "Vorschubbeeinflussung".

Beispiel

...
N110 SCPARA[X]= 3 ;Der 3. Parametersatz wird für die Achse X angewählt
...

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 5-43
Spezielle Wegbefehle
5.12 Programmierbarer Servo-Parametersatz (SCPARA)

Arbeitsvorbereitung
5-44 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames 6
6.1 6.1 Koordinatentransformation über Framevariable

Funktion
Neben den im Programmierhandbuch "Grundlagen" bereits beschriebenen
Programmiermöglichkeiten können Sie Koordinatensysteme auch mit vordefinierten
Framevariablen festlegen.

Folgende Koordinatensysteme sind definiert:


MKS: Maschinen-Koordinatensystem
BKS: Basis-Koordinatensystem
BNS: Basisnullpunkt-Koordinatensystem
ENS: Einstellbares Nullpunkt-Koordinatensystem
WKS: Werkstück-Koordinatensystem
Was ist eine vordefinierte Framevariable?
Vordefinierte Framevariablen sind Schlüsselwörter, die im Sprachgebrauch der Steuerung
mit entsprechender Wirkung bereits festgelegt sind und im NC-Programm verarbeitet werden
können.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-1
Frames
6.1 Koordinatentransformation über Framevariable

Mögliche Framevariable:
● Basisframe (Basisverschiebung)
● einstellbare Frames
● programmierbarer Frame

Wertzuweisungen und Istwerte auslesen


Zusammenhang Framevariable/Frame
Eine Koordinatentransformation kann durch Wertzuweisung eines Frames an eine
Framevariable aktiviert werden.
Beispiel: $P_PFRAME=CTRANS(X,10)
Framevariable:
$P_PFRAME bedeutet: aktueller programmierbarer Frame.
Frame:
CTRANS(X,10) bedeutet: programmierbare Nullpunktverschiebung der X-Achse um 10
mm.

<%.6 <%16 <


(16 <:.6

; :.6
3B3)5$0(

; (16
3B,)5$0(3B8,)5>@
; %16
3B%)5$0(3B8%)5

; %.6

Istwerte auslesen
Über vordefinierte Variable im Teileprogramm können die aktuellen Istwerte der
Koordinatensysteme ausgelesen werden:
$AA_IM[Achse]: Lesen Istwert im MKS
$AA_IB[Achse]: Lesen Istwert im BKS
$AA_IBN[Achse:] Lesen Istwert im BNS
$AA_IEN[Achse]: Lesen Istwert im ENS
$AA_IW[Achse]: Lesen Istwert im WKS

Arbeitsvorbereitung
6-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.1 Koordinatentransformation über Framevariable

6.1.1 Vordefinierte Framevariable ($P_BFRAME, $P_IFRAME, $P_PFRAME,


$P_ACTFRAME)

$P_BFRAME
Aktuelle Basisframevariable, die den Bezug zwischen Basiskoordinatensystem (BKS) und
Basis-Nullpunktsystem (BNS) herstellt.
Soll der durch $P_UBFR beschriebene Basisframe sofort im Programm wirksam werden,
muss entweder
● ein G500, G54...G599 programmiert werden oder
● $P_BFRAME mit $ $P_UBFR beschrieben werden.

=%.6 =%16

; %16
3B%)5$0(3B8%)5

; %.6

$P_IFRAME
Aktuelle, einstellbare Framevariable, die den Bezug zwischen Basis-Nullpunktsystem (BNS)
und Einstellbarem Nullpunktsystem (ENS) herstellt.
● $P_IFRAME entspricht $P_UIFR[$P_IFRNUM]
● $P_IFRAME enthält nach Programmierung von z. B. G54 die durch G54 definierte
Translation, Rotation, Skalierung und Spiegelung.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-3
Frames
6.1 Koordinatentransformation über Framevariable

= (16

= %16
<
(16
<%16

;
(16

; %16

$P_PFRAME
Aktuelle, programmierbare Framevariable, die den Bezug zwischen dem Einstellbaren
Nullpunktsystem (ENS) und dem Werkstückkoordinatensystem (WKS) herstellt.
$P_PFRAME enthält den resultierenden Frame, der sich
● aus der Programmierung von TRANS/ATRANS, ROT/AROT, SCALE/ASCALE,
MIRROR/AMIRROR bzw.
● aus der Zuweisung von CTRANS, CROT, CMIRROR, CSCALE an den programmierbaren
FRAME ergibt

Arbeitsvorbereitung
6-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.1 Koordinatentransformation über Framevariable

= :.6
= (16

= %16
<
(16
< %16
<
:.6

; :.6

; (16

; %16

$P_ACTFRAME
Aktueller, resultierender Gesamtframe, der sich durch Verkettung aus
● der aktuellen Basisframevariablen $P_BFRAME,
● der aktuellen einstellbaren Framevariablen $P_IFRAME mit Systemframes und
● der aktuellen programmierbaren Framevariablen $P_PFRAME mit Systemframes
ergibt. Systemframes, siehe Kapitel "Im Kanal wirksame Frames"
$P_ACTFRAME beschreibt den aktuell gültigen Werkstücknullpunkt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-5
Frames
6.1 Koordinatentransformation über Framevariable

= :.6
=
= %.6 (16
= %16
<(16
< %16
<:.6

; :.6

; (16

; %16

; %.6

Falls $P_BFRAME, $P_IFRAME oder $P_PFRAME verändert werden, wird $P_ACTFRAME


neu berechnet.
$P_ACTFRAME entspricht $P_BFRAME:$P_IFRAME:$P_PFRAME

(LQJDEH¾EHU3URJUDPP]% (LQJDEH¾EHU3URJUDPP]%
3B8%)5 &75$16 ; 3B8,)5>Q@ &75$16 ;
(LQJDEH (LQJDEH
¾EHU+0,00& ¾EHU+0,00&

3B8%)5 3B8,)5>Q@

DNWLYLHUW¾EHU
***

3B$&7)5$0( 3B%)5$0( 3B,)5$0( 3B3)5$0(

(LQJDEH¾EHU3URJUDPP]% (LQJDEH¾EHU3URJUDPP]%
3B%)5$0( &75$16 ; 3B3)5$0( &75$16 ;
E]Z75$16;
(LQJDEH¾EHU3URJUDPP]%
3B,)5$0( &75$16 ;

Arbeitsvorbereitung
6-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.1 Koordinatentransformation über Framevariable

Basisframe und einstellbarer Frame wirken nach Reset, wenn das MD 20110
RESET_MODE_MASK folgendermaßen eingestellt ist:
Bit0=1, Bit14=1 --> $P_UBFR (Basisframe) wirkt
Bit0=1, Bit5=1 --> $P_UIFR[$P_UIFRNUM] (einst. Frame) wirkt

Vordefinierte einstellbare Frames $P_UBFR


Mit $P_UBFR wird der Basisframe programmiert, er wird aber nicht gleichzeitig im
Teileprogramm aktiv. Der mit $P_UBFR geschriebene Basisframe wird eingerechnet, wenn
● Reset geschaltet wurde und die Bits 0 und 14 des MD RESET_MODE_MASK gesetzt
sind,
● die Anweisungen G500, G54...G599 ausgeführt wurden.

Vordefinierte einstellbare Frames $P_UIFR[n]


Durch die vordefinierte Framevariable $P_UIFR[n] können die einstellbaren
Nullpunktverschiebungen G54 bis G599 vom Teileprogramm aus gelesen oder
geschrieben werden.
Diese Variablen stellen im Aufbau ein eindimensionales Feld vom Typ FRAME mit dem
Namen $P_UIFR[n] dar.

Zuordnung zu den G-Befehlen


Standardmäßig sind 5 einstellbare Frames $P_UIFR[0]... $P_UIFR[4] bzw. 5
gleichbedeutende G-Befehle – G500 und G54 bis G57 , unter deren Adressen Werte
abgespeichert werden können.
$P_IFRAME=$P_UIFR[0] entspricht G500
$P_IFRAME=$P_UIFR[1] entspricht G54
$P_IFRAME=$P_UIFR[2] entspricht G55
$P_IFRAME=$P_UIFR[3] entspricht G56
$P_IFRAME=$P_UIFR[4] entspricht G57
Über Maschinendatum können Sie die Anzahl der Frames verändern:
$P_IFRAME=$P_UIFR[5] entspricht G505
... ... ...
$P_IFRAME=$P_UIFR[99] entspricht G599

Hinweis
Hierdurch lassen sich insgesamt 100 Koordinatensysteme erzeugen, die z. B. als Nullpunkt
für verschiedene Vorrichtungen programmübergreifend aufgerufen werden können.

Vorsicht
Die Programmierung von Framevariablen und Frames erfordert im NC-Programm einen
eigenen NC-Satz. Ausnahme: Programmierung eines einstellbaren Frames mit G54, G55,
...

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-7
Frames
6.2 Framevariablen/Frames Werte zuweisen

6.2 6.2 Framevariablen/Frames Werte zuweisen

6.2.1 Direkte Werte zuweisen (Achswert, Winkel, Maßstab)

Funktion
Im NC-Programm können Sie direkt Frames oder Framevariablen mit Werten belegen.

Programmierung
$P_PFRAME=CTRANS (X, Achswert, Y, Achswert, Z, Achswert, …)
oder
$P_PFRAME=CROT (X, Winkel, Y, Winkel, Z, Winkel, …)
oder
$P_UIFR[..]=CROT (X, Winkel, Y, Winkel, Z, Winkel, …)
oder
$P_PFRAME=CSCALE (X, Maßstab, Y, Maßstab, Z, Maßstab, …)
oder
$P_PFRAME=CMIRROR (X, Y, Z)
Die Programmierung von $P_BFRAME erfolgt analog wie $P_PFRAME.

Parameter

CTRANS Verschiebung in den angegebenen Achsen


CROT Drehung um die angegebenen Achsen
CSCALE Maßstabsveränderung in den angegebenen Achsen
CMIRROR Richtungsumkehr der angegebenen Achse
X Y Z Verschiebewert in Richtung der angegebenen Geometrieachse
Achswert Achswert der Verschiebung zuweisen
Winkel Drehwinkel um die angegebenen Achsen zuweisen
Maßstab Maßstab verändern

Beispiel
Durch Wertzuweisung an dem aktuellen programmierbaren Frame werden Translation,
Drehung und Spiegelung aktiviert.

Arbeitsvorbereitung
6-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.2 Framevariablen/Frames Werte zuweisen

= 

<


<
<

;
= ;

<
 &75$16
 &527
 &0,5525
;

N10 $P_PFRAME=CTRANS(X,10,Y,20,Z,5):CROT(Z,45):CMIRROR(Y)

Frame-Rot-Komponenten mit anderen Werten vorbelegen


Mit CROT alle drei Komponenenten von UIFR mit Werten vorbelegen
$P_UIFR[5]=CROT (X, 0, Y, 0, Z, 0)
N100 $P_UIFR[5, y, rt]=0
N100 $P_UIFR[5, x, rt]=0
N100 $P_UIFR[5, z, rt]=0

Beschreibung
Sie können mehrere Rechenvorschriften nacheinander programmieren.
Beispiel:
$P_PFRAME=CTRANS(...):CROT(...):CSCALE...
Beachten Sie, dass die Befehle durch den Kettungsoperator Doppelpunkt (…):(…)
miteinander verbunden werden müssen. Dadurch werden die Befehle erstens miteinander
verknüpft und zweitens in der programmierten Reihenfolge additiv ausgeführt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-9
Frames
6.2 Framevariablen/Frames Werte zuweisen

/(
&$
&6
&527
$16
&75

Hinweis
Die mit den genannten Befehlen programmierten Werte werden den Frames zugewiesen
und abgespeichert.
Aktiv werden die Werte erst, wenn sie dem Frame einer aktiven Framevariablen
$P_BFRAME bzw. $P_PFRAME zugewiesen werden.

6.2.2 Framekomponenten lesen und verändern (TR, FI, RT, SC, MI)

Funktion
Sie haben die Möglichkeit, auf einzelne Daten eines Frames, z. B. auf einen bestimmten
Verschiebewert oder Drehwinkel zuzugreifen. Diese Werte können Sie verändern oder einer
anderen Variablen zuweisen.

Programmierung

R10=$P_UIFR[$P_UIFNUM, X, RT] Der Drehwinkel RT um die X-Achse aus der


] aktuell gültigen einstellbaren
Nullpunktverschiebung $P_UIFRNUM soll der
Variablen R10 zugewiesen werden.

Arbeitsvorbereitung
6-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.2 Framevariablen/Frames Werte zuweisen

R12=$P_UIFR[25, Z, TR] Der Verschiebewert TR in Z aus dem Datensatz


des eingestellten Frames Nr. 25 soll der
Variablen R12 zugewiesen werden.
R15=$P_PFRAME[Y, TR] Der Verschiebewert TR in Y des aktuellen
programmierbaren Frames soll der Variablen R15
zugewiesen werden.
$P_PFRAME[X, TR]=25 Der Verschiebewert TR in X des aktuellen
programmierbaren Frames soll verändert werden.
Ab sofort gilt X25.

Parameter

$P_UIFRNUM Mit dieser Variablen wird automatisch der Bezug zur


aktuell gültigen einstellbaren Nullpunktverschiebung
hergestellt.
P_UIFR[n, …, …] Durch Angabe der Framenummer n greifen Sie auf den
einstellbaren Frame Nr. n zu.
Angabe der Komponente, die gelesen oder verändert werden
TR soll:

FI TR Translation

RT FI Translation Fine

SC RT Rotation

MI SC Scale Maßstabsveränderung

X Y Z MI Spiegelung
Zusätzlich (siehe Beispiele) wird die entsprechende Achse
X, Y, Z angegeben.

Wertebereich für Drehung RT

Drehung um 1. -180° bis +180°


Geometrieachse:
Drehung um 2. -90° bis +90°
Geometrieachse:
Drehung um 3. -180° bis +180°
Geometrieachse:

Beschreibung
Frame aufrufen
Durch Angabe der Systemvariablen $P_UIFRNUM können Sie direkt auf die mit $P_UIFR
bzw. G54, G55, … aktuell eingestellte Nullpunktverschiebung zugreifen
($P_UIFRNUM enthält die Nummer des aktuell eingestellten Frames).
Alle anderen gespeicherten einstellbaren Frames $P_UIFR rufen Sie durch Angabe der
entsprechenden Nummer $P_UIFR[n] auf.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-11
Frames
6.2 Framevariablen/Frames Werte zuweisen

Für vordefinierte Framevariable und eigendefinierte Frames geben Sie den Namen an, z. B.
$P_IFRAME.
Daten aufrufen
In den eckigen Klammern stehen Achsname und Framekomponente des Wertes, auf den
Sie zugreifen oder den Sie verändern wollen, z. B. [X, RT] oder [Z, MI].

6.2.3 Verknüpfung von kompletten Frames

Funktion
Im NC-Programm kann ein kompletter Frame einem anderen Frame zugewiesen oder
Frames miteinander verkettet werden.
Framekettungen eignen sich z. B. für die Beschreibung mehrerer Werkstücke, die auf einer
Palette angeordnet sind und in einem Fertigungsablauf bearbeitet werden sollen.

=
<

*

Für die Beschreibung von Palettenaufgaben könnten die Framekomponenten z. B. nur


bestimmte Teilwerte enthalten, durch deren Verkettung verschiedene Werkstücknullpunkte
generiert werden.

Arbeitsvorbereitung
6-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.2 Framevariablen/Frames Werte zuweisen

Programmierung
Frames zuweisen

DEF FRAME EINSTELLUNG1 Dem aktuellen programmierbaren Frame


EINSTELLUNG1=CTRANS(X,10) werden die Werte des selbst
$P_PFRAME=EINSTELLUNG1 definierten Frames EINSTELLUNG1
DEF FRAME EINSTELLUNG4 zugewiesen.
EINSTELLUNG4=$P_PFRAME Der aktuelle programmierbare Frame
$P_PFRAME=EINSTELLUNG4 wird zwischengespeichert und dann
bei Bedarf wieder zurückgespeichert.

Frameketten
Die Frames werden in der programmierten Reihenfolge miteinander verkettet, die
Framekomponenten wie z. B. Verschiebungen, Drehungen usw. werden nacheinander
additiv ausgeführt.

$P_IFRAME=$P_UIFR[15]:$P_UIFR[16] $P_UIFR[15] enthält z. B. Daten für


Nullpunktverschiebungen.
Anschließend werden –darauf
aufbauend –die Daten von
$P_UIFR[16] z. B. Daten für Rotationen
$P_UIFR[3]=$P_UIFR[4]:$P_UIFR[5] verarbeitet.
Der einstellbare Frame 3 wird durch
Verkettung der einstellbaren Frames 4
und 5 erzeugt.

Hinweis
Beachten Sie, dass die Frames durch den Kettungsoperator Doppelpunkt : miteinander
verbunden werden müssen.

6.2.4 Definition neuer Frames (DEF FRAME)

Funktion
Neben den bisher beschriebenen vordefinierten, einstellbaren Frames haben Sie auch die
Möglichkeit, neue Frames zu erzeugen. Dabei handelt es sich um Variable vom Typ
FRAME, die Sie mit freier Namensgebung definieren.
Mit den Funktionen CTRANS, CROT, CSCALE, CMIRROR können Sie Ihre Frames im NC-
Programm mit Werten belegen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-13
Frames
6.3 Grob- und Feinverschiebung (CFINE; CTRANS)

Programmierung
DEF FRAME PALETTE1
oder
PALETTE1=CTRANS(…):CROT(…)…

Parameter

DEF FRAME Neue Frames erzeugen.


PALETTE1 Name des neuen Frames
=CTRANS(...): Den möglichen Funktionen Werte zuweisen
CROT(...)...

6.3 6.3 Grob- und Feinverschiebung (CFINE; CTRANS)

Funktion
Feinverschiebung
Mit dem Befehl CFINE(X, ...,Y ...) kann eine Feinverschiebung des Basisframes
und aller einstellbaren Frames programmiert werden.
Eine Feinverschiebung kann nur erfolgen, wenn das MD18600:
MM_FRAME_FINE_TRANS=1 ist.
Grobverschiebung
Mit CTRANS(...) wird die Grobverschiebung festgelegt.

6NDOLHUXQJ
6SLHJHOXQJ
5RWDWLRQ
)HLQYHUVFKLHEXQJ

*UREYHUVFKLHEXQJ

)UDPHVWUXNWXUPLW)HLQYHUVFKLHEXQJ

Grob- und Feinverschiebung addieren sich zur Gesamtverschiebung.

Arbeitsvorbereitung
6-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.3 Grob- und Feinverschiebung (CFINE; CTRANS)

Programmierung

$P_UBFR=CTRANS(x, 10) : CFINE(x, 0.1) ;Verkettung von Verschiebung,


: CROT(x, 45)
;Feinverschiebung und Rotation
$P_UIFR[1]=CFINE(x, 0.5 y, 1.0, z, ;der gesamte Frame wird mit CFINE
0.1)
;einschl. Grobverschiebung
;überschrieben
Der Zugriff auf die Einzelkomponenten der Feinverschiebung erfolgt durch die
Komponentenangabe FI (Translation Fine).

DEF REAL FINEX ;Definition der Variable FINEX


FINEX=$P_UIFR[$P_UIFNUM, x, FI] ;Auslesen der Feinverschiebung
;über die Variable FINEX
FINEX=$P_UIFR[3, x, FI]$P ;Auslesen der Feinverschiebung
;der X-Achse im [Link]
;über die Variable FINEX

Parameter

CFINE(x, Wert, y, Wert, z, Wert ) Feinverschiebung für mehrere Achsen. Addive


Verschiebung (Translatation).
CTRANS(x, Wert, y, Wert, z, Wert ) Grobverschiebung für mehrere Achsen.
Absolute Verschiebung (Translatation).
x y z Nullpunktverschiebung der Achsen (max. 8)
Wert Translationsanteil

Maschinenhersteller
Mit dem MD18600: MM_FRAME_FINE_TRANS kann die Feinverschiebung in folgenden
Varianten projektiert werden:
0:
Feinverschiebung kann nicht eingegeben, bzw. nicht programmiert werden. G58 und G59
sind nicht möglich.
1:
Feinverschiebung für einstellbare Frames, Basisframes, programmierbare Frames, G58 und
G59 kann eingegeben bzw. programmiert werden.

Beschreibung
Eine über die HMI-Bedienung geänderte Feinverschiebung wird erst nach Aktivierung des
entsprechenden Frames aktiv, d. h. die Aktivierung erfolgt über G500, G54...G599. Eine
aktivierte Feinverschiebung eines Frames ist solange aktiv, solange der Frame aktiv ist.
Keinen Feinverschiebungsanteil besitzt der programmierbare Frame. Wird dem
programmierbaren Frame ein Frame mit Feinverschiebung zugewiesen, so wird seine
Gesamtverschiebung aus der Summe der Grob- und Feinverschiebung gebildet. Beim Lesen
des programmierbaren Frames ist die Feinverschiebung immer Null.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-15
Frames
6.4 DRF-Verschiebung

6.4 6.4 DRF-Verschiebung

Verschiebung mit dem Handrad, DRF


Zusätzlich zu allen in diesem Kapitel behandelten Verschiebungen können
Nullpunktverschiebungen über Handrad (DRF-Verschiebung) festgelegt werden.
Die DRF-Verschiebung wirkt im Basis-Koordinatensystem auf Geometrie- und
Zusatzachsen:

= %16

=%.6
< %.6
<%16

%DVLVIUDPH

; %16

'5)H[WHUQH139

; %.6

Die Handradzuordnung muss aber für die Maschinenachse erfolgen (z.B. über NC/PLC-
Nahtstellensignale "Handrad aktivieren"), auf die die Geometrie- und Zusatzachse
abgebildet wird. Mehr Informationen hierzu siehe entsprechende Bedienungsanleitung.

DRF-Verschiebung löschen, DRFOF


Mit DRFOF wird die Handradverschiebung für alle dem Kanal zugeordneten Achsen
gelöscht. DRFOF steht im eigenen NC-Satz.

Arbeitsvorbereitung
6-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.5 Externe Nullpunktverschiebung

6.5 6.5 Externe Nullpunktverschiebung

Funktion
Hierdurch haben Sie eine weitere Möglichkeit, den Nullpunkt zwischen Basis- und
Werkstückkoordinatensystem zu verschieben.
Bei der externen Nullpunktverschiebung können nur lineare Verschiebungen programmiert
werden.

<0.6 <0.6 <%.6 <%16 <(16

; (16
**

; %16
%DVLVIUDPH
([WHUQH1XOOSXQNWYHUVFKLHEXQJ
'5)9HUVFKLHEXQJ
; %.6
.LQHPDWLVFKH7UDQVIRUPDWLRQ
; 0.6
3UHVHW9HUVFKLHEXQJ

Programmierung
Die Programmierung der Verschiebewerte, $AA_ETRANS erfolgt über die Belegung der
achsspezifischen Systemvariablen.
Verschiebewert zuweisen
$AA_ETRANS[Achse]=RI
RI ist die Rechenvariable vom Typ REAL, die den neuen Wert enthält.
Die externe Verschiebung wird in der Regel nicht im Teileprogramm angegeben, sondern
von der PLC gesetzt.

Hinweis
Der im Teileprogramm geschriebene Wert wird erst wirksam, wenn an der VDI-Schnittstelle
(NCU-PLC-Schnittstelle) das entsprechende Signal gesetzt ist.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-17
Frames
6.6 Preset-Verschiebung (PRESETON)

6.6 6.6 Preset-Verschiebung (PRESETON)

Funktion
Für spezielle Anwendungen kann es erforderlich werden, einer oder mehreren Achsen an
der aktuellen Position (im Stillstand) einen neuen, programmierten Istwert zuzuweisen.

Vorsicht
Mit der Funktion PRESETON wird der Referenzpunkt ungültig. Deshalb sollten Sie diese
Funktion nur für Achsen ohne Referenzpunktpflicht einsetzen. Soll das ursprüngliche System
wiederhergestellt werden, müssen mit G74 die Referenzpunkte angefahren werden –siehe
Kapitel "Datei- und Programmverwaltung".

<0.6 <0.6

.LQHPDWLVFKH7UDQVIRUPDWLRQ

; 0.6
3UHVHW9HUVFKLHEXQJ

Programmierung
PRESETON(Achse, Wert, ...)

Parameter

PRESETON Istwertsetzen
Achse Angabe der Maschinenachse
Wert Neuer Istwert, der für die angegebene Achse gelten soll

Hinweis
Das Istwertsetzen mit Synchronaktionen sollte nur mit dem Schlüsselwort "WHEN" oder
"EVERY" erfolgen.

Beispiel
Die Zuweisung der Istwerte erfolgt im Maschinenkoordinatensystem –die Werte beziehen
sich auf die Maschinenachsen.
N10 G0 A760
N20 PRESETON(A1,60)

Arbeitsvorbereitung
6-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.7 Frame-Berechnung aus 3 Messpunkten im Raum (MEAFRAME)

Achse A fährt auf Position 760. Maschinenachse A1 erhält an Position 760 den neuen
Istwert 60. Ab jetzt wird im neuen Istwertsystem positioniert.

6.7 6.7 Frame-Berechnung aus 3 Messpunkten im Raum (MEAFRAME)

Funktion
MEAFRAME ist eine Erweiterung der 840D-Sprache für die Unterstützung der Messzyklen.
Die Funktion MEAFRAME berechnet den Frame aus drei idealen und den
korrespondierenden gemessenen Punkten.
Wird ein Werkstück für die Bearbeitung positioniert, ist seine Position relativ zum
kartesischen Maschinenkoordinatensystem bezüglich seiner Idealposition i.a. sowohl
verschoben als auch gedreht. Für exakte Bearbeitung oder Messung ist entweder eine
kostspielige physikalische Justierung oder Änderung der Bewegungen im Teileprogramm
nötig.
Ein Frame kann durch Abtasten dreier Punkte im Raum festgelegt werden, deren
Idealpositionen bekannt sind. Abgetastet wird mit einem Berührungs- oder optischen Sensor,
der spezielle, auf der Trägerplatte präzise fixierte Löcher oder Messkugeln berührt.

Programmierung
MEAFRAME IDEAL_POINT,MEAS_POINT,FIT_QUALITY)

Parameter

MEAFRAME Frame Berechnung von 3 Messpunkten im Raum


IDEAL_POINT dim. Real-Feld, das die drei Koordinaten der Ideal-Punkte enthält
MEAS_POINT dim. Real-Feld, das die drei Koordinaten der gemessenen Punkte
enthält
FIT_QUALITY Real-Variable, mit der folgende Informationen zurückgegeben werden:
-1: Die idealen Punkte liegen nahezu auf einer Geraden:
Der Frame konnte nicht berechnet werden. Die
zurückgegebene Framevariable enthält einen neutralen
-2: Frame.
Die Messpunkte liegen nahezu auf einer Geraden: Der
Frame konnte nicht berechnet werden. Die
-4: zurückgegebene Framevariable enthält einen neutralen
Frame.

positiver Die Berechnung der Rotationsmatrix schlägt aus einem


Wert: anderen Grund fehl.
Summe der Verzerrungen (Abstände zwischen den
Punkten), die zur Überführung des gemessenen Dreiecks
in ein zum idealen Dreieck kongruentes benötigt wird.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-19
Frames
6.7 Frame-Berechnung aus 3 Messpunkten im Raum (MEAFRAME)

Hinweis
Qualität der Messung
Damit die gemessenen den idealen Koordinaten mit einer kombinierten Rotation/Translation
zugeordnet werden können, muss das von den Messpunkten aufgespannte Dreieck
kongruent zum idealen Dreieck sein. Dies wird bewerkstelligt von einem
Kompensationsalgorithmus, der die Summe der Quadrate der Abweichungen minimiert, die
das gemessene in das ideale Dreieck überführen.
Die effektiv benötigte Verzerrung der Messpunkte kann als Indikator für die Qualität der
Messung dienen und wird deshalb als zusätzliche Variable von MEAFRAME ausgegeben.
Hinweis
Das von MEAFRAME erzeugte Frame kann durch die Funktion ADDFRAME in ein anderes
Frame in der Framekette transformiert werden.
Siehe Beispiel: Verkettung von Frames "Verkettung mit ADDFRAME".
Weitere Informationen zu den Parametern von ADDFRAME(FRAME, STRING) siehe
/FB1/ Funktionshandbuch Grundfunktionen; Achsen, Koordinatensysteme, Frames (K2),
Kapitel "FRAME-Kettung".

Beispiel
;Teileprogramm 1
;
DEF FRAME CORR_FRAME
;
;Setzen von Messpunkten
DEF REAL IDEAL_POINT[3,3] = SET(10.0,0.0,0.0, 0.0,10.0,0.0,
0.0,0.0,10.0)
DEF REAL MEAS_POINT[3,3] = SET
(10.1,0.2,-0.2, -0.2,10.2,0.1, -0.2,0.2,9.8) ;für Test
DEF REAL FIT_QUALITY = 0
;
DEF REAL ROT_FRAME_LIMIT = 5 ;erlaubt max. 5 Grad Verdrehung
;der Teileposition
DEF REAL FIT_QUALITY_LIMIT = 3 ;erlaubt max. 3 mm Verschiebung zwischen
;dem idealen und dem gemessenen Dreieck
DEF REAL SHOW_MCS_POS1[3]
DEF REAL SHOW_MCS_POS2[3]
DEF REAL SHOW_MCS_POS3[3]
;=======================================================
;
N100 G01 G90 F5000
N110 X0 Y0 Z0
;
N200 CORR_FRAME=MEAFRAME(IDEAL_POINT,MEAS_POINT,FIT_QUALITY)
;
N230 IF FIT_QUALITY < 0
SETAL(65000)
GOTOF NO_FRAME

Arbeitsvorbereitung
6-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.7 Frame-Berechnung aus 3 Messpunkten im Raum (MEAFRAME)

ENDIF
,
N240 IF FIT_QUALITY > FIT_QUALITY_LIMIT
SETAL(65010)
GOTOF NO_FRAME
ENDIF
;
N250 IF CORR_FRAME[X,RT] > ROT_FRAME_LIMIT ;Begrenzung des 1. RPY-
;Winkels
SETAL(65020)
GOTOF NO_FRAME
ENDIF
;
N260 IF CORR_FRAME[Y,RT] > ROT_FRAME_LIMIT ;Begrenzung des 2. RPY-
;Winkels
SETAL(65021)
GOTOF NO_FRAME
ENDIF
;
N270 IF CORR_FRAME[Z,RT] > ROT_FRAME_LIMIT ;Begrenzung des 3. RPY-
;Winkels
SETAL(65022)
GOTOF NO_FRAME
ENDIF
;
N300 $P_IFRAME=CORR_FRAME ;Abtast-Frame mit einem setzbaren Frame aktivieren
;
;Frame prüfen durch Positionieren der Geometrieachsen auf die idealen Punkte
;
N400 X=IDEAL_POINT[0,0] Y=IDEAL_POINT[0,1] Z=IDEAL_POINT[0,2]
N410 SHOW_MCS_POS1[0]=$AA_IM[X]
N420 SHOW_MCS_POS1[1]=$AA_IM[Y]
N430 SHOW_MCS_POS1[2]=$AA_IM[Z]
;
N500 X=IDEAL_POINT[1,0] Y=IDEAL_POINT[1,1] Z=IDEAL_POINT[1,2]
N510 SHOW_MCS_POS2[0]=$AA_IM[X]
N520 SHOW_MCS_POS2[1]=$AA_IM[Y]
N530 SHOW_MCS_POS2[2]=$AA_IM[Z]
;
N600 X=IDEAL_POINT[2,0] Y=IDEAL_POINT[2,1] Z=IDEAL_POINT[2,2]
N610 SHOW_MCS_POS3[0]=$AA_IM[X]
N620 SHOW_MCS_POS3[1]=$AA_IM[Y]
N630 SHOW_MCS_POS3[2]=$AA_IM[Z]
;

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-21
Frames
6.8 NCU-globale Frames

N700 G500 ;Setzbaren Frame deaktivieren, da mit Nullframe (kein Wert eingetragen)
;vorbesetzt
;
NO_FRAME:
M0
M30

Beispiel Verkettung von Frames


Verkettung von MEAFRAME für Korrekturen
Die Funktion MEAFRAME( ) liefert ein Korrekturframe. Wird dieser Korrekturframe mit dem
einstellbaren Frame $P_UIFR[1] verkettet, der bei Aufruf der Funktion aktiv war z. B.
G54, so erhält man ein einstellbaren Frame für weitere Umrechnungen zum Verfahren oder
Bearbeiten.
Verkettung mit ADDFRAME
Soll dieser Korrekturframe in der Framekette an einer anderen Stelle wirken oder sind vor
dem einstellbaren Frame noch andere Frames aktiv, dann kann die Funktion ADDFRAME( )
zum Einketten in einem der Kanal-Basisframes oder einem Systemframe genutzt werden.
In den Frames darf hierbei nicht aktiv sein:
● Spiegelung mit MIRROR
● Skalierung mit SCALE
Die Eingangsparameter für Soll- und Istwerte sind die Werkstückkoordinaten. Im
Grundsystem der Steuerung sind diese Koordinaten stets
● metrisch oder in Inch (G71/G70) und als
● radiusbezogenes (DIAMOF)
Maß anzugeben.

6.8 6.8 NCU-globale Frames

Funktion
NCU-globale Frames gibt es pro NCU nur einmal für alle Kanäle. NCU-globale Frames
können von allen Kanälen aus geschrieben und gelesen werden. Die Aktivierung der NCU-
globalen Frames erfolgt im jeweiligen Kanal.
Durch globale Frames können Kanalachsen und Maschinenachsen mit Verschiebungen,
skaliert und gespiegelt werden.
Geometrische Zusammenhänge und Frameketten
Bei globalen Frames existiert kein geometrischer Zusammenhang zwischen den Achsen.
Deshalb können keine Drehungen und keine Programmierung von Geometrie-
Achsbezeichnern ausgeführt werden.
● Auf globale Frames lassen sich keine Rotationen anwenden. Die Programmierung einer
Rotation wird mit dem Alarm: "18310 Kanal %1 Satz %2 Frame: Rotation unzulässig",
abgelehnt.

Arbeitsvorbereitung
6-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.8 NCU-globale Frames

● Die Verkettung von globalen Frames und kanalspezifischen Frames ist möglich. Der
resultierende Frame enthält alle Frameanteile inklusive der Rotationen für alle Achsen.
Die Zuweisung eines Frames mit Rotationsanteilen an einen globalen Frame wird mit
dem Alarm "Frame: Rotation unzulässig" abgelehnt.

NCU-globale Frames
NCU-globale Basisframes $P_NCBFR[n]
Es können bis zu 8 NCU-globale Basisframes projektiert werden:
Gleichzeitig können kanalspezifische Basisframes vorhanden sein.
Globale Frames können von allen Kanälen einer NCU geschrieben und gelesen werden.
Beim Schreiben von globalen Frames ist vom Anwender für eine Kanalkoordinierung Sorge
zu tragen. Dies kann z.B. durch Wait-Marken (WAITMC) realisiert werden.
Maschinenhersteller
Die Anzahl von globalen Basisframes wird über Maschinendaten projektiert siehe
/FB1/ Funktionshandbuch Grundfunktionen; Achsen, Koordinatensysteme, Frames (K2).
NCU-globale Einstellbare Frames $P_UIFR[n]
Alle einstellbaren Frames G500, G54...G599 können entweder NCU-global oder
kanalspezifisch projektiert werden.
Maschinenhersteller
Alle einstellbaren Frames können mit Hilfe eines Maschinendatums
$MN_MM_NUM_GLOBAL_USER_FRAMES zu globalen Frames umprojektiert werden.
Als Achsbezeichner bei den Frame-Programmbefehlen können Kanalachsbezeichner und
Maschinenachsbezeichner verwendet werden. Die Programmierung von
Geometrieachsbezeichnern wird mit einem Alarm abgelehnt.

6.8.1 Kanalspezifische Frames ($P_CHBFR, $P_UBFR)

Funktion
Einstellbare Frames oder Basisframes können
● über das Teileprogramm und
● über BTSS
von der Bedienung z. B. HMI Advanced und von der PLC geschrieben und gelesen werden.
Die Feinverschiebung ist auch für die globalen Frames möglich. Die Unterdrückung von
globalen Frames erfolgt ebenso, wie bei kanalspezifischen Frames über G53, G153, SUPA
und G500.
Maschinenhersteller
Über das MD28081 MM_NUM_BASE_FRAMES kann die Anzahl der Basisframes im Kanal
projektiert werden. Die Standardkonfiguration ist so ausgelegt, dass es mindestens ein
Basisframe pro Kanal gibt. Maximal sind 8 Basisframes pro Kanal möglich. Zusätzlich zu den
8 Basisframes im Kanal kann es noch 8 NCU-globale Basisframes geben.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-23
Frames
6.8 NCU-globale Frames

Kanalspezifische Frames
$P_CHBFR[n]
Über die Systemvariable $P_CHBFR[n] können die Basisframes gelesen und geschrieben
werden. Beim Schreiben eines Basisframes wird der verkettete Gesamt-Basisframe nicht
aktiviert, sondern die Aktivierung erfolgt erst mit der Ausführung einer G500, G54...G599-
Anweisung. Die Variable dient vorwiegend als Speicher für Schreibvorgänge auf das
Basisframe von HMI oder PLC. Diese Frame-Variablen werden über die Datensicherung
gesichert.
Erster Basisframe im Kanal
Ein Schreiben auf die vordefinierte Variable $P_UBFR aktiviert den Basisframe mit dem
Feldindex 0 nicht gleichzeitig, sondern die Aktivierung erfolgt erst mit der Ausführung einer
G500, G54...G599-Anweisung. Die Variable kann auch im Programm geschrieben und
gelesen werden.
$P_UBFR
$P_UBFR ist identisch mit $P_CHBFR[0]. Standardmäßig gibt es immer einen Basisframe
im Kanal, so dass die Systemvariable kompatibel zu älteren Ständen ist. Gibt es kein
kanalspezifisches Basisframe, wird beim Schreiben oder Lesen der Alarm "Frame:
Anweisung unzulässig" ausgegeben.

Arbeitsvorbereitung
6-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.8 NCU-globale Frames

6.8.2 Im Kanal wirksame Frames

Funktion
Im Kanal wirksame Frames werden vom Teileprogramm über die betreffenden
Systemvariablen dieser Frames eingegeben. Hierzu gehören auch Systemframes. Über
diese Systemvariablen kann im Teileprogramm das aktuelle Systemframe gelesen und
geschrieben werden.

Aktuelle im Kanal wirksame Frames


Übersicht

Aktuelle Systemframes für:


$P_PARTFRAME TCARR und PAROT
$P_SETFRAME Istwertsetzen und Ankratzen
$P_EXTFRAME Externe Nullpunktverschiebung
$P_NCBFRAME[n] Aktuelle NCU-globale Basisframes
$P_CHBFRAME[n] Aktuelle Kanal-Basisframes
$P_BFRAME Aktueller 1. Basisframe im Kanal
$P_ACTBFRAME Gesamt-Basisframe
$P_CHBFRMASK und $P_NCBFRMASK Gesamt-Basisframe
$P_IFRAME Aktueller einstellbarer Frame
Aktuelle Systemframes für:
$P_TOOLFRAME TOROT und TOFRAME
$P_WPFRAME Werkstückbezugspunkte
$P_TRAFRAME Transformationen
$P_PFRAME Aktueller programmierbarer Frame
Aktuelles Systemframe für:
$P_CYCFRAME Zyklen
P_ACTFRAME Aktueller Gesamtframe
FRAME-Kettung Aktuelles Frame setzt sich aus dem
Gesamt-Basisframe zusammen

$P_NCBFRAME[n] Aktuelle NCU-globale Basisframes


Über die Systemvariable $P_NCBFRAME[n] können die aktuellen globalen Basisframe-
Feldelemente gelesen und geschrieben werden. Das resultierende Gesamt-Basisframe wird
durch den Schreibvorgang im Kanal eingerechnet.
Der geänderte Frame wird nur in dem Kanal, in dem der Frame programmiert wurde, aktiv.
Soll der Frame für alle Kanäle einer NCU geändert werden, muss gleichzeitig $P_NCBFR[n]
und $P_NCBFRAME[n] beschrieben werden. Die anderen Kanäle müssen dann noch den
Frame mit z. B. G54 aktivieren. Beim Schreiben eines Basisframes wird der Gesamt-
Basisframe neu berechnet.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-25
Frames
6.8 NCU-globale Frames

$P_CHBFRAME[n] Aktuelle Kanal-Basisframes


Über die Systemvariable $P_CHBFRAME[n] können die aktuellen Kanal-Basisframe-
Feldelemente gelesen und geschrieben werden. Der resultierende Gesamt-Basisframe wird
durch den Schreibvorgang im Kanal eingerechnet. Beim Schreiben eines Basisframes wird
der Gesamt-Basisframe neu berechnet.
$P_BFRAME Aktueller 1. Basisframe im Kanal
Über die vordefinierte Framevariable $P_BFRAME kann der aktuelle Basisframe mit dem
Feldindex 0, der im Kanal gültig ist, im Teileprogramm gelesen und geschrieben werden. Der
geschriebene Basisframe wird sofort eingerechnet.
$P_BFRAME ist identisch mit $P_CHBFRAME[0]. Die Systemvariable hat standardmäßig
immer einen gültigen Wert. Gibt es kein kanalspezifisches Basisframe, wird beim Schreiben
oder Lesen der Alarm "Frame: Anweisung unzulässig" ausgegeben.
$P_ACTBFRAME Gesamt-Basisframe
Die Variable $P_ACTFRAME ermittelt das verkettete Gesamt-Basisframe. Die Variable ist
nur lesbar.
$P_ACTFRAME entspricht
$P_NCBFRAME[0] : ... : $P_NCBFRAME[n] : $P_CHBFRAME[0] : ... :
$P_CHBFRAME[n].

< %.6 < < %16

3B$&7%)5$0(

%16
; %16

SURMHNWLHUEDU¾EHU
3B&+%)5$0(>Q@Q0&B00B180B%$6(B)5$0(6

3B&+%)5$0(>@ 3B%)5$0(

SURMHNWLHUEDU¾EHU
3B1&%)5$0(>Q@Q01B00B180B*/2%$/B%$6(B)5$0(6
;

3B1&%)5$0(>@
; %.6
%.6 %16 %DVLVQXOOSXQNWV\VWHP
%.6 %DVLVNRRUGLQDWHQV\VWHP
3$&7%)5$0( 3B1&%)5$0(>@3B1&%)5$0(>Q@3B&+%)5$0(>@3B&+%)5$0(>Q@

$P_CHBFRMASK und $P_NCBFRMASK Gesamt-Basisframe


Über die Systemvariable $P_CHBFRMASK und $P_NCBFRMASK kann der Anwender
auswählen, welche Basisframes er in die Berechnung des "Gesamt"-Basisframes mit
einbeziehen möchte. Die Variablen können nur im Programm programmiert werden und über
BTSS gelesen werden. Der Wert der Variablen wird als Bitmaske interpretiert und gibt an,
welches Basisframe-Feldelement von $P_ACTFRAME in die Berechnung einfließt.
Mit $P_CHBFRMASK kann vorgegeben werden, welche kanalspezifischen Basisframes, und
mit $P_NCBFRMASK, welche NCU-globalen Basisframes eingerechnet werden.

Arbeitsvorbereitung
6-26 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.8 NCU-globale Frames

Mit der Programmierung der Variablen wird der Gesamt-Basisframe und der Gesamt-Frame
neu berechnet. Nach Reset und in der Grundeinstellung ist der Wert von
$P_CHBFRMASK = $MC_CHBFRAME_RESET_MASK und
$P_NCBFRMASK = $MC_CHBFRAME_RESET_MASK.
z. B.
$P_NCBFRMASK = 'H81' ;$P_NCBFRAME[0] : $P_NCBFRAME[7]
$P_CHBFRMASK = 'H11' ;$P_CHBFRAME[0] : $P_CHBFRAME[4]
$P_IFRAME Aktueller einstellbarer Frame
Über die vordefinierte Framevariable $P_IFRAME kann der aktuelle einstellbare Frame,
welcher im Kanal gültig ist, im Teileprogramm gelesen und geschrieben werden. Der
geschriebene einstellbare Frame wird sofort eingerechnet.
Bei NCU-globalen einstellbaren Frames wirkt der geänderte Frame nur in dem Kanal, in dem
der Frame programmiert wurde. Soll der Frame für alle Kanäle einer NCU geändert werden,
muss gleichzeitig $P_UIFR[n] und $P_IFRAME beschrieben werden. Die anderen
Kanäle müssen dann noch den entsprechenden Frame mit z. B. G54 aktivieren.
$P_PFRAME Aktueller programmierbarer Frame
$P_PFRAME ist der programmierbare Frame, der sich aus der Programmierung von
TRANS/ATRANS, G58/G59, ROT/AROT, SCALE/ASCALE, MIRROR/AMIRROR bzw. aus
der Zuweisung von CTRANS, CROT, CMIRROR, CSCALE an den programmierbaren
FRAME ergibt.
Aktuelle, programmierbare Framevariable, die den Bezug zwischen dem Einstellbaren
● Nullpunktsystem (ENS) und dem
● Werkstückkoordinatensystem (WKS)
herstellt.
P_ACTFRAME Aktueller Gesamtframe
Der aktuelle resultierende Gesamtframe $P_ACTFRAME ergibt sich nun als Verkettung aller
Basisframes, dem aktuellen einstellbaren Frame und dem programmierbaren Frame. Der
aktuelle Frame wird immer dann aktualisiert, wenn sich ein Frameanteil ändert.
$P_ACTFRAME entspricht
$P_PARTFRAME : $P_SETFRAME : $P_EXTFRAME : $P_ACTBFRAME : $P_IFRAME :
$P_TOOLFRAME : $P_WPFRAME : $P_TRAFRAME : $P_PFRAME : $P_CYCFRAME

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-27
Frames
6.8 NCU-globale Frames

'DWHQKDOWXQJVIUDPHV (LQJDEH¾EHU3URJUDPP]% (LQJDEH¾EHU3URJUDPP]%


3B&+%)5 &75$16 = 3B1&%)5 &75$16 ; 3B8,)5>Q@ &75$16 ;

3B75$)5 (LQJDEH (LQJDEH


.DQDOVSH]LILVFKH ¾EHU+0,
6\VWHPIUDPHV 3B&<&)5 ¾EHU+0,
3B:3)5
3B722/)5
3B3$57)5
3B&+%)5>Q@ 3B1&%)5>Q@
3B(;7)5

3B6(7)5 .DQDOVSH]LILVFKH 1&8JOREDOH 3B8,)5>Q@


1&8%DVLVIUDPHV  )UDPHV

DNWLYLHUW¾EHU DNWLYLHUW¾EHU
*** ***

*HVDPWIUDPH
(LQJDEH¾EHU3URJUDPP]%
$NWLYHU*HVDPWIUDPH 3B1&%)5$0(>@ &75$16 ;

3B$&7)5$0( 3B3$57)5$0(  6(7)5$0(  3B(;7)5$0(  3B$&7%)5$0(  3B,)5$0( 

3B722/)5$0(  3B:3)5$0( 
 3B75$)5$0(  3B3)5$0(  3B&<&)5$0(

(LQJDEH¾EHU3URJUDPP]% (LQJDEH¾EHU3URJUDPP]%
3B3)5$0( &75$16 ; 3B,)5$0( &75$16 ;
75$16;
E]Z

Frame-Kettung
Der aktuelle Frame setzt sich aus dem Gesamt-Basisframe, dem einstellbaren Frame, dem
Systemframe und dem programmierbaren Frame gemäß oben angegebenen aktuellen
Gesamtframe zusammen.

Arbeitsvorbereitung
6-28 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Frames
6.8 NCU-globale Frames

)UDPHNHWWH

:.6
)UDPHI¾U=\NOHQSURJUDPPLHU
EDUHV)UDPH7UDQVIRUPDWLRQHQ
(16
6\VWHPIUDPHI¾U72527
72)5$0( :HUNVW¾FNH

**HLQVWHOOEDUHV)UDPH
NDQDVSH]RGHU1&8JREDO
%16
9HUNHWWHWHV)HOGYRQ%DVLVIUDPHV
NDQDOVSH]XQGRGHU1&8JOREDO

9HUNHWWHWH6\VWHPIUDPHVI¾U3$527,VWZHUWVHW]HQ
$QNUDW]HQH[W1XOOSXQNWYHUVFKLHEXQJ

+DQGUDG '5) 9HUVFKLHEXQJ¾EHUODJHUWH%HZHJXQJ


>H[WHUQH1XOOSXQNWYHUVFKLHEXQJ@
%.6

NLQHPDWLVFKH7UDQVIRUPDWLRQ
0.6

5HIHUHQ]SXQNWYHUVFKLHEXQJ

0.6 0DVFKLQHQNRRUGLQDWHQV\VWHP %.6 %DVLVNRRUGLQDWHQV\VWHP :.6 :HUNVW¾FNNRRUGLQDWHQV\VWHP


%16 %DVLVQXOOSXQNWV\VWHP (16 (LQVWHOOEDUHV1XOOSXQNWV\VWHP


Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 6-29
Frames
6.8 NCU-globale Frames

Arbeitsvorbereitung
6-30 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen 7
7.1 7.1 Allgemeine Programmierung der Transformationsarten

Allgemeine Funktion
Zur Anpassung der Steuerung an verschiedene Maschinenkinematiken besteht die Auswahl
Transformationsarten mit geeigneten Parametern zu programmieren. Über diese Parameter
kann für die ausgewählte Transformation sowohl die Orientierung des Werkzeugs im Raum
als auch die Orientierungsbewegungen der Rundachsen entsprechend vereinbart werden.
Bei den Drei-, Vier- und Fünf-Achs-Transformationen beziehen sich die programmierten,
Positionsangaben immer auf die Spitze des Werkzeugs, welches orthogonal zur im Raum
befindlichen Bearbeitungsfläche nachgeführt wird. Die kartesischen Koordinaten werden
vom Basiskoordinatensystem ins Maschinenkoordinatensystem umgerechnet und beziehen
sich auf die Geometrieachsen. Diese beschreiben den Arbeitspunkt. Virtuelle Rundachsen
beschreiben die Orientierungen des Werkzeugs im Raum und werden mit TRAORI
programmiert.
Bei der kinematischen Transformation können Positionen im kartesischen
Koordinatensystem programmiert werden. Die Steuerung transformiert die mit TRANSMIT,
TRACYL und TRAANG programmierten Verfahrbewegungen des kartesischen
Koordinatensystems auf die Verfahrbewegungen der realen Maschinenachsen.

Programmierung
Drei-, Vier- und Fünf-Achs-Transformationen TRAORI
Die vereinbarte Orientierungstransformation wird mit dem Befehl TRAORI und den drei
möglichen Parametern für Trafonummer, Orientierungsvektor und Rundachsoffsets aktiviert.
TRAORI(Trafonummer, Orientierungsvektor, Rundachsoffsets)
Kinematische Transformationen
Zu den Kinematischen Transformationengehören die vereinbarten Transformationen
TRANSMIT(Trafonummer)
TRACYL(Arbeitsdurchmesser, Trafonummer)
TRAANG(Winkel der schräg stehenden Achse, Trafonummer)
Aktive Transformation ausschalten
Mit TRAFOOF kann die gerade aktive Transformation ausgeschaltet werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-1
Transformationen
7.1 Allgemeine Programmierung der Transformationsarten

Orientierungstransformation
Drei-, Vier- und Fünf- Achs-Transformationen TRAORI
Zur optimalen Bearbeitung räumlich geformter Flächen im Arbeitsraum der Maschine,
benötigen Werkzeugmaschinen außer den drei Linearachsen X, Y und Z noch zusätzliche
Achsen. Die zusätzlichen Achsen beschreiben die Orientierung im Raum und werden
nachfolgend Orientierungsachsen genannt. Sie stehen als Drehachsen bei vier
Maschinentypen mit verschiedener Kinematik zur Verfügung.
1. Zweiachsen-Schwenkkopf, z. B. Kardanischer Werkzeugkopf mit einer Rundachse
parallel zu einer Linearachse bei festem Werkzeugtisch.
2. Zweiachsen-Drehtisch, z. B. fester Schwenkkopf mit drehbarem Werkzeugtisch um zwei
Achsen.
3. Einachs-Schwenkkopf und Einachs-Drehtisch, z. B. ein drehbarer Schwenkkopf mit
gedrehtem Werkzeug bei drehbarem Werkzeugtisch um eine Achse.
4. Zweiachsen-Schwenkkopf und Einachs-Drehtisch, z. B. bei drehbarem Werkzeugtisch
um eine Achse und ein drehbarer Schwenkkopf mit drehbarem Werkzeug um sich selbst.
Die 3- und 4-Achs-Transformationen sind Sonderformen der 5-Achs-Transformation und
werden analog zu den 5-Achs-Transformationen programmiert.
Die "Generische 3-/4-/5-/6-Achs-Transformation" deckt mit ihrem Funktionsumfang für
rechtwinklig angeordnete Rundachsen sowie die Transformationen für den Kardanischen
Fräskopf ab und kann wie jede andere Orientierungstransformation auch für diese vier
Maschinentypen mit TRAORI aktiviert werden. Bei der generischen 5/6-Achs-
Transformationhat die Werkzeugorientierung einen weiteren dritten Freiheitsgrad, bei dem
zur Werkzeugrichtung beliebig im Raum, das Werkzeug um die eigene Achse gedreht
werden kann.
Literatur: /FB3/ Funktionshandbuch Sonderfunktionen; 3- bis 5-Achstransformation (F2)

Kinematikunabhängige Grundstellung der Werkzeugorientierung


ORIRESET
Ist mit TRAORI eine Orientierungstransformation aktiv, dann können mit ORIRESET die
Grundstellungen von bis zu 3 Orientierungsachsen mit optionalen Parametern A, B, C
angegeben werden. Die Zuordnung der Reihenfolge der programmierten Parameter zu den
Rundachsen erfolgt gemäß der durch die Transformation festgelegten Reihenfolge der
Orientierungsachsen. Die Programmierung von ORIRESET(A, B, C) bewirkt, dass die
Orientierungsachsen linear und synchron von ihrer momentanen Position zu der
angegebenen Grundstellungsposition fahren.

Kinematische Transformationen
TRANSMIT und TRACYL
Bei Fräsbearbeitungen an Drehmaschinen kann für die vereinbarte Transformation entweder
1. eine stirnseitige Bearbeitung in der Drehaufspannung mit TRANSMIT oder
2. eine Bearbeitung von beliebig verlaufenden Nuten an zylindrischen Körpern mit TRACYL
programmiert werden.

Arbeitsvorbereitung
7-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.1 Allgemeine Programmierung der Transformationsarten

TRAANG
Soll die Zustellachse z. B. für die Technologie Schleifen auch schräg zustellbar sein, so kann
mit TRAANG für die vereinbarte Transformation ein parametrierbarer Winkel programmiert
werden.
Kartesisches PTP-Fahren
Zur kinematischen Transformation gehört auch das "Kartesisches PTP-Fahren" bei dem bis
zu 8 unterschiedliche Gelenkstellungen STAT= programmiert werden können. Die
Positionen werden im kartesischen Koordinatensystem programmiert, wobei die Bewegung
der Maschine in Maschinenkoordinaten erfolgt.
Literatur:
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Kinematische Transformation (M1)

Verkettete Transformationen
Es können jeweils zwei Transformationen hintereinander geschaltet werden. Bei der
hierdurch verketteten zweiten Transformation werden die Bewegungsanteile der Achsen aus
der ersten Transformation übernommen.
Als erste Transformation sind möglich:
● Orientierungstransformation TRAORI
● Polartransformation TRANSMIT
● Zylindertransformation TRACYL
● Transformation Schräge Achse TRAANG
Die zweite Transformation muss Schräge Achse TRAANG sein

7.1.1 Orientierungsbewegungen bei den Transformationen

Verfahrbewegungen und Orientierungsbewegungen


Die Verfahrbewegungen der programmierbaren Orientierungen hängen primär vom
Maschinentyp ab. Bei der Drei-, Vier- und Fünf-Achs-Transformation mit TRAORI
beschreiben die rotatorischen Achsen oder die schwenkbaren Linearachsen die
Orientierungsbewegungen des Werkzeugs.
Änderungen der Positionen der an der Orientierungstransformation beteiligten Rundachsen
führen zu Ausgleichsbewegungen der übrigen Maschinenachsen. Die Position der
Werkzeugspitze bleibt dabei unverändert.
Orientierungsbewegungen des Werkzeugs können über die Rundachsbezeichner A…, B…,
C… der virtuellen Achsen je nach Anwendung entweder durch Angabe von Euler- bzw.
RPY-Winkeln oder Richtungs- bzw. Flächennormalenvektoren, Normierte Vektoren für die
Drehachse eines Kegels oder für die Zwischenorientierung auf einer Kegelmantelfläche
programmiert werden.
Bei der Kinematischen Transformation mit TRANSMIT, TRACYL und TRAANG transformiert
die Steuerung die programmierten Verfahrbewegungen des kartesischen
Koordinatensystems auf die Verfahrbewegungen der realen Maschinenachsen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-3
Transformationen
7.1 Allgemeine Programmierung der Transformationsarten

Maschinenkinematik bei Drei-, Vier- und Fünf-Achs-Transformation TRAORI


Es kann entweder das Werkzeug oder der Werkzeugtisch mit bis zu zwei Rundachsen
drehbar sein. Eine Kombination von jeweils einachsigem Schwenkkopf und Drehtisch ist
auch möglich.

6FKZHQNNRSI 6FKZHQNNRSI 6FKZHQNNRSI


= GUHKEDUXP GUHKEDUXP IHVW
;$FKVHXQG <$FKVH
=$FKVH %
&
<
:HUN]HXJWLVFK
:HUN]HXJWLVFK GUHKEDUXP
$ GUHKEDUXP ;$FKVHXQG
;
=$FKVH =$FKVH
= =
& &
<

:HUN]HXJWLVFKIHVW
$
;
JHGUHKWHV:HUN]HXJ JHGUHKWHV:HUN]HXJ JHGUHKWHV:HUNVW¾FN
JHGUHKWHV:HUNVW¾FN

0DVFKLQHQW\SPLW 0DVFKLQHQW\SPLW 0DVFKLQHQW\SPLW


GHU$FKVIROJH&$ GHU$FKVIROJH%& GHU$FKVIROJH$&

Maschinentyp Programmierung der Orientierung


Drei-Achs-Transformation Programmierung der Werkzeugorientierung nur in der Ebene,
Maschinentypen 1 und 2 die senkrecht zu der rotatorischen Achse ist. Es existieren
zwei translatorischen Achsen (Linearachsen) und
einer rotatorischen Achse (Rundachse).
Vier-Achs-Transformation Programmierung der Werkzeugorientierung nur in der Ebene,
Maschinentypen 1 und 2 die senkrecht zu der rotatorischen Achse ist. Es existieren
drei translatorischen Achsen (Linearachsen) und
einer rotatorischen Achse (Rundachse).
Fünf-Achs-Transformation Programmierung der Orientierungstransformation. Kinematik
Maschinentypen 3 mit
Einachs-Schwenkkopf und drei Linearachsen und zwei orthogonalen Rundachsen.
Einachs-Drehtisch Die Rundachsen sind parallel zu zwei der drei Linearachsen.
Die erste Rundachse wird von zwei kartesischen
Linearachsen bewegt. Sie dreht die dritte Linearachse mit
dem Werkzeug. Die zweite Rundachse dreht das Werkstück.

Arbeitsvorbereitung
7-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.1 Allgemeine Programmierung der Transformationsarten

Generische 5/6-AchsTransformationen

Maschinentyp Programmierung der Orientierungstransformation


Generische Fünf-/Sechs- Programmierung der Orientierungstransformation. Kinematik
Achs Transformation mit
Maschinentypen 4 drei Linearachsen und drei orthogonalen Rundachsen.
Zweiachs-Schwenkkopf Die Rundachsen sind parallel zu zwei der drei Linearachsen.
mit drehbarem Werkzeug Die erste Rundachse wird von zwei kartesischen
um sich selbst und Linearachsen bewegt. Sie dreht die dritte Linearachse mit
Einachs-Drehtisch dem Werkzeug. Die zweite Rundachse dreht das Werkstück.
Die Grundorientierung des Werkzeugs kann durch eine
zusätzliche Drehung um sich selbst mit dem Drehwinkel
THETA programmiert werden.
Beim Aufruf der "Generischen Drei-, Vier- und Fünf-/Sechs-Achs Transformation" kann
zusätzlich die Grundorientierung des Werkzeugs übergeben werden. Es gelten die
Einschränkungen bezüglich der Richtungen der Rundachsen nicht mehr. Wenn die
Rundachsen nicht exakt senkrecht aufeinander stehen oder vorhandene Rundachsen nicht
exakt parallel zu den Linearachsen stehen, kann die "Generische Fünf-/Sechs-Achs
Transformation" bessere Ergebnisse der Werkzeugorientierung liefern.

Kinematische Transformationen TRANSMIT, TRACYL und TRAANG


Für Fräsbearbeitungen an Drehmaschinen oder einer schräg zustellbaren Achse beim
Schleifen gelten abhängig von der Transformation im Standardfall folgende
Achsanordnungen:

TRANSMIT Aktivierung der Polar-Transformation


stirnseitige Bearbeitung in eine Rundachse
der Drehaufspannung eine Zustellachse senkrecht zur Drehachse
eine Längsachse parallel zur Drehachse

TRACYL Aktivierung der Zylindermanteltransformation


Bearbeitung von beliebig eine Rundachse
verlaufenden Nuten an eine Zustellachse senkrecht zur Drehachse
den zylindrischen Körper eine Längsachse parallel zur Drehachse

TRAANG Aktivierung der Transformation Schräge Achse


Bearbeitung mit schräger eine Rundachse
Zustellachse eine Zustellachse mit parametrierbaren Winkel
eine Längsachse parallel zur Drehachse

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-5
Transformationen
7.1 Allgemeine Programmierung der Transformationsarten

Kartesisches PTP-Fahren
Die Bewegung der Maschine erfolgt in Maschinenkoordinaten und wird programmiert mit:

TRAORI Aktivierung der Transformation


PTP Punkt zu Punkt Position im kartesischen Koordinatensystem (MKS) anfahren
fahren
CP Bahnbewegung der kartesischen Achsen im (BKS)
STAT Stellung der Gelenke ist abhängig von der Transformation
TU Um welchen Winkel die Achsen auf den kürzesten Weg
verfahren

PTP-Fahren bei generischer 5/6-AchsTransformation


Die Bewegung der Maschine erfolgt in Maschinenkoordinaten und die Werkzeugorientierung
kann sowohl mit Rundachspositionen als auch mit von der Kinematik unabhängigen
Vektoren Euler bzw. RPY-Winkel oder den Richtungsvektoren programmiert werden.
Dabei sind Rundachsinterpolation, Vektoreninterpolation mit Großkreisinterpolation oder
Interpolation des Orientierungsvektors auf einer Kegelmantelfläche möglich.

Beispiel Drei-, bis Fünf-Achs-Transformation bei einen Kardanischen Fräskopf


Die Werkzeugmaschine hat mindestens 5 Achsen, davon
● Drei translatorische Achsen für geradlinige Bewegungen, die den Arbeitspunkt an jede
beliebige Position im Arbeitsaum bewegen.
● Zwei rotatorische Schwenkachsen, die unter einem projektierbaren Winkel (meist 45
Grad) angeordnet sind, ermöglichen dem Werkzeug Orientierungen im Raum
einzunehmen, die sich bei 45 Grad Anordnung auf eine Halbkugel beschränken.

Arbeitsvorbereitung
7-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.1 Allgemeine Programmierung der Transformationsarten

7.1.2 Übersicht der Orientierungstransformation TRAORI

Mögliche Programmierungsarten im Zusammenhang mit TRAORI

Maschinentyp Programmierung bei aktiver Transformation TRAORI


Maschinentypen 1, 2 oder Achsfolge der Orientierungsachsen und die
3 Zweiachs-Schwenkkopf Orientierungsrichtung des Werkzeugs ist und entweder
oder Zweiachs-Drehtisch maschinenbezogen projektierbar über Maschinendaten
oder eine Kombination von abhängig von der Maschinenkinemtik oder
jeweils einachsigem werkstückbezogen mit programmierbarer Orientierung
Schwenkkopf und unabhängig von der Maschinenkinemtik
Drehtisch. Die Drehrichtungen der Orientierungsachsen im
Bezugssystem wird programmiert mit:
- ORIMKS Bezugssystem = Maschinenkoordinatensystem
- ORIWKS Bezugssystem = Werkstückkoordinatensystem
Die Grundeinstellung ist ORIWKS.
Programmierung der Orientierungsachsen mit:
A, B, C der Maschinenachspositionen direkt
A2, B2, C2 Winkelprogrammierung virtueller Achsen mit
- ORIEULER über Euler-Winkel (Standard)
- ORIRPY über RPY-Winkel
- ORIVIRT1 über virtuelle Orientierungsachsen 1. Definition
- ORIVIRT2 über virtuelle Orientierungsachsen 2. Definition
mit Unterscheidung der Interpolationsart:
lineare Interpolation
- ORIAXES von Orientierungsachsen oder Maschinenachsen
Großkreisinterpolation (Interpolation des
Orientierungsvektors)
- ORIVECT von Orientierungsachsen
Programmierung der Orientierungsachsen durch Angabe
A3, B3, C3 der Vektorkomponenten (Richtung-
/Flächennormale)
PO[XH]=(xe, x2, x3, x4, x5) Orientierungspolynome bis
[Link]
PO[YH]=(ye, y2, y3, y4, y5) Orientierungspolynome bis
[Link]
PO[ZH]=(ze, z2, z3, z4, z5) Orientierungspolynome bis
[Link]
- ORIPATHS Glättung des Orientierungsverlaufs mit
A8, B8, C8 Umorientierungsphase des Werkzeugs entspricht:
Richtung und Weglänge des Werkzeugs bei der
Abhebebewegung

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-7
Transformationen
7.1 Allgemeine Programmierung der Transformationsarten

Maschinentyp Programmierung bei aktiver Transformation TRAORI


Programmierung der resultierenden Werkzeugorientierung
A4, B4, C4 des Flächennormalvektors am Satzanfang
A5, B5, C5 des Flächennormalvektors am Satzende
LEAD Voreilwinkel für die Werkzeugorientierung
TILT Seitwärtswinkel für die Werkzeugorientierung
Interpolation des Orientierungsvektors auf einer
Kegelmantelfläche
Orientierungsänderungen auf einer beliebig im Raum
befindlichen
Kegelmantelfläche durch Interpolation:
- ORIPLANE in der Ebene (Großreisinterpolation)
- ORICONCW auf einer Kegelmantelfläche im Uhrzeigersinn
- ORICONCCW auf einer Kegelmantelfläche gegen
Uhrzeigersinn
A6, B6, C6 Richtungsvektors (Drehachse des Kegels)
-OICONIO Interpolation auf einer Kegelmantelfläche mit:
A7, B7, C7 Zwischenvektoren (Start- und Endorientierung)
oder
- ORICONTO auf einer Kegelmantelfläche tangentialer
Übergang
Orientierungsänderungen bezogen auf eine Bahn mit
- ORICURVE Vorgabe der Bewegung zweier Kontaktpunkte
über

Maschinentypen 1 und 3 Programmierung der Drehungen der Werkzeugorientierung


mit
LEAD Voreilwinkel Winkel relativ zum Flächennormalenvektor
PO[PHI] Programmierung eines Polynoms bis [Link]
TILT Seitwärtswinkel Drehung um Bahntangente (Z-Richtung)
Weitere Maschinentypen PO[PSI] Programmierung eines Polynoms bis [Link]
mit zusätzlicher Drehung THETA Drehwinkel (Drehung um die Werkzeugrichtung in Z)
des Werkzeugs um sich THETA= Wert der am Satzende erreicht wird
selbst erfordern eine 3. THETA=AC(...) Satzweise auf Maßangabe absolut
Rundachse umschalten
THETA=IC(...) Satzweise auf Kettenmaßangabe umschalten
THETA=Θe Programmierter Winkel G90/G91 interpolieren
Orientierungstransformatio PO[THT]=(..) Programmierung eines Polynoms bis [Link]
n, wie z.B. generische 6- Programmierung des Drehvektors
Achs-Transformation. - ORIROTA Drehung absolut
Drehungen des - ORIROTR relativer Drehvektor
Orientierungsvektors. - ORIROTT tangentialer Drehvektor
Bahnrelative Orientierung Orientierungsänderungen relativ zur Bahn mit
für - ORIPATH Werkzeugorientierung bezogen auf die Bahn
Orientierungsänderungen - ORIPATHS zusätzlich bei einen Knick im
relativ zur Bahn oder Orientierungsverlauf
Drehung des Drehvektors Programmierung des Drehvektors
tangential zur Bahn - ORIROTC tangentialer Drehvektor, Drehung zur
Bahntangente

Arbeitsvorbereitung
7-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

7.2 7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

7.2.1 Allgemeine Zusammenhänge Kardanischer Werkzeugkopf

Funktion
Um optimale Schnittbedingungen beim Bearbeiten räumlich gekrümmter Flächen zu
erzielen, muss der Anstellwinkel des Werkzeugs veränderbar sein.

:HUN]HXJDFKVH

Mit welcher Maschinenkonstruktion dies erreicht wird, ist in den Achsdaten hinterlegt.

5-Achs-Transformation
Kardanischer Werkzeugkopf
Hier legen drei Linearachsen (X, Y, Z) und zwei Orientierungsachsen (C, A) den
Anstellwinkel und Arbeitspunkt des Werkzeugs fest. Eine der beiden Orientierungsachsen ist
als Schrägachse angelegt, hier im Beispiel A' - in vielen Fällen als 45°-Anordnung.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-9
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)


$
= <
&

;
NDUGDQLVFKHU:HUN]HXJNRSI9DULDQWH

In den hier gezeigten Beispielen sehen Sie die Anordnungen am Beispiel mit dem
Kardanischen Werkzeugkopf der Maschinenkinematik CA!
Maschinenhersteller
Die Achsfolge der Orientierungsachsen und die Orientierungsrichtung des Werkzeugs kann
abhängig von der Maschinenkinematik über Maschinendaten eingestellt werden.


$

&

NDUGDQLVFKHU:HUN]HXJNRSI9DULDQWH

In diesem Beispiel liegt A' unter dem Winkel φ zur X-Achse

Arbeitsvorbereitung
7-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Allgemein gelten folgende mögliche Zusammenhänge:

A' liegt unter dem Winkel φ zur X-Achse


B' liegt unter dem Winkel φ zur Y-Achse
C' liegt unter dem Winkel φ zur Z-Achse
Der Winkel φ kann im Bereich 0° bis +89° über Maschinendaten projektiert werden.
Mit schwenkbarer Linearachse
Hierbei handelt es sich um eine Anordnung mit bewegtem Werkstück und bewegtem
Werkzeug. Die Kinematik setzt sich aus drei Linearachsen (X, Y, Z) und zwei rechtwinklig
angeordneten Drehachsen zusammen. Die erste Rundachse wird z. B. über einen
Kreuzschlitten von zwei Linearachsen bewegt, das Werkzeug steht parallel zur dritten
Linearachse. Die zweite Drehachse dreht das Werkstück. Die dritte Linearachse
(Schwenkachse) liegt in der Ebene des Kreuzschlittens.

% <

Die Achsfolge der rotatorischen Achsen und die Orientierungsrichtung des Werkzeugs kann
abhängig von der Maschinenkinematik über Maschinendaten eingestellt werden.
Es gelten folgende mögliche Zusammenhänge:

Achsen: Achsfolgen:
1. Rundachse AABBCC
2. Rundachse BCACAB
Geschwenkte Linearachse ZYZXYX
Weitere Erläuterungen zu konfigurierbaren Achsfolgen für die Orientierungsrichtung des
Werkzeugs siehe
Literatur: /FB3/ Funktionshandbuch Sonderfunktionen; 3- bis 5-Achs-Transformationen (F2),
Kapitel Kardanischer Fräskopf, "Parametrierung".

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-11
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

7.2.2 Drei, Vier, und Fünf- Achs-Transformation (TRAORI)

Funktion
Der Anwender kann zwei bzw. drei translatorische Achsen und eine rotatorische Achse
projektieren. Die Transformationen gehen davon aus, dass die rotatorische Achse
orthogonal auf der Orientierungsebene steht.
Die Orientierung des Werkzeugs ist nur in der Ebene, die senkrecht zu der rotatorischen
Achse ist, möglich. Die Transformation unterstützt die Maschinentypen mit beweglichem
Werkzeug und beweglichem Werkstück.
Die Projektierung und Programmierung der Drei- und Vier-Achs-Transformationen sind
analog zu den Fünf-Achs-Transformationen.
Literatur:
/FB3/ Funktionshandbuch Sonderfunktionen; 3- bis 5-Achs-Transformationen (F2)

Programmierung
TRAORI(n)
oder
TRAORI(n,X,Y,Z,A,B)
oder
TRAFOOF

Parameter

TRAORI Aktiviert die erste vereinbarte Orientierungstransformation


TRAORI(n) Aktiviert die mit n vereinbarte Orientierungstransformation
n Nummer der Transformation (n = 1 oder 2), TRAORI(1) entspricht
Orientierungstransformation ein
X,Y,Z Komponente des Orientierungsvektors, in die das Werkzeug
zeigt.
A,B Programmierbarer Offset für die Rundachsen
TRAFOOF Transformation ausschalten

Werkzeugorientierung
Abhängig von der gewählten Orientierungsrichtung des Werkzeugs muss im NC-Programm
die aktive Arbeitsebene (G17, G18, G19) so eingestellt werden, dass die
Werkzeuglängenkorrektur in Richtung der Werkzeugorientierung wirkt.

Hinweis
Nach dem Einschalten der Transformation beziehen sich Positionsangaben (X, Y, Z) immer
auf die Spitze des Werkzeugs. Änderung der Positionen der an der Transformation
beteiligten Rundachsen führen zu solchen Ausgleichsbewegungen der übrigen
Maschinenachsen, dass die Position der Werkzeugspitze unverändert bleibt.
Die Orientierungstransformation ist immer von der Werkzeugspitze zur Werkzeugaufnahme
gerichtet.

Arbeitsvorbereitung
7-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Beispiel Generische Transformationen


Die Grundorientierung des Werkzeugs zeigt in:
TRAORI(1,0,0,1) Z-Richtung
TRAORI(1,0,1,0) Y-Richtung
TRAORI(1,0,1,1) Y/Z-Richtung (entspricht Stellung -45°)
Offset für Orientierungsachsen
Bei Aktivierung der Orientierungstransformation kann ein zusätzlicher Offset für
Orientierungsachsen direkt programmiert werden.
Es dürfen Parameter weggelassen werden, wenn bei der Programmierung die richtige
Reihenfolge eingehalten wird.
Beispiel
TRAORI(, , , ,A,B) wenn nur ein einziger Offset eingegeben werden soll.
Alternativ zur direkten Programmierung kann dieser zusätzliche Offset für
Orientierungsachsen auch aus der momentan aktiven Nullpunktverschiebung automatisch
übernommen werden. Die Übernahme wird über Maschinendaten projektiert.

7.2.3 Varianten der Orientierungsprogrammierung und Grundstellung (OTIRESET)

Orientierungsprogrammierung der Werkzeugorientierung bei TRAORI


In Verbindung mit einer programmierbaren Orientierungstransformation TRAORI können
zusätzlich zu den Linearachsen X, Y, Z auch über die Rundachsbezeichner A.., B..., C...
Achspositionen oder virtuelle Achsen mit Winkeln oder Vektorkomponenten programmiert
werden. Für Orientierungs- und Maschinenachsen sind verschiedene Interpolationsarten
möglich. Unabhängig davon, welche Orientierungspolynome PO[Winkel] und Achspolynome
PO[Achse] gerade aktiv sind, können mehrere unterschiedliche Polynomarten wie z.B. G1,
G2, G3, CIP oder POLY programmiert sein.
Die Änderung der Orientierung des Werkzeuges kann auch über Orientierungsvektoren
programmiert werden. Hierbei kann die Endorientierung jedes Satzes entweder durch direkte
Programmierung des Vektors oder durch Programmierung der Rundachspositionen erfolgen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-13
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Hinweis
Varianten der Orientierungsprogrammierung bei Drei- bis Fünf-Achs-Transformationen
Bei der Drei- bis Fünf-Achs-Transformation schließen sich die Varianten
1. A, B, C direkte Angabe der Maschinenachspositionen
2. A2, B2, C2 Winkelprogrammierung virtueller Achsen über Eulerwinkel oder RPY-Winkel
3. A3 ,B3, C3 Angabe der Vektorkomponenten
4. LEAD, TILT Angabe der Voreil- und Seitwärtswinkel bezogen auf die Bahn und
Oberfläche
5. A4, B4, C4 und A5, B5, C5 Flächennormalenvektor am Satzanfang und am Satzende
6. A6, B6, C6 und A7, B7, C7 Interpolation des Orientierungsvektors auf einer
Kegelmantelfläche
7. A8, B8, C8 Umorientierung des Werkzeugs, Richtung und Weglänge der
Abhebebewegung
gegenseitig aus.
Gemischt programmierte Werte werden durch Alarmmeldungen verhindert.

Grundstellung der Werkzeugorientierung ORIRESET


Durch Programmierung von ORIRESET(A, B, C) werden Orientierungsachsen linear und
synchron von ihrer momentanen Position zu der angegebenen Grundstellungsposition
gefahren.
Wird für eine Achse keine Grundstellungsposition programmiert, dann wird definierte
Position aus dem dazugehörigen Maschinendatum $MC_TRAFO5_ROT_AX_OFFSET_1/2
verwendet. Eventuell aktive Frames der Rundachsen werden dabei nicht berücksichtigt.

Hinweis
Nur wenn eine Orientierungstransformation mit TRAORI(...) aktiv ist, kann eine
Grundstellung der Werkzeugorientierung kinematikunabhäng mit ORIRESET(...) ohne Alarm
14101 programmiert werden.

Beispiele

1. Beispiel für Maschinenkinematik CA (Kanalachsnamen C, A)


ORIRESET(90, 45) ;C auf 90 Grad, A auf 45 Grad
ORIRESET(, 30) ;C auf $MC_TRAFO5_ROT_AX_OFFSET_1/2[0], A auf 30 Grad
ORIRESET( ) ;C auf $MC_TRAFO5_ROT_AX_OFFSET_1/2[0],
;A auf $MC_TRAFO5_ROT_AX_OFFSET_1/2[1]
2. Beispiel für Maschinenkinematik CAC (Kanalachsnamen C, A, B)
ORIRESET(90, 45, 90) ;C auf 90 Grad, A auf 45 Grad, B auf 90 Grad
ORIRESET( ) ;C auf $MC_TRAFO5_ROT_AX_OFFSET_1/2[0],
;A auf $MC_TRAFO5_ROT_AX_OFFSET_1/2[1],
;B auf $MC_TRAFO5_ROT_AX_OFFSET_1/2[2]

Arbeitsvorbereitung
7-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Programmierung der Drehungen LEAD, TILT und THETA


Die Drehungen der Werkzeugorientierung werden bei der Drei- bis Fünf-Achs-
Transformation mit den Voreilwinkel LEAD und den Seitwärtswinkel TILT programmiert.
Bei einer Transformation mit dritter Rundachse sind sowohl für die Orientierung mit
Vektorkomponenten als auch mit Angabe der Winkel LEAD, TILT zusätzliche
Programmierungen von C2 (Verdrehungen des Orientierungsvektors) erlaubt.
Mit einer zusätzlichen dritten Rundachse kann die Drehung des Werkzeugs um sich selbst
mit dem Drehwinkel THETA programmiert werden.

7.2.4 Programmierung der Werkzeugorientierung (A..., B..., C..., LEAD, TILT)

Funktion
Für die Programmierung der Orientierung des Werkzeugs gibt es folgende Möglichkeiten:
1. Direkte Programmierung der Bewegung der Rundachsen. Die Orientierungsänderung
erfolgt immer im Basis- bzw. Maschinen-Koordinatensystem. Die Orientierungsachsen
werden als Synchronachsen verfahren.
2. Programmierung in Euler- oder RPY-Winkeln gemäß Winkeldefinition über A2, B2,
C2.
3. Programmierung des Richtungsvektors über A3, B3, C3. Der Richtungsvektor zeigt
von der Werkzeugspitze in Richtung Werkzeugaufnahme.
4. Programmierung des Flächennormalenvektors am Satzanfang mit A4, B4, C4 und am
Statzende mit A5, B5, C5 (Stirnfräsen).
5. Programmierung über Voreilwinkel LEAD und Seitwärtswinkel TILT
6. Programmierung der Drehachse des Kegels als normierter Vektor über A6, B6, C6
oder der Zwischenorientierung auf der Kegelmantelfläche über A7, B7, C7,
siehe Kapitel "Orientierungsprogrammierung entlang einer Kegelmantelfläche
(ORIPLANE, ORICONxx)".
7. Programmierung der Umorientierung, Richtung und Weglänge des Werkzeugs während
der Abhebebewegung über A8, B8, C8,
siehe Kapitel "Glättung des Orientierungsverlaufs (ORIPATHS A8=, B8=, C8=)"

Hinweis
In allen Fällen ist die Orientierungsprogrammierung nur zulässig, wenn eine
Orientierungstransformation eingeschaltet ist.
Vorteil: Diese Programme sind auf jede Maschinenkinematik portierbar.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-15
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Definition der Werkzeugorientierung über G-Code

Hinweis
Maschinenhersteller
Über Maschinendatum kann zwischen Euler- oder RPY-Winkeln umgeschaltet werden. Bei
entsprechenden Maschinendaten Einstellungen ist eine Umschaltung sowohl abhängig als
auch unabhängig vom aktiven G-Code der Gruppe 50 möglich. Folgende
Einstellmöglichkeiten stehen zur Auswahl:
1. Wenn beide Maschinendaten für die Definition der Orientierungsachsen und Definition
der Orientierungswinkel über G-Code auf Null gesetzt sind:
Die mit A2, B2, C2 programmierten Winkel werden abhängig vom Maschinendatum
Winkeldefinition der Orientierungsprogrammierung entweder als Euler- oder RPY-
Winkeln interpretiert.
2. Wenn das Maschinendatum für die Definition der Orientierungsachsen über G-Code auf
Eins gesetzt ist, erfolgt Umschaltung
abhängig vom aktiven G-Code der Gruppe 50:
Die mit A2, B2, C2 programmierten Winkel werden gemäß eines der aktiven G-Codes
ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2, ORIAXPOS und ORIPY2
interpretiert. Die mit den Orientierungsachsen programmierten Werte werden
entsprechend dem aktiven G-Code der Gruppe 50 auch als Orientierungswinkel
interpretiert.
3. Wenn das Maschinendatum für die Definition der Orientierungswinkel über G-Code auf
Eins und das Maschinendatum für die Definition der Orientierungsachsen über G-Code
auf Null gesetzt ist erfolgt Umschaltung
unabhängig vom aktiven G-Code der Gruppe 50:
Die mit A2, B2, C2 programmierten Winkel werden gemäß eines der aktiven G-Codes
ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2 ORIAXPOS und ORIPY2 interpretiert.
Die mit den Orientierungsachsen programmierten Werte werden unabhängig vom aktiven
G-Code der Gruppe 50 immer als Rundachspositionen interpretiert.

Programmierung

G1 X Y Z A B C Programmierung der Bewegung der Rundachsen


G1 X Y Z A2= B2= C2= Programmierung in Eulerwinkeln
G1 X Y Z A3== B3== C3== Programmierung des Richtungsvektors
G1 X Y Z A4== B4== C4== Programmierung des Flächennormalenvektors
am Satzanfang
G1 X Y Z A5== B5== C5== Programmierung des Flächennormalenvektors
am Satzende
LEAD= Voreilwinkel für die Programmierung der
Werkzeugorientierung
TILT= Seitwärtswinkel für die Programmierung der
Werkzeugorientierung

Arbeitsvorbereitung
7-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Parameter

G.... Angabe der Bewegungsart der Rundachsen


X Y Z Angabe der Linearachsen
A B C Angabe der Maschinenachspositionen der
Rundachsen
A2 B2 C2 Winkelprogrammierung (Euler- oder RPY-Winkel)
virtueller Achsen bzw. Orientierungsachsen
A3 B3 C3 Angabe der Vektorkomponenten Richtungsvektors
A4 B4 C4 Angabe z. B. beim Stirnfräsen die Komponente
des Flächennormalenvektors am Satzanfang
A5 B5 C5 Angabe z .B. beim Stirnfräsen die Komponente
des Flächennormalenvektors am Satzende
LEAD Winkel relativ zum Flächennormalenvektor, in
der von Bahntangente und Flächennormalenvektor
aufgespannten Ebene
TILT Winkel in der Ebene, senkrecht zur
Bahntangente relativ zum Flächennormalenvektor

Beispiel Gegenüberstellung ohne und mit 5-Achs-Transformation

RKQH$FKV7UDQVIRUPDWLRQ
PLW$FKV7UDQVIRUPDWLRQ

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-17
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Beschreibung
In der Regel werden 5-Achs-Programme von CAD/CAM-Systemen erzeugt und nicht an der
Steuerung eingegeben. Deshalb wenden sich die folgenden Erklärungen hauptsächlich an
Programmierer von Postprozessoren.
Die Art der Orientierungsprogrammierung wird in der G-Code Gruppe 50 festgelegt:
ORIEULER über Euler-Winkel
ORIRPY über RPY-Winkel (Drehreihenfolge ZYX)
ORIVIRT1 über virtuelle Orientierungsachsen (Definition 1)
ORIVIRT2 über virtuelle Orientierungsachsen (Definition 2)
ORIAXPOS über virtuelle Orientierungsachsen mit Rundachspositionen
ORIPY2 über RPY-Winkel (Drehreihenfolge XYZ)
Maschinenhersteller
Über Maschinendaten können vom Maschinenhersteller verschiedene Varianten definiert
werden. Bitte beachten Sie die Angaben des Maschinenherstellers.

Programmierung in Eulerwinkeln ORIEULER


Die bei der Orientierungsprogrammierung mit A2, B2, C2 programmierten Werte werden
als Eulerwinkel (in Grad) interpretiert.
Der Orientierungsvektor ergibt sich, indem ein Vektor in Z-Richtung zunächst mit A2 um die
Z-Achse, dann mit B2 um die neue X-Achse und zuletzt mit C2 um die neue Z-Achse
gedreht wird.

= =
= < = ;
<

; < <

PLW$ r
XP=$FKVH
JHGUHKW
; ;
*UXQGVWHOOXQJ
=
=
< ;
%
< PLW% r
XPPLWJHGUHKWH
;$FKVH
JHGUHKW
; <

In diesem Fall ist der Wert von C2 (Drehung um neue Z-Achse) bedeutungslos und muss
nicht programmiert werden.

Arbeitsvorbereitung
7-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Programmierung in RPY-Winkeln ORIRPY


Die bei der Orientierungsprogrammierung mit A2, B2, C2 programmierten Werte werden
als RPY-Winkel (in Grad) interpretiert.

Hinweis
Im Gegensatz zur Eulerwinkel-Programmierung haben hier alle drei Werte Einfluss auf den
Orientierungsvektor.
Maschinenhersteller
Bei Winkeldefinition mit Orientierungswinkel über RPY-Winkel gilt für die
Orientierungsachsen mit $MC_ORI_DEF_WITH_G_CODE = 0
Der Orientierungsvektor ergibt sich, indem ein Vektor in Z-Richtung zunächst mit C2 um die
Z-Achse, dann mit B2 um die neue Y-Achse und zuletzt mit A2 um die neue X-Achse
gedreht wird.

= =
= = <

; < %
&
<
; *UXQGVWHOOXQJ
; <
= = <
PLW& r
XP=$FKVH
; JHGUHKW
$ PLW% r
PLW$ r XPPLWJHGUHKWH
XPPLWJHGUHKWH <$FKVHJHGUHKW
;$FKVH
JHGUHKW ; <

Ist das Maschinendatum zur über Definition der Orientierungsachsen über G-Code
$MC_ORI_DEF_WITH_G_CODE = 1 dann gilt:
Der Orientierungsvektor ergibt sich, indem ein Vektor in Z-Richtung zunächst mit A2 um die
Z-Achse, dann mit B2 um die neue Y-Achse und zuletzt mit C2 um die neue X-Achse
gedreht wird.

Programmierung des Richtungsvektors


Die Komponenten des Richtungsvektors werden mit A3, B3, C3 programmiert. Der
Vektor zeigt in Richtung Werkzeugaufnahme; die Länge des Vektors ist dabei ohne
Bedeutung.
Nicht programmierte Vektorkomponenten werden gleich Null gesetzt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-19
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

5LFKWXQJVYHNWRU

& 

<
% 
$ 

Programmierung der Werkzeugorientierung mit LEAD= und TILT=


Die resultierende Werkzeugorientierung wird ermittelt aus:
● Bahntangente
● Flächennormalenvektor
am Satzanfang A4, B4, C4 und am Satzende A5, B6, C5
● Voreilwinkel LEAD
in der von Bahntangente und Flächennormalenvektor aufgespannten Ebene
● Seitwärtswinkel TILT am Satzende
senkrecht zur Bahntangente und relativ zum Flächennormalenvektor
Verhalten bei Innenecken (bei 3D-WZK)
Wenn der Satz an einer Innenecke verkürzt wird, wird die resultierende
Werkzeugorientierung ebenso am Satzende erreicht.
Definition der Werkzeugorientierung mit LEAD= und TILT=

Arbeitsvorbereitung
7-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

/($'
<

7,/7 ;

7.2.5 Stirnfräsen (3D-Fräsen A4, B4, C4, A5, B5, C5)

Funktion
Stirnfräsen dient zur Bearbeitung beliebig gekrümmter Oberflächen.

$
%
& $
%
&

Für diese Art des 3D-Fräsens benötigen Sie die zeilenweise Beschreibung der 3D-Bahnen
auf der Werkstückoberfläche.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-21
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Die Berechnungen werden unter Berücksichtigung der Werkzeugform und


Werkzeugabmessungen üblicherweise im CAM durchgeführt. Die fertig berechneten NC-
Sätze werden dann über Postprozessoren in die Steuerung eingelesen.

Programmierung der Bahnkrümmung


Beschreibung der Flächen
Die Beschreibung der Bahnkrümmung erfolgt über Flächennormalenvektoren mit folgenden
Komponenten:
A4, B4, C4 Startvektor am Satzanfang
A5, B5, C5 Endvektor am Satzende
Steht in einem Satz nur der Startvektor, bleibt der Flächennormalenvektor über den ganzen
Satz konstant. Steht in einem Satz nur der Endvektor, so wird vom Endwert des vorherigen
Satzes über Großkreisinterpolation zum programmierten Endwert interpoliert.
Sind Start- und Endvektor programmiert, so wird zwischen beiden Richtungen ebenfalls über
Großkreisinterpolation interpoliert. Hierdurch lassen sich kontinuierlich glatte Bahnwege
erzeugen.
In der Grundstellung zeigen Flächennormalenvektoren unabhängig von der aktiven Ebene
G17 bis G19 in Z-Richtung.
Die Länge eines Vektors ist ohne Bedeutung.
Nicht programmierte Vektorkomponenten werden zu Null gesetzt.
Bei aktivem ORIWKS, siehe Kapitel "Bezug der Orientierungsachsen (ORIWKS, ORIMKS)"
beziehen sich die Flächennormalenvektoren auf den aktiven Frame und werden bei
Framedrehung mitgedreht.
Maschinenhersteller
Der Flächennormalenvektor muss innerhalb eines über Maschinendatum einstellbaren
Grenzwertes senkrecht zur Bahntangente stehen, ansonsten wird Alarm ausgegeben.

7.2.6 Bezug der Orientierungsachsen (ORIWKS, ORIMKS)

Funktion
Bei Orientierungsprogrammierung im Werkstückkoordinatensystem über
● Euler- bzw. RPY-Winkel oder
● Orientierungsvektor
kann der Verlauf der Drehbewegung über ORIMKS/ORIWKS eingestellt werden.

Arbeitsvorbereitung
7-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Maschinenhersteller
Mit dem Maschinendatum $MC_ORI_IPO_WITH_G_CODE wird festgelegt welche
Interpolationsart wirksam ist:
ORIMKS/ORIWKS
oder
ORIMACHAX/ORIVIRTAX.

Programmierung
N.. ORIMKS=
oder
N.. ORIWKS=

Parameter

ORIMKS Drehung im Maschinenkoordinatensystem


ORIWKS Drehung im Werkstückkoordinatensystem

Hinweis
ORIWKS ist Grundeinstellung. Ist bei einem Fünf-Achs-Programm nicht von vornherein klar,
auf welcher Maschine es ablaufen soll, so ist grundsätzlich ORIWKS zu wählen. Welche
Bewegungen die Maschine tatsächlich ausführt, hängt von der Maschinenkinematik ab.
Mit ORIMKS können Sie tatsächliche Maschinenbewegungen programmieren, um z. B.
Kollisionen mit Vorrichtungen o.ä. zu vermeiden.

Beschreibung
Bei ORIMKS ist die ausgeführte Werkzeugbewegung von der Maschinenkinematik abhängig.
Bei Orientierungsänderung mit raumfester Werkzeugspitze wird zwischen den
Rundachspositionen linear interpoliert.
Bei ORIWKS ist die Werkzeugbewegung von der Maschinenkinematik unabhängig. Bei
Orientierungsänderung mit raumfester Werkzeugspitze bewegt sich das Werkzeug in der
vom Anfangs- und Endvektor aufgespannten Ebene.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-23
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

(EHQHGLHEHLGH
9HNWRUHQDXIVSDQQW

9HNWRUDP
6DW]DQIDQJ

9HNWRUDP
6DW]HQGH

Singuläre Stellungen

Hinweis
ORIWKS
Orientierungsbewegungen im Bereich der singulären Stellung der Fünf-Achs-Maschine
erfordern große Bewegungen der Maschinenachsen. (Beispielsweise sind bei einem
Drehschwenkkopf mit C als Drehachse und A als Schwenkachse alle Stellungen mit A=0
singulär.)
Maschinenhersteller
Um die Maschinenachsen nicht zu überlasten, senkt die Geschwindigkeitsführung die
Bahngeschwindigkeit in der Nähe der singulären Stellen stark ab.
Mit den Maschinendaten
$MC_TRAFO5_NON_POLE_LIMIT
$MC_TRAFO5_POLE_LIMIT
kann die Transformation so parametriert werden, dass Orientierungsbewegungen in der
Nähe des Pols durch den Pol gelegt werden und eine zügige Bearbeitung möglich ist.
Singuläre Stellen werden nur mit dem MD $MC_TRAFO5_POLE_LIMIT behandelt.
Literatur:
/FB3/ Funktionshandbuch Sonderfunktionen; 3- bis 5-Achs-Transformation (F2),
Kapitel "Singuläre Stellen und ihre Behandlung".

Arbeitsvorbereitung
7-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

7.2.7 Programmierung der Orientierungsachsen (ORIAXES, ORIVECT, ORIEULER,


ORIRPY)

Funktion
Die Funktion Orientierungsachsen beschreibt die Orientierung des Werkzeugs im Raum und
wird durch Programmierung der Offsets für die Rundachsen erreicht. Ein weiterer dritter
Freiheitsgrad kann durch die zusätzliche Drehung des Werkzeugs um sich selbst erzielt
werden. Diese Werkzeugorientierung erfolgt beliebig im Raum über eine dritte Rundachse
und erfordert die Sechs-Achs-Transformation. Die Eigendrehung des Werkzeugs um sich
selbst wird abhängig von der Interpolationsart der Drehvektoren mit dem Drehwinkel THETA
festgelegt, siehe Kapitel "Drehungen der Werkzeugorientierung (ORIROTA/TR/TT,
ORIROTC, THETA)".

Programmierung
Orientierungsachsen werden über die Achsbezeichner A2, B2, C2 programmiert.

N... ORIAXES oder ORIVECT Lineare oder Großkreisinterpolation


N... G1 X Y Z A B C
oder oder
N... ORIPLANE Orientierungsinterpolation der Ebene
oder
oder
N... ORIEULER oder ORIRPY bzw.
ORIRPY2 Orientierungswinkel Euler-/RPY-Winkel
N... G1 X Y Z A2= B2= C2= Winkelprogrammierung virtueller
oder Achsen
N... ORIVIRT1 oder ORIVIRT2 oder
N... G1 X Y Z A3= B3= C3= virtuelle Orientierungsachsen Definition
1 oder 2
Richtungsvektorprogrammierung

Für Orientierungsänderungen entlang einer im Raum befindlichen Kegelmantelfläche


können weitere Rundachsoffsets der Orientierungsachsen programmiert werden, siehe
Kapitel "Orientierungsprogrammierung entlang einer Kegelmantelfläche (ORIPLANE,
ORICONxx).

Parameter

ORIAXES Lineare Interpolation der Maschinen- oder


Orientierungsachsen
ORIVECT Großkreisinterpolation (identisch mit ORIPLANE)
ORIMKS Drehung im Maschinenkoordinatensystem
ORIWKS Drehung im Werkstückkoordinatensystem
Beschreibung siehe Kap. Drehungen der
Werkzeugorientierung
A= B= C= Programmierung der Maschinenachsposition

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-25
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

ORIEULER Orientierungsprogrammierung über Euler-Winkel


ORIRPY Orientierungsprogrammierung über RPY-Winkel. Die
Drehreihenfolge ist XYZ, wobei gilt:
A2 ist der Drehwinkel um X
B2 ist der Drehwinkel um Y
C2 ist der Drehwinkel um Z
ORIRPY2 Orientierungsprogrammierung über RPY-Winkel. Die
Drehreihenfolge ist ZYX, wobei gilt:
A2 ist der Drehwinkel um Z
B2 ist der Drehwinkel um Y
C2 ist der Drehwinkel um X
A2= B2= C2= Winkelprogrammierung virtueller Achsen
ORIVIRT1 Orientierungsprogrammierung über virtuelle
ORIVIRT2 Orientierungsachsen
(Definition 1), Festlegung nach MD $MC_ORIAX_TURN_TAB_1
(Definition 2), Festlegung nach MD $MC_ORIAX_TURN_TAB_2
A3= B3= C3= Richtungsvektorprogrammierung der Richtungsachse

Beschreibung
Maschinenhersteller
Mit MD $MC_ORI_DEF_WITH_G_CODE wird festgelegt, wie die programmierten Winkel
A2, B2, C2 definiert werden:
Definition erfolgt nach MD $MC_ORIENTATION_IS_EULER (Standard) oder Definition
erfolgt nach G-Gruppe 50 (ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2).
Mit MD $MC_ORI_IPO_WITH_G_CODE wird festgelegt, welche Interpolationsart wirksam
ist: ORIWKS/ORIMKS oder ORIAXES/ORIVECT.
Betriebsart JOG
Die Orientierungswinkel werden in dieser Betriebsart immer linear interpoliert. Beim
kontinuierlichen und inkrementellen Verfahren über Verfahrtasten kann nur eine
Orientierungsachse verfahren werden. Über die Handräder können die Orientierungsachsen
gleichzeitig verfahren werden.
Für das Handverfahren von Orientierungsachsen wirkt der kanalspezifische Vorschub-
Korrekturschalter bzw. der Eilgang-Korrekturschalter bei Eilgangüberlagerung.
Mit folgenden Maschinendaten ist eine separate Geschwindigkeitsvorgabe möglich:
$MC_JOG_VELO_RAPID_GEO
$MC_JOG_VELO_GEO
$MC_JOG_VELO_RAPID_ORI
$MC_JOG_VELO_ORI
Die Funktion Kartesisches Handverfahren kann im JOG-Betrieb bei
SINUMERIK 840D power line und 840D solution line mit "Transformationspaket Handling"
und
SINUMERIK 810D power line die Translation von Geometrieachsen in den Bezugssystemen
MKS, WKS und TKS getrennt voneinander eingestellt werden.

Arbeitsvorbereitung
7-26 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Literaturhinweis
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Kinematische Transformation (M1)

7.2.8 Orientierungsprogrammierung entlang einer Kegelmantelfläche (ORIPLANE,


ORICONxx)

Funktion
Mit der erweiterten Orientierung ist es möglich, Orientierungsänderungen entlang sich einer
im Raum befindlichen Kegelmantelfläche auszuführen. Die Interpolation des
Orientierungsvektors auf einer Kegelmantelfläche erfolgt mit den modalen Befehlen
ORICONxx. Für die Interpolation in einer Ebene kann die Endorientierung mit ORIPLANE
programmiert werden. Generell wird die Startorientierung durch die vorhergehenden Sätze
festgelegt.

5LFKWXQJVDFKVH
'UHKZLQNHO
3+,
25,&21&::
JHJHQ8U]HLJHUVLQQ
25,&21&: (QGRULHQWLHUXQJ
LP8KU]HLJHUVLQQ
=ZLVFKHQRULHQWLHUXQJ
6WDUWRULHQWLHUXQJ
GXUFKYRUKHUJHKHQGHQ ˜IIQXQJVZLQNHO36,
6DW] GHV.HJHOV

:HUNVW¾FN
REHUIO¦FKH

Programmierung
Die Endorientierung wird entweder durch Angabe der Winkelprogrammierung in Euler- oder
RPY-Winkel mit A2, B2, C2 oder durch Programmierung der Rundachspositionen mit A, B, C
festgelegt. Für die Orientierungsachsen entlang der Kegelmantelfläche sind weitere
Programmierangaben erforderlich:
● Drehachse des Kegels als Vektor mit A6, B6, C6
● Öffnungswinkel PSI mit den Bezeichner NUT
● Zwischenorientierung im Kegelmantel mit A7, B7, C7

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-27
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Hinweis
Programmierung des Richtungsvektor A6, B6, C6 für die Drehachse des Kegels
Die Programmierung einer Endorientierung ist nicht unbedingt erforderlich. Ist keine
Endorientierung angegeben, dann wird ein voller Kegelmantel mit 360 Grad interpoliert.
Programmierung des Öffnungswinkel des Kegels mit NUT=winkel
Die Angabe einer Endorientierung ist zwingend erforderlich.
Ein vollständiger Kegelmantel mit 360 Grad kann auf diese Weise nicht interpoliert
werden.
Programmierung der Zwischenorientierung A7, B7, C7 im Kegelmantel
Die Angabe einer Endorientierung ist zwingend erforderlich. Die Orientierungsänderung
und Drehrichtung wird eindeutig durch die drei Vektoren Start-, End- und
Zwischenorientierung festgelegt. Alle drei Vektoren müssen hierbei voneinander
unterschiedlich sein. Ist die programmierte Zwischenorientierung parallel zur Start- oder
Endorientierung, dann wird eine lineare Großkreisinterpolation der Orientierung in der
Ebene, die von Start- und Endvektor aufgespannt wird, durchgeführt.

Erweiterte Orientierungsinterpolation auf einer Kegelmantelfläche


N... ORICONCW oder ORICONCCW Interpolation auf einen Kegelmantel mit
N... A6= B6= C6= A3= B3= C3= Richtungsvektor im/gegen Uhrzeigersinn
oder des Kegels und Endorientierung oder
N... ORICONTO
N... G1 X Y Z A6= B6= C6= tangentialem Übergang und
oder Angabe der Endorientierung
N... ORICONIO oder
N... G1 X Y Z A7= B7= C7= Angabe der Endorientierung und einer
N... PO[PHI]=(a2, a3, a4, a5) Zwischenorientierung im Kegelmantel mit
N... PO[PSI]=(b2, b3, b4, b5)
Polynome für Drehwinkel und
Polynome für Öffnungswinkel

Parameter

ORIPLANE Interpolation in der Ebene (Großkreisinterpolation)


ORICONCW Interpolation auf einer Kegelmantelfläche im
Uhrzeigersinn
ORICONCCW Interpolation auf einer Kegelmantelfläche gegen
Uhrzeigersinn
ORICONTO Interpolation auf einer Kegelmantelfläche tangentialer
Übergang
A6= B6= C6= Programmierung der Drehachse des Kegels (normierter
Vektor)
NUT=winkel Öffnungswinkel des Kegels in Grad
NUT=+179 Verfahrwinkel kleiner oder gleich 180 Grad
NUT=-181 Verfahrwinkel größer oder gleich 180 Grad
ORICONIO Interpolation auf einer Kegelmantelfläche
A7= B7= C7= Zwischenorientierung (Programmierung als normierter
Vektor)

Arbeitsvorbereitung
7-28 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

PHI Drehwinkel der Orientierung um die Richtungsachse des


Kegels
PSI Öffnungswinkel des Kegels
mögliche Polynome Außer den jeweiligen Winkeln sind auch Polynome maximal
PO[PHI]=(a2, a3, a4, a5) 5. Grades programmierbar
PO[PSI]=(b2, b3, b4, b5)

Beispiel unterschiedliche Orientierungsänderungen


N10 G1 X0 Y0 F5000
N20 TRAORI(1) ;Orientierungstransformation ein
N30 ORIVECT ;Werkzeug-Orientierung als Vektor interpolieren
… ;Werkzeugorientierung in der Ebene
N40 ORIPLANE ;Großkreisinterpolation auswählen
N50 A3=0 B3=0 C3=1
N60 A3=0 B3=1 C3=1 ;Orientierung in der Y/Z-Ebene um 45 Grad
;Grad gedreht, am Satzende wird die
;Orientierung (0, 1/ √2, 1/ √2)erreicht
… ;Orientierungsprogrammierung auf Kegelmantel
N70 ORICONCW ;der Orientierungsvektor wird auf einem
;Kegelmantel mit der
N80 A6=0 B6=0 C6=1 A3=0 B3=0 C3=1 ;Richtung (0,0,1) bis zur Orientierung
;(1/ √2, 0, 1/ √2) im Uhrzeigersinn
interpoliert
;der Drehwinkel beträgt hierbei 270 Grad
N90 A6=0 B6=0 C6=1 ;die Werkzeugorientierung durchläuft eine volle
;Umdrehung auf dem selben Kegelmantel

Beschreibung
Sollen Orientierungsänderungen auf einer beliebig im Raum liegenden Kegelmantelfläche
beschrieben werden, dann muss der Vektor um den die Werkzeugorientierung gedreht
werden soll, bekannt sein. Außerdem müssen die Start- und Endorientierung vorgegeben
werden. Die Startorientierung ergibt sich aus den vorhergehenden Satz und die
Endorientierung muss entweder programmiert oder durch andere Bedingungen festgelegt
werden.
Programmierung in der Ebene ORIPLANE entspricht ORIVECT
Die Programmierung der Großkreisinterpolation zusammen mit Winkelpolynomen entspricht
der Linear- und Polynominterpolation von Konturen. Die Werkzeugorientierung wird in einer
Ebene interpoliert, die von der Start- und Endorientierung aufgespannt wird. Werden
zusätzlich Polynome programmiert, dann kann der Orientierungsvektor auch aus der Ebene
gekippt werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-29
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Programmierung von Kreisen in einer Ebene G2/G3, CIP und CT


Die erweiterte Orientierung entspricht der Interpolation von Kreisen in einer Ebene. Zu den
entsprechenden Programmiermöglichkeiten von Kreisen mit Mittelpunktsangabe oder
Radiusangabe wie G2/G3, Kreis über Zwischenpunkt CIP und Tangentialkreise CT siehe
Literatur: Programmierhandbuch Grundlagen, "Wegbefehle programmieren".

Orientierungsprogrammierung
Interpolation des Orientierungsvektors auf einer Kegelmantelfläche ORICONxx
Für die Interpolation von Orientierungen auf einer Kegelmantelfläche können vier
verschiedene Interpolationsarten aus der G-Code Gruppe 51 ausgewählt werden:
1. Interpolation auf einen Kegelmantel im Uhrzeigersinn ORICONCW mit Angabe der
Endorientierung und der Kegelrichtung oder des Öffnungswinkels. Der Richtungsvektor
wird mit den Bezeichnern A6, B6, C6 und der Öffnungswinkel des Kegels wird mit dem
Bezeichner NUT= Wertebereich im Intervall 0 bis 180 Grad programmiert.
2. Interpolation auf einen Kegelmantel gegen Uhrzeigersinn ORICONCWW mit Angabe der
Endorientierung und der Kegelrichtung oder des Öffnungswinkels. Der Richtungsvektor
wird mit den Bezeichnern A6, B6, C6 und der Öffnungswinkel des Kegels wird mit dem
Bezeichner NUT= Wertebereich im Intervall 0 bis 180 Grad programmiert.
3. Interpolation auf einen Kegelmantel ORICONIO mit Angabe der Endorientierung und einer
Zwischenorientierung, die mit den Bezeichnern A7, B7, C7 programmiert wird.
4. Interpolation auf einen Kegelmantel ORICONTO mit tangentialem Übergang und Angabe
der Endorientierung. Der Richtungsvektor wird mit den Bezeichnern A6, B6, C6
programmiert.

7.2.9 Orientierungsvorgabe zweier Kontaktpunke (ORICURVE, PO[XH]=, PO[YH]=,


PO[ZH]=)

Funktion
Programmierung der Orientierungsänderung durch die zweite Raumkurve ORICURVE
Eine weitere Möglichkeit der Programmierung von Orientierungsänderungen besteht darin,
außer der Werkzeugspitze entlang einer Raumkurve auch die Bewegung eines zweiten
Kontaktpunktes des Werkzeugs mit ORICURVE zu programmieren. Damit können
Orientierungsänderungen des Werkzeugs, wie bei der Programmierung des
Werkzeugvektors selber, eindeutig festgelegt werden.
Maschinenhersteller
Beachten Sie bitte die Hinweise des Maschinenherstellers zu über Maschinendatum
einstellbare Achsbezeichner für die Programmierung der 2. Orientierungsbahn des
Werkzeugs.

Arbeitsvorbereitung
7-30 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Programmierung
Bei dieser Interpolationsart können für die beiden Raumkurven Punkte mit G1 bzw.
Polynome mit POLY programmiert werden. Kreise und Evolventen sind nicht zulässig.
Zusätzlich kann eine Spline-Interpolation mit BSPLINE und die Funktion "Zusammenfassung
kurzer Spline-Sätze" aktiviert werden.
Literatur:
/FB1/ Funktionshandbuch Grundfunktionen; Bahnsteuerbetrieb, Genauhalt, Look Ahead
(B1), Kapitel: Zusammenfassung kurzer Spline-Sätze
Die anderen Splinearten ASPLINE und CSPLINE sowie die Aktivierung eines Kompressors
mit COMPON, COMPCURV oder COMPCAD sind nicht zulässig.
Die Bewegung der zwei Kontaktpunkte des Werkzeugs kann bei der Programmierung der
Orientierungspolynome für Koordinaten bis maximal [Link] vorgegeben werden.

Erweiterte Orientierungsinterpolation mit zusätzlicher Raumkurve und Polynome für


Koordinaten
N... ORICURVE Angabe der Bewegung des zweiten
N... PO[XH]=(xe, x2, x3, x4, x5) Kontaktpunkts des Werkzeugs und
N... PO[YH]=(ye, y2, y3, y4, y5)
zusätzliche Polynome der jeweiligen
N... PO[ZH]=(ze, z2, z3, z4, z5)
Koordinaten

Parameter

ORICURVE Interpolation der Orientierung mit Vorgabe der Bewegung


zweier Kontaktpunkte des Werkzeuges.
XH YH ZH Bezeichner der Koordinaten des zweiten Kontaktpunktes
des Werkzeugs der zusätzlichen Kontur als Raumkurve
mögliche Polynome Außer den jeweiligen Endpunkten sind die Raumkurven
PO[XH]=(xe, x2, x3, x4, zusätzlich mit Polynomen programmierbar.
x5) PO[YH]=(ye, y2, y3,
y4, y5) PO[ZH]=(ze, z2,
z3, z4, z5)
xe, ye, ze Endpunkte der Raumkurve
xi, yi, zi Koeffizienten der Polynome maximal 5. Grades

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-31
Transformationen
7.2 Drei-, Vier- und Fünf-Achs-Transformation (TRAORI)

Hinweis
Bezeichner XH YH ZH für die Programmierung einer 2. Orientierungsbahn
Die Bezeichner müssen so gewählt werden, dass kein Konflikt mit anderen Bezeichnern der
Linearachsen
X Y Z Achsen
und Rundachsen wie
A2 B2 C2 Eulerwinkel bzw. RPY-Winkel
A3 B3 C3 Richtungsvektoren
A4 B4 C4 bzw. A5 B5 C5 Flächennormalenvektoren
A6 B6 C6 Drehvektoren bzw. A7 B7 C7 Zwischenpunktkoordinaten
oder anderen Interpolationsparameter entsteht.

Arbeitsvorbereitung
7-32 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.3 Orientierungspolynome (PO[Winkel], PO[Koordinate])

7.3 7.3 Orientierungspolynome (PO[Winkel], PO[Koordinate])

Funktion
Unabhängig davon, welche Polynominterpolation der G-Code Gruppe 1 gerade aktiv ist,
können zwei verschiedene Typen von Orientierungspolynomen bis maximal 5. Grades bei
einer Drei- bis Fünf-Achs-Transformation programmiert werden.
1. Polynome für Winkel: Voreilwinkel LEAD, Seitwärtswinkel TILT
in Bezug auf die Ebene, die von Start- und Endorientierung aufgespannt wird.
2. Polynome für Koordinaten: XH, YH, ZH der zweiten Raumkurve für die
Werkzeugorientierung eines Bezugspunktes auf dem Werkzeug.
Bei einer Sechs-Achs-Transformation kann zur Werkzeugorientierung zusätzlich die
Drehung des Drehvektors THT mit Polynomen bis maximal 5. Grades für Drehungen des
Werkzeugs selbst programmiert werden.

Programmierung
Orientierungspolynome vom Typ 1 für Winkel

N… PO[PHI]=(a2, a3, a4, a5) Drei- bis Fünf-Achs-Transformation


oder
N… PO[PSI]=(b2, b3, b4, b5) Drei- bis Fünf-Achs-Transformation

Orientierungspolynome vom Typ 2 für Koordinaten

N… PO[XH]=(xe, x2, x3, x4, x5) Bezeichner für die Koordinaten der zweiten
N… PO[YH]=(ye, y2, y3, y4, y5) Orientierungsbahn für die
N… PO[ZH]=(ze, z2, z3, z4, z5)
Werkzeugorientierung

Zusätzlich kann in beiden Fällen ein Polynom für die Drehung bei Sechs-Achs-
Transformationen mit

N… PO[THT]=(c2, c3, c4, c5) Bahnrelative Interpolation der Drehung


oder
N… PO[THT]=(d2, d3, d4, d5) absoluter, relative und tangentiale
Interpolation zur Orientierungsänderung
des Orientierungsvektors programmiert werden. Dies ist dann möglich, wenn die
Transformation einen Drehvektor mit einem durch den Drehwinkel THETA
programmierbaren und interpolierbaren Offset unterstützt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-33
Transformationen
7.3 Orientierungspolynome (PO[Winkel], PO[Koordinate])

Parameter

PO[PHI] Winkel in der Ebene zwischen Start- und Endorientierung


PO[PSI] Winkel der die Auskippung der Orientierung aus der Ebene
zwischen Start- und Endorientierung beschreibt
PO[THT] Drehwinkel der durch Drehung des Drehvektors einer der
mit THETA programmierten G-Codes der Gruppe 54
PHI Voreilwinkel LEAD
PSI Seitwärtswinkel TILT
THETA Drehung um die Werkzeugrichtung in Z
PO[XH] X-Koordinate des Bezugspunktes auf dem Werkzeug
PO[YH] Y-Koordinate des Bezugspunktes auf dem Werkzeug
PO[ZH] Z-Koordinate des Bezugspunktes auf dem Werkzeug

Beschreibung
Orientierungspolynomen können nicht programmiert werden
● wenn die Splineinterpolationen ASPLINE, BSPLINE, CSPLINE aktiv sind.
Polynome vom Typ1 für Orientierungswinkel sind für jede Interpolationsart außer Spline
d.h. bei Linearinterpolation mit Eilgang G00 bzw. mit Vorschub G01
bei Polynominterpolation mit POLY und
bei Kreis- bzw. Evolventeninterpolation mit G02, G03, CIP, CT, INVCW und INCCCW
möglich.
Polynome vom Typ2 für Orientierungskoordinaten sind dagegen nur möglich, wenn
Linearinterpolation mit Eilgang G00 bzw. mit Vorschub G01 oder
Polynominterpolation mit POLY aktiv ist.
● wenn die Orientierung mittels Achsinterpolation ORIAXES interpoliert wird. In diesem Fall
können direkt Polynome mit PO[A] und PO[B] für die Orientierungsachsen A und B
programmiert werden.
Orientierungspolynome vom Typ 1 mit ORIVECT, ORIPLANE und ORICONxx
Bei Großkreisinterpolation und Kegelmantelinterpolation mit ORIVECT, ORIPLANE und
ORICONxx sind nur Orientierungspolynome vom Typ 1 möglich.
Orientierungspolynome vom Typ 2 mit ORICURVE
Ist die Interpolation mit zusätzlicher Raumkurve ORICURVE aktiv, werden die kartesischen
Komponenten des Orientierungsvektors interpoliert und es sind nur Orientierungspolynome
vom Typ 2 möglich.

Arbeitsvorbereitung
7-34 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.4 Drehungen der Werkzeugorientierung (ORIROTA, ORIROTR/TT, ORIROTC, THETA)

7.4 7.4 Drehungen der Werkzeugorientierung (ORIROTA, ORIROTR/TT,


ORIROTC, THETA)

Funktion
Soll bei Maschinentypen mit beweglichem Werkzeug auch die Orientierung des Werkzeugs
veränderbar sein, so wird jeder Satz mit einer Endorientierung programmiert. Abhängig von
der Maschinenkinematik können entweder die Orientierungsrichtung der
Orientierungsachsen oder die Drehrichtung des Orientierungsvektors THETA programmiert
werden. Für diese Drehvektoren sind verschiedene Interpolationsarten programmierbar:
● ORIROTA: Drehwinkel zu einer absolut vorgegebenen Drehrichtung.
● ORIROTR: Drehwinkel relativ zur Ebene zwischen Start- und Endorientierung.
● ORIROTT: Drehwinkel relativ zur Änderung des Orientierungsvektors.
● ORIROTC: Tangentialer Drehwinkel zur Bahntangente.

Programmierung
Nur wenn die Interpolationsart ORIROTA aktiv ist, kann der Drehwinkel oder der Drehvektor
auf die vier möglichen Arten wie folgt programmiert werden:
1. Direkt die Rundachspositionen A, B, C
2. Eulerwinkel (in Grad) über A2, B2, C2
3. RPY-Winkel (in Grad) über A2, B2, C2
4. Richtungsvektor über A3, B3, C3 (Drehwinkel mittels THETA=Wert)
Falls ORIOTR oder ORIOTT aktiv sind, kann der Drehwinkel nur noch direkt mit THETA
programmiert werden.
Eine Drehung kann auch allein in einem Satz programmiert werden, ohne dass eine
Orientierungsänderung stattfindet. Dabei haben ORIROTR und ORIROTT keine Bedeutung.
In diesem Fall wird der Drehwinkel immer in Bezug zur absoluten Richtung interpretiert
(ORIROTA).

N... ORIROTA Interpolation des Drehvektors festlegen


oder
N... ORIROTR
oder
N... ORIROTT
oder
N... ORIROTC
N... A3= B3= C3= THETA=Wert Drehung des Orientierungsvektors festlegen
N... PO[THT]=(d2, d3, d4, d5) Drehwinkel mit Polynom 5. Grades interpolieren

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-35
Transformationen
7.4 Drehungen der Werkzeugorientierung (ORIROTA, ORIROTR/TT, ORIROTC, THETA)

Parameter

ORIROTA Drehwinkel zu einer absolut vorgegebenen Drehrichtung


ORIROTR Drehwinkel relativ zur Ebene zwischen Start- und
Endorientierung
ORIROTT Drehwinkel als tangentialer Drehvektor zur
Orientierungsänderung
ORIROTC Drehwinkel als tangentialer Drehvektor zur Bahntangente
THETA Drehung des Orientierungsvektors
THETA=Wert Drehwinkel in Grad, der am Satzende erreicht wird
THETA=Θe Drehwinkel mit Endwinkel Θe des Drehvektors
THETA=AC(…) Satzweise auf Maßangabe absolut umschalten
THETA=AC(…) Satzweise auf Kettenmaßangabe umschalten
Θe Endwinkel des Drehvektors sowohl absolut mit G90 als auch
relativ mit G91 (Kettenmaßangabe) ist aktiv
PO[THT]=(....) Polynom für den Drehwinkel

Beispiel Drehungen der Orientierungen

N10 TRAORI ;Orientierungstransformation aktivieren


N20 G1 X0 Y0 Z0 F5000
;Orientierung des Werkzeugs
N30 A3=0 B3=0 C3=1 THETA=0 ;in Z-Richtung mit Drehwinkel 0
N40 A3=1 B3=0 C3=0 THETA=90 ;in X-Richtung und Drehung um 90 Grad
;Orientierung
N50 A3=0 B3=1 C3=0 PO[THT]=(180,90) ;in Y-Richtung und Drehung auf 180 Grad
N60 A3=0 B3=1 C3=0 THETA=IC(-90) ;bleibt konstant und Drehung auf 90 Grad
N70 ORIROTT ;Drehwinkel relativ zur Orientierungsänderung
N80 A3=1 B3=0 C3=0 THETA=30 ;Drehvektor im Winkel 30 Grad zur X-Y Ebene

Bei der Interpolation von Satz


N40 wird der Drehwinkel vom Startwert 0 Grad zum Endwert 90 Grad linear interpoliert. Im
Satz N50 ändert sich der Drehwinkel von 90 Grad auf 180 Grad gemäß der
Parabel θ(u) = +90u2. In N60 kann auch eine Drehung ausgeführt werden, ohne dass
eine Orientierungsänderung stattfindet.
Bei N80 wird die Werkzeugorientierung von der Y–Richtung in X–Richtung gedreht. Dabei
liegt die Orientierungsänderung in der X–Y Ebene und der Drehvektor bildet zu dieser Ebene
einen Winkel von 30 Grad.

Beschreibung
ORIROTA
Der Drehwinkel THETA wird bezüglich einer absolut festgelegten Richtung im Raum
interpoliert. Die Grunddrehrichtung erfolgt über Maschinendaten

Arbeitsvorbereitung
7-36 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.5 Bahnrelative Orientierungen

ORIROTR
Der Drehwinkel THETA wird relativ zur Ebene, die von der Start- und Endorientierung
aufgespannt wird, interpretiert.
ORIROTT
Der Drehwinkel THETA wird relativ zur Orientierungsänderung interpretiert. Für THETA=0
wird der Drehvektor tangential zur Orientierungsänderung interpoliert und unterscheidet sich
nur dann zu ORIROTR, wenn für die Orientierung mindestens ein Polynom für den
"Kippwinkel PSI" programmiert wurde. Damit ergibt sich eine Orientierungsänderung, die
nicht in der Ebene abläuft. Durch einen zusätzlich programmierten Drehwinkel THETA kann
dann z. B. der Drehvektor so interpoliert werden, dass er immer einen bestimmten Wert zur
Orientierungsänderung bildet.
ORIROTC
Der Drehvektor wird relativ zur Bahntangente mit einem durch den Winkel THETA
programmierbaren Offset interpoliert. Für den Offsetwinkel kann dabei auch ein Polynom
PO[THT]=(c2, c3, c4, c5) maximal 5. Grades programmiert werden.

7.5 7.5 Bahnrelative Orientierungen

7.5.1 Orientierungsarten relativ zur Bahn

Funktion
Mit dieser erweiterten Funktion wird die relative Orientierung nicht nur am Satzende,
sondern über den gesamten Bahnverlauf erreicht. Es wird die im Vorgängersatz erreichte
Orientierung mittels Großkreisinterpolation in die programmierte Endorientierung überführt.
Grundsätzlich gibt es zwei Möglichkeiten die gewünschte Orientierung relativ zur Bahn zu
programmieren:
1. Die Werkzeugorientierung als auch die Drehung des Werkzeugs wird mit ORIPATH,
ORPATHTS relativ zur Bahn interpoliert.
2. Der Orientierungsvektor wird wie bisher üblich programmiert und interpoliert. Mit
ORIROTC wird die Drehung des Orientierungsvektors relativ zur Bahntangente
angestellt.

Programmierung
Die Interpolationsart der Orientierung und der Drehung des Werkzeugs wird programmiert
mit:

N... ORIPATH Bahnrelative Orientierung


N... ORIPATHS Bahnrelative Orientierung mit Glättung des
Orientierungsverlaufs
N... ORIROTC Bahnrelative Interpolation des Drehvektors

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-37
Transformationen
7.5 Bahnrelative Orientierungen

Ein durch eine Ecke im Bahnverlauf hervorgerufener Knick der Orientierung kann mit
ORIPATHS geglättet werden. Die Richtung und Weglänge der Abhebebewegung wird durch
den Vektor mit den Komponenten A8=X, B8=Y C8=Z programmiert.
Mit ORIPATH/ORIPATHS können verschiedene Bezüge zur Bahntangente über die drei
Winkel
● LEAD= Angabe Vorwärtswinkel bezogen auf die Bahn und Oberfläche
● TILT= Angabe von Seitwärtswinkel bezogen auf die Bahn und Oberfläche
● THETA= Drehwinkel
für den gesamten Bahnverlauf programmiert werden. Zum Drehwinkel THETA können mit
PO[THT]=(...) zusätzlich Polynome maximal 5. Grades programmiert werden.

Hinweis
Maschinenhersteller
Bitte beachten Sie die Angaben des Maschinenherstellers. Über projektierbare Maschinen-
und Settingdaten können zur Bahnrelativen Orientierungsart weitere Einstellungen
vorgenommen werden. Weitere Erläuterungen siehe
Literatur:
/FB3/ Funktionshandbuch Sonderfunktionen; 3- bis 5-Achs-Transformation (F2),
Kapitel "Orientierung"

Parameter
Die Interpolation der Winkel LEAD und TILT ist über Maschinedatum unterschiedlich
einstellbar:
● Der mit LEAD und TILT programmierte Bezug der Werkzeugorientierung wird über den
ganzen Satz hinweg eingehalten.
● Vorwärtswinkel LEAD: Drehung um die Richtung senkrecht zur Tangente und
Normalenvektor TILT: Drehung der Orientierung um den Normalenvektor.
● Vorwärtswinkel LEAD: Drehung um die Richtung senkrecht zur Tangente und
Normalenvektor Seitwärtswinkel TILT: Drehung der Orientierung um die Richtung der
Bahntangente.
● Drehwinkel THETA: Drehung des Werkzeugs um sich selbst mit einer zusätzlichen dritten
Rundachse als Orientierungsachse bei Sechs-Achs-Transformation.

Hinweis
Bahnrelative Orientierung zusammen mit OSC, OSS, OSSE, OSD, OST unzulässig
Die bahnrelative Orientierungsinterpolation ORIPATH bzw. ORIPATHS und ORIOTC kann
nicht zusammen mit der Glättung des Orientierungsverlaufs mit einen der G-Codes aus
der Gruppe 34 programmiert werden. Hierfür muss OSOF aktiv sein.

Arbeitsvorbereitung
7-38 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.5 Bahnrelative Orientierungen

7.5.2 Bahnrelative Drehung der Werkzeugorientierung (ORIPATH, ORIPATHS,


Drehwinkel)

Funktion
Bei einer Sechs-Achs-Transformation kann zur Werkzeugorientierung beliebig im Raum
auch das Werkzeug mit einer dritten Rundachse um sich selbst gedreht werden. Bei
bahnrelativer Drehung der Werkzeugorientierung mit ORIPATH bzw. ORIPATHS kann die
zusätzliche Drehung über den Drehwinkel THETA programmiert werden. Alternativ hierzu
können die Winkel LEAD und TILT durch einen Vektor, der in der Ebene senkrecht zur
Werkzeugrichtung liegt, programmiert werden.
Maschinenhersteller
Bitte beachten Sie die Angaben des Maschinenherstellers. Über Maschinendatum kann die
Interpolation der Winkel LEAD und TILT unterschiedlich eingestellt werden.

Programmierung
Drehung der Werkzeugorientierung und des Werkzeugs
Die Werkzeugorientierungsart relativ zur Bahn wird mit ORIPATH oder ORIPATHS aktiviert.

N... ORIPATH Orientierungsart bezogen auf die Bahn aktivieren


N... ORIPATHS Orientierungsart bezogen auf die Bahn mit
Glättung des Orientierungsverlaufs aktivieren
Aktivierung der drei möglichen Winkel mit Drehwirkung:
N... LEAD= Winkel für die programmierten Orientierung relativ
zum Flächennormalenvektor
N... TILT= Winkel für die programmierte Orientierung in der
Ebene senkrecht zur Bahntangente relativ zum
Flächennormalenvektor
N... THETA= Drehwinkel relativ zur Orientierungsänderung um
die Werkzeugrichtung der dritten Rundachse

Die Werte der Winkel am Satzende werden mit LEAD=Wert, TILT=Wert bzw. THETA=Wert
programmiert. Zusätzlich zu den konstanten Winkeln können für alle drei Winkel Polynome
maximal 5. Grades programmiert werden.

N... PO[PHI]=(a2, a3, a4, a5) Polynom für den Voreilwinkel LEAD
oder
N... PO[PSI]=(b2, b3, b4, b5) Polynom für den Seitwärtswinkel TILT
oder
N... PO[THT]=(d2, d3, d4, d5)
Polynom für den Drehwinkel THETA
Bei der Programmierung können die höheren Polynomkoeffizienten, die Null sind,
weggelassen werden. Beispiel PO[PHI]=a2 ergibt für den Voreilwinkel LEAD eine Parabel.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-39
Transformationen
7.5 Bahnrelative Orientierungen

Parameter
Bahnrelative Werkzeugorientierung

ORIPATH Werkzeugorientierung bezogen auf die Bahn


ORIPATHS Werkzeugorientierung bezogen auf die Bahn Knick im
Orientierungsverlauf wird geglättet
LEAD Winkel relativ zum Flächennormalenvektor, in der von
Bahntangente und Flächennormalenvektor aufgespannten
Ebene
TILT Drehung der Orientierung um die Z-Richtung bzw. Drehung
um die Bahntangente
THETA Drehung um die Werkzeugrichtung nach Z
PO[PHI] Orientierungspolynom für den Voreilwinkel LEAD
PO[PSI] Orientierungspolynom für den Seitwärtswinkel TILT
PO[THT] ( Orientierungspolynom für den Drehwinkel THETA

Hinweis
Drehwinkel THETA
Für die Drehung des Werkzeugs mit dritter Rundachse als Orientierungsachse um sich
selbst, ist eine Sechs-Achs-Transformation erforderlich.

7.5.3 Bahnrelative Interpolation der Werkzeugdrehung (ORIROTC, THETA)

Funktion
Interpolation mit Drehvektoren
Zur mit ORIROTC programmierten Drehung des Werkzeugs relativ zur Bahntangenten kann
der Drehvektor auch mit einem durch den Drehwinkel THETA programmierbaren Offset
interpoliert werden. Dabei kann für den Offsetwinkel mit PO[THT] ein Polynom bis maximal
5. Grades programmiert werden.

Programmierung

N... ORIROTC Drehung des Werkzeugs relativ


zur Bahntangente anstellen
N... A3= B3= C3= THETA=Wert Drehung des
Orientierungsvektors festlegen
N... A3= B3= C3= PO[THT]=(c2, c3, c4, c5) Offsetwinkel mit Polynom
maximal 5. Grades interpolieren
Eine Drehung kann auch allein in einem Satz programmiert werden, ohne dass eine
Orientierungsänderung stattfindet.

Arbeitsvorbereitung
7-40 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.5 Bahnrelative Orientierungen

Parameter
Bahnrelative Interpolation der Drehung des Werkzeugs bei Sechs-Achs-Transformation

ORIROTC tangentialer Drehvektor zur Bahntangente anstellen


THETA=Wert Drehwinkel in Grad, der am Satzende erreicht wird
THETA=θe Drehwinkel mit Endwinkel Θe des Drehvektors
THETA=AC(…) Satzweise auf Maßangabe absolut umschalten
THETA=IC(…) Satzweise auf Kettenmaßangabe umschalten
PO[THT]=(c2, c3, c4, c5) Offsetwinkel mit Polynom 5. Grades interpolieren

Hinweis
Interpolation des Drehvektors ORIROTC
Soll gegen die Orientierungsrichtung des Werkzeugs auch die Drehung des Werkzeugs
relativ zur Bahntangente angestellt werden, dann ist dies nur bei einer Sechs-Achs-
Transformation möglich.
Bei aktiven ORIROTC
Der Drehvektor ORIROTA kann nicht programmiert werden. Im Falle einer Programmierung
wird der ALARM 14128 "Absolutprogrammierung der Werkzeugdrehung bei aktivem
ORIROTC" ausgegeben.
Orientierungsrichtung des Werkzeugs bei Drei- bis Fünf-Achs-Transformation
Die Orientierungsrichtung des Werkzeugs kann wie bei der Drei- bis Fünf-Achs-
Transformation gewohnt über Eulerwinkel bzw. RPY-Winkel oder des Richtungsvektoren
programmiert werden. Auch sind Orientierungsänderungen des Werkzeugs im Raum durch
Programmierung der Großkreisinterpolation ORIVECT, der linearen Interpolation der
Orientierungsachsen ORIAXES, alle Interpolationen auf einer Kegelmantelfläche ORICONxx
sowie der Interpolation zusätzlich zur Raumkurve mit zwei Kontaktpunkten des Werkzeugs
ORICURVE möglich.

G.... Angabe der Bewegungsart der Rundachsen


X Y Z Angabe der Linearachsen
ORIAXES Lineare Interpolation der Maschinen- oder
Orientierungsachsen
ORIVECT Großkreisinterpolation (identisch mit ORIPLANE)
ORIMKS Drehung im Maschinenkoordinatensystem
ORIWKS Drehung im Werkstückkoordinatensystem
Beschreibung siehe Kap. Drehungen der
Werkzeugorientierung
A= B= C= Programmierung der Maschinenachsposition
ORIEULER Orientierungsprogrammierung über Euler-Winkel
ORIRPY Orientierungsprogrammierung über RPY-Winkel
A2= B2= C2= Winkelprogrammierung virtueller Achsen
ORIVIRT1 Orientierungsprogrammierung über virtuelle
ORIVIRT2 Orientierungsachsen
(Definition 1), Festlegung nach MD $MC_ORIAX_TURN_TAB_1
(Definition 2), Festlegung nach MD $MC_ORIAX_TURN_TAB_2

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-41
Transformationen
7.5 Bahnrelative Orientierungen

A3= B3= C3= Richtungsvektorprogrammierung der Richtungsachse


ORIPLANE Interpolation in der Ebene (Großkreisinterpolation)
ORICONCW Interpolation auf einer Kegelmantelfläche im
Uhrzeigersinn
ORICONCCW Interpolation auf einer Kegelmantelfläche gegen
Uhrzeigersinn
ORICONTO Interpolation auf einer Kegelmantelfläche tangentialer
Übergang
A6= B6= C6= Programmierung der Drehachse des Kegels (normierter
Vektor)
NUT=winkel Öffnungswinkel des Kegels in Grad
NUT=+179 Verfahrwinkel kleiner oder gleich 180 Grad
NUT=-181 Verfahrwinkel größer oder gleich 180 Grad
ORICONIO Interpolation auf einer Kegelmantelfläche
A7= B7= C7= Zwischenorientierung (Programmierung als normierter
Vektor)
ORICURVE Interpolation der Orientierung mit Vorgabe der Bewegung
XH YH ZH z.B. mit zweier Kontaktpunkte des Werkzeuges. Außer den jeweiligen
Polynome PO[XH]=(xe, x2, Endpunkten sind zusätzliche Raumkurven Polynome
x3, x4, x5) programmierbar.

Hinweis
Wird die Werkzeugorientierung mit aktiven ORIAXES über die Orientierungsachsen
Interpoliert, dann wird die bahnrelative Anstellung des Drehwinkels nur am Satzende erfüllt.

7.5.4 Glättung des Orientierungsverlaufs (ORIPATHS A8=, B8=, C8=)

Funktion
Bei beschleunigungsstetigen Orientierungsänderungen an der Kontur sind Unterbrechungen
der Bahnbewegungen, die besonders an einer Ecke der Kontur auftreten können
unerwünscht. Der sich hieraus ergebene Knick im Orientierungsverlauf kann durch Einfügen
eines eigenen Zwischensatzes geglättet werden. Die Orientierungsänderung erfolgt dann
beschleunigungsstetig, wenn während der Umorientierung auch ORIPATHS aktiv ist. In
dieser Phase kann eine Abhebebewegung des Werkzeugs durchgeführt werden.
Maschinenhersteller
Beachten Sie bitte die Hinweise des Maschinenherstellers zu gegebenenfalls vordefinierten
Maschinendaten und Settingdaten mit denen diese Funktion aktiviert wird.
Über Maschinendatum ist einstellbar, wie der Abhebevektor interpretiert wird:
1. Im Werkzeugkoordinatensystem wird die Z-Koordinate durch die Werkzeugrichtung
definiert.
2. Im Werkstückkoordinatensystem wird die Z-Koordinate durch die aktive Ebene definiert.
Weitere Erläuterungen zur Funktion "Bahnrelative Orientierung" siehe
Literatur: /FB3/ Funktionshandbuch Sonderfunktionen; 3- bis 5-Achstransformation (F2)

Arbeitsvorbereitung
7-42 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.6 Komprimierung der Orientierung COMPON (A..., B..., C..., THETA)

Programmierung
Für stetige Werkzeugorientierungen bezogen auf die gesamte Bahn sind an einer Ecke der
Kontur weitere Programmierangaben erforderlich. Die Richtung und die Weglänge dieser
Bewegung wird durch den Vektor mit den Komponenten A8=X, B8=Y, C8=Z programmiert:

N... ORIPATHS A8=X B8=Y C8=Z

Parameter

ORIPATHS Werkzeugorientierung bezogen auf die Bahn, ein Knick im


Orientierungsverlauf wird geglättet.
A8= B8= C8= Vektorkomponenten für Richtung und Weglänge
X, Y, Z Abhebebewegung in Werkzeugrichtung

Hinweis
Programmierung des Richtungsvektors A8, B8, C8
Ist die Länge dieses Vektors gleich Null erfolgt keine Abhebebewegung.
ORIPATHS
Die bahnbezogene Werkzeugorientierung wird mit ORIPATHS aktiv. Anderenfalls wird die
Orientierung mittels linearer Großkreisinterpolation von der Start- zur Endorientierung
überführt.

7.6 7.6 Komprimierung der Orientierung COMPON (A..., B..., C..., THETA)

Funktion
NC-Programme, in denen die Orientierung mittels Richtungsvektoren programmiert sind,
können unter Einhaltung von vorgegeben Toleranzen komprimiert werden. Der Kompressor
ist für Orientierungen nur in Verbindung mit einer Orientierungstransformation möglich.
Maschinenhersteller
Die Orientierungsbewegung wird nur bei aktiver Großkreisinterpolation komprimiert und ist
so vom G-Code für die Orientierungsinterpolation abhängig. Dieser ist ebenso wie die
maximale Weglänge und eine zulässige Toleranz für jede Achse bzw. für den Bahnvorschub
für die Kompressorfunktion über Maschinendaten einstellbar. Bitte beachten Sie die
Angaben des Maschinenherstellers.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-43
Transformationen
7.6 Komprimierung der Orientierung COMPON (A..., B..., C..., THETA)

Programmierung
Allgemeine Form des NC-Satzes
Die zu komprimierenden Sätze dürfen nur Satznummer, Linearinterpolation G1,
Achsadressen, Vorschub und einen Kommentar enthalten und haben damit folgende
Programmsyntax:

N... G1 X=... Y=... Z=... A=... B=... ;Kommentar


F=...
Die Positionswerte können direkt z.B. X90 oder über Parameterzuweisungen X=R1*(R2+R3)
indirekt angegeben werden.
Bei aktiver Orientierungstransformation TRAORI
Die Werkzeugorientierung kann kinematikunabhängig programmiert werden.
Bei einer Maschine mit Drei- bis Fünf-Achs-Transformation gilt:

N... TRAORI
A3=... B3=... C3=... ;Richtungsvektor
A2=... B2=... C2=...
;Euler- Winkel oder RPY-Winkel

Bei einer Maschine mit Sechs-Achs-Transformation kann zusätzlich zur


Werkzeugorientierung auch die Drehung des Werkzeugs programmiert werden.

N... X... Y... Z... A3=... B3=... C3=... THETA=... F=... bzw.
N... X... Y... Z... A2=... B2=... C2=... THETA=... F=...
Wird die Werkzeugorientierung durch Rundachspositionen angegeben, z. B. in der Form

N... X... Y... Z... A=... B=... THETA=... F=...


wird die Komprimierung abhängig davon, ob eine Großkreisinterpolation durchgeführt wird
oder nicht, unterschiedlich interpretiert. Im Fall, dass keine Großkreisinterpolation stattfindet,
wird die komprimierte Orientierungsänderung durch axiale Polynome für die Rundachsen
dargestellt.

Parameter
Die bisher für den Kompressor gültigen Parameterzuweisungen sind auch für
Rundachspositionen anwendbar.

TRAORI Orientierungstransformation aktivieren


COMPON Kompressor Ein
G1 Linearinterpolation
X= Y= Z= Linearachsadressen
A= B= C= Rundachspositionen direkte Programmierung
A2= B2= C2= Rundachsadressen in Eulerwinkel oder RPY-Winkel
A3= B3= C3= Rundachsadressen des Richtungsvektors
THETA Drehung des Orientierungsvektors
F Bahnvorschub

Arbeitsvorbereitung
7-44 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.6 Komprimierung der Orientierung COMPON (A..., B..., C..., THETA)

Weitere Erläuterungen zur Programmierung des Drehwinkels THETA=... siehe Kapitel


"Drehung der Werkzeugorientierung (ORIROTA/TR/TT, ORIROTC, THETA).

Hinweis
Komprimierung nur bei aktiver Großkreisinterpolation
Dies ist der Fall, wenn sich die Werkzeugorientierung in der Ebene ändert, die von Start–
und Endorientierung aufgespannt wird. Die für eine Großkreisinterpolation geltenden
Bedingungen müssen über Maschinedaten eingestellt sein.
1. Maschinendatum: G-Code für Orientierungsinterpolation = FALSE
ORIWKS aktiv und die Orientierung als Vektor programmiert mit A3, B3, C3 bzw. A2, B2, C2
ist.
2. Maschinendatum: G-Code für Orientierungsinterpolation = TRUE
ORIVECT bzw. ORIPLANE aktiv ist. Die Werkzeugorientierung kann entweder als
Richtungsvektor oder mit Rundachspositionen programmiert sein. Ist einer der G-Codes
ORICONxx oder ORICURVE aktiv oder sind Polynome für die Orientierungswinkel (PO[PHI]
und PO[PSI]) programmiert, wird keine Großkreisinterpolation durchgeführt, d. h. solche
Sätze werden nicht komprimiert.

Beispiel "Kompressor für Orientierungen"


Im nachfolgenden Programmbeispiel wird ein Kreis, der durch einen Polygonzug angenähert
ist, komprimiert. Die Werkzeugorientierung bewegt sich dabei synchron dazu auf einem
Kegelmantel. Obwohl die aufeinander folgenden programmierten Orientierungsänderungen
unstetig verlaufen, generiert der Kompressor einen glatten Verlauf der Orientierung.

DEF INT ANZAHL = 60


DEF REAL RADIUS = 20
DEF INT COUNTER
DEF REAL WINKEL
N10 G1 X0 Y0 F5000 G64
$SC_COMPRESS_CONTUR_TOL = 0.05 ;maximale Abweichung der Kontur: 0.05 mm
$SC_COMPRESS_ORI_TOL = 5 ;maximale Abweichung der Orientierung:
;5 Grad
TRAORI ;Es wird ein Kreis gefahren, der aus
COMPCURV ;Polygonen gebildet wird.

N100 X0 Y0 A3=0 B3==1 ;Die Orientierung bewegt sich dabei auf


;einem Kegel um die Z-Achse mit einem
N110 FOR COUNTER = 0 TO ANZAHL
;Öffnungswinkel von 45 Grad.
N120 WINKEL= 360 * COUNTER / ANZAHL
N130 X=RADIUS*COS(WINKEL)Y=RADIUS*
SIN(WINKEL) A3=SIN(WINKEL)
B3=(WINKEL) C3=1
N140 ENDFOR
...

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-45
Transformationen
7.6 Komprimierung der Orientierung COMPON (A..., B..., C..., THETA)

Beschreibung
Genauigkeit
NC-Sätze sind nur dann komprimierbar, falls man Abweichungen der Kontur von der
programmierten Kontur zulässt. Die maximale Abweichung ist als Kompressor-Toleranz in
Settingdaten einstellbar. Je größer die erlaubten Toleranzen sind, umso mehr Sätze können
komprimiert werden.
Achsgenauigkeit
Der Kompressor erzeugt für jede Achse eine Spline, die maximal um den mit dem axialen
Maschinendatum eingestellten Toleranzwert von den programmierten Endpunkten jeder
Achse abweicht.
Konturgenauigkeit
Es werden die maximalen geometrischen Abweichungen der Kontur (Geo) und der
Werkzeugorientierung kontrolliert. Dies erfolgt mit den Settingdaten für:
1. Maximale Toleranz für die Kontur
2. Maximale Winkelabweichung für die Werkzeugorientierung
3. Maximale Winkelabweichung für den Drehwinkel THEATA des Werkzeugs
(nur bei 6-Achs-Maschinen verfügbar)
Mit dem kanalspezifischen MD 20482 COMPRESSOR_MODE können die
Toleranzvorgaben eingestellt werden:
0: Achsgenauigkeit: axiale Toleranzen für alle Achsen (Geo- und Orientierungsachsen).
1: Konturgenauigkeit: Vorgabe der Konturtoleranz (1.), Toleranz für die Orientierung über
axiale Toleranzen (a.).
2: Vorgabe der maximalen Winkelabweichung für die Werkzeugorientierung (2.), Toleranz
für die Kontur über axiale Toleranzen (a.).
3: Vorgabe der Konturtoleranz mit (1.) und Vorgabe der maximalen Winkelabweichung für
die Werkzeugorientierung mit (2.).
Die Vorgabe einer maximalen Winkelabweichung der Werkzeugorientierung ist nur dann
möglich, wenn eine Orientierungstransformation (TRAORI) aktiv ist.

Arbeitsvorbereitung
7-46 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.7 Online -Werkzeuglängenkorrektur (TOFFON, TOFFOF)

7.7 7.7 Online-Werkzeuglängenkorrektur (TOFFON, TOFFOF)

Funktion
Über die Systemvariable $AA_TOFF[ ] können die effektiven Werkzeuglängen entsprechend
der drei Werkzeugrichtungen dreidimensional in Echtzeit überlagert werden.
Als Index werden die drei Geometrieachsbezeichner verwendet. Damit ist die Anzahl der
aktiven Korrekturrichtungen durch die zur selben Zeit aktiven Geometrieachsen festgelegt.
Alle Korrekturen können gleichzeitig aktiv sein.
Die Funktion Online-Werkzeuglängenkorrektur ist anwendbar bei:
● Orientierungstransformation TRAORI
● Orientierbare Werkzeugträger TCARR
Maschinenhersteller
Die Online-Werkzeuglängenkorrektur ist eine Option, die vorher frei geschaltet werden
muss. Nur in Verbindung mit einer aktiven Orientierungstransformation oder einem aktiven
orientierbaren Werkzeugträger ist diese Funktion sinnvoll.

Programmierung
N.. TRAORI
N.. TOFFON(X,25)
N.. WHEN TRUE DO $AA_TOFF[Werkzeugrichtung] in Synchronaktionen
Weitere Erläuterungen zur Programmierung der Online-Werkzeuglängenkorrektur in
Bewegungssynchronaktionen siehe Kapitel "Aktionen in Synchronaktionen".

Parameter

TOFFON Tool Offset ON (Online-Werkzeuglängenkorrektur aktivieren)


Bei der Aktivierung kann für die entsprechende Korrekturrichtung ein
Offsetwert angegeben werden, der sofort herausgefahren wird.
TOFFOF Tool Offset OF (Online-Werkzeuglängenkorrektur rücksetzen)
Die entsprechenden Korrekturwerte werden zurückgesetzt und es wird ein
Vorlaufstopp ausgelöst.
X, Y, Z, Korrekturrichtung für den angegebenen Offsetwert bei TOFFON

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-47
Transformationen
7.7 Online -Werkzeuglängenkorrektur (TOFFON, TOFFOF)

Beispiel Anwahl der Werkzeuglängenkorrektur

MD 21190: TOFF_MODE =1 ;absolute Werte werden angefahren


MD 21194: TOFF_VELO[0] =1000
MD 21196: TOFF_VELO[1] =1000
MD 21194: TOFF_VELO[2] =1000
MD 21196: TOFF_ACCEL[0] =1
MD 21196: TOFF_ACCEL[1] =1
MD 21196: TOFF_ACCEL[2] =1
N5 DEF REAL XOFFSET
N10 TRAORI(1) ;Transformation ein
N20 TOFFON(Z) ;Aktivierung der Online-WZL-Korrektur
;für die Z-Werkzeugrichtung
N30 WHEN TRUE DO $AA_TOFF[Z] = 10 ;für die Z-Werkzeugrichtung wird eine
G4 F5 ;WZL-Korrektur von 10 interpoliert
...
N100 XOFFSET = $AA_TOFF_VAL[X] ;aktuelle Korrektur in X-Richtung zuweisen
N120 TOFFON(X, -XOFFSET) ;für die X-Werkzeugrichtung wird die
G4 F5 ;WZL-Korrektur wieder zu 0 zurückgefahren

Beispiel Abwahl der Werkzeuglängenkorrektur

N10 TRAORI(1) ;Transformation ein


N20 TOFFON(X) ;Aktivierung der Z-Werkzeugrichtung
N30 WHEN TRUE DO $AA_TOFF[X] = 10 ;für die X-Werkzeugrichtung wird eine
G4 F5 ;WZL-Korrektur von 10 interpoliert
...
N80 TOFFOF(X) ;Positionsoffset der X-Werkzeugrichtung
;wird gelöscht: ...$AA_TOFF[X] = 0
;Es wird keine Achse verfahren
;zur aktuellen Position im WKS wird der
;Positionsoffset entsprechend der aktuellen
;Orientierung hinzugerechnet

Beschreibung
Satzaufbereitung
Bei der Satzaufbereitung im Vorlauf wird der im Hauptlauf wirksame aktuelle
Werkzeuglängenoffset mit berücksichtigt. Um die maximal zulässigen
Achsgeschwindigkeiten weitgehend ausnutzen zu können, ist es erforderlich, die
Satzaufbereitung mit einem Vorlaufstopp STOPRE anzuhalten, während ein Werkzeugoffset
aufgebaut wird.
Der Werkzeugoffset ist zum Vorlaufzeitpunkt auch immer dann bekannt, wenn die
Werkzeuglängenkorrekturen nach Programmstart nicht mehr verändert werden, oder wenn
nach einer Veränderung der Werkzeuglängenkorrekturen mehr Sätze abgearbeitet wurden
als der IPO-Buffer zwischen Vorlauf und Hauptlauf aufnehmen kann.

Arbeitsvorbereitung
7-48 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.8 Kinematische Transformation

Variable $AA_TOFF_PREP_DIFF
Das Maß für die Differenz zwischen der aktuellen im Interpolator wirksamen Korrektur und
der Korrektur, die zum Zeitpunkt der Satzaufbereitung wirksam war, kann in der Variablen
$AA_TOFF_PREP_DIFF[ ] abgefragt werden.
Maschinendaten und Settingdaten einstellen
Für die Online-Werkzeuglängenkorrektur stehen folgende Maschinendaten zur Verfügung:
● MD 20610: ADD_MOVE_ACCEL_RESERVE Beschleunigungsreserve für überlagerte
Bewegung.
● MD 21190: TOFF_MODE Inhalt der Systemvariable $AA_TOFF[ ] wird als absoluter
Wert herausgefahren oder aufintegriert.
● MD 21194: TOFF_VELO Geschwindigkeit der Online-Werkzeuglängenkorrektur.
● MD 21196: TOFF_ACCEL Beschleunigung der Online-Werkzeuglängenkorrektur.
● Settingdatum zur Vorgabe von Grenzwerten
SD 42970: TOFF_LIMIT Obergrenze des Werkzeuglängenkorrekturwertes.
Literatur: /FB3/ Funktionshandbuch Sonderfunktionen; 3- bis 5-Achs-Transformationen (F2).

7.8 7.8 Kinematische Transformation

7.8.1 Fräsbearbeitung an Drehteilen (TRANSMIT)

Funktion
Die Funktion TRANSMIT ermöglicht folgende Leistungen:
● Stirnseitige Bearbeitung an Drehteilen in der Drehaufspannung (Bohrungen, Konturen).
● Für die Programmierung dieser Bearbeitungen kann ein kartesisches Koordinatensystem
benutzt werden.
● Die Steuerung transformiert die programmierten Verfahrbewegungen des kartesischen
Koordinatensystems auf die Verfahrbewegungen der realen Maschinenachsen
(Standardfall):
– Rundachse
– Zustellachse senkrecht zur Drehachse
– Längsachse parallel zur Drehachse
– Die Linearachsen stehen senkrecht aufeinander.
● Werkzeugmittenversatz relativ zur Drehmitte ist zulässig.
● Die Geschwindigkeitsführung berücksichtigt die für die Drehbewegungen definierten
Begrenzungen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-49
Transformationen
7.8 Kinematische Transformation

TRANSMIT Transformationstypen
Für TRANSMIT-Bearbeitungen gibt es zwei einstellbare Ausprägungen:
● TRANSMIT im Standardfall mit (TRAFO_TYPE_n = 256)
● TRANSMIT mit zusätzlicher Y-Linearachse (TRAFO_TYPE_n = 257)
Der erweiterte Transformationstyp 257 kann dazu verwendet werden, um z. B.
Aufspannkorrekturen eines Werkzeugs mit realer Y-Achse zu kompensieren.

Programmierung
TRANSMIT oder TRANSMIT(n)
oder
TRAFOOF
Rundachse
Die Rundachse kann nicht programmiert werden, da sie von einer Geometrie-Achse belegt
wird und somit als Kanalachse nicht direkt programmierbar ist.

Arbeitsvorbereitung
7-50 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.8 Kinematische Transformation

Parameter

TRANSMIT Aktiviert die erste vereinbarte TRANSMIT-Funktion. Diese


Funktion wird auch als Polar-Transformation bezeichnet.
TRANSMIT(n) Aktiviert die n. vereinbarte TRANSMIT-Funktion; n darf maximal
2 sein (TRANSMIT(1) entspricht TRANSMIT).
TRAFOOF Schaltet eine aktive Transformation aus
OFFN Offset Kontur-normal: Abstand der stirnseitigen Bearbeitung
von der programmierten Bezugskontur

Hinweis
Eine aktive Transformation TRANSMIT wird ebenfalls ausgeschaltet, wenn im jeweiligen
Kanal eine der übrigen Transformationen aktiviert wird (z. B. TRACYL, TRAANG, TRAORI).

Beispiel

<

N10 T1 D1 G54 G17 G90 F5000 G94 ;Werkzeuganwahl


N20 G0 X20 Z10 SPOS=45 ;Anfahren der Ausgangsstellung
N30 TRANSMIT ;TRANSMIT-Funktion aktivieren
N40 ROT RPL=–45 ;Frame einstellen
N50 ATRANS X–2 Y10
N60 G1 X10 Y–10 G41 OFFN=1 ;Vierkant schruppen; Aufmaß 1 mm
N70 X–10
N80 Y10
N90 X10
N100 Y–10

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-51
Transformationen
7.8 Kinematische Transformation

N110 G0 Z20 G40 OFFN=0 ;Werkzeugwechsel


N120 T2 D1 X15 Y–15
N130 Z10 G41
N140 G1 X10 Y–10 ;Vierkant schlichten
N150 X–10
N160 Y10
N170 X10
N180 Y–10
N190 Z20 G40 ;Frame abwählen
N200 TRANS
N210 TRAFOOF
N220 G0 X20 Z10 SPOS=45 ;Anfahren der Ausgangsstellung
N230 M30

Beschreibung
Pol
Zum Durchfahren des Pols gibt es zwei Möglichkeiten:
● Verfahren der Linearachse allein
● Verfahren in den Pol mit Drehung der Rundachse im Pol und Fahren aus dem Pol
Die Auswahl erfolgt über die MD 24911 und 24951.
TRANSMIT mit zusätzlicher Y-Linearachse (Transformationstyp 257):
Diese Tranformationsvariante der Polar-Transformation nützt bei einer Maschine mit einer
weiteren Linearachse die Redundanz aus, um eine verbesserte Werkzeugkorrektur
durchzuführen. Für die zweite Linearachse gilt dann:
● ein kleinerer Arbeitsbereich und
● dass die zweite Linearachse für das Abfahren des Teileprogramms nicht genutzt werden
soll.
Für das Teileprogramm und die Zuordnung der entsprechenden Achsen im BKS oder MKS
werden bestimmte Maschinendateneinstellungen vorausgesetzt, siehe
Literatur
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Kinematische Transformationen (M1)

Arbeitsvorbereitung
7-52 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.8 Kinematische Transformation

7.8.2 Zylindermanteltransformation (TRACYL)

Funktion
Die Zylindermantelkurventransformation TRACYL ermöglicht folgende Leistungen:
Bearbeitung von
● Längsnuten an zylindrischen Körpern,
● Quernuten an zylindrischen Körpern,
● beliebig verlaufende Nuten an zylindrischen Körpern.
Der Verlauf der Nuten wird bezogen auf die abgewickelte, ebene Zylindermantelfläche
programmiert.

<

TRACYL Transformationstypen
Die Zylindermantelkoordinatentransformation gibt es in drei Ausprägungen:
● TRACYL ohne Nutwandkorrektur: (TRAFO_TYPE_n=512)
● TRACYL mit Nutwandkorrektur: (TRAFO_TYPE_n=513)
● TRACYL mit zusätzlicher Linearachse und mit Nutwandkorrektur: (TRAFO_TYPE_n=514)
Die Nutwandkorrektur wird mit TRACYL über den dritten Parameter parametriert.
Bei Zylindermantelkurventransformation mit Nutwandkorrektur sollte die für die Korrektur
verwendete Achse auf Null (y=0) stehen, damit die Nut mittig zur programmierten
Nutmittellinie gefertigt wird.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-53
Transformationen
7.8 Kinematische Transformation

Achsnutzung
Folgende Achsen können nicht als Positionierachse bzw. Pendelachse verwendet werden:
● die Geometrieachse in Umfangsrichtung der Zylindermantelfläche (Y-Achse)
● die zusätzliche Linearachse bei Nutwandkorrektur (Z-Achse)

Programmierung
TRACYL(d) oder TRACYL(d, n) oder
für Transformationstyp 514
TRACYL(d, n, Nutwandkorrektur)
oder
TRAFOOF
Rundachse
Die Rundachse kann nicht programmiert werden, da sie von einer Geometrie-Achse belegt
wird und somit als Kanalachse nicht direkt programmierbar ist.

Parameter

TRACYL(d) Aktiviert die erste in den Kanalmaschinendaten vereinbarte


TRACYL-Funktion. d Parameter für den Arbeitsdurchmesser.
TRACYL (d, n) Aktiviert die n. in den Kanalmaschinendaten vereinbarte
TRACYL-Funktion. n darf maximal 2 sein, TRACYL(d,1)
entspricht TRACYL(d).
d Wert für den Arbeitsdurchmesser. Der Arbeitsdurchmesser ist
der doppelte Abstand zwischen Werkzeugspitze und Drehmitte.
Dieser Durchmesser muss immer angegeben werden und größer
als 1 sein.
n Optionaler 2. Parameter für den TRACYL-Datensatz 1
(vorangewählt) oder 2.
Nutwandkorrektur Optionaler 3. Parameter dessen Wert für TRACYL aus den Mode
von Maschinendaten vorangewählt wird.
Wertebereich:
0: Transformationstyp 514 ohne Nutwandkorrektur wie bisher
1: Transformationstyp 514 mit Nutwandkorrektur
TRAFOOF Transformation aus (BKS und MKS sind wieder identisch).
OFFN Offset Kontur-normal: Abstand der Nutwand von der
programmierten Bezugskontur

Hinweis
Eine aktive Transformation TRACYL wird ebenfalls ausgeschaltet, wenn im jeweiligen Kanal
eine der übrigen Transformationen aktiviert wird (z. B. TRANSMIT, TRAANG, TRAORI).

Arbeitsvorbereitung
7-54 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.8 Kinematische Transformation

Beispiel Definition des Werkzeugs


Folgendes Beispiel ist geeignet, die Parametrierung der Zylindertransformation TRACYL zu
testen:

Werkzeugparameter Bedeutung Bemerkung


Nummer (DP)
$TC_DP1[1,1]=120 Werkzeugtyp Fräser
$TC_DP2[1,1]=0 Schneidenlage nur für Drehwerkzeuge

Geometrie Längenkorrektur
$TC_DP3[1,1]=8. Längenkorrekturvektor Verrechnung nach Typ
$TC_DP4[1,1]=9. und Ebene
$TC_DP5[1,1]=7.

Geometrie Radius
$TC_DP6[1,1]=6. Radius Werkzeugradius
$TC_DP7[1,1]=0 Nutbreite b für Nutsäge,
Verrundungsradius für
Fräswerkzeuge
$TC_DP8[1,1]=0 Überstand k nur für Nutsäge
$TC_DP9[1,1]=0
$TC_DP10[1,1]=0
$TC_DP11[1,1]=0 Winkel für kegelige
Fräswerkzeuge

Verschleiß Längen- und Radiuskorrektur


$TC_DP12[1,1]=0 Die restlichen Parameter bis Basismaß/Adapter
$TC_DP24=0

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-55
Transformationen
7.8 Kinematische Transformation

Beispiel Fertigen einer hakenförmigen Nut

<

Zylindermanteltransformation einschalten

N10 T1 D1 G54 G90 F5000 G94 ;Werkzeuganwahl, Aufspannkompensation


N20 SPOS=0 ;Anfahren der Ausgangsstellung
N30 G0 X25 Y0 Z105 CC=200
N40 TRACYL (40) ;Zylindermantelkurventransformation
;einschalten
N50 G19 ;Ebenenanwahl

Hakenförmigen Nut fertigen

N60 G1 X20 ;Werkzeug auf Nutgrund zustellen


N70 OFFN=12 ;Nutwandabstand 12 mm relativ zur
;Nutmittenlinie festlegen
N80 G1 Z100 G42 ;Anfahren der rechten Nutwand
N90 G1 Z50 ;Nutabschnitt parallel zur Zylinderachse
N100 G1 Y10 ;Nutabschnitt parallel zum Umfang
N110 OFFN=4 G42 ;Anfahren der linken Nutwand;
;Nutwandabstand 4 mm relativ zur
;Nutmittenlinie festlegen
N120 G1 Y70 ;Nutabschnitt parallel zum Umfang
N130 G1 Z100 ;Nutabschnitt parallel zur Zylinderachse
N140 G1 Z105 G40 ;Abfahren von der Nutwand
N150 G1 X25 ;Freifahren
N160 TRAFOOF
N170 G0 X25 Y0 Z105 CC=200 ;Anfahren der Ausgangsstellung
N180 M30

Arbeitsvorbereitung
7-56 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.8 Kinematische Transformation

Beschreibung
Ohne Nutwandkorrektur (Transformationstyp 512):
Die Steuerung transformiert die programmierten Verfahrbewegungen des Zylinder-
Koordinatensystems auf die Verfahrbewegungen der realen Maschinenachsen:
● Rundachse
● Zustellachse senkrecht zur Drehachse
● Längsachse parallel zur Drehachse
Die Linearachsen stehen senkrecht aufeinander. Die Zustellachse schneidet die Rundachse.

< E]Z &0

$60

= E]Z =0

;0

Mit Nutwandkorrektur (Transformationstyp 513):


Kinematik wie oben, aber zusätzlich –Längsachse parallel zur Umfangsrichtung
Die Linearachsen stehen senkrecht aufeinander.
Die Geschwindigkeitsführung berücksichtigt die für die Drehbewegungen definierten
Begrenzungen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-57
Transformationen
7.8 Kinematische Transformation

< E]Z &0

= E]Z=0
<0
$60

;0

Nutquerschnitt
Bei Achskonfiguration 1 sind Nuten längs zur Rundachse nur dann parallel begrenzt, wenn
die Nutbreite genau dem Werkzeugradius entspricht.
Nuten parallel zum Umfang (Quernuten) sind an Anfang und Ende nicht parallel.

/¦QJVQXW 4XHUQXW
SDUDOOHOEHJUHQ]WH
/¦QJVQXW
RKQH1XWZDQGNRUUHNWXU PLW1XWZDQGNRUUHNWXU
75$)2B7<3(BQ  75$)2B7<3(BQ 

Mit zusätzlicher Linearachse und mit Nutwandkorrektur (Transformationstyp 514):


Diese Transformationsvariante nützt bei einer Maschine mit einer weiteren Linearachse die
Redundanz aus, um eine verbesserte Werkzeugkorrektur durchzuführen. Für die zweite
Linearachse gilt dann:

Arbeitsvorbereitung
7-58 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.8 Kinematische Transformation

● ein kleinerer Arbeitsbereich und


● dass die zweite Linearachse für das Abfahren des Teileprogramms nicht genutzt werden
soll.
Für das Teileprogramm und die Zuordnung der entsprechenden Achsen im BKS oder MKS
werden bestimmte Maschinendateneinstellungen vorausgesetzt, siehe
Literatur
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Kinematische Transformationen (M1)

Offset Kontur-normal OFFN (Transformationstyp 513)


Um mit TRACYL Nuten zu fräsen, wird im
● Teileprogramm die Nutmittenlinie,
● über OFFN die halbe Nutbreite programmiert.
OFFN wird erst mit angewählter Werkzeugradiuskorrektur wirksam, um eine Beschädigung
der Nutwand zu vermeiden). Ferner sollte OFFN>=Werkzeugradius sein, um eine
Beschädigung der gegenüberliegenden Nutwand auszuschließen.

SURJUDPPLHUWH
2))1 .RQWXU

Ein Teileprogramm zum Fräsen einer Nut besteht in der Regel aus folgenden Schritten:
1. Werkzeug anwählen
2. TRACYL anwählen
3. Passende Koordinatenverschiebung (FRAME) anwählen
4. Positionieren
5. OFFN programmieren
6. WRK anwählen
7. Anfahrsatz (Einfahren der WRK und Anfahren der Nutwand)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-59
Transformationen
7.8 Kinematische Transformation

8. Kontur der Nutmittenlinie


9. WRK abwählen
[Link] (Ausfahren der WRK und Wegfahren von der Nutwand)
[Link]
[Link]
[Link]üngliche Koordinatenverschiebung (FRAME) wieder anwählen
Besonderheiten
● WRK-Anwahl:
WRK wird nicht hinsichtlich der Nutwand, sondern relativ zur programmierten
Nutmittenlinie programmiert. Damit das Werkzeug links von der Nutwand fährt, wird G42
eingegeben (anstatt G41). Sie vermeiden dies, wenn in OFFN die Nutbreite mit
negativem Vorzeichen eingetragen wird.
● OFFN mit TRACYL wirkt sich anders aus als ohne TRACYL. Da OFFN auch ohne
TRACYL bei aktiver WRK eingerechnet wird, sollte OFFN nach TRAFOOF wieder zu
Null gesetzt werden.
● Eine Änderung von OFFN innerhalb des Teileprogramms ist möglich. Damit könnte die
Nutmittenlinie aus der Mitte verschoben werden (siehe Bild).
● Führungsnuten:
Mit TRACYL wird nicht dieselbe Nut bei Führungsnuten erzeugt als wäre diese mit
einem Werkzeug gefertigt worden, dessen Durchmesser die Nutbreite aufweist. Es ist
prinzipiell nicht möglich, mit einem kleineren zylindrischen Werkzeug dieselbe
Nutwandgeometrie zu erzeugen wie mit einem größeren. TRACYL minimiert den Fehler.
Um Genauigkeitsprobleme zu vermeiden, sollte der Werkzeugradius nur wenig kleiner als
die halbe Nutbreite sein.

Hinweis
OFFN und WRK
Bei TRAFO_TYPE_n = 512 wirkt der Wert unter OFFN als Aufmass zur WRK.
Bei TRAFO_TYPE_n = 513 wird im OFFN die halbe Nutbreite programmiert. Die Kontur
wird mit OFFN-WRK abgefahren.

Arbeitsvorbereitung
7-60 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.8 Kinematische Transformation

7.8.3 Schräge Achse (TRAANG)

Funktion
Die Funktion Schräge Achse ist für die Technologie Schleifen gedacht und ermöglicht
folgende Leistungen:
● Bearbeitung mit schräger Zustellachse
● Für die Programmierung kann ein kartesisches Koordinatensystem verwendet werden.
● Die Steuerung transformiert die programmierten Verfahrbewegungen des kartesischen
Koordinatensystems auf die Verfahrbewegungen der realen Maschinenachsen
(Standardfall): schräge Zustellachse.

08

;

6FKOHLIVFKHLEH

& = $6 0=

:HUNVW¾FN

Programmierung
TRAANG(α) oder TRAANG(α, n)
oder
TRAFOOF

Parameter

TRAANG( ) oder Transformation mit der Parametrierung der


TRAANG( ,n) vorhergehenden Anwahl aktivieren.
TRAANG(α) Aktiviert die erste vereinbarte
Transformation Schräge Achse

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-61
Transformationen
7.8 Kinematische Transformation

TRAANG(α,n) Aktiviert die n. vereinbarte


Transformation Schräge Achse. n darf
maximal 2 sein. TRAANG(α,1) entspricht
TRAANG(α).
α Winkel der schrägstehenden Achse
Zulässige Werte für α sind:
-90 Grad < α < + 90 Grad
TRAFOOF Transformation aus
n Anzahl vereinbarte Transformationen

Winkel α weglassen oder Null


Wird der Winkel α weggelassen (z. B. TRAANG(), TRAANG(, n)), wird die Transformation
mit der Parametrierung der vorhergehenden Anwahl aktiviert. Bei der ersten Anwahl gilt die
Vorbelegung gemäß den Maschinendaten.
Ein Winkel α = 0 (z. B. TRAANG(0), TRAANG(0,n)) ist eine gültige Parametrierung und
entspricht nicht mehr dem Weglassen des Parameters bei älteren Versionen.

Beispiel

08

;

6FKOHLIVFKHLEH

& = $6 0=

:HUNVW¾FN

N10 G0 G90 Z0 MU=10 G54 F5000 -> ;Werkzeuganwahl,


-> G18 G64 T1 D1 ;Aufspannkompensation,
;Ebenenanwahl
N20 TRAANG(45) ;Transformation Schräge Achse
;einschalten
N30 G0 Z10 X5 ;Anfahren der Ausgangsstellung
N40 WAITP(Z) ;Achsen zum Pendeln freigeben

Arbeitsvorbereitung
7-62 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.8 Kinematische Transformation

N50 OSP[Z]=10 OSP2[Z]=5 OST1[Z]=–2 -> ;Pendeln, bis Maß erreicht


-> OST2[Z]=–2 FA[Z]=5000 ;(Pendeln siehe Kapitel "Pendeln")
N60 OS[Z]=1
N70 POS[X]=4.5 FA[X]=50
N80 OS[Z]=0
N90 WAITP(Z) ;Pendelachsen als Positionierachsen
;freigeben
N100 TRAFOOF ;Transformation ausschalten
N110 G0 Z10 MU=10 ;Freifahren
N120 M30

-> in einem Satz programmieren

Beschreibung
Folgende Bearbeitungen sind möglich:
1. Längsschleifen
2. Planschleifen
3. Schleifen einer bestimmten Kontur
4. Schrägeinstechschleifen




Maschinenhersteller
Folgende Einstellungen werden über Maschinendatum festgelegt:
● der Winkel zwischen einer Maschinenachse und der schrägen Achse,
● die Lage des Werkzeugnullpunktes bezogen auf den Ursprung des bei der Funktion
"Schräge Achse" vereinbarten Koordinatensystems,

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-63
Transformationen
7.8 Kinematische Transformation

● die Geschwindigkeitsreserve, die auf der parallelen Achse für die Ausgleichsbewegung
bereitgehalten wird,
● die Achsbeschleunigungsreserve, die auf der parallelen Achse für die
Ausgleichsbewegung bereitgehalten wird.
Achskonfiguration
Um im kartesischen Koordinatensystem programmieren zu können, muss der Steuerung der
Zusammenhang zwischen diesem Koordinatensystem und den tatsächlich existierenden
Maschinenachsen (MU, MZ) mitgeteilt werden:
● Benennung der Geometrieachsen
● Zuordnung der Geometrieachsen zu Kanalachsen
– allgemeiner Fall (Schräge Achse nicht aktiv)
– Schräge Achse aktiv
● Zuordnung der Kanalachsen zu den Maschinenachsnummern
● Kennzeichnung der Spindeln
● Zuweisung von Maschinenachsnamen
Das Vorgehen entspricht mit Ausnahme von "Schräge Achse aktiv" dem Vorgehen bei der
normalen Achskonfiguration.

7.8.4 Schräge Achse programmieren (G05, G07)

Funktion
Im JOG–Betrieb kann die Schleifscheibe wahlweise kartesisch oder in Richtung der
Schrägen Achse bewegt (Anzeige bleibt kartesisch) werden. Es bewegt sich nur die reale U–
Achse, die Anzeige der Z–Achse wird aktualisiert.
REPOS–Verschiebungen müssen im Jog–Betrieb kartesisch zurückgefahren werden.
Das Überfahren der kartesischen Arbeitsfeldbegrenzung wird im JOG–Betrieb bei aktivem
"PTP–Fahren" überwacht, die entsprechende Achse wird vorher gebremst. Ist "PTP–Fahren"
nicht aktiv, kann die Achse exakt bis zur Arbeitsfeldbegrenzung gefahren werden.
Literatur
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Kinematische Transformation (M1)

Programmierung
G07
G05
Die Befehle G07/G05 dienen der Erleichterung der Programmierung der Schrägen Achse.
Dabei können Positionen im kartesischen Koordinatensystem programmiert und angezeigt
werden. Die Werkzeugkorrektur und Nullpunktverschiebung werden kartesisch eingerechnet.
Nach der Programmierung des Winkels für die Schräge Achse im NC–Programm kann die
Startposition angefahren werden (G07) und danach das Schrägeinstechen (G05) vollzogen
werden.

Arbeitsvorbereitung
7-64 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.8 Kinematische Transformation

Parameter

G07 Startposition anfahren


G05 Aktiviert Schrägeinstechen

Beispiel

8
˞
;

1
1
6FKOHLIVFKHLEH

& = $6

:HUNVW¾FN

N.. G18 ;Winkel für die Schräge Achse


;programmieren
N50 G07 X70 Z40 F4000 ;Startposition anfahren
N60 G05 X70 F100 ;Schräg einstechen
N70 ...

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-65
Transformationen
7.9 Kartesisches PTP-Fahren

7.9 7.9 Kartesisches PTP-Fahren

Funktion
Mit dieser Funktion kann eine Position in einem kartesischen Koordinatensystem
programmiert werden, die Bewegung der Maschine erfolgt aber in Maschinenkoordinaten.
Die Funktion kann beispielsweise beim Wechseln der Gelenkstellung angewendet werden,
wenn dabei die Bewegung durch eine Singularität führt.

Hinweis
Die Funktion ist nur in Verbindung mit einer aktiven Transformation sinnvoll. Weiterhin ist
das "PTP-Fahren" nur in Verbindung mit G0 und G1 zulässig.

Programmierung
N... TRAORI
N... STAT='B10' TU='B100' PTP
N... CP
PTP-Fahren bei generischer 5/6-Achs Transformation
Wird bei aktiver generischer 5/6-Achs-Transformation mit PTP ein Punkt-zu-Punkt Fahren im
Maschinenkoordinatensystem (ORIMKS) aktiviert, dann kann die Werkzeugorientierung
sowohl mit Rundachspositionen
N... G1 X Y Z A B C
als auch mit von der Kinematik unabhängigen Vektoren Euler- bzw. RPY-Winkel
N... ORIEULER oder ORIRPY
N... G1 X Y Z A2 B2 C2
oder den Richtungsvektoren
N... G1 X Y Z A3 B3 C3
programmiert werden. Dabei kann sowohl Rundachsinterpolation als auch
Vektorinterpolation mit Großkreisinterpolation ORIVECT oder Interpolation des
Orientierungsvektors auf einer Kegelmantelfläche ORICONxx aktiv sein.
Mehrdeutigkeiten der Orientierung mit Vektoren
Bei der Programmierung der Orientierung mit Vektoren gibt es eine Mehrdeutigkeit in den
möglichen Rundachspositionen. Die anzufahrenden Rundachspositionen können dabei
durch die Programmierung von STAT = <...> ausgewählt werden. Wird
STAT = 0 programmiert wird (dies entspricht der Standardeinstellung),
werden die Positionen, die den kürzesten Abstand zu den Startpositionen haben
angefahren. Wenn
STAT = 1 programmiert wird,
werden die Positionen, die den längeren Abstand zu den Startpositionen haben angefahren.

Arbeitsvorbereitung
7-66 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.9 Kartesisches PTP-Fahren

Parameter
Die Befehle PTP und CP sind modal wirksam. CP ist die Standardeinstellung.
Während die Programmierung des STAT–Wertes modal gültig ist, wirkt die Programmierung
von TU = <...> satzweise.
Ein weiterer Unterschied ist auch, dass die Programmierung eines STAT–Wertes sich nur
bei Vektorinterpolation auswirkt, während die Programmierung von TU auch bei aktiver
Rundachsinterpolation ausgewertet wird.

PTP Point to Point (Punkt zu Punkt Bewegung)


Die Bewegung wird als Synchronachsbewegung ausgeführt; die langsamste
an der Bewegung beteiligte Achse ist die dominierende Achse für die
Geschwindigkeit.
CP continuous path (Bahnbewegung)
Die Bewegung wird als kartesische Bahnbewegung ausgeführt.
STAT= Stellung der Gelenke; Wert ist abhängig von der Transformation.
TU= TURN-Information ist satzweise wirksam. Dadurch ist es möglich,
Achswinkel zwischen -360 Grad und +360 Grad eindeutig anzufahren.

Beispiel

(OOERJHQREHQ

$

=
<

(OOERJHQXQWHQ

;

N10 G0 X0 Y-30 Z60 A-30 F10000 ;Ausgangsstellung


→ Ellbogen oben
N20 TRAORI(1) ;Transformation ein
N30 X1000 Y0 Z400 A0
N40 X1000 Z500 A0 STAT='B10' TU='B100' PTP ;Umorientierung ohne Transformation
→ Ellbogen unten
N50 X1200 Z400 CP ;Transformation wieder aktiv

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-67
Transformationen
7.9 Kartesisches PTP-Fahren

N60 X1000 Z500 A20


N70 M30

Beispiel PTP-Fahren bei generischer 5-Achs Transformation


Annahme: Es liegt eine rechtwinklige CA–Kinematik zu Grunde.

TRAORI ;Transformation CA-Kinematik ein


PTP ;PTP-Fahren einschalten
N10 A3 = 0 B3 = 0 C3 = 1 ;Rundachspositionen C = 0 A = 0
N20 A3 = 1 B3 = 0 C3 = 1 ;Rundachspositionen C = 90 A = 45
N30 A3 = 1 B3 = 0 C3 = 0 ;Rundachspositionen C = 90 A = 90
N40 A3 = 1 B3 = 0 C3 = 1 STAT = 1 ;Rundachspositionen C = 270 A = –45

Eindeutige Anfahrstellung der Rundachsposition auswählen:


Im Satz N40 fahren dabei die Rundachsen durch die Programmierung von STAT = 1 den
längeren Weg von ihrem Startpunkt (C=90, A=90) zum Endpunkt (C=270, A=–45), anstatt
wie es bei STAT = 0 der Fall wäre den kürzesten Weg zum Endpunkt (C=90, A=45).

Beschreibung
Die Umschaltung zwischen dem kartesischen Verfahren und dem Verfahren der
Maschinenachsen erfolgt durch die Befehle PTP und CP.
PTP-Fahren bei generischer 5/6-Achs Transformation
Beim PTP–Fahren bleibt im Gegensatz zur 5/6–Achs Transformation die TCP allgemein
nicht ortsfest, falls sich nur die Orientierung ändert. Es werden die transformierten
Endpositionen aller Transformationsachsen (3 Linearachsen und bis zu 3 Rundachsen)
linear angefahren, ohne dass dabei die Transformation im eigentlichen Sinn noch aktiv ist.
Das PTP–Fahren wird durch Programmierung des modalen G–Codes CP ausgeschaltet.
Die unterschiedlichen Transformationen sind enthalten in der Druckschrift:
/FB3/ Funktionshandbuch Sonderfunktionen; Transformationspaket Handling (TE4).
Programmierung der Stellung (STAT=)
Eine Maschinenstellung ist allein durch die Positionsangabe mit kartesischen Koordinaten
und der Orientierung des Werkzeugs nicht eindeutig bestimmt. Je nachdem, um welche
Kinematik es sich handelt, existieren bis zu 8 unterschiedliche bzw. unterscheidende
Gelenkstellungen. Diese sind damit transformationsspezifisch. Um eine kartesische Position
eindeutig in die Achswinkel umrechnen zu können, muss die Stellung der Gelenke mit dem
Befehl STAT= angegeben werden. Der Befehl "STAT" enthält als Binärwert für jede der
möglichen Stellungen ein Bit.
Die Stellungsbits, welche bei "STAT" zu programmieren sind, siehe:
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Kinematische Transformation (M1),
Kapitel "Kartesisches PTP-Fahren".
Programmierung der Achswinkel (TU=)
Um Achswinkel < ±360 Grad eindeutig anfahren zu können, muss diese Information mit dem
Befehl "TU= " programmiert werden.

Arbeitsvorbereitung
7-68 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.9 Kartesisches PTP-Fahren

Die Achsen verfahren auf kürzestem Weg:


● wenn bei einer Position kein TU programmiert wird,
● bei Achsen, welche einen Verfahrbereich > ±360 Grad besitzen.
Beispiel:
Die im Bild angegebene Zielposition kann in negativer oder in positiver Richtung angefahren
werden. Unter der Adresse A1 wird die Richtung programmiert.
A1=225°, TU=Bit 0, → positive Richtung
A1=−135°, TU=Bit 1, → negative Richtung

$QIDQJVSRVLWLRQ

QHJDWLYH
SRVLWLYH 5LFKWXQJ
5LFKWXQJ

=LHOSRVLWLRQ

Beispiel Auswertung von TU für generische 5/6-Achs Transformation und Zielpositionen


Die Variable TU enthält für jede Achse, die in die Transformation eingeht, ein Bit, das die
Verfahrrichtung anzeigt. Die Zuordnung der TU–Bits entspricht der Kanalachssicht der
Rundachsen. Die TU–Information wird nur bei den bis zu 3 möglichen Rundachsen, die in
die Transformation eingehen, ausgewertet:
Bit0: Achse 1, TU–Bit = 0 : 0 Grad <= Rundachswinkel < 360 Grad
Bit1: Achse 2, TU–Bit = 1: –360 Grad < Rundachswinkel < 0 Grad
Die Startposition einer Rundachse ist C = 0, durch die Programmierung von C = 270 fährt
die Rundachse auf folgende Zielpositionen:
C = 270: TU–Bit 0, positive Drehrichtung
C = –90: TU–Bit 1, negative Drehrichtung

Weiteres Verhalten
Betriebsartenwechsel
Die Funktion "Kartesisches PTP-Fahren" ist nur in den Betriebsarten AUTO und MDA
sinnvoll. Beim Wechsel der Betriebsart nach JOG bleibt die aktuelle Einstellung erhalten.
Wenn der G-Code PTP eingestellt ist, werden die Achsen im MKS verfahren. Wenn der G-
Code CP eingestellt ist, werden die Achsen im WKS verfahren.
Power On/RESET
Nach Power On oder nach RESET ist die Einstellung abhängig vom Maschinendatum
$MC_GCODE_REST_VALUES[48]. Standardmäßig ist die Verfahrart "CP" eingestellt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-69
Transformationen
7.9 Kartesisches PTP-Fahren

REPOS
War während des Unterbrechungssatzes die Funktion "Kartesisches PTP-Fahren"
eingestellt, wird auch mit PTP rückpositioniert.
Überlagerte Bewegungen
DRF-Verschiebung oder externe Nullpunktverschiebung sind beim kartesischen PTP-Fahren
nur eingeschränkt möglich. Beim Wechsel von einer PTP- nach einer CP-Bewegung dürfen
keine Überlagerungen im BKS vorhanden sind.
Überschleifen zwischen CP- und PTP-Bewegungen
Zwischen den Sätzen ist mit G641 ein programmierbares Übergangsverschleifen möglich.
Die Größe des Verschleifbereiches ist der Bahnweg in mm oder Inch, ab dem bzw. zu dem
der Satzübergang verschliffen wird. Die Größe ist wie folgt anzugeben:
● für G0-Sätze mit ADISPOS
● für alle anderen Wegbefehle mit ADIS
Die Bahnwegberechnung entspricht der Berücksichtigung der F-Adressen bei Nicht-G0-
Sätzen. Der Vorschub wird auf die in FGROUP(...) angegebenen Achsen eingehalten.
Vorschubberechnung
Für CP-Sätze werden die kartesischen Achsen des Basiskoordinatensystems zur
Berechnung verwendet.
Für PTP-Sätze werden die entsprechenden Achsen des Maschinenkoordinatensystems zur
Berechnung verwendet.

7.9.1 PTP bei TRANSMIT

Funktion
Mit PTP bei TRANSMIT können G0- und G1-Sätze zeitoptimiert angefahren werden. Anstatt
die Achsen des Basiskoordinatensystems linear zu verfahren (CP), werden die
Maschinenachsen linear verfahren (PTP). Dadurch wirkt sich der Maschinenachsverlauf in
Polnähe so aus, dass der Satzendpunkt erheblich schneller erreicht werden kann.
Das Teileprogramm wird weiterhin im kartesischen Werkstückkoordinatensystem
geschrieben und alle Koordinatenverschiebungen, Drehungen und Frameprogrammierungen
bleiben gültig. Die Simulation auf HMI, wird ebenfalls im kartesischen
Werkstückkoordinatensystem angezeigt.

Programmierung
N... TRANSMIT
N... PTPG0
N... G0 ...
...
N... G1 ...

Arbeitsvorbereitung
7-70 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.9 Kartesisches PTP-Fahren

Parameter

TRANSMIT Aktiviert die erste vereinbarte TRANSMIT-Funktion


(siehe Kapitel "Fräsbearbeitungen an Drehteilen: TRANSMIT")
PTPG0 Point to Point G0 (Punkt zu Punkt Bewegung automatisch zu jedem G0-Satz
und danach wieder CP setzen)
Da STAT und TU modal sind, gilt immer der zuletzt programmierte Wert.
PTP Point to Point (Punkt zu Punkt Bewegung)
Für TRANSMIT bedeutet PTP, dass im Kartesischen auf Archimedischen
Spiralen entweder um den Pol oder aus dem Pol herausgefahren wird. Die
hieraus resultierenden Werkzeugbewegungen verlaufen deutlich anders als
bei CP und sind in den jeweiligen Programmierbeispielen dargestellt.
STAT= Auflösen der Mehrdeutigkeit hinsichtlich des Pols.
TU= TU ist bei PTP bei TRANSMIT nicht relevant

Beispiel Umfahren des Poles mit PTP und TRANSMIT

\
373
&3  1*;<


1;<



      [







N001 G0 X30 Z0 F10000 T1 D1 G90 ;Ausgangsstellung Absolutmaß


N002 SPOS=0
N003 TRANSMIT ;Transformation TRANSMIT
N010 PTPG0 ;zu jedem G0-Satz automatisch
;PTP und danach wieder CP
N020 G0 X30 Y20
N030 X-30 Y-20
N120 G1 X30 Y20
N110 X30 Y0
M30

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-71
Transformationen
7.9 Kartesisches PTP-Fahren

Beispiel Herausfahren aus dem Pol mit PTP und TRANSMIT

PTP
30
CP

N070 X20 Y2 20

10 N060 X0 Y0

-30 -20 -10 10 20 30

-10

-20

-30 N050 X10 Y0

N001 G0 X90 Z0 F10000 T1 D1 G90 ;Ausgangsstellung


N002 SPOS=0
N003 TRANSMIT ;Transformation TRANSMIT
N010 PTPG0 ;zu jedem G0-Satz automatisch
;PTP und danach wieder CP
N020 G0 X90 Y60
N030 X-90 Y-60
N040 X-30 Y-20
N050 X10 Y0
N060 X0 Y0
N070 X-20 Y2
N170 G1 X0 Y0
N160 X10 Y0
N150 X-30 Y-20
M30

Beschreibung
PTP und PTPG0
PTPG0 wird bei allen Transformationen berücksichtigt, die PTP abarbeiten können. In allen
anderen Fällen ist PTPG0 nicht relevant.
G0-Sätze werden im CP-Mode abgefahren.
Die Anwahl von PTP bzw. PTPG0 erfolgt im Teileprogramm oder durch die Abwahl von
CP im Maschinendatum $MC_GCODE_RESET_VALUES[48].

Arbeitsvorbereitung
7-72 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.9 Kartesisches PTP-Fahren

Vorsicht
Randbedingungen
Hinsichtlich der Werkzeugbewegungen und Kollision gelten mehrere Randbedingungen und
bestimmte Funktionsausschlüsse wie:
Mit PTP darf keine Werkzeugradiuskorrektur (WRK) aktiv sein.
Mit PTPG0 wird bei aktiver Werkzeugradiuskorrektur (WRK) per CP gefahren.
Mit PTP ist Weiches An- und Abfahren (WAB) nicht möglich.
Mit PTPG0 wird bei Weichem An- und Abfahren (WAB) per CP gefahren.
Mit PTP sind Abspanzyklen (CONTPRON, CONTDCON) nicht möglich.
Mit PTPG0 wird in Abspanzyklen (CONTPRON, CONTDCON) per CP gefahren.
Fase (CHF, CHR) und Rundung (RND, RNDM) werden ignoriert.
Kompressor ist nicht verträglich mit PTP und wird automatisch in PTP-Sätzen abgewählt.
Eine Achsüberlagerung in der Interpolation darf sich während des PTP-Abschnittes nicht
ändern.
Bei G643 wird automatisch nach Überschleifen mit axialer Genauigkeit G642
umgeschaltet.
Bei aktivem PTP können Achsen der Transformation nicht gleichzeitig Positionierachsen
sein.
Literatur:
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Kinematische Transformation (M1),
Kapitel "Kartesisches PTP-Fahren"
PTP bei TRACON:
PTP kann auch mit TRACON genutzt werden, wenn die erste verkettete Transformation
PTP unterstützt.
Bedeutung von STAT= und TU= bei TRANSMIT
Soll die Rundachse um 180 Grad drehen, bzw. die Kontur bei CP durch den Pol führen,
können Rundachsen abhängig vom Maschinendatum
$MC_TRANSMIT_POLE_SIDE_FIX_1/2 [48] um -/+ 180 Grad gedreht und im oder
gegen den Uhrzeigersinn verfahren werden. Ebenso kann eingestellt werden, ob durch den
Pol gefahren wird, oder um den Pol gedreht wird.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-73
Transformationen
7.10 Randbedingungen bei der Anwahl einer Transformation

7.10 7.10 Randbedingungen bei der Anwahl einer Transformation

Funktion
Die Anwahl von Transformationen ist über Teileprogramm bzw. MDA möglich. Dabei ist zu
beachten:
● Ein Bewegungszwischensatz wird nicht eingefügt (Fasen/Radien).
● Eine Spline-Satzfolge muss abgeschlossen sein; wenn nicht, erscheint eine Meldung.
● Werkzeugfeinkorrektur muss abgewählt sein (FTOCOF); wenn nicht, erscheint eine
Meldung.
● Werkzeugradiuskorrektur muss abgewählt sein (G40); wenn nicht, erscheint eine
Meldung.
● Eine aktivierte Werkzeuglängenkorrektur wird von der Steuerung in die Transformation
übernommen.
● Der vor der Transformation wirksame aktuelle Frame wird von der Steuerung abgewählt.
● Eine aktive Arbeitsfeldbegrenzung wird für die von der Transformation betroffenen
Achsen von der Steuerung abgewählt (entspricht WALIMOF).
● Schutzbereichsüberwachung wird abgewählt.
● Bahnsteuerbetrieb und Überschleifen werden unterbrochen.
● Alle in dem Maschinendatum angegebenen Achsen müssen satzbezogen synchronisiert
sein.
● Getauschte Achsen werden zurückgetauscht; wenn nicht, erscheint eine Meldung.
● Bei abhängigen Achsen wird eine Meldung ausgegeben.
Werkzeugwechsel
Ein Werkzeugwechsel ist nur bei abgewählter Werkzeugradiuskorrektur zulässig.
Ein Wechsel der Werkzeuglängenkorrektur und eine An-/Abwahl der
Werkzeugradiuskorrektur darf nicht im selben Satz programmiert sein.
Framewechsel
Alle Anweisungen, die sich nur auf das Basis-Koordinatensystem beziehen, sind erlaubt
(FRAME, Werkzeugradiuskorrektur). Ein Framewechsel bei G91 (Kettenmaß) wird aber –
anders als bei inaktiver Transformation – nicht gesondert behandelt. Das zu fahrende
Inkrement wird im Werkstück-Koordinatensystem des neuen Frames ausgewertet –
unabhängig davon, welches Frame im Vorgängersatz wirkte.
Ausschlüsse
Von der Transformation betroffene Achsen können nicht verwendet werden:
● als Preset-Achse (Alarm),
● für das Fixpunktanfahren (Alarm),
● zum Referieren (Alarm).

Arbeitsvorbereitung
7-74 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.11 Transformation abwählen (TRAFOOF)

7.11 7.11 Transformation abwählen (TRAFOOF)

Funktion
Mit dem Befehl TRAFOOF werden alle aktiven Transformationen und Frames ausgeschaltet.

Hinweis
Danach benötigte Frames müssen durch erneute Programmierung aktiv geschaltet werden.
Dabei ist zu beachten:
Für die Abwahl der Transformation gelten dieselben Randbedingungen wie für die Anwahl
(siehe Kapitel "Randbedingungen bei der Anwahl einer Transformation").

Programmierung
TRAFOOF

Parameter

TRAFOOF Schaltet alle aktiven Transformationen/Frames aus

7.12 7.12 Verkettete Transformationen (TRACON, TRAFOOF)

Funktion
Jeweils zwei Transformationen können hintereinander geschaltet (verkettet) werden, so dass
die Bewegungsanteile für die Achsen aus der ersten Transformation Eingangsdaten für die
verkettete zweite Transformation sind. Die Bewegungsanteile aus der zweiten
Transformation wirken auf die Maschinenachsen.
Die Kette darf zwei Transformationen umfassen.

Hinweis
Ein Werkzeug wird immer der ersten Transformation einer Kette zugeordnet. Die
nachfolgende Transformation verhält sich dann so, als ob die aktive Werkzeuglänge Null
wäre. Es sind nur die über Maschinendaten eingestellten Basislängen eines Werkzeuges
(_BASE_TOOL_) für die erste Transformation der Kette wirksam.
Maschinenhersteller
Beachten Sie die Hinweise des Maschinenherstellers zu ggf. durch Maschinendaten
vordefinierten Transformationen.
Transformationen und verkettete Transformationen sind Optionen. Über die Verfügbarkeit
bestimmter Transformationen in der Kette in bestimmten Steuerungen gibt jeweils der
aktuelle Katalog Auskunft.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-75
Transformationen
7.12 Verkettete Transformationen (TRACON, TRAFOOF)

Anwendungen
● Schleifen von Konturen, die als Mantellinie einer Zylinderabwicklung programmiert
wurden (TRACYL) mit einer schräg stehenden Schleifscheibe z. B. Werkzeugschleifen.
● Feinbearbeitung einer mit TRANSMIT erzeugten nicht runden Kontur mit schräg
stehender Schleifscheibe.

Programmierung

TRACON(trf, par) Eine verkettete Transformation wird eingeschaltet.


TRAFOOF

Parameter

TRACON Die verkettete Transformation wird eingeschaltet. Eine zuvor aktivierte


andere Transformation wird durch TRACON() implizit ausgeschaltet.
TRAFOOF Die zuletzt eingeschaltete (verkettete) Transformation wird
ausgeschaltet.
trf Nummer der verketteten Transformation:
0 oder 1 für erste/einzige verkettete Transformation.
Ist an dieser Stelle nichts programmiert, ist das gleichbedeutend mit der
Angabe des Wertes 0 oder 1, d. h. es wird die erste/einzige
Transformation aktiviert.
2 für die zweite verkettete Transformation. (Werte ungleich 0 - 2
erzeugen einen Fehleralarm).
par Ein oder mehrere durch Komma getrennte Parameter für die Transformationen
in der Verkettung, die Parameter erwarten, z. B. Winkel der schrägen
Achse. Bei nicht gesetzten Parametern werden die Voreinstellungen oder
die zuletzt benutzten Parameter wirksam. Durch Kommasetzung muss dafür
gesorgt werden, dass die angegeben Parameter in der Reihenfolge
ausgewertet werden, in der sie erwartet werden, wenn für vorher stehende
Parameter Voreinstellungen wirken sollen. Insbesondere muss bei Angabe
mindestens eines Parameters vor diesem ein Komma stehen, auch wenn die
Angabe von trf nicht notwendig ist, also beispielsweise TRACON( , 3.7).

Voraussetzung
Die zweite Transformation muss "Schräge Achse" (TRAANG) sein. Als erste Transformation
sind möglich:
● Orientierungstransformationen (TRAORI), einschließlich Kardanischer Fräskopf
● TRANSMIT
● TRACYL
● TRAANG
Für die Benutzung des Einschaltbefehles für eine verkettete Transformation ist
Voraussetzung, dass die einzelnen zu verkettenden Transformationen und die zu
aktivierende verkettete Transformation durch Maschinendaten definiert sind.

Arbeitsvorbereitung
7-76 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.13 Umschaltbare Geometrieachsen (GEOAX)

Die in den Einzelbeschreibungen für die Transformationen angegebenen Randbedingungen


und Sonderfälle sind auch bei der Benutzung innerhalb einer Verkettung zu beachten.
Informationen zur Projektierung der Maschinendaten der Transformationen finden Sie im:
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Kinematische Transformationen (M1) und
/FB3/ Funktionshandbuch Sonderfunktionen; 3- bis 5-Achs-Transformationen (F2).

7.13 7.13 Umschaltbare Geometrieachsen (GEOAX)

Funktion
Mit der Funktion "Umschaltbare Geometrieachsen" lässt sich der über Maschinendatum
konfigurierte Geometrieachsverbund vom Teileprogramm aus verändern. Dabei kann eine
als synchrone Zusatzachse definierte Kanalachse eine beliebige Geometrieachse ersetzen.

Programmierung
GEOAX(n,Kanalachse,n,Kanalachse,…)
oder
GEOAX()

Parameter

GEOAX (n,Kanalachse,n,Kanalachse,…) Umschalten der Geometrieachsen.


GEOAX() Grundkonfiguration der Geometrieachsen
aufrufen
n Nummer der Geometrieachse (n=1, 2 oder
3), der eine andere Kanalachse zugeordnet
werden soll.
n=0: Angegebene Kanalachse aus dem
Geometrieachsverbund ersatzlos entfernen.
Kanalachse Name der Kanalachse, die in den
Geometrieachsverbund aufgenommen werden
soll.

Beispiel zwei Geometrieachsen Achsen Wechselweise umschalten


Ein Werkzeugschlitten kann über die Kanalachsen X1, Y1, Z1, Z2 verfahren werden. Im
Teileprogramm sollen die Achsen Z1 und Z2 wechselweise als Geometrieachse Z zum
Einsatz kommen. Das Umschalten zwischen den Achsen erfolgt im Teileprogramm mit
GEOAX.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-77
Transformationen
7.13 Umschaltbare Geometrieachsen (GEOAX)

=
=

<
;
<
=
;

Nach dem Einschalten ist die Verbindung X1, Y1, Z1 wirksam (einstellbar über MD).

N100 GEOAX (3,Z2) ;Als Z-Achse fungiert Kanalachse Z2


N110 G1 .....
N120 GEOAX (3,Z1) ;Als Z-Achse fungiert Kanalachse Z1

Beispiel Geometrieachskonfigurationen bei 6 Kanalachsen


Eine Maschine besitzt 6 Kanalachsen mit den Namen XX, YY, ZZ, U, V, W. Die
Grundeinstellung der Geometrieachskonfiguration über Maschinendaten ist:
Kanalachse XX = 1. Geometrieachse (X-Achse)
Kanalachse YY = 2. Geometrieachse (Y-Achse)
Kanalachse ZZ = 3. Geometrieachse (Z-Achse)

N10 GEOAX() ;Grundkonfiguration der Geometrieachsen ist wirksam.


N20 G0 X0 Y0 Z0 U0 V0 W0 ;Alle Achsen im Eilgang auf Position 0.
N30 GEOAX(1,U,2,V,3,W) ;Kanalachse U wird zur ersten (X), V zur zweiten (Y), W zur dritten
;Geometrieachse (Z).
N40 GEOAX(1,XX,3,ZZ) ;Kanalachse XX wird zur ersten (X), ZZ zur dritten Geometrieachse (Z).
;Kanalachse V bleibt zweite Geometrieachse (Y).
N50 G17 G2 X20 I10 F1000 ;Vollkreis in der X-, Y-Ebene. Es fahren die Kanalachsen XX und V
N60 GEOAX(2,W) ;Kanalachse W wird zweite Geometrieachse (Y).
N80 G17 G2 X20 I10 F1000 ;Vollkreis in der X-, Y-Ebene. Es fahren die Kanalachsen XX und W.
N90 GEOAX() ;Zurücksetzen auf Grundzustand
N100 GEOAX(1,U,2,V,3,W) ;Kanalachse U wird zur ersten (X), V zur zweiten (Y), W zur dritten
;Geometrieachse (Z).

Arbeitsvorbereitung
7-78 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Transformationen
7.13 Umschaltbare Geometrieachsen (GEOAX)

N110 G1 X10 Y10 Z10 XX=25 ;Kanalachsen U, V, W fahren jeweils auf die Position 10, XX als
;Zusatzachse fährt auf Position 25.
N120 GEOAX(0,V) ;V wird aus Geometrieachsverband herausgenommen. U und W sind
;weiterhin erste (X) und dritte Geometrieachse (Z). Die zweite
;Geometrieachse (Y) bleibt unbelegt.
N130 GEOAX(1,U,2,V,3,W) ;Kanalachse U bleibt erste (X), V wird zur zweiten (Y), W bleibt dritte
;Geometrieachse (Z).
N140 GEOAX(3,V) ;V wird zur dritten Geometrieachse (Z), wobei W überschrieben und
;damit aus dem Geometrieachsverbund herausgenommen wird. Die
;zweite Geometrieachse (Y) ist nach wie vor unbelegt.

Voraussetzungen und Einschränkungen


1. Die Umschaltung der Geometrieachsen ist nicht möglich bei:
– aktiver Transformation,
– aktiver Spline-Interpolation,
– aktiver Werkzeugradiuskorrektur (siehe PG Grundlagen Kapitel
"Werkzeugkorrekturen")
– aktiver Werkzeugfeinkorrektur (siehe PG Grundlagen Kapitel "Werkzeugkorrekturen").
2. Weisen Geometrieachse und Kanalachse gleiche Namen auf, ist kein Wechsel der
jeweiligen Geometrieachse möglich.
3. Keine der an der Umschaltung beteiligten Achsen darf an einer Aktion beteiligt sein, die
über die Satzgrenzen hinweg andauern kann, wie es z. B. bei Positionierachsen vom Typ
A oder bei Folgeachsen möglich ist.
4. Mit dem Befehl GEOAX können nur bereits beim Einschalten vorhandene
Geometrieachsen ersetzt werden (also keine neuen dazudefiniert werden).
5. Ein Achstausch mit GEOAX während der Aufbereitung der Konturtabelle (CONTPRON,
CONTDCON) führt zum Alarm.

Beschreibung
Die Geometrieachsnummer
Im Befehl GEOAX(n,Kanalachse...) bezeichnet die Nummer n die Geometrieachse,
der die nachfolgend angegebene Kanalachse zugeordnet werden soll.
Zum Einwechseln einer Kanalachse sind die Geometrieachsnummern 1 bis 3 (X-, Y-, Z-
Achse) zulässig.
Mit n = 0 wird eine zugewiesene Kanalachse ohne Neubelegung der Geometrieachse aus
dem Geometrieachsverbund entfernt.
Eine durch die Umschaltung im Geometrieachsverbund ersetzte Achse ist nach dem
Umschaltvorgang über ihren Kanalachsnamen als Zusatzachse programmierbar.
Mit dem Umschalten der Geometrieachsen werden alle Frames, Schutzbereiche und
Arbeitsfeldbegrenzungen gelöscht.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 7-79
Transformationen
7.13 Umschaltbare Geometrieachsen (GEOAX)

Polarkoordinaten
Ein Tausch der Geometrieachsen mit GEOAX setzt analog einem Ebenenwechsel (G17-
G19) die modalen Polarkoordinaten auf den Wert 0.
DRF, NPV
Eine eventuelle Handrad-Verschiebung (DRF) oder eine externe Nullpunktverschiebung
bleibt nach der Umschaltung wirksam.
Achspositionen tauschen
Durch Neuzuweisung der Achsnummern zu den bereits zugeordneten Kanalachsen ist auch
ein Positionswechsel innerhalb des Geometrieachsverbunds möglich.

N... GEOAX (1, XX, 2, YY, 3, ZZ) ;Kanalachse XX ist erste, YY zweite
N... GEOAX (1, U, 2, V, 3, W) ;und ZZ dritte Geometrieachse,
;Kanalachse U ist erste, V zweite
;und W dritte Geometrieachse.

Umschaltung deaktivieren
Der Befehl GEOAX() ruft die Grundkonfiguration des Geometrieachsverbunds auf.
Nach POWER ON und bei Umschalten in die Betriebsart Referenzpunktfahrt wird
automatisch auf die Grundkonfiguration zurückgeschaltet.
Umschaltvorgang und Werkzeuglängenkorrektur
Eine aktive Werkzeuglängenkorrektur ist auch nach dem Umschaltvorgang wirksam. Sie gilt
jedoch für die neu aufgenommenen bzw. positionsgetauschten Geometrieachsen als noch
nicht herausgefahren. Beim ersten Bewegungsbefehl für diese Geometrieachsen besteht der
resultierende Verfahrweg dementsprechend aus der Summe von Werkzeuglängenkorrektur
und programmiertem Verfahrweg.
Geometrieachsen, die bei einer Umschaltung ihre Position im Achsverband beibehalten,
behalten auch ihren Status bezüglich der Werkzeuglängenkorrektur.
Geometrieachskonfiguration und Transformationswechsel
Die in einer aktiven Transformation geltende Geometrieachskonfiguration (festgelegt über
Maschinendatum) ist über die Funktion "Umschaltbare Geometrieachsen" nicht veränderbar.
Besteht die Notwendigkeit, im Zusammenhang mit Transformationen die
Geometrieachskonfiguration zu ändern, so ist dies nur über eine weitere Transformation
möglich.
Eine über GEOAX veränderte Geometrieachskonfiguration wird durch Aktivierung einer
Transformation gelöscht.
Widersprechen sich Einstellungen der Maschinendaten für die Transformation und für die
Umschaltung von Geometrieachsen, so haben die Einstellungen in der Transformation
Vorrang.
Beispiel:
Eine Transformation sei aktiv. Laut Maschinendaten soll die Transformation bei einem
RESET erhalten bleiben, gleichzeitig soll bei einem RESET jedoch die Grundkonfiguration
der Geometrieachsen hergestellt werden. In diesem Fall bleibt die
Geometrieachskonfiguration, wie sie mit der Transformation festgelegt wurde, erhalten.

Arbeitsvorbereitung
7-80 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen 8
8.1 8.1 Korrekturspeicher

Funktion
Aufbau des Korrekturspeichers
Jedes Datenfeld ist mit einer T- und D-Nummer aufrufbar (außer "Flache D-Nr.") und enthält
neben den geometrischen Angaben für das Werkzeug noch weitere Einträge, z. B. den
Werkzeugtyp.
Flache D-Nummern-Struktur
Die "flache D-Nummern-Struktur" wird verwendet, wenn die Werkzeugverwaltung außerhalb
des NCK erfolgt. In diesem Fall werden die D-Nummern mit den zugehörigen
Werkzeugkorrektursätzen ohne Zuordnung zu Werkzeugen angelegt.
Im Teileprogramm kann weiterhin T programmiert werden. Dieses T hat aber keinen Bezug
zur programmierten D-Nummer.
Maschinenhersteller
Über Maschinendatum können Anwender-Schneidendaten konfiguriert werden. Bitte
beachten Sie die Angaben des Maschinenherstellers.

Parameter

Hinweis
Einzelne Werte im Korrekturspeicher
Die einzelnen Werte des Korrekturspeichers P1 bis P25 sind über Systemvariable
vom Programm les- und schreibbar. Alle übrigen Parameter sind reserviert.
Die Werkzeugparameter
$TC_DP6 bis $TC_DP8, $TC_DP10 und $TC_DP11 sowie $TC_DP15 bis $TC_DP17,
$TC_DP19 und $TC_DP20 haben abhängig vom Werkzeugtyp eine andere Bedeutung.
1Giltauch bei Fräswerkzeugen für das 3D-Stirnfräsen
2Bei Nutsäge Werkzeugtyp
3reserviert: Wird von SINUMERIK 840/810D nicht benutzt

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-1
Werkzeugkorrekturen
8.1 Korrekturspeicher

Werkzeugparameter Bedeutung der Systemvariablen Bemerkung


Nummer (DP)
$TC_DP1 Werkzeugtyp Übersicht siehe Liste
$TC_DP2 Schneidenlage nur für Drehwerkzeuge
Geometrie Längenkorrektur
$TC_DP3 Länge 1 Verrechnung nach
$TC_DP4 Länge 2 Typ und Ebene
$TC_DP5 Länge 3
Geometrie Radius
$TC_DP61 Radius 1 / Länge 1 Fräs-/Dreh-/Schleifwerkz.
$TC_DP62 Durchmesser d Nutsäge
$TC_DP71 Länge 2 / Eckenradius kegelige Fräser Fräswerkzeuge
$TC_DP72 Nutbreite b Eckenradius Nutsäge
$TC_DP81 Verrundungsradius 1 für Fräswerkzeuge Fräswerkzeuge
$TC_DP82 Überstand k Nutsäge
$TC_DP91,3 Verrundungsradius 2 reserviert
$TC_DP101 Winkel 1 Stirnseite des Werkzeugs kegelige Fräswerkzeuge
$TC_DP111 Winkel 2 Werkzeug-Längsachse kegelige Fräswerkzeuge
Verschleiß Längen- und Radiuskorrektur
$TC_DP12 Länge 1
$TC_DP13 Länge 2
$TC_DP14 Länge 3
$TC_DP151 Radius 1 / Länge 1 Fräs-/Dreh-/Schleifwerkz.
$TC_DP152 Durchmesser d Nutsäge
$TC_DP161 Länge 2 / Eckenradius kegelige Fräser Fräswerkzeuge
$TC_DP163 Nutbreite b Eckenradius Nutsäge
$TC_DP171 Verrundungsradius 1für Fräswerkzeuge Fräsen / 3D Stirnfräsen
$TC_DP172 Überstand k Nutsäge
$TC_DP181,3 Verrundungsradius 2 reserviert
$TC_DP191 Winkel 1 Stirnseite des Werkzeugs kegelige Fräswerkzeuge
$TC_DP201 Winkel 2 Werkzeug-Längsachse kegelige Fräswerkzeuge
Basismaß/Adapter Längenkorrekturen
$TC_DP21 Länge 1
$TC_DP22 Länge 2
$TC_DP23 Länge 3
Technologie
$TC_DP24 Freiwinkel nur für Drehwerkzeuge
$TC_DP25 reserviert

Anmerkungen
Für die geometrischen Größen (z. B. Länge 1 oder Radius) bestehen mehrere
Eintragskomponenten. Diese werden zu einer resultierenden Größe additiv verrechnet
(z. B. Gesamtlänge 1, Gesamtradius), die dann zur Wirkung kommt.
Nicht benötigte Korrekturen sind mit dem Wert Null zu belegen.

Arbeitsvorbereitung
8-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.1 Korrekturspeicher

Werkzeugparameter $TC-DP1 bis $TC-DP23 mit Konturwerkzeugen

Hinweis
Die Werkzeugparameter, die in der Tabelle nicht aufgeführt sind wie z.B. $TC_DP7, werden
nicht ausgewertet, d.h. ihr Inhalt ist bedeutungslos.

Werkzeugaramameter Bedeutung Schneiden Dn Bemerkung


Nummer (DP)
$TC_DP1 Werkzeugtyp 400 bis 599
$TC_DP2 Schneidenlage
Geometrie Längenkorrektur
$TC_DP3 Länge 1
$TC_DP4 Länge 2
$TC_DP5 Länge 3
Geometrie Radius
$TC_DP6 Radius
Geometrie Grenzwinkel
$TC_DP10 minimaler Grenzwinkel
$TC_DP11 maximaler Grenzwinkel
Verschleiß Längen- und Radiuskorrektur
$TC_DP12 Verschleiß Länge 1
$TC_DP13 Verschleiß Länge 2
$TC_DP14 Verschleiß Länge 3
$TC_DP15 Verschleiß Radius
Verschleiß Grenzwinkel
$TC_DP19 Verschleiß min. Grenzwinkel
$TC_DP20 Verschleiß max. Grenzwinkel
Basismaß/Adapter Längenkorrekturen
$TC_DP21 Länge 1
$TC_DP22 Länge 2
$TC_DP23 Länge 3

Grundwert und Verschleißwert


Die resultierenden Größen ergeben sich jeweils als Summe aus Grundwert und
Verschleißwert (z.B. $TC_DP6 + $TC_DP15 für den Radius). Zur Werkzeuglänge der ersten
Schneide wird außerdem noch das Basismaß ($TC_DP21 – $TC_DP23) addiert. Zusätzlich
wirken auf diese Werkzeuglänge alle anderen Größen, die auch bei einem herkömmlichen
Werkzeug die effektive Werkzeuglänge beeinflussen können (Adapter, orientierbarer
Werkzeugträger, Settingdaten).
Grenzwinkel 1 und 2
Die Grenzwinkel 1 bzw. 2 beziehen sich jeweils auf den Vektor vom Schneidenmittelpunkt
zum Schneidenbezugspunkt und werden im Gegenuhrzeigersinn gezählt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-3
Werkzeugkorrekturen
8.2 Sprachbefehle zur Werkzeugverwaltung

8.2 8.2 Sprachbefehle zur Werkzeugverwaltung

Funktion
Bei Verwendung der Werkzeugverwaltung können Werkzeugdaten verändert und aktualisiert
werden.
Über vordefinierte Funktionen können Sie im NC-Programm:
● Werkzeuge mit Namen anlegen und aufrufen.
● ein neues Werkzeug anlegen oder ein vorhandenes Werkzeug löschen.
● einem Werkzeug mit bekanntem Namen eine notwendige T-Nummer zuordnen.
● Stückzahlüberwachungsdaten aktualisieren.
● die T-Nummer des für die Spindel vorgewählten Werkzeugs lesen.

Programmierung
T="BOHRER" oder T="123" Werkzeuge mit Namen
oder
Rückgabeparameter=NEWT("WZ", DUPLO_NR)
oder
DELT("WZ", DUPLO_NR)
oder
Rückgabeparameter=GETT("WZ", DUPLO_NR)
oder
SETPIECE(x,y)
oder
GETSELT (x)

Parameter

T="WZ" Werkzeug mit Namen auswählen


NEWT ("WZ",DUPLO_NR) Neues Werkzeug anlegen, Duplonummer optional
DELT ("WZ",DUPLO_NR) Werkzeug löschen, Duplonummer optional
GETT ("WZ",DUPLO_NR) Bestimmen der T-Nummer
SETPIECE (x,y) Stückzahl setzen
GETSELT (x) Lesen der vorgewählten Werkzeugnummer (T-Nr.)
"WZ" Werkzeugbezeichner
DUPLO_NR Stückzahl
x, y Spindelnummer, Angabe optional

Arbeitsvorbereitung
8-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.2 Sprachbefehle zur Werkzeugverwaltung

Beispiel NEWT-Funktion
Mit der NEWT-Funktion kann im NC-Programm ein neues Werkzeug mit Namen angelegt
werden. Die Funktion liefert als Rückgabeparameter die automatisch erzeugte T-Nummer,
mit der das Werkzeug anschließend adressiert werden kann.
Erfolgt keine Angabe der Duplonummer, wird diese in der Werkzeugverwaltung erzeugt.

DEF INT DUPLO_NR


DEF INT T_NR
DUPLO_NR = 7
T_NR=NEWT("BOHRER", DUPLO_NR) ;Neues Werkzeug "BOHRER" mit Duplonummer 7
;anlegen.
;Die erzeugte T-Nummer wird in T_NR abgelegt.

Beispiel DELT-Funktion
Mit der DELT-Funktion kann ohne Bezugnahme auf eine T-Nummer ein Werkzeug gelöscht
werden.

Beispiel GETT-Funktion
Die GETT-Funktion liefert zu einem Werkzeug, das nur über den Namen bekannt ist, die zum
Setzen der Werkzeugdaten notwendige T-Nummer.
Gibt es mehrere Werkzeuge mit dem angegebenen Bezeichner, so wird die T-Nummer des
erstmöglichen dieser Werkzeuge zurückgegeben.
Rückgabe = –1: Der Werkzeug-Bezeichnung bzw. der Duplonummer kann kein Werkzeug
zugeordnet werden.

T="BOHRER"
R10=GETT("BOHRER", DUPLO_NR) ;Ermittle T-Nummer für BOHRER mit
;Duplonummer = DUPLO_NR

Der "BOHRER" muss vorher mit NEWT oder $TC_TP1[ ] bekannt gemacht werden.

$TC_DP1[GETT("BOHRER", DUPLO_NR),1]=100 ;Schreiben eines Werkzeugparameters


;(Systemvariable) mit Werkzeugname

Beispiel SETPIECE-Funktion
Diese Funktion dient der Aktualisierung der Stückzahlüberwachungsdaten. Die Funktion
erfasst alle Werkzeugschneiden, die seit der letzten Aktivierung von SETPIECE auf der
genannten Spindelnummer eingewechselt wurden.
SETPIECE(x,y)

x ;Anzahl der gefertigten Werkstücke


y ;y Spindelnummer, 0 steht für
;Masterspindel (Standardeinstellung)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-5
Werkzeugkorrekturen
8.2 Sprachbefehle zur Werkzeugverwaltung

Beispiel GETSELT-Funktion
Die Funktion liefert die T-Nummer des für die Spindel vorgewählten Werkzeugs. Damit kann
schon vor M6 auf die Korrekturdaten des Werkzeugs zugegriffen und die Synchronisation mit
dem Hauptlauf schon etwas früher hergestellt werden.

Beispiel Werkzeugwechsel mit Werkzeugverwaltung


T1:
Werkzeugvorwahl, d. h. das Werkzeugmagazin kann parallel zur Bearbeitung in
Werkzeugposition gebracht werden.
M6:
Einwechseln eines vorgewählten Werkzeugs (je nach Voreinstellung im Maschinendatum
kann auch ohne M6 programmiert werden).

T1 M6 ;Werkzeug 1 einwechseln
D1 ;Anwahl Werkzeuglängenkorrektur
G1 X10 … ;Arbeiten mit T1
T="BOHRER" ;Werkzeugvorwahl Bohrer
D2 Y20 … ;Schneidenwechsel T1
X10 … ;Arbeiten mit T1
M6 ;Werkzeug Bohrer einwechseln
SETPIECE(4) ;Anzahl der gefertigten Werkstücke
D1 G1 X10 … ;Arbeiten mit Bohrer

Hinweis
Die vollständige Liste aller Variablen zur Werkzeugverwaltung finden Sie in:
Literatur:
/PGA1/ Listenhandbuch Systemvariablen

Arbeitsvorbereitung
8-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.3 Online -Werkzeugkorrektur (PUTFTOCF, PUTFTOC, FTOCON, FTOCOF)

8.3 8.3 Online-Werkzeugkorrektur (PUTFTOCF, PUTFTOC, FTOCON,


FTOCOF)

Funktion
Mit der Funktion werden Werkzeugkorrekturen, die sich aus der Bearbeitung ergeben, über
eine online wirksame Werkzeuglängenkorrektur sofort eingerechnet (z. B. CD-Abrichten: die
Schleifscheibe wird parallel zur Bearbeitung abgerichtet). Die Werkzeuglängenkorrektur
kann aus dem Bearbeitungskanal oder einem parallelen Kanal (Abrichterkanal) verändert
werden.

$EULFKWUROOH

$EULFKWEHWUDJ 6FKOHLIVFKHLEH

/¦QJH

:HUNVW¾FN

Hinweis
Die Online-WZK kann nur bei Schleifwerkzeugen angewendet werden.

Programmierung
FCTDEF(Polynom-Nr., LLimit, ULimit,a0,a1,a2,a3)
oder
PUTFTOCF (Polynom-Nr., Bezugswert, Länge1_2_3, Kanal, Spindel)
oder
PUTFTOC (Wert, Länge1_2_3, Kanal, Spindel)
oder
FTOCON
oder
FTOCOF

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-7
Werkzeugkorrekturen
8.3 Online -Werkzeugkorrektur (PUTFTOCF, PUTFTOC, FTOCON, FTOCOF)

Parameter

PUTFTOCF Online-Werkzeugkorrektur schreiben kontinuierlich


FCTDEF Parametrierung der Funktion PUTFTOCF
PUTFTOC Online-Werkzeugkorrektur schreiben diskret
FTOCON Einschalten der Online-Werkzeugkorrektur
FTOCOF Ausschalten der Online-Werkzeugkorrektur
Polynom-Nr. Wert 1 bis 3: max. 3 Polynome sind gleichzeitig möglich; Polynom
bis 3. Grad
Bezugswert Bezugswert, von dem die Korrektur abgeleitet wird
Länge1_2_3 Verschleißparameter, in dem der Werkzeugkorrekturwert addiert wird
Kanal Nummer des Kanals, in dem die Werkzeugkorrektur wirksam wird;
Angabe nur, wenn es sich nicht um den eigenen Kanal handelt
Spindel Nummer der Spindel, für die die Online-Werkzeugkorrektur wirkt;
Angabe nur für nicht aktive Schleifscheiben erforderlich
LLimit oberer Grenzwert
ULimit unterer Grenzwert
a0,a1,a2,a3 Koeffizienten der Polynom-Funktion
Wert Wert, der im Verschleißparameter addiert wird

Beispiel
Bei einer Flachschleifmaschine mit nachfolgenden Festlegungen soll nach Beginn der
Schleifbewegung bei X100 die Schleifscheibe um den Betrag 0.05 abgerichtet werden. Der
Abrichtbetrag soll mit Online-WZK schreiben kontinuierlich beim Schleifwerkzeug wirksam
werden.
Y: Zustellachse für die Schleifscheibe
V: Zustellachse für die Abrichtrolle
Bearbeiten: Kanal 1 mit den Achsen X, Z, Y
Abrichten: Kanal 2 mit Achse V

Arbeitsvorbereitung
8-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.3 Online -Werkzeugkorrektur (PUTFTOCF, PUTFTOC, FTOCON, FTOCOF)

<

$EULFKWUROOH

 6FKOHLIVFKHLEH

:HUNVW¾FN
;



Bearbeitungsprogramm in Kanal 1:

%_N_BEARB_MPF

N110 G1 G18 F10 G90 ;Grundstellung
N120 T1 D1 ;Aktuelles Werkzeug anwählen
N130 S100 M3 X100 ;Spindel ein, Fahren auf Ausgangsposition
N140 INIT (2, "ABRICHT", "S") ;Anwahl des Abrichtprogramms in Kanal 2
N150 START (2) ;Starten des Abrichtprogramms in Kanal 2
N160 X200 ;Fahren auf Zielposition
N170 FTOCON ;Online-Korrektur einschalten
N… G1 X100 ;Weitere Bearbeitung
N…M30

Abrichtprogramm in Kanal 2:

%_N_ABRICHT_MPF

N40 FCTDEF (1, –1000, 1000, –$AA_IW[V], ;Funktion definieren: Gerade
1)
N50 PUTFTOCF (1, $AA_IW[V], 3, 1) ;Online-WZK schreiben kontinuierlich:
;abgeleitet von der Bewegung der V-Achse
;wird die Länge 3 der aktuellen
;Schleifscheibe in Kanal 1 korrigiert.
N60 V–0.05 G1 F0.01 G91 ;Zustellbewegung zum Abrichten, nur in
;diesem Satz ist PUTFTOCF wirksam

N… M30

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-9
Werkzeugkorrekturen
8.3 Online -Werkzeugkorrektur (PUTFTOCF, PUTFTOC, FTOCON, FTOCOF)

Abrichtprogramm modal:

%_N_ABRICHT_MPF
FCTDEF(1,-1000,1000,-$AA_IW[V],1) ;Funktion definieren.
ID=1 DO FTOC(1,$AA_IW[V],3,1) ;Online-Werkzeugkorrektur anwählen:
;Istwert der V-Achse ist Eingangswert für
;Polynom 1; Ergebnis wird im Kanal 1 als
;Korrekturwert zur Länge 3 der aktiven
;Schleifscheibe addiert.
WAITM(1,1,2) ;Synchronisation mit Bearbeitungskanal
G1 V-0.05 F0.01, G91 ;Zustellbewegung zum Abrichten
G1 V-0.05 F0.02
...
CANCEL(1) ;Online-Korrektur abwählen
...

Beschreibung
Allgemeines zur Online-WZK
Je nach Zeitpunkt des Abrichtvorgangs werden zum Schreiben der Online-WZK
unterschiedliche Funktionen verwendet:
● Schreiben kontinuierlich satzweise: PUTFTOCF
● Schreiben kontinuierlich modal: ID=1 DO FTOC (siehe Kapitel Synchronaktionen)
● Schreiben diskret: PUTFTOC
Beim kontinuierlichen Schreiben (je IPO-Takt) wird nach dem Einschalten der
Auswertefunktion jede Änderung additiv im Verschleißspeicher, um Sollwertsprünge zu
vermeiden, verrechnet. In jedem Fall gilt: Die Online-WZK kann in jedem Kanal für jede
Spindel und die Länge 1, 2 oder 3 der Verschleißparameter wirken.
Die Zuordnung der Längen zu den Geometrieachsen erfolgt anhand der aktuellen Ebene.
Die Zuordnung der Spindel zum Werkzeug erfolgt durch die Werkzeugdaten bei GWPSON
bzw. TMON, sofern es sich nicht um die aktive Schleifscheibe handelt (siehe
Programmierhandbuch "Grundlagen"). Korrigiert wird immer der Verschleißparameter für die
aktuelle Scheibenseite bzw. die linke Scheibenseite bei nicht aktiven Werkzeugen.

Hinweis
Bei identischer Korrektur für mehrere Scheibenseiten ist über Verkettungsvorschrift
(Beschreibung siehe Bedienung) dafür zu sorgen, dass die Werte automatisch für die zweite
Scheibenseite übernommen werden.
Werden für einen Bearbeitungskanal Online-Korrekturen vorgegeben, so dürfen Sie die
Verschleißwerte für das aktuelle Werkzeug in diesem Kanal nicht aus dem
Bearbeitungsprogramm oder über Bedienung ändern.
Die Online-WZK wird auch für die konstante Scheibenumfangsgeschwindigkeit (SUG) sowie
Werkzeugüberwachung TMON berücksichtigt.

Arbeitsvorbereitung
8-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.3 Online -Werkzeugkorrektur (PUTFTOCF, PUTFTOC, FTOCON, FTOCOF)

PUTFTOCF = Schreiben kontinuierlich


Der Abrichtvorgang erfolgt zeitgleich mit der Bearbeitung: Abrichten über gesamte
Schleifscheibenbreite mit Abrichtrolle oder mit Abrichtdiamant von einer Schleifscheibenseite
zur anderen.
Bearbeiten und Abrichten kann in verschiedenen Kanälen erfolgen. Wird kein Kanal
programmiert, so wirkt die Korrektur im aktiven Kanal.
PUTFTOCF(Polynom-Nr., Bezugswert, Länge1_2_3, Kanal, Spindel)
Die Werkzeugkorrektur wird im Bearbeitungskanal kontinuierlich nach einer Polynom-
Funktion 1., 2. oder 3. Grades geändert, die vorher mit FCTDEF definiert werden muss. Von
der Variablen "Bezugswert" wird die Korrektur abgeleitet, z. B. sich verändernder Istwert.
Wird keine Spindelnummer programmiert, wird das aktive, im Einsatz befindliche Werkzeug
korrigiert.
Funktion FCTDEF parametrieren
Die Parametrierung erfolgt in einem eigenen Satz:
FCTDEF (Polynom-Nr., LLimit, ULimit, a0,a1,a2,a3)
Das Polynom kann 1., 2. oder 3. Grades sein. Limit bezeichnet die Grenzwerte (LLimit =
unterer, ULimit = oberer Grenzwert).
Beispiel: Gerade (y = a0 + a1x) mit Steigung 1
FCTDEF(1, -1000, 1000, -$AA_IW[X], 1)

<
D

D

Online-WZK schreiben diskret: PUTFTOC


Mit diesem Befehl kann einmal ein Korrekturwert geschrieben werden. Die Korrektur wird im
Zielkanal sofort wirksam.
Anwendung von PUTFTOC: Die Schleifscheibe wird aus einem parallelen Kanal abgerichtet,
jedoch nicht zeitgleich zur Bearbeitung.
PUTFTOC(Wert, Länge1_2_3, Kanal, Spindel)
Die Online-WZK für die angegebene Länge 1, 2 oder 3 wird um den angegebenen Wert
geändert, d. h. der Wert wird im Verschleißparameter addiert.
Online-WZK einrechnen: FTOCON, FTOCOF
Der Zielkanal kann Online-Werkzeugkorrekturen nur empfangen, wenn FTOCON aktiv ist.
● FTOCON muss in dem Kanal geschrieben werden, in dem die Korrektur wirksam werden
soll. Mit FTOCOF wird die Korrektur nicht weiter herausgefahren, in den
schneidenspezifischen Korrekturdaten ist jedoch der komplette mit PUTFTOC
geschriebene Betrag korrigiert.
● FTOCOF ist immer die Reset-Stellung.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-11
Werkzeugkorrekturen
8.4 Werkzeugradiuskorrektur konstant halten (CUTCONON)

● PUTFTOCF wirkt immer satzweise, d.h. im anschließenden Verfahrsatz.


● Die Online-Werkzeugkorrektur kann mit FTOC auch modal angewählt werden. Mehr
Informationen hierzu siehe Kapitel "Bewegungssynchronaktionen".

8.4 8.4 Werkzeugradiuskorrektur konstant halten (CUTCONON)

Funktion
Die Funktion "Werkzeugradiuskorrektur konstant halten" dient dazu, die
Werkzeugradiuskorrektur für eine Anzahl von Sätzen zu unterdrücken, wobei jedoch eine
durch die Werkzeugradiuskorrektur in vorher-gehenden Sätzen aufgebaute Differenz
zwischen der programmierten und der tatsächlich abgefahrenen Bahn des
Werkzeugmittelpunktes als Verschiebung beibehalten wird. Sie kann z. B. dann vorteilhaft
eingesetzt werden, wenn beim Zeilenfräsen in den Umkehrpunkten mehrere Verfahrsätze
notwendig sind, die von der Werkzeugradiuskorrektur erzeugten Konturen
(Umfahrungsstrategien) jedoch nicht erwünscht sind. Sie ist unabhängig von der Art der
Werkzeugradiuskorrektur (21/2D, 3D-Stirnfräsen, 3D-Umfangsfäsen) einsetzbar.

Programmierung
CUTCONON
CUTCONOF

Parameter

CUTCONON Einschalten der Funktion Werkzeugradiuskorrektur konstant


halten
CUTCONOF Ausschalten der Funktion Werkzeugradiuskorrektur konstant
halten (Standardeinstellung)

Beispiel

N10 ;Definition des Werkzeugs d1


N20 $TC_DP1[1,1]= 110 ;Typ
N30 $TC_DP6[1,1]= 10. ;Radius
N40
N50 X0 Y0 Z0 G1 G17 T1 D1 F10000
N60
N70 X20 G42 NORM
N80 X30
N90 Y20
N100 X10 CUTCONON ;Einschalten der Korrekturunterdrückung
N110 Y30 KONT ;Beim Ausschalten der Konturunterdrückung ggf.
;Umfahrungskreis einfügen
N120 X-10 CUTCONOF

Arbeitsvorbereitung
8-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.4 Werkzeugradiuskorrektur konstant halten (CUTCONON)

N130 Y20 NORM ;Kein Umfahrungskreis b. Ausschalten der WRK


N140 X0 Y0 G40
N150 M30

<

.RQWXURKQH:5. 

1 

1 
1 
.RQWXUPLW:5.  1 

1 
1 

1  1  ;
 

  

Beschreibung
Im Normalfall ist vor der Aktivierung der Korrekturunterdrückung die
Werkzeugradiuskorrektur bereits aktiv, und sie ist noch aktiv, wenn die
Korrekturunterdrückung wieder deaktiviert wird. Im letzen Verfahrsatz vor CUTCONON wird
auf den Offsetpunkt im Satzendpunkt gefahren. Alle folgenden Sätze, in denen die
Korrekturunterdrückung aktiv ist, werden ohne Korrektur verfahren. Sie werden dabei jedoch
um den Vektor vom Endpunkt des letzten Korrektursatzes zu dessen Offsetpunkt
verschoben. Der Interpolationstyp dieser Sätze (linear, zirkular, polynomisch) ist beliebig.
Der Deaktivierungssatz der Korrekturunterdrückung, d. h. der Satz, der CUTCONOF enthält,
wird normal korrigiert; er beginnt im Offsetpunkt des Startpunktes. Zwischen dem Endpunkt
des Vorgängersatzes, d. h. des letzten programmierten Verfahrsatzes mit aktivem
CUTCONON, und diesem Punkt wird ein linearer Satz eingefügt.
Kreissätze, bei denen die Kreisebene senkrecht auf der Korrekturebene steht (vertikale
Kreise), werden so behandelt, als ob in ihnen CUTCONON programmiert wäre. Diese
implizite Aktivierung der Korrekturunterdrückung wird im ersten Verfahrsatz, der eine
Verfahrbewegung in der Korrekturebene enthält und der kein derartiger Kreis ist,
automatisch rückgängig gemacht. Vertikale Kreise in diesem Sinne können nur beim
Umfangsfräsen auftreten.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-13
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

8.5 8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

8.5.1 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC, CUT3DF, CUT3DFS, CUT3DFF)

Funktion
Bei der Werkzeugradiuskorrektur für zylindrische Werkzeuge wird die veränderliche
Werkzeugorientierung berücksichtigt.
Für die Anwahl der 3D-Werkzeugradiuskorrektur gelten die gleichen Programmbefehle wie
bei der 2D-Werkzeugradiuskorrektur. Mit G41/G42 wird die Korrektur links/rechts in
Bewegungsrichtung angegeben. Das Anfahrverhalten ist immer NORM. Die 3D-
Werkzeugradiuskorrektur wirkt nur bei angewählter 5-Achs-Transformation.
Die 3D-Werkzeugradiuskorrektur wird auch als 5D-Korrektur bezeichnet, da in diesem Fall 5
Freiheitsgrade für die Lage des Werkzeugs im Raum zur Verfügung stehen.

:HUNVW¾FN
NRQWXU

%DKQGHV
:HUN]HXJPLWWHOSXQNWHVLP
JOHLFKHQ$EVWDQG
]XU.RQWXU †TXLVWDQWHQ
,6' / 5

Unterschied zwischen 2 1/2D- und 3D-Werkzeugradiuskorrektur


Bei der 3D-Werkzeugradiuskorrektur ist die Werkzeug-Orientierung veränderlich.
Bei der 2 1/2D-Werkzeugradiuskorrektur wird nur mit einem Werkzeug mit konstanter
Orientierung gerechnet.

Programmierung
CUT3DC
oder
CUT3DFS
oder

Arbeitsvorbereitung
8-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

CUT3DFF
oder
CUT3DF
Die Befehle sind modal wirksam und stehen in der gleichen Gruppe wie CUT2D und
CUT2DF. Die Abwahl findet erst mit der nächsten Bewegung in der aktuellen Ebene statt.
Dies gilt immer für G40 und ist unabhängig vom CUT-Befehl.
Zwischensätze bei aktiver 3D-Werkzeugradiuskorrektur sind erlaubt. Es gelten die
Festlegungen der 2 1/2D-Werkzeugradiuskorrektur.

Parameter

CUT3DC Aktivierung der 3D-Radiuskorrektur für das Umfangsfräsen


CUT3DFS D-Werkzeugkorrektur für das Stirnfräsen mit konstanter
Orientierung. Die Werkzeugorientierung ist durch G17 - G19
festgelegt und wird durch Frames nicht beeinflusst.
CUT3DFF D-Werkzeugkorrektur für das Stirnfräsen mit konstanter
Orientierung. Die Werkzeugorientierung ist die durch G17 -
G19 festgelegte und gegebenenfalls durch einen Frame gedrehte
Richtung.
CUT3DF D-Werkzeugkorrektur für das Stirnfräsen mit
Orientierungsänderung (nur bei aktiver 5-Achs-
Transformation).
G40 X Y Z Zum Ausschalten: Linearsatz G0/G1 mit Geometrieachsen
ISD=Wert Eintauchtiefe

G450/G451 und DISC


An Außenecken wird immer ein Kreissatz eingefügt. G450/G451 haben keine Bedeutung.
Der Befehl DISC wird nicht ausgewertet.

Beispiel

N10 A0 B0 X0 Y0 Z0 F5000
N20 T1 D1 ;Werkzeugaufruf, Werkzeugkorrekturwerte
;aufrufen
N30 TRAORI(1) ;Transformationsanwahl
N40 CUT3DC ;3D-Werkzeugradiuskorrektur-Anwahl
N50 G42 X10 Y10 ;Werkzeugradiuskorrektur-Anwahl
N60 X60
N70 …

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-15
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

8.5.2 3D-Werkzeugradiuskorrektur: Umfangfräsen, Stirnfräsen

Umfangsfräsen
Die hier benutzte Variante des Umfangsfräsens ist durch die Vorgabe einer Bahn (Leitlinie)
und der zugehörigen Orientierung realisiert. Bei dieser Art der Bearbeitung ist auf der Bahn
die Werkzeugform ohne Bedeutung. Entscheidend ist allein der Radius am
Werkzeugeingriffspunkt.

8PIDQJVIU¦VHQ
$

;
<

Hinweis
Die Funktion 3D-WRK beschränkt sich auf zylindrische Werkzeuge.

Stirnfräsen
Für diese Art des 3D-Fräsens benötigen Sie die zeilenweise Beschreibung der 3D-Bahnen
auf der Werkstückoberfläche. Die Berechnungen werden unter Berücksichtigung der
Werkzeugform und Werkzeugabmessungen - üblicherweise im CAM durchgeführt. Der
Postprozessor schreibt in das Teileprogramm - neben den NC-Sätzen - die
Werkzeugorientierungen (bei aktiver 5-Achstransformation) und den G-Code für die
gewünschte 3D-Werkzeugkorrektur. Hierdurch hat der Maschinenbediener die Möglichkeit –
abweichend von dem für die Berechnung der NC-Bahnen verwendeten Werkzeug -,
geringfügig kleinere Werkzeuge einzusetzen.

Arbeitsvorbereitung
8-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

Beispiel:
NC-Sätze wurden mit Fräser 10 mm berechnet. Hier könnte auch mit Fräserdurchmesser 9,9
mm gefertigt werden, wobei dann mit verändertem Rauheitsprofil zu rechnen ist.

8.5.3 Werkzeugtypen/Werkzeugwechsel mit veränderten Abmessungen (G40, G41,


G42)

Funktion
Fräserformen, Werkzeugdaten
In dieser Tabelle sind die für Stirnfräsen möglichen Werkzeugformen und Grenzwerte der
Werkzeugdaten zusammengestellt. Die Form des Werkzeugschaftes wird nicht
berücksichtigt - die Werkzeugtypen 120 und 156 sind in ihrer Wirkung identisch.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-17
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

5 5 5 5

U U

=\OLQGU .XJHONRSI 6FKDIWIU¦VHU 6FKDIWIU¦VHUP


*HVHQNIU¦VHU IU¦VHU (FNHQYHUUXQG
7\S 7\S 7\S 7\S

D D D

U
5
5 5

.HJHOVWXPSIIU¦VHU .HJHOVWXPSIIU¦VHUP .HJHOLJHU*HVHQNIU¦VHU


(FNHQYHUUXQGXQJ
7\S 7\S 7\S

Wird im NC-Programm eine andere Typ-Nummer angegeben, als in der Tabelle aufgelistet,
verwendet das System automatisch den Werkzeugtyp 110 Zylindrischer Gesenkfräser. Bei
Verletzung der Grenzwerte für die Werkzeugdaten wird ein Alarm ausgegeben.

Parameter

Fräsertyp Typ-Nr. R r a
Zylindrische Gesenkfräser 110 >0 X X
Kugelkopffräser 111 >0 >R X
Schaftfräser, Winkelkopffräser 120, 130 >0 X X
Schaftfräser, Winkelkopffräser mit 121, 131 >r >0 X
Eckenverrundung
Kugelstumpffräser 155 >0 X >0
Kugelstumpffräser mit 156 >0 >0 >0
Eckenverrundung
Kegeliger Gesenkfräser 157 >0 X >0

Werkzeugdaten Werkzeugparameter X = wird nicht ausgewertet


Werkzeugmaße Geometrie Verschleiß
R $TC_DP6 $TC_DP15 R = Schaftradius (Werkzeugradius)
r $TC_DP7 $TC_DP16 r = Eckenradius
a $TC_DP11 $TC_DP20 a = Winkel zwischen Werkzeuglängsachse
und oberem Ende der Torusfläche

Arbeitsvorbereitung
8-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

Werkzeuglängenkorrektur
Als Bezugspunkt für die Längenkorrektur gilt die Werkzeugspitze
(Schnittpunkt Längsachse/Oberfläche).
3D-Werkzeugkorrektur, Werkzeugwechsel
Ein neues Werkzeug mit veränderten Abmessungen (R, r, a) oder anderer Form darf nur mit
Programmierung von G41 bzw. G42 angegeben werden (Übergang G40 nach G41 bzw.
G42, erneute Programmierung von G41 bzw. G42). Alle anderen Werkzeugdaten, z. B.
Werkzeuglängen, bleiben von dieser Regel unberücksichtigt, so dass solche Werkzeuge
auch ohne erneutes G41 bzw. G42 eingewechselt werden können.

8.5.4 Korrektur auf der Bahn, Bahnkrümmung, Eintauchtiefe ISD und


Werkzeugzustellung (CUT3DC)

Funktion
Korrektur auf der Bahn
Beim Stirnfräsen muss der Fall betrachtet werden, dass der Berührpunkt auf der
Werkzeugoberfläche springt. Wie in diesem Beispiel bei der Bearbeitung einer konvexen
Fläche mit senkrecht stehendem Werkzeug. Die im Bild gezeigte Anwendung kann als
Grenzfall betrachtet werden.

VLQJXO¦UHU3XQNW

Dieser Grenzfall wird von der Steuerung überwacht, indem auf Basis der Winkelanstellungen
zwischen Werkzeug und Flächennormalenvektoren sprunghafte Änderungen des
Bearbeitungspunktes erkannt werden. An diesen Stellen fügt die Steuerung Linearsätze ein,
so dass die Bewegung ausgeführt werden kann.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-19
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

Für die Berechnung der Linearsätze sind in Maschinendaten für den Seitwärtswinkel
zulässige Winkelbereiche hinterlegt. Falls die in Maschinendaten festgelegten Grenzwerte
für zugelassene Winkelbereiche überschritten werden, meldet das System Alarm.
Bahnkrümmung
Die Bahnkrümmung wird nicht überwacht. Auch hier empfiehlt es sich, nur solche
Werkzeuge zu verwenden, mit denen ohne Konturverletzung gearbeitet werden kann.

Programmierung
Eintauchtiefe ISD
ISD wird nur bei aktiver 3D-Werkzeugradiuskorrektur ausgewertet.
Mit dem Programmbefehl ISD (Insertion Depth) wird die Eintauchtiefe des Werkzeugs beim
Umfangsfräsen programmiert. Damit ist es möglich, die Lage des Bearbeitungspunktes auf
der Mantelfläche des Werkzeugs zu verändern.
3D-Werkzeugkorrektur Umfangsfräsen
CUT3DC

Parameter

CUT3DC 3D-Werkzeugkorrektur für das Umfangsfräsen aktivieren z. B.


für Taschenfräsen mit schrägen Seitenwänden.
ISD ISD gibt den Abstand zwischen Fräserspitze (FS) und dem
Fräserhilfspunkt (FH) an.

Der Punkt FH entsteht durch Projektion des programmierten Bearbeitungspunktes auf die
Werkzeugachse.

)+

)6
,6'

Arbeitsvorbereitung
8-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

Beschreibung
Taschenfräsen mit schrägen Seitenwänden für Umfangsfräsen mit CUT3DC
Bei dieser 3D-Werkzeugradiuskorrektur wird eine Abweichung des Fräserradius
kompensiert, indem in Richtung der Flächennormalen der zu bearbeitenden Fläche
zugestellt wird. Dabei bleibt die Ebene, in der die Stirnseite des Fräsers liegt unverändert,
wenn die Eintauchtiefe ISD gleich geblieben ist. Ein Fräser mit z.B. kleinerem Radius
gegenüber einem Normwerkzeug würde dann den Taschenboden, der auch die
Begrenzungsfläche darstellt, nicht erreicht werden. Für eine automatische Zustellung des
Werkzeugs muss der Steuerung diese Begrenzungsfläche bekannt sein, siehe Kapitel "3D-
Umfangsfräsen mit Begrenzungsflächen".
Weitere Informationen zur Kollisionsüberwachung siehe
Literatur: /PG/ Programmierhandbuch Grundlagen, Kapitel "Werkzeugkorrekturen".

8.5.5 Innenecken/Außenecken und Schnittpunktverfahren (G450/G451)

Funktion
Innenecken/Außenecken
Außen- und Innenecken werden getrennt behandelt. Die Bezeichnung Innen- oder
Außenecke ist abhängig von der Werkzeugorientierung.
Bei Orientierungsänderungen an einer Ecke kann der Fall auftreten, dass sich der Eckentyp
während der Bearbeitung ändert. Tritt dieser Fall auf, wird die Bearbeitung mit einer
Fehlermeldung abgebrochen.

%HDUEHLWXQJVULFKWXQJ

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-21
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

Programmierung
G450
oder
G451

Parameter

G450 Übergangskreis (Werkzeug umfährt Werstückecken auf einer


Kreisbahn).
G451 Schnittpunkt der Äquidistanten (Werkzeug schneidet in der
Werkstückecke frei).

Beschreibung
Schnittpunktverfahren für 3D-Korrektur
Bei 3D-Umfangsfräsen wird jetzt an Außenecken der G-Code G450/G451 ausgewertet, d.
h. es kann der Schnittpunkt der Offset-Kurven angefahren werden. Bis SW 4 wurde an
Außenecken immer ein Kreis eingefügt. Das verfügbare Schnittpunktverfahren ist bei
typischen CAD-erzeugten 3D-Programmen besonders vorteilhaft. Diese bestehen häufig aus
kurzen Geradensätzen (zur Approximation glatter Kurven), bei denen die Übergänge
zwischen benachbarten Sätzen nahezu tangential sind.
Bei Werkzeugradiuskorrektur an der Außenseite der Kontur wurden bislang grundsätzlich
Kreise zum Umfahren der Außenecken eingefügt. Da diese Sätze bei nahezu tangentialen
Übergängen sehr kurz werden, ergeben sich unerwünschte Geschwindigkeitseinbrüche.
In diesen Fällen werden analog zur 2 ½ D-Radiuskorrektur die beiden beteiligen Kurven
verlängert, der Schnittpunkt der beiden verlängerten Kurven wird angefahren.
Der Schnittpunkt wird bestimmt, indem die Offsetkurven der beiden beteiligten Sätze
verlängert werden und deren Schnittpunkt in der Ebene senkrecht zur Werkzeugorientierung
an der Ecke bestimmt wird. Existiert kein derartiger Schnittpunkt, wird die Ecke wie bisher
behandelt, d. h. es wird ein Kreis eingefügt.
Literatur:
Weitere Informationen zum Schnittpunktverfahren /FB/ W5, 3D-Werkzeugradiuskorrektur.

Arbeitsvorbereitung
8-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

8.5.6 3D-Umfangsfräsen mit Begrenzungsflächen allgemeine Anwendung

Funktion
Anpassungen von 3D-Umfangsfräsen an Gegebenheiten von CAD-Programmen
Von CAD-Sytemen generierte NC-Programme approximieren in der Regel die
Mittelpunktsbahn eines Normwerkzeuges mit einer großen Anzahl kurzer Linearsätze. Damit
diese so erzeugten Sätze vieler Teilekonturen die ursprüngliche Originalkontur möglichst
genau nachbilden, ist es notwendig im Teileprogramm gewisse Anpassungen vorzunehmen.
Wichtige Informationen, die für eine optimale Korrektur erforderlich wären, aber im
Teilprogramm nicht mehr zur Verfügung stehen, müssen durch geeignete Maßnahmen
ersetzt werden. Nachfolgend werden typische Methoden dargestellt, um kritische Übergänge
entweder
● direkt im Teileprogramm oder
● bei Ermittlung der realen Kontur z. B. durch Zustellung des Werkzeugs
auszugleichen.
Anwendungen
Zusätzlich zu den typischen Anwendungsfall, bei denen anstelle des Normwerkzeugs ein
reales Werkzeug die Mittelpunktsbahn beschreibt, werden auch zylindrische Werkzeuge mit
3D-Werkzeugkorrektur behandelt. Hierbei bezieht sich die programmierte Bahn auf die
Kontur an der Bearbeitungsfläche. Die hierfür zutreffende Begrenzungsfläche ist
werkzeugunbhängig. Es wird wie bei der herkömmlichen Werkzeugradiuskorrektur der
Gesamtradius zur Berechnung des senkrechen Offsets zur Begrenzungsfläche
herangezogen.

8.5.7 Berücksichtigung einer Begrenzungsfläche (CUT3DCC, CUT3DCCD)

Funktion
3D-Umfangsfräsen mit realen Werkzeugen
Beim 3D-Umfangsfräsen mit kontinuierlicher oder konstanter Veränderung der
Werkzeugorientierung wird häufig die Werkzeugmittelpunktsbahn für ein definiertes
Normwerkzeug programmiert. Da in der Praxis oft nicht die passenden Normwerkzeuge zur
Verfügung stehen, kann ein von einem Normwerkzeug nicht allzu stark abweichendes
Werkzeug eingesetzt werden.
Mit CUT3DCCD wird für ein reales Differenzwerkzeug eine Begrenzungsfläche berücksichtigt,
die das programmierte Normwerkzeug beschreiben würde. Das NC-Programm beschreibt
die Mittelpunksbahn des Normwerkzeuges.
Mit CUT3DCC wird bei Verwendung von zylindrischen Werkzeugen eine Begrenzungsfläche
berücksichtigt, die das programmierte Normwerkzeug erreicht hätte. Das NC-Programm
beschreibt die Kontur auf der Bearbeitungsfläche.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-23
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

Programmierung
CUT3DCCD
oder
CUT3DCC

Parameter

CUT3DCCD Aktivierung 3D Werkzeugkorrektur für das


Umfangsfräsen mit Begrenzungsflächen mit
Differenzwerkzeug auf der
Werkzeugsmittelpunktbahn:
Zustellung zur Begrenzungsfläche.
CUT3DCC Aktivierung 3D Werkzeugkorrektur für das
Umfangsfräsen mit Begrenzungsflächen mit 3D-
Radiuskorrektur:
Kontur an der Bearbeitungsfläche

Hinweis
Werkzugradiuskorrektur mit G41, G42
Für die Werkzeugradiuskorrektur mit G41, G42 bei aktivem CUT3DCCD oder CUT3DCC muss
die Option "Orientierungstransformation" vorhanden sein.
Normwerkzeuge mit Eckenverrundung
Die Eckenverrundung des Normwerkzeuges wird durch den Werkzeugparameter $TC_DP7
beschrieben. Aus den Werkzeugparameter $TC_DP16 ergibt sich die Abweichung der
Eckenverrundung des realen Werkzeuges gegenüber dem Normwerkzeug.

Beispiel
Werkzeugabmessungen für einen Torusfräser mit verringertem Radius gegenüber dem
Normwerkzeug.

Werkzeugtyp R = Schaftradius r = Eckenradius

Normwerkzeug mit Eckenverrundung R = $TC_DP6 r = $TC_DP7

Reales Werkzeug mit R' = $TC_DP6 + $TC_DP15 r' = $TC_DP7 + $TC_DP16


Eckenverrundung: + OFFN
Werkzeugtypen 121 und 131
Torusfräser (Schaftfräser)
In diesem Beispiel sind sowohl $TC_DP15 + OFFN als auch$TC_DP16 negativ.
Der Werkzeugtyp ($TC_DP1) wird ausgewertet..

Arbeitsvorbereitung
8-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

Werkzeugtyp R = Schaftradius r = Eckenradius


Zugelassen sind nur Fräsertypen mit Bei diesen zugelassenen Fräsertypen ist der Eckenradius r
zylindrischen Schaft (Zylinder- oder gleich dem Schaftradius R. Alle anderen zugelassenen
Schaftfräser) sowie Torusfräser (Typ Werkzeugtypen werden als Zylinderfräser interpretiert und
121 und 131) und im Grenzfall der ein eventuell angegebenes Maß für die Eckenverrundung
zylindrische Gesenkfräser (Typ 110). wird nicht ausgewertet.

Zugelassen sind alle Werkzeugtypen


der Nummern 1 – 399 mit Ausnahme
der Nummern 111 und 155 bis 157.

Beschreibung
Werkzeugmittelpunktsbahn mit Zustellung bis zur Begrenzungsfläche CUT3DCCD
Wird ein Werkzeug verwendet, welches im Vergleich zum passenden Normwerkzeug einen
kleineren Radius aufweist, dann wird ein in Längsrichtung zugestellter Fräser soweit weiter
geführt, bis dieser den Taschenboden wieder berührt. Damit wird die Ecke, die von der
Bearbeitungs- und der Begrenzungsfläche gebildet wird so weit ausgeräumt, wie dies das
Werkzeug zulässt. Es handelt sich dabei um eine gemischte Bearbeitungsweise aus
Umfangs- und Stirnfräsen. Analog zu einem Werkzeug mit verringertem Radius, wird beim
Werkzeug mit vergrößerten Radius, in die gegengesetzte Richtung entsprechend zugestellt.
KH

1RUPZHUN]HXJ
IO ¦ F
WXQJV
EHL

:HUN]HXJPLWNOHLQHUHP
DU

5DGLXV]XJHVWHOOWELV]XU
%H

%HJUHQ]XQJVIO¦FKH

%HJUHQ]XQJVIO¦FKH

Gegenüber allen anderen Werkzeugkorrekturen der G-Code Gruppe 22 hat ein für
CUT3DCCD angegebener Werkzeugparameter $TC_DP6 keine Bedeutung für den
Werkzeugradius und beeinflusst die resultierende Korrektur nicht.
Der Korrekturoffset ergibt sich aus der Summe von
● Verschleißwert des Werkzeugradius (Werkzeugparameter $TC_DP15)
und einem zur Berechnung des senkrechten Offsets zur Begrenzungsfläche

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-25
Werkzeugkorrekturen
8.5 Aktivierung 3D-Werkzeugkorrekturen (CUT3DC..., CUT3DF...)

● programmiertem Werkzeugoffset OFFN.


Ob die zu bearbeitende Fläche links oder rechts von der Bahn liegt, kann aus den erzeugten
Teileprogramm nicht entnommen werden. Es wird deshalb von einem positiven Radius und
einem negativen Verschleißwert des Originalwerkzeuges ausgegangen. Ein negativer
Verschleißwert beschreibt immer ein Werkzeug mit verringertem Durchmesser.
Verwendung von zylindrischen Werkzeugen
Bei der Verwendung von zylindrischen Werkzeugen ist eine Zustellung nur dann erforderlich,
wenn die Bearbeitungsfläche und die Begrenzungsfläche einen spitzen Winkel (kleiner als
90 Grad) bilden. Werden Torusfräser (Zylinder mit Eckverrundung) verwendet, dann
erfordert dies sowohl bei spitzen als auch bei stumpfen Winkeln eine Zustellung in
Längsrichtung des Werkzeugs.
3D-Radiuskorrektur mit CUT3DCC, Kontur an der Bearbeitungsfläche
Ist CUT3DCC mit einem Torusfräser aktiv, so bezieht sich die programmierte Bahn auf einen
fiktiven Zylinderfäser gleichen Durchmessers. Der hieraus resultierende Bahnbezugspunkt
ist bei Verwendung eines Torusfräsers im folgenden Bild dargestellt.

%DKQEH]XJVSXQNW
KH

5
IO¦F
QJV
HLWX
DUE
%H

%HJUHQ]XQJVIO¦FKH

Es ist zulässig, dass der Winkel zwischen Bearbeitungs- und Begrenzungsfläche auch
innerhalb eines Satzes von einem spitzen in einem stumpfen Winkel oder umgekehrt
übergeht.
Gegenüber dem Normwerkzeug darf das verwendete reale Werkzeug sowohl größer als
auch kleiner sein. Dabei darf der resultierende Eckenradius nicht negativ werden und das
Vorzeichen des resultieren-den Werkzeugradius muss erhalten bleiben.
Bei CUT3DCC bezieht sich das NC-Teileprogramm auf die Kontur an der
Bearbeitungsfläche. Es wird hierbei wie bei der herkömmlichen Werkzeugradienkorrektur der
Gesamtradius, der sich zusammensetzt aus der Summe von
● Werkzeugradius (Werkzeugparameter $TC_DP6)
● Verschleißwert (Werkzeugparameter $TC_DP15)
und einem zur Berechnung des senkrechten Offsets zur Begrenzungsfläche

Arbeitsvorbereitung
8-26 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.6 Werkzeugorientierung (ORIC, ORID, OSOF, OSC, OSS, OSSE, OSD, OST)

● programmierten Werkzeugoffset OFFN


herangezogen. Die Lage der Begrenzungsfläche wird bestimmt aus der Differenz der beiden
Werte
● Abmessungen des Normwerkzeuges und
● Werkzeugradius (WZ-Parameter $TC_DP6).

8.6 8.6 Werkzeugorientierung (ORIC, ORID, OSOF, OSC, OSS, OSSE, OSD,
OST)

Funktion
Unter Werkzeugorientierung versteht man die geometrische Ausrichtung des Werkzeugs im
Raum. Bei einer 5-Achs-Bearbeitungsmaschine ist die Werkzeugorientierung über
Programmbefehle einstellbar.

5LFKWXQJV
YHNWRU

<

Mit OSD und OST aktivierte Überschleifbewegungen der Orientierung werden je nach
Interpolationsart für die Werkzeugorientierung unterschiedlich gebildet.
Bei aktiver Vektorinterpolation wird der geglättete Orientierungsverlauf auch mittels
Vektorinterpolation interpoliert. Dagegen wird bei aktiver Rundachsinterpolation die
Orientierung direkt mittels Rundachsbewegungen geglättet.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-27
Werkzeugkorrekturen
8.6 Werkzeugorientierung (ORIC, ORID, OSOF, OSC, OSS, OSSE, OSD, OST)

Programmierung
Eine Orientierungsänderung des Werkzeugs kann programmiert werden durch:
● direkte Programmierung der Rundachsen A, B, C (Rundachsinterpolation)
● Euler- oder RPY-Winkel
● Richtungsvektor (Vektorinterpolation durch Angabe von A3 oder B3 oder C3)
● LEAD/TILT (Stirnfräsen)
Das Bezugskoordinatensystem ist entweder das Maschinenkoordinatensystem (ORIMKS)
oder das aktuelle Werkstückkoordinatensystem (ORIWKS).

2ULHQWLHUXQJV
¦QGHUXQJ

Parameter

ORIC Orientierung und Bahnbewegung parallel


ORID Orientierung und Bahnbewegung nacheinander
OSOF keine Orientierungsglättung
OSC Orientierung konstant
OSS Orientierungsglättung nur am Satzanfang
OSSE Orientierungsglättung am Satzanfang und -ende
ORIS Geschwindigkeit der Orientierungsänderung bei
eingeschalteter Orientierungsglättung in Grad pro mm;
gilt für OSS und OSSE
OSD Überschleifen der Orientierung durch Vorgabe der
Überschleiflänge mit dem SD $SC_ORI_SMOOTH_DIST.

Arbeitsvorbereitung
8-28 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.6 Werkzeugorientierung (ORIC, ORID, OSOF, OSC, OSS, OSSE, OSD, OST)

OST Überschleifen der Orientierung durch Vorgabe der


Winkeltoleranz in Grad bei Vektorinterpolation mit dem
SD $SC_ORI_SMOOTH_TOL. Bei Rundachsinterpolation wird
die vorgegebene Toleranz als maximale Abweichung der
Orientierungsachsen angenommen.

Beispiel ORIC
Sind zwischen den Verfahrsätzen N10 und N20 zwei oder mehrere Sätze mit
Orientierungsänderungen (z. B. A2= B2= C2=) programmiert und ORIC ist aktiv, so wird
der eingefügte Kreissatz entsprechend dem Betrag der Winkeländerungen auf diese
Zwischensätze aufgeteilt.

1

1 1

1

ORIC
N8 A2=… B2=… C2=…
N10 X… Y… Z…
N12 C2=… B2=… ;Der Kreissatz, der an der Außenecke eingefügt
N14 C2=… B2=… ;wird, verteilt sich auf N12 und N14,
entsprechend ;der Orientierungsänderung.
Kreisbewegung und ;Orientierungsänderung werden
hierbei parallel ;ausgeführt.
N20 X =…Y=… Z=… G1 F200

Beispiel ORID
Ist ORID aktiv, so werden alle Sätze zwischen den beiden Verfahrsätzen am Ende des
ersten Verfahr-satzes ausgeführt. Der Kreissatz mit konstanter Orientierung wird unmittelbar
vor dem zweiten Verfahr-satz ausgeführt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-29
Werkzeugkorrekturen
8.6 Werkzeugorientierung (ORIC, ORID, OSOF, OSC, OSS, OSSE, OSD, OST)

1XQG1DXVI¾KUHQ

1

1

ORID
N8 A2=… B2=… C2=…
N10 X… Y… Z…
N12 A2=… B2=… C2=… ; Der Satz N12 und N14 wird am Ende von N10
;ausgeführt. Danach wird der Kreissatz mit der
;aktuellen Orientierung ausgefahren.
N14 M20 ;Hilfsfunktionen etc.
N20 X… Y… Z…

Hinweis
Für die Art der Orientierungsänderung an einer Außenecke ist der Programmbefehl
maßgebend, welcher im ersten Verfahrsatz einer Außenecke aktiv ist
Ohne Orientierungsänderung: Wird die Orientierung an der Satzgrenze nicht verändert, so
ist der Werkzeugquerschnitt ein Kreis, der die beiden Konturen berührt

Arbeitsvorbereitung
8-30 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.6 Werkzeugorientierung (ORIC, ORID, OSOF, OSC, OSS, OSSE, OSD, OST)

Beispiel Änderung der Orientierung an einer Innenecke

1
1
1
:5.

ORIC
N10 X …Y… Z… G1 F500
N12 X …Y… Z… A2=… B2=…, C2=…
N15 X Y Z A2 B2 C2

Verhalten an Außenecken
An einer Außenecke wird immer ein Kreissatz mit dem Radius des Fräsers eingefügt.
Mit den Programmbefehlen ORIC bzw. ORID kann festgelegt werden, ob
Orientierungsänderungen, die zwischen Satz N1 und N2 programmiert wurden, vor
Beginn des eingefügten Kreissatzes oder gleichzeitig mit diesem ausgeführt werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-31
Werkzeugkorrekturen
8.6 Werkzeugorientierung (ORIC, ORID, OSOF, OSC, OSS, OSSE, OSD, OST)

=ZLVFKHQGHP6DW]1XQG1
ZLUGHLQ.UHLVVDW]HLQJHI¾JW

1

1

Ist an Außenecken eine Orientierungsänderung notwendig, so kann diese wahlweise parallel


zur Interpolation oder getrennt mit der Bahnbewegung erfolgen.
Bei ORID werden zunächst die eingefügten Sätze ohne Bahnbewegung ausgeführt. Der
Kreissatz wird unmittelbar vor dem zweiten der beiden Verfahrsätze eingefügt, durch welche
die Ecke gebildet wird.
Sind an einer Außenecke mehrere Orientierungssätze eingefügt und ORIC ist angewählt,
so wird die Kreisbewegung entsprechend den Beträgen der Orientierungsänderungen der
einzelnen eingefügten Sätze auf diese verteilt.

Überschleifen der Orientierung mit OSD und OST


Beim Überschleifen mit G642 kann die maximale Abweichung für die Konturachsen und die
Orientierungsachsen nicht sehr unterschiedlich sein. Diese kleinere Toleranz von beiden
bestimmt die Form
● der Überschleifbewegung bzw. Winkeltoleranz,
● den Orientierungsverlauf
relativ stark zu glätten, ohne dabei größere Konturabweichungen hinnehmen zu müssen.
Durch Aktivierung von OSD und OST ist es möglich, mit einer vorgegebenen Überschleiflänge
und Winkeltoleranz, sehr geringe Abweichungen des Orientierungsverlaufs ohne
gravierende Konturabweichungen “großzügig” zu glätten.

Arbeitsvorbereitung
8-32 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.7 Freie D-Nummernvergabe, Schneidennummer

Hinweis
Im Unterschied zum Überschleifen der Kontur (und dem Orientierungsverlauf) mit G642 wird
beim Überschleifen der Orientierung mit OSD bzw. OST kein eigener Satz gebildet, sondern
die Überschleifbewegung wird direkt in die programmierten Originalsätze eingefügt.
Mit OSD bzw. OST können keine Satzübergänge überschliffen werden bei denen ein
Wechsel der Interpolationsart für die Werkzeugorientierung (Vektor –> Rundachse,
Rundachse –> Vektor) stattfindet. Diese Satzübergänge können gegebenenfalls mit den
herkömmlichen Überschleiffunktionen G641, G642 bzw. G643 überschliffen werden.

8.7 8.7 Freie D-Nummernvergabe, Schneidennummer

8.7.1 Freie D-Nummernvergabe, Schneidennummer (Adresse CE)

Funktion
Die D-Nummern können als Korrekturnummern verwendet werden. Zusätzlich kann über die
Adresse CE die Nummer der Schneide adressiert werden. Über die Systemvariable
$TC_DPCE kann die Schneidenummer beschrieben werden.
Voreinstellung: Korrekturnr. == Schneidennr.
Literatur:
/FB1/ Funktionshandbuch Grundfunktionen; Werkzeugkorrektur (W1).
Maschinenhersteller
Über Maschinendaten werden die maximale Anzahl der D-Nummern (Schneidennummern)
und die maximale Schneidenanzahl pro Werkzeug festgelegt. Die folgenden Befehle sind
nur sinnvoll, wenn die maximale Schneidennummer (MD 18105) größer als die Anzahl der
Schneiden pro Werkzeug (MD 18106) festgelegt wurde. Beachten Sie die Angaben des
Maschinenherstellers.

Hinweis
Neben der relativen D-Nummernvergabe können die D-Nummern auch als 'flache' bzw.
'absolute' D-Nummern (1-32000) ohne Bezug zu einer T-Nummer vergeben werden
(innerhalb der Funktion 'flache D-Nummernstruktur').

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-33
Werkzeugkorrekturen
8.7 Freie D-Nummernvergabe, Schneidennummer

8.7.2 D-Nummern prüfen (CHKDNO)

Funktion
Mit CKKDNO prüfen Sie, ob die vorhandenen D-Nummern eindeutig vergeben worden sind.
Die D-Nummern aller innerhalb einer TO-Einheit definierten Werkzeuge dürfen nur einmal
auftreten. Ersatzwerkzeuge werden dabei nicht berücksichtigt.

Programmierung
state=CHKDNO(Tno1,Tno2,Dno)

Parameter

state TRUE: Die D-Nummern wurden für den überprüften


Bereich eindeutig vergeben.
FALSE: Es erfolgte eine D-Nummernkollision oder
die Parametrierung ist ungültig. Über Tno1, Tno2
und Dno werden die Parameter übergeben, die zur
Kollision führten. Diese Daten können im
Teileprogramm ausgewertet werden.
CHKDNO (Tno1,Tno2) Es werden alle D-Nummern der genannten Werkzeuge
geprüft.
CHKDNO(Tno1) Es werden alle D-Nummern von Tno1 gegen alle
anderen Werkzeuge geprüft.
CHKDNO Es werden alle D-Nummern aller Werkzeuge gegen
alle anderen Werkzeuge geprüft.

8.7.3 D-Nummern umbenennen (GETDNO, SETDNO)

Funktion
D-Nummern müssen eindeutig vergeben werden. Zwei verschiedene Schneiden eines
Werkzeuges können nicht dieselbe D-Nummer haben.
GETDNO
Dieser Befehl liefert die D-Nummer einer bestimmten Schneide (ce) eines Werkzeuges mit
der T-Nummer t. Existiert keine D-Nummer zu den eingegebenen Parametern, wird d=0
gesetzt. Ist die D-Nummer ungültig wird ein Wert größer 32000 zurückgegeben.
SETDNO
Mit diesem Befehl weisen Sie den Wert d der D-Nummer einer Schneide ce des
Werkzeuges t zu. ワber state wird das Ergebnis dieser Anweisung zurückgegeben (TRUE
oder FALSE). Existiert kein Datensatz zu den eingegebenen Parametern wird FALSE
zurückgegeben. Syntaxfehler erzeugen einen Alarm. Die D-Nummer kann nicht explizit auf 0
gesetzt werden.

Arbeitsvorbereitung
8-34 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.7 Freie D-Nummernvergabe, Schneidennummer

Programmierung
d = GETDNO (t,ce)
state = SETDNO (t,ce,d)

Parameter

d D-Nummer der Schneide des Werkzeuges


t T-Nummer des Werkzeuges
ce Schneidennummer (CE-Nummer) des Werkzeuges
state Gibt an, ob der Befehl fehlerfrei ausgeführt
werden konnte (TRUE oder FALSE).

Beispiel Umbenennen einer D-Nummer


$TC_DP2[1,2] = 120
$TC_DP3[1,2] = 5.5
$TC_DPCE[1,2] = 3; Schneidennummer CE
...
N10 def int DNrAlt, DNrNeu = 17
N20 DNrAlt = GETDNO(1,3)
N30 SETDNO(1,3,DNrNeu)
Damit wird der Schneide CE=3 der neue D-Wert 17 zugewiesen. Jetzt werden die Daten
dieser Schneide über die D-Nummer 17 angesprochen; sowohl über die Systemvariablen als
auch in der Programmierung mit der NC-Adresse.

8.7.4 T-Nummer zur vorgegebenen D-Nummer ermitteln (GETACTTD)

Funktion
Mit GETACTTD ermitteln Sie zu einer absoluten D-Nummer die dazugehörige T-Nummer.
Es erfolgt keine Prüfung auf Eindeutigkeit. Gibt es mehrere gleiche D-Num-mern innerhalb
einer TO-Einheit, wird die T-Nummer des ersten gefundenen Werkzeuges zurück-gegeben.
Bei Verwendung 'flacher' D-Nummern ist die Verwendung des Befehls nicht sinnvoll, da hier
immer der Wert 1 zurückgegeben wird (keine T-Nummer in der Datenhaltung).

Programmierung
status = GETACTTD (Tnr, Dnr)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-35
Werkzeugkorrekturen
8.7 Freie D-Nummernvergabe, Schneidennummer

Parameter

Dnr D-Nummer, für die die T-Nummer gesucht werden


soll.
Tnr Gefundene T-Nummer
status 0: Die T-Nummer wurde gefunden. Tnr erhält den
Wert der T-Nummer.
-1: Zur angegebenen D-Nummer existiert keine T-
Nummer; Tnr=0.
-2: Die D-Nummer ist nicht absolut. Tnr erhält
den Wert des ersten gefundenen Werkzeuges, das
die D-Nummer mit dem Wert Dnr enthält.
-5: Die Funktion konnte aus einem anderem Grund
nicht ausgeführt werden.

8.7.5 D-Nummern ungültig setzen (DZERO)

Funktion
Der Befehl dient zur Unterstützung während dem Umrüsten. So gekennzeichnete
Korrekturdatensätze werden nicht mehr vom Sprachbefehl CHKDNO geprüft. Um sie wieder
zugänglich zu machen, muss die D-Nummer wieder mit SETDNO gesetzt werden.

Programmierung
DZERO

Parameter

DZERO Kennzeichnet alle D-Nummern der TO-Einheit als ungültig

Arbeitsvorbereitung
8-36 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.8 Werkzeugträgerkinematik

8.8 8.8 Werkzeugträgerkinematik

Funktion
Die Werkzeugträgerkinematik mit maximal zwei Drehachsen v1 oder v2 wird über die 17
Systemvariablen $TC_CARR1[m] bis $TC_CARR17[m] beschrieben. Die Beschreibung
des Werkzeugträgers besteht aus:
● dem vektoriellen Abstand von der ersten Drehachse zum Bezugspunkt des
Werkzeugträgers I1, dem vektoriellen Abstand von erster zu zweiter Drehachse I2, dem
vektoriellen Abstand von zweiter Drehachse zum Bezugspunkt des Werkzeugs I3.
● den Richtungsvektoren beider Drehachsen V1, V2.
● den Drehwinkeln α1, α2um die beiden Achsen. Die Drehwinkel werden mit Blickrichtung
in Richtung der Drehachsvektoren im Uhrzeigersinn positiv gezählt.

O

9
˞
O

O

˞
9

Für Maschinen mit aufgelöster Kinematik (sowohl Werkzeug als auch Werkstück sind
drehbar) wurden die Systemvariablen um die Einträge
● $TC_CARR18[m] bis $TC_CARR23[m] erweitert.

Parameter

Funktion der Systemvariablen für orientierbare Werkzeugträger


Bezeichnung x-Komponente y-Komponente z-Komponente
l1 Offsetvector $TC_CARR1[m] $TC_CARR2[m] $TC_CARR3[m]
l2 Offsetvector $TC_CARR4[m] $TC_CARR5[m] $TC_CARR6[m]
v1 Drehachse $TC_CARR7[m] $TC_CARR8[m] $TC_CARR9[m]
v2 Drehachse $TC_CARR10[m] $TC_CARR11[m] $TC_CARR12[m]

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-37
Werkzeugkorrekturen
8.8 Werkzeugträgerkinematik

Funktion der Systemvariablen für orientierbare Werkzeugträger


α1 Drehwinkel $TC_CARR13[m]
α2 Drehwinkel $TC_CARR14[m]
l3 Offsetvector $TC_CARR15[m] $TC_CARR16[m] $TC_CARR17[m]

Erweiterungen der Systemvariablen für orientierbare Werkzeugträger


Bezeichnung x-Komponente y-Komponente z-Komponente
l4 Offsetvector $TC_CARR18[m] $TC_CARR19[m] $TC_CARR20[m]
Achsbezeichner Achsbezeichner der Drehachsen v1und v2 (Vorbelegung ist Null)
Drehachse v1 $TC_CARR21[m]
Drehachse v2 $TC_CARR22[m]
Kinematiktyp $TC_CARR23[m]
Tool Kinematiktyp-T -> Kinematiktyp-P -> Kinematiktyp-M
Part Nur das Werkzeug ist Nur das Werkstück ist Werkstück & Werkzeug
Mixed mode drehbar (Vorbelegung) drehbar sind drehbar
Offset der Winkel in Grad der Drehachsen v1und v2 bei Einnahme der Grundstellung
Drehachse v1 $TC_CARR24[m]
Drehachse v2 $TC_CARR25[m]
Winkeloffset der Offset der Hirth-Verzahnung in Grad der Drehachsen v1und v2
Drehachse v1 $TC_CARR26[m]
Drehachse v2 $TC_CARR27[m]
Winkelinkrem. Inkrement der Hirth-Verzahnung in Grad der Drehachsen v1und v2
v1 Drehachse $TC_CARR28[m]
v2 Drehachse $TC_CARR29[m]
Min.-Position Software-Limit für Minimalposition der Drehachsen v1und v2
Drehachse v1 $TC_CARR30[m]
Drehachse v2 $TC_CARR31[m]
Max.-Position Software-Limits für Maximalposition der Drehachsen v1und v2
Drehachse v1 $TC_CARR32[m]
Drehachse v2 $TC_CARR33[m]
Werkzeugträger Anstelle einer Zahl kann ein Werkzeugträger einem Namen bekommen.
Name $TC_CARR34[m]
Anwender: Beabsichtigte Verwendung innerhalb der Messzyklen vom Anwender.
Achsname 1 $TC_CARR35[m]
Achsname 2 $TC_CARR36[m]
Kennung $TC_CARR37[m]
Position $TC_CARR38[m] $TC_CARR39[m] $TC_CARR40[m]
Feinver- Parameter, die zu den Werten
schiebung in den Basisparameternaddiert werden können.
l1 Offsetvector $TC_CARR41[m] $TC_CARR42[m] $TC_CARR43[m]
l2 Offsetvector $TC_CARR44[m] $TC_CARR45[m] $TC_CARR46[m]
l3 Offsetvector $TC_CARR55[m] $TC_CARR56[m] $TC_CARR57[m]
l4 Offsetvector $TC_CARR58[m] $TC_CARR59[m] $TC_CARR60[m]
v1 Drehachse $TC_CARR64[m]
v2 Drehachse $TC_CARR65[m]

Arbeitsvorbereitung
8-38 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.8 Werkzeugträgerkinematik

Hinweis
Erklärungen zu den Parametern
Mit "m" wird jeweils die Nummer des zu beschreibenden Werkzeugträgers angegeben.
$TC_CARR47 bis $TC_CARR54 sowie $TC_CARR61 bis $TC_CARR63 sind nicht
definiert und führen beim Versuch hierauf lesend oder schreiben zuzugreifen, zu einem
Alarm.
Die Anfangs- bzw. Endpunkte der Abstandsvektoren auf den Achsen können frei gewählt
werden. Die Drehwinke α1, α2um die beiden Achsen werden im Grundzustand des
Werkzeugträgers mit 0° definiert. Die Kinematik eines Werkzeugträgers kann so auf beliebig
viele Möglichkeiten beschrieben werden.
Werkzeugträger mit nur einer oder keiner Drehachse können durch Nullsetzen der
Richtungsvektoren einer oder beider Drehachsen beschrieben werden.
Bei einem Werkzeugträger ohne Drehachse wirken die Abstandsvektoren wie zusätzliche
Werkzeugkorrekturen, deren Komponenten beim Umschalten der Bearbeitungsebenen (G17
bis G19)° nicht beeinflusst werden.

Erweiterungen der Parameter


Parameter der Drehachsen $TC_CARR24 bis $TC_CARR33
Die Systemvariablen wurden um die Einträge $TC_CARR24[m] bis $TC_CARR33[m]
erweitert und wie folgt beschrieben:

Den Offset der Veränderung der Position der Drehachse v1 oder v2 bei Grundstellung des
Drehachsen v1, v2 orientierbaren Werkzeugträgers.
Den Winkeloffset/ Offset oder Winkelinkrement der Hirth-Verzahnung der Drehachsen v1 und v2.
Winkelinkrement Programmierter oder berechneter Winkel wird auf den nächstliegenden Wert
Drehachsen v1, v2 gerundet, der sich bei ganzzahligem n aus phi = s + n * d ergibt.
Minimal- und Der Minimalposition/Maximalposition der Drehachse Grenzwinkel (Software-
Maximalposition Limit) der Drehachse v1 und v2.
Drehachsen v1, v2
Parameter für den Anwender $TC_CARR34 bis $TC_CARR40 enthalten Parameter,

Anwender die den Anwender zur freien Verfügung stehen und bis zum SW 6.4
standardmäßig innerhalb der NCK nicht weiter ausgewertet werden oder keine
Bedeutung haben.
Parmeter der Feinverschiebung $TC_CARR41 bis $TC_CARR65 enthalten

Feinverschiebung Feinverschiebungsparameter, die zu den Werten in den Basisparametern


addiert werden können. Der einem Basisparameter zugeordnete
Feinverschiebungswert ergibt sich, wenn zur Parameternummer der Wert 40
addiert wird.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-39
Werkzeugkorrekturen
8.8 Werkzeugträgerkinematik

Beispiel
Der im folgenden Beispiel verwendete Werkzeugträger lässt sich durch eine Drehung um die
Y-Achse vollständig beschreiben.

]
]
= <
<

;
<
;

;
;

N10 $TC_CARR8[1]=1 ;Definition der Y-Komponente der ersten


;Drehachse des Werkzeugträgers 1
N20 $TC_DP1[1,1]=120 ;Definition eines Schaftfräsers
N30 $TC_DP3[1,1]=20 ;Definition eines Schaftfräsers mit
;Länge 20 mm
N40 $TC_DP6[1,1]=5 ;Definition eines Schaftfräsers mit
;Radius 5 mm
N50 ROT Y37 ;Framedefinition mit Drehung von 37° um
;die Y-Achse
N60 X0 Y0 Z0 F10000 ;Ausgangsposition anfahren
N70 G42 CUT2DF TCOFR TCARR=1 T1 D1 X10 ;Radiuskorrektur, Werkzeuglängenkorrektur
;im gedrehten Frame einstellen,
;Werkzeugträger 1, Werkzeug 1 anwählen
N80 X40 ;Bearbeitung unter einer Drehung von 37°
;durchführen
N90 Y40
N100 X0
N110 Y0
N120 M30

Arbeitsvorbereitung
8-40 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Werkzeugkorrekturen
8.8 Werkzeugträgerkinematik

Voraussetzung
Ein Werkzeugträger kann ein Werkzeug nur dann in alle möglichen Raumrichtungen
orientieren, wenn
● zwei Drehachsen V1 und V2 vorhanden sind.
● die Drehachsen aufeinander senkrecht stehen.
● die Werkzeuglängsachse senkrecht auf der zweiten Drehachse V2 steht.
Zusätzlich gilt bei Maschinen, bei denen alle möglichen Orientierungen einstellbar sein
müssen, folgende Forderung:
● die Werkzeugorientierung muss senkrecht auf der ersten Drehachse V1 stehen.

Beschreibung
Aufgelöste Kinematik
Für Maschinen mit aufgelöster Kinematik (sowohl Werkzeug als auch Werkstück sind
drehbar) wurden die Systemvariablen um die Einträge $TC_CARR18[m] bis
$TC_CARR23[m] erweitert und wie folgt beschrieben:
Der drehbare Werkzeugtisch bestehend aus:
● dem vektoriellen Abstand der zweiten Drehachse V2 zum Bezugspunkt eines drehbaren
Werkzeugtisches I4 der dritten Drehachse.
Die Rundachsen bestehend aus:
● den beiden Kanalbezeichnern für den Bezug der Drehachsen V1und V2, auf deren
Position gegebe-nenfalls bei der Bestimmung der Orientierung des orientierbaren
Werkzeugträgers zugegriffen wird.
Der Kinematiktyp mit einem der Werte T, P oder M:
● Kinematiktyp T: Nur das Werkzeug ist drehbar.
● Kinematiktyp P: Nur das Werkstück ist drehbar.
● Kinematiktyp M: Werkzeug und Werkstück sind drehbar.
Löschen der Werkzeugträgerdaten
Mit $TC_CARR1[0] = 0 können die Daten aller Werkzeugträgerdatensätze gelöscht
werden.
Der Kinematiktyp $TC_CARR23[T] = T muss mit einen der drei zulässigen Groß- oder
Kleinbuchstaben (T,P,M) belegt werden und sollte aus diesen Grund nicht gelöscht werden.
Ändern der Werkzeugträgerdaten
Jeder der beschriebenen Werte kann durch Zuweisung eines neuen Wertes im
Teileprogramm verändert werden. Jedes andere Zeichen als T, P oder M führt bei den
Versuch, den orientierbaren Werkzeugträger zu aktivieren, zu einen Alarm.
Lesen der Werkzeugträgerdaten
Jeder der beschriebenen Werte kann durch Zuweisung an eine Variable im Teileprogramm
gelesen werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 8-41
Werkzeugkorrekturen
8.8 Werkzeugträgerkinematik

Feinverschiebungen
Ein unzulässiger Feinverschiebungswert wird erst erkannt, wenn ein orientierbarer
Werkzeugträger aktiviert wird, der solch einen Wert enthält und gleichzeitig das
Settingdatum SD 42974: TOCARR_FINE_CORRECTION = TRUE ist.
Der Betrag der zulässigen Feinverschiebung wird über Maschinendaten auf einen maximal
zulässigen Wert begrenzt.

Arbeitsvorbereitung
8-42 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten 9
9.1 9.1 Tangentialsteuerung (TANG, TANGON, TANGOF, TANGDEL)

Funktion
Die Folgeachse wird gemäß der Tangente an der durch die Leitachsen festgelegten Bahn
nachgeführt. Dadurch kann ein Werkzeug parallel zur Kontur ausgerichtet werden. Durch
den in der TANGON-Anweisung programmierten Winkel kann das Werkzeug relativ zur
Tangente angestellt werden.

<

Anwendungsbereiche
Die Tangentialsteuerung kann unter anderem eingesetzt werden bei:
● Tangentiellem Anstellen eines drehbaren Werkzeugs beim Nibbeln
● Nachführen der Werkstückausrichtung bei einer Bandsäge (s. Zeichnung)
● Anstellen eines Abrichtwerkzeugs an eine Schleifscheibe
● Anstellen eines Schneidrädchens zur Glas- oder Papierverarbeitung
● Tangentialer Zuführung eines Drahtes beim 5-achsigen Schweißen

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-1
Bahnverhalten
9.1 Tangentialsteuerung (TANG, TANGON, TANGOF, TANGDEL)

<

:HUNVW¾FN
6¦JHEDQG
;

Programmierung
TANG (FAchse,LAchse1,LAchse2,Koppel,KS,Opt)
oder
TANGON (FAchse,Winkel, Dist, Winkeltol)
oder
TANGOF (FAchse)
oder
TLIFT (FAchse)
oder
TANGDEL (FAchse)
Vereinfachte Programmierungen:
Ein Koppelfaktor von 1 muss nicht explizit programmiert werden.
TANG(C, X, Y, 1, "B", "P") kann abgekürzt notiert werden als TANG(C, X, Y, ,
, , "P"). Wie bisher kann statt TANG(C, X, Y, 1, "B", "S") geschrieben werden
als TANG(C, X, Y).
Die TLIFT(…)-Anweisung geben Sie im Anschluss an die Achsenzuordnung mit TANG(…)
an. Beispiel:
TANG(C, X, Y...)
TLIFT(C)
TLIFT ausschalten
Hierfür wiederholen Sie die Achsenzuordnung TANG(...) ohne folgendes TLIFT(...).
TANGDEL Definition einer Tangentialen Nachführung löschen
Eine bestehende anwenderdefinierte Tangentiale Nachführung muss gelöscht werden, wenn
eine neue Tangentiale Nachführung mit der gleichen Folgeachse im Vorbereitungsaufruf

Arbeitsvorbereitung
9-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.1 Tangentialsteuerung (TANG, TANGON, TANGOF, TANGDEL)

TANG definiert werden soll. Ein Löschen ist nur möglich, wenn die Kopplung mit
TANGOF(FAchse) ausgeschaltet ist.

Parameter

TANG Vorbereitende Anweisung für die Definition einer tangentialen


Nachführung; Voreinstellung: 1
TANG(C,X,Y,1,"B") Bedeutet:
Rundachse C folgt den Geometrieachsen X und [Link]
ausschalten
TANGON Tangentialsteuerung einschalten mit Angabe der Folgeachse und
dem gewünschten Offsetwinkel der Folgeachse, ggf.
Überschleifweg, Winkelabweichung.
TANGON(C,90) Bedeutet:
Die C-Achse ist Folgeachse. Sie wird bei jeder Bewegung der
Bahnachsen in eine 90°-Position zur Bahn-Tangente gedreht.
TANGOF Tangentialsteuerung ausschalten mit Angabe Folgeachse.
Zum Ausschalten der Tangentialsteuerung Folgeachse wird
angegeben:
TANGOF(C)
TLIFT Zwischensatz an Konturecken einfügen.
TANGDEL Definition einer Tangentialen Nachführung löschen.
Beispiel: TANGDEL(FAchse)
FAchse Folgeachse: Tangential nachgeführte Zusatzrundachse
Lachse1, Lachse2 Leitachsen: Bahnachsen, aus denen die Tangente für die
Nachführung bestimmt wird
Koppel Koppelfaktor: Zusammenhang zwischen Winkeländerung der
Tangente und der nachgeführten Achse.
Angabe optional; Voreinstellung: 1
KS Kennbuchstabe für Koordinatensystem
"B" = Basiskoordinatensystem; Angabe optional; Voreinstellung
"W" = Werstückkoordinatensystem ist nicht verfügbar
Opt Optimierungs:
"S" Standard, Default
"P" automatische Anpassung des Zeitverlaufes der
tangentiellen Achse und der Kontur
Winkel Offsetwinkel der Folgeachse
Dist Überschleifweg der Folgeachse, erforderlich bei Opt "P"
Winkeltol Winkeltoleranz der Folgeachse, (optional), Auswertung nur bei
Opt= "P"

Optimierungsmöglichkeit Opt, Dist und Winkeltol


Mit Opt="P" wird die Dynamik der Folgeachse bei der Geschwindigkeitsbegrenzung der
Leitachsen mit berücksichtigt und ist vor allem bei Einsatz von kinematischen
Transformationen zu empfehlen.
Die Parameter (Dist und Winkeltol) begrenzen den Fehler zwischen der nachgeführten
Achse und der Tangente der Leitachsen gezielt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-3
Bahnverhalten
9.1 Tangentialsteuerung (TANG, TANGON, TANGOF, TANGDEL)

Beispiel Ebenenwechsel

N10 TANG(A, X, Y,1) ;1. Definition der Tang. Nachführung


N20 TANGON(A) ;Aktivierung der Kopplung
N30 X10 Y20 ;Radius
...
N80 TANGOF(A) ;Ausschalten der 1. Kopplung
N90 TANGDEL(A) ;Löschen der 1. Definition
...
TANG(A, X, Z) ;2. Definition der Tang. Nachführung
TANGON(A) ;Aktivierung der neuen Kopplung
...
N200 M30

Beispiel Geometrieachachsumschaltung und TANGDEL


Es wird kein Alarm erzeugt.

N10 GEOAX(2,Y1) ;Y1 ist Geoachse 2


N20 TANG(A, X, Y)
N30 TANGON(A, 90)
N40 G2 F8000 X0 Y0 I0 J50
N50 TANGOF(A) ;Deaktivierung Nachführung mit Y1
N60 TANGDEL(A) ;Löschen der 1. Definition
N70 GEOAX(2, Y2) ;Y2 ist neue Geoachse 2
N80 TANG(A, X, Y) ;2. Definition der Tang. Nachführung
N90 TANGON(A, 90) ;Aktivierung der Nachfürung mit 2. Def.
...

Beispiel Tangentiale Nachführung mit automatischer Optimierung


Automatische Optimierung über Dist und Winkeltoleranz

N80 G0 C0 ;Y1 ist Geoachse 2


N100 F=50000
N110 G1 X1000 Y500
N120 TRAORI ;Überschleifen mit axialer Toleranz
N130 G642
N171 TRANS X–Y– ;autom. Optimierung der Bahngeschw.
N180 TANG(C,X,Y, 1,,"P") ;Überschleifweg 5 mm,
N190 TANGON(C, 0, 5.0, 2.0) ;Winkeltoleranz 2 Grad
N210 G1 X1310 Y500 ;Aktivierung der Nachfürung mit 2. Def.
N215 G1 X1420 Y500
N220 G3 X1500 Y580 I=AC(1420)_
J=AC(580)

Arbeitsvorbereitung
9-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.1 Tangentialsteuerung (TANG, TANGON, TANGOF, TANGDEL)

N230 G1 X1500 Y760


N240 G3 X1360 Y900 I=AC(1360)_
J=AC(760)
N250 G1 X1000 Y900
N280 TANGOF(C)
N290 TRAFOOF
N300 M02

Folge- und Leitachse definieren


Die Definition von Folge- und Leitachsen erfolgt mit TANG.
Ein Koppelfaktor gibt den Zusammenhang zwischen einer Winkeländerung der Tangente
und der nachgeführten Achse an. Sein Wert beträgt in der Regel 1 (Voreinstellung).

Grenzwinkel durch Arbeitsfeldbegrenzung


Bei hin- und hergeführten Bahnbewegungen springt die Tangente im Umkehrpunkt der Bahn
um 180° um, entsprechend ändert sich die Ausrichtung der Folgeachse.
In der Regel ist dieses Verhalten nicht sinnvoll: Die Rückbewegung soll im gleichen
negativen Offsetwinkel wie die Hinbewegung abgefahren werden.
Dazu begrenzen Sie das Arbeitsfeld der Folgeachse (G25, G26). Die Arbeitsfeldbegrenzung
muss zum Zeitpunkt der Bahnumkehr aktiv (WALIMON) sein.
Liegt der Offsetwinkel außerhalb der Arbeitsfeldbegrenzung, wird versucht, mit negativem
Offsetwinkel wieder in den zulässigen Arbeitsbereich zu kommen.

<

˞
˞

˞ XQHUZ¾QVFKWH
5¾FNEHZHJXQJ
;
<

HUZ¾QVFKWH
5¾FNEHZHJXQJ
;

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-5
Bahnverhalten
9.1 Tangentialsteuerung (TANG, TANGON, TANGOF, TANGDEL)

Zwischensatz an Konturecken einfügen, TLIFT


An einer Ecke der Kontur ändert sich die Tangente und damit die Sollposition der
nachgeführten Achse sprunghaft. Die Achse versucht normalerweise, diesen Sprung mit
ihrer maximal möglichen Geschwindigkeit auszugleichen. Dabei ergibt sich jedoch über eine
gewisse Strecke auf der Kontur nach der Ecke eine Abweichung zur gewünschten
tangentiellen Anstellung. Wenn dies aus technologischen Gründen nicht tolerierbar ist, kann
mit der Anweisung TLIFT die Steuerung dazu veranlasst werden, an der Ecke anzuhalten
und in einem automatisch erzeugten Zwischensatz die nachgeführte Achse in die neue
Tangentenrichtung zu drehen.
Die Drehung erfolgt mit der programmierten Bahnachse, wenn die nachgeführte Achse
einmal als Bahnachse gefahren wurde. Durch die Funktion TFGREF[ax] = 0.001 kann
hier eine maximale Achsgeschwindigkeit der nachgeführten Achse erreicht werden.
Wurde die nachgeführte Achse bisher nicht als Bahnachse verfahren, so wird diese Achse
als Positionierachse verfahren. Die Geschwindigkeit ist dann abhängig von der im
Maschinendatum hinterlegten Positioniergeschwindigkeit.
Die Drehung erfolgt mit der maximalen Geschwindigkeit der nachgeführten Achse.

Optimierungsmöglichkeit
Geschwindigkeitssprünge der Folgeachse infolge von Sprüngen in der Leitachskontur
werden mit (Dist und Winkeltol) überschliffen bzw. geglättet.
Dabei wird die Folgeachse vorausschauend geführt (siehe Diagramm), um die Abweichung
möglichst klein zu halten.

Winkeländerung definieren
Die Winkeländerung, ab der ein automatischer Zwischensatz eingeführt wird, wird über das
Maschinendatum $MA_EPS_TLIFT_TANG_STEP definiert.

Arbeitsvorbereitung
9-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.2 Mitschleppen (TRAILON, TRAILOF)

Einfluss auf Transformationen


Die Position der nachgeführten Rundachse kann Eingangswert für eine Transformation sein.

Explizite Positionierung der Folgeachse


Wird eine ihren Leitachsen nachgeführte Folgeachse explizit positioniert, so wirkt die
Positionsangabe additiv zum programmierten Offsetwinkel.
Zulässig sind alle Wegvorgaben: Bahn- und Positionierachsbewegungen.

Status der Kopplung


Im NC-Teileprogramm können Sie den Status der Kopplung mit folgender Systemvariablen
abfragen:
$AA_COUP_ACT[Achse]
0: Keine Kopplung aktiv
1,2,3: Tangentiales Nachführen aktiv

9.2 9.2 Mitschleppen (TRAILON, TRAILOF)

Funktion
Beim Bewegen einer definierten Leitachse fahren ihr zugeordnete Mitschleppachsen
(= Folgeachsen) unter Berücksichtigung eines Koppelfaktors die von der Leitachse
abgeleiteten Verfahrwege ab.
Leitachse und Folgeachsen bilden zusammen einen Mitschleppverband.
Anwendungsbereiche
● Verfahren einer Achse durch eine simulierte Achse. Die Leitachse ist eine simulierte
Achse und die Mitschleppachse eine reale Achse. Damit kann die reale Achse mit
Berücksichtigung des Koppelfaktors verfahren werden.
● Zweiseitenbearbeitung mit 2 Mitschleppverbänden:
1. Leitachse Y, Mitschleppachse V
2. Leitachse Z, Mitschleppachse W

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-7
Bahnverhalten
9.2 Mitschleppen (TRAILON, TRAILOF)

$FKVH
< $FKVH
$FKVH 9
=
$FKVH
:

$FKVH
;

Programmierung
TRAILON(FAchse,LAchse,Koppel)
oder
TRAILOF(FAchse,LAchse, LAchse2)
oder Ausschalten ohne Angabe der Leitachse
TRAILOF(FAchse)
TRAILON und TRAILOF sind modal wirksam.

Parameter

TRAILON Mitschleppverband aktivieren und definieren


Beispiel: V = Mitschleppachse, Y = Leitachse
TRAILON(V,Y)
TRAILOF Mitschleppverband ausschalten
Beispiel: V = Mitschleppachse, Y = Leitachse
TRAILOF(V,Y)
TRAILOF mit 2 Parametern schaltet nur die Kopplung zu 1
Leitachse aus. Besitzt eine Mitschleppachse 2 Leitachsen, z.
B. V=Mitschleppachse und X,Y=Leitachsen, kann zum Ausschalten
der Kopplung TRAILOF mit 3 Parametern aufgerufen werden:
TRAILOF(V,X,Y)
TRAILOF(V)
Ausschalten der Kopplung ohne Angabe der Leitachse. Besitzt
die Mitschleppachse 2 Leitachsen, werden beide Kopplungen
ausgeschaltet.
FAchse Achsbezeichnung der Mitschleppachse
Eine Mitschleppachse kann auch Leitachse für weitere
Mitschleppachsen sein. Auf diese Weise können
unterschiedliche Mitschleppverbände aufgebaut werden.
LAchse Achsbezeichnung der Leitachse

Arbeitsvorbereitung
9-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.2 Mitschleppen (TRAILON, TRAILOF)

Koppel Koppelfaktor = Weg der Mitschleppachse/Weg der Leitachse


Voreinstellung = 1

Hinweis
Das Mitschleppen erfolgt immer im Basiskoordinatensystem (BKS).
Die Anzahl der gleichzeitig aktivierbaren Mitschleppverbände wird nur begrenzt durch die
Kombinationsmöglichkeiten der an der Maschine vorhandenen Achsen.

Beispiel
Das Werkstück soll zweiseitig mit der dargestellten Achskonstellation bearbeitet werden.
Dazu bilden Sie 2 Mitschleppverbände.

$FKVH
< $FKVH
$FKVH 9
=
$FKVH
:

$FKVH
;


N100 TRAILON(V,Y) ;Einschalten des 1. Mitschleppverbandes
N110 TRAILON(W,Z,–1) ;Einschalten des 2. Mitschleppverbandes Koppelfaktor negativ:
;Mitschleppachse fährt ;jeweils in entgegengesetzter Richtung
;wie Leitachse
N120 G0 Z10 ;Zustellung der Z- und W-Achse in entgegengesetzter
;Achsrichtung
N130 G0 Y20 ;Zustellung der Y- und V-Achse in gleicher Achsrichtung

N200 G1 Y22 V25 F200 ;Überlagerung einer abhängigen und unabhängigen Bewegung der
;Mitschleppachse ;"V"

TRAILOF(V,Y) ;Ausschalten des 1. Mitschleppverbandes
TRAILOF(W,Z) ;Ausschalten des 2. Mitschleppverbandes

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-9
Bahnverhalten
9.2 Mitschleppen (TRAILON, TRAILOF)

Achstypen im Verband
Ein Mitschleppverband kann aus beliebigen Kombinationen von Linear- und Rundachsen
bestehen. Als Leitachse kann dabei auch eine simulierte Achse definiert werden.

Mitschleppachsen
Einer Mitschleppachse können gleichzeitig maximal 2 Leitachsen zugeordnet werden. Die
Zuordnung erfolgt in unterschiedlichen Mitschleppverbänden.
Eine Mitschleppachse kann mit allen zur Verfügung stehenden Bewegungsbefehlen
programmiert werden (G0, G1, G2, G3, …). Zusätzlich zu den unabhängig definierten
Wegen fährt die Mitschleppachse die mit den Koppelfaktoren aus ihren Leitachsen
abgeleiteten Wege.

Koppelfaktor
Der Koppelfaktor gibt das gewünschte Verhältnis der Wege von Mitschleppachse und
Leitachse an.
Formel: Koppelfaktor = Weg der Mitschleppachse / Weg der Leitachse
Wird der Koppelfaktor bei der Programmierung nicht angegeben, so gilt automatisch der
Koppelfaktor 1.
Der Faktor wird als gebrochene Zahl mit Dezimalpunkt (Typ REAL) eingegeben. Die
Eingabe eines negativen Wertes bewirkt eine entgegengesetzte Verfahrbewegung der Leit-
und Mitschleppachse.

Beschleunigung und Geschwindigkeit


Die Beschleunigungs- und Geschwindigkeitsgrenzen der zur Kopplung gehörenden Achsen
werden durch die "schwächste Achse" des Mitschleppverbandes bestimmt.

Status der Kopplung


Im NC-Teileprogramm können Sie den Kopplungsstatus mit folgender Systemvariablen
abfragen:
$AA_COUP_ACT [Achse]
0: Keine Kopplung aktiv
8: Mitschleppen aktiv

Arbeitsvorbereitung
9-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.3 Kurventabellen (CTAB)

9.3 9.3 Kurventabellen (CTAB)

9.3.1 Kurventabellen: Allgemeine Zusammenhänge

Funktion
Im Kapitel Kurventabellen finden Sie die Programmierbefehle, mit denen Zusammenhänge
zwischen zwei Achsen (Leit- und Folgeachse) programmiert werden.
In einem definierten Wertebereich des Leitwerts kann eindeutig zu jedem Leitwert die
Folgegröße zugeordnet werden. Liegt der Leitwert außerhalb des Definitionsbereichs, dann
kann das Verhalten an den Rändern der Kurventabelle für periodische und für nicht
periodische Kurventabellen programmiert werden.

Beschreibung
Die mechanischen Kurvenscheiben werden durch Kurventabellen ersetzt, mit denen sich
● bestimmte Kurvenzüge in einem Definitionsbereich
● einzelne Abschnitte, so genannte Kurvensegmente
● die Ränder der Kurve für periodische und nicht periodische Kurventabellen
● die betreffenden Kurvensegmentpositionen
definieren lassen.
In einem definierten Wertebereich können von
● den betreffenden Tabellenpositionen sowie
● den Start- und Endwert eines Tabellensegments
der entsprechende Folgewert zu einem Leitwert und ebenso der Leitwert zu einem
Folgewert gelesen werden.
Dargestellt werden alle weiteren Formen, optionale Parameter den jeweiligen
Programmierbefehlen zuzuordnen. Die sich daraus ergebenden Möglichkeiten, einzelne
oder mehrere Kurventabellen gezielt im entsprechenden Speichertyp zu beeinflussen,
schaffen eine flexible Programmierung für weitere Anwendungen. So werden auch zur
Diagnose von Achskopplungen umfangreiche Möglichkeiten der Programmierung
angegeben.
Zur Definition von Kurventabellen und den Zugriff auf Kurventabellenpositionen werden
jeweils typische Programmierbeispiele angegeben.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-11
Bahnverhalten
9.3 Kurventabellen (CTAB)

9.3.2 Kurventabellen Schwerpunktfunktionen (CTABDEF, CATBEND, CTABDEL)

Funktion
Mit Kurventabellen können Sie Positions- und Geschwindigkeitsbeziehungen zwischen 2
Achsen programmieren. Die Definition der Kurventabellen erfolgt in einem Teileprogramm.
Beispiel für mechanische Kurvenscheiben ersetzen:
Die Kurventabelle bildet dabei die Grundlage für die axiale Leitwertkopplung, indem sie den
funktionellen Zusammenhang zwischen Leit- und Folgewert schafft:
Die Steuerung berechnet bei entsprechender Programmierung aus einander zugeordneten
Positionen von Leit- und Folgeachse ein Polynom, das der Kurvenscheibe entspricht.

<

[\

DDD[
DD[


Programmierung
Modal wirksame Sprachbefehle mit Kurventabellen
CTABDEF(FAchse, LAchse, n, applim, memType)
oder
CTABEND()
oder
CTABDEL(), CTABDEL(, ,memType)

Arbeitsvorbereitung
9-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.3 Kurventabellen (CTAB)

Parameter
Schwerpunktfunktionen

CTABDEF ( ) Beginn Kurventabelle definieren.


CTABEND( ) Ende Kurventabelle definieren.
CTABDEL( ) Löschen aller Kurventabellen, ungeachtet vom Speichertyp
FAchse Folgeachse
Achse, die über die Kurventabelle programmiert wird.
LAchse Leitachse
Achse, durch die der Leitwert programmiert wird.
n, m Nummer der Kurventabelle; n < m z. B. bei CTABDEL(n, m)
Die Nummer einer Kurventabelle ist eindeutig und unabhängig
vom Speichertyp. Es können keine Tabellen mit der gleichen
Nummer im SRAM und im DRAM liegen.
applim Kennung für Tabellenperiodizität:
Tabelle ist nicht periodisch
Tabelle ist periodisch bezüglich Leitachse
Tabelle ist periodisch bezüglich Leitachse und Folgeachse
memType Optionale Angabe des Speichertyps der NC: "DRAM" / "SRAM"
Falls für diesen Parameter kein Wert programmiert wird, wird
der mit dem MD 20905: CTAB_DEFAULT_MEMORY_TYPE eingestellte
Standard Speichertyp verwendet.

Maschinenhersteller
Zur Erstellung von Kurventabellen muss über entsprechendes Setzen der Maschinendaten
Speicherplatz reserviert werden.

Beispiel Verwendung von CTABDEF und CTABEND


Ein Programmabschnitt soll unverändert zur Definition einer Kurventabelle benutzt werden.
Der darin auftretende Befehl zum Vorlaufstopp STOPRE kann stehen bleiben und wird sofort
wieder aktiv, sobald der Programmabschnitt nicht zur Tabellendefinition benutzt wird,
CTABDEF und CTABEND entfernt wurden:


CTABDEF(Y,X,1,1) ;Definition einer Kurventabelle


IF NOT ($P_CTABDEF)
STOPRE
ENDIF


CTABEND

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-13
Bahnverhalten
9.3 Kurventabellen (CTAB)

Beispiel Definition einer Kurventabelle

<






 ;

    

N100 CTABDEF(Y,X,3,0) ;Beginn der Definition einer


;nichtperiodischen Kurventabelle mit der
;Nummer 3
N110 X0 Y0 ;1. Bewegungsanweisung, legt
;Startwerte und 1. Stützstelle fest:
;Leitwert: 0; Folgewert: 0
N120 X20 Y0 ;2. Stützstelle: Leitwert: 0…20
;Folgewert: Startwert…0
N130 X100 Y6 ;3. Stützstelle: Leitwert: 20…100
;Folgewert: 0…6
N140 X150 Y6 ;4. Stützstelle: Leitwert: 100…150
;Folgewert: 6…6
N150 X180 Y0 ;5. Stützstelle: Leitwert: 150…180
;Folgewert: 6…0
N200 CTABEND ;Ende der Definition; die Kurventabelle
;wird in ihrer internen Darstellung als
;Polynom im maximal [Link] erzeugt;
;die Berechnung des Kurvenzugs mit den
;angegebenen Stützstellen ist abhängig von
;der modal gewählten Interpolationsart
;(Kreis-, Linear-, Spline-Interpolation)
der
;Teileprogrammzustand vor Beginn der
;Definition wird wiederhergestellt.

Arbeitsvorbereitung
9-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.3 Kurventabellen (CTAB)

Beispiel Definition einer periodischen Kurventabelle


Definition einer periodischen Kurventabelle mit Nummer 2, Leitwertbereich von 0 bis 360,
Folgeachsbewegung von 0 nach 45 und zurück nach 0:

N10 DEF REAL DEPPOS


N20 DEF REAL GRADIENT
N30 CTABDEF(Y,X,2,1) ;Beginn der Definition
N40 G1 X=0 Y=0
N50 POLY
N60 PO[X]=(45.0)
N70 PO[X]=(90.0) PO[Y]=(45.0,135.0,-90)
N80 PO[X]=(270.0)
N90 PO[X]=(315.0) PO[Y]=(0.0,-135.0,90)
N100 PO[X]=(360.0)
N110 CTABEND ;Ende der Definition

;Test der Kurve durch Kopplung von Y an X


N120 G1 F1000 X0
N130 LEADON(Y,X,2)
N140 X360
N150 X0
N160 LEADOF(Y,X)

N170 DEPPOS=CTAB(75.0,2,GRADIENT) ;Lesen der Tabellenfunktion beim Leitwert


75.0

N180 G0 X75 Y=DEPPOS ;Positionieren von Leit- und Folgeachse

;Nach Einschalten der Kopplung ist kein Synchronisieren der Folgeachse nötig
N190 LEADON(Y,X,2)
N200 G1 X110 F1000
N210 LEADOF(Y,X)
N220 M30

Definition der Kurventabelle


CTABDEF, CTABEND
Eine Kurventabelle stellt ein Teileprogramm oder einen Teileprogrammabschnitt dar, welcher
durch Voranstellen von CTABDEF und den abschließenden Befehl CTABEND
gekennzeichnet ist.
Innerhalb dieses Teileprogrammabschnitts werden durch Bewegungsanweisungen
einzelnen Positionen der Leitachse eindeutige Folgeachspositionen zugeordnet, die als
Stützstellen für die Berechnung des Kurvenzugs in Form eines Polynoms bis zu maximal 5.
Grades dienen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-15
Bahnverhalten
9.3 Kurventabellen (CTAB)

)ROJHZHUW

6W¾W]VWHOOHQ

.XUYHQ]XJ

/HLWZHUW
'HILQLWLRQVEHUHLFK

6WDUWZHUW (QGZHUW

Start- und Endwert der Kurventabelle


Als Startwert für den Beginn des Definitionsbereichs der Kurventabelle gilt die erste Angabe
von zusammengehörigen Achspositionen (die erste Bewegungsanweisung) innerhalb der
Kurventabellendefinition. Der Endwert des Definitionsbereichs der Kurventabelle wird
entsprechend durch den letzten Verfahrbefehl bestimmt.
Innerhalb der Definition der Kurventabelle steht der gesamte NC-Sprachumfang zur
Verfügung.
Sämtliche modal wirksamen Anweisungen, die innerhalb der Kurventabellendefinition
getroffen werden, sind mit Abschluss der Tabellendefinition ungültig. Das Teileprogramm, in
dem die Tabellendefinition erfolgt, befindet sich damit vor und nach der Tabellendefinition im
gleichen Zustand.

Hinweis
Nicht zulässig sind:
Vorlaufstopp
Sprünge in der Leitachsenbewegung (z. B. beim Wechsel von Transformationen)
Bewegungsanweisung allein für die Folgeachse
Bewegungsumkehr der Leitachse, d. h. Position der Leitachse muss immer eindeutig sein
CTABDEF- und CTABEND-Anweisung in unterschiedlichen Programmebenen.

Aktivierung von ASPLINE, BSPLINE, CSPLINE


Wird innerhalb einer Kurventabelle CTABDEF( ) ... CTABEND ein ASPLINE, BSPLINE
oder CSPLINE aktiviert, so sollte vor dieser Splineaktivierung mindestens ein Startpunkt
programmiert werden. Eine sofortige Aktivierung nach CTABDEF sollte vermieden werden,
da sonst der Spline von der aktuellen Achsposition vor der Kurventabellendefinition abhängt.

Arbeitsvorbereitung
9-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.3 Kurventabellen (CTAB)

Beispiel:
...
CATBDEF(Y, X, 1, 0)
X0 Y0
ASPLINE
X=5 Y=10
X10 Y40
...
CTABEND
Abhängig vom Maschinendatum MD 20900: CATB_ENABLE_NO_LEADMOTION können
Sprünge der Folgeachse bei fehlender Bewegung der Leitachse toleriert werden. Die
übrigen im Hinweis genannten Einschränkungen gelten weiterhin.
Beim Anlegen und Löschen von Tabellen können die Angaben des Speichertyps der NC
benutzt werden.

Löschen von Kurventabellen, CTABDEL


Mit CTABDEL können Kurventabellen gelöscht werden. Kurventabellen, die in einer
Achskopplung aktiv sind, können nicht gelöscht werden. Ist wenigstens eine Kurventabelle
aus einem Mehrfachlöschbefehl CTABDEL( ) oder CTABDEL(n, m) in einer Kopplung
aktiv, wird keine der adressierten Kurventabellen gelöscht. Kurventabellen eines bestimmten
Speichertyps können durch optionale Speichertyp-Angabe gelöscht werden, siehe Kapitel
"Kurventabellen Formen (CTABDEL, ... CTABUNLOCK".

9.3.3 Kurventabellen Formen (CTABDEL, CTABNOMEM, CTABFNO, CTABID,


CTABLOCK, CTABUNLOCK)

Funktion
Weitere Anwendungen von Kurventabellen sind:
● In einem bestimmten Speichertyp SRAM oder DRAM löschen.
● Anzahl der definierten und noch möglichen Kurventabellen im Speichertyp festlegen.
● Kurventabellen gegen Löschen und Überschreiben sperren oder die Sperre wieder
aufheben.
● Optionale Angaben für Selektionen wie Löschen
einer Kurventabelle, Löschen eines Kurventabellenbereiches,
aller Kurventabellen im angegebenen Speicher,
und Überschreiben sperren sowie Sperren wieder aufheben.
● Angaben zur Diagnose von Achskopplungen wie bestimmte
Kurventabelleneigenschaften liefern, zurückgeben und prüfen
Anzahl von Kurventabellen, Kurvensegmenten und Kurvenpolynomen bestimmen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-17
Bahnverhalten
9.3 Kurventabellen (CTAB)

Programmierung
Modal wirksame Sprachbefehle mit Kurventabellen
CTABDEL(n, m, memType)
oder
CTABNOMEM (memType)
oder
CTABFNO(memType)
oder
CTABID(n, memType)
oder
CTABLOCK(n, m, memType) oder CTABUNLOCK(n, m, memType)
oder
CTABDEL(n) oder CTABDEL(n, m)
oder
CTABLOCK(n) oder CTABLOCK(n, m) oder CTABLOCK() oder
CTABLOCK(, , memType)
oder
CTABUNLOCK(n) oder CTABUNLOCK(n, m) oder CTABUNLOCK() oder
CTABUNLOCK(, , memType)
oder
CTABID(n) oder CTABID(n, memType) oder CTABID(p, memType)
oder
CTABISLOCK(n)
oder
CTABEXISTS(n)
oder
CTABMEMTYP(n)
oder
CTABPERIOD(n)
oder
CTABSEGID(n, segType)
oder
CTABSEG(memType, segType) oder CTABFSEG(memType, segType) oder
CTABMSEG(memType, segType)
oder
CTABPOLID(n) oder CTABMPOL(memType)

Arbeitsvorbereitung
9-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.3 Kurventabellen (CTAB)

Parameter
Allgemeine Form im statischen oder dynamischen NC-Speicher:

CTABDEL(n, m, Löschen der Kurventabellen des Kurventabellenbereiches, die


memType) in memType gespeichert sind.
CTABNOMEM(memType) Anzahl der definierten Kurventabellen.
CTABFNO(memType) Anzahl der noch möglichen Tabellen
CTABID(n, memType) Liefert Tabellen-Nr., die im Speichertyp als die n-te
Kurventabelle eingetragen ist.
CTABLOCK(n, m, Sperren gegen Löschen und Überschreiben setzen.
memType)
CTABUNLOCK(n, m, Sperren gegen Löschen und Überschreiben aufheben.
memType) CTABUNLOCK gibt die mit CTABLOCK gesperrten Tabellen wieder
frei. Tabellen, die in einer aktiven Kopplung wirken, bleiben
weiterhin gesperrt und können nicht gelöscht werden. Die
Sperre mit CTABLOCK ist aufgehoben, sobald die Sperrung durch
die aktive Kopplung mit Deaktivierung der Kopplung aufgehoben
wird. Damit kann diese Tabelle gelöscht werden. Ein
nochmaliger CTABUNLOCK Aufruf ist nicht notwendig.

Anwendungen weiterer Formen Optionale Angaben für Selektionen:

CTABDEL(n) Löschen einer Kurventabelle.


Löschen eines Kurventabellenbereiches.
CTABDEL(, , memType) Löschen aller Kurventabellen im angegebenen Speicher.
CTABLOCK(n) Löschen und Überschreiben sperren:
Die Kurventabelle mit Nummer n.
CTABLOCK(n, m) Die Kurventabellen im Nummernbereich von n bis m sperren.
CTABLOCK() Alle bereits vorhandenen Kurventabellen.
CTABLOCK(, , memType) Alle Kurventabellen im Speichertyp.
CTABUNLOCK(n) Löschen und Überschreiben aufheben: Die Kurventabelle mit
Nummer n
CTABUNLOCK(n, m) Die Kurventabellen wieder freigeben im Nummernbereich von
n bis m.
CTABUNLOCK() Alle bereits vorhandenen Kurventabellen.
CTABUNLOCK(, , Alle Kurventabellen im Speichertyp.
memType)

Anwendungen weiterer Formen zur Diagnose von Achskopplungen:

CTABID(n, memType) Liefert Tabellen-Nummer der n-/p-ten Kurventabelle mit dem


CTABID(p, memType) Speichertyp memType.

CTABID(n) Liefert Tabellen-Nr. der n-ten Kurventabelle mit dem durch


das MD 20905: CTAB_DEFAULT_MEMORY_TYPE festgelegten
Speichertyp.
CTABISLOCK(n) Gibt den Sperrzustand der Kurventabelle mit der Nummer n
zurück.
CTABEXISTS(n) Prüft Kurventabelle mit der Nummer n
CTABMEMTYP(n) Gibt den Speicher zurück, in dem die Kurventabelle mit der
Nr. n angelegt ist.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-19
Bahnverhalten
9.3 Kurventabellen (CTAB)

CTABPERIOD(n) Gibt die Tabellenperiodizität zurück.


CTABSEG(memType) Anzahl der bereits verwendeten Kurvensegmente im betreffenden
Speichertyp.
CTABSEGID(n) Anzahl der von der Kurventabelle mit der Nummer n verwendeten
Kurvensegmente.
CTABFSEG(memType) Anzahl der möglichen Kurvensegmente.
CTABMSEG(memType) Anzahl maximal möglicher Segmente.
CTABPOLID(n) Anzahl der von der Kurventabelle mit der Nummer n verwendet.
Kurvenpolynome.
CTABSEG(memTyp, Anzahl der bereits verwendeten Kurvensegmente vom Typ "L"
segType) oder "P" im Speichertyp.
CTABFSEGID(n, Anzahl der von der Kurventabelle mit der Nummer n verwendeten
segType) Kurvensegmente vom Typ "L" oder "P".
CTABFSEG(memTyp, Anzahl der noch möglichen Kurvensegmente vom Typ "L" oder "P"
segType) im Speichertyp.
CTABMSEG(memTyp, Anzahl der maximal möglichen Kurvensegmente vom Typ "L" oder
segType) "P" im Speichertyp.
CTABFPOL(memType) Anzahl der noch möglichen Kurvenpolynome im betreffenden
Speichertyp.
CTABMPOL(memType) Anzahl der maximal möglichen Kurvenpolynome im betreffenden
Speichertyp.
n, m Nummer der Kurventabelle; n < m z. B. bei CTABDEL(n, m)
Die Nummer einer Kurventabelle ist eindeutig und unabhängig
vom Speichertyp. Es können keine Tabellen mit der gleichen
Nummer im statischen und im dynamischen NC-Speicher liegen.
p Eintragsplatz (im Speicherbereich memType)
memType Optionale Angabe des Speichertyps der NC: Möglich sind sowohl
der "dynamische Speicher" als auch der "statische Speicher"
Falls für diesen Parameter kein Wert programmiert wird, wird
der mit dem MD 20905: CTAB_DEFAULT_MEMORY_TYPE eingestellte
Standard Speichertyp verwendet.
segType Optionale Angabe zur Segmentart. Mögliche Werte sind:
segType "L" lineare Segmente
segType "P" Polynomsegmente

Beschreibung
Laden von Kurventabellen über "Abarbeiten von Extern"
Beim externen Abarbeiten von Kurventabellen muss die Größe des Nachladebuffers
(DRAM) über das MD18360 $MN_MM_EXT_PROG_BUFFER_SIZE so gewählt werden,
dass die gesamte Kurventabellendefinition gleichzeitig im Nachladebuffer abgelegt werden
kann. Die Teileprogrammbearbeitung wird anderenfalls mit dem Alarm 15150 abgebrochen.
Wiederholte Verwendung von Kurventabellen
Der über die Kurventabelle berechnete funktionelle Zusammenhang von Leit- und
Folgeachse bleibt unter der gewählten Tabellennummer über das Teileprogrammende und
über Power-Off hinaus erhalten, falls die Tabelle im statischen NC-Speicher (SRAM)
abgelegt ist.

Arbeitsvorbereitung
9-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.3 Kurventabellen (CTAB)

Eine Tabelle, die im dynamischen Speicher (DRAM) angelegt wurde, wird bei Power-On
gelöscht und muss eventuell noch einmal erzeugt werden.
Die einmal erstellte Kurventabelle lässt sich auf beliebige Achskombinationen von Leit- und
Folgeachse anwenden und ist unabhängig davon, welche Achsen zur Erstellung der
Kurventabelle benutzt wurden.
Überschreiben von Kurventabellen
Eine Kurventabelle wird überschrieben, sobald bei einer erneuten Tabellendefinition deren
Nummer benutzt wird.
Ausnahme: Eine Kurventabelle ist in einer Achskopplung aktiv oder mit CTABLOCK( )
gesperrt.

Hinweis
Beim Überschreiben von Kurventabellen wird keine entsprechende Warnung ausgegeben!
Mit der Systemvariable $P_CTABDEF ist jederzeit eine Abfrage aus einem Teileprogramm
heraus möglich, ob eine Kurventabellendefinition aktiv ist.
Der Teileprogrammabschnitt ist nach Ausklammern der Anweisungen zur
Kurventabellendefinition wieder als reales Teileprogramm verwendbar.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-21
Bahnverhalten
9.3 Kurventabellen (CTAB)

9.3.4 Verhalten an den Rändern von Kurventabellen (CTABTSV, CATBTSP, CTABMIN,


CTABMAX)

Funktion
Liegt der Leitwert außerhalb des Definitionsbereichs, so kann von einer Folgeachse der Wert
am Anfang und am Ende der Kurventabelle gelesen werden.
Mit CTABTSV wird von einer Folgeachse der Wert am Anfang der Kurventabelle gelesen.
Mit CTABTEV wird von einer Folgeachse der Wert am Ende der Kurventabelle gelesen.
Die Startwerte und Endwerte einer Kurventabelle sind unabhängig davon, ob die Tabelle mit
steigenden oder mit fallenden Leitwerten definiert wird. Es wird immer der Startwert durch
die untere Intervallgrenze und der Endwert durch die obere Intervallgrenze festgelegt.
Mit CTABTMIN und CTABTMAX können die Minimal oder Maximalwerte einer Kurventabelle
im gesamten Bereich oder in einem definierten Intervall bestimmt werden. Für das
entsprechende Intervall des Leitwerts werden zwei Grenzen angegeben.

Programmierung
Folgewert Start- und Endwert Folgeachse:
CTABTSV(n, grad, FAchse), CTABTEV(n, grad, FAchse)
Leitwert Start- und Endwert Leitachse:
CTABTSP(n, grad, FAchse), CTABTEP(n, grad, FAchse)
Wertebereiche Min und Max:
CTABTMIN(n, FAchse)
oder
CTABTMAX(n, FAchse)

Parameter
CTABTSV Von einer Folgeachse Anfangswert der Kurventabelle
lesen.
CTABTEV () Von einer Folgeachse Endwert der Kurventabelle lesen.
CTABTSP () Von einer Leitachse Anfangswert der Kurventabelle
lesen.
CTABTEP () Von einer Leitachse Endwert der Kurventabelle lesen.
CTABMIN () Minimalwert einer Kurventabelle im gesamten Bereich
oder in einem definierten Intervall bestimmen.
CTABMAX () Maximalwert einer Kurventabelle im gesamten Bereich
oder in einem definierten Intervall bestimmen.
FAchse Folgeachse
Achse, die über die Kurventabelle programmiert wird.
LAchse Leitachse
Achse, durch die der Leitwert programmiert wird.

Arbeitsvorbereitung
9-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.3 Kurventabellen (CTAB)

n, m Nummer der Kurventabellen


Die Nummern der Kurventabellen können beliebig
vergeben werden. Sie dienen ausschließlich zur
eindeutigen Identifizierung.
grad Gradient für die Steigung am Start bzw. Ende des
Segments der Kurventabelle

Werte und Wertebereich


Werte der Folgeachse und Leitachse, die sich am Anfang und Ende einer Kurventabelle
befinden CTABTSV, CTABTEV, CTABTSP, CTABTEP

R10=CTABTSV(n, grad, FAchse). Folgewert am Anfang der Kurventabelle


R10=CTABTEV(n, grad, FAchse) Folgewert am Anfang der Kurventabelle
R10=CTABTSP(n, grad, LAchse) Leitwert am Anfang der Kurventabelle
R10=CTABTEP(n, grad, LAchse) Leitwert am Ende der Kurventabelle
Wertebereich der Kurventabelle des Folgewertes CTABTMIN, CTABTMAX

R10=CTABTMIN(n, FAchse) Minimaler Folgewert der Kurventabelle


im gesamten Intervall
R10=CTABTMAX(n, FAchse) Maximaler Folgewert der Kurventabelle
im gesamten Intervall
R10=CTABTMIN(n, a, b, FAchse, Minimaler Folgewert der Kurventabelle
LAchse)
im Intervall a...b des Leitwerts
R10=CTABTMAX(n, a, b, FAchse, Maximaler Folgewert der Kurventabelle
LAchse)
im Intervall a...b des Leitwerts

Hinweis
Zuweisungen an R-Parameter innerhalb der Tabellendefinition werden rückgängig gemacht.

Beispiel Zuweisungen an R-Parameter

...
R10=5 R11=20
...
CTABDEF
G1 X=10 Y=20 F1000
R10=R11+5 ;R10=25
X=R10
CTABEND
... ;R10=5

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-23
Bahnverhalten
9.3 Kurventabellen (CTAB)

Beispiel Verwendung von CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABTMIN, CTABMAX


Bestimmung des minimalen und maximalen Wertes der Kurventabelle.

N10 DEF REAL STARTVAL


N20 DEF REAL ENDVAL
N30 DEF REAL STARTPARA
N40 DEF REAL ENDPARA
N50 DEF REAL MINVAL
N60 DEF REAL MAXVAL
N70 DEF REAL GRADIENT
...
N100 CTABDEF(Y,X,1,0) ;Beginn der Tabellendefinition
N110 X0 Y10 ;Startwert 1. Tabellensegment
N120 X30 Y40 ;Endwert 1. Tabellensegment =
N130 X60 Y5 ;Startwert 2. Tabellesegment ...
N140 X70 Y30
N150 X80 Y20
N160 CTABEND ;Ende der Tabellendefinition
...
N200 STARTPOS = CTABTSV(1, GRADIENT) ;Startposition STARTPOS = 10,
N210 ENDPOS = CTABTEV(1, GRADIENT) ;Endposition ENDPOS = 20 der Tabelle, sowie
N220 SRARTPARA = CTABTSP(1, GRADIENT) ;STARTPARA = 10,
N230 ENDPARA = CTABTEP(1, GRADIENT) ;ENDPARA = 80 vom Wertebereich der
... ;Folgeachse lesen.

N240 MINVAL = CTABTMIN(1) ;Minimalwert bei Y = 5 und


N250 MAXVAL = CTABTMAX(1) ;Maximalwert bei Y = 40

Nicht periodische Kurventabelle


Liegt der Leitwert außerhalb des Definitionsbereichs, wird als Folgewert die obere bzw.
untere Grenze ausgegeben.

Arbeitsvorbereitung
9-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.3 Kurventabellen (CTAB)

)ROJHZHUW

/HLWZHUW
/ 'HILQLWLRQVEHUHLFK /

Periodische Kurventabelle
Liegt der Leitwert außerhalb des Definitionsbereichs, wird der Leitwert Modulo des
Definitionsbereichs bewertet und der entsprechende Folgewert ausgegeben.

)ROJHZHUW

/HLWZHUW
/
'HILQLWLRQVEHUHLFK

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-25
Bahnverhalten
9.3 Kurventabellen (CTAB)

Hinweis
CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABTMIN, CTABTMAX
Diese Sprachbefehle können vom Teileprogramm oder von Synchronaktionen aus direkt
verwendet werden.

Abhängigkeit der internen Ausführungszeit der Funktion von der Anzahl der Tabellensegmente:
CTABINV() abhängig
CTABTSV, CTABTEV, CTABTSP, CTABTEP unabhängig
(CTABTMIN, CTABTMAX nur, falls kein Intervall
des Leitwertes vorgegeben wird)

Lesen in Synchronaktionen
Vom Anwender ist bei Verwendung der Befehle CTABINV() oder CTABTMIN() und
CTABTMAX() in Synchronaktionen zu beachten, dass zum Ausführungszeitpunkt entweder
● ausreichend NC-Leistung verfügbar ist, oder
● die Anzahl der Segmente der Kurventabelle ist vor dem Aufruf abzufragen, um
gegebenenfalls die betreffende Tabelle unterteilen zu können.
Weitere Zusammenhänge zur Programmierung von Synchronaktionen sind im Kapitel
"Bewegungssynchronaktionen" beschrieben.

9.3.5 Zugriff auf Kurventabellenpositionen und Tabellensegmente (CTAB, CTABINV,


CTABSSV, CATBSEV)

Funktion
Lesen von Tabellenpositionen, CTAB, CTABINV
Mit CTAB kann vom Teileprogramm oder von Synchronaktionen aus direkt der Folgewert zu
einem Leitwert gelesen werden.
Mit CTABINV kann zu einem Folgewert der Leitwert gelesen werden. Diese Zuordnung
muss nicht immer eindeutig sein. CTABINV benötigt daher einen Näherungswert für den
erwarteten Leitwert.

Programmierung
Lesen des Folgewerts zu einem Leitwert
CTAB(Leitwert, n, grad, [Folgeachse, Leitachse])
Lesen des Leitwerts zu einem Folgewert
CTABINV(Folgewert, aproxLeitwert, n, grad, [Folgeachse, Leitachse])
Lesen des Start- und Endwert eines Tabellensegments
CTABSSV(Leitwert, n, grad, [FAchse]),
CTABSEV(Leitwert, n, grad,[ FAchse])

Arbeitsvorbereitung
9-26 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.3 Kurventabellen (CTAB)

Parameter

CTAB Folgewert direkt von einem Leitwert lesen.


CTABINV zu einem Folgewert den Leitwert lesen.
CTABSSV von einer Folgeachse den Anfangswert des Kurvensegments
lesen.
CTABSEV von einer Folgeachse den Endwert des Kurvensegments lesen.
FAchse Folgeachse
Achse, die über die Kurventabelle programmiert wird.
LAchse Leitachse
Achse, durch die der Leitwert programmiert wird.
n, m Nummern der Kurventabellen
Die Nummer der Kurventabellen können beliebig vergeben
werden. Sie dienen ausschließlich zur eindeutigen
Identifizierung.
Grad Gradient für die Steigung am Start bzw. Ende des Segments der
Kurventabelle
AproxLeitwert Positionswert des zu erwartenden Nährungswerts, mit dem ein
eindeutiger Leitwert bestimmt werden kann.

● CTABSSV, CTABSEV
Mit CTABSSV kann der Startwert des Kurvensegmentes gelesen werden, das zum
angegebenen Leitwert gehört. Der Endwert des Kurvensegmentes, das zum angegebenen
Leitwert gehört, kann mit CTABSEV gelesen werden.
● Ermittelte Folge- oder Leitposition aus Kurventabelle mit CTAB, CTABINV

R10=CTAB(LW, n, grad, FAchse, LAchse) Folgewert zu einem Leitwert


R10=CTABINV(FW, aproxLW, n, grad, Leitwert zu einem Folgewert
FAchse, LAchse)
● Segmente der Kurventabelle durch Angabe eines Leitwertes bestimmen mit CTABSSV,
CTABSEV

R10=CTABSSV(LW, n, grad, FAchse, Startwert der Folgeachse in dem zu


LAchse)
LW gehörenden Segment
R10=CTABSEV(LW, n, grad, FAchse, Endwert der Folgeachse in dem zu
LAchse)
LW gehörenden Segment

Beispiel Verwendung von CTABSSV und CTABSEV


Bestimmung des zu dem Leitwert X = 30 gehörigen Kurvensegments.

N10 DEF REAL STARTPOS


N20 DEF REAL ENDPOS
N30 DEF REAL GRADIENT
...
N100 CTABDEF(Y,X,1,0) ; Beginn der Tabellendefinition
N110 X0 Y0 ; Startposition 1. Tabellensegment

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-27
Bahnverhalten
9.3 Kurventabellen (CTAB)

N120 X20 Y10 ; Endposition 1. Tabellensegment =


Startposition 2.
Tabellensegment...
N130 X40 Y40
N140 X60 Y10
N150 X80 Y0
N160 CTABEND ; Ende der Tabellendefinition
...
N200 STARTPOS = CTABSSV(30.0,1,GRADIENT) ; Startposition Y in Segment 2 =
10
...
N210 ENDPOS = CTABSEV(30.0,1,GRADIENT) ; Endposition Y in Segment 2 = 40
; Zu LW X = 30.0 gehört Segment 2.

Lesen von Tabellenpositionen, CTAB, CTABINV


CTABINV benötigt einen Näherungswert (aproxLeitwert) für den erwarteten Leitwert.
CTABINV gibt den Leitwert zurück, der dem Näherungswert am nächsten liegt. Der
Näherungswert kann z. B. der Leitwert aus dem vorherigen Interpolationstakt sein.

)ROJHZHUW )ROJHZHUW

JUDG JUDG

): ):

/: /HLWZHUW /: /HLWZHUW

DSUR[

Beide Funktionen geben zusätzlich die Steigung der Tabellenfunktion an der


entsprechenden Position an den Steigungsparameter (grad) aus. Damit lässt sich die
Geschwindigkeit der Leit- oder Folgeachse an der entsprechenden Position berechnen.

Arbeitsvorbereitung
9-28 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.4 Axiale Leitwertkopplung (LEADON, LEADOF)

Hinweis
CTAB, CTABINV, CTABSSV und CTABSEV
Die Sprachbefehle CTAB, CTABINV und CTABSSV, CTABSEV können vom Teileprogramm
oder von Synchronaktionen aus direkt verwendet werden. Alle Zusammenhänge zur
Programmierung von Synchronaktionen sind im Kapitel "Bewegungssynchronaktionen"
beschrieben.
Die optionale Angabe der Leit- oder Folgeachse bei CTAB/CTABINV/CTABSSV/CTABSEV
ist wichtig, falls Leit- und Folgeachse in verschiedenen Längeneinheiten projektiert sind.
Die Sprachbefehle CTABSSV und CTABSEV sind in folgenden Fällen nicht dazu geeignet,
programmierte Segmente abzufragen:
● Kreise oder Evolventen sind programmiert.
● Fasen bzw. Runden ist mit CHF, RND aktiv.
● Überschleifen mit G643 ist aktiv.
● Kompressor ist z. B. mit COMPON, COMPCURV, COMPCAD aktiv.

9.4 9.4 Axiale Leitwertkopplung (LEADON, LEADOF)

Funktion
Bei der axialen Leitwertkopplung werden eine Leit- und eine Folgeachse synchron verfahren.
Dabei ist die jeweilige Position der Folgeachse über eine Kurventabelle bzw. ein daraus
berechnetes Polynom eindeutig einer - ggf. simulierten - Position der Leitachse zugeordnet.

<

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-29
Bahnverhalten
9.4 Axiale Leitwertkopplung (LEADON, LEADOF)

Leitachse heißt diejenige Achse, die die Eingangswerte für die Kurventabelle liefert.
Folgeachse heißt die Achse, die die über die Kurventabelle errechneten Positionen
einnimmt.
Ist- und Sollwertkopplung
Als Leitwerte, also Ausgangswerte zur Positionsermittlung der Folgeachse können
verwendet werden:
● Istwerte der Leitachsposition: Istwertkopplung
● Sollwerte der Leitachsposition: Sollwertkopplung
Die Leitwertkopplung gilt immer im Basiskoordinatensystem.
Zur Erstellung von Kurventabellen siehe Kapitel "Kurventabellen".
Zur Leitwertkopplung siehe /FB/, M3, Mitschleppen und Leitwertkopplung.

Programmierung
LEADON(FAchse,LAchse,n)
oder
LEADOF(FAchse,LAchse)
oder Ausschalten ohne Angabe der Leitachse
LEADOF(FAchse)
Die Leitwertkopplung kann sowohl vom Teileprogramm als auch während der Bewegung aus
Synchronaktionen, siehe Kapitel "Bewegungssynchronaktionen" heraus ein- und
ausgeschaltet werden.

Parameter

LEADON Leitwertkopplung einschalten


LEADOF Leitwertkopplung ausschalten
FAchse Folgeachse
LAchse Leitachse
n Kurventabellen-Nummer
$SA_LEAD_TYPE Umschaltung zwischen Soll- und Istwertkopplung

Leitwertkopplung ausschalten, LEADOF


Mit dem Ausschalten der Leitwertkopplung wird die Folgeachse wieder zur normalen
Kommandoachse!
Axiale Leitwertkopplung und verschiedene Betriebszustände, RESET
Abhängig von der Einstellung im Maschinendatum werden Leitwertkopplungen mit RESET
ausgeschaltet.

Arbeitsvorbereitung
9-30 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.4 Axiale Leitwertkopplung (LEADON, LEADOF)

Beispiel Leitwertkopplung aus Synchronaktion


Bei einer Pressenanlage soll eine herkömmliche mechanische Kopplung zwischen einer
Leitachse (Stempelwelle) und Achsen eines Transfersystems aus Transferachsen und
Hilfsachsen durch ein elektronisches Koppelsystem ersetzt werden.
Es demonstriert, wie bei einer Pressenanlage ein mechanisches Transfersystem durch ein
elektronisches Transfersystem ersetzt wird. Die Kopplungs- und Entkopplungsvorgänge sind
als statische Synchronaktionen realisiert.
Von der Leitachse LW (Stempelwelle) werden Transferachsen und Hilfsachsen als
Folgeachsen über Kurventabellen definiert gesteuert.
Folgeachsen
X Vorschub- bzw. Längsachse
YL Schließ- bzw. Querachse
ZL Hubachse
U Walzenvorschub, Hilfsachse
V Richtkopf, Hilfsachse
W Befettung, Hilfsachse
Aktionen
Als Aktionen treten in den Synchronaktionen z. B. auf:
● Einkoppeln, LEADON(Folgeachse, Leitachse, Kurventabellen-Nummer)
● Auskoppeln, LEADOF(Folgeachse, Leitachse)
● Istwertsetzen, PRESETON(Achse, Wert)
● Merker setzen, $AC_MARKER[i] = Wert
● Kopplungsart: reeller/virtueller Leitwert
● Anfahren von Achspositionen, POS[Achse] = Wert
Bedingungen
Als Bedingungen werden digitale schnelle Eingänge, Echtzeitvariablen $AC_MARKER und
Positionsvergleiche, mit dem logischen Operator AND verknüpft, ausgewertet.

Hinweis
Im folgenden Beispiel wurden Zeilenwechsel, Einrückungen und Fettsatz ausschließlich
dafür verwendet, die Lesbarkeit der Programmierung zu erhöhen. Für die Steuerung ist alles
unter einer Zeilennummer stehende einzeilig.
Kommentar

; Definiert sämtliche statische Synchronaktionen.


; **** Marker rücksetzen
N2 $AC_MARKER[0]=0 $AC_MARKER[1]=0
$AC_MARKER[2]=0 $AC_MARKER[3]=0
$AC_MARKER[4]=0 $AC_MARKER[5]=0
$AC_MARKER[6]=0 $AC_MARKER[7]=0
; **** E1 0=>1 Kopplung Transfer EIN

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-31
Bahnverhalten
9.4 Axiale Leitwertkopplung (LEADON, LEADOF)

N10 IDS=1 EVERY ($A_IN[1]==1) AND


($A_IN[16]==1) AND ($AC_MARKER[0]==0)
DO LEADON(X,LW,1) LEADON(YL,LW,2)
LEADON(ZL,LW,3) $AC_MARKER[0]=1
;**** E1 0=>1 Kopplung Walzenvorschub EIN
N20 IDS=11 EVERY ($A_IN[1]==1) AND
($A_IN[5]==0) AND ($AC_MARKER[5]==0)
DO LEADON(U,LW,4) PRESETON(U,0)
$AC_MARKER[5]=1
; **** E1 0->1 Kopplung Richtkopf EIN
N21 IDS=12 EVERY ($A_IN[1]==1) AND
($A_IN[5]==0) AND ($AC_MARKER[6]==0)
DO LEADON(V,LW,4) PRESETON(V,0)
$AC_MARKER[6]=1
; **** E1 0->1 Kopplung Befettung EIN
N22 IDS=13 EVERY ($A_IN[1]==1) AND
($A_IN[5]==0) AND ($AC_MARKER[7]==0)
DO LEADON(W,LW,4) PRESETON(W,0)
$AC_MARKER[7]=1
; **** E2 0=>1 Kopplung AUS
N30 IDS=3 EVERY ($A_IN[2]==1)
DO LEADOF(X,LW) LEADOF(YL,LW)
LEADOF(ZL,LW) LEADOF(U,LW) LEADOF(V,LW)
LEADOF(W,LW) $AC_MARKER[0]=0
$AC_MARKER[1]=0 $AC_MARKER[3]=0
$AC_MARKER[4]=0 $AC_MARKER[5]=0
$AC_MARKER[6]=0 $AC_MARKER[7]=0
....
N110 G04 F01
N120 M30

Beschreibung
Die Leitwertkopplung erfordert die Synchronisation von Leit- und Folgeachse. Diese
Synchronisation kann nur erreicht werden, wenn die Folgeachse bei Einschalten der
Leitwertkopplung innerhalb des Toleranzbereiches des aus der Kurventabelle berechneten
Kurvenzugs steht.
Der Toleranzbereich für die Stellung der Folgeachse ist über Maschinendatum MD 37200:
COUPLE_POS_POL_COARSE A_LEAD_TYPE definiert.
Befindet sich die Folgeachse mit dem Einschalten der Leitwertkopplung noch nicht an der
entsprechenden Position, wird der Synchronlauf automatisch hergestellt, sobald sich der
berechnete Positionssollwert für die Folgeachse der tatsächlichen Folgeachsposition nähert.
Die Folgeachse wird dabei während des Synchronisationsvorganges in die Richtung
verfahren, die durch die Sollgeschwindigkeit der Folgeachse (berechnet aus
Leitachsgeschwindigkeit und nach Kurventabelle CTAB) definiert ist.

Arbeitsvorbereitung
9-32 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.4 Axiale Leitwertkopplung (LEADON, LEADOF)

<


LRQ
R VLW HOOH
S WDE
KV
H DF UYHQ
OJ X
)ROJHDFKVSRVLWLRQ )R FK.
QD

<

Kein Synchronlauf
Entfernt sich die berechnete Folgeachssollposition mit Einschalten der Leitwertkopplung von
der aktuellen Folgeachsposition, wird kein Synchronlauf hergestellt.
Ist- und Sollwertkupplung
Die Sollwertkopplung liefert im Vergleich zur Istwertkopplung einen besseren Synchronlauf
zwischen Leit- und Folgeachse und ist deshalb standardmäßig voreingestellt.

1&8

6ROOZHUWNRSSOXQJ
$[ $[
,VWZHUWNRSSOXQJ

Sollwertkopplung ist nur möglich, wenn Leit- und Folgeachse von derselben NCU interpoliert
werden. Bei einer externen Leitachse kann die Folgeachse nur über Istwerte an die
Leitachse gekoppelt werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-33
Bahnverhalten
9.4 Axiale Leitwertkopplung (LEADON, LEADOF)

1&8 1&8

$[ $[
,VWZHUWNRSSOXQJ

Eine Umschaltung ist über das Settingdatum $SA_LEAD_TYPE möglich.


Das Umschalten zwischen Ist- und Sollwertkopplung sollte immer bei Stillstand der
Folgeachse erfolgen. Denn nur im Stillstand wird nach dem Umschalten neu synchronisiert.
Anwendungsbeispiel
Das Lesen der Istwerte kann bei großen Maschinenerschütterungen nicht fehlerfrei erfolgen.
Beim Einsatz der Leitwertkopplung im Pressentransfer kann es daher in den Arbeitsschritten
mit größten Erschütterungen notwendig werden, von Istwertkopplung auf Sollwertkopplung
umzuschalten.
Leitwertsimulation bei Sollwertkopplung
Über Maschinendatum lässt sich der Interpolator für die Leitachse vom Servo trennen. Damit
können bei Sollwertkopplung Sollwerte ohne tatsächliche Bewegung der Leitachse erzeugt
werden.
Die über Sollwertkopplung erzeugten Leitwerte sind zur Benutzung z. B. in
Synchronaktionen aus folgenden Variablen lesbar:

- $AA_LEAD_P Leitwert Position


- $AA_LEAD_V Leitwert Geschwindigkeit

Leitwerte erzeugen
Leitwerte können wahlweise mit anderen selbst programmierten Verfahren erzeugt werden.
Die so erzeugten Leitwerte werden in die Variable

- $AA_LEAD_SP Leitwert Position


- $AA_LEAD_SV Leitwert Geschwindigkeit

geschrieben und aus ihnen gelesen. Zur Benutzung dieser Variablen muss das
Settingdatum $SA_LEAD_TYPE = 2 gesetzt werden.

Arbeitsvorbereitung
9-34 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.5 Vorschubverlauf (FNORM, FLIN, FCUB, FPO)

Status der Kopplung


Im NC-Teileprogramm können Sie den Kopplungsstatus mit folgender Systemvariablen
abfragen:
$AA_COUP_ACT[Achse]
0: Keine Kopplung aktiv
16: Leitwertkopplung aktiv
Status-Verwaltung bei Synchronaktionen
Schalt- und Koppelvorgänge werden über Echtzeitvariablen:
$AC_MARKER[i] = n
verwaltet mit:
i Merker-Nummer
n Statuswert

9.5 9.5 Vorschubverlauf (FNORM, FLIN, FCUB, FPO)

Funktion
Zur flexibleren Vorgabe des Vorschubverlaufs wird die Vorschubprogrammierung nach
DIN 66025 um lineare und kubische Verläufe erweitert.
Die kubischen Verläufe können direkt oder als interpolierende Splines programmiert werden.
Hierdurch lassen sich - abhängig von der Krümmung des zu bearbeitenden Werkstücks -
kontinuierlich glatte Geschwindigkeitsverläufe programmieren.
Diese Geschwindigkeitsverläufe ermöglichen ruckfreie Beschleunigungsänderungen und
hierdurch Fertigung gleichmäßiger Werkstückoberflächen.

Programmierung
F… FNORM
oder
F… FLIN
oder
F… FCUB
oder
F=FPO(…,…,…)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-35
Bahnverhalten
9.5 Vorschubverlauf (FNORM, FLIN, FCUB, FPO)

Parameter

FNORM Grundeinstellung. Der Vorschubwert wird über den Bahnweg des


Satzes vorgegeben und gilt danach als modaler Wert.
FLIN Bahngeschwindigkeitsprofil linear:
Der Vorschubwert wird vom aktuellen Wert am Satzanfang bis zum
Satzende über den Bahnweg linear eingefahren und gilt danach
als modaler Wert. Dieses Verhalten kann mit G93 und G94
kombiniert werden.
FCUB Bahngeschwindigkeitsprofil kubisch:
Die satzweise programmierten F-Werte werden - bezogen auf den
Satzendpunkt - durch einen Spline verbunden. Der Spline
beginnt und endet tangential zur vorhergehenden bzw.
nachfolgenden Vorschubangabe und wirkt mit G93 und G94.
Fehlt in einem Satz die F-Adresse, so wird hierfür der zuletzt
programmierte F-Wert verwendet.
F=FPO… Bahngeschwindigkeitsprofil über Polynom:
Die F-Adresse bezeichnet den Vorschubverlauf über ein Polynom
vom aktuellen Wert bis zum Satzende. Der Endwert gilt danach
als modaler Wert.

Vorschuboptimierung bei gekrümmten Bahnstücken


Vorschub-Polynom F=FPO und Vorschubspline FCUB sollten immer mit konstanter
Schnittgeschwindigkeit CFC abgefahren werden. Hierdurch lässt sich ein
beschleunigungsstetiges Sollvorschubprofil erzeugen.

Beispiel Verschiedene Vorschubprofile


In diesem Beispiel finden Sie die Programmierung und grafische Darstellung verschiedener
Vorschubprofile.

9RU
VFKXE










%DKQ
ZHJ
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
              

Arbeitsvorbereitung
9-36 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.5 Vorschubverlauf (FNORM, FLIN, FCUB, FPO)

N1 F1000 FNORM G1 X8 G91 G64 ;Konstantes Vorschubprofil, Kettenmaßang.


N2 F2000 X7 ;Sprunghafte Sollgeschwindikeitsänderung
N3 F=FPO(4000, 6000, -4000) ;Vorschubprofil über Polynom mit Vorschub 4000 am
;Satzende
N4 X6 ;Polynomvorschub 4000 gilt als modaler Wert
N5 F3000 FLIN X5 ;Lineares Vorschubprofil
N6 F2000 X8 ;Lineares Vorschubprofil
N7 X5 ;Linearer Vorschub gilt als modaler Wert
N8 F1000 FNORM X5 ;Konstantes Vorschubprofil mit sprunghafter
;Beschleunigungsänderung
N9 F1400 FCUB X8 ;Alle folgenden satzweise programmierten F-Werte
;werden mit Splines verbunden
N10 F2200 X6
N11 F3900 X7
N12 F4600 X7
N13 F4900 X5 ;Splineprofil ausschalten
N14 FNORM X5
N15 X20

FNORM
Die Vorschubadresse F bezeichnet den Bahnvorschub als konstanten Wert nach DIN 66025.
Mehr Informationen hierzu finden Sie im Programmierhandbuch "Grundlagen".

9RU
VFKXE

%DKQ
ZHJ

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-37
Bahnverhalten
9.5 Vorschubverlauf (FNORM, FLIN, FCUB, FPO)

FLIN
Der Vorschubverlauf wird vom aktuellen Vorschubwert zum programmierten F-Wert linear
bis Satzende eingefahren.
Beispiel:
N30 F1400 FLIN X50

9RU
VFKXE

%DKQ
ZHJ

Arbeitsvorbereitung
9-38 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.5 Vorschubverlauf (FNORM, FLIN, FCUB, FPO)

FCUB
Der Vorschub wird vom aktuellen Vorschubwert zum programmierten F-Wert bis Satzende
im kubischen Verlauf eingefahren. Die Steuerung verbindet alle mit aktivem FCUB satzweise
programmierten Vorschubwerte durch Splines. Die Vorschubwerte dienen hier als
Stützpunkte zur Berechnung der Splineinterpolation.
Beispiel:
N50 F1400 FCUB X50
N60 F2000 X47
N70 F3800 X52

9RU
VFKXE

%DKQ
ZHJ

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-39
Bahnverhalten
9.5 Vorschubverlauf (FNORM, FLIN, FCUB, FPO)

F=FPO(…,…,…)
Der Vorschubverlauf wird über ein Polynom direkt programmiert. Die Angabe der
Polynomkoeffizienten erfolgt analog zur Polynominterpolation.
Beispiel:
F=FPO(endfeed, quadf, cubf)
endfeed, quadf und cubf sind vorher definierte Variable.

endfeed: Vorschub am Satzende


quadf: Quadratischer Polynomkoeffizient
cubf: Kubischer Polynomkoeffizient

Bei aktivem FCUB schließt der Spline am Satzanfang und Satzende tangential an den über
FPO festgelegten Verlauf an.

9RU
VFKXE

%DKQ
ZHJ

Randbedingungen
Unabhängig vom programmierten Vorschubverlauf gelten die Funktionen zur
Programmierung des Bahnfahrverhaltens.
Der programmierbare Vorschubverlauf gilt grundsätzlich absolut - unabhängig von G90
oder G91.
Der Vorschubverlauf FLIN und FCUB wirkt mit
G93 und G94.
FLIN und FCUB wirkt nicht bei
G95, G96/G961 und G97/G971.

Arbeitsvorbereitung
9-40 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.5 Vorschubverlauf (FNORM, FLIN, FCUB, FPO)

Aktiver Kompressor COMPON


Bei aktivem Kompressor COMPON gilt bei Zusammenfassung mehrerer Sätze zu einem
Splinesegment:
FNORM:
Für das Splinesegment gilt das F-Wort des letzten zugehörigen Satzes.
FLIN:
Für das Splinesegment gilt das F-Wort des letzten zugehörigen Satzes.
Der programmierte F-Wert gilt zum Ende des Segments und wird dann linear angefahren.
FCUB:
Der erzeugte Vorschubspline weicht maximal um den im Maschinendatum C
$MC_COMPRESS_VELO_TOL definierten Wert von den programmierten Endpunkten ab.
F=FPO(…,…,…)
Diese Sätze werden nicht komprimiert.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-41
Bahnverhalten
9.6 Programmablauf mit Vorlaufspeicher (STARTFIFO, STOPFIFO, STOPRE)

9.6 9.6 Programmablauf mit Vorlaufspeicher (STARTFIFO, STOPFIFO,


STOPRE)

Funktion
Je nach Ausbaustufe verfügt die Steuerung über eine bestimmte Menge sog.
Vorlaufspeicher, die fertig aufbereitete Sätze vor der Abarbeitung speichern und im
Fertigungsablauf als schnelle Satzfolgen ausgeben.
Hierdurch lassen sich kurze Wege mit hohen Geschwindigkeiten abfahren.
Soweit die Restzeit der Steuerung es zulässt, wird der Vorlaufspeicher grundsätzlich gefüllt.

1& 9RUODXI
3URJUDPP VSHLFKHU

)HUWLJXQJVDEODXI
VFKQHOOH6DW]IROJHQ

Programmierung
STARTFIFO
oder
STOPFIFO
oder
STOPRE

Parameter

STOPFIFO Anhalten des schnellen Bearbeitungsabschnitts, Vorlaufspeicher


füllen, bis STARTFIFO, "Vorlaufpuffer voll" oder "Progammende"
erkannt wird
STARTFIFO Beginn schneller Bearbeitungsabschnitt, parallel dazu
Auffüllen des Vorlaufpuffers
STOPRE Vorlaufstopp

Arbeitsvorbereitung
9-42 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.6 Programmablauf mit Vorlaufspeicher (STARTFIFO, STOPFIFO, STOPRE)

Hinweis
STOPFIFO hält die Bearbeitung an, bis der Vorlaufspeicher gefüllt ist bzw. STARTFIFO
oder STOPRE erkannt wird.

Beispiel Bearbeitungsabschnitt kennzeichnen


Der Bearbeitungsabschnitt, der im Vorlaufspeicher zwischengespeichert werden soll, wird
am Anfang und Ende mit STOPFIFO bzw. STARTFIFO gekennzeichnet.
N10 STOPFIFO
N20…
N100
N110 STARTFIFO
Die Abarbeitung der Sätze beginnt erst, wenn der Vorlaufspeicher gefüllt ist oder nach dem
Befehl STARTFIFO.
Ausnahme:
Vorlaufspeicher füllen wird nicht ausgeführt bzw. unterbrochen, wenn der
Bearbeitungsabschnitt Befehle enthält, die einen ungepufferten Betrieb erzwingen
(Referenzpunktfahren, Messfunktionen, …).

Beispiel Vorlauf stoppen STOPRE


Bei Programmierung von STOPRE wird der nachfolgende Satz erst dann ausgeführt, wenn
alle vorher aufbereiteten und gespeicherten Sätze vollständig abgearbeitet sind. Der
vorherige Satz wird im Genauhalt (wie G9) angehalten.
Beispiel:
N10 …
N30 MEAW=1 G1 F1000 X100 Y100 Z50
N40 STOPRE
Beim Zugriff auf Zustandsdaten der Maschine ($SA...) erzeugt die Steuerung internen
Vorlaufstopp.
Beispiel:

R10 = $AA_IM[X] ;Istwert der X-Achse lesen

Vorsicht
Bei eingeschalteter Werkzeugkorrektur und bei Spline-Interpolationen sollten Sie kein
STOPRE programmieren, da sonst zusammengehörige Satzfolgen unterbrochen werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-43
Bahnverhalten
9.7 Bedingt unterbrechbare Programmabschnitte (DELAYFSTON, DELAYFSTOF)

9.7 9.7 Bedingt unterbrechbare Programmabschnitte (DELAYFSTON,


DELAYFSTOF)

Funktion
Bedingt unterbrechbare Teileprogrammabschnitte werden Stopp-Delay-Bereiche genannt
Innerhalb bestimmter Programmabschnitte soll nicht angehalten werden und auch der
Vorschub nicht verändert werden. Im Wesentlichen sollen kurze Programmabschnitte, die z.
B. zur Herstellung eines Gewindes dienen, vor fast allen Stopp-Ereignissen geschützt
werden. Ein etwaiger Stopp wirkt erst, nachdem der Programmabschnitt zu Ende bearbeitet
worden ist.

Programmierung

N... DELAYFSTON Die Befehle stehen allein in einer Teileprogrammzeile.


N... DELAYFSTOF DELAYFeed STop ON/OF
Beide Befehle sind nur in Teileprogrammen, nicht jedoch in Synchronaktionen zulässig.

Parameter

DELAYFSTON Beginn eines Bereiches definieren, in dem "sanfte" Stopps


verzögert werden, bis das Ende des Stopp-Delay-Bereiches
erreicht wird.
DELAYFSTOF Ende eines Stopp-Delay-Bereiches definieren

Hinweis
Bei Maschinendatum MD 11550: STOP_MODE_MASK Bit 0 = 0 (Default) wird ein Stopp-
Delay-Bereich implizit definiert, wenn G331/G332 aktiv ist und eine Bahnbewegung bzw.
G4 programmiert ist. Siehe Hinweis unten.

Beispiel Stopp-Ereignisse
Im Stopp-Delay-Bereich wird eine Veränderung des Vorschubs und Vorschubsperre
ignoriert. Sie wirken erst nach dem Stopp-Delay-Bereich.
Die Stopp-Ereignisse werden unterschieden in:

"Sanfte" Stopp- Reaktion: delayed


Ereignisse Reaktion: immediate
"Harte" Stopp-Ereignisse

Auswahl einiger Stopp-Ereignisse, die zumindest kurzfristig stoppen.

Arbeitsvorbereitung
9-44 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.7 Bedingt unterbrechbare Programmabschnitte (DELAYFSTON, DELAYFSTOF)

Ereignisname Reaktion Unterbrechungsparameter


RESET immediate NST: DB21,… DBX7.7 und DB11, … DBX20.7
PROG_END Alarm 16954 NC-Prog: M30
INTERRUPT delayed NST: FC-9 und ASUP DB10, ... DBB1
SINGLEBLOCKSTOP delayed Einzelsatzbetrieb im Stopp-Delay-Bereich eingeschaltet:
NC stoppt am Ende des [Link] außerhalb des Stopp-Delay
Bereichs.
Einzelsatz bereits vor Stopp-Delay-Bereich angewählt:
NST: "NC-Stop an der Satzgrenze" DB21, ... DBX7.2
STOPPROG delayed NST: DB21,… DBX7.3 und DB11, … DBX20.5
PROG_STOP Alarm 16954 NC-Prog: M0 und M1
WAITM Alarm 16954 NC-Prog: WAITM
WAITE Alarm 16954 NC-Prog: WAITE
STOP_ALARM immediat Alarm: Alarmprojektierung STOPBYALARM
RETREAT_MOVE_THREAD Alarm 16954 NC-Prog: Alarm 16954 bei LFON
(Stopp & Fastlift im G33 nicht möglich)
WAITMC Alarm 16954 NC-Prog: WAITMC
NEWCONF_PREP_STOP Alarm 16954 NC-Prog: NEWCONF
SYSTEM_SHUTDOWN immediate System-Shutdown bei 840Di
ESR delayed Erweitertes Stillsetzen und Rückziehen
EXT_ZERO_POINT delayed Externe Nullpunktverschiebung
STOPRUN Alarm 16955 BTSS: PI "_N_FINDST" STOPRUN
Erklärung der Reaktionen

immediate ("hartes" Stopp-Ereignis) Stoppt sofort auch im Stopp-Delay-Bereich


delayed ("sanftes" Stopp-Ereignis) Stopp (auch ein kurzfristiger) erfolgt erst nach dem
Stopp-Delay-Bereich.
Alarm 16954 Programm wird abgebrochen, da im Stopp-Delay-
Bereich unerlaubte Programmbefehle verwendet
worden sind.
Alarm 16955 Programm wird fortgesetzt, im Stopp-Delay-Bereich
hat eine unerlaubte Aktion stattgefunden hat.
Alarm 16957 Der Programmbereich (Stopp-Delay-Bereich), der
durch DELAYFSTON und DELAYFSTOF
geklammert ist, konnte nicht aktiviert werden. Damit
wirkt jeder Stopp im Bereich sofort und wird nicht
verzögert.
Eine Zusammenfassung weiterer Reaktionen auf Stopp-Ereignisse siehe
/FB1/ Funktionshandbuch Grundfunktionen; BAG, Kanal, Programmbetrieb, (K1), Kapitel
"Beeinflussung und Auswirkung auf Stopp-Ereignisse".

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-45
Bahnverhalten
9.7 Bedingt unterbrechbare Programmabschnitte (DELAYFSTON, DELAYFSTOF)

Beispiel Verschachtelung von Stopp-Delay-Bereichen in zwei Programmebenen

N10010 DELAYFSTON() ;Sätze mit N10xxx Programmebene 1


N10020 R1 = R1 + 1
N10030 G4 F1 ;Stopp-Delay-Bereich beginnt
...
N10040 Unterprogramm2
...
... ;Interpretation des Unterprogramms 2
N20010 DELAYFSTON() ;Unwirksam, wiederholter Beginn, 2. Eb.
...
N20020 DELAYFSTOF() ;Unwirksam, Ende in anderer Ebene
N20030 RET

N10050 DELAYFSTOF() ;Stopp-Delay-Bereichs Ende in gleicher Ebene


...
N10060 R2 = R2 + 2
N10070 G4 F1 ;Stopp-Delay-Bereich endet. Stopps
;wirken ab jetzt unmittelbar

Beipiel Programmauszug
In einer Schleife wird folgender Programmblock wiederholt:

Im Bild ist erkennbar, dass der Anwender im Stopp-Delay-Bereich "Stopp" drückt, und die
NC beginnt den Bremsvorgang außerhalb des Stopp-Delay-Bereichs, d.h. im Satz N100.
Damit kommt die NC im vorderen Bereich von N100 zum Halten.

...
N99 MY_LOOP:
N100 G0 Z200
N200 G0 X0 Z200
N300 DELAYFSTON()

Arbeitsvorbereitung
9-46 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.7 Bedingt unterbrechbare Programmabschnitte (DELAYFSTON, DELAYFSTOF)

N400 G33 Z5 K2 M3 S1000


N500 G33 Z0 X5 K3
N600 G0 X100
N700 DELAYFSTOF()
N800 GOTOB MY_LOOP

Details über Satzsuchlauf vom Typ SERUPRO und Vorschübe in Verbindung mit
G331/G332 Vorschub bei Gewindebohren ohne Ausgleichsfutter siehe
/FB1/ Funktionshandbuch Grundfunktionen; BAG, Kanal, Programmbetrieb (K1).
/FB1/ Funktionshandbuch Grundfunktionen; Vorschübe (V1).

Vorteile des Stopp-Delay-Bereiches


Ein Programmabschnitt wird ohne Geschwindigkeitseinbruch bearbeitet.
Bricht der Anwender, nachdem gestoppt ist, das Programm mit RESET ab, so ist der
abgebrochene Programmsatz nach dem geschützten Bereich. Dieser Programmsatz eignet
sich dann als Suchziel für einen nachfolgenden Suchlauf.
Solange ein Stopp-Delay-Bereich bearbeitet wird werden folgende Hauptlaufachsen nicht
gestoppt:
● Kommandoachsen und
● Positionierachsen die mit POSA verfahren
Der Teileprogrammbefehl G4 ist im Stopp-Delay-Bereich zulässig, dagegen sind andere
Teileprogrammbefehle, die zu einem vorübergehenden Stopp führen (z. B WAITM) nicht
zulässig.
G4 macht, wie eine Bahnbewegung, den Stopp-Delay-Bereich wirksam bzw. hält seine
Wirksamkeit aufrecht.
Beispiel: Vorschub Eingriffe
Wird der Override vor dem Stopp-Delay-Bereich auf 6% gesenkt, so wird der Override im
Stopp-Delay-Bereich wirksam.
Wird der Override im Stopp-Delay-Bereich von 100% auf 6% abgesenkt, so wird der Stopp-
Delay-Bereich mit 100% zu Ende gefahren und danach wird mit 6% weitergefahren.
Die Vorschubsperre wirkt im Stopp-Delay-Bereich nicht, erst nach dem Verlassen des
Stopp-Delay-Bereichs wird angehalten.

Überlappung/Schachtelung:
Überschneiden sich zwei Stopp-Delay-Bereiche, einer aus den Sprachbefehlen und der
andere aus dem Maschinendatum MD 11550: STOP_MODE_MASK, so wird der
größtmögliche Stopp-Delay-Bereich gebildet.
Folgende Punkte regeln das Zusammenspiel der Sprachbefehle DELAYFSTON und
DELAYFSTOF mit Verschachtelungen und dem Unterprogrammende:
1. Mit dem Ende des Unterprogramms, in dem DELAYFSTON gerufen wurde, wird implizit
DELAYFSTOF aktiviert.
2. DELAYFSTON Stopp-Delay-Bereich bleibt ohne Wirkung.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-47
Bahnverhalten
9.7 Bedingt unterbrechbare Programmabschnitte (DELAYFSTON, DELAYFSTOF)

3. Ruft Unterprogramm1 in einem Stopp-Delay-Bereich Unterprogramm2, so ist


Unterprogramm2 komplett ein Stopp-Delay-Bereich. Insbesondere ist DELAYFSTOF in
Unterprogramm2 wirkungslos.

Hinweis
REPOSA ist ein Unterprogrammende und DELAYFSTON wird in jedem Fall abgewählt.
Trifft ein "hartes" Stopp-Ereignis auf den "Stopp-Delay-Bereich", so wird der "Stopp-
Delay-Bereich" komplett abgewählt! Das heißt, tritt in diesem Programmabschnitt ein
weiterer beliebiger Stopp auf, so wird sofort angehalten. Erst eine Neuprogrammierung
(erneutes DELAYFSTON) lässt einen neuen Stopp-Delay-Bereich beginnen.
Wird die Stopp-Taste vor dem Stopp-Delay-Bereich gedrückt und der NCK muss zum
Bremsen in den Stopp-Delay-Bereich einfahren, so stoppt der NCK im Stopp-Delay-
Bereich und der Stopp-Delay-Bereich bleibt abgewählt!
Wird ein Stopp-Delay-Bereich mit Override 0% betreten, so wird der Stopp-Delay-Bereich
nicht akzeptiert!
Dies gilt für alle "sanften" Stopp-Ereignisse.
Mit STOPALL kann im Stopp-Delay-Bereich gebremst werden. Mit einem STOPALL
werden aber alle anderen Stopp-Ereignisse sofort aktiv, die bislang verzögert worden
sind.

Systemvariablen
Ein Stopp-Delay-Bereich kann mit $P_DELAYFST im Teileprogramm erkannt werden. Ist Bit
0 der Systemvariablen auf 1 gesetzt, so befindet sich die Teileprogrammbearbeitung zu
diesem Zeitpunkt in einem Stopp-Delay-Bereich.
Ein Stopp-Delay-Bereich kann mit $AC_DELAYFST in Synchronaktionen erkannt werden.
Ist Bit 0 der Systemvariablen auf 1 gesetzt, so befindet sich die Teileprogrammbearbeitung
zu diesem Zeitpunkt in einem Stopp-Delay-Bereich.

Kompatibilität
Die Vorbesetzung des Maschinendatums MD 11550: STOP_MODE_MASK Bit 0 = 0 bewirkt
impliziten Stopp-Delay-Bereich während der G-Code-Gruppe G331/G332 und wenn eine
Bahnbewegung bzw. G4 programmiert ist.
Bit 0 = 1 ermöglicht Stopp während der G-Code-Gruppe G331/G332 und wenn eine
Bahnbewegung bzw. G4 programmiert ist (Verhalten bis SW 6). Zur Definition eines Stopp-
Delay-Bereiches müssen die Befehle DELAYFSTON/DELAYFSTOF benutzt werden.

Arbeitsvorbereitung
9-48 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.8 Programmstelle für SERUPRO verhindern (IPTRLOCK, IPTRUNLOCK)

9.8 9.8 Programmstelle für SERUPRO verhindern (IPTRLOCK,


IPTRUNLOCK)

Funktion
Für bestimmte komplizierte mechanische Situationen an der Maschine ist es erforderlich,
den Satzsuchlauf SERUPRO zu verhindern.
Mit einem programmierbaren Unterbrechungszeiger besteht eine Eingriffsmöglichkeit, beim
"Suchen auf der Unterbrechungsstelle", vor der suchunfähigen Stelle aufzusetzen.
Es können auch suchunfähige Bereiche in Teileprogrammbereichen definiert werden, in
denen die NCK noch nicht wieder einsteigen kann. Mit den Programmabbruch vermerkt der
NCK den zuletzt verarbeiteten Satz, auf den über die Bedienoberfläche HMI gesucht werden
kann.

Programmierung

N... IPTRLOCK Die Befehle stehen allein in einer Teileprogrammzeile und


oder ermöglichen einen programmierbaren Unterbrechungszeiger
N... IPTRUNLOCK

Parameter

IPTRLOCK Beginn des suchunfähigen Programmabschnitts


IPTRUNLOCK Ende des suchunfähigen Programmabschnitts

Beide Befehle sind nur in Teileprogrammen, nicht jedoch in Synchronaktionen zulässig.

Beispiel
Verschachtelung suchunfähiger Programmabschnitte in zwei Programmebenen mit
impliziten IPTRUNLOCK. Das implizite IPTRUNLOCK in Unterprogramm 1 beendet den
suchunfähigen Bereich.

N10010 IPTRLOCK()
N10020 R1 = R1 + 1
N10030 G4 F1 ;Haltesatz, der suchunfähige
... ;Programmabschnitt beginnt
N10040 Unterprogramm2
... ;Interpretation des Unterprogramms 2
N20010 IPTRLOCK () ;Unwirksam, wiederholter Beginn
...
N20020 IPTRUNLOCK () ;Unwirksam, Ende in anderer Ebene
N20030 RET
...
N10060 R2 = R2 + 2

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-49
Bahnverhalten
9.8 Programmstelle für SERUPRO verhindern (IPTRLOCK, IPTRUNLOCK)

N10070 RET ;Ende des suchunfähigen


;Programmabschnitts
N100 G4 F2 ;Hauptprogramm wird fortgesetzt
Eine Unterbrechung auf 100 liefert dann wieder
der Unterbrechungszeiger.

Suchunfähige Bereiche erfassen und suchen


Die suchunfähigen Programmabschnitte werden mit dem Sprachbefehlen IPTRLOCK und
IPTRUNLOCK gekennzeichnet.
Der Befehl IPTRLOCK friert den Unterbrechungszeiger auf ein im Hauptlauf ausführbaren
Einzelsatz (SBL1) ein. Dieser Satz wird im Folgenden als Haltesatz bezeichnet. Tritt nach
IPTRLOCK ein Programmabbruch ein, so kann auf der Bedienoberfläche HMI nach diesen
sogenannten Haltesatz gesucht werden.

Auf den aktuellen Satz wieder aufsetzen


Der Unterbrechungszeiger wird mit IPTRUNLOCK für den nachfolgenden
Programmabschnitt auf den aktuellen Satz zum Unterbrechungspunkt gesetzt werden.
Nach einem gefundenen Suchziel kann mit dem selben Haltesatz ein neues Suchziel
wiederholt werden.
Ein vom Benutzer editierter Unterbrechungszeiger, muss über HMI wieder entfernt werden.

Regeln bei Schachtelung


Folgende Punkte regeln das Zusammenspiel der Sprachbefehle IPTRLOCK und
IPTRUNLOCK mit Verschachtelungen und dem Unterprogrammende:
1. Mit dem Ende des Unterprogramms, in dem IPTRLOCK gerufen wurde, wird implizit
IPTRUNLOCK aktiviert.
2. IPTRLOCK in einem suchunfähigen Bereich bleibt ohne Wirkung.
3. Ruft Unterprogramm1 in einem suchunfähigen Bereich Unterprogramm2, so bleibt
Unterprogramm2 komplett suchunfähig. Insbesondere ist IPTRUNLOCK in
Unterprogramm2 wirkungslos.
Weitere Informationen hierzu siehe
/FB1/ Funktionshandbuch Grundfunktionen; BAG, Kanal, Programmbetrieb (K1).

Systemvariable
Ein suchunfähiger Bereich kann mit $P_IPTRLOCK im Teileprogramm erkannt werden.

Arbeitsvorbereitung
9-50 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN, RMB, RME)

Automatischer Unterbrechungszeiger
Die Funktion automatischer Unterbrechungszeiger legt automatisch eine vorher festgelegte
Kopplungsart als suchunfähig fest. Mittels Maschinendatum wird für
● Elektronisches Getriebe bei EGON
● Axiale Leitwertkopplung bei LEADON
der automatische Unterbrechungszeiger aktiviert. Überschneiden sich der programmierte
und der über Maschinendatum aktivierbare automatische Unterbrechungszeiger, so wird der
größtmögliche suchunfähige Bereich gebildet.

9.9 9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN,


RMB, RME)

Funktion
Wenn Sie während der Bearbeitung das laufende Programm unterbrechen und das
Werkzeug freifahren – zum Beispiel wegen Werkzeugbruch oder weil Sie etwas nachmessen
wollen – können Sie die Kontur an einem wählbaren Punkt programmgesteuert
wiederanfahren.
Der REPOS-Befehl wirkt wie ein Unterprogramm-Rücksprung (z. B. über M17).
Nachfolgende Sätze in der Interruptroutine werden nicht mehr ausgeführt.

5(326

Zur Unterbrechung des Programmlaufs siehe auch Abschnitt "Flexible NC-Programmierung"


Kapitel "Interruptroutine" in diesem Programmierhandbuch.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-51
Bahnverhalten
9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN, RMB, RME)

Programmierung
REPOSA RMI DISPR=… oder REPOSA RMB oder REPOSA RME oder REPOSA RMN
oder
REPOSL RMI DISPR=… oder REPOSL RMB oder REPOSL RME oder REPOSL RMN
oder
REPOSQ RMI DISPR=…DISR=… oder REPOSQ RMBDISR=… oder REPOSQ RME
DISR=… oder REPOSQA DISR=…
oder
REPOSH RMI DISPR=… DISR=…oder REPOSH RMB DISR=… oder REPOSH RME
DISR=… oder
REPOSHA DISR=…

Parameter
Anfahrweg

REPOSA Anfahren auf einer Geraden mit allen Achsen


REPOSL Anfahren auf einer Geraden
REPOSQ DISR=… Anfahren auf einem Viertelkreis mit Radius DISR
REPOSQA DISR=… Anfahren auf allen Achsen auf einem Viertelkreis mit Radius
DISR
REPOSH DISR=… Anfahren auf einem Halbkreis mit Durchmesser DISR
REPOSHA DISR=… Anfahren auf allen Achsen auf einem Halbkreis mit Radius DISR

Wiederanfahrpunkt

RMI Unterbrechungspunkt anfahren


RMI DISPR=… Eintrittspunkt im Abstand DISPR in mm/inch vor
Unterbrechungspunkt
RMB Satzanfangspunkt anfahren
RME Satzendpunkt anfahren
RME DISPR=… Satzendpunkt anfahren im Abstand DISPR vor Endpunkt
RMN An den nächstliegenden Bahnpunkt anfahren
A0 B0 C0 Achsen, in denen angefahren werden soll

Beispiel Anfahren auf einer Geraden anfahren, REPOSA, REPOSL


Das Werkzeug fährt den Wiederanfahrpunkt direkt auf einer Geraden an.
Mit REPOSA werden automatisch alle Achsen verfahren. Bei REPOSL können Sie die zu
verfahrenden Achsen angeben.
Beispiel:
REPOSL RMI DISPR=6 F400
oder
REPOSA RMI DISPR=6 F400

Arbeitsvorbereitung
9-52 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN, RMB, RME)

< 8QWHUEUHFKXQJVSXQNW

'
,6
35
5(326/
:LHGHUDQIDKU
SXQNW

Beispiel Anfahren im Viertelkreis anfahren, REPOSQ, REPOSQA


Das Werkzeug fährt den Wiederanfahrpunkt auf einem Viertelkreis mit Radius DISR=...
an. Den notwendigen Zwischenpunkt zwischen Start- und Wiederanfahrpunkt berechnet die
Steuerung automatisch.
Beispiel:
REPOSQ RMI DISR=10 F400

< =ZLVFKHQ
SXQNW
'
,6
5

5(3264
:LHGHUDQIDKU
SXQNW

6WDUWSXQNW

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-53
Bahnverhalten
9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN, RMB, RME)

Beispiel Werkzeug im Halbkreis anfahren, REPOSH, REPOSHA


Das Werkzeug fährt den Wiederanfahrpunkt auf einem Halbkreis mit Durchmesser
DISR=... an. Den notwendigen Zwischenpunkt zwischen Start- und Wiederanfahrpunkt
berechnet die Steuerung automatisch.
Beispiel:
REPOSH RMI DISR=20 F400

=ZLVFKHQ
< SXQNW
5
,6
'

6WDUWSXQNW

:LHGHUDQIDKU
SXQNW

Wiederanfahrpunkt festlegen (nicht für SERUPRO Anfahren mit RMN)


Bezogen auf den NC-Satz, in dem der Programm-Ablauf unterbrochen wurde, können Sie
zwischen drei Wiederanfahrpunkten wählen:
● RMI, Unterbrechungspunkt
● RMB, Satzanfangspunkt bzw. letzter Endpunkt
● RME, Satzendpunkt

Arbeitsvorbereitung
9-54 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN, RMB, RME)

<

6DW]HQGSXQNW

50( 8QWHUEUHFKXQJVSXQNW
6DW]DQIDQJV
50, SXQNW

50%

Mit RMI DISPR=... bzw. mit RME DISPR=... können Sie einen Wiederanfahrpunkt
festlegen, der vor dem Unterbrechungspunkt bzw. vor dem Satzendpunkt liegt.
Mit DISPR=... beschreiben Sie den Konturweg in mm/inch, um den der
Wiederanfahrpunkt vor dem Unterbrechungs- bzw. Endpunkt liegt. Dieser Punkt kann - auch
für größere Werte - maximal im Satzanfangspunkt liegen.
Wird kein DISPR=... programmiert, gilt DISPR=0 und damit der Unterbrechungspunkt (bei
RMI) bzw. der Satzendpunkt (bei RME).

Vorzeichen von DISPR


Das Vorzeichen von DISPR wird ausgewertet. Bei positivem Vorzeichen ist das Verhalten
wie bisher.
Bei negativem Vorzeichen wird hinter dem Unterbrechungspunkt bzw. bei RMB hinter dem
Startpunkt wieder aufgesetzt.
Der Abstand Unterbrechungspunkt-Aufsetzpunkt ergibt sich aus dem Betrag von DISPR.
Dieser Punkt kann auch für betragsmäßig größere Werte maximal im Satzendpunkt liegen.
Anwendungsbeispiel:
Durch einen Sensor wird die Annäherung an eine Spannpratze erkannt. Es wird ein ASUP
ausgelöst, mit dem die Spannpratze umfahren wird.
Anschließend wird mit negativem DISPR auf einen Punkt hinter der Spannpratze
repositioniert und das Programm fortgesetzt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-55
Bahnverhalten
9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN, RMB, RME)

SERUPRO-Anfahren mit RMN


Wird bei der Bearbeitung an einer beliebigen Stelle ein Abbruch erzwungen, dann wird mit
SERUPRO-Anfahren unter RMN der kürzeste Weg von der Abbruchstelle angefahren, um
anschließend nur den Restweg abzuarbeiten. Dazu startet der Anwender ein SERUPRO-
Vorgang auf den Unterbrechungssatz und positioniert mit den JOG-Tasten vor die
schadhafte Stelle des Zielsatzes.

< 6DW]HQGSXQNW
,VWSRVLWLRQEHL6DW]VXFKODXI
'XUFK-2*7DVWHQ
HUUHLFKWH3RVLWLRQ
50(
6(58352$QIDKUHQ
501 6DW]DQIDQJV
SXQNW

50, 50%

Hinweis
SERUPRO
Für SERUPRO ist RMI und RMB identisch. RMN ist nicht nur auf SERUPRO beschränkt,
sondern allgemein gültig.

Anfahren vom nächstliegenden Bahnpunkt RMN


Zum Interpretationszeitpunkt von REPOSA wird nach einer Unterbrechung der
Wiederanfahrsatz mit RMN nicht noch einmal komplett begonnen, sondern nur der Restweg
abgearbeitet. Es wird der nächstliegende Bahnpunkt des unterbrochenen Satzes
angefahren.

Arbeitsvorbereitung
9-56 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN, RMB, RME)

< 6DW]HQGSXQNW

50(
:LHGHUDQIDKUHQ
$VXS
501 6DW]DQIDQJV
50, SXQNW

50%

Status für den gültigen REPOS-Mode


Der gültige REPOS-Mode des unterbrochenen Satzes kann über Synchronaktionen mit der
Variablen $AC_REPOS_PATH_MODE gelesen werden:
0: Anfahren nicht definiert
1 RMB: Anfahren auf den Beginn
2 RMI: Anfahren auf den Unterbrechungspunkt
3 RME: Anfahren auf den Satzendpunkt
4 RMN: Anfahren auf den nächstliegenden Bahnpunkt des unterbrochenen Satzes.

Anfahren mit neuem Werkzeug


Falls Sie den Programmablauf wegen Werkzeugbruch gestoppt haben:
Mit Programmierung der neuen D-Nummer wird das Programm ab Wiederanfahrpunkt mit
den geänderten Werkzeugkorrekturwerten fortgesetzt.
Bei geänderten Werkzeugkorrekturwerten kann der Unterbrechungspunkt möglicherweise
nicht mehr angefahren werden. In diesem Fall wird der dem Unterbrechungspunkt
nächstgelegene Punkt auf der neuen Kontur angefahren (gegebenenfalls um DISPR
modifiziert).

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-57
Bahnverhalten
9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN, RMB, RME)

<

Kontur anfahren
Die Bewegung, mit der das Werkzeug wieder an die Kontur heranfährt, ist programmierbar.
Die Adressen der zu verfahrenden Achsen geben Sie mit Wert Null an.
Mit den Befehlen REPOSA, REPOSQA und REPOSHA werden automatisch alle Achsen
repositioniert. Es ist keine Achsangabe notwendig.
Bei Programmierung von REPOSL, REPOSQ und REPOSH fahren alle Geometrieachsen
automatisch, also auch ohne Angabe im Befehl, an. Alle anderen Achsen müssen im Befehl
angegeben werden.
Für die Kreisbewegungen REPOSH und REPOSQ gilt:
Der Kreis wird in der angegebenen Arbeitsebene G17 bis G19 gefahren.
Falls Sie im Anfahrsatz die dritte Geometrieachse (Zustellrichtung) angeben, wird der
Wiederanfahrpunkt für den Fall, dass Werkzeugposition und programmierte Position in
Zustellrichtung nicht übereinstimmen, auf einer Schraubenlinie angefahren.
In folgenden Fällen wird automatisch auf
lineares Anfahren REPOSL umgeschaltet:
● Sie haben keinen Wert für DISR angegeben.
● Es gibt keine definierte Anfahrrichtung (Programmunterbrechung in einem Satz ohne
Verfahrinformation).
● Bei Anfahrrichtung senkrecht zur aktuellen Arbeitsebene.

Arbeitsvorbereitung
9-58 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bahnverhalten
9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN, RMB, RME)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 9-59
Bahnverhalten
9.9 Wiederanfahren an Kontur (REPOSA/L, REPOSQ/H, RMI, RMN, RMB, RME)

Arbeitsvorbereitung
9-60 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen 10
10.1 10.1 Struktur, allgemeine Grundlagen

Funktion
Synchronaktionen bieten die Möglichkeit, synchron zu Bearbeitungssätzen Aktionen
auszuführen.
Der Ausführungszeitpunkt der Aktionen kann über Bedingungen definiert werden. Die
Bedingungen werden im Interpolationstakt überwacht. Die Aktionen stellen somit eine
Reaktion auf Echtzeitereignisse dar; ihre Ausführung ist nicht an Satzgrenzen gebunden.
Zusätzlich enthält eine Synchronaktion Angaben zu ihrer Lebensdauer und zur
Abfragehäufigkeit für die programmierten Hauptlaufvariablen und damit zur
Ausführungshäufigkeit der zu startenden Aktionen. Dadurch kann eine Aktion nur einmal
oder aber zyklisch (jeweils im Interpolationstakt) angestoßen werden.
Mögliche Anwendungen:

7HLOHSURJUDPP

6DW]DXIEHUHLWXQJ

DXIEHUHLWHWH6¦W]H
%HGLQJXQJHQ $NWLRQHQ
1&.(LQJ¦QJH 1&.$XVJ¦QJH
6ROOZHUWH 3RVLWLRQHQ
,VWZHUWH *HVFKZLQGLJ
(FKW]HLWYHUDUEHLWXQJ
3RO\QRP NHLWHQ
6\QFKURQDNWLRQHQ
.RHIIL]LHQWHQ 9HUNQ¾SIXQJVORJLN 1&)XQNWLRQHQ
3DUDPHWHU 0HVVHQ
0HUNHU .RSSOXQJHLQVFK
6HUYR:HUWH 0+)NWDXVJHE
3RO\QRP.¦QG

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-1
Bewegungssynchronaktionen
10.1 Struktur, allgemeine Grundlagen

● Optimierung laufzeitkritischer Anwendungen (z. B. Werkzeugwechsel)


● Schnelle Reaktion auf externe Ereignisse
● AC-Regelungen programmieren
● Sicherheitsfunktionen einrichten
● ....

Programmierung
DO Aktion1 Aktion2 …
SCHLÜSSELWORT Bedingung DO Aktion1 Aktion2 …
ID=n SCHLÜSSELWORT Bedingung DO Aktion1 Aktion2 …
IDS=n SCHLÜSSELWORT Bedingung DO Aktion1 Aktion2 …

Befehlselemente
Identifikationsnummer ID/IDS:

ID=n Modal wirksame Synchronaktionen im Automatik-Betrieb,


programmlokal; n = 1... 255
IDS=n Modal wirksame Synchronaktionen in jeder Betriebsart,
statisch; n = 1... 255
ohne ID/IDS Satzweise wirksame Synchronaktionen im Automatik-
Betrieb

Schlüsselwort:

kein Schlüsselwort Die Ausführung der Aktion ist an keine Bedingung


geknüpft. Zyklische Ausführung im IPO-Takt.
WHEN, WHENEVER, FROM, EVERY Abfragehäufigkeit der zu startenden Aktion

Bedingung:
Hauptlaufvariable.
Die verwendeten Variablen werden im Interpolationstakt ausgewertet. Hauptlaufvariable in
Synchronaktionen lösen keinen Vorlaufstopp aus.
Auswertung:
Treten in einem Teileprogramm Hauptlaufvariablen auf (z.B. Istwert, Stellung eines digitalen
Ein- oder Ausgangs usw.), wird der Vorlauf angehalten, bis der vorhergehende Satz
abgearbeitet ist und die Werte der Hauptlaufvariablen vorliegen.
DO:
Auslösung der Aktion
Koordinierung von Synchronaktionen/Technologiezyklen:

CANCEL[n] Synchronaktionen löschen


LOCK[n] Synchronaktionen sperren
UNLOCK[n] Synchronaktionen freischalten
RESET Technologiezyklus zurücksetzen

Arbeitsvorbereitung
10-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.1 Struktur, allgemeine Grundlagen

Beispiel

WHEN $AA_IW[Q1]>5 DO M172 H510 ;Wenn der Istwert der Achse Q1 5 mm übersteigt,
;werden die Hilfsfunktionen M172 und H510 an die
;PLC-Nahtstelle ausgegeben.

10.1.1 Programmierung und Befehlselemente

Funktion
Eine Synchronaktion steht allein im Satz und wirkt ab den nächsten ausführbaren Satz einer
Maschinenfunktion (z. B. Verfahrbewegung mit G0, G1, G2, G3).
Synchronaktionen bestehen aus bis zu 5 Befehlselementen mit unterschiedlichen Aufgaben:

$NWLRQ7HFKQR=
$NWLRQ
RSW*&RGHI¾U

RSW*&RGHI¾U
,'1XPPHU 6FKO¾VVHOZRUW
%HGLQJXQJ

%HGLQJXQJ '2
*¾OWLJNHLWVEHUHLFK $EIUDJHK¦XILJNHLW
7HFKQRORJLH
]\NOXV

Programmierung
ID=n Schlüsselwort Bedingung DO Aktion 1 Aktion 2 ...

Befehlselemente

Identifikationsnummer Gültigkeitsbereich der Modal wirksamen Synchronaktionen im


ID/IDS Automatik-Betrieb bzw. in jeder Betriebsart
Schlüsselwort Abfragehäufigkeit keine, WHEN, WHENEVER, FROM, EVERY
Bedingung Verknüpfungslogik für Hauptlaufvariablen, die Bedingung wird
im IPO-Takt geprüft.
DO Bei erfüllter Bedingung die Aktion oder den Technologiezyklus
auslösen.
Aktion Bei erfüllter Bedingung gestartete Aktion z. B. Variable
zuweisen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-3
Bewegungssynchronaktionen
10.1 Struktur, allgemeine Grundlagen

Technologiezyklus Bei erfüllter Bedingung wird als Aktion ein Programm


aufgerufen.

Beispiel

ID=1 WHENEVER $A_IN[1]==1 DO $A_OUT[1]=1


Synchronaktion Nr. 1: immer wenn Eingang 1 ansteht dann Ausgang 1 setzen

10.1.2 Gültigkeitsbereich: Identifikationsnummer ID

Funktion
Der Gültigkeitsbereich einer Synchronaktion ist festgelegt durch die Identifikationsnummer:
● keine Modal-ID: satzweise wirksame Synchronaktion im Automatik-Betrieb
● ID=n modal wirksame Synchronaktion im Automatik-Betrieb bei Programmende
● IDS=n modal wirksame Synchronaktion in jeder Betriebsart statisch, auch über
Programmende
Anwendung
● AC-Schleifen im JOG-Betrieb
● Verknüpfungslogik für Safety Integrated
● Überwachungsfunktionen, Reaktionen auf Maschinenzustände in allen Betriebsarten
Bearbeitungsreihenfolge
Modal und statisch wirksame Synchronaktionen werden in der Reihenfolge ihrer ID(S)-
Nummer (im Interpolationstakt) bearbeitet.
Satzweise wirksame Synchronaktionen (ohne ID-Nummer) werden nach der Abarbeitung der
modal wirksamen Synchronaktionen in der programmierten Reihenfolge bearbeitet.
Maschinenhersteller
Über Maschinendateneinstellungen können modal wirksame Synchronaktionen gegenüber
Änderungen oder Löschungen geschützt werden.

Identifikationsnummer ID
● keine Modal-ID
Die Synchronaktion ist nur im Automatik-Betrieb wirksam. Sie gilt nur für den folgenden
ausführbaren Satz (Satz mit Bewegungsanweisung oder sonstiger Maschinenaktion), ist
also satzweise wirksam.
Beispiel:

WHEN $A_IN[3]==TRUE DO $A_OUTA[4]=10


G1 X20 ;ausführbarer Satz

Arbeitsvorbereitung
10-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.1 Struktur, allgemeine Grundlagen

● ID=n; n=1..255
Die Synchronaktion wirkt in den folgenden Sätzen modal und kann durch CANCEL(n)
ausgeschaltet oder durch Programmierung einer neuen Synchronaktion mit gleicher ID
überschrieben werden. Die im M30-Satz aktiven Synchronaktionen verzögern das
Programmende. ID-Synchronaktionen wirken nur im Automatik-Betrieb.
Beispiel:

ID=2 EVERY $A_IN[1]==1 DO POS[X]=0

● IDS=n; n=1..255
Die statischen Synchronaktionen wirken modal in allen Betriebsarten. Sie bleiben auch
über das Programmende aktiv und können direkt nach Power On mit einem ASUP
aktiviert werden.
So können Aktionen aktiviert werden, die unabhängig von der gewählten Betriebsart in
der NC ablaufen sollen.
Beispiel:

IDS=1 EVERY $A_IN[1]==1 DO POS[X]=100

10.1.3 Zyklische Prüfung der Bedingung

Funktion
Über ein Schlüsselwort wird die zyklische Prüfung der Bedingung einer Synchronaktion
definiert.
Ist kein Schlüsselwort programmiert, werden die Aktionen der Synchronaktion in jedem IPO-
Takt ausgeführt.

Schlüsselworte

kein Schlüsselwort Die Ausführung der Aktion ist an keine Bedingung


geknüpft. Die Aktion wird zyklisch in jedem
Interpolationstakt ausgeführt.
WHEN Die Bedingung wird so lange in jedem
Interpolationstakt abgefragt, bis sie einmal erfüllt
ist; die zugehörige Aktion wird genau dann einmalig
ausgeführt.
WHENEVER Die Bedingung wird in jedem Interpolationstakt
zyklisch überprüft. Die zugehörige Aktion wird in
jedem Interpolationstakt ausgeführt, solange die
Bedingung erfüllt ist.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-5
Bewegungssynchronaktionen
10.1 Struktur, allgemeine Grundlagen

FROM Die Bedingung wird in jedem Interpolationstakt


überprüft, bis sie einmal erfüllt ist. Die Aktion wird
daraufhin so lange ausgeführt, wie die Synchronaktion
aktiv ist, d. h. auch dann, wenn die Bedingung nicht
mehr erfüllt ist.
EVERY Die Bedingung wird in jedem Interpolationstakt
abgefragt. Die Aktion wird immer dann einmalig
ausgeführt, wenn die Bedingung erfüllt ist.
Flankensteuerung:
Die Aktion wird wieder ausgeführt, wenn die Bedingung
vom Zustand FALSE auf den Zustand TRUE wechselt.

Beispiel
Kein Schlüsselwort
DO $A_OUTA[1]=$AA_IN[X] ;Istwertausgabe auf Analogausgang
EVERY
ID=1 EVERY $AA_IM[B]>75 DO POS[U]=IC(10) FA[U]=900
; immer wenn der Istwert der Achse B im MKS den Wert 75 überschreitet, soll die U-Achse
mit axialem Vorschub um 10 weiterpositionieren.
WHENEVER

WHENEVER $AA_IM[X] > 10.5*SIN(45) DO … ;Vergleich mit im Vorlauf


;berechnetem Ausdruck
WHENEVER $AA_IM[X] > $AA_IM[X1] DO … ;Vergleich mit weiterer
;Hauptlaufvariable
WHENEVER ($A_IN[1]==1) OR ($A_IN[3]==0) DO ... ;Zwei miteinander verknüpfte
;Vergleiche

Bedingung
Die Bedingung stellt einen logischen Ausdruck dar, der über Boole'sche Operatoren beliebig
aufgebaut sein kann. Boole'sche Ausdrücke sollen immer in Klammern angegeben werden.
Die Bedingung wird im Interpolationstakt überprüft.
Vor der Bedingung kann ein G-Code angegeben werden. Damit kann erreicht werden, dass
unabhängig vom gerade aktiven Teileprogrammzustand für die Auswertung der Bedingung
und die auszuführende Aktion/Technologiezyklus definierte Einstellungen bestehen. Die
Abkopplung der Synchronaktionen vom Programmumfeld ist erforderlich, weil
Synchronaktionen zu beliebigen Zeitpunkten aufgrund erfüllter Auslösebedingungen ihre
Aktionen in definiertem Ausgangszustand ausführen sollen.

Anwendungsfälle
Festlegung der Maßsysteme für Bedingungsauswertung und Aktion durch G-Codes G70,
G71, G700, G710.
Ein angegebener G-Code bei der Bedingung gilt für die Auswertung der Bedingung und für
die Aktion, wenn bei der Aktion kein eigener G-Code angegeben ist.
Pro Bedingungssteil darf nur ein G-Code der G-Code-Gruppe programmiert werden.

Arbeitsvorbereitung
10-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.1 Struktur, allgemeine Grundlagen

Mögliche Bedingungen
● Vergleich von Hauplaufvariablen (analoge/digitale Ein-/Ausgänge, u.a.)
● Boole'sche Verknüpfung zwischen Vergleichsergebnissen
● Berechnung von Echtzeitausdrücken
● Zeit/Entfernung vom Satzanfang
● Entfernung vom Satzende
● Messwerte, Messergebnisse
● Servo-Werte
● Geschwindigkeiten, Achsstatus

10.1.4 Aktionen

Funktion
In Synchronaktionen können eine oder mehrere Aktionen programmiert werden. Sämtliche in
einem Satz programmierte Aktionen werden im gleichen Interpolationstakt aktiv.

Befehlselemente

DO Löst bei erfüllter Bedingung eine Aktion oder einen


Technologiezyklus aus.
Aktion Bei erfüllter Bedingung gestartete Aktion wie z. B.
Variable zuweisen, Achskopplung einschalten, NCK-
Ausgänge setzen, M-, S- und H-Funktionen ausgeben,
programmierten G-Code vorgeben, ...

G-Codes sind in Synchronaktionen für die Aktionen/Technologiezyklen programmierbar.


Dieser G-Code gibt für alle Aktionen im Satz und Technologiezyklen ggf. einen anderen G-
Code als den bei der Bedingung gesetzten vor. Sind Technologiezyklen im Aktionsteil, so gilt
der G-Code auch nach Abschluss des Technologiezyklus' für alle darauf folgenden Aktionen
bis zum nächsten G-Code modal weiter.
Pro Aktionsteil darf nur ein G-Code der G-Code-Gruppe (G70, G71, G700, G710)
programmiert werden.

Beispiel Synchronaktion mit zwei Aktionen

WHEN $AA_IM[Y] >= 35.7 DO M135 ;Falls die Bedingung erfüllt ist, wird
$AC_PARAM=50 ;M135 an PLC ausgegeben und der Overrite
;auf 50% gesetzt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-7
Bewegungssynchronaktionen
10.2 Operatoren für Bedingungen und Aktionen

10.2 10.2 Operatoren für Bedingungen und Aktionen

Vergleiche In Bedingungen können Variablen oder


(==, <>, <, >, <=, >=) Teilausdrücke verglichen werden. Das
Ergebnis ist immer vom Datentyp BOOL.
Zulässig sind alle bekannten
Vergleichsoperatoren.
Boole'sche Operatoren Variablen, Konstanten oder Vergleiche
(NOT, AND, OR, XOR) können mit den bekannten Bool'schen
Operatoren miteinander verknüpft werden.
Bitweise Operatoren Möglich sind die bitweisen Operatoren
(B_NOT, B_AND, B_OR, B_XOR) B_NOT, B_AND, B_OR, B_XOR.
Grundrechenarten Hauptlaufvariablen können durch die
(+, -, *, /, DIV, MOD) Grundrechenarten miteinander oder mit
Konstanten verknüpft werden.
Mathematische Funktionen Auf Variablen vom Datentyp REAL können
(SIN, COS, TAN, ASIN, ACOS, ABS, TRUNC, mathematische Funktionen angewendet
ROUND, LN, EXP, ATAN2, POT, SQRT, CTAB, werden.
CTABINV).
Indizierung Indizierung ist mit Hauptlaufausdrücken
möglich.

Beispiel
● Grundrechenarten verknüpft
Es gilt Punkt-vor-Strich Rechnung, die Klammerung von Ausdrücken ist zulässig. Die
Operatoren DIV und MOD sind auch für den Datentyp REAL zulässig

DO $AC_PARAM[3] = $A_INA[1]-$AA_IM[Z1] ;Subtraktion zweier


;Hauptlaufvariablen
WHENEVER $AA_IM[x2] < $AA_IM[x1]-1.9 DO $A_OUT[5] = 1
;Subtraktion einer Konstanten von Variablen
DO $AC_PARAM[3] = $INA[1]-4*SIN(45.7 $P_EP[Y])*R4
;Konstanter Ausdruck, im Vorlauf berechnet

● Mathematische Funktionen

DO $AC_PARAM[3] = COS($AC_PARAM[1])

● Echtzeitausdrücke

ID=1 WHENEVER ($AA_IM[Y]>30) AND ($AA_IM[Y]<40) ;Auswahl eines Positions-Fenster


DO $AA_OVR[S1]=80
ID=67 DO $A_OUT[1]=$A_IN[2] XOR $AN_MARKER[1] ;2 boole'sche Signale auswerten
ID=89 DO $A_OUT[4]=$A_IN[1] OR ($AA_IM[Y]>10) ;Ergebnis eines Vergleichs
;ausgeben

Arbeitsvorbereitung
10-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

● Hauptlaufvariable indiziert

WHEN…DO $AC_PARAM[$AC_MARKER[1]] = 3
Unzulässig ist
$AC_PARAM[1] = $P_EP[$AC_MARKER]

10.3 10.3 Hauptlaufvariablen für Synchronaktionen

10.3.1 Allgemeines zu Systemvariablen

Funktion
Mit Hilfe von Systemvariablen können Daten der NC gelesen und geschrieben werden.
Systemvariable werden in Vorlauf- und Hauptlaufvariable unterschieden. Vorlaufvariable
werden immer zum Vorlaufzeitpunkt ausgeführt. Hauptlaufvariable ermitteln ihren Wert
immer bezüglich des aktuellen Hauptlaufzustandes.

Syntax von Systemvariablen


Der Name von Systemvariablen beginnt meist mit einem $–Zeichen.
Vorlaufvariablen:
● $M... , Maschinendaten
● $S... , Settingdaten, Schutzbereiche
● $T... , Werkzeugverwaltungsdaten
● $P... , Programmierte Werte, Vorlaufdaten
● $C... , Zyklenvariablen der ISO-Hüllzyklen
● $O... , Optionsdaten
● R ... , R-Parameter
Hauptlaufvariablen:
● $$A... , aktuelle Hauptlaufdaten
● $$V... , Servo-Daten
● $R... , R-Parameter
ein 2. Buchstabe beschreibt die Zugriffsmöglichkeit auf die Variable:
● N... , NCK-globaler Wert (allgemein gültiger Wert)
● C... , kanalspezifischer Wert
● A... , achsspezifischer Wert

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-9
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

Der 2. Buchstabe wird meistens nur für Hauptlaufvariablen verwendet. Vorlaufvariablen, wie
$P_ werden meist ohne 2. Buchstaben ausgeführt.
Dem Prefix ($ gefolgt von einem oder zwei Buchstaben) folgt immer ein Unterstrich und der
nachfolgende Variablenname meistens als englische Bezeichnung oder Abkürzung.

Datentypen
Hauptlaufvariablen können folgende Datentypen haben:

INT Integer für ganzzahlige Werte mit Vorzeichen


REAL Real für gebrochenrationale Zahlen
BOOL Boolean TRUE und FALSE
CHAR ASCII-Zeichen
STRING Zeichenkette mit alphanumerischen Zeichen
AXIS Achsadressen und Spindeln

Vorlaufvariablen können zusätzlich folgenden Datentyp haben:

FRAME Koordinatentransformationen

10.3.2 Implizite Typwandlung

Funktion
Bei Wertzuweisungen und Parameterübergaben können Variablen unterschiedlicher
Datentypen zugewiesen oder übergeben werden.
Die implizite Typwandlung löst eine interne Typenkonvertierung von Werten aus.

Mögliche Typkonvertierungen

nach REAL INT BOOL CHAR STRING AXIS FRAME


von
REAL ja ja* ja1) – – – –
INT ja ja ja1) – – – –
BOOL ja ja ja – – – –
Erklärungen

* Bei Typumwandlung von REAL nach INT wird bei gebrochenem Wert >= 0.5
aufgerundet, ansonsten wird abgerundet (vgl. Funktion ROUND).
Bei Werteüberschreitungen wird ein Alarm ausgelöst.
1) Wert <> 0 entspricht TRUE, Wert == 0 entspricht FALSE

Arbeitsvorbereitung
10-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

Ergebnisse

Typwandlung von REAL oder INTEGER nach BOOL


Ergebnis BOOL = TRUE wenn der Wert von REAL oder INTEGER ungleich Null ist
Ergebnis BOOL = FALSE wenn der Wert von REAL oder INTEGER gleich Null ist
Typwandlung von BOOL nach REAL oder INTEGER
Ergebnis REAL TRUE wenn der Wert von BOOL = TRUE (1) ist
Ergebnis INTEGER = TRUE wenn der Wert von BOOL = TRUE (1) ist
Typwandlung von BOOL nach REAL oder INTEGER
Ergebnis REAL FALSE) wenn der Wert von BOOL = FALSE (0) ist
Ergebnis INTEGER = FALSE wenn der Wert von BOOL = FALSE (0) ist

Beispiele impliziter Typwandlungen

Typwandlung von INTEGER nach BOOL


$AC_MARKER[1] = 561
ID=1 WHEN $A_IN[1] == TRUE DO $A_OUT[0]=$AC_MARKER[1]

Typwandlung von REAL nach BOOL


R401 = 100.542
WHEN $A_IN[0] == TRUE DO $A_OUT[2]=$R401

Typwandlung von BOOL nach INTEGER


ID=1 WHEN $A_IN[2] == TRUE DO $AC_MARKER[4] = $A_OUT[1]]

Typwandlung von BOOL nach REAL


R401 = 100.542
WHEN $A_IN[3] == TRUE DO $R10 = $A_OUT[3]

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-11
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

10.3.3 GUD-Variablen für Synchronaktionen

Funktion
Neben den vordefinierten Variablen kann der Programmierer in Synchronaktionen spezielle
GUD-Variable nutzen. Die Variablen werden auf HMI im Bedienbereich Parameter angezeigt
und können im Wizard sowie in der Variablenansicht und Variablenprotokoll verwendet
werden.

Projektierbare Parameterbereiche
Maschinenhersteller
Über Maschinendaten können die einzelnen GUD-Bausteine für die Datentypen REAL, INT
und BOOL um zusätzliche kanalspezifische Parameterbereiche vom Datentyp AXIS, CHAR
und STRING erweitert werden, die vom Teileprogramm und auch über Synchronaktionen
gelesen und geschrieben werden können.
Die Parameter sind nach Setzen der entsprechenden Maschinendaten mit dem nächsten
Steuerungshochlauf verfügbar.
Zur Projektierung der betreffenden Maschinendaten, siehe Angaben des
Maschinenherstellers.

Vordefinierte Variable

Hinweis
Selbst wenn keine GUD-Definitionsdateien wirksam sind, können über Maschinendaten
definierte neue Parameter im jeweiligen GUD-Baustein von HMI aus gelesen werden.

Liste der vordefinierten Variablennamen


Name der Synact-GUD
vom Datentyp REAL vom Datentyp INT vom Datentyp BOOL im Baustein
SYG_RS[ ] SYG_IS[ ] SYG_BS[ ] SGUD-Baustein
SYG_RM[ ] SYG_IM[ ] SYG_BM[ ] MGUD-Baustein
SYG_RU[ ] SYG_IU[ ] SYG_BU[ ] UGUD-Baustein
SYG_R4[ ] SYG_I4[ ] SYG_B4[ ] GUD4-Baustein
SYG_R5[ ] SYG_I5[ ] SYG_B5[ ] GUD5-Baustein
SYG_R6[ ] SYG_I6[ ] SYG_B6[ ] GUD6-Baustein
SYG_R7[ ] SYG_I7[ ] SYG_B7[ ] GUD7-Baustein
SYG_R8[ ] SYG_I8[ ] SYG_B8[ ] GUD8-Baustein
SYG_R9[ ] SYG_I9[ ] SYG_B9[ ] GUD9-Baustein

Arbeitsvorbereitung
10-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

Liste der vordefinierten Variablennamen


Name der Synact-GUD
vom Datentyp AXIS vom Datentyp CHAR vom Datentyp STRING im Baustein
SYG_AS[ ] SYG_CS[ ] SYG_SS[ ] SGUD-Baustein
SYG_AM[ ] SYG_CM[ ] SYG_SM[ ] MGUD-Baustein
SYG_AU[ ] SYG_CU[ ] SYG_SU[ ] UGUD-Baustein
SYG_A4[ ] SYG_C4[ ] SYG_S4[ ] GUD4-Baustein
SYG_A5[ ] SYG_C5[ ] SYG_S5[ ] GUD5-Baustein
SYG_A6[ ] SYG_C6[ ] SYG_S6[ ] GUD6-Baustein
SYG_A7[ ] SYG_C7[ ] SYG_S7[ ] GUD7-Baustein
SYG_A8[ ] SYG_C8[ ] SYG_S8[ ] GUD8-Baustein
SYG_A9[ ] SYG_C9[ ] SYG_S9[ ] GUD9-Baustein

Hinweis
Variable vom Typ STRING in Synchronaktionen haben eine feste Länge von 32 Zeichen.
● Feldgröße entsprechend dem <Wert> des Maschinendatums
● Vordefinierte Namen gemäß vorhergehender Liste der vordefinierten Variablennamen.
● Zugriff über HMI erfolgt wie auf die per Definitionsdatei angelegten GUD`s.
● Die Schutzstufenzuweisungen, die bereits in einer GUD Definitionsdatei über
Schlüsselworte APR und APW möglich sind, bleiben weiterhin gültig und beziehen sich
nur auf die in dieser GUD Definitionsdateien definierten GUD`s.
● Löschverhalten: Wird der Inhalt einer bestimmten GUD Definitionsdatei neu aktiviert, so
wird zunächst der alte GUD Datenbaustein im Speicher des aktiven Filesystems gelöscht.
Die neuen Parameter werden dabei gleichfalls zurückgesetzt. Dieser Vorgang ist auch
über HMI im Bedienbereich Dienste in der Bedienoberfläche "Anwenderdaten (GUD)
definieren und aktivieren" möglich.

10.3.4 Default-Achsbezeichner (NO_AXIS)

Funktion
Variablen oder Parameter vom Typ AXIS, die nicht mit einem Wert initialisiert wurden,
können mit definierten Default-Achsbezeichnern versehen werden. Undefinierte
Achsvariablen werden mit diesem Default-Wert mitinitialisiert.
Nicht initialisierte gültige Achsnamen werden über eine Abfrage der Variable "NO_AXIS" in
Synchronaktionen erkannt. Diesen nicht initialisierten Achsbezeichner wird der über ein
Maschinendatum projektierte Default-Achsbezeichner zugewiesen.
Maschinenhersteller
Über Maschinendaten muss mindestens ein gültiger vorhandener Achsbezeichner definiert
und vorbelegt sein. Es können aber auch alle vorhandenen gültigen Achsbezeichner
vorbelegt werden. Bitte beachten Sie die Angaben des Maschinenherstellers.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-13
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

Hinweis
Neu angelegte Variable bekommen nun automatisch bei der Definition dem im
Maschinendatum hinterlegten Wert für Default-Achsnamen zugewiesen. Weitere
Informationen zu einer über Maschinendatum gültigen Definition siehe
Literatur
/FBSY/ Funktionsbeschreibung Synchronaktionen

Programmierung

PROC UP(AXIS PAR1=NO_AXIS, AXIS PAR2=NO_AXIS)


IF PAR1 <>NO_AXIS…

Unterprogrammdefinition

PROC Unterprogrammdefinition
UP Unterprogrammname zur Erkennung
PARn Parameter n
NO_AXIS Initialisierung des Formalparameters mit Default-
Achsbezeichner

Beispiel für die Definition einer Achsvariablen im Hauptprogramm

DEF AXIS AXVAR


UP( , AXVAR)

10.3.5 Synchronaktions-Marker $AC_MARKER[n]

Funktion
Die Feld-Variable $AC_MARKER[n] kann in Synchronaktionen gelesen, geschrieben
werden. Diese Variablen können entweder im Speicher des aktiven oder passiven
Filesystems liegen.

Synchronaktions-Variable: Datentyp INT

$AC_MARKER[n] Kanalspezifischer Merker/Zähler vom Datentyp INTEGER


$MC_MM_NUM_AC_MARKER Maschinendatum zum Einstellen der Anzahl
kanalspezifischen Merker für
Bewegungssynchronaktionen
n Feldindex der Variablen 0-n

Arbeitsvorbereitung
10-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

Beispiel für Merkervariable lesen und schreiben

WHEN ... DO $AC_MARKER[0] = 2


WHEN ... DO $AC_MARKER[0] = 3
WHENEVER $AC_MARKER[0] == 3 DO $AC_OVR=50

10.3.6 Synchronaktions-Parameter $AC_PARAM[n]

Funktion
Synchronaktions-Parameter $AC_PARAM[n] dienen für Berechnungen und als
Zwischenspeicher in Synchronaktionen. Diese Variablen können entweder im Speicher vom
aktiven oder passiven Filesystem liegen.

Synchronisations-Variable: Datentyp REAL


Die Parameter sind unter gleichem Namen einmal pro Kanal vorhanden.

$AC_PARAM[n] Rechenvariable für Bewegungssynchronaktionen (REAL)


$MC_MM_NUM_AC_PARAM Maschinendatum zum Einstellen der Anzahl der
Parameter für Bewegungssynchronaktionen bis maximal
20000.
n Feldindex des Parameters 0-n

Beispiel für Synchronaktions-Parameter $AC_PARAM[n]

$AC_PARAM[0]=1.5
$AC_MARKER[0]=1
ID=1 WHEN $AA_IW[X]>100 DO $AC_PARAM[1]=$AA_IW[X]
ID=2 WHEN $AA_IW[X]>100 DO $AC_MARKER[1]=$AC_MARKER[2]

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-15
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

10.3.7 Rechenparameter $R[n]

Funktion
Diese statische Feld-Variable dient zu Berechnungen im Teileprogramm und
Synchronaktionen.

Programmierung
Programmierung im Teileprogramm:
REAL R[n]
oder
REAL Rn
Programmierung in Synchronaktionen:
REAL $R[n]
oder
REAL $Rn

Rechenparameter
Die Verwendung von Rechenparametern ermöglicht:
● Abspeicherung von Werten, die über Programmende, NC-Reset und Power On hinweg
erhalten werden sollen.
● Anzeige abgespeicherter Werte im R-Parameter-Bild.

Beispiele

WHEN $AA_IM[X]>=40.5 DO $R10=$AA_MM[Y] ;Verwendung von R10 in Synchronaktion


G01 X500 Y70 F1000
STOPRE ;Vorlaufstopp
IF R10>20 ;Auswertung der Rechenvariable

WHEN $AA_IM[X]>=40.5 DO $R10=$AA_MM[Y] ;Lesezugriff auf den R-Parameter 10.


WHEN $AA_IM[X]>=6.7 DO ;Lesezugriff auf den R-Parameter,
$R[$AC_MARKER[1]]=30.6 ;dessen Nummer im Merker 1 steht

SYG_AS[2]=X
SYG_IS[1]=1
WHEN $AA_IM[SGY_AS[2]]>10 DO $R3=$AA_EG_DENOM[SYG_AS[1]], SYG_AS[2]]
WHEN $AA_IM[SGY_AS[2]]>12 DO $AA_SCTRACE[SYG_AS[2]]=1

SYG_AS[1]=X

Arbeitsvorbereitung
10-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

SYG_IS[0]=1
WHEN $AA_IM[SGY_AS[1]]>10 DO $R3=$$MA_POSCTRL_GAIN[SYG_IS[0]],SYG_AS[1]]
WHEN $AA_IM[SGY_AS[1]]>10 DO $R3=$$MA_POSCTRL_GAIN[SYG_AS[1]]
WHEN $AA_IM[SGY_AS[1]]>15 DO $$MA_POSCTRL_GAIN[SYG_AS[0]], SYG_AS[1]]=$R3

10.3.8 NC-Maschinen- und NC-Settingdaten lesen und schreiben

Funktion
Das Lesen und Schreiben von NC-Maschinen-/Settingdaten ist auch aus Synchronaktionen
möglich. Beim Lesen und Schreiben von Maschinendaten-Feldelementen kann bei der
Programmierung ein Index weggelassen werden. Geschieht dies im Teileprogramm, so wird
beim Lesen das erste Feldelement gelesen und beim Schreiben werden alle Elemente des
Feldes mit dem Wert beschrieben.
In Synchronaktionen wird in diesem Fall nur das erste Element gelesen oder geschrieben.

Festlegung
MD, SD mit
$: Lesen des Wertes zum Interpretationszeitpunkt der Synchronaktionen
$$: Lesen des Wertes im Hauptlauf

MD- und SD Werte zum Vorlaufzeitpunkt lesen


Sie werden aus der Synchronaktion mit den $-Zeichen adressiert und zum Vorlaufzeitpunkt
ausgewertet.

ID=2 WHENEVER $AA_IM[z]<$SA_OSCILL_REVERSE_POS2[Z]-6 DO $AA_OVR[X]=0


;Hier wird der als unveränderlich angenommene Umkehrbereich 2 für Pendeln
angesprochen

MD- und SD Werte zum Hauptlaufzeitpunkt lesen


Sie werden aus der Synchronaktion mit den $$-Zeichen adressiert und zum
Hauptlaufzeitpunkt ausgewertet.

ID=1 WHENEVER $AA_IM[z]<$$SA_OSCILL_REVERSE_POS2[Z]-6 DO $AA_OVR[X]=0


;Hier wird davon ausgegangen, dass die Umkehrposition durch Bedienung während der
Bearbeitung verändert werden könnte.

MD- und SD zum Hauptlaufzeitpunkt schreiben


Das aktuell eingestellte Zugriffsrecht muss den Schreibzugriff zulassen. Die Wirksamkeit für
alle MD und SD ist in der Literatur: /LIS/, Listen (Buch 1) angegeben.
Zu schreibende MD und SD sind eingeleitet mit $$ zu adressieren.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-17
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

Beispiel

ID=1 WHEN $AA_IW[X]>10 DO $$SN_SW_CAM_PLUS_POS_TAB_1[0]=20


$$SN_SW_CAM_MINUS_POS_TAB_1[0]=30
;Veränderung der Schaltposition von SW-Nocken. Hinweis: Die Schaltpositionen müssen
2-3 IPO-Takte vor Erreichen der Position verändert werden.

10.3.9 Timer-Variable $AC_Timer[n]

Funktion
Die Systemvariable $AC_TIMER[n] ermöglicht das Starten von Aktionen nach definierten
Wartezeiten.

Timer-Variable: Datentyp REAL

$AC_TIMER[n] Kanalspezifischer Timer vom Datentyp REAL


s Einheit in Sekunden
n Index der Timer-Variable

Timer setzen
Das Hochzählen einer Timer-Variable wird gestartet durch Wertzuweisung
$AC_TIMER[n] = value
n: Nummer der Zeitvariable
value: Startwert (i.d.R 0)
Timer anhalten
Das Hochzählen einer Timer-Variable wird gestoppt durch Zuweisung eines negativen
Wertes $AC_TIMER[n]= -1
Timer lesen
Der aktuelle Zeitwert kann bei laufender oder gestoppter Timer-Variablen gelesen werden.
Nach dem Stoppen der Timer-Variablen durch Zuweisung von -1 bleibt der zuletzt aktuelle
Zeitwert stehen und kann weiterhin gelesen werden.

Beispiel
Ausgabe eines Ist-Wertes über Analogausgang
500 ms nach Erkennen eines digitalen Eingangs

WHEN $A_IN[1]==1 DO $AC_TIMER[1]=0 ; Timer rücksetzen und starten


WHEN $AC_TIMER[1]>=0.5 DO $A_OUTA[3]=$AA_IM[X] $AC_TIMER[1]=-1

Arbeitsvorbereitung
10-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

10.3.10 FIFO-Variable $AC_FIFO1[n] ... $AC_FIFO10[n]

Funktion
Zur Abspeicherung zusammengehöriger Datenfolgen stehen 10 FIFO-Variable
(Umlaufspeicher) zur Verfügung.
Datentyp: REAL
Anwendung:
● zyklisches Messen
● Durchlaufbearbeitung
Auf jedes Element kann lesend und schreibend zugegriffen werden.

FIFO-Variable
Die Anzahl der verfügbaren FIFO-Variablen wird per Maschinendatum
MD 28260: NUM_AC_FIFO festgelegt.
Die Anzahl der in eine FIFO-Variable einschreibbaren Werte wird durch das
Maschinendatum
MD 28264: LEN_AC_FIFO definiert. Alle FIFO-Variablen haben gleiche Länge.
Die Summe aller FIFO-Elemente wird nur gebildet, wenn in MD 28266: MODE_AC_FIFO
Bit0 gesetzt ist.
Die Indizes 0 bis 5 haben Sonderbedeutung:
n=0: Beim Schreiben: neuer Wert wird in den FIFO abgelegt
Beim Lesen: ältestes Element wird gelesen und aus FIFO entfernt
n=1: Zugriff auf das älteste gespeicherte Element
n=2: Zugriff auf das jüngste gespeicherte Element
n=3: Summe aller FIFO-Elemente
n=4: Anzahl der im FIFO verfügbaren Elemente.
Auf jedes Element des FIFO kann lesend und schreibend zugegriffen werden. Das
Rücksetzen der FIFO-Variablen erfolgt durch Rücksetzen der Element-Anzahl, z. B. für die
erste FIFO-Variable: $AC_FIFO1[4] = 0
n=5: aktueller Schreibindex relativ zum FIFO-Anfang
n=6 bis 6+nmax: Zugriff auf n-tes FIFO-Element

Beispiel Umlaufspeicher
Während eines Produktionsablaufs wird ein Förderband zum Transport von Produkten mit
unterschiedlichen Längen (a, b, c, d) benutzt. Auf dem Förderband mit der Transportlänge
werden daher abhängig von den jeweiligen Produktlängen unterschiedliche Anzahlen von
Produkten gleichzeitig befördert. Bei gleich bleibender Fördergeschwindigkeit muss damit
eine Anpassung der Produktentnahme vom Band an die variablen Ankunftszeiten der
Produkte erfolgen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-19
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

D
E
F
O G

DEF REAL ZWI=2.5 ;Konstanter Abstand zwischen


;aufgelegten Produkten.
DEF REAL GESAMT=270 ;Abstand zwischen Längenmess- und
;Entnahmeposition.
EVERY $A_IN[1]==1 DO $AC_FIFO1[4]=0 ;Bei Prozessbeginn, FIFO
;zurücksetzen.
EVERY $A_IN[2]==1 DO $AC_TIMER[0]=0 ;Unterbricht ein Produkt die
;Lichtschranke, Zeitmessung starten.
EVERY $A_IN[2]==0 DO $AC_FIFO1[0]=$AC_TIMER[0]*$AA_VACTM[B]
;Wird Lichtschranke frei, aus gemessener Zeit und Transportgeschwindigkeit die
Produktlänge berechnen und in FIFO speichern.
EVERY $AC_FIFO1[3]+$AC_FIFO1[4]*ZWI>=GESAMT DO POS[Y]=-30
$R1=$AC_FIFO1[0]
;Sobald Summe aller Produktlängen und Zwischenabstände größer/gleich der Länge
zwischen Auflege- und Entnahmeposition ist, Produkt an der Entnahmeposition
vom Transportband nehmen, zugehörige Produktlänge aus FIFO auslesen.

Arbeitsvorbereitung
10-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

10.3.11 Auskunft über Satztypen im Interpolator

Funktion
Für Synchronaktionen stehen die folgenden Systemvariablen zur Verfügung, um Auskunft
über einen im Hauptlauf gerade aktuellen Satz zu erhalten:
$AC_BLOCKTYPE
$AC_BLOCKTYPEINFO
$AC_SPLITBLOCK

Blocktype- und Blocktypeinfo-Variable

$AC_BLOCKTYPE $AC_BLOCKTYPEINFO
Wert: Wert:
0 ungleich 0 T H Z E Bedeutung:
Origi- Zwischensatz Auslöser für Zwischensatz:
nalsatz
1 1 0 0 0 Intern generierter Satz, keine weitere Auskunft

2 2 0 0 1 Fasen/Runden: Gerade
2 2 0 0 2 Fasen/Runden: Kreis

3 3 0 0 1 WAB: Anfahren mit Gerade


3 3 0 0 2 WAB: Anfahren mit Viertelkreis
3 3 0 0 3 WAB: Anfahren mit Halbkreis

Werkzeugkorrektur:
4 4 0 0 1 Anfahrsatz nach STOPRE
4 4 0 0 2 Verbindungssätze bei nicht gefundenem
Schnittpunkt
4 4 0 0 3 Punktförmiger Kreis an Innenecken
(nur bei TRACYL)
4 4 0 0 4 Umfahrungskreis (bzw. Kegelschnitt) an
Außenecken
4 4 0 0 5 Anfahrsätze bei Korrekturunterdrückung
4 4 0 0 6 Anfahrsätze bei erneuter WRK-Aktivierung
4 4 0 0 7 Satzaufspaltung wegen zu hoher Krümmung
4 4 0 0 8 Ausgleichssätze beim 3D-Stirnfräsen
(WerkzeugVektor || Flächenvektor)

Überschleifen durch:
5 5 0 0 1 G641
5 5 0 0 2 G642
5 5 0 0 3 G643
5 5 0 0 4 G644

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-21
Bewegungssynchronaktionen
10.3 Hauptlaufvariablen für Synchronaktionen

$AC_BLOCKTYPE $AC_BLOCKTYPEINFO
Wert: Wert:
0 ungleich 0 T H Z E Bedeutung:
Origi- Zwischensatz Auslöser für Zwischensatz:
nalsatz

TLIFT-Satz mit:
6 6 0 0 1 linearer Bewegung der Tangentialachse und
ohne Abhebebewegung
6 6 0 0 2 nichtlinearer Bewegung der Tangentialachse
(Polynom) und ohne Abhebebewegung
6 6 0 0 3 Abhebebwegung, Tangentialachsbewegung und
Abhebebeweung starten gleichzeitig
6 6 0 0 4 Abhebebwegung, Tangentialachse startet erst,
wenn bestimmte Abhebeposition erreicht wird.

Wegaufteilung:
7 7 0 0 1 programmierte Wegaufteilung ohne das Stanzen
oder Nibbeln aktiv ist
7 7 0 0 2 programmierte Wegaufteilung mit aktivem
Stanzen oder Nibbeln
7 7 0 0 3 automatisch intern generierte Wegaufteilung

Compile Zyklen:
8 ID-Applikation ID der Compile-Zyklen-Applikation, die den Satz
erzeugt hat

Hinweis
$AC_BLOCKTYPEINFO enthält in der Tausenderstelle (T) immer auch den Wert für
Blocktype für den Fall, dass ein Zwischensatz vorliegt. In $AC_BLOCKTYPE ungleich 0 wird
die Tausenderstelle nicht übernommen.
T: Tausenderstelle
H: Hunderterstelle
Z: Zehnerstelle
E: Einerstelle

$AC_SPLITBLOCK
Wert: Bedeutung:
0 Unveränderter programmierter Satz, (ein durch den Kompressor generierter Satz
wird auch als programmierter Satz behandelt)
1 Es liegt ein intern generierter Satz oder ein verkürzter Originalsatz vor
3 Es liegt der letzte Satz in einer Kette von intern generierten Sätzen oder
verkürzten Originalsätzen vor

Arbeitsvorbereitung
10-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel Zählen von Überschleifsätzen

$AC_MARKER[0]=0
$AC_MARKER[1]=0
$AC_MARKER[2]=0
...
;Definition von Synchronaktionen, mit denen
;Überschleifsätze gezählt werden
;alle Überschleifsätze zählen in $AC_MARKER[0]
ID = 1 WHENEVER ($AC_TIMEC ==0) AND ($AC_BLOCKTYPE==5) DO _
$AC_MARKER[0]= $AC_MARKER[0] + 1
...
;Mit G641 erzeugte Überschleifsätze zählen in $AC_MARKER[1]
ID = 2 WHENEVER ($AC_TIMEC ==0) AND ($AC_BLOCKTYPEINFO==5001) DO _
$AC_MARKER[1]= $AC_MARKER[1] + 1
...
;Mit G642 erzeugte Überschleifsätze zählen in $AC_MARKER[2]
ID = 3 WHENEVER ($AC_TIMEC ==0) AND ($AC_BLOCKTYPEINFO==5002) DO _
$AC_MARKER[2]= $AC_MARKER[2] + 1
...

10.4 10.4 Aktionen in Synchronaktionen

10.4.1 Übersicht

Allgemeines
Aktionen in Synchronaktionen bestehen aus Wertzuweisungen, Funktions- oder
Parameteraufrufen, Schlüsselwörter oder Technologiezyklen.
Über Operatoren sind komplexe Ausführungen möglich.
Synchronaktionen wurden fortlaufend für Ausdrücke, verwendbare Hauptlaufvariable und
komplexe Bedingungen in Synchronaktionen über mehrere Softwarestände aktualisiert.
Möglich sind folgende Anwendungen:
● Berechnungen komplexer Ausdrücke im IPO-Takt
● Achsbewegungen und Spindelsteuerungen
● Settingdaten aus Synchronaktionen online zu verändern und auszuwerten wie z. B.
Positionen und Zeiten von Softwarenocken an PLC oder NC-Peripherie ausgeben
● Hilfsfunktionsausgabe an PLC

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-23
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

● zusätzliche Sicherheitsfunktionen einrichten


● überlagerte Bewegung, Online-Werkzeugkorrektur und Abstandsregelung einstellen
● Aktionen in allen Betriebsarten ausführen
● Synchronaktionen von PLC aus beeinflussen
● Technologiezyklen ausführen
● Ausgabe von digitalen und analogen Signalen
● Performanceerfassung von Synchronaktionen am Interpolationstakt und die Rechenzeit
des Lagereglers für eine Auslastungsbewertung erfassen
● Diagnose-Möglichkeiten in der Bedienoberfläche

Anwendungsmöglichkeiten von Bewegungssynchronaktionen


Synchronaktion Beschreibung
DO $V…= zuweisen (Servo-Werte)
DO $A...= Variable zuweisen (Hauptlaufvariable)
DO $AC…[n]= Spezielle Hauptlaufvariable
DO $AC_MARKER[n]= Synchronaktions-Marker lesen oder schreiben
DO $AC_PARAM[n]= Synchronaktions-Parameter lesen oder schreiben
DO $R[n]= Rechenvariable lesen oder schreiben
DO $MD...= Lesen des MD-Wertes zum Interpolationszeitpunkt
DO $$SD...= Schreiben des SD-Wertes im Hauptlauf
DO $AC_TIMER[n]=Startwert Timer
DO $AC_FIFO1[n] …FIFO10[n]= FIFO-Variable
DO $AC_BLOCKTYPE= Aktuellen Satz interpretieren (Hauptlaufvariable)
DO $AC_BLOCKTYPEINFO=
DO $AC_SPLITBLOCK=
DO M-, S und H z. B. M07 Ausgabe von M-, S- und H-Hilfsfunktionen
DO RDISABLE Einlesesperre setzen
DO STOPREOF Vorlaufstopp aufheben
DO DELDTG Schnelles Restweglöschen ohne Vorlaufstopp
FTCDEF(Polyn., LL, UL , Koeffiz.) Definition von Polynomen
DO SYNFCT(Polyn., Output, Input) Aktivierung von Synchronfunktionen: AC-Regelung
DO FTOC Online-Werkzeugkorrektur
DO G70/G71/G700/G710 Maßsystem für Positionieraufgaben festlegen
Maßangabe in Inch oder metrisch
DO POS[Achse]= / DO MOV[Achse]= Kommandoachsen starten/positionieren/stoppen
DO SPOS[Spindel]= Spindeln starten/positionieren/stoppen
DO MOV[Achse]=Wert Endlosbewegungen einer Kommandoachse
starten/stoppen
DO POS[Achse]= FA [Achse]= Axialen Vorschub FA
DO $A_WORAREA_PLUS_ENABLE]= Arbeitsfeldbegrenzung
ID=1 ... DO POS[Achse]= FA [Achse]= Positionieren aus Synchronaktionen
ID=2 ... DO POS[Achse]=
$AA_IM[Achse] FA [Achse]=
DO PRESETON(Achse, Wert) Istwertsetzen (Preset aus Synchronaktionen)

Arbeitsvorbereitung
10-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Anwendungsmöglichkeiten von Bewegungssynchronaktionen


ID=1 EVERY $A_IN[1]=1 DO M3 S…. Spindeln starten/positionieren/stoppen
ID=2 EVERY $A_IN[2]=1 DO SPOS=
DO TRAILON(FA, LA, Koppelfaktor) Mitschleppen einschalten
DO LEADON(FA, LA, NRCTAB, OVW) Leitwertkopplung einschalten
DO MEAWA(Achse)= Axiales Messen einschalten
DO MEAC(Achse)= Kontinuierliches Messen einschalten
DO [Feld n, m]=SET(Wert, Wert, ...) Initialisierung von Feldvariablen mit Wertelisten
DO [Feld n, m]=REP(Wert, Wert, ...) Initialisierung von Feldvariablen mit gleichen Werten
DO SETM(Marker Nr.) Wartemarken setzen
DO CLEARM(Marker Nr.) Wartemarken löschen
DO SETAL(Alarm Nr.) Zyklenalarm setzen (zusätzliche Sicherheitsfunktion)
DO FXS[Achse]= Fahren auf Festanschlag anwählen
DO FXST[Achse]= Klemmmoment verändern
DO FXSW[Achse]= Überwachungsfenster verändern
DO FOCON[Achse]= Fahren mit begrenztem Moment/Kraft aktivieren (modal)
DO FOCOF[Achse]= FOC deaktivieren (Synchronaktion wirkt satzbezogen)
ID=2 EVEREY $AC_BLOCKTYPE==0 DO Winkel zwischen Bahntangente im Endpunkt des
$R1 = $AC_TANEB aktuellen Satzes und der Bahntangente im Startpunkt
des programmierten Folgesatzes
DO $AA_OVR= Axial Override
DO $AC_OVR= Bahnoverride
DO $AA_PLC_OVR der von der PLC vorgegebene achsiale Override
DO $AC_PLC_OVR der von der PLC vorgegebene Bahnoverride
DO $AA_TOTAL_OVR resultierender axial Override
DO $AC_TOTAL_OVR resultierender Bahnoverride
$AN_IPO_ACT_LOAD= aktuelle IPO-Rechenzeit
$AN_IPO_MAX_LOAD= längste IPO-Rechenzeit
$AN_IPO_MIN_LOAD= kürzeste IPO-Rechenzeit
$AN_IPO_LOAD_PERCENT= aktuelle IPO-Rechenzeit im Verhältnis zum IPO-Takt
$AN_SYNC_ACT_LOAD= aktuelle Rechenzeit für Synchronaktion über alle Kanäle
$AN_SYNC_MAX_LOAD= längste Rechenzeit für Synchronaktion über alle Kanäle
$AN_SYNC_TO_IPO= prozentualer Anteil der ges. Synchronaktion
DO TECCYCLE Technologiezyklus ausführen
DO LOCK(n, n, ...) Sperren
DO UNLOCK(n, n, ...) Freischalten
DO RESET(n, n, ...) RESET eines Technologiezyklus
CANCEL(n, n, ...) Modale Synchronaktionen mit der Bezeichnung ID(S) im
Teileprogramm löschen

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-25
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.2 Ausgabe von Hilfsfunktionen

Funktion
Die Ausgabe von Hilfsfunktionen erfolgt in der Synchronaktion unmittelbar zum
Ausgabezeitpunkt der Aktion. Der über Maschinendatum definierte Ausgabezeitpunkt für
Hilfsfunktionen ist unwirksam.
Der Ausgabezeitpunkt ist dann gegeben, wenn die Bedingung erfüllt ist.
Beispiel:
Kühlmittel einschalten bei bestimmter Achsposition:
WHEN $AA_IM[X]>=15 DO M07 POS[X]=20 FA[X]=250

Erlaubte Schlüsselworte in satzweisen Synchronaktionen (ohne Modal-ID)


Hilfsfunktionen können nur mit den Schlüsselwörtern WHEN oder EVERY programmiert
werden.

Hinweis
Folgende Hilfsfunktionen sind in Synchronaktion heraus nicht erlaubt:
• M0, M1, M2, M17, M30: Programm-Halt/-Ende (M2, M17, M30 möglich bei
Technologiezyklus)
• M70: Spindelfunktion
• M6 bzw. über Maschinendatum eingestellte M-Funktionen für den Werkzeugwechsel
• M40, M41, M42, M43, M44, M45: Getriebeschaltung

Beispiel

WHEN $AA_IW[Q1]>5 DO M172 H510 ;Wenn Istwert der Q1-Achse 5 mm übersteigt,


;Hilfsfunktionen M172 und H510 an PLC
;ausgeben.

Arbeitsvorbereitung
10-26 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.3 Einlesesperre setzen (RDISABLE)

Funktion
Mit RDISABLE wird bei erfüllter Bedingung die weitere Satzbearbeitung im Hauptprogramm
angehalten. Programmierte Bewegungssynchronaktionen werden weiterbearbeitet,
nachfolgende Sätze weiter aufbereitet.
Im Bahnsteuerbetrieb wird am Anfang eines Satzes mit RDISABLE in Synchronaktionen
immer Genauhalt ausgelöst, unabhängig davon, ob RDISABLE wirksam wird oder nicht.

Beispiel
Abhängig von externen Eingängen Programm im Interpolationstakt starten.

...
WHENEVER $A_INA[2]<7000 DO RDISABLE ;Falls am Eingang 2 die Spannung von 7V
;unterschritten wird, Programmfortsetzung
;anhalten (1000= 1V).
N10 G1 X10 ;wenn Bedingung erfüllt ist, wirkt
;Einlesesperre am Ende von N10
N20 G1 X10 Y20
...

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-27
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.4 Vorlaufstopp aufheben (STOPREOF)

Funktion
Bei explizit programmiertem Vorlaufstopp STOPRE oder durch eine aktive Synchronaktion
implizit aktiviertem Vorlaufstopp hebt STOPREOF, sobald die Bedingung erfüllt ist, den
Vorlaufstopp nach dem nächsten Bearbeitungssatz auf.

Hinweis
STOPREOF muss mit dem Schlüsselwort WHEN und satzweise (ohne ID-Nummer)
programmiert werden.

Beispiel
Schnelle Programmverzweigung am Satzende.

WHEN $AC_DTEB<5 DO STOPREOF ;Wenn die Entfernung zum Satzende 5 mm


;unterschreitet, Vorlaufstopp aufheben.
G01 X100 ;Nach Ausführung der Linearinterpolation,
;wird Vorlaufstopp aufgehoben.
IF $A_INA[7]>500 GOTOF MARKE1=X100 ;Wenn am Eingang 7 die Spannung von 5V
;überschritten wird, zu Label 1 springen.

10.4.5 Restweglöschen (DELDTG)

Funktion
In Abhängigkeit von einer Bedingung kann Restweglöschen für die Bahn und für die
angegebenen Achsen ausgelöst werden.
Zur Verfügung steht:
● Schnelles, vorbereitetes Restweglöschen
● Restweglöschen ohne Vorbereitung
Vorbereitetes Restweglöschen mit DELDTG erlaubt eine sehr schnelle Reaktion auf das
Auslöseereignis und wird daher bei zeitkritischen Anwendungen verwendet, z. B. wenn
● die Zeit zwischen Restweglöschen und Start des Folgesatzes sehr kurz sein soll.
● die Bedingung für das Restweglöschen mit sehr hoher Wahrscheinlichkeit erfüllt wird.

Hinweis
Die dem DELDTG in Klammer nachgestellte Achsbezeichnung ist nur für eine
Positionierachse gültig.

Arbeitsvorbereitung
10-28 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Programmierung
Restweglöschen für die Bahn
DO DELDTG
oder
axiales Restweglöschen
DO DELDTG(Achse1) DELDTG(Achse2) ...

Beispiel Schnelles Restweglöschen Bahn

WHEN $A_IN[1]==1 DO DELDTG


N100 G01 X100 Y100 F1000 ;wenn Eingang gesetzt ist, wird die Bewegung
;abgebrochen
N110 G01 X…
IF $AA_DELT>50…

Beispiel Schnelles axiales Restweglöschen

Abbruch einer Positionierbewegung:


ID=1 WHEN $A_IN[1]==1 DO MOV[V]=3 FA[V]=700 ;Achse starten
WHEN $A_IN[2]==1 DO DELDTG(V) ;Restweglöschen, Achse anhalten erfolgt mit MOV=0

Abhängig von Eingangsspannung den Restweg löschen:


WHEN $A_INA[5]>8000 DO DELDTG(X1)
;Sobald am Eingang 5 Spannung von 8V überschritten wird, Restweg von Achse X1
löschen. Bahnbewegung läuft weiter.
POS[X1]=100 FA[X1]=10 G1 Z100 F1000

Beschreibung
Am Ende des Bewegungssatzes, in dem vorbereitetes Restweglöschen ausgelöst wurde,
wird implizit Vorlaufstopp aktiviert.
Bahnsteuerbetrieb bzw. Positionierachsbewegungen werden damit am Ende des Satzes mit
schnellem Restweglöschen unterbrochen bzw. gestoppt.

Hinweis
Vorbereitetes Restweglöschen
• kann bei aktiver Werkzeugradiuskorrektur nicht eingesetzt werden.
• darf nur in satzweise wirksamen Synchronaktionen (ohne ID-Nummer) Aktion
programmiert werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-29
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.6 Polynomdefinition (FCTDEF)

Funktion
Mit FCTDEF können Polynome 3. Grades in der Form y=a0+a1x+a2x2+a3x3 definiert werden.
Diese Polynome werden von der Online-Werkzeugkorrektur FTOC und der Auswertefunktion
SYNFCT benutzt.

Programmierung
FCTDEF(Polynom-Nr.,LLIMIT,ULIMIT,a0,a1,a2,a3)

Parameter

Polynom-Nr. Nummer des Polynoms 3. Ordnung


LLIMIT untere Grenze für Funktionswert
ULIMIT obere Grenze für Funktionswert
a0, a1, a2, a3 Polynomkoeffizienten

Diese Werte sind auch über Systemvariable zugreifbar

$AC_FCTLL[n] Untergrenze für Funktionswert


$AC_FCTUL[n] Obergrenze für Funktionswert
$AC_FCT0[n] a0
$AC_FCT1[n] a1
$AC_FCT2[n] a2
$AC_FCT3[n] a3

Hinweis
Systemvariablen schreiben
• Die Systemvariablen können vom Teileprogramm oder aus einer Synchronaktion heraus
geschrieben werden. Beim Schreiben vom Teileprogramm aus muss durch
Programmierung von STOPRE für satzsynchrones Schreiben gesorgt werden.
• Die Systemvariablen $AC_FCTLL[n], $AC_FCTUL[n], $AC_FCT0[n] bis
$AC_FCTn[n] sind aus Synchronaktionen änderbar
Beim Schreiben aus Synchronaktionen sind die Polynomkoeffizienten und
Funktionswertgrenzen sofort wirksam.

Beispiel Polynom für Geradenabschnitt


Mit Obergrenze 1000, Untergrenze -1000, dem Ordinatenabschnitt a0=$AA_IM[X] und der
Geradensteigung 1 lautet die Polynomdefinition:
FCTDEF(1, -1000,1000,$AA_IM[X],1)

Arbeitsvorbereitung
10-30 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

I ;

2EHUJUHQ]H


D ;

8QWHUJUHQ]H


D


Beispiel Laserleistungssteuerung
Eine der möglichen Anwendungen von Polynomdefinition ist die Laserleistungssteuerung.
Laserleistungssteuerung heißt:
Beeinflussung eines Analogausgangs in Abhängigkeit z. B. der Bahngeschwindigkeit.

$&B)&78/ >@ 

6DW]HQGH
$&B)&782 >@ 

(; $&B)&7>@

6DW]DQIDQJ

$&B)&7// >@ 

$AC_FCTLL[1]=0.2 ;Definition der Polynomkoeffizienten


$AC_FCTUL[1]=0.5

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-31
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

$AC_FCT0[1]=0.35
$AC_FCT1[1]=1.5EX-5
STOPRE
ID=1 DO $AC_FCTUL[1]=$A_INA[2]*0.1 +0.35 ;Obergrenze online verändern.
ID=2 DO SYNFCT(1,$A_OUTA[1],$AC_VACTW)
;in Abhängigkeit von der Bahngeschwindigkeit (in $AC_VACTW hinterlegt) wird die
; Laserleistungssteuerung über den Analog-Ausgang 1 gesteuert

Hinweis
Die Benutzung des oben definierten Polynoms erfolgt mit SYNFCT.

10.4.7 Synchronfunktion (SYNFCT)

Funktion
SYNFCT berechnet den Ausgangswert eines Polynoms 3. Grades gewichtet mit der
Eingangs-Variablen. Das Ergebnis steht in der Ausgangs-Variablen und wird nach oben und
unten begrenzt.
Die Auswertefunktion findet Anwendung
● bei AC-Regelung (Adaptive Control),
● bei Laserleistungssteuerung,
● bei Positionsaufschaltung.

Programmierung
SYNFCT(Polynom-Nr., Hauptlaufvariable-Ausgang, Hauptlaufvariable-
Eingang)

Parameter
Als Ausgangs-Variable können Variable gewählt werden, die
● mit additiver Beeinflussung
● mit multiplikativer Beeinflussung
● als Positionsoffset
● direkt
in den Bearbeitungsvorgang eingehen.

DO SYNFCT Aktivierung der Auswertefunktion


Polynom-Nr. Mit FCTDEF definiertes Polynom (siehe
Unterkapitel "Polynomdefinition")
Hauptlaufvariable-Ausgang Hauptlaufvariable schreiben
Hauptlaufvariable-Eingang Hauptlaufvariable lesen

Arbeitsvorbereitung
10-32 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel AC-Regelung (additiv)


Additive Beeinflussung des programmierten Vorschubs
Ein programmierter Vorschub soll additiv über den Strom der X-Achse (Zustellachse)
geregelt werden:
Der Vorschub soll um +/- 100 mm/min variieren, wobei der Strom um +/-1A um den
Arbeitspunkt bei 5A schwankt.

)
PPPLQ
>@

2EHUJUHQ]H


   ,
>@
$

8QWHUJUHQ]H


1. Polynomdefinition
Bestimmung der Koeffizienten
y = f(x) = a0 + a1x + a2x2 + a3x3
a1 = -100mm/1 min A
a0 = -(-100)*5 =500
a2 = a3 = 0 (kein quadratisches und kubisches Glied)
Obergrenze = 100
Untergrenze = -100
Daraus folgt:
FCTDEF(1,-100,100,500,-100,0,0)
2. AC-Regelung einschalten
ID=1 DO SYNFCT(1,$AC_VC,$AA_LOAD[x])
;Über $AA_LOAD[x] aktuelle Achslast (% max. Antriebsstrom) lesen,
;mit oben definiertem Polynom Bahnvorschubkorrektur berechnen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-33
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel AC-Regelung (multiplikativ)


Programmierten Vorschub multiplikativ beeinflussen
Der programmierter Vorschub soll multiplikativ beeinflusst werden, wobei der Vorschub –
abhängig von der Belastung des Antriebes –bestimmte Grenzen nicht überschreiten soll:
● Bei Antriebslast von 80% soll der Vorschub stoppen: Override = 0.
● Bei Antriebslast von 30% darf mit programmiertem Vorschub verfahren werden:
Override = 100%.
Vorschubgeschwindigkeit darf um maximal 20% überschritten werden:
Max. Override = 120%.

295
>@




2EHUJUHQ]H 


8QWHUJUHQ]H
  /RDG
>@


1. Polynomdefinition
Bestimmung der Koeffizienten
y = f(x) = a0 + a1x + a2x2 + a3x3
a1 = -100%/(80-30)% = -2
a0 = 100 + (2*30) = 160
a2 = a3 = 0 (kein quadratisches und kubisches Glied)
Obergrenze = 120
Untergrenze = 0
Daraus folgt:
FCTDEF(2,0,120,160,-2,0,0)
2. AC-Regelung einschalten
ID=1 DO SYNFCT(2,$AC_OVR,$AA_LOAD[x])
;Über $AA_LOAD[x] aktuelle Achslast (% max. Antriebsstrom) lesen,
;mit oben definiertem Polynom Vorschuboverride berechnen

Arbeitsvorbereitung
10-34 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.8 Abstandsregelung mit begrenzter Korrektur $AA_OFF_MODE

Funktion
Die integrierende Berechnung der Abstandswerte erfolgt mit Grenzbereichsprüfung
$AA_OFF_MODE = 1

= HLQGLPHQVLRQDOH$EVWDQGVUHJHOXQJ

$EVWDQG
6HQVRU
]%%OHFK

PP

;
¾EHUODJHUWH*HVFKZLQGLJNHLW

2EHUJUHQ]H

PPLQ
9 9

9

8QWHUJUHQ]H

Achtung
Die Kreisverstärkung des überlagerten Regelkreises ist abhängig von der Einstellung des
Ipo-Taktes.
Abhilfe: MD für Ipo-Takt lesen und einrechnen.

Hinweis
Begrenzung der Geschwindigkeit des überlagerten Interpolators durch MD 32020:
JOG_VELO bei Ipo-Takt 12 ms. Formel für Geschwindigkeit:
0.120mm m
/ mV = 0.6 /V
0.6ms min

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-35
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel
Unterprogramm:Abstandsregelung Ein

%_N_AON_SPF ;Unterprogramm für Abstandsregelung Ein


PROC AON
$AA_OFF_LIMIT[Z]=1 ;Grenzwert festlegen
FCTDEF(1, -10, +10, 0, 0.6, 0.12) ;Polynomdefinition
ID=1 DO SYNFCT(1,$AA_OFF[Z],$A_INA[3]) ;Abstandsregelung aktiv
ID=2 WHENEVER $AA_OFF_LIMIT[Z]<>0 ;Bei Überschreitung des Grenzbereiches
DO $AA_OVR[X] = 0 ;Achse X sperren
RET
ENDPROC

Unterprogramm:Abstandsregelung Aus

%_N_AOFF_SPF
PROC AOFF ;Unterprogramm für Abstandsregel. Aus
CANCEL(1) ;Synchronaktion Abstandsregel. löschen
CANCEL(2) ;Grenzbereichsprüfung löschen
RET
ENDPROC

Hauptprogramm

%_N_MAIN_MPF
AON ;Abstandsregelung Ein
...
G1 X100 F1000
AOFF ;Abstandsregelung Aus
M30

Positionsoffset im Basiskoordinatensystem
Mit der Systemvariable $AA_OFF[Achse] kann jeder Achse im Kanal eine Bewegung
überlagert werden. Sie wirkt als Positionsoffset im Basiskoordinatensystem.
Der so programmierte Positionsoffset wird der entsprechenden Achse sofort überlagert,
unabhängig davon, ob die Achse programmiert verfahren wird oder nicht.
Hauptlaufvariable-Ausgang begrenzen:
Es ist möglich, den absolut zu korrigierenden Wert (Hauptlaufvariable-Ausgang) auf den im
Settingdatum
SD 43350: AA_OFF_LIMIT hinterlegten Wert zu begrenzen.

Arbeitsvorbereitung
10-36 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Über das Maschinendatum MD 36750: AA_OFF_MODE wird die Art der Überlagerung des
Abstandes festgelegt:
0: proportionale Bewertung
1: integrierende Bewertung
Mit der Systemvariable $AA_OFF_LIMIT[Achse] kann richtungsabhängig abgefragt
werden, ob sich der Korrekturwert im Grenzbereich befindet. Diese Systemvariable kann aus
Synchronaktionen abgefragt werden und beim Erreichen eines Grenzwertes, z. B. die Achse
stoppen oder Alarm setzen.
0: Korrekturwert nicht im Grenzbereich
1: Limit des Korrekturwertes in positiver Richtung erreicht
-1: Limit des Korrekturwertes in negativer Richtung erreicht

10.4.9 Online-Werkzeugkorrektur (FTOC)

Funktion
FTOC ermöglicht eine überlagerte Bewegung für eine Geometrieachse nach einem mit
FCTDEF programmierten Polynom in Abhängigkeit von einem Bezugswert, der z. B. der
Istwert einer Achse sein kann.
Der Koeffizient a0 der Funktionsdefinition FCTDEF( ) wird bei FTOC ausgewertet.
Ober- und Untergrenze sind abhängig von a0.
Damit können Sie auch modale Online-Werkzeugkorrekturen oder Abstandsregelungen als
Synchronaktionen programmieren.
Diese Funktion findet Anwendung bei der Bearbeitung des Werkstücks und Abrichten der
Schleifscheibe im gleichen Kanal oder in unterschiedlichen Kanälen (Bearbeitungs- und
Abrichtkanal).
Die Randbedingungen und Festlegungen zum Abrichten von Schleifscheiben gelten für
FTOC analog zur Online-Werkzeugkorrektur mit PUTFTOCF. Informationen hierzu finden
Sie in Kapitel "Werkzeugkorrekturen".

Programmierung
FTOC(Polynom-Nr., EV, Länge1_2_3 oder Radius4, Kanal, Spindel)

Parameter

DO FTOC Online-Werkzeugkorrekturen ausführen


Polynom-Nr. Mit FCTDEF definiertes Polynom, siehe Abschnitt
"Polynomdefinition" in diesem Kapitel.
EV Hauptlaufvariable, zu der ein Funktionswert über
angegebenes Polynom berechnet werden soll.
Länge1_2_3 Längenkorrektur ($TC_DP1 bis 3) bzw. Radiuskorrektur, zu
Radius4 dem der berechnete Funktionswert addiert wird.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-37
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Kanal Nummer des Kanals, in dem die Korrektur wirksam wird. Für
eine Korrektur im aktiven Kanal erfolgt hier keine Angabe.
Im Zielkanal muss FTOCON eingeschaltet sein.
Spindel Nur anzugeben, falls nicht die aktive Spindel korrigiert
werden soll.

Beispiel
Im Beispiel soll die Länge der aktiven, im Eingriff befindlichen Schleifscheibe korrigiert
werden.

$EULFKWUROOH

$EULFKWEHWUDJ
6FKOHLIVFKHLEH

]XNRUULJLHUHQGH
/¦QJH
:HUNVW¾FN

%_N_ABRICHT_MPF
FCTDEF(1,-1000,1000,-$AA_IW[V],1) ;Funktion definieren.
ID=1 DO FTOC(1,$AA_IW[V],3,1) ;Online-Werkzeugkorrektur anwählen:
;Istwert der V-Achse ist Eingangswert
;für Polynom 1; Ergebnis wird im Kanal 1
;als Korrekturwert zur Länge 3 der
;aktiven Schleifscheibe addiert.
WAITM(1,1,2) ;Synchronisation mit Bearbeitungskanal
G1 V-0.05 F0.01 G91 ;Zustellbewegung zum Abrichten
G1 V-0.05 F0.02
...
CANCEL(1) ;Online-Korrektur abwählen
...

Arbeitsvorbereitung
10-38 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.10 Online-Werkzeuglängenkorrektur ($AA_TOFF[Werkzeugrichtung])

Funktion
Über die Systemvariable $AA_TOFF[ ] können die effektiven Werkzeuglängen entsprechend
der drei Werkzeugrichtungen dreidimensional in Echtzeit überlagert werden.
Als Index werden die drei Geometrieachsbezeichner verwendet. Damit ist die Anzahl der
aktiven Korrekturrichtungen durch die zur selben Zeit aktiven Geometrieachsen festgelegt.
Alle Korrekturen können gleichzeitig aktiv sein.

Programmierung
N.. TRAORI
N.. TOFFON(X, 25)
N.. WHEN TRUE DO $AA_TOFF[X]
N.. TOFFON(Y, 25)
N.. WHEN TRUE DO $AA_TOFF[Y]
N.. TOFFON(Z, 25)
N.. WHEN TRUE DO $AA_TOFF[Z]

Parameter

TOFFON Tool Offset ON (Online-Werkzeuglängenkorrektur aktivieren)


Bei der Aktivierung kann für die entsprechende
Korrekturrichtung ein Offsetwert angegeben werden, der sofort
herausgefahren wird.
TOFFOF Tool Offset OF (Online-Werkzeuglängenkorrektur rücksetzen)
Die entsprechenden Korrekturwerte werden zurückgesetzt und es
wird ein Vorlaufstopp ausgelöst.
X, Y, Z, Korrekturrichtung für den angegebenen Offsetwert bei TOFFON
$AA_TOFF[X]=Wert Überlagerung in X-Richtung
$AA_TOFF[Y]=Wert Überlagerung in Y-Richtung
$AA_TOFF[Z]=Wert Überlagerung in Z-Richtung

Beispiel Anwahl der Werkzeuglängenkorrektur

N10 TRAORI(1) ;Transformation ein


N20 TOFFON(Z) ;Aktivierung der Online-WZL-Korrektur
;für die Z-Werkzeugrichtung
N30 WHEN TRUE DO $AA_TOFF[Z] = 10 ;für die Z-Werkzeugrichtung wird eine
G4 F5 ;WZL-Korrektur von 10 interpoliert
N40 TOFFON(X) ;Aktivierung der Online-WZL-Korrektur
;für die X-Werkzeugrichtung
N50 ID=1 DO $AA_TOFF[X] = $AA_IW[X2] ;für die X-Werkzeugrichtung wird eine
G4 F5 ;Korrektur abhängig von der Position der
;Achse X2 ausgeführt

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-39
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

...
N100 XOFFSET = $AA_TOFF_VAL[X] ;aktuelle Korrektur in X-Richtung zuweisen
N120 TOFFON(X, -XOFFSET) ;für die X-Werkzeugrichtung wird die
G4 F5 ;WZL-Korrektur wieder zu 0 zurückgefahren

Beispiel Abwahl der Werkzeuglängenkorrektur

N10 TRAORI(1) ;Transformation ein


N20 TOFFON(X) ;Aktivierung der Z-Werkzeugrichtung
N30 WHEN TRUE DO $AA_TOFF[X] = 10 ;für die X-Werkzeugrichtung wird eine
G4 F5 ;WZL-Korrektur von 10 interpoliert
...
N80 TOFFOF(X) ;Positionsoffset der X-Werkzeugrichtung
;wird gelöscht: ...$AA_TOFF[X] = 0
;Es wird keine Achse verfahren
;zur aktuellen Position im WKS wird der
;Positionsoffset entsprechend der aktuellen
;Orientierung hinzugerechnet

10.4.11 Positionierbewegungen

Funktion
Achsen können vollkommen asynchron zum Teileprogramm aus Synchronaktionen heraus
positioniert werden. Die Programmierung von Positionierachsen aus Synchronaktionen
empfiehlt sich für zyklische Abläufe oder Vorgänge, die stark ereignisgesteuert sind. Aus
Synchronaktionen heraus programmierte Achsen heißen Kommandoachsen.

Programmierung
Literatur:
/PG/ Programmierhandbuch Grundlagen; Kapitel "Wegangaben"
/FBSY/ Funktionsbeschreibung Synchronaktionen; "Starten von Kommandoachsen"

Parameter
Das Maßsystem für Positionieraufgaben in Synchronaktionen wird mit den G-Codes
G70/G71/G700/G710 festgelegt.
Durch Programmieren von G-Funktionen in der Synchronaktion kann die INCH/METRIC-
Bewertung für die Synchronaktion unabhängig vom Teileprogrammkontext festgelegt
werden.

Arbeitsvorbereitung
10-40 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.12 Achse positionieren (POS)

Funktion
Die Positionierachsbewegung hat im Gegensatz zur Programmierung aus dem
Teileprogramm keinen Einfluss auf die Abarbeitung des Teileprogramms.

Programmierung
POS[Achse] = Wert

Parameter

DO POS Kommandoachse starten/positionieren


Achse Name der Achse, die verfahren werden soll
Wert Angabe des zu verfahrenden Wertes (je
nach Verfahrmodus)

Beispiel

ID=1 EVERY $AA_IM[B]>75 DO POS[U]=100


;Achse U abhängig vom Verfahrmodus inkrementell um 100 (inch/mm) bzw.
;auf Position 100 (inch/mm) vom Steuerungsnullpunkt verfahren.
ID=1 EVERY $AA_IM[B]>75 DO POS[U]=$AA_MW[V]-$AA_IM[W]+13.5
;Achse U um aus Hauptlaufvariablen berechneten Weg verfahren.

Beispiel
Programmumgebung beeinflusst Positionierweg der Positionierachse
(keine G-Funktion im Aktionsteil der Synchronaktion

N100 R1=0
N110 G0 X0 Z0
N120 WAITP(X)
N130 ID=1 WHENEVER $R==1 DO POS[X]=10
N140 R1=1
N150 G71 Z10 F10 ;Z=10 mm X=10 mm
N160 G70 Z10 F10 ;Z=254 mm X=254 mm
N170 G71 Z10 F10 ;Z=10 mm X=10 mm
N180 M30

G71 im Aktionsteil der Synchronaktion bestimmt den Positionierweg der Positionierachse


eindeutig (metrisch), unabhängig von der Programmumgebung.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-41
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

N100 R1=0

N110 G0 X0 Z0
N120 WAITP(X)
N130 ID=1 WHENEVER $R==1 DO G71 POS[X]=10
N140 R1=1
N150 G71 Z10 F10 ;Z=10 mm X=10 mm
N160 G70 Z10 F10 ;Z=254 mm X=10 mm (X positioniert
;immer auf 10 mm)
N170 G71 Z10 F10 ;Z=10 mm X=10 mm
N180 M30

Soll die Achsbewegung nicht mit Satzanfang gestartet werden, kann der Override für die
Achse aus einer Synchronaktion bis zum gewünschten Startzeitpunkt auf 0 gehalten werden.

WHENEVER $A_IN[1]==0 DO $AA_OVR[W]=0


G01 X10 Y25 F750 POS[W]=1500
FA=1000
;Die Positionierachse wird so lange angehalten, solange der digitaler
Eingang 1 =0

10.4.13 Position im vorgegebenen Referenzbereich (POSRANGE)

Funktion
Mit der Funktion POSRANGE( ) kann ermittelt werden, ob sich die aktuelle interpolierte
Sollposition einer Achse, in einem Fenster um eine vorgegebene Referenzposition befindet.
Die Positionsangaben können sich auf vorgebbare Koordinatensysteme beziehen.
Bei Abfrage der Achs-Istposition einer Modoluachse wird die Modulo-Korrektur
berücksichtigt.

Hinweis
Die Funktion kann nur aus der Synchronaktion aufgerufen werden. Beim Aufruf aus dem
Teileprogramm erfolgt der Alarm 14091 %1 Satz %2 Funktion nicht zulässig, Index: %3 mit
dem Index 5 aufgerufen.

Programmierung
BOOL POSRANGE(Achse, Refpos, Winlimit,[Coord])

Arbeitsvorbereitung
10-42 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Parameter:

BOOL POSRANGE Aktuelle Position der Kommandoachse ist im Fenster der


vorgegebenen Referenzposition.
AXIS <Achse> Achsbezeichner der Maschinen-, Kanal oder Geometrie-Achse
REAL Refpos Referenzposition im Coord -Koordinatensystem
REAL Winlimit Betrag, der die Grenze für das Positionsfenster ergibt
INT Coord Optional ist das MKS aktiv. Möglich sind:
0 für MKS (Maschinenkoordinatensystem)
1 für BKS (Basiskoordinatensystem)
2 für ENS (Einstellbares Nullpunktsystem)
3 für WKS (Werkstückkoordinatensystem)

Funktionswert
Aktuelle Sollposition je nach Positionsangabe im vorgegebenen Koordinatensystem

Funktionswert: TRUE wenn Refpos(Coord)


- abs(Winlimit)
≤ Actpos(Coord)
≤ Refpos(Coord) + abs(Winlimit)
Funktionswert: FALSE sonst

10.4.14 Achse starten/stoppen (MOV)

Funktion
Mit MOV[Achse]=Wert kann eine Kommandoachse ohne Angabe einer Endposition gestartet
werden. Die jeweilige Achse wird in die programmierte Richtung verfahren, bis durch einen
neuen Bewegungs- oder Positionierbefehl eine andere Bewegung vorgegeben wird oder die
Achse mit einem Stoppbefehl angehalten wird.

Programmierung
MOV[Achse] = Wert

Parameter

DO MOV Kommandoachsbewegung starten


Achse Name der Achse, die gestartet werden soll
Wert Startbefehl für Verfahr-/Stoppbewegung
Das Vorzeichen bestimmt die Bewegungsrichtung
Datentyp des Wertes ist INTEGER.
Wert >0 (üblicherweise +1) positive Richtung
Wert <0 (üblicherweise -1) negative Richtung
Wert ==0 Achsbewegung stoppen

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-43
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Hinweis
Wird eine Teilungsachse mit MOV[Achse] = 0 gestoppt, wird die Achse an nächster
Teilungsposition angehalten.

Beispiel

... DO MOV[U]=0 ;Achse U wird gestoppt

10.4.15 Achstausch (RELEASE, GET)

Funktion
Für einen Werkzeugwechsel können die betreffenden Kommandoachsen als Aktion einer
Synchronaktion mit GET(Achse) angefordert werden. Der diesem Kanal zugeordnete
Achstyp und das damit zu diesem Zeitpunkt verbundene Interpolationsrecht kann über die
Systemvariable $AA_AXCHANGE_TYP abgefragt werden. Abhängig vom eigentlichen
Zustand und vom Kanal der das aktuelle Interpolationsrecht dieser Achse besitzt, sind
unterschiedliche Abläufe möglich.
Ist der Werkzeugwechsel vollzogen, dann kann diese Kommandoachse als Aktion einer
Synchronaktion mit RELEASE(Achse) für den Kanal freigegeben werden.
Maschinenhersteller
Die betreffende Achse muss dem Kanal über Maschinendaten zugeordnet sein. Bitte
beachten Sie die Angaben des Maschinenherstellers

Programmierung
GET(Achse[,Achse{,...}]) Achse anfordern
RELAESE(Achse[,Achse{,...}]) Achse freigeben

Parameter

DO RELEASE Achse als neutrale Achs freigeben


DO GET Achse für Achstausch holen
Achse Name der Achse, die gestartet werden soll

Arbeitsvorbereitung
10-44 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel Programmablauf für einen Achstausch zweier Kanäle


Die Achse Z ist im [Link] und im 2. Kanal bekannt.
Programmablauf im 1. Kanal:

WHEN TRUE DO RELEASE(Z) ;Z-Achse wird zur neutralen Achse


WHENEVER($AA_TYP[Z]==1) DO ;Einlesesperre solange Z-Achse Programmachse
RDISABLE
N110 G4 F0.1
WHEN TRUE DO GET(Z) ;Z-Achse wird wieder NC-Programm-Achse
WHENEVER($AA_TYP[Z]<>1) DO ;Einlesesperre bis Z-Achse Programmachse ist
RDISABLE
N120 G4 F0.1
WHEN TRUE DO RELEASE(Z) ;Z-Achse wird zur neutralen Achse
WHENEVER($AA_TYP[Z]==1) DO ;Einlesesperre solange Z-Achse Programmachse
RDISABLE
N130 G4 F0.1
N140 START(2) ;den 2. Kanal starten

Programmablauf im 2. Kanal:

WHEN TRUE DO GET(Z) ;Z-Achse in den 2. Kanal holen


WHENEVER($AA_TYP[Z]==0) DO ;Einlesesperre solange Z-Achse in anderem
RDISABLE ;Kanal
N210 G4 F0.1
WHEN TRUE DO GET(Z) ;Z-Achse wird NC-Programm-Achse
WHENEVER($AA_TYP[Z]<>1) DO ;Einlesesperre bis Z-Achse Programmachse ist
RDISABLE
N220 G4 F0.1
WHEN TRUE DO RELEASE(Z) ;Z-Achse im 2. Kanal neutrale Achse
WHENEVER($AA_TYP[Z]==1) DO ;Einlesesperre solange Z-Achse Programmachse
RDISABLE
N230 G4 F0.1
N250 WAITM(10, 1, 2) ;mit Kanal 1 synchronisieren

Weiter Programmablauf im 1. Kanal:

N150 WAIM(10, 1, 2) ;mit Kanal 2 synchronisieren


WHEN TRUE DO GET(Z) ;Z-Achse in diesen Kanal holen
WHENEVER($AA_TYP[Z]==0) DO ;Einlesesperre solange Z-Achse in anderem
RDISABLE ;Kanal
N160 G4 F0.1
N199 WAITE(2) ;warte auf Programmende im Kanal 2
N999 M30

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-45
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel Achstausch im Technologiezyklus


Die Achse U ($MA_AUTO_GET_TYPE=2) ist im [Link] und im 2. Kanal bekannt und aktuell
hat der Kanal 1 das Interpolationsrecht. Im Kanal 2 wird folgender Technologiezyklus
gestartet:

GET(U) ;U-Achse in Kanal holen


POS[U]=100 ;U-Achse soll auf Position 100 verfahren
;werden

Die Zeile der Kommandoachsbewegung POS[U] wird erst ausgeführt, wenn die U-Achse in
den Kanal 2 geholt wurde.

Ablauf
Die zum Aktivierungszeitpunkt der Aktion GET(Achse) angeforderte Achse kann bezüglich
des Achstyps für einen Achstausch mit der Systemvariable
($AA_AXCHANGE_TYP[<Achse>] gelesen werden:
● 0: Achse dem NC-Programm zugeordnet
● 1: Achse der PLC zugeordnet oder als Kommandoachse oder Pendelachse aktiv
● 2: ein anderer Kanal hat Interpolationsrecht
● 3: Achse ist neutrale Achse
● 4: neutrale Achse ist vom PLC kontrolliert
● 5: ein anderer Kanal hat Interpolationsrecht, Achse ist angefordert für das NC-Programm
● 6: ein anderer Kanal hat Interpolationsrecht, Achse ist angefordert als neutrale Achse
● 7: Achse der PLC oder als Kommandoachse oder Pendelachse aktiv, Achse ist
angefordert für das NC-Programm
● 8: Achse der PLC oder als Kommandoachse oder Pendelachse aktiv, Achse ist
angefordert als neutrale Achse
Randbedingungen
Die betreffende Achse muss dem Kanal über Maschinendaten zugeordnet sein.
Eine ausschließlich von der PLC kontrollierte Achse kann nicht dem NC–Programm
zugeordnet werden.
Literatur:
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Positionierachsen (P2)

Achse aus einem anderen Kanal mit der Aktion GET anfordern
Hat zum Aktivierungszeitpunkt der Aktion GET ein anderer Kanal das Schreibrecht
(Interpolationsrecht) für die Achse ($AA_AXCHANGE_TYP[<Achse>] == 2), so wird die
Achse mittels Achstausch von diesem Kanal angefordert
($AA_AXCHANGE_TYP[<Achse>]==6) und sobald als möglich dem anfordernden Kanal
zugeordnet.
Sie nimmt dann den Zustand neutrale Achse an ($AA_AXCHANGE_TYP[<Achse>]==3).
Ein Reorganisieren im anfordernden Kanal findet nicht statt.

Arbeitsvorbereitung
10-46 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Zuordnung als NC-Programm Achse mit Reorganisieren:


Wurde die Achse bereits zum Aktivierungszeitpunkt der Aktion GET als neutrale Achse
angefordert ($AA_AXCHANGE_TYP[<Achse>]==6), so wird die Achse für das NC–
Programm angefordert ($AA_AXCHANGE_TYP[<Achse>]==5) und sobald als möglich dem
NC–Programm des Kanals zugeordnet ($AA_AXCHANGE_TYP[<Achse>]==0).

Achse bereits dem angeforderten Kanal zugeordnet


Zuordnung als NC-Programm Achse mit Reorganisieren:
Ist die angeforderte Achse zum Aktivierungszeitpunkt bereits dem anfordernden Kanal
zugeordnet, und im Zustand neutrale Achse – nicht von der PLC kontrolliert –
($AA_AXCHANGE_TYP[<Achse>]==3), so wird sie dem NC–Programm zugeordnet
($AA_AXCHANGE_TYP[<Achse>]==0).

Achse im Zustand als neutrale Achse ist vom PLC kontrolliert


Ist die Achse im Zustand neutrale Achse von PLC kontrolliert
($AA_AXCHANGE_TYP[<Achse>]==4), so wird die Achse als neutrale Achse angefordert
($AA_AXCHANGE_TYP[<Achse>] == 8), dabei wird die Achse abhängig vom Bit 0 im
Maschinendatum MD 10722: AXCHANGE_MASK für einen automatischen Achstausch
zwischen Kanälen gesperrt (Bit 0 == 0). Dies entspricht ($AA_AXCHANGE_STAT[<Achse>]
== 1).

Achse ist als neutrale Kommandoachse bzw. Pendelachse aktiv oder der PLC zugeordnet
Ist die Achse als Kommandoachse bzw. Pendelachse aktiv oder der PLC zum Verfahren
zugeordnet, PLC–Achse == konkurrierende Positionierachse,
($AA_AXCHANGE_TYP[<Achse>]==1),so wird die Achse als neutrale Achse angefordert
($AA_AXCHANGE_TYP[<Achse>] == 8), dabei wird die Achse abhängig vom Bit 0 im
Maschinendatum MD 10722: AXCHANGE_MASK für einen automatischen Achstausch
zwischen Kanälen gesperrt (Bit 0 == 0). Dies entspricht ($AA_AXCHANGE_STAT[<Achse>]
==1).
Eine erneute GET–Aktion fordert die Achse dann für das NC–Programm an
($AA_AXCHANGE_TYP[<Achse>] wird == 7).

Achse ist bereits dem NC-Programm zugeordnet


Ist die Achse bereits dem NC–Programm des Kanals zugeordnet
($AA_AXCHANGE_TYP[<Achse>]==0) oder ist diese Zuordnung angefordert, z.B.
Achstausch vom NC–Programm ausgelöst ($AA_AXCHANGE_TYP[<Achse>]==5 bzw.
$AA_AXCHANGE_TYP[<Achse>] == 7), so ergibt sich keine Zustandsänderung.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-47
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.16 Axialer Vorschub (FA)

Funktion
Der axiale Vorschub für Kommandoachsen ist modal wirksam.

Programmierung
FA[Achse]=Vorschub

Beispiel

ID=1 EVERY $AA_IM[B]>75 DO POS[U]=100 FA[U]=990


;Vorschubwert fest vorgeben
ID=1 EVERY $AA_IM[B]>75 DO POS[U]=100 FA[U]=$AA_VACTM[W]+100
;Vorschubwert aus Hauptlaufvariablen bilden

10.4.17 SW-Endschalter

Funktion
Die mit G25/G26 programmierte Arbeitsfeldbegrenzung wird in Abhängigkeit vom
Settingdatum $SA_WORKAREA_PLUS_ENABLE für die Kommandoachsen berücksichtigt.
Ein- und Ausschalten der Arbeitsfeldbegrenzung über die G-Funktionen
WALIMON/WALIMOF im Teileprogramm wirkt nicht auf Kommandoachsen.

10.4.18 Achskoordinierung

Funktion
Typischerweise wird eine Achse entweder aus dem Teileprogramm oder als
Positionierachse aus der Synchronaktion bewegt.
Soll dieselbe Achse jedoch wechselweise aus dem Teileprogramm als Bahn- oder
Positionierachse und aus Synchronaktionen verfahren werden, so erfolgt eine koordinierte
Übergabe zwischen beiden Achsbewegungen.
Wird eine Kommandoachse anschließend aus dem Teileprogramm verfahren, so erfordert
dies eine Reorganisation der Vorverarbeitung. Dies wiederum bedingt eine Unterbrechung
der Teileprogrammbearbeitung, vergleichbar einem Vorlaufstopp.

Arbeitsvorbereitung
10-48 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel X-Achse wahlweise aus Teileprogramm und Synchronaktionen fahren

N10 G01 X100 Y200 F1000 ;X-Achse im Teileprogramm programmiert



N20 ID=1 WHEN $A_IN[1]==1 DO ;Positionieren aus Synchronaktion starten,
POS[X]=150 FA[X]=200 wenn ;digitaler Eingang ansteht


CANCEL(1) ;Synchronaktion abwählen

N100 G01 X240 Y200 F1000
;X wird Bahnachse; vor Bewegung tritt Wartezeit aufgrund von Achsübergabe auf,
;falls digitaler Eingang 1 war und X aus Synchronaktion positioniert wurde.

Beispiel Verfahrbefehl für dieselbe Achse verändern

ID=1 EVERY $A_IN[1]>=1 DO POS[V]=100 FA[V]=560


;Positionieren aus Synchronaktion starten, wenn digitaler Eingang >= 1
ID=2 EVERY $A_IN[2]>=1 DO POS[V]=$AA_IM[V] FA[V]=790
;Achse läuft nach, der 2. Eingang wird gesetzt, d. h. Endposition und Vorschub
;für die Achse V wird bei zwei gleichzeitig aktiven Synchronaktionen fließend
;bei laufender Bewegung nachgeführt.

10.4.19 Istwertsetzen (PRESETON)

Funktion
Bei der Ausführung von PRESETON (Achse,Wert) wird die aktuelle Achsposition nicht
verändert, es wird ihr ein neuer Wert zugewiesen.
PRESETON aus Synchronaktionen ist möglich für:
● Modulo-Rundachsen, die aus dem Teileprogramm gestartet wurden
● alle Kommandoachsen, die aus der Synchronaktion gestartet wurden

Programmierung
DO PRESETON(Achse, Wert)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-49
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Parameter

DO PRESETON Istwertsetzen in Synchronaktionen


Achse Achse, deren Steuerungsnullpunkt verändert
werden soll
Wert Wert, um den der Steuerungsnullpunkt verändert
wird

Einschränkungen für Achsen


PRESETON ist nicht möglich für Achsen, die an der Transformation beteiligt sind.
Ein- und dieselbe Achse kann nur zeitlich versetzt aus dem Teileprogramm oder einer
Synchronaktion heraus bewegt werden, daher können bei der Programmierung einer Achse
aus dem Teileprogramm Wartezeiten auftreten, falls diese Achse vorher in einer
Synchronaktion programmiert war.
Wird die gleiche Achse wechselweise benutzt, so erfolgt eine koordinierte Übergabe
zwischen beiden Achsbewegungen. Die Teileprogrammbearbeitung muss dazu
unterbrochen werden.

Beispiel
Steuerungsnullpunkt einer Achse verschieben

WHEN $AA_IM[a] >= 89.5 DO PRESETON(a4,10.5)


;Steuerungsnullpunkt der Achse a um 10.5 Längeneinheiten (inch bzw. mm) in positive
;Achsrichtung verschieben

10.4.20 Spindelbewegungen

Funktion
Spindeln können vollkommen asynchron zum Teileprogramm aus Synchronaktionen heraus
positioniert werden. Diese Art der Programmierung empfiehlt sich für zyklische Abläufe oder
Vorgänge, die stark ereignisgesteuert sind.
Werden durch gleichzeitig aktive Synchronaktionen für eine Spindel konkurrierende Befehle
vorgegeben, gilt der zeitlich letzte Spindelbefehl.

Beispiel Spindel starten/stoppen/positionieren

ID=1 EVERY $A_IN[1]==1 DO M3 S1000 ;Drehrichtung und Drehzahl einstellen


ID=2 EVERY $A_IN[2]==1 DO SPOS=270 ;Spindel positionieren

Arbeitsvorbereitung
10-50 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel Drehrichtung, Drehzahl einstellen/ Spindel positionieren

ID=1 EVERY $A_IN[1]==1 DO M3 S300 ;Drehrichtung und Drehzahl einstellen


ID=2 EVERY $A_IN[2]==1 DO M4 S500 ;neue Drehrichtung und neue Drehzahl
;vorgeben
ID=3 EVERY $A_IN[3]==1 DO S1000 ;neue Drehzahl vorgeben
ID=4 EVERY ($A_IN[4]==1) AND ($A_IN[1]==0) ;Spindel positionieren
DO SPOS=0

10.4.21 Mitschleppen (TRAILON, TRAILOF)

Funktion
Beim Einschalten der Kopplung aus der Synchronaktion kann die Leitachse in Bewegung
sein. Die Folgeachse wird in diesem Fall auf die Sollgeschwindigkeit beschleunigt. Die
Position der Leitachse zum Synchronisationszeitpunkt der Geschwindigkeiten ist
Startposition für das Mitschleppen. Die Funktionalität des Mitschleppens wird im Kapitel
"Bahnfahrverhalten" beschrieben.

Programmierung

Mitschleppen einschalten
DO TRAILON(Folgeachse, Leitachse, Koppelfaktor)
Mitschleppen ausschalten
DO TRAILOF(Folgeachse, Leitachse, Leitachse 2)

Parameter

Asynchrones Mitschleppen aktivieren:


... DO TRAILON(FA, LA, Kf) mit:
FA: Folgeachse
LA: Leitachse
Kf: Koppelfaktor
Asynchrones Mitschleppen deaktivieren:
... DO TRAILOF(FA, LA, LA2) mit:
FA: Folgeachse
LA: Leitachse, optional
LA2: Leitachse 2, optional
... DO TRAILOF(FA)
Alle Kopplungen zur
Folgeachse werden
ausgeschaltet.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-51
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel

$A_IN[1]==0 DO TRAILON(Y,V,1) ;Einschalten des 1. Mitschleppverbandes, wenn der


;digitale Eingang 1 ist
$A_IN[2]==0 DO TRAILON(Z,W,-1) ;Einschalten des 2. Mitschleppverbandes
G0 Z10 ;Zustellung der Z- und W-Achse in entgegengesetzter
;Achsrichtung
G0 Y20 ;Zustellung der Y- und V-Achse in gleicher
;Achsrichtung
...
G1 Y22 V25 ;Überlagerung einer abhängigen und unabhängigen
;Bewegung der Mitschleppachse "V"
...
TRAILOF(Y,V) ;Ausschalten des 1. Mitschleppverbandes
TRAILOF(Z,W) ;Ausschalten des 2. Mitschleppverbandes

Beispiel Konfliktvermeidung mit TRAILOF


Um eine gekoppelte Achse wieder für den Zugriff als Kanalachse frei zu schalten, muss
vorher die Funktion TRAILOF aufgerufen werden. Es muss sichergestellt werden, dass
TRAILOF ausgeführt ist, bevor der Kanal die betreffende Achse anfordert. Dies ist im
folgenden Beispiel nicht der Fall

N50 WHEN TRUE DO TRAILOF(Y,X)
N60 Y100

In diesem Fall wird die Achse nicht rechtzeitig freigeben, da die satzweise wirksame
Synchronaktion mit TRAILOF synchron mit N60 aktiv wird, siehe Kapitel
Bewegungssynchronaktion, "Struktur, allgemeine Grundlagen.
Zur Vermeidung von Konfliktsituationen sollte in
folgender Weise verfahren werden

N50 WHEN TRUE DO TRAILOF(Y,X)
N55 WAITP(Y)
N60 Y100

Arbeitsvorbereitung
10-52 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.22 Leitwertkopplung (LEADON, LEADOF)

Funktion
Die axiale Leitwertkopplung ist ohne Einschränkung in Synchronaktionen programmierbar.
Das Ändern einer Kurventabelle bei bestehender Kopplung ohne einer vorherigen
Neusynchronisation ist optional nur in Synchronaktionen möglich.

Programmierung

Leitwertkopplung einschalten
DO LEADON(Folgeachse, Leitachse, Kurvtab. Nr., OVW)
Leitwertkopplung ausschalten
DO LEADOF(Folgeachse, Leitachse, Leitachse 2)

Parameter

Axiale Leitwertkopplung einschalten:


...DO LEADON(FA, LA, NR, OVW) mit:
FA: Folgeachse
LA: Leitachse
NR: Nummer der gespeicherten Kurventabelle
OVW: Überschreiben einer bestehenden Kopplung
mit geänderter Kurventabelle erlauben
Axiale Leitwertkopplung ausschalten:
...DO LEADOF(FA, LA) mit:
FA: Folgeachse
LA: Leitachse, optional

... DO LEADOF(FA)
verkürzte Form ohne Angabe der Leitachse

Zugriff per Synchronaktionen freischalten RELEASE


Um eine zu koppelnde Achse für den Zugriff per Synchronaktion frei zu schalten, muss
vorher die Funktion RELEASE für die zu koppelnde Folgeachse aufgerufen werden.
Beispiel:
RELEASE(XKAN)
ID=1 every SR1==1 to LEADON(CACH,XKAN,1)
OVW=0 (Defaultwert)
Einer bestehenden Kopplung kann ohne Neusynchronisation keine neue Kurventabelle
vorgegeben werden. Eine Änderung der Kurventabelle erfordert das vorige Ausschalten der
bestehenden Kopplung und ein erneutes Einschalten mit der geänderten
Kurventabellennummmer. Dies bewirkt eine Neusynchronisation der Kopplung.
Ändern der Kurventabelle bei bestehender Kopplung mit OVW=1
Mit OVW=1 kann einer bestehenden Kopplung eine neue Kurventabelle vorgegeben
werden. Es erfolgt keine Neusynchronisation. Die Folgeachse versucht schnellst möglich
dem durch die neue Kurventabelle vorgegebenen Positionswerte zu folgen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-53
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel Fliegendes Trennen


Ein Strangmaterial, das sich stetig durch einen Arbeitsbereich einer Trennvorrichtung
bewegt, soll in gleichlange Stücke zerteilt werden.
X-Achse: Achse in der sich das Strangmaterial bewegt. WKS
X1-Achse: Maschinenachse des Strangmaterials, MKS
Y-Achse: Achse, in der die Trennvorrichtung mit dem Strangmaterial "mitfährt"
Es wird angenommen, dass die Zustellung des Trennwerkzeuges und seine Steuerung
durch PLC kontrolliert werden. Zur Feststellung der Synchronität zwischen Strangmaterial
und Trennwerkzeug können die Signale der PLC-Nahtstelle ausgewertet werden.
Aktionen
Kopplung einschalten, LEADON
Kopplung ausschalten, LEADOF
Istwertsetzen, PRESETON

%_N_SCHERE1_MPF
;$PATH=/_N_WKS_DIR/_N_DEMOFBE_WPD
N100 R3=1500 ;Länge eines abzutrennenden Teiles
N200 R2=100000 R13=R2/300
N300 R4=100000
N400 R6=30 ;Startposition Y Achse
N500 R1=1 ;Startbedingung für Bandachse
N600 LEADOF(Y,X) ;löschen einer evtl. bestehenden Kopplung
N700 CTABDEF(Y,X,1,0) ;Tabellendefinition
N800 X=30 Y=30 ;Wertepaare
N900 X=R13 Y=R13
N1000 X=2*R13 Y=30
N1100 CTABEND ;Ende der Tabelledefinition
N1200 PRESETON(X1,0) ;PRESET zu Beginn
N1300 Y=R6 G0 ;Startposition Y Achse, Achse ist linear
N1400 ID=1 WHENEVER $AA_IW[X]>$R3 DO PESETON(X1,0)
;PRESET nach Länge R3, neuer Beginn nach Abtrennen
N1500 RELEASE(Y)
N1800 ID=6 EVERY $AA_IM[X]<10 DO LEADON(Y,X,1)
;Y über Tabelle 1 an X ankoppeln bei X
<10
N1900 ID=10 EVERY $AA_IM[X]>$R3-30 DO EADOF(Y,X)
;> 30 vor gefahrener Trennlänge abkoppeln
N2000 WAITP(X)
N2100 ID=7 WHEN $R1==1 DO MOV[X]=1 ;Strangachse stetig in Bewegung setzen
FA[X]=$R4
N2200 M30

Arbeitsvorbereitung
10-54 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.23 Messen (MEAWA, MEAC)

Funktion
Im Vergleich zur Verwendung in Bewegungssätzen des Teileprogramms kann die
Messfunktion aus Synchronaktionen beliebig ein- und ausgeschaltet werden.
Weitere Information zum Messen, siehe Spezielle Wegbefehle "Erweiterte Messfunktion

Programmierung
Axiales Messen ohne Restweglöschen
MEAWA[Achse] = (Modus, Triggerereignis_1, ..._4)
oder
Kontinuierliches Messen ohne Restweglöschen
MEAC[Achse] = (Modus, Messpeicher, Triggerereignis_1, ..._4))

Parameter

DO MEAWA Axiales Messen einschalten


DO MEAC Kontinuierliches Messen einschalten
Achse Name der Achse, für die gemessen wird
Modus Angabe der Zehnerdekade Angabe der Einerdekade
0: aktives Messsystem 0: Messauftrag abbrechen
Anzahl der Messsysteme bis zu 4 aktivierbare
(je nach Modus) Triggerereignisse
1: 1. Messsystem 1: gleichzeitig
2: 2. Messsystem 2: nacheinander
3: beide Messsysteme 3: wie 2 jedoch keine
Überwachung von
Triggerereignis1 beim
Start
Triggerereignis_1 bis _4 : steigende Flanke Messtaster 1
-1: fallende Flanke Messtaster 1 optional
2: steigende Flanke Messtaster 2 optinal
-2: fallende Flanke Messtaster 2 optinal
Messspeicher Nummer des FIFO-Umlaufspeichers

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-55
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.24 Initialisierung von Feld-Variablen mit SET, REP

Funktion
In Synchronaktionen können Feld-Variablen initialisiert oder mit bestimmten Werten
beschrieben werden.

Programmierung
DO FELD[n,m]=SET(Wert1, Wert2, ...)
oder
DO FELD[n,m]=REP(Wert)
Die Initialisierung beginnt bei den programmierten Feldindizes. Bei 2-dimensionalen Feldern
wird zuerst der 2. Index inkrementiert. Bei Achsindizes wird dieser nicht durchlaufen.

Wertzuweisungen von Feld-Variablen


Es sind nur Variable möglich, die in Synchronaktionen beschreibbar sind. Maschinendaten
lassen sich damit nicht initialisieren. Achsvariablen können nicht mit den Wert NO_AXIS
angegeben werden.

SET(Werteliste) Initialisierung mit Wertelisten


REP (Wert) Initialisierung mit gleichen Werten
Werteliste Mit der Anzahl der angegebenen Werte
Wert Mit den selben Wert bis zum Feldende

SET(Werteliste)
Das Feld wird von den programmierten Feldindizes an mit den Parametern von SET
beschrieben. Es werden so viele Feldelemente zugewiesen, wie Werte programmiert sind.
Werden mehr Werte programmiert als restliche Feldelemente vorhanden sind, so wird
dadurch System Alarm ausgelöst.
REP(Wert)
Das Feld wird von den programmierten Feldindizes an bis zum Feldende wiederholt mit dem
Parameter von REP beschrieben.

Beispiel

WHEN TRUE DO SYG_IS[0]=REP(0)


WHEN TRUE DO SYG_IS[1]=SET(3,4,5)
Ergebnis:
SYG_IS[0]=0
SYG_IS[1]=3
SYG_IS[2]=4
SYG_IS[3]=5
SYG_IS[4]=0

Arbeitsvorbereitung
10-56 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

10.4.25 Wartemarken setzen/löschen mit SETM, CLEARM

Funktion
In Synchronaktionen können Wartemarken gesetzt bzw. gelöscht werden, um z. B. Kanäle
untereinander zu koordinieren.

Programmierung
DO SETM(MarkerNummer)
oder
DO CLEARM(MarkerNummer)

Wartemarken für den Kanal setzen/löschen

SETM(MarkerNummer) Wartemarke setzen für den Kanal


CLEARM(MarkerNummer) Wartemarke löschen für den Kanal

SETM
Der Befehl SETM kann im Teileprogramm und im Aktionsteil einer Synchronaktion
geschrieben werden. Er setzt die Marke MarkerNummer für den Kanal, in dem der Befehl
läuft.
CLEARM
Der Befehl CLEARM kann im Teileprogramm und im Aktionsteil einer Synchronaktion
geschrieben werden. Er löscht die Marke (MarkerNummer) für den Kanal, in dem der Befehl
läuft.

10.4.26 Fehlerreaktionen bei Zyklenalarmen SETAL

Funktion
Fehlerreaktionen können mit Synchronaktionen programmiert werden, indem
Zustandsvariable abgefragt werden und entsprechende Aktionen ausgelöst werden.
Mögliche Reaktionen auf Fehlerzustände sind:
● Achse stoppen: Override=0
● Alarm setzen: Mit SETAL können Zyklen-Alarme aus Synchronaktionen gesetzt werden.
● Ausgang setzen
● sämtliche in Synchronaktionen mögliche Aktionen

Zyklenalarm setzen
DO SETAL(AlarmNummer)
Zyklenalarmbereich für den Anwender: 65000 bis 69999

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-57
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel

ID=67 WHENEVER ($AA_IM[X1]-$AA_IM[X2])<4.567 DO $AA_OVR[X2]=0


;Wenn Sicherheitsabstand zwischen Achsen X1 und X2 zu klein, Achse X2 anhalten.
ID=67 WHENEVER ($AA_IM[X1]-$AA_IM[X2])<4.567 DO SETAL(61000)
;Wenn Sicherheitsabstand zwischen Achsen X1 und X2 zu klein, Alarm setzen.

10.4.27 Fahren auf Festanschlag (FXS und FOCON/FOCOF)

Funktion
Die Befehle für Fahren auf Festanschlag werden mit den Teileprogrammbefehlen FXS,
FXST und FXSW in Synchronaktionen/Technologiezyklen programmiert.
Die Aktivierung kann ohne Bewegung erfolgen, das Moment wird sofort begrenzt. Sobald die
Achse sollwertseitig bewegt wird, wird auf Anschlag überwacht.
Fahren mit begrenztem Moment/Kraft (FOC):
Die Funktion gestattet es über Synchronaktionen zu jeder Zeit Moment/Kraft zu ändern und
kann modal oder satzbezogen aktiviert werden.

Parameter

FXS[Achse] Anwahl nur in Systemen mit digitalen Antrieben (VSA, HSA,


HLA)
FXST[Achse] Veränderung des Klemmoments FXST
FXSW[Achse] Veränderung des Überwachungsfensters FXSW
FOCON[Achse] Aktivierung der modal wirksamen Moment/Kraft - Begrenzung
FOCOF[Achse] Abschalten der Moment/Kraft - Begrenzung
FOCON/FOCOF Die Programmierung der Achse erfolgt in den eckigen
Klammern. Zulässig sind:
– Geometrieachs - Bezeichner
– Kanalachs - Bezeichner
– Maschinenachs - Bezeichner

Hinweis
Eine Anwahl darf nur einmal erfolgen.

Beispiel Fahren auf Festanschlag (FXS)


Ausgelöst durch eine Sychronaktion

Y-Achse: ;Statische Synchronaktionen


aktivieren:
N10 IDS=1 WHENEVER (($R1==1) AND ;Durch das Setzen von $R1=1 wird für die

Arbeitsvorbereitung
10-58 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

($AA_FXS[y]==0)) DO ;Achse Y FXS aktiviert, das wirksame


$R1=0 FXS[Y]=1 FXST[Y]=10 ;Moment auf 10% reduziert und eine
FA[Y]=200 POS[Y]=150 ;Fahrbewegung in Richtung des
;Anschlages gestartet
N11 IDS=2 WHENEVER ($AA_FXS[Y]==4) DO ;Sobald der Anschlag erkannt wurde
FXST[Y]=30 ;($AA_FXS[Y]==4), wird das Moment
;auf 30% heraufgesetzt
N12 IDS=3 WHENEVER ($AA_FXS[Y]==1) DO ;Nach Erreichen des Anschlags wird das
FXST[Y]=$R0 ;Moment abhängig von R0 gesteuert
N13 IDS=4 WHENEVER (($R3==1) AND ;Abwahl in Abhängigkeit
($AA_FXS[Y]==1)) DO ;von R3 und
FXS[Y]=0 ;zurückfahren
FA[Y]=1000 POS[Y]=0
N20 FXS[Y]=0 G0 G90 X0 Y0 ;normaler Programmablauf:
;Achse Y für die
N30 RELEASE(Y) ;Bewegung in Synchronaktion freigeben
N40 G1 F1000 X100 ;Bewegung einer anderen Achse
N50 ......
N60 GET(Y) ;Achse Y wieder in den Bahnverbund
;aufnehmen

Beispiel Aktivierung Momenten/Kraft-Begrenzung (FOC)

N10 FOCON[X] ;modale Aktivierung der Begrenzung


N20 X100 Y200 FXST[X]=15 ;X fährt mit reduziertem Moment (15%)
N30 FXST[X]=75 X20 ;Änderung des Moment auf 75%, X fährt
;mit diesem begrenzten Moment
N40 FOCOF[X] ;Abschalten der Momentenbegrenzung

Mehrfache Anwahl
Wird durch eine fehlerhafte Programmierung die Funktion nach der Aktivierung
FXS[Achse]=1) nochmals aufgerufen, wird der Alarm 20092 "Fahren auf Festanschlag
noch aktiv" ausgelöst.
Eine Programmierung, die in der Bedingung entweder $AA_FXS[] oder einen eigenen
Merker (hier R1) abfragt, vermeidet eine mehrfache Aktivierung der Funktion
Teilprogrammfragment.

N10 R1=0
N20 IDS=1 WHENEVER ($R1==0 AND
$AA_IW[AX3] > 7) DO R1=1 FXST[AX1]=12

Satzbezogene Synchronaktionen
Durch die Programmierung einer satzbezogenen Synchronaktion kann Fahren auf
Festanschlag während einer Anfahrbewegung zugeschaltet werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-59
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Beispiel:

N10 G0 G90 X0 Y0
N20 WHEN $AA_IW[X] > 17 DO FXS[X]=1 ;Erreicht X eine Position größer 17mm
;wird
N30 G1 F200 X100 Y110 ;FXS aktiviert

Statische und satzbezogene Synchronaktionen


In statischen und satzbezogenen Synchronaktionen können die gleichen Befehle FXS,
FXST und FXSW verwendet werden, wie im normalen Teileprogrammablauf. Die Werte, die
zugewiesen werden, können durch eine Berechnung entstanden sein.

10.4.28 Bestimmung des Bahntangentenwinkels in Synchronaktionen

Funktion
Die in Synchronaktionen lesbare Systemvariable $AC_TANEB (Tangent ANgel at End of
Block) ermittelt den Winkel zwischen der Bahntangente im Endpunkt des aktuellen Satzes
und der Bahntangente im Startpunkt des programmierten Folgesatzes.

Parameter
Der Tangentenwinkel wird stets positiv im Bereich 0.0 bis 180.0 Grad ausgegeben. Existiert
kein Nachfolgesatz im Hauptlauf, so wird der Winkel -180.0 Grad ausgegeben.
Die Systemvariable $AC_TANEB sollte nicht für Sätze, die vom System erzeugt werden
(Zwischensätze) gelesen werden. Zur Unterscheidung, ob es sich um einen programmierten
Satz (Hauptsatz) handelt, dient die Systemvariable $AC_BLOCKTYPE.

Beispiel
ID=2 EVERY $AC_BLOCKTYPE==0 DO $SR1 = $AC_TANEB

10.4.29 Bestimmung des aktuellen Override

Funktion
Der aktuelle Override
(NC-Anteil) kann mit den Systemvariablen:
$AA_OVR Axial Override
$AC_OVR Bahnoverride
in Synchronaktionen gelesen und geschrieben werden.
Der von der PLC vorgegebene Override wird für Synchronaktionen in den Systemvariablen:

Arbeitsvorbereitung
10-60 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

$AA_PLC_OVR Axial Override


$AC_PLC_OVR Bahnoverride
zum Lesen bereitgestellt.
Der resultierende Override
wird für Synchronaktionen in den Systemvariablen:
$AA_TOTAL_OVR Axial Override
$AC_TOTAL_OVR Bahnoverride
zum Lesen bereitgestellt.
Der resultierende Override errechnet sich als:
$AA_OVR * $AA_PLC_OVR bzw.
$AC_OVR * $AC_PLC_OVR

10.4.30 Auslastungsauswertung über Zeitbedarf der Synchronaktionen

Funktion
In einem Interpolationstakt müssen sowohl Synchronaktionen interpretiert als auch
Bewegungen usw. von der NC berechnet werden. Mit den im Folgenden vorgestellten
Systemvariablen können sich Synchronaktionen über die aktuellen Zeitanteile der
Synchronaktionen am Interpolationstakt und über die Rechenzeit der Lageregler informieren.

,327DNW

01B,32B0$;B/2$'

*UHQ]ZHUWI¾U$XVQXW]XQJGHV,327DNWHV

$1B,32B$&7B/2$'

DNW,325HFKHQ]HLWLQNO.DQDOV\QFKU
$1B6<1&B$&7B/2$'
DNW5HFKHQ]I6$
¾EHUDOOH.DQ¦OH

$&B6<1&B$&7B/2$' .DQDO
5HFKHQ]HLWI6\QFKURQDNWLRQHQYRQ.DQDO

$&B6<1&B$&7B/2$' .DQDO
5HFKHQ]HLWI6\QFKURQDNWLRQHQYRQ.DQDO

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-61
Bewegungssynchronaktionen
10.4 Aktionen in Synchronaktionen

Parameter
Die Variablen haben nur gültige Werte, wenn das Maschinendatum $MN_IPO_MAX_LOAD
größer als 0 ist. Andernfalls geben die Variablen sowohl für SINUMERIK powerline als auch
für solution line Systeme immer die Nettorechenzeit an, bei der die durch HMI erzeugten
Unterbrechungen nicht mehr berücksichtigt werden. Die Nettorechenzeit ergibt sich aus:
● Synchronaktionszeit,
● Lageregelungszeit und der
● restlichen IPO-Rechenzeit ohne HMI bedingte Unterbrechungen

Die Systemvariablen enthalten immer die Werte


des vorhergehenden IPO-Taktes
$AN_IPO_ACT_LOAD aktuelle IPO-Rechenzeit (inkl.
Synchronaktionen aller Kanäle)
$AN_IPO_MAX_LOAD längste IPO-Rechenzeit (inkl.
Synchronaktionen aller Kanäle)
$AN_IPO_MIN_LOAD kürzeste IPO-Rechenzeit (inkl.
Synchronaktionen aller Kanäle)
$AN_IPO_LOAD_PERCENT aktuelle IPO-Rechenzeit im
Verhältnis zum IPO-Takt (%).
$AN_SYNC_ACT_LOAD aktuelle Rechenzeit für
Synchronaktionen über alle Kanäle
$AN_SYNC_MAX_LOAD längste Rechenzeit für
Synchronaktionen über alle Kanäle
$AN_SYNC_TO_IPO prozentualer Anteil der ges.
Synchronaktionen an der gesamten
IPO-Rechenzeit (über alle Kanäle)

$AC_SYNC_ACT_LOAD aktuelle Rechenzeit für


Synchronaktionen im Kanal
$AC_SYNC_MAX_LOAD längste Rechenzeit für
Synchronaktionen im Kanal
$AC_SYNC_AVERAGE_LOAD durchschnittliche Rechenzeit für
Synchronaktionen im Kanal

$AN_SERVO_ACT_LOAD aktuelle Rechenzeit des Lagereglers


$AN_SERVO_MAX_LOAD längste Rechenzeit des Lagereglers
$AN_SERVO_MIN_LOAD kürzeste Rechenzeit des Lagereglers

Variable der Überlastmitteilung:


Über das Maschinendatum $MN_IPO_MAX_LOAD wird eingestellt, ab welcher
IPO-Netto-Rechenzeit (in % vom IPO-Takt) die Systemvariable
$AN_IPO_LOAD_LIMIT auf TRUE gesetzt werden soll. Unterschreitet die aktuelle Last
diese Grenze wieder, so wird die Variable wieder auf FALSE gesetzt. Ist das
Maschinendatum 0, so ist die gesamte Diagnosefunktion deaktiviert.
Durch die Auswertung von $AN_IPO_LOAD_LIMIT kann der Anwender eine eigene
Strategie festlegen, um einen Ebenenüberlauf zu vermeiden.

Arbeitsvorbereitung
10-62 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.5 Technologiezyklen

10.5 10.5 Technologiezyklen

Funktion
Als Aktion in Synchronaktionen können auch Programme aufgerufen werden, die jedoch nur
aus Funktionen aufgebaut sein dürfen, welche auch als Aktionen in Synchronaktionen
zulässig sind. So aufgebaute Programme heißen Technologiezyklen.
Technologiezyklen werden als Unterprogramme in der Steuerung abgelegt.
In einem Kanal können parallel mehrere Technologiezyklen oder Aktionen bearbeitet
werden.

Programmierung
● Das Programmende wird mit M02/M17/M30/RET programmiert.
● Innerhalb einer Programmebene können alle in ICYCOF angegebenen Aktionen ohne
Wartezyklen in einem Takt abgearbeitet werden.
● Es können bis zu 8 Technologiezyklen pro Synchronaktion hintereinander abgefragt
werden.
● Technologiezyklen sind auch in satzweisen Synchronaktionen möglich.
● Es können sowohl IF-Kontrollstrukturen als auch Sprunganweisungen GOTO, GOTOF
und GOTOB programmiert werden.
Sätze mit DEF und DEFINE Anweisungen in Technologiezyklen
● DEF und DEFINE Anweisungen werde in Technologiezyklen überlesen
● sie führen weiterhin bei nicht korrekter oder unvollständiger Syntax zur Alarmmeldung
● können ohne selbst angelegt zu werden, ohne Alarmmeldung überlesen werden
● werden mit Wertzuweisungen als Teileprogrammzyklus vollständig berücksichtigt

Parameterübergabe
Eine Parameterübergabe an Technologiezyklen ist möglich. Berücksichtigt werden sowohl
einfache Datentypen, die als Formal-Parameter "Call by Value" übergeben werden, als auch
Defaulteinstellungen, die beim Aufruf von Technologiezyklen wirksam werden. Dies sind:
● Programmierte Defaultwerte, wenn kein Übergabeparameter programmiert ist.
● Default-Parameter mit Initialwerte zu versehen.
● Nicht initialisierte Aktualparameter mit einem Defaultwert übergeben.

Ablauf
Technologiezyklen werden gestartet, sobald ihre Bedingungen erfüllt sind. Jede Zeile eines
Technologiezyklus wird in einem separaten IPO-Takt abgearbeitet. Bei Positionierachsen
werden zur Ausführung mehrere IPO-Takte benötigt. Andere Funktionen werden eintaktig
ausgeführt. Im Technologiezyklus erfolgt die Abarbeitung der Sätze sequentiell.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-63
Bewegungssynchronaktionen
10.5 Technologiezyklen

Werden im gleichen Interpolationstakt Aktionen aufgerufen, die sich gegenseitig


ausschließen, so wird diejenige Aktion aktiv, die von der Synchronaktion mit der höheren ID-
Nummer aufgerufen wird.

Beispiel
Durch Setzen digitaler Eingänge werden Achs-Programme gestartet.

,'  ,'  ,'  ,' 

,327DNW %HGLQJXQJ %HGLQJXQJ %HGLQJXQJ %HGLQJXQJ

,327DNW $$B295><@  326><@  $$B295><@  $$B295>;@ 

,327DNW 0 326>=@ 

,327DNW 326>;@  326><@ 

,327DNW 326>=@ 

,327DNW 0 0

0

Hauptprogramm: Steht der


ID=1 EVERY $A_IN[1]==1 DO ACHSE_X ;Eingang 1 auf 1, starte Achsprogramm X
ID=2 EVERY $A_IN[2]==1 DO ACHSE_Y ;Eingang 2 auf 1, starte Achsprogramm Y
ID=3 EVERY $A_IN[3]==1 DO $AA_OVR[Y]=0 ;Eingang 3 auf 1, setze den Override der
;Achse Y auf 0
ID=4 EVERY $A_IN[4]==1 DO ACHSE_Z ;Eingang 4 auf 1, starte Achsprogramm Z
M30

Technologiezyklus ACHSE_X:
$AA_OVR[Y]=0
M100
POS[X]=100 FA[X]=300
M17
Technologiezyklus ACHSE_Y:
POS[Y]=10 FA[Y]=200
POS[Y]=-10
M17
Technologiezyklus ACHSE_Z:
$AA_OVR[X]=0
POS[Z]=90 FA[Z]=250
POS[Z]=-90
M17

Arbeitsvorbereitung
10-64 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.5 Technologiezyklen

Beispiele verschiedener Programmsequenzen im Technologiezyklus

PROC CYCLE
N10 DEF REAL "wert"=12.3
N15 DEFINE ABC AS G01

Beide Sätze werden ohne Alarm und ohne Anlegen der Variable bzw. des Makros überlesen

PROC CYCLE
N10 DEF REAL
N15 DEFINE ABC G01

Beide Sätze führen weiterhin zum NC Alarm, weil die Syntax nicht korrekt geschrieben ist.

PROC CYCLE
N10 DEF AXIS "achse1"=XX2

Ist die Achse XX2 nicht bekannt, wird Alarm 12080 ausgegeben. Anderenfalls wird der Satz
ohne Alarm und ohne Anlegen der Variable überlesen.

PROC CYCLE
N10 DEF AXIS "achse1"
N15 G01 X100 F1000
N20 DEF REAL"wert1"

Der Satz N20 führt immer zum Alarm 14500, weil die DEF - Anweisung nach der ersten
Programmzeile nicht erlaubt ist.

10.5.1 Kontext-Variable ($P_TECCYCLE)

Funktion
Mit Hilfe der Variable $P_TECCYCLE können Programme in Synchronaktionsprogramme
und Vorlaufprogramme unterteilt werden. Dadurch ist es möglich, von der Syntax korrekt
geschriebene Sätze oder Programmsequenzen, alternativ auch als Teileprogrammzyklus
abzuarbeiten.

Kontext-Variable interpretieren
Die Systemvariable $P_TECCYCLE ermöglicht kontext-spezifische Interpretationen von
Programmteilen in Technologiezyklen zu steuern falls

IF $P_TECCYCLE==TRUE Programmsequenz für Technologiezyklus in


der Synchronaktion

sonst

ELSE Programmsequenz für Teileprogrammzyklus

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-65
Bewegungssynchronaktionen
10.5 Technologiezyklen

Hinweis
Ein Satz mit fehlerhafter oder unerlaubter Programmsyntax sowie nicht bekannte
Wertzuweisungen führen auch im Teileprogrammzyklus zu einer Alarmmeldung.

Beispiel Programmsequenz mit Abfrage von $P_TECCYCLE im Technologiezyklus

PROC CYCLE
N10 DEF REAL "wert1" ;wird im Technologiezyklus überlesen
N15 G01 X100 F1000
N20 IF $P_TECCYCLE==TRUE
N25 "Programmsequenz für Technologiezyklus (ohne Variable wert1)"
N30 ELSE
N35 "Programmsequenz für Teileprogrammzyklus (Variable wert1ist vorhanden)"
ENDIF

10.5.2 Call by Value Parameter

Funktion
Technologiezyklen können mit Call by Value-Parameter definiert werden. Als Parameter sind
einfache Datentypen wie INT, REAL, CHAR, STRING, AXIS und BOOL möglich.

Hinweis
Formal-Parameter, die Call by Value übergeben werden, können keine Felder sein.
Die Aktualparameter können auch aus Defaultparameter bestehen,
siehe Kapitel "Default-Parameter initialisieren".

Programmierung

ID=1 WHEN $AA_IW[X]>50 DO TEC(IVAL, RVAL, , SVAL, AVAL)


;Bei nicht initialisierten Aktualparametern wird ein Defaultwert übergeben.
ID=1 WHE $AA_IW[X]>50 DO TEC(IVAL, RVAL, , SYG_SS[0], AVAL)

Arbeitsvorbereitung
10-66 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.5 Technologiezyklen

10.5.3 Default-Parameter-Initialisierung

Funktion
Default-Parameter können in der PROC-Anweisung auch mit einem Initialwert versehen
werden.

Programmierung
Im Technologiezyklus Default-Parameter zuweisen:

PROC TEC (INT IVAL=1, REAL RVAL=1.0, CHAR CVAL='A', STRING[10] SVAL="ABC", AXIS
AVAL=X, BOOL BVAL=TRUE)

Wenn ein Aktualparameter aus einem Defaultparameter besteht, wird der Initialwert aus der
PROC-Anweisung übergeben. Dies gilt sowohl im Teileprogramm, als auch in
Synchronaktionen.

Beispiel

TEC (IVAL, RVAL, , SVAL, AVAL) ;bei CVAL und BVAL gilt der Initialwert

10.5.4 Steuerung der Abarbeitung von Technologiezyklen (ICYCOF, ICYCON)

Funktion
Zur Steuerung der zeitlichen Abarbeitung von Technologiezyklen dienen die Sprachbefehle
ICYCOF und ICYCON.
Mit ICYCOF werden alle Sätze eines Technologiezykluses nur in einem Interpolationstakt
abgearbeitet. Alle Aktionen, deren Ausführung mehrere Takte benötigen, führen bei ICYCOF
zu parallelen Bearbeitungsprozessen.
Anwendung
Bei ICYCON können Kommandoachs-Bewegungen dazu führen, dass sich die Abarbeitung
von einem Technologiezyklus verzögert. Ist dies unerwünscht dann können mit ICYCOF alle
Aktionen ohne Wartezeiten in einem Interpolationstakt abgearbeitet werden.

Programmierung
Für die zyklische Abarbeitung von Technologiezyklen gilt:

ICYCON jeder Satz von einem Technologiezyklus wird nach ICYCON in


einem separaten IPO-Takt abgearbeitet
ICYCOF alle folgenden Sätze eines Technologiezykluses werden nach
ICYCOF in einem IPO-Takt abgearbeitet

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-67
Bewegungssynchronaktionen
10.5 Technologiezyklen

Hinweis
Die beiden Sprachbefehle ICYCON und ICYCOF wirken nur innerhalb der Programmebene.
Im Teileprogramm werden beide Befehle ohne Reaktion einfach überlesen.

Beispiel für Abarbeitungsmode ICYCOF

IPO-Takt PROC TECHNOCYC


1. $R1=1
2.25 POS[X]=100
26. ICYCOF
26. $R1=2
26. $R2=$R1+1
26. POS[X]=110
26. $R3=3
26. RET

10.5.5 Kaskadierungen von Technologiezyklen

Funktion
Es können bis zu 8 Technologiezyklen in Reihe geschaltet abgearbeitet werden. Damit sind
in einer Synchronaktion mehrere Technologiezyklen programmierbar.

Programmierung

ID=1 WHEN $AA_IW[X]>50 DO TEC1($R1) TEC2 TEC3(X)

Bearbeitungsreihenfolge
Die Technologiezyklen werden der Reihe nach (in Kaskade) von links nach rechts gemäß
der oben angegebenen Programmierung abgearbeitet. Sollte ein Zyklus im Mode ICYCON
abgearbeitet werden, so verzögert dieser alle nachfolgenden Bearbeitungen. Ein
auftretender Alarm bricht alle nachfolgenden Aktionen ab.

Arbeitsvorbereitung
10-68 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.5 Technologiezyklen

10.5.6 Technologiezyklen in satzweisen Synchronaktionen

Funktion
Technologiezyklen sind auch in satzweisen Synchronaktion möglich.
Ist die Abarbeitungszeit eines Technologiezyklus länger als die Bearbeitungszeit des
zugehörigen Satzes, so wird der Technologiezyklus beim Satzwechsel abgebrochen.

Hinweis
Ein Technologiezyklus verhindert nicht den Satzwechsel.

10.5.7 IF-Kontrollstrukturen

Funktion
Für Verzweigungen in der Ablaufreihenfolge von Technologiezyklen können IF-
Kontrollstrukturen in Synchronaktionen verwendet werden.

Programmierung

IF <Bedingung>
$R1=1
[ELSE] ;optional
$R1=0
ENDIF

10.5.8 Sprunganweisungen (GOTO, GOTOF, GOTOB)

Funktion
In Technologiezyklen sind die Sprunganweisungen GOTO, GOTOF, GOTOB möglich. Die
angegeben Labels müssen im Unterprogramm vorhanden sein, damit kein Alarm abgesetzt
wird.

Hinweis
Labels und Satznummern dürfen nur Konstanten sein.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-69
Bewegungssynchronaktionen
10.5 Technologiezyklen

Programmierung
Unbedingte Sprünge
GOTO Label, Satznummer
oder
GOTOF Label, Satznummer
oder
GOTOB Label, Satznummer

Sprunganweisungen und Sprungziele

GOTO Springe erst vorwärts und anschließend rückwärts


GOTOF Springe vorwärts
GOTOB Springe rückwärts
Label: Sprungmarke
Satznummer Sprungziel zu diesen Satz
N100 Satznummer ist Nebensatz
:100 Satznummer ist Hauptsatz

10.5.9 Sperren, freischalten, unterbrechen (LOCK, UNLOCK, RESET)

Funktion
Der Ablauf eines Technologiezyklus kann aus Modale Synchronaktionen können durch
andere modale Synchronaktionen, gesperrt, wieder freigegeben oder ein Technologiezyklus
zurückgesetzt werden.

Programmierung

LOCK(n, n, ...) Synchronaktionen sperren, die aktive Aktion wird unterbrochen


UNLOCK(n, n, ...) Synchronaktionen freischalten
RESET(n, n, ...) Technologiezyklus zurücksetzen
n Identifikations-Nummer der Synchronaktion
PLC-seitig verriegeln
Modale Synchronaktionen mit den ID-Nummern
n=1 ... 64 können von der PLC verriegelt werden. Die zugehörige Bedingung wird damit
nicht mehr ausgewertet und die Ausführung der zugehörigen Funktion im NCK gesperrt.
Mit einem Signal der PLC-Nahtstelle lassen sich pauschal alle Synchronaktionen sperren.

Arbeitsvorbereitung
10-70 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.6 Synchronaktion löschen (CANCEL)

Hinweis
Eine programmierte Synchronaktion ist standardmäßig aktiv und kann gegen
Überschreiben/Sperren über Maschinendatum gesichert werden.
Vom Maschinenhersteller festgelegte Synchronaktionen sollen vom Endkunden nicht
beeinflusst werden können.

Beispiel
Synchronaktionen sperren, LOCK

N100 ID=1 WHENEVER $A_IN[1]==1 DO M130


...
N200 ID=2 WHENEVER $A_IN[2]==1 DO LOCK(1)

Synchronaktionen freischalten, UNLOCK

N100 ID=1 WHENEVER $A_IN[1]==1 DO M130


...
N200 ID=2 WHENEVER $A_IN[2]==1 DO LOCK(1)
...
N250 ID=3 WHENEVER $A_IN[3]==1 DO UNLOCK(1)

Technologiezyklus unterbrechen, RESET

N100 ID=1 WHENEVER $A_IN[1]==1 DO M130


...
N200 ID=2 WHENEVER $A_IN[2]==1 DO RESET(1)

10.6 10.6 Synchronaktion löschen (CANCEL)

Funktion
Modale Synchronaktionen mit der Bezeichnung ID(S)=n lassen sich mit CANCEL nur direkt
vom Teileprogramm aus löschen.

Hinweis
Die von einer gelöschten Synchronaktion aus gestarteten, noch laufenden Bewegungen
werden entsprechend der Programmierung abgeschlossen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-71
Bewegungssynchronaktionen
10.7 Randbedingungen

Programmierung

CANCEL(n, n, ...) Synchronaktion löschen


n Identifikations-Nummer der Synchronaktion

Beispiel

N100 ID=2 WHENEVER $A_IN[1]==1 DO M130


...
N200 CANCEL(2) ;lösche die Synchronaktion Nr. 2

10.7 10.7 Randbedingungen

Funktion
Es gibt Randbedingungen beim Eintreten folgender Ereignisse:
● Power On
● Betriebsartenwechsel
● Reset
● NC-Stopp
● Programmende
● Satzsuchlauf
● Programmunterbrechung durch asynchrones Unterprogramm ASUP
● Repositionierung REPOS
● Abwahl mit CANCEL

Ereignisse
● Power On
Mit Power On sind grundsätzlich keine Synchronaktionen aktiv. Statische
Synchronaktionen können mit einem von PLC gestarteten asynchronen Unterprogramm
(ASUP) aktiviert werden.
● Betriebsartenwechsel
Mit dem Schlüsselwort IDS aktivierte Synchronaktionen bleiben über
Betriebsartenwechsel hinaus aktiv. Alle übrigen Synchronaktionen werden bei
Betriebsartenwechsel inaktiv (z. B. Achse positionieren) und mit dem Repositionieren und
Zurückschalten in den Automatik-Betrieb wieder aktiv.

Arbeitsvorbereitung
10-72 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.7 Randbedingungen

● Reset
Mit NC-Reset werden alle durch satzweise und modale Synchronaktionen beendet.
Statische Synchronaktionen bleiben aktiv. Aus ihnen können neue Aktionen gestartet
werden. Ist bei RESET eine Kommandoachsbewegung aktiv, so wird diese abgebrochen.
Bereits ausgeführte Synchronaktionen vom WHEN-Typ werden nach RESET nicht mehr
bearbeitet.

Verhalten nach RESET


Synchronaktion/ modal/satzweise statisch (IDS)
Technologiezyklus
aktive Aktion wird abgebrochen, aktive Aktion wird abgebrochen,
Synchronaktionen werden gelöscht Technologiezyklus wird
zurückgesetzt
Achse/ Bewegung wird abgebrochen Bewegung wird abgebrochen
positionierende Spindel
drehzahlgeregelte $MA_SPIND_ACTIVE_AFTER_RESET==1:
Spindel Spindel bleibt aktiv

$MA_SPIND_ACTIVE_AFTER_RESET==0:
Spindel stoppt.
Leitwertkopplung $MC_RESET_MODE_MASK, Bit13 == 1:
Leitwertkopplung bleibt aktiv

$MC_RESET_MODE_MASK, Bit13 == 0:
Leitwertkopplung wird aufgelöst
Messvorgänge aus Synchronaktionen gestartete aus statischen Synchronaktionen
Messvorgänge werden abgebrochen gestartete Messvorgänge werden
abgebrochen
● NC-Stopp
Statische Synchronaktionen bleiben bei NC-Stopp aktiv. Aus statischen
Synchronaktionen gestartete Bewegungen werden nicht abgebrochen. Zum aktiven Satz
gehörige programmlokale Synchronaktionen bleiben aktiv, daraus gestartete
Bewegungen werden abgebrochen.
● Programmende
Programmende und Synchronaktion beeinflussen sich nicht gegenseitig. Laufende
Synchronaktionen werden auch nach Programmende abgeschlossen. Im M30-Satz
aktive Synchronaktionen bleiben im M30-Satz aktiv. Ist dies unerwünscht, müssen Sie
die Synchronaktion vor Programmende mit CANCEL (s. vorhergehendes Unterkapitel)
abbrechen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-73
Bewegungssynchronaktionen
10.7 Randbedingungen

Verhalten nach Programmende


Synchronaktion/ modal und satzweise statisch (IDS)
Technologiezyklus werden abgebrochen bleiben erhalten
Achse/ M30 wird verzögert, bis die Achse/Spindel Bewegung läuft weiter
positionierende steht.
Spindel
drehzahlgeregelte Programmende: Spindel bleibt aktiv
Spindel $MA_SPIND_ACTIVE_AFTER_RESET==1
:
Spindel bleibt aktiv
$MA_SPIND_ACTIVE_AFTER_RESET==0
:
Spindel stoppt

Bei Betriebsartenwechsel bleibt Spindel


aktiv
Leitwertkopplung $MC_RESET_MODE_MASK, Bit13 == 1: aus statischer Synchronaktion
Leitwertkopplung bleibt aktiv gestartete Kopplung bleibt
$MC_RESET_MODE_MASK, Bit13 == 0: erhalten
Leitwertkopplung wird aufgelöst
Messvorgänge aus Synchronaktionen gestartete aus statischen
Messvorgänge werden abgebrochen Synchronaktionen gestartete
Messvorgänge bleiben aktiv
● Satzsuchlauf
Während Satzsuchlauf werden Synchronaktionen aufgesammelt und bei NC-Start
ausgewertet, die zugehörigen Aktionen gegebenenfalls gestartet. Statische
Synchronaktionen wirken auch während des Satzsuchlaufs. Werden bei Satzsuchlauf mit
FCTDEF programmierte Polynomkoeffizienten gefunden, werden diese direkt wirksam.
● Programmunterbrechung durch asynchrones Unterprogramm ASUP
ASUP-Anfang:
Modale und statische Bewegungssynchronaktionen bleiben erhalten und sind auch im
asynchronen Unterprogramm wirksam.
ASUP-Ende:
Wird das asynchrone Unterprogramm nicht mit REPOS fortgesetzt, wirken die im
asynchronen Unterpogramm geänderten modalen und statischen
Bewegungssynchronaktionen im Hauptprogramm weiter.
● Repositionierung REPOS
Nach Repositionierung REPOS werden die im unterbrochenen Satz wirksamen
Synchronaktionen wieder aktiv. Aus dem asynchronen Unterprogramm heraus geänderte
modale Synchronaktionen sind nach REPOS bei Bearbeitung des Restsatzes nicht
wirksam.
Mit FCTDEF programmierte Polynomkoeffizienten werden von asynchronen
Unterprogrammen und REPOS nicht beeinflusst. Unabhängig, wo sie programmiert
wurden, sind sie im asynchronen Unterprogramm und im Hauptprogramm auch nach
Ausführung von REPOS jederzeit einsetzbar.

Arbeitsvorbereitung
10-74 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Bewegungssynchronaktionen
10.7 Randbedingungen

● Abwahl mit CANCEL


Wird eine aktive Synchronaktion mit CANCEL abgewählt, wird die aktive Aktion nicht
beeinflusst. Positionierbewegungen werden wie programmiert beendet.
Mit dem Befehl CANCEL kann eine modal oder statisch wirksame Synchronaktion
abgebrochen werden. Wird eine Synchronaktion abgebrochen, währenddessen die
daraus aktivierte Positionierachsbewegung noch aktiv ist, wird die
Positionierachsbewegung abgeschlossen. Ist dies nicht erwünscht, kann die
Achsbewegung mit axialem Restweglöschen vor dem CANCEL-Befehl abgebremst
werden:

Beispiel Abwahl mit CANCEL

ID=17 EVERY $A_IN[3]==1 DO POS[X]=15 FA[X]=1500 ;Positionierachsbewegung starten


...
WHEN ... DO DELDTG(X) ;Positionierachsbewegung beenden
CANCEL(1)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 10-75
Bewegungssynchronaktionen
10.7 Randbedingungen

Arbeitsvorbereitung
10-76 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Pendeln 11
11.1 11.1 Asynchrones Pendeln

Funktion
Eine Pendelachse fährt zwischen den zwei Umkehrpunkten 1 und 2 mit gegebenem
Vorschub hin und her, bis die Pendelbewegung abgeschaltet wird.
Andere Achsen können während der Pendelbewegung beliebig interpoliert werden. Über
eine Bahnbewegung oder mit einer Positionierachse kann eine kontinuierliche Zustellung
erreicht werden. Dabei besteht jedoch kein Zusammenhang zwischen der Pendel- und der
Zustellbewegung.
Eigenschaften des asynchronen Pendelns
● Das asynchrone Pendeln ist achsspezifisch über Satzgrenzen hinweg wirksam.
● Über das Teileprogramm ist ein satzsynchrones Einschalten der Pendelbewegung
gewährleistet.
● Eine gemeinsame Interpolation von mehreren Achsen und eine Überlagerung von
Pendelstrecken sind nicht möglich.

Programmierung
Über die folgenden Adressen ist ein der Abarbeitung des NC-Programms entsprechendes
Einschalten und Beeinflussen des asynchronen Pendelns vom Teileprogramm her möglich.
Die programmierten Werte werden satzsynchron im Hauptlauf in die entsprechenden
Settingdaten eingetragen und bleiben bis zur nächsten Änderung wirksam.
Pendeln ein-, ausschalten: OS
OS[Achse] = 1: einschalten
OS[Achse] = 0: ausschalten

Parameter

OSP1 [Achse]= Position des Umkehrpunkts 1 (Pendeln: linker Umkehrpunkt)


OSP2 [Achse]= Position des Umkehrpunkts 2 (Pendeln: rechter Umkehrpunkt)
OST1 [Achse]= Haltezeit in den Umkehrpunkten in Sekunden
OST2 [Achse]=
FA[Achse]= Vorschub der Pendelachse
OSCTRL [Achse]= (Setz-, Rücksetzoptionen)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 11-1
Pendeln
11.1 Asynchrones Pendeln

OSNSC [Achse]= Anzahl der Ausfeuerungshübe


OSE [Achse]= Endposition
OS [Achse]= 1 = Pendelachse einschalten; 0 = Pendelachse ausschalten

Haltezeiten in den Umkehrpunkten: OST1, OST2

Haltezeit Bewegungsverhalten im Genauhaltbereich, am Umkehrpunkt


-2 Interpolation wird ohne Warten auf Genauhalt fortgesetzt
-1 Warten auf Genauhalt grob
0 Warten auf Genauhalt fein
>0 Warten auf Genauhalt fein und anschließend Abwarten der Haltezeit

Die Einheit für die Haltezeit ist identisch mit der über G4 programmierten Haltezeit.

Beispiel Pendelachse soll zwischen zwei Umkehrpunkten pendeln


Die Pendelachse Z soll zwischen 10 und 100 pendeln. Umkehrpunkt 1 mit Genauhalt fein,
Umkehrpunkt 2 mit Genauhalt grob anfahren. Es soll mit Vorschub 250 für die Pendelachse
gearbeitet werden. Am Ende der Bearbeitung sollen 3 Ausfeuerungshübe erfolgen und die
Endposition 200 mit der Pendelachse angesteuert werden. Der Vorschub für die
Zustellachse ist 1, Ende der Zustellung in X-Richtung ist bei 15.

WAITP(X,Y,Z) ;Ausgangsstellung
G0 X100 Y100 Z100 ;Umschalten in Positionierachsbetrieb
N40 WAITP(X,Z)
N50 OSP1[Z]=10 OSP2[Z]=100 -> ;Umkehrpunkt 1, Umkehrpunkt 2
-> OSE[Z]=200 -> ;Endposition
-> OST1[Z]=0 OST2[Z]=–1 -> ;Haltezeit an U1: Genauhalt fein;
;Haltezeit an U2: Genauhalt grob
-> FA[Z]=250 FA[X]=1 -> ;Vorschub Pendelachse, Zustellachse
-> OSCTRL[Z]=(4,0) -> ;Setzoptionen
-> OSNSC[Z]=3 -> ;drei Ausfeuerhübe
N60 OS[Z]=1 ;Pendeln starten
N70 WHEN $A_IN[3]==TRUE -> ;Restweglöschen
-> DO DELDTG(X)
N80 POS[X]=15 ;Ausgangsstellungen X-Achse
N90 POS[X]=50
N100 OS[Z]=0 ;Pendeln stoppen
M30

-> kann in einem Satz programmiert werden.

Beispiel Pendeln mit Online-Änderung der Umkehr-Position


Settingdaten
Die für das asynchrone Pendeln erforderlichen Settingdaten können im Teileprogramm
eingestellt werden.

Arbeitsvorbereitung
11-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Pendeln
11.1 Asynchrones Pendeln

Werden im Teileprogramm die Settingdaten direkt beschrieben, so wird die Änderung schon
zum Vorlaufzeitpunkt wirksam. Synchrones Verhalten kann über einen Vorlaufstopp STOPRE
erreicht werden.

$SA_OSCILL_REVERSE_POS1[Z]=-10
$SA_OSCILL_REVERSE_POS2[Z]=10

G0 X0 Z0
WAITP(Z)

ID=1 WHENEVER $AA_IM[Z] < $$AA_OSCILL_REVERSE_POS1[Z] DO $AA_OVR[X]=0


ID=2 WHENEVER $AA_IM[Z] < $$AA_OSCILL_REVERSE_POS2[Z] DO $AA_OVR[X]=0
;Wenn der Istwert der Pendelachse den
;Umkehrpunkt überschritten hat,
;wird Zustellachse angehalten.
OS[Z]=1 FA[X]=1000 POS[X]=40 ;Pendeln einschalten
OS[Z]=0 ;Pendeln ausschalten
M30

Beschreibung
Für die Pendelachse gilt:
● Jede Achse kann als Pendelachse benutzt werden.
● Gleichzeitig können mehrere Pendelachsen aktiv sein (maximal: Anzahl der
Positionierachsen).
● Für die Pendelachse ist immer - unabhängig vom im Programm aktuell gültigen G-Befehl
- Linearinterpolation G1 aktiv.
Die Pendelachse kann
● Eingangsachse für die dynamische Transformation sein,
● Führungsachse bei Gantry- und Mitschleppachsen sein,
● verfahren werden
– ohne Ruckbegrenzung (BRISK) oder
– mit Ruckbegrenzung (SOFT) oder
– mit geknickter Beschleunigungskennlinie (wie Positionierachsen).

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 11-3
Pendeln
11.1 Asynchrones Pendeln

Pendelumkehrpunkte
Bei der Festlegung der Pendelpositionen sind die aktuellen Verschiebungen zu beachten:
● Absolute Angabe
OSP1[Z] = Wert 1
Position Umkehrpunkt = Summe der Verschiebungen + programmierter Wert
● Relative Angabe
OSP1[Z] = IC(Wert)
Position Umkehrpunkt = Umkehrpunkt 1 + programmierter Wert
Beispiel:
N10 OSP1[Z] = 100 OSP2[Z] = 110
.
.
N40 OSP1[Z] = IC(3)

Hinweis
WAITP(Achse):
• Soll mit einer Geometrieachse gependelt werden, so muss diese mit WAITP zum
Pendeln freigegeben werden.
• Nach beendetem Pendeln wird mit diesem Befehl die Pendelachse wieder als
Positionierachse eingetragen und kann wieder normal verwendet werden.

Pendeln mit Bewegungssynchronaktionen und Haltezeiten, OST1/OST2


Nach Ablauf der eingestellten Haltezeiten findet beim Pendeln der interne Satzwechsel statt
(sichtbar an den neuen Restwegen der Achsen). Beim Satzwechsel wird die
Ausschaltfunktion überprüft. Dabei wird nach der eingestellten Steuereinstellung für den
Bewegungsablauf "OSCTRL" die Ausschaltfunktion festgelegt. Dieses Zeitverhalten ist durch
den Vorschuboverride beeinflussbar.
Unter Umständen wird danach noch ein Pendelhub ausgeführt, bevor die Ausfeuerungshübe
gestartet oder die Endposition angefahren wird. Es entsteht dabei der Eindruck, es verändert
sich das Ausschaltverhalten. Dies ist aber nicht der Fall.

Vorschub einstellen, FA
Als Vorschubgeschwindigkeit gilt die definierte Vorschubgeschwindigkeit der
Positionierachse. Ist keine Vorschubgeschwindigkeit definiert, gilt der im Maschinendatum
hinterlegte Wert.

Bewegungsablauf definieren, OSCTRL


Die Steuereinstellungen für den Bewegungsablauf werden mit Setz- und Rücksetzoptionen
gesetzt.
OSCTRL[Pendelachse] = (Setz-Option, Rücksetz-Option)
Die Setzoptionen sind wie folgt definiert (die Rücksetzoptionen wählen die Einstellungen ab):

Arbeitsvorbereitung
11-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Pendeln
11.1 Asynchrones Pendeln

Rücksetzoptionen
Diese Optionen werden ausgeschaltet (nur, wenn sie vorher als Setzoptionen eingeschaltet
waren).

Setzoptionen
Diese Optionen werden umgeschaltet. Bei Programmierung von OSE (Endposition) wird
implizit Option 4 wirksam.

Optionswert Bedeutung
0 Beim Abschalten der Pendelbewegung im nächsten Umkehrpunkt stoppen
(Voreinstellung); nur durch Rücksetzen der Werte 1 und 2 möglich
1 Beim Abschalten der Pendelbewegung in Umkehrpunkt 1 stoppen
2 Beim Abschalten der Pendelbewegung in Umkehrpunkt 2 stoppen
3 Beim Abschalten der Pendelbewegung keinen Umkehrpunkt anfahren, falls
keine Ausfeuerungshübe programmiert sind
4 Nach dem Ausfeuern eine Endposition anfahren
8 Wird die Pendelbewegung durch Restweglöschen abgebrochen:
anschließend Ausfeuerungshübe abarbeiten und ggf. Endposition anfahren
16 Wird die Pendelbewegung durch Restweglöschen abgebrochen: wie beim
Abschalten entsprechende Umkehrposition anfahren
32 Geänderter Vorschub ist erst ab dem nächsten Umkehrpunkt aktiv
64 FA gleich 0, FA = 0: Wegüberlagerung ist aktiv
FA ungleich 0, FA <> 0: Geschwindigkeitsüberlagerung ist aktiv
128 Bei Rundachse DC (kürzester Weg)
256 =Ausfeuerhub wird als Doppelhub ausgeführt.(Standard) 1=Ausfeuerhub
wird als Einzelhub ausgeführt.

Mehrere Optionen werden durch Pluszeichen aneinandergefügt.


Beispiel:
Die Pendelbewegung für die Achse Z soll beim Abschalten im Umkehrpunkt 1 stoppen.
Dabei soll
● eine Endposition angefahren werden,
● ein geänderter Vorschub sofort wirksam werden und nach Restweglöschen soll die
Achse sofort stopppen.
OSCTRL[Z] = (1+4,16+32+64)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 11-5
Pendeln
11.2 Über Synchronaktionen gesteuertes Pendeln

11.2 11.2 Über Synchronaktionen gesteuertes Pendeln

Funktion
Bei dieser Art des Pendelns ist nur an den Umkehrpunkten bzw. innerhalb definierter
Umkehrbereiche eine Zustellbewegung zugelassen.
Je nach Anforderung kann die Pendelbewegung während der Zustellung
● fortgeführt oder
● angehalten werden, bis die Zustellung vollständig ausgeführt ist.

Programmierung
1. Parameter für das Pendeln festlegen
2. Bewegungssynchronaktionen definieren
3. Achsen zuordnen, Zustellung festlegen

Parameter

OSP1[Pendelachse]= Position des Umkehrpunkts 1


OSP2[Pendelachse]= Position des Umkehrpunkts 2
OST1[Pendelachse]= Haltezeit in Umkehrpunkt 1 in Sekunden
OST2[Pendelachse]= Haltezeit in Umkehrpunkt 2 in Sekunden
FA[Pendelachse]= Vorschub der Pendelachse
OSCTRL[Pendelachse]= Setz- bzw. Rücksetzoptionen
OSNSC[Pendelachse]= Anzahl der Ausfeuerungshübe
OSE[Pendelachse]= Endposition
WAITP(Pendelachse) Achse für das Pendeln freigeben

Achszuordnung, Zustellung
OSCILL[Pendelachse] = (Zustellachse1, Zustellachse2, Zustellachse3)
POSP[Zustellachse] = (Endpos, Teillänge, Modus)

OSCILL Zustellachse(n) der Pendelachse zuordnen


POSP Gesamt- und Teilzustellungen festlegen (siehe
Kapitel Datei- und Programmverwaltung)
Endpos Endposition für die Zustellachse, nachdem alle
Teilzustellungen abgefahren sind.
Teillänge Größe der Teilzustellung am
Umkehrpunkt/Umkehrbereich
Modus Aufteilung der Gesamtzustellung in Teilzustellungen
= zwei gleich große Restschritte (Voreinstellung);
= alle Teilzustellungen gleich groß

Arbeitsvorbereitung
11-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Pendeln
11.2 Über Synchronaktionen gesteuertes Pendeln

Bewegungssynchronaktionen

WHEN… … DO wenn…, dann…


WHENEVER … DO immer wenn…, dann…

Beispiel
Im Umkehrpunkt 1 soll keine Zustellung erfolgen. Beim Umkehrpunkt 2 soll die Zustellung
bereits im Abstand ii2 vor dem Umkehrpunkt 2 erfolgen und die Pendelachse im
Umkehrpunkt nicht auf das Beenden der Teilzustellung warten. Die Achse Z ist Pendelachse
und die Achse X Zustellachse.

       
=









8PNHKUSRVLWLRQDQIDKUHQ (QGSRVLWLRQ
XQG$XVIHXHUXQJVK¾EH DQIDKUHQ

1. Parameter für das Pendeln

DEF INT ii2 Variable für Umkehrbereich 2 definieren


OSP1[Z]=10 OSP2[Z]=60 Umkehrpunkt 1 und 2 definieren
OST1[Z]=0 OST2[Z]=0 Umkehrpunkt 1: Genauhalt fein
Umkehrpunkt 2: Genauhalt fein
FA[Z]=150 FA[X]=0.5 Vorschub Pendelachse Z, Vorschub Zustellachse X
OSCTRL[Z]=(2+8+16,1) Pendelbewegung abschalten im Umkehrpunkt 2; nach RWL
Ausfeuern und Endposition anfahren; nach RWL entsprechende
Umkehrposition anfahren
OSNC[Z]=3 Ausfeuerungshübe
OSE[Z]=70 Endposition = 70
ii2=2 Umkehrbereich einstellen
WAITP(Z) Erlaube Pendeln für Z-Achse

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 11-7
Pendeln
11.2 Über Synchronaktionen gesteuertes Pendeln

2. Bewegungssynchronaktion

WHENEVER $AA_IM[Z]<$SA_OSCILL_REVERSE_POS2[Z]DO ->


-> $AA_OVR[X]=0 $AC_MARKER[0]=0
Immer wenn die aktuelle Position der Pendelachse Z im MKS
kleiner als der Beginn des Umkehrbereichs 2 ist,
dann setze den axialen Override der Zustellachse X auf 0%
und den Merker mit dem Index 0 auf den Wert 0.
WHENEVER $AA_IM[Z]>=$SA_OSCILL_REVERSE_POS2[Z] DO $AA_OVR[Z]=0
Immer wenn die aktuelle Position der Pendelachse Z im MKS
größer gleich der Umkehrposition 2 ist,
dann setze den axialen Override der Pendelachse Z auf 0%.
WHENEVER $AA_DTEPW[X]==0 DO $AC_MARKER[0]=1
Immer wenn der Restweg der Teilzustellung
gleich ist,
dann setze den Merker mit dem Index 0 auf den Wert 1.
WHENEVER $AC_MARKER[0]==1 DO $AA_OVR[X]=0 $AA_OVR[Z]=100
Immer wenn der Merker mit dem Index 0
gleich ist,
dann setze den axialen Override der Zustellachse X auf 0%, damit
wird eine zu frühe Zustellung verhindert (Pendelachse Z hat
den Umkehrbereich 2 noch nicht wieder verlassen, die
Zustellachse X ist aber bereit für eine erneute Zustellung)
setze den axialen Override der Pendelachse Z auf 100%
(damit wird die 2. Synchronaktion aufgehoben).

-> muss in einem Satz programmiert werden


3. Pendeln starten

OSCILL[Z]=(X) POSP[X]=(5,1,1) ;Starten der Achsen


;Der Pendelachse Z wird die Achse X als Zustellachse
;zugewiesen.
;Die Achse X soll bis Endposition 5 in Schritten von
1 fahren.
M30 ;Programmende

Arbeitsvorbereitung
11-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Pendeln
11.2 Über Synchronaktionen gesteuertes Pendeln

Beschreibung
1. Pendelparameter festlegen
Vor dem Bewegungssatz, der die Zuordnung von Zustell- und Pendelachse sowie die
Festlegung der Zustellung enthält, sind die Parameter für das Pendeln festzulegen (siehe
"Asynchrones Pendeln").
2. Bewegungssynchronaktionen festlegen
Über Synchronbedingungen erfolgt:
Zustellung unterdrücken, bis sich die Pendelachse innerhalb eines Umkehrbereichs
(ii1, ii2) oder an einem Umkehrpunkt (U1, U2) befindet.
Pendelbewegung während der Zustellung im Umkehrpunkt anhalten.
Pendelbewegung nach beendeter Teilzustellung wieder starten.
Start der nächsten Teilzustellung festlegen.
3. Pendeln- und Zustellachse zuordnen sowie Gesamt- und Teilzustellung festlegen.

Pendelparameter festlegen
Zuordnung von Pendel- und Zustellachse: OSCILL
OSCILL[Pendelachse] = (Zustellachse1, Zustellachse2, Zustellachse3)
Mit dem Befehl OSCILL erfolgen die Achszuordnungen und der Start der Pendelbewegung.
Maximal können einer Pendelachse 3 Zustellachsen zugewiesen werden.

Hinweis
Vor dem Start des Pendelns müssen die Synchronbedingungen für das Verhalten der
Achsen festgelegt sein.
Zustellungen festlegen: POSP
POSP[Zustellachse] = (Endpos, Teillänge, Modus)
Mit dem Befehl POSP werden der Steuerung mitgeteilt:
● Gesamtzustellung (über die Endposition)
● Die Größe der jeweiligen Teilzustellung am Umkehrpunkt bzw. im Umkehrbereich
● Das Teilzustellverhalten bei Erreichen der Endposition (über den Modus)

Modus = 0 Für die beiden letzten Teilzustellungen erfolgt eine Aufteilung des
verbleibenden Weges bis zum Zielpunkt auf 2 gleich große
Restschritte (Voreinstellung).
Modus = 1 Alle Teilzustellungen sind gleich groß. Sie werden aus der
Gesamtzustellung berechnet.

Bewegungssynchronaktionen festlegen
Die im folgenden ausgeführten Bewegungssynchronaktionen werden ganz allgemein zum
Pendeln verwendet.
Sie finden Beispiellösungen für die Lösung von einzelnen Anforderungen, die Ihnen als
Bausteine für die Erstellung von anwenderspezifischen Pendelbewegungen dienen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 11-9
Pendeln
11.2 Über Synchronaktionen gesteuertes Pendeln

Hinweis
Im Einzelfall können die Synchronbedingungen auch anders programmiert werden.
Schlüsselwörter

WHEN … DO … wenn…, dann…


WHENEVER … DO immer wenn…, dann…

Funktionen
Mit den im folgenden detailliert beschriebenen Sprachmitteln können Sie folgende
Funktionen
realisieren:
1. Zustellung im Umkehrpunkt.
2. Zustellung im Umkehrbereich.
3. Zustellung in beiden Umkehrpunkten.
4. Anhalten der Pendelbewegung im Umkehrpunkt.
5. Pendelbewegung wieder starten.
6. Teilzustellung nicht zu früh starten.
Für alle hier beispielhaft dargestellten Synchronaktionen gelten die Annahmen:
● Umkehrpunkt 1 < Umkehrpunkt 2
● Z = Pendelachse
● X = Zustellachse

Hinweis
Für nähere Erläuterungen, siehe Kapitel Bewegungssynchronaktionen.

Pendeln- und Zustellachse zuordnen sowie Gesamt- und Teilzustellung festlegen


Zustellung im Umkehrbereich
Die Zustellbewegung soll innerhalb eines Umkehrbereichs beginnen, bevor der
Umkehrpunkt erreicht ist.
Diese Synchronaktionen verhindern die Zustellbewegung, bis sich die Pendelachse in einem
Umkehrbereich befindet.

Arbeitsvorbereitung
11-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Pendeln
11.2 Über Synchronaktionen gesteuertes Pendeln

Unter den gegebenen Annahmen (siehe oben) ergeben sich folgende Anweisungen:

Umkehrbereich 1:
WHENEVER $AA_IM[Z]>$SA_OSCILL_RESERVE_POS1[Z]+ii1 DO $AA_OVR[X] = 0
Immer wenn die aktuelle Position der Pendelachse im MKS
größer als der Beginn des Umkehrbereichs 1 ist,
dann setze den axialen Override der Zustellachse auf 0%.
Umkehrbereich 2:
WHENEVER $AA_IM[Z]<$SA_OSCILL_RESERVE_POS2[Z]+ii2 DO $AA_OVR[X] = 0
Immer wenn die aktuelle Position der Pendelachse im MKS
kleiner als der Beginn des Umkehrbereichs 2 ist,
dann setze den axialen Override der Zustellachse auf 0%.
Zustellung im Umkehrpunkt
Solange die Pendelachse den Umkehrpunkt nicht erreicht hat, findet keine Bewegung der
Zustellachse statt.
Unter den gegebenen Annahmen (siehe oben) ergeben sich folgende Anweisungen:

Umkehrbereich 1:
WHENEVER $AA_IM[Z]<>$SA_OSCILL_RESERVE_POS1[Z] DO $AA_OVR[X] = 0 →
→ $AA_OVR[Z] = 100
Immer wenn die aktuelle Position der Pendelachse Z im MKS
größer oder kleiner als die Position des Umkehrpunkts 1 ist,
dann setze den axialen Override der Zustellachse X auf 0%
und den axialen Override der Pendelachse Z auf 100% .
Umkehrbereich 2:
Für Umkehrpunkt 2:
WHENEVER $AA_IM[Z]<>$SA_OSCILL_RESERVE_POS2[Z] DO $AA_OVR[X] = 0 →
→ $AA_OVR[Z] = 100
Immer wenn die aktuelle Position der Pendelachse Z im MKS
größer oder kleiner als die Position des Umkehrpunkts 2 ist,
dann setze den axialen Override der Zustellachse X auf 0%
und den axialen Override der Pendelachse Z auf 100%.
Anhalten der Pendelbewegung im Umkehrpunkt
Die Pendelachse wird am Umkehrpunkt angehalten, gleichzeitig beginnt die
Zustellbewegung. Die Pendelbewegung wird fortgesetzt, wenn die Zustellbewegung
vollständig ausgeführt ist.
Gleichzeitig kann diese Synchronaktion dazu benutzt werden, die Zustellbewegung zu
starten, falls diese durch eine vorhergehende Synchronaktion, die noch wirksam ist,
gestoppt wurde.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 11-11
Pendeln
11.2 Über Synchronaktionen gesteuertes Pendeln

Unter den gegebenen Annahmen (siehe oben) ergeben sich folgende Anweisungen:

Umkehrbereich 1:
WHENEVER $SA_IM[Z]==$SA_OSCILL_RESERVE_POS1[Z] DO $AA_OVR[X] = 0 →
→ $AA_OVR[Z] = 100
Immer wenn die aktuelle Position der Pendelachse im MKS
gleich der Umkehrposition 1 ist,
dann setze den axialen Override der Pendelachse auf 0%
und den axialen Override der Zustellachse auf 100%.
Umkehrbereich 2:
WHENEVER $SA_IM[Z]==$SA_OSCILL_RESERVE_POS2[Z] DO $AA_OVR[X] = 0 →
→ $AA_OVR[Z] = 100
Immer wenn die aktuelle Position der Pendelachse im MKS
gleich der Umkehrposition 2 ist,
dann setze den axialen Override der Pendelachse auf 0%
und den axialen Override der Zustellachse auf 100%.
Online-Auswertung des Umkehrpunktes
Steht auf der rechten Seite des Vergleichs eine mit $$ gekennzeichnete Hauptlaufvariable,
so werden die beiden Variablen im IPO-Takt laufend ausgewertet und miteinander
verglichen.

Hinweis
Mehr Informationen hierzu siehe Kapitel "Bewegungssynchronaktionen".
Pendelbewegung wieder starten
Diese Synchronaktion wird dazu benutzt, die Bewegung der Pendelachse fortzusetzen,
wenn die Teilzustellbewegung abgeschlossen ist.
Unter den gegebenen Annahmen (siehe oben) ergeben sich folgende Anweisungen:

WHENEVER $AA_DTEPW[X]==0 DO $AA_OVR[Z] = 100


Immer wenn der Restweg für die Teilzustellung der Zustellachse X im WKS
gleich Null ist,
dann setze den axialen Override der Pendelachse auf 100%.
Nächste Teilzustellung
Nach erfolgter Zustellung muss ein zu frühes Starten der nächsten Teilzustellung verhindert
werden.
Dazu wird ein kanalspezifischer Merker ($AC_MARKER[Index]) verwendet, der am Ende
der Teilzustellung (Teilrestweg ≡ 0) gesetzt wird und beim Verlassen des Umkehrbereichs
gelöscht wird. Dann wird mit einer Synchronaktion die nächste Zustellbewegung verhindert.

Arbeitsvorbereitung
11-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Pendeln
11.2 Über Synchronaktionen gesteuertes Pendeln

Unter den gegebenen Annahmen (siehe oben) ergeben sich z. B. für Umkehrpunkt 1
folgende Anweisungen:

1. Marker setzen:
WHENEVER $AA_DTEPW[X]==0 DO $AC_MARKER[1] = 1
Immer wenn der Restweg für die Teilzustellung der Zustellachse X im WKS
gleich Null ist,
dann setze den Merker mit Index 1 auf 1.
2. Marker löschen
WHENEVER $AA_IM[Z]<> $SA_OSCILL_RESERVE_POS1[Z] DO $AC_MARKER[1] =
0
Immer wenn die aktuelle Position der Pendelachse Z im MKS
größer oder kleiner als die Position des Umkehrpunkts 1 ist,
dann setze den Merker 1 auf 0.
3. Zustellung verhindern
WHENEVER $AC_MARKER[1]==1 DO $AA_OVR[X] = 0
Immer wenn der Merker 1
gleich ist,
dann setze den axialen Override der Zustellachse X auf 0%.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 11-13
Pendeln
11.2 Über Synchronaktionen gesteuertes Pendeln

Arbeitsvorbereitung
11-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Stanzen und Nibbeln 12
12.1 12.1 Aktivierung, Deaktivierung

12.1.1 Stanzen und Nibbeln ein oder aus (SPOF, SON, PON, SONS, PONS,
PDELAYON/OF)

Funktion
Stanzen und Nibbeln aktivieren/deaktivieren, PON/SON
Mit PON und SON aktivieren Sie die Stanz- bzw. Nibbelfunktion. SPOF beendet alle stanz-
und nibbelspezifischen Funktionen. Die modal wirksamen Befehle PON und SON schließen
sich gegenseitig aus, d. h. PON deaktiviert SON und umgekehrt.
Stanzen und Nibbeln mit Vorspann, PONS/SONS
Die Funktionen SONS und PONS schalten ebenfalls die Stanz- bzw. Nibbelfunktionen ein.
Im Gegensatz zu SON/PON - Hubsteuerung auf Interpolationsebene - erfolgt bei diesen
Funktionen die signaltechnische Steuerung der Hubauslösung auf Servoebene. Hierdurch
können Sie mit höheren Hubfrequenzen und damit höherer Stanzleistung arbeiten.
Während der Signalauswertung im Vorspann sind alle Funktionen verriegelt, die zur
Positionsänderung der Nibbel- oder Stanzachsen führen.
Beispiel: Handradfahren, Änderungen von Frames über PLC, Messfunktionen.
Stanzen mit Verzögerung, PDELAYON/PDELAYOF
PDELAYON bewirkt eine verzögerte Ausgabe des Stanzhubs. Der modal wirksame Befehl
hat vorbereitende Funktion und steht damit in der Regel vor PON. Nach PDELAYOF wird
normal weitergestanzt.

Programmierung
PONS G... X... Y... Z...
oder
SON G... X... Y... Z...
oder
SONS G... X... Y... Z...
oder
SPOF

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 12-1
Stanzen und Nibbeln
12.1 Aktivierung, Deaktivierung

oder
PDELAYON
oder
PDELAYOF
oder
PUNCHACC(Smin,Amin, Smax, Amax)

Parameter

PON Stanzen ein


PONS Stanzen mit Vorspann ein
SON Nibbeln ein
SONS Nibbeln mit Vorspann ein
SPOF Stanzen, Nibbeln aus
PDELAYON Stanzen mit Verzögerung ein
PDELAYOF Stanzen mit Verzögerung aus
PUNCHACC Wegabhängige Beschleunigung PUNCHACC (Smin, Amin, Smax, Amax)
"Smin" Kleinster Lochabstand
"Smax" Größter Lochabstand
"Amin" Anfangsbeschleunigung Amin kann größer als Amax sein
"Amax" Endbeschleunigung Amax kann kleiner als Amin sein

Verwendung von M-Befehlen


Unter Ausnutzung der Makrotechnik können Sie anstelle der Sprachbefehle auch M-Befehle
verwenden:

DEFINE M25 AS PON Stanzen ein


DEFINE M125 AS PONS Stanzen mit Vorspann ein
DEFINE M22 AS SON Nibbeln ein
DEFINE M122 AS SONS Nibbeln mit Vorspann ein
DEFINE M26 AS PDELAYON Stanzen mit Verzögerung ein
DEFINE M20 AS SPOF Stanzen, Nibbeln aus
DEFINE M23 AS SPOF Stanzen, Nibbeln aus

Stanzen und Nibbeln mit Vorspann, PONS/SONS


Stanzen und Nibbeln mit Vorspann ist nicht gleichzeitig in mehreren Kanälen möglich. PONS
bzw. SONS kann nur jeweils in einem Kanal aktiviert werden.
Wird PONS oder SONS in mehr als einem Kanal gleichzeitig aktiviert, so erkennt der Alarm
2200 "Kanal %1 schnelles Stanzen/Nibbeln in mehreren Kanälen nicht möglich" diese
unerlaubte Aktion.
Anderweitig funktionieren PONS und SONS identisch wie PON und SON.

Arbeitsvorbereitung
12-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Stanzen und Nibbeln
12.1 Aktivierung, Deaktivierung

Wegabhängige Beschleunigung, PUNCHACC


Der Sprachbefehl PUNCHACC(Smin,Amin, Smax, Amax) legt eine Beschleunigungskennlinie
fest, die je nach Lochabstand (S) unterschiedliche Beschleunigungen (A) definiert.
Beispiel für PUNCHACC(2, 50, 10, 100):
Lochabstände unter 2mm:
Es wird mit eine Beschleunigung von 50% der Maximalbeschleunigung verfahren.
Lochabstände von 2mm bis 10mm:
Die Beschleunigung wird proportional zum Abstand auf 100% gesteigert.
Lochabstände größer als 10mm:
Verfahren mit einer Beschleunigung von 100%.

Auslösung des ersten Hubs


Die Auslösung des ersten Hubs nach Aktivierung der Funktion erfolgt beim Nibbeln und
Stanzen zeitlich unterschiedlich:
● PON/PONS:
– Alle Hübe - auch der des ersten Satzes nach Aktivierung - erfolgen im Satzende.
● SON/SONS:
– Der erste Hub nach Aktivierung des Nibbelns erfolgt bereits im Satzanfang.
– Alle weiteren Hübe werden jeweils im Satzende ausgelöst.

<

321

621

;
3RVLWLRQLHUHQ
3RVLWLRQLHUHQXQG+XEDXVO¸VXQJ

Stanzen und Nibbeln auf der Stelle


Eine Hubauslösung erfolgt nur dann, wenn der Satz eine Verfahrinformation für die Stanz-
oder Nibbelachsen (Achsen der aktiven Ebene) enthält.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 12-3
Stanzen und Nibbeln
12.2 Automatische Wegaufbereitung

Um dennoch einen Hub an gleicher Stelle auszulösen, programmieren Sie eine der Stanz-
/Nibbelachsen mit Verfahrweg 0.

Hinweis
Arbeiten mit drehbaren Werkzeugen
Um drehbare Werkzeuge tangential an die programmierte Bahn anzustellen, verwenden Sie
die Tangentialsteuerung.

12.2 12.2 Automatische Wegaufbereitung

Funktion
Unterteilung in Teilstrecken
Bei aktiviertem Stanzen bzw. Nibbeln bewirken sowohl SPP als auch SPN eine Aufteilung
der für die Bahnachsen programmierten Gesamtverfahrstrecke in eine Anzahl von
gleichlangen Teilstrecken (äquidistante Wegaufteilung). Intern entspricht jede Teilstrecke
einem Satz.
Anzahl der Hübe
Beim Stanzen erfolgt der erste Hub am Endpunkt der ersten Teilstrecke, beim Nibbeln
dagegen am Startpunkt der ersten Teilstrecke. Über die Gesamtfahrstrecke ergeben sich
damit folgende Zahlen:
Stanzen: Anzahl der Hübe = Anzahl der Teilstrecken
Nibbeln: Anzahl der Hübe = Anzahl der Teilstrecken + 1
Hilfsfunktionen
Hilfsfunktionen werden im ersten der erzeugten Sätze ausgeführt.

Programmierung
SPP=
oder
SPN=

Parameter

SPP Größe der Teilstrecke (maximaler Hubabstand); modal wirksam


SPN Anzahl der Teilstrecken pro Satz; satzweise wirksam

Arbeitsvorbereitung
12-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Stanzen und Nibbeln
12.2 Automatische Wegaufbereitung

Beispiel 1
Die programmierten Nibbelstrecken sollen automatisch in gleichgroße Teilstrecken aufgeteilt
werden.

  ;

 
 <

  
  



  

  

 

N100 G90 X130 Y75 F60 SPOF ;Positionieren auf Startpunkt 1


N110 G91 Y125 SPP=4 SON ;Nibbeln ein; maximale Teilstreckenlänge
;für automatische Wegaufteilung: 4 mm
N120 G90 Y250 SPOF ;Nibbeln aus; Positionieren auf
;Startpunkt 2
N130 X365 SON ;Nibbeln ein; maximale Teilstreckenlänge
;für automatische Wegaufteilung: 4 mm
N140 X525 SPOF ;Nibbeln aus; Positionieren auf
;Startpunkt 3
N150 X210 Y75 SPP=3 SON ;Nibbeln ein; maximale Teilstreckenlänge
;für automatische Wegaufteilung: 3 mm
N160 X525 SPOF ;Nibbeln aus; Positionieren auf
;Startpunkt 4
N170 G02 X-62.5 Y62.5 I J62.5 SPP=3 SON ;Nibbeln ein; maximale Teilstreckenlänge
;für automatische Wegaufteilung: 3 mm
N180 G00 G90 Y300 SPOF ;Nibbeln aus

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 12-5
Stanzen und Nibbeln
12.2 Automatische Wegaufbereitung

Beispiel 2
Für die einzelnen Lochreihen soll eine automatische Wegaufteilung erfolgen. Für die
Aufteilung wird jeweils die maximale Teilstreckenlänge (SPP-Wert) angegeben.

  ;

 <


 





   

N100 G90 X75 Y75 F60 PON ;Positionieren auf Startpunkt 1;


;Stanzen ein Einzelloch stanzen
N110 G91 Y125 SPP=25 ;Maximale Teilstreckenlänge für
;automatische Wegaufteilung: 25 mm
N120 G90 X150 SPOF ;Stanzen aus; Positionieren auf
;Startpunkt 2
N130 X375 SPP=45 PON ;Stanzen ein; maximale Teilstreckenlänge
;für automatische Wegaufteilung: 45 mm
N140 X275 Y160 SPOF ;Stanzen aus; Positionieren auf
;Startpunkt 3
N150 X150 Y75 SPP=40 PON ;Stanzen ein; anstelle der programmierten
;Teilstreckenlänge von 40 mm wird die
;berechnete Teilstreckenlänge von
;37,79 mm verwendet.
N160 G00 Y300 SPOF ;Stanzen aus; Positionieren

Arbeitsvorbereitung
12-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Stanzen und Nibbeln
12.2 Automatische Wegaufbereitung

12.2.1 Wegaufteilung bei Bahnachsen

Länge der Teilstrecke SPP


Mit SPP geben Sie den maximalen Hubabstand und damit die maximale Länge der
Teilstrecken an, in die die Gesamtverfahrstrecke aufgeteilt werden soll. Das Ausschalten des
Befehls erfolgt mit SPOF oder SPP=0.
Beispiel:
N10 SON X0 Y0
N20 SPP=2 X10
Die Gesamtverfahrstrecke von 10 mm wird in 5 Teilstrecken von je 2 mm (SPP=2) aufgeteilt.

Hinweis
Die Wegaufteilung mit SPP erfolgt immer äquidistant: alle Teilstrecken sind gleich lang. Das
heißt, die programmierte Teilstreckengröße (Wert von SPP) ist nur dann gültig, wenn der
Quotient aus Gesamtverfahrstrecke und SPP-Wert ganzzahlig ist. Ist das nicht der Fall, so
wird die Größe der Teilstrecke intern so reduziert, dass sich ein ganzzahliger Quotient ergibt.

<

<

(

(

; ;

;< 3URJUDPPLHUWHU9HUIDKUZHJ 1LEEHORGHU6WDQ]VDW] 


3URJUDPPLHUWH7HLOVWUHFNHQO¦QJH
(
(

$XWRPDWLVFKDEJHUXQGHWH7HLOVWUHFNHQO¦QJH

Beispiel:
N10 G1 G91 SON X10 Y10
N20 SPP=3.5 X15 Y15
Bei der Gesamtverfahrstrecke von 15 mm und einer Teilstreckenlänge von 3,5 mm ergibt
sich ein nicht ganzzahliger Quotient (4.28). Somit erfolgt eine Reduktion des SPP-Werts bis
zum nächstmöglichen ganzzahligen Quotienten. In diesem Fall ergibt sich eine
Teilstreckenlänge von 3 mm.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 12-7
Stanzen und Nibbeln
12.2 Automatische Wegaufbereitung

Anzahl der Teilstrecken SPN


Mit SPN definieren Sie die Anzahl der Teilstrecken, die aus der Gesamtverfahrstrecke
erzeugt werden soll. Die Länge der Teilstrecken wird automatisch berechnet. Da SPN
satzweise wirksam ist, muss vorher Stanzen oder Nibbeln mit PON oder SON aktiviert
werden.

SPP und SPN im gleichen Satz


Programmieren Sie in einem Satz sowohl die Teilstreckenlänge (SPP) als auch Anzahl der
Teilstrecken (SPN), so gilt für diesen Satz SPN, für alle weiteren SPP. Wurde SPP schon
vor SPN aktiviert, so wird es nach dem Satz mit SPN wieder wirksam.

<

<

<

; ;
;
;<3URJUDPPLHUWH9HUIDKUVWUHFNH
;$XWRPDWLVFKHUUHFKQHWH7HLOVWUHFNHLQ ;
<$XWRPDWLVFKHUUHFKQHWH7HLOVWUHFNHLQ <

Hinweis
Sofern Stanzen/Nibbeln grundsätzlich in der Steuerung verfügbar ist, ist die Programmierung
der automatischen Wegaufteilung mit SPN bzw. SPP auch unabhängig von dieser
Technologie aktivierbar.

Arbeitsvorbereitung
12-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Stanzen und Nibbeln
12.2 Automatische Wegaufbereitung

12.2.2 Wegaufteilung bei Einzelachsen


Sind neben den Bahnachsen auch Einzelachsen als Stanz-Nibbel-Achse definiert, so
können auch sie der automatischen Wegaufteilung unterliegen.

Verhalten der Einzelachse bei SPP


Die programmierte Länge der Teilstrecke (SPP) bezieht sich grundsätzlich auf die
Bahnachsen. Daher wird in einem Satz, in dem neben der Einzelachsbewegung und dem
SPP-Wert keine Bahnachse programmiert ist, der SPP-Wert ignoriert.
Sind sowohl Einzel- als auch Bahnachse im Satz programmiert, so richtet sich das Verhalten
der Einzelachse nach der Einstellung des entsprechenden Maschinendatums.
1. Standardeinstellung
Der Weg der Einzelachse wird gleichmäßig auf die durch SPP erzeugten Zwischensätze
verteilt.
Beispiel:
N10 G1 SON X10 A0
N20 SPP=3 X25 A100
Durch die Hubstrecke von 3 mm werden bei der Gesamtverfahrstrecke der X-Achse
(Bahnachse) von 15 mm 5 Sätze erzeugt.
Die A-Achse dreht sich damit in jedem Satz um 20°.

  




 

1. Einzelachse ohne Wegaufteilung


Die Einzelachse verfährt ihren Gesamtweg im ersten der erzeugten Sätze.
2. Unterschiedliche Wegaufteilung
Das Verhalten der Einzelachse ist abhängig von der Interpolation der Bahnachsen:
● Kreisinterpolation: Wegaufteilung
● Linearinterpolation: keine Wegaufteilung

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 12-9
Stanzen und Nibbeln
12.2 Automatische Wegaufbereitung

Verhalten bei SPN


Die programmierte Anzahl von Teilstrecken gilt auch, wenn nicht gleichzeitig eine
Bahnachse programmiert ist.
Voraussetzung: Einzelachse ist als Stanz-Nibbel-Achse definiert.

Arbeitsvorbereitung
12-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen 13
13.1 13.1 Achsfunktionen (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING)

Funktion
AXNAME wird z. B. bei der Erstellung allgemeingültiger Zyklen verwendet, wenn die Namen
der Achsen nicht bekannt sind (siehe hierzu auch Kapitel "Stringfunktionen").
SPI wird verwendet, wenn Achsfunktionen für eine Spindel, z. B. Synchronspindel,
verwendet werden.
ISAXIS wird in allgemeingültigen Zyklen verwendet, um sicherzustellen, dass eine
bestimmte Geometrieachse vorhanden ist und damit ein nachfolgender Aufruf von $P_AXNX
nicht mit Fehler abgebrochen wird.

Programmierung
AXNAME(Planachse)
oder
AX[AXNAME(String)]
oder
SPI(n)
oder
AXTOSPI(X) oder AXTOSPI(Y) oder AXTOSPI(Z)
oder
AXSTRING(SPI(n))
oder
ISAXIS(Geometrieachsnummer)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-1
Weitere Funktionen
13.1 Achsfunktionen (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING)

Parameter

AXNAME Konvertiert einen Eingangsstring in Achsbezeichner; der


Eingangsstring muss gültigen Achsnamen enthalten.
AX Variabler Achsbezeichner
SPI Konvertiert Spindelnummer in Achsbezeichner; der
Übergabeparameter muss eine gültige Spindelnummer enthalten.
n Spindelnummer
AXTOSPI Wandelt einen Achsbezeichner in einen Spindelindex vom Typ
Integer um. AXTOSPI entspricht der Umkehrfunktion zu SPI.
X, Y, Z Achsbezeichner vom Typ AXIS als Variable oder Konstante
AXSTRING Es wird der String mit zugeordneter Spindelnummer ausgegeben.
ISAXIS Prüft, ob die angegebene Geometrieachse vorhanden ist.

SPI Erweiterungen
Die Achsfunktion SPI(n) ist auch für das Lesen und Schreiben von Framekomponenten
einsetzbar. Damit können Frames z. B. mit der Syntax $P_PFRAME[SPI(1),TR]=2.22
geschrieben werden. Durch die zusätzliche Programmierung von Achs-Position über die
Adresse AX[SPI(1)] = <Achsposition> kann eine Achse kann verfahren werden.
AXTOSPI Erweiterung
Mit AXTOSPI kann ein Achsbezeichner in eine Spindelnummer konvertiert werden. Kann der
Achsbezeichner nicht in eine Spindelnummer gewandelt werden, so erfolgt eine
Alarmmeldung.
Fehlerbehebung bei AXSTRING[ SPI(n) ]
Bei der Programmierung mit AXSTRING[ SPI(n) ] wird nicht mehr der Achsindex der
Achse, der die Spindel zugeordnet ist als Spindelnummer ausgegeben, sondern es wird der
String "Sn" ausgegeben.
Beispiel:
AXSTRING[ SPI(2) ] liefert den String "S2"

Beispiel
Die als Planachse definierte Achse soll bewegt werden.

OVRA[AXNAME("Planachse")]=10 ;Planachse
AX[AXNAME("Planachse")]=50.2 ;Endposition für Planachse
OVRA[SPI(1)]=70 ;Override für Spindel 1
IF ISAXIS(1)==FALSE GOTOF WEITER ;Abszisse vorhanden?
AX[$P_AXN1]=100 ;Abszisse verfahren
WEITER:

Arbeitsvorbereitung
13-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.2 Vorhandenen NC-Sprachumfang prüfen (STRINGIS)

13.2 13.2 Vorhandenen NC-Sprachumfang prüfen (STRINGIS)

Funktion
Der bei einer SINUMERIK 840D sl generierte NC-Sprachumfang einschließlich der aktiven
GUD-/Makro-Definitionen sowie die installierten und aktiven Zyklenprogramme können mit
dem Befehl STRINGIS auf ihre tatsächliche Verfügbarkeit und ihre programmierspezifischen
Eigenschaften überprüft werden. So ist es z.B. möglich, bereits zu Beginn einer
Programminterpretation nicht aktivierte Funktionen auf ihre Wirksamkeit festzustellen.
Die Rückgabewerte werden über die HMI Bedienoberfläche stellencodiert ausgegeben und
beinhalten Basisinformationen und zusätzlich stellenkodierte Detailinformationen.

Programmierung
STRGINGIS(STRING name) = stellenkodierter Rückgabewert
In der aktuellen Ausbaustufe wird der zu prüfende (STRING name) grundsätzlich mit
000 als nicht bekannt identifiziert.
100 als NC-Sprachbefehl erkannt, der aber nicht programmierbar ist.
Alle programmierbaren NC-Sprachbefehl die als Option oder Funktion aktiv sind, werden mit
2xx erkannt. Dazugehörige Detailinformationen werden unter Wertebereiche näher erklärt.

Parameter
Maschinenhersteller
Die Art und Weise wie und mit welchen NC-Sprachbefehlen verfahren werden soll, wird vom
Maschinenhersteller über ein Maschinendatum festgelegt.
Werden Sprachbefehle programmiert, deren Funktion nicht aktiv ist oder die im nicht
aktuellen Umfang bekannt sind, so führt dies zu einer Alarmmeldung. Bitte beachten Sie in
diesem Fall die Angaben des Maschinenherstellers

STRINGIS Prüft dem vorhandenen NC-Sprachumfang und speziell für diesen


Befehl gehörende NC-Zyklennamen, Anwendervariablen, Makros und
Label-Namen ob diese existieren, gültig, definiert oder aktiv
sind. Der NC-Sprachbefehl STRINGIS ist eine Variable vom Typ
Integer.
Speziell für NC-Zyklennamen (eines aktiven Zyklus)
STRINGIS GUD-Variablen
LUD-Variablen
Makros
Label-Namen
STRING name Variablenbezeichner des zu prüfenden NC-Sprachumfangs und
Übergabeparameter erkannter Werte vom Typ STRING.

Der Sprachbefehl ISVAR stellt eine Untermenge des Befehls STRINGIS dar und kann
weiterhin für bestimmte Prüfungen eingesetzt werden.
Zum Verhalten eines STING selbst, siehe Kapitel "Stringfunktionen".

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-3
Weitere Funktionen
13.2 Vorhandenen NC-Sprachumfang prüfen (STRINGIS)

NC-Sprachumfang
Für SINUMERIK powerline sind weiterhin alle verfügbaren und auch speziell die nicht
benötigten und aktiven Sprachbefehle bekannt. Der bei SINUMERIK solution line zu
prüfende Sprachumfang ist abhängig vom vorkonfigurierten Maschinendatum und umfasst
entweder alle bekannten oder speziell nur die freigegebenen Optionen oder aktiven
Funktionen im aktuellen NC-Sprachumfang.

NC-Sprachumfang Zum NC-Sprachumfang gehören:


G-Codes aller existierenden G-Code-Gruppen wie z.B. G0, G1,
G2, INVCW, POLY, ROT, KONT, SOFT, CUT2D, CDON, RMB, SPATH
DIN- oder NC-Adressen wie z.B. ADIS, RNDM, SPN, SR , MEAS
NC-Sprachfunktionen wie z.B. vordefinierte Unterprogramme
TANG(FAchse1..n, LAchse1..n, Koppelfaktor).
NC-Sprachprozeduren (vordefinierte Prozeduren mit
Rückgabewert) wie z.B. Unterprogrammauf mit Parameterübergabe
GETMDACT.
NC-Sprachprozeduren (vordefinierte Prozeduren ohne
Rückgabewert) wie z.B. Einzelsatzunterdrückung ausschalten
SBLOF.
NC-Schlüsselworte wie z.B. ACN, ACP, AP, RP, DEFINE, SETMS
Maschinendaten $MN allgemeine, $MA axiale, $MC
kanalspezifische sowie alle Settingdaten $S... und Otionsdaten
$O... .
NC-Systemvariable $ im Teileprogramm und Synchronaktionen
sowie NC-Rechenparameter R.

Rückgabewerte

Basisinformationen Der Rückgabewert ist stellenkodiert. Enthaltene


Basisinformationen sind in y und vorhandene
Stellenkodierung: Detailinformationen in x unterteilt.
Prüfungsergebnis, ob in der aktuellen Ausbaustufe:
000 Der STRING name dem NCK nicht bekannt ist.
100 Der STRING name ein Sprachbefehl ist, aber nicht
programmierbar ist, d.h. das diese Funktion inaktiv ist.
2xx Der STRING name ein programmierbarer Sprachbefehl ist, d.h.
das diese Funktion aktiv ist.
y00 Keine Zuordnung möglich ist
y01 bis y11 Wertebereiche für vorhandene Detailinformationen bekannt sind.
400 NC-Adressen, die nicht xx=01 oder xx=10 haben und die kein G-
Code G oder Rechenparameter R sind, siehe Anmerkung (1).

Hinweis
Wenn sich bei einer Prüfung mit STRINGIS keine andere Stellenkodierung ergeben sollte,
dann gilt der entsprechende NC-Sprachbefehl als programmierbar und es gilt die
Stellenkodierung 2xx.

Arbeitsvorbereitung
13-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.2 Vorhandenen NC-Sprachumfang prüfen (STRINGIS)

Wertebereiche 2xx der Detailinformationen

Detailinformationen Bedeutung des Prüfergebnisses:


200 Keine Interpretation ist möglich
201 Eine DIN-Adresse bzw. NC-Adresse definiert ist, d.h. ob vom
her Namen die Adressbuchstaben erkannt wurden, siehe
Anmerkungen (1)
202 G-Codes aus den existierenden G-Code-Gruppen erkannt wurden.
203 NC-Sprachfunktionen mit Rückgabewert und Parameterübergabe
vorhanden sind.
204 NC-Sprachprozeduren ohne Rückgabewert mit Parameterübergabe
vorhanden sind.
205 NC-Schlüsselworte vorhanden sind.
206 Allgemeine, axiale oder kanalspezifische Maschinendaten
($M...), Settingdaten ($S...) oder Optionsdaten($O...)
vorhanden sind.
207 Anwendervariable wie z.B. NC-Systemvariable beginnend mit $...
oder Rechenparameter beginnend mit R vorhanden sind.
208 Die Zyklen-Namen im NCK geladen wurden und auch
Zyklenprogramme aktiviert sind, siehe Anmerkung (2).
209 Von Globalen Anwendervariablen (GUD-Variablen) der definierte
Name erkannt und aktivierte GUD-Variable gefunden wurden.
210 Die Makronamen mit der in Makro-Definitionsdateien definierten
Namen und aktivierte Makros gefunden wurden, siehe Anmerkung
(3).
211 Von Lokalen Anwendervariablen (LUD-Variablen) dessen Name in
einem aktuellen Programm enthalten ist.

Hinweis
Anmerkungen zu einzelnen Rückgabewerten
(1) Als DIN-Adressen werden fest genormte Adressen erkannt. Für die NC-Adressen mit
einstellbaren Bezeichnern gelten folgende Festlegungen für Geometrieachsen:
A, B, C für angegebene Rundachsen, E ist reserviert für Erweiterungen und
I, J, K, Q, U, V, W, X, Y, Z für angegebene Linearachsen.
Die Achsbezeichner können mit Adresserweiterung programmiert werden und für die
Prüfung z.B. 201 = STRINGIS("A1") geschrieben werden.
Die folgenden Adressen können nicht mit Adresserweiterung für die Prüfung geschrieben
werden und liefernden immer den fixen Wert 400.
Beispiel 400 = STRINGIS("D") oder die Angabe einer Adresserweiterung mit
0 = STRINGIS("M02") führt zu 400 = STRINGIS("M").
(2) Zyklenparameternamen können mit STRINGIS nicht geprüft werden.
(3) als Makro definierte NC-Adressbuchstaben G, H, L, M werden als Makro identifiziert.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-5
Weitere Funktionen
13.2 Vorhandenen NC-Sprachumfang prüfen (STRINGIS)

Gültige NC-Adressen ohne Adressenerweiterung mit den fixen Wert 400


Gültig sind die NC-Adressen D, F, G, H, R sowie L, M, N, O, P, S, T. So ist

400 D als Werkzeugkorrektur, Schneidenummer (D-Funktion)


F als Vorschub (F-Funktion)
G ist als G-Code definiert (hier nicht die Wegbedingung)
H steht für Hilfsfunktion (H-Funktion)
R ist als Systemparameter definiert sowie steht:
L für Unterprogrammaufruf, M für Zusatzfunktion, N für
Nebensatz,
O frei für Erweiterungen,
P für Anzahl der Programmläufe,
S für Spindeldrehzahl (S-Funktion),
T für Werkzeugnummer (T-Funktion).

Beipiel für programmierbare Hilfsfunktion T

T ist als Hilfsfunktion definiert und immer programmierbar.


400 = STRINGIS("T") ;Rückgabewert ohne Adresserweiterung
0 = STRINGIS("T3") ;Rückgabewert mit Adresserweiterung

Beispiele weiterer Prüfungen des programmierbaren NC-Sprachumfangs 2xx

X ist als Achse definiert ;Achse ist eine Linearachse X


201 = STRINGIS("X") ;Rückgabewert Linearachse X
201 = STRINGIS("X1") ;Rückgabewert Linearachse X1
A2 ist eine NC-Adresse mit Erweiterung ;NC-Adresse A2 mit Erweiterung
201 = STRINGIS("A") ;Rückgabewert bei NC-Adresse A
201 = STRINGIS("A2") ;bei erweiterter NC-Adresse A2
INVCW ist ein definierte G-Code ;INVCW ist G-Code Evolventen-
;interpolation im Uhrzeigersinn.
202 = STRINGIS("INVCW") ;Rückgabewert des benamten G-Codes
GETMDACT ist eine NC-Sprachfunktion ;die NC-Sprachfunktion GETMDACT ist
;vorhanden.
203 = STRINGIS("GETMDACT") ;GETMDACT ist eine NC-Sprachfunktion
DEFINE ist ein NC-Schlüsselwort ;das Schlüsselwort DEFINE zur
;Kennzeichnung von Makros existiert.
205 = STRINGIS("DEFINE") ;DEFINE als Schlüsselwort vorhanden
das $MC_GCODES_RESET_VALUES ist ein ;es existiert das Maschinendatum
kanalspezifisches Maschinendatum ;$MC_GCODE_RESET_VALUES.
206 = STRINGIS("$MC_GCODE_RESET_VALUES") ;$MC_GCODE_RESET_VALUES ist
;als Maschinendatum erkannt worden
$TC_DP3 ist eine Systemvariable für eine ;NC-Systemvariable $TC_DP3 für
Werkzeuglängenkomponente ;Werkzeuglängenkomponente existiert.
207 = STRINGIS("$TC_DP3") ;$TC_DP3 als Systemvariable erkannt.

Arbeitsvorbereitung
13-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.3 Funktionsaufruf ISVAR ( ) und Maschinendaten Array-Index lesen

$TC_TP4 ist eine Systemvariable für eine ;NC-Systemvariable $TC_TP4 für


Werkzeuggröße ;Werkzeuggröße existiert.
207 = STRINGIS("$TC_TP4") ;$TC_TP4 als Systemvariable erkannt.
$TC_MPP4 ist eine Systemvariable für den ;Prüfung der Magazinverwaltung auf
Magazinplatzzustand
207 = STRINGIS("$TC_MPP4") ;Magazinverwaltung ist aktiv
0 = STRINGIS("$TC_MPP4") ;Magazinverwaltung ist nicht
;verfügbar (4)
MACHINERY_NAME ist als GUD-Variable definiert ;Globale Anwendervariable ist als
;MACHINERY_NAME definiert.
209 = STRINGIS("MACHINERY_NAME") ;MACHINERY_NAME als GUD gefunden
LONGMACRO ist als Makro definiert ;Makroname heisst LONGMACRO
210 = STRINGIS("LONGMACRO") ;Makro als LONGMACKRO identifiziert
MYVAR ist als LUD-Variable definiert ;Lokale Anwendervariable ist als
;MYVAR benannt worden
211 = STRINGIS("MYVAR") ;LUD-Variable ist als Name MYVAR im
;aktuellen Programm enthalten
X, Y, Z ist ein in der NC unbekannter Befehl ;X,Y,Z ist unbekannter Sprachbefehl
;und auch kein GUD/Makro/Zyklenname
0 = STRINGIS("XYZ") ;STRING name X, Y, Z ist unbekannt

(4) Für die Systemparameter der Magazinverwaltung gilt speziell die Eigenschaft falls die
Funktion nicht aktiv ist, dann liefert STRINGIS unabhängig vom eingestellten Wert des
Maschinendatums zur Konfiguration des NC-Sprachumfangs stets den Ergebniswert = 0.

13.3 13.3 Funktionsaufruf ISVAR ( ) und Maschinendaten Array-Index lesen

Funktion
Der ISVAR-Befehl ist eine Funktion im Sinne der NC-Sprache mit einem:
● Funktionswert vom Typ BOOL
● Übergabeparameter vom Typ STRING
Der ISVAR-Befehl liefert TRUE, wenn der Übergabeparameter eine in der NC bekannte
Variable enthält (Maschinendatum, Settingdatum, Systemvariable, allgemeine Variablen wie
GUD's).

Programmierung
ISVAR(Variablenbezeichner)
oder
ISVAR(Bezeichner, [Wert, Wert])

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-7
Weitere Funktionen
13.3 Funktionsaufruf ISVAR ( ) und Maschinendaten Array-Index lesen

Parameter

Variablenbezeichner Übergabeparameter vom Typ String kann entweder


dimensionslos, eindimensional oder zweidimensional sein.
Bezeichner Bezeichner mit einer der NC bekannten Variable mit oder
ohne Array-Index als Maschinendatum, Settingdatum,
Systemvariable oder allgemeine Variable.
Erweiterung:
Bei allgemeinen und kanalspezifischen Maschinendaten wird
das erste Element des Array auch bei fehlenden Index
gelesen
Wert Funktionswert vom Typ BOOL

Prüfungen
Entsprechend dem Übergabeparameter werden folgende Prüfungen durchgeführt:
● Ist der Bezeichner vorhanden
● Handelt es sich um ein- oder zweidimensionales Feld
● Ist ein Array-Index erlaubt
Nur wenn alle diese Prüfungen positiv sind, wird TRUE zurückgeliefert. Wird nur eine
Prüfung nicht erfüllt oder ist ein Syntaxfehler aufgetreten, dann wird dies mit FALSE quittiert.
Axialen Variablen werden als Index für die Achsnamen akzeptiert, jedoch nicht näher
geprüft.
Erweiterung: Maschinendaten und Settingdaten Array ohne Index lesen.
Bei fehlenden Index von allgemeinen und kanalspezifischen Maschinendaten wird der Alarm
12400 "Kanal % 1 Satz % 2 Feld % 3 Element nicht vorhanden" nicht mehr ausgegeben.
Weiterhin muss mindestens der Achsindex bei achsspezifischen Maschinendaten
programmiert werden. Anderenfalls wird der Alarm 12400 abgesetzt.

Beispiel Funktionaufruf ISVAR

DEF INT VAR1


DEF BOOL IS_VAR=FALSE ;Übergabeparameter ist allgemeine Variable
N10 IS_VAR=ISVAR("VAR1") ;IS_VAR ist in diesem Fall TRUE
DEF REAL VARARRAY[10,10]
DEF BOOL IS_VAR=FALSE ;verschiedene Syntaxvarianten
N20 IS_VAR=ISVAR("VARARRAY[,]") ;IS_VAR ist TRUE mit einen
;zweidimensionalen Array
N30 IS_VAR=ISVAR("VARARRAY") ;IS_VAR ist TRUE, Variable existiert
N40 IS_VAR=ISVAR ;IS_VAR ist FALSE, Arrayindex ist nicht erlaubt
("VARARRAY[8,11]")
N50 IS_VAR=ISVAR("VARARRAY[8,8") ;IS_VAR ist FALSE, Syntaxfehler für
;fehlende "]"
N60 IS_VAR=ISVAR("VARARRAY[,8]") ;IS_VAR ist TRUE, Arrayindex ist erlaubt
N70 IS_VAR=ISVAR("VARARRAY[8,]") ;IS_VAR ist TRUE
DEF BOOL IS_VAR=FALSE ;Übergabeparameter ist ein Maschinendatum

Arbeitsvorbereitung
13-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.3 Funktionsaufruf ISVAR ( ) und Maschinendaten Array-Index lesen

N100 IS_VAR=ISVAR ;IS_VAR ist TRUE


("$MC_GCODE_RESET_VALUES[1]"
DEF BOOL IS_VAR=FALSE ;Übergabeparameter ist eine Systemvariable
N10 IS_VAR=ISVAR("$P_EP") ;IS_VAR ist in diesem Fall TRUE
N10 IS_VAR=ISVAR("$P_EP[X]") ;IS_VAR ist in diesem Fall TRUE

Beispiel Maschinendaten Array mit und ohne Index lesen


Das erste Element wird gelesen bei
R1=$MC_EXTERN_GCODE_RESET_VALUES
dies entspricht wie bisher
R1=$MC_EXTERN_GCODE_RESET_VALUES[0]
oder gelesen wird das erste Element
R1=$MA_POSTCTRL_GAIN[X1]
dies entspricht wie bisher
R1=$MA_POSTCTRL_GAIN[0, X1]
Gelesen wird auch das erste Element in Synchronaktionen bei
WHEN TRUE DO $R1 = $MC_EXTERN_GCODE_RESET_VALUES
dies entspricht wie bisher
WHEN TRUE DO $R1 = $MC_EXTERN_GCODE_RESET_VALUES[0]
und wurde bisher mit Alarm 12400 nicht gelesen.
Der Alarm 12400 wird weiterhin ausgegeben bei
R1=$MA_POSTCTRL_GAIN

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-9
Weitere Funktionen
13.4 Kompensationskennlinien einlernen (QECLRNON, QECLRNOF)

13.4 13.4 Kompensationskennlinien einlernen (QECLRNON, QECLRNOF)

Funktion
Die Quadrantenfehlerkompensation (QFK) reduziert die Konturfehler, die bei Umkehr der
Fahrtrichtung durch mechanische Nichtlinearitäten (z. B. Reibung, Lose) oder Torsion
entstehen. Die optimalen Kompensationsdaten können aufgrund eines neuronalen Netzes
von der Steuerung während einer Lernphase adaptiert und so die Kompensationskennlinien
automatisch ermittelt werden. Das Lernen kann für bis zu 4 Achsen gleichzeitig erfolgen.

[ P

,, ,




[ P

,,, ,9

Programmierung
QECLRNON
oder
QECLRNOF
Lernvorgang aktivieren: QECLRNON
Der eigentliche Lernvorgang wird im NC-Programm mit dem Befehl QECLRNON unter Angabe
der Achsen aktiviert:
QECLRNON (X1, Y1, Z1, Q)
Nur wenn dieser Befehl aktiv ist, werden die Kennlinien verändert.
Lernen ausschalten: QECLRNOF
Nachdem die Lernbewegungen der gewünschten Achsen abgeschlossen sind, wird der
Lernvorgang mit QECLRNOF für alle Achsen gleichzeitig ausgeschaltet.

Arbeitsvorbereitung
13-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.4 Kompensationskennlinien einlernen (QECLRNON, QECLRNOF)

Parameter

QECLRNON (Achse.1,…4) Funktion "Quadrantenfehlerkompensation lernen"


einschalten
QECLRNOF Funktion "Quadrantenfehlerkompensation lernen"
ausschalten
[Link] Lernzyklus
[Link] Muster-NC-Programm für Belegen der Systemvariablen und
für die Parametrierung des Lernzyklus
[Link] Muster-NC-Programm für Kreisformtest

Beschreibung
Die zum Lernen erforderlichen Verfahrbewegungen der Achsen werden mit Hilfe eines NC-
Programms generiert. In diesem liegen die Lernbewegungen in Form eines Lernzyklus vor.
Erstmaliges Einlernen
Zum erstmaligen Einlernen bei der Inbetriebnahme sind auf der Diskette des PLC-
Grundprogramms Muster-NC-Programme zum Einlernen für die Lernbewegungen sowie für
die Belegung der QFK-Systemvariablen enthalten:
Nachlernen
Eine Nachoptimierung der bereits gelernten Kennlinien ist mit "Nachlernen" möglich. Dabei
wird auf den bisherigen im Anwenderspeicher befindlichen Daten aufgesetzt. Zum
Nachlernen passen Sie die Muster-NC-Programme an Ihre Anforderungen an.
Die Parameter des Lernzyklus (z. B. [Link]) sind gegebenenfalls für das
"Nachlernen" abzuändern:
● "Lernmodus" = 1 setzen
● "Anzahl der Lerndurchläufe" ggf. reduzieren
● "Abschnittsweises Lernen" ggf. aktivieren und zugehörige Bereichsgrenzen festlegen

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-11
Weitere Funktionen
13.5 Synchronspindel

13.5 13.5 Synchronspindel

Funktion
Im Synchronbetrieb gibt es eine Leitspindel (LS) und eine Folgespindel (FS), das sog.
Synchronspindelpaar. Die Folgespindel folgt bei aktiver Kopplung (Synchronbetrieb) den
Bewegungen der Leitspindel entsprechend dem festgelegten Funktionszusammenhang.
Die Synchronspindelpaare lassen sich für jede Maschine sowohl mit Hilfe von
kanalspezifischen Maschinendaten fest projektieren oder über das CNC-Teileprogramm
anwendungsspezifisch definieren. Je NC-Kanal sind bis zu 2 Synchronspindelpaare
gleichzeitig betreibbar.
Die Kopplung kann aus dem Teileprogramm
● definiert bzw. geändert
● eingeschaltet
● ausgeschaltet
● gelöscht
werden.
Darüber hinaus kann abhängig vom Softwarestand
● auf die Synchronlaufbedingung gewartet
● das Satzwechselverhalten verändert
● die Kopplungsart entweder Sollwertkopplung oder Istwertkopplung ausgewählt oder der
Winkelversatz zwischen Leit- und Folgespindel vorgegeben
● beim Einschalten der Kopplung eine vorhergehende Programmierung der Folgespindel
übernommen
● entweder eine gemessene oder eine bereits bekannte Synchronlaufabweichung korrigiert
werden.

13.5.1 Synchronspindel (COUPDEF, COUPDEL, COUPON/ONC, COUPOF/OFS,


COUPRES)

Funktion
Die Funktion Synchronspindel bietet für Drehmaschinen die Möglichkeit der fliegenden
Werkstückübergabe während des Laufs von Spindel 1 auf Spindel 2, z. B. zur
Endbearbeitung, unter Vermeidung von Nebenzeiten durch Umspannen.
Die Werkstückübergabe kann erfolgen mit:
● Drehzahl-Synchronität (nFS = n LS)
● Lagesynchronität (ϕFS = ϕLS)
● Lagesynchronität mit Winkelversatz (ϕFS = ϕLS+ ∆ϕ)

Arbeitsvorbereitung
13-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.5 Synchronspindel

6SDQQPLWWHO

Q Q
6SLQGHO 6SLQGHO

Q Q
6SLQGHO 6SLQGHO

Q Q
6SLQGHO 6SLQGHO

Die Vorgabe eines Übersetzungsverhältnisses kÜ zwischen der Hauptspindel und einer


"Werkzeugspindel" bietet die Voraussetzung zur Mehrkantbearbeitung (Polygondrehen).

Q Q

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-13
Weitere Funktionen
13.5 Synchronspindel

Programmierung
COUPDEF(FS, LS, ÜFS, ÜLS, Satzverh, Koppelart)
COUPON(FS, LS, POSFS)
COUPONC(FS, LS)
COUPOF(FS, LS, POSFS, POSLS)
COUPOFS(FS, LS)
COUPOFS(FS, LS, POSFS)
COUPRES(FS, LS)
COUPDEL(FS, LS)
WAITC(FS, Satzverh., LS, Satzverh)
Es ist auch die verkürzte Angabe ohne Leitspindel möglich für:
COUPOF(FS), COUPOFS(FS), COUPRES(FS), COUPDEL(FS)

Hinweis
Bei jeder Anweisung COUPDEF, COUPON und COUPONC müssen Folgespindel und
Leitspindel programmiert werden, damit keine Alarmmeldungen abgesetzt werden.
Die anderen Kopplungsparameter müssen nur dann programmiert werden, wenn sie
geändert werden sollen. Für nicht angegebene Parameter bleibt der letzte Zustand erhalten.

Parameter

COUPDEF Kopplung anwenderdefiniert anlegen/ändern


COUPON Kopplung einschalten. Ausgehend von der aktuellen Drehzahl
synchronisiert sich die Folgespindel auf Leitspindel
COUPONC Kopplung beim Einschalten mit vorhergehender Programmierung
von M3 S... oder M4 S... übernehmen.
Eine Differenzdrehzahl der Folgespindel wird sofort
übernommen.
COUPOF Kopplung ausschalten. Satzwechsel Schnellstmöglich mit
sofortigen Satzwechsel: COUPOF(S2, S1)
Satzwechsel erst nach Überfahren der
Ausschaltposition: COUPOF(S2, S1, POSFS)
Ausschaltpositionen: COUPOF(S2, S1, POSFS, POSLS)
COUPOFS Ausschalten einer Kopplung mit Stopp der Folgespindel.
Satzwechsel Schnellstmöglich mit sofortigen Satzwechsel:
COUPOFS(S2, S1) Satzwechsel erst nach Überfahren der
Ausschaltposition: COUPOFS(S2, S1, POSFS)
COUPRES Kopplungsparameter zurücksetzen auf projektierte MD und SD
COUPDEL Anwenderdefinierte Kopplung löschen
WAITC Warten Synchronlaufbedingung
(NOC werden auf IPO bei Satzwechsel aufgehoben)
FS Bezeichnung der Folgespindel

Arbeitsvorbereitung
13-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.5 Synchronspindel

Optionale Parameter

LS Bezeichnung der Leitspindel;


Angabe mit Spindelnummer: z. B. S2, S1
ÜFS, ÜLS Übersetzungsparameter für FS = Zähler und LS = Nenner
Voreinstellung = 1.0; Angabe des Nenners optimal
Satzverh.: Satzwechselverhalten; Satzwechsel erfolgt:
"NOC" sofort
"FINE" bei "Synchronlauf fein"
"COARSE" bei "Synchronlauf grob"
"IPOSTOP" bei IPOSTOP (d.h. nach sollwertseitigem Synchronlauf)
(Voreinstellung)
Das Satzwechselverhalten ist modal wirksam
Koppelart Kopplungsart: Kopplung zwischen FS und LS
"DV" Sollwertkopplung (Voreinstellung)
"AV" Istwertkopplung
"VV" Geschwindigkeitskopplung
Die Kopplungsart ist modal wirksam.
POSFS Winkelversatz zwischen Leit- und Folgespindel
POSFS, POSLS Ausschaltpositionen von Folge- und Leitspindel
"Der Satzwechsel wird nach überfahren der POSFS, POSLS
freigegeben"

Beispiel Arbeiten mit Leit- und Folgespindel

;Leitspindel = Masterspindel = Spindel 1


;Folgespindel = Spindel 2
N05 M3 S3000 M2=4 S2=500 ;Leitspindel dreht mit 3000U/min,
;Folgespindel mit 500U/min
N10 COUPDEF (S2, S1, 1, 1, "NOC", ;Def. der Kopplung; kann auch projektiert
"Dv") werden

N70 SPCON ;Leitspindel in Lageregelung nehmen
(Sollwertk.)
N75 SPCON(2) ;Folgespindel in Lageregelung nehmen
N80 COUPON (S2, S1, 45) ;Fliegend auf Offsetposition = 45 Grad
einkoppeln

N200 FA [S2] = 100 ;Positioniergeschwindigkeit = 100 grd/min
N205 SPOS[2] = IC(-90) ;90 Grad überlagert in
;negative Richtung fahren
N210 WAITC(S2, "Fine") ;Warten auf Synchronlauf "fein"
N212 G1 X… Y… F… ;Bearbeitung

N215 SPOS[2] = IC(180) ;180 Grad überlagert in
;positive Richtung fahren

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-15
Weitere Funktionen
13.5 Synchronspindel

N220 G4 S50 ;Verweilzeit = 50 Umdrehungen der


Masterspindel
N225 FA [S2] = 0 ;Projektierte Geschw. (MD) aktivieren
N230 SPOS[2] = IC (-7200) ;20 Umdr. Mit projektierter Geschwindigkeit
in
;negative Richtung

N350 COUPOF (S2, S1) ;Fliegend auskoppeln, S=S2=3000
N355 SPOSA[2] = 0 ;FS bei Null Grad stoppen
N360 G0 X0 Y0
N365 WAITS(2) ;Warten auf Spindel 2
N370 M5 ;FS stoppen
N375 M30

Beispiel Programmierung der Differenzdrehzahl

;Leitspindel = Masterspindel = Spindel 1


;Folgespindel = Spindel 2
N01 M3 S500 ;Leitspindel dreht mit 500U/min
N02 M2=3 S2=300 ;Folgespindel dreht mit 300U/min

N10 G4 F1 ;Verweilzeit der Masterspindel
N15 COUPDEF (S2, S1, -1) ;Koppelfaktor mit Übersetzungsverhältnis -
1:1
N20 COUPON (S2, S1) ;Kopplung aktivieren. Die Drehzahl der
;Folgespindel ergibt sich aus der Drehzahl
der
;Leitspindel und dem Koppelfaktor

N26 M2=3 S2=100 ;Programmierung der Differenzdrehzahl

Arbeitsvorbereitung
13-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.5 Synchronspindel

Beispiele der Übernahme einer Bewegung zur Differenzdrehzahl


1. Kopplung bei vorhergehender Programmierung der Folgespindel mit COUPON einschalten

;Leitspindel = Masterspindel = Spindel 1


;Folgespindel = Spindel 2
N05 M3 S100 M2=3 S2=200 ;Leitspindel dreht mit 100U/min,
;Folgespindel mit 200U/min
N10 G4 F5 ;Verweilzeit = 5 Sekunden der Masterspindel
N15 COUPDEF (S2, S1, 1) ;Übersetzungsverhältnis Folgespindel zur
;Leitspindel ist 1,0 (Voreinstellung)
N20 COUPON (S2, S1) ;Fliegend auf Leitspindel einkoppeln
N10 G4 F5 ;Folgespindel dreht mit 100U/min

2. Kopplung bei vorhergehender Programmierung der Folgespindel mit COUPONC


einschalten

;Leitspindel = Masterspindel = Spindel 1


;Folgespindel = Spindel 2
N05 M3 S100 M2=3 S2=200 ;Leitspindel dreht mit 100U/min,
;Folgespindel mit 200U/min
N10 G4 F5 ;Verweilzeit = 5 Sekunden der Masterspindel
N15 COUPDEF (S2, S1, 1) ;Übersetzungsverhältnis Folgespindel zur
;Leitspindel ist 1,0 (Voreinstellung)
N20 COUPONC (S2, S1) ;Fliegend auf Leitspindel einkoppeln und
;vorhergehende Drehzahl zu S2 übernehmen
N10 G4 F5 ;S2 dreht mit 100U/min + 200U/min =
300U/min

3. Kopplung bei stehender Folgespindel mit COUPON einschalten

;Leitspindel = Masterspindel = Spindel 1


;Folgespindel = Spindel 2
N05 SPOS=10 SPOS[2]=20 ;Folgespindel S2 im Positionierbetrieb
N15 COUPDEF (S2, S1, 1) ;Übersetzungsverhältnis Folgespindel zur
;Leitspindel ist 1,0 (Voreinstellung)
N20 COUPON (S2, S1) ;Fliegend auf Leitspindel einkoppeln
N10 G4 F1 ;Kopplung wird geschlossen,
;S2 bleibt auf 20 Grad stehen

4. Kopplung bei stehender Folgespindel mit COUPONC einschalten


Positionier- oder Achsbetrieb
Befindet sich die Folgespindel vor dem Einkoppeln im Positionier- oder Achsbetrieb, dann
verhält sich die Folgespindel bei COUPON(FS, LS) und COUPONC(FS, LS) gleich.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-17
Weitere Funktionen
13.5 Synchronspindel

Synchronspindelpaar festlegen
Festprojektierte Kopplung:
Leit- und Folgespindel werden über Maschinendatum festgelegt. Bei dieser Kopplung
können die festgelegten Maschinenachsen für LS und FS vom NC-Teileprogramm nicht
verändert werden. Die Parametrierung der Kopplung kann dennoch im NC-Teileprogramm
mit COUPDEF erfolgen (Voraussetzung: kein Schreibschutz festgelegt).
Anwenderdefinierte Kopplung:
Mit der Sprachanweisung COUPDEF können Kopplungen im NC-Teileprogramm neu
angelegt und verändert werden. Wenn eine neue Kopplungsbeziehung definiert werden soll,
muss ggf. zuvor eine bestehende anwenderdefinierte Kopplung mit COUPDEL gelöscht
werden.

Neue Kopplung definieren COUPDEF


Im Folgenden wird die Parametrierung des vordefinierten Unterprogramms erläutert:
COUPDEF(FS, LS, ÜFS, ÜLS, Satzverh, Koppel)

Folge- und Leitspindel, FS und LS


Mit den Achsbezeichnern FS und LS wird die Kopplung eindeutig bestimmt. Sie müssen
bei jeder COUP-Anweisung programmiert werden. Weitere Kopplungsparameter müssen nur
dann programmiert werden, wenn sie geändert werden sollen (modal wirksam).
Beispiel:
N ... COUPDEF(S2, S1, ÜFS, ÜLS)
Bedeutet:
S2 = Folgespindel, S1 = Leitspindel

Übersetzungsverhältnis kÜ
Das Übersetzungsverhältnis wird mit Wertangaben für FS (Zähler) und LS (Nenner)
vorgegeben.
Möglichkeiten:
● Folge- und Leitspindel drehen mit gleicher Drehzahl (nFS = nLS ; kÜ positiv)
● Gleichsinniger bzw. gegensinniger (kÜ negativ) Lauf zwischen LS und FS
● Folge- und Leitspindel drehen mit unterschiedlichen Drehzahlen
(nFS = kÜ • nLS ;kÜ ≠ 1)
Anwendung: Mehrkantdrehen
Beispiel:
N ... COUPDEF (S2, S1, 1.0, 4.0)
Bedeutet: Folgespindel S2 und Leitspindel S1 drehen mit Übersetzungsverhältnis 0.25.

Arbeitsvorbereitung
13-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.5 Synchronspindel

Q Q
6SLQGHO 6SLQGHO
/HLWVSLQGHO )ROJHVSLQGHO

Hinweis
Der Zähler muss mindestens programmiert werden. Falls kein Nenner angegeben ist, wird
dieser immer mit "1" angenommen.
Das Übersetzungsverhältnis kann auch während eingeschalteter Kopplung in der Bewegung
verändert werden.

Satzwechselverhalten NOC, FINE, COARSE, IPOSTOP


Damit kann beim Definieren der Kopplung zwischen folgenden Möglichkeiten ausgewählt
werden, wann der Satzwechsel erfolgt:
"NOC" sofort (Voreinstellung)
"FINE" bei "Synchronlauf fein"
"COARSE" bei "Synchronlauf grob"
"IPOSTOP" bei IPOSTOP (d. h. nach sollwertseitigem Synchronlauf)
Für die Angabe des Satzwechselverhaltens ist das Schreiben der fettgedruckten Buchstaben
ausreichend.

Kopplungsart DV, AV
Möglichkeiten:
"DV" Sollwertkopplung zwischen FS und LS (Voreinstellung)
"AV" Istwertkopplung zwischen FS und LS

Vorsicht
Die Kopplungsart darf nur bei ausgeschalteter Kopplung verändert werden!

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-19
Weitere Funktionen
13.5 Synchronspindel

Synchronbetrieb einschalten COUPON, POSFS


● Schnellstmögliches Einschalten der Kopplung mit beliebigem Winkelbezug zwischen LS
und FS:
N ... COUPON(S2, S1)oder
N ... COUPON(S2, S1, POSFS)oder
N ... COUPON(S2)
● Einschalten mit Winkelversatz POSFS
Zur positionssynchronen Kopplung für profilierte Werkstücke.
POSFS bezieht sich auf die 0°-Position der Leitspindel in positiver Drehrichtung
Wertebereich POSFS: 0°… 359,999°:
COUPON(S2, S1, 30)
Auf diese Weise können Sie auch bei schon aktivierter Kopplung den Winkelversatz
ändern.

Positionieren der Folgespindel


Bei eingeschalteter Synchronspindelkopplung lassen sich auch Folgespindeln unabhängig
von der durch die Leitspindel ausgelösten Bewegung im Bereich ±180° positionieren.

Positionierung SPOS
Die Folgespindel kann mit SPOS = ... interpoliert werden. Für mehr Informationen zu
SPOS siehe Programmierhandbuch Grundlagen.
Beispiel:
N30 SPOS[2] = IC(-90)

Diffferenzdrehzahl M3 S... oder M4 S...


Eine Differenzdrehzahl entsteht durch vorzeichenbehaftete Überlagerung zweier
Drehzahlquellen und wird zur Folgespindel z.B. mit Sn=... oder Mn=3, Mn=4 im
Drehzahlsteuerbetrieb während einer aktiven Synchronspindelkopplung erneut
programmiert. Dabei wird dieser Drehzahlanteil über den Koppelfaktor von der Leitspindel
abgeleitet und der Folgespindel vorzeichenrichtig dazu addiert.

Hinweis
Mit der Drehrichtung M3 oder M4 muss auch die Drehzahl S... neu programmiert werden,
weil sonst die fehlende Programmierung durch einen Alarm gemeldet wird.
Weitere Informationen zur Differenzdrehzahl siehe
Literatur: /FB2/ Funktionshandbuch Erweiterungsfunktionen; Synchronspindel (S3).

Differenzdrehzahl bei COUPONC


Übernahme einer Bewegung zur Differenzdrehzahl
Über das Einschalten einer Synchronkopplung mit COUPONC wird die vorhergehende
Programmierung von M3 S... oder M4 S... der Folgespindel überlagert. Damit bleibt über das
Einschalten der Kopplung die vorher in einem eigenen Satz programmierte Spindeldrehzahl
erhalten. Die Differenzdrehzahl wird sofort übernommen.

Arbeitsvorbereitung
13-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.5 Synchronspindel

Hinweis
Freigabe der Differenzdrehzahl
Die sich einstellende Differenzdrehzahl wird nur dann übernommen, wenn eine
Überlagerung der Bewegung auch freigegeben ist. Anderenfalls signalisiert ein selbst
löschender Alarm diese unzulässige Überlagerung.
Dynamikverteilung auf die verfügbare Dynamik des Motors
Die zu limitierende Dynamik bei der Leitspindel muss durch Programmierung so weit
eingeschränkt werden, dass eine andere Bewegungskomponente z.B. aufgrund einer
Differenzdrehzahl, die Dynamik der Folgespindel nicht unzulässig stark beeinträchtigt.

FA, ACC, OVRA, VELOLIMA: Geschwindigkeit, Beschleunigung


Mit FA[SPI] (Sn)] bzw. FA[Sn], ACC[SPI(Sn)] bzw. ACC[Sn] und
OVRA[SPI(n)] bzw. OVRA[Sn] als auch VELOLIMA[Sn] lassen sich die
Positioniergeschwindigkeiten und Beschleunigungswerte für Folgespindeln programmieren
(siehe Programmierhandbuch Grundlagen). "n" steht für Spindelnummer 1...n.
Die programmierbaren Wertebereiche zur Dynamikkorrektur der Folgespindel Sn wirken für
● den Vorschub für Positionierachsen oder Spindeln im Positionierbetrieb
FA[Sn] = ... bis 999 999,999 mm/min oder Grad/min
● die Prozentuale Beschleunigungskorrektur ACC[Sn] = 1 bis 200%
● die Prozentuale Vorschubkorrektur OVRA[Sn] = ... bis 200%
● den Geschwindigkeitsanteil VELOLIMA[Sn] = prozentuale Geschwindigkeitskorrektur der
Maximalgeschwindigkeit von 1 bis 100%

Hinweis
Beschleunigungsanteil JERKLIMA[Sn]
Die Ruckkorrektur kann zwar angegeben werden, hat aber noch keine Auswirkung auf
Spindeln.
Weitere Hinweise zur Projektierung der Dynamikprogrammierung über Maschinendaten
siehe Literatur: /FB2/ Funktionshandbuch Erweiterungsfunktionen; Rundachsen (R2).

Programmierbarer Satzwechsel WAITC


Mit WAITC lässt sich für die Programmfortsetzung z. B. nach Änderung von
Kopplungsparametern oder Positioniervorgängen das Satzwechselverhalten mit
unterschiedlichen Synchronlaufbedingungen festlegen (grob, fein, IPOSTOP). Dabei wird
das Einwechseln neuer Sätze bis zum Erreichen der Synchronlaufbedingung verzögert,
wodurch der Synchronlauf schneller verarbeitet werden kann. Werden keine
Synchronlaufbedingungen angegeben, gilt das für die jeweilige Kopplung
programmierte/projektierte Satzwechselverhalten.
Beispiele:
N200 WAITC

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-21
Weitere Funktionen
13.5 Synchronspindel

Warten auf Synchronlaufbedingungen für alle aktiven Folgespindeln ohne Angabe von
Synchronlaufbedingungen.
N300 WAITC(S2, "FINE", S4, "COARSE")
Warten auf die angegebenen Synchronlaufbedingungen "Grob" für die Folgespindeln S2
und S4.

Synchronbetrieb ausschalten COUPOF


Drei Varianten sind möglich:
● Schnellstmögliches Ausschalten der Kopplung, der Satzwechsel wird sofort freigegeben:
COUPOF(S2, S1)oder
COUPOF(S2); ohne Angabe der Leitspindel
● Nach Überfahren von Ausschaltpositionen; der Satzwechsel wird erst nach Überfahren
der Ausschaltpositionen POSFS und evtl. POSLS freigegeben.
Wertebereich 0°… 359,999°:
COUPOF(S2, S1, 150)
COUPOF(S2, S1, 150, 30)

Ausschalten einer Kopplung mit Stopp der Folgespindel COUPOFS


Zwei Varianten sind möglich:
● Schnellstmögliches Ausschalten der Kopplung und Stopp ohne Positionsangabe, der
Satzwechsel wird sofort freigegeben:
COUPOFS(S2, S1)
● Nach Überfahren der programmierten Folgeachs-Ausschaltposition, die sich auf das
Maschinenkoordinatensystem bezieht, wird der Satzwechsel erst nach Überfahren der
Ausschaltpositionen POSFS freigegeben.
Wertebereich 0°… 359,999°:
COUPOFS(S2, S1, POSFS)

Kopplungen löschen COUPDEL


N ... COUPDEL(S2, S1)oder
N ... COUPDEL(S2); ohne Angabe der Leitspindel
wirkt auf eine aktive Synchronspindelkopplung, schaltet die Kopplung aus und löscht die
Kopplungsdaten. Die Folgespindel übernimmt die letzte Drehzahl und entspricht dem
bisherigen Verhalten von COUPOF(FS, LS).

Arbeitsvorbereitung
13-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.5 Synchronspindel

Kopplungsparameter zurücksetzen COUPRES


Mit der Sprachanweisung "COUPRES" werden
● die in den Maschinen- und Settingdaten hinterlegten Parameter aktiviert (fest projektierte
Kopplung),
● die Voreinstellungen aktiviert (anwenderdefinierte Kopplung).
Dabei gehen die mit COUPDEF programmierten Parameter (einschließlich dem
Übersetzungsverhältnis) verloren.
N ... COUPRES(S2, S1)oder
N ... COUPRES(S2); ohne Angabe der Leitspindel
S2 = Folgespindel, S1 = Leitspindel

Systemvariablen
Aktueller Kopplungszustand Folgespindel
Für die Folgespindel kann der aktuelle Kopplungszustand im NC-Teileprogramm mit
folgender axialen Systemvariablen gelesen werden:
$AA_COUP_ACT[FS]
FS = Achsbezeichner für Folgespindel mit Spindelnummer, z. B. S2.
Der gelesene Wert hat für die Folgespindel folgende Bedeutung:
0: keine Kopplung aktiv
4: Synchronspindelkopplung aktiv
Aktueller Winkelversatz
Der aktuelle sollwertseitige Positionsoffset der FS zur LS kann im NC-Teileprogramm mit
folgender axialen Systemvariablen gelesen werden:
$AA_COUP_OFFS[S2]
Der istwertseitige Positionsoffset kann gelesen werden mit:
$VA_COUP_OFFS[S2]
FS = Achsbezeichner für Folgespindel mit Spindelnummer, z. B. S2.

Hinweis
Nach Wegnahme der Reglerfreigabe bei eingeschalteter Kopplung und Nachführbetrieb
stellt sich nach erneuter Erteilung der Reglerfreigabe ein anderer Positionsoffset ein als der
ursprünglich programmierte Wert. In diesem Fall kann der veränderte Positionsoffset
gelesen werden und ggf. im NC-Teileprogramm korrigiert werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-23
Weitere Funktionen
13.6 Elektronisches Getriebe (EG)

13.6 13.6 Elektronisches Getriebe (EG)

Funktion
Mit Hilfe der Funktion "Elektronisches Getriebe" ist es möglich, die Bewegung einer
Folgeachse nach linearem Bewegungssatz abhängig von bis zu fünf Leitachsen zu steuern.
Die Zusammenhänge zwischen den Leitachsen und der Folgeachse sind je Leitachse durch
den Koppelfaktor definiert.
Der berechnete Folgeachs-Bewegungsanteil wird aus den einzelnen Leitachsen-
Bewegungsanteilen multipliziert mit den jeweiligen Koppelfaktoren durch Addition gebildet.
Bei der Aktivierung eines EG-Achsverbundes kann die Synchronisation der Folgeachse auf
eine definierte Position veranlasst werden. Ein Getriebeverband kann aus dem
Teileprogramm:
● definiert,
● eingeschaltet,
● ausgeschaltet,
● gelöscht
werden.
Die Folgeachsbewegung kann wahlweise abgeleitet werden aus den
● Sollwerten der Leitachsen sowie den
● Istwerten der Leitachsen.
Als Erweiterung können auch nichtlineare Zusammenhänge zwischen den Leitachsen und
der Folgeachse über Kurventabellen (siehe Kapitel Bahnverhalten) realisiert werden.
Elektronische Getriebe können kaskadiert werden, d. h. die Folgeachse eines
Elektronischen Getriebes kann Leitachse für ein weiteres Elektronisches Getriebe sein.

13.6.1 Elektronisches Getriebe definieren (EGDEF)

Funktion
Ein EG-Achsverband wird durch die Angabe der Folgeachse und mindestens einer, jedoch
höchstens fünf Leitachsen mit dem jeweiligen Kopplungstyp festgelegt:
EGDEF(Folgeachse, Leitachse1, Kopplungstyp1, Leitachse2, Kopplungstyp2,..).

Voraussetzung
Voraussetzung für eine EG-Achsverbands-Definition: Für die Folgeachse darf noch keine
Achskopplung definiert sein (ggf. muss eine bestehende vorher mit EGDEL gelöscht
werden).

Arbeitsvorbereitung
13-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.6 Elektronisches Getriebe (EG)

Programmierung

EGDEF(C, B, 1, Z, 1, Y, 1) B, Z, Y beeinflussen C über Sollwert


Der Kopplungstyp muss nicht für alle Leitachsen gleich sein und ist daher für jede Leitachse
einzeln anzugeben. Die Koppelfaktoren werden bei der Definition des EG-
Kopplungsverbandes mit Null vorbesetzt.

Hinweis
EGDEF löst Vorlaufstopp aus. Die Getriebedefinition mit EGDEF ist auch dann unverändert
zu verwenden, wenn bei Systemen eine oder mehrere Leitachsen über Kurventabelle auf die
Folgeachse einwirken.

Parameter

EGDEF Definition eines elektronischen


Getriebes
Folgeachse Achse, die von Leitachsen beeinflusst
wird
Leitachse1, ... Leitachse5 Achsen, die Folgeachse beeinflussen
Kopplungstyp1, ... Kopplungstyp5 Folgeachse wird beeinflusst vom:
0: Istwert
1: Sollwert
der entsprechenden Leitachse

13.6.2 Elektronisches Getriebe einschalten (EGON)

Funktion
Für den Einschaltbefehl existieren 3 Varianten.

Programmierung
Variante 1:
Der EG-Achsverband wird ohne Synchronisationselektiv eingeschaltet mit:
EGON(FA, "Satzwechselmodus", LA1, Z1 ,N1, LA2, Z2, N2, ..LA5, Z5,N5)
Variante 2:
Der EG-Achsverband wird mit Synchronisationselektiv eingeschaltet mit:
EGONSYN(FA, "Satzwechselmodus", SynPosFA,[, LAi, SynPosLAi, Zi, Ni])
Variante 3:
Der EG-Achsverband wird mit Synchronisationselektiv eingeschaltet. Der Anfahrmodus wird
vorgegeben mit:
EGONSYNE(FA, "Satzwechselmodus", SynPosFA, Anfahrmodus [, LAi,
SynPosLAi, Zi, Ni])

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-25
Weitere Funktionen
13.6 Elektronisches Getriebe (EG)

Parameter
Variante 1:

FA Folgeachse
Satzwechselmodus Folgende Modi können benutzt werden:
"NOC" Satzwechsel erfolgt sofort
"FINE" Satzwechsel erfolgt bei "Synchronlauf fein"
"COARSE" Satzwechsel erfolgt bei "Synchronlauf grob"
"IPOSTOP" Satzwechsel erfolgt bei sollwertseitigem
Synchronlauf
LA1, ... LA5 Leitachsen
Z1, ... Z5 Zähler für den Koppelfaktor i
N1, ... N5 Nenner für den Koppelfaktor i
Koppelfaktor i = Zähler i/Nenner i

Es dürfen nur die Leitachsen programmiert werden, die zuvor mit EGDEF spezifiziert
worden sind. Es muss mindestens eine Leitachse programmiert werden.
Variante 2:

FA Folgeachse
Satzwechselmodus Folgende Modi können benutzt werden:
"NOC" Satzwechsel erfolgt sofort
"FINE" Satzwechsel erfolgt bei "Synchronlauf fein"
"COARSE" Satzwechsel erfolgt bei Synchronlauf grob"
"IPOSTOP" Satzwechsel erfolgt bei sollwertseitigem
Synchronlauf
[, LAi, SynPosLAi, Zi, Ni] (Eckige Klammern nicht schreiben)
mind. 1, max. 5 Folgen von:
LA1, ... LA5 Leitachsen
SynPosLAi Synchronposition für die i. Leitachse
Z1, ... Z5 Zähler für den Koppelfaktor i
N1, ... N5 Nenner für den Koppelfaktor i
Koppelfaktor i = Zähler i/Nenner i

Es dürfen nur Leitachsen programmiert werden, die zuvor mit EGDEF spezifiziert worden
sind. Durch die programmierten "Synchronpositionen" für die Folgeachse (SynPosFA) und
für die Leitachsen (SynPosLA) werden Positionen definiert, in denen der Koppelverband als
synchron gilt. Sofern sich das elektronische Getriebe beim Einschalten nicht in synchronem
Zustand befindet, fährt die Folgeachse auf ihre definierte Synchronposition.
Variante 3:
Die Parameter entsprechen denen der Variante 2 zuzüglich:

Arbeitsvorbereitung
13-26 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.6 Elektronisches Getriebe (EG)

Anfahrmodus Folgende Modi können benutzt werden:


"NTGT": Nächste Zahnlücke zeitoptimiert anfahren
"NTGP" : Nächste Zahnlücke wegoptimiert anfahren
"ACN": Rundachse in negativer Drehrichtung verfahren
absolut
"ACP": Rundachse in positiver Drehrichtung verfahren
absolut
"DCT": zeitoptimiert zur programmierten
Synchronposition
"DCP": wegoptimiert zur programmierten
Synchronposition

Die Variante 3 hat nur Auswirkungen auf Modulo-Folgeachsen, die an Modulo-Leitachsen


gekoppelt sind. Zeitoptimierung berücksichtigt die Geschwindigkeitsgrenzen der Folgeachse.

Beschreibung
Variante 1:
Die Positionen der Leitachsen sowie der Folgeachse zum Zeitpunkt des Einschaltens
werden gespeichert als "Synchronpositionen". Die "Synchronpositionen" können mit den
Systemvariablen $AA_EG_SYN gelesen werden.
Variante 2:
Wenn Moduloachsen im Koppelverband sind, werden ihre Positionswerte modulo reduziert.
Damit ist gewährleistet, dass die nächstmögliche Synchronposition angefahren wird (sog.
relative Synchronisation: z. B. die nächste Zahnlücke). Wenn für die Folgeachse nicht
"Freigabe Folgeachsüberlagerung" Nahtstellensignal DB(30 +Achsnummer), DBX 26 Bit 4
gegeben ist, wird nicht auf die Synchronposition gefahren. Stattdessen wird das Programm
beim EGONSYN-Satz angehalten und es wird der selbstlöschende Alarm 16771 gemeldet,
solange bis das o.g. Signal gesetzt wird.
Variante 3:
Der Zahnabstand (Grad) ergibt sich aus: 360 * Zi/Ni. Für den Fall, dass die Folgeachse zum
Aufrufzeitpunkt steht, liefert wegoptimiert das gleiche Verhalten wie zeitoptimiert.
Bei bereits fahrender Folgeachse wird mit NTGP unabhängig von der aktuellen
Geschwindigkeit der Folgeachse auf die nächste Zahnlücke synchronisiert. Bei bereits
fahrender Folgeachse wird mit NTGT abhängig von der aktuellen Geschwindigkeit der
Folgeachse auf die nächste Zahnlücke synchronisiert. Die Achse wird dazu ggf. auch
abgebremst.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-27
Weitere Funktionen
13.6 Elektronisches Getriebe (EG)

Kurventabellen
Wird für eine der Leitachsen eine Kurventabelle verwendet, so muss:

Ni der Nenner des Koppelfaktors linearer Kopplungen auf 0 gesetzt werden.


(Nenner 0 wäre für lineare Kopplungen unzulässig). Nenner Null ist für die
Steuerung das Kennzeichen, dass
Zi als Nummer der zu verwendenden Kurventabelle interpretiert werden soll.
Die Kurventabelle mit der angegebenen Nummer muss zum
Einschaltzeitpunkt bereits definiert sein.
LAi Die Angabe der Leitachse entspricht der Leitachsangabe bei Kopplung
über Koppelfaktor (lineare Kopplung).

Weitere Hinweise über die Nutzung von Kurventabellen und das Kaskadieren von
Elektronischen Getrieben und deren Synchronisierung finden Sie
/FB3/ Funktionshandbuch Sonderfunktionen; Achskopplungen und ESR (M3), Kapitel
"Mitschleppen und Leitwertkopplung".

Verhalten des Elektronischen Getriebes bei Power On, RESET, Betriebsartenwechsel, Suchlauf
● Nach Power On ist keine Kopplung aktiv.
● Aktive Kopplungen bleiben über RESET und Betriebsartenwechsel erhalten.
● Bei Satzsuchlauf werden Befehle zum Schalten, Löschen, Definieren des Elektronischen
Getriebes nicht ausgeführt und nicht aufgesammelt, sondern übergangen.

Systemvariablen des Elektronischen Getriebes


Mit Hilfe der Systemvariablen des Elektronischen Getriebes kann das Teileprogramm
aktuelle Zustände eines EG-Achsverbandes ermitteln und ggf. darauf reagieren.
Sie finden die Systemvariablen des Elektronischen Getriebes im Anhang. Sie sind
gekennzeichnet durch Namen, die beginnen mit:
$AA_EG_ ...
oder
$VA_EG_ ...

Arbeitsvorbereitung
13-28 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.6 Elektronisches Getriebe (EG)

13.6.3 Elektronisches Getriebe ausschalten (EGOFS)

Funktion
Für das Ausschalten eines aktiven EG-Achsverbandes gibt es drei verschiedene
Möglichkeiten.

Programmierung
Variante 1:

EGOFS(Folgeachse) Das elektronische Getriebe wird


ausgeschaltet. Die Folgeachse wird
zum Stillstand abgebremst. Der Aufruf
löst Vorlaufstopp aus.
Variante 2:

EGOFS(Folgeachse, Leitachse1, … Diese Parametrierung des Befehls


Leitachse5)
erlaubt selektiv den Einfluss einzelner
Leitachsen auf die Bewegung der
Folgeachse zu beseitigen.
Es muss wenigstens eine Leitachse angegeben werden. Der Einfluss der angegebenen
Leitachsen auf die Folgeachse wird gezielt ausgeschaltet. Der Aufruf löst Vorlaufstopp aus.
Verbleiben noch aktive Leitachsen, so läuft die Folgeachse unter deren Einfluss weiter. Sind
alle Leitachseneinflüsse auf diese Weise ausgeschaltet, so wird die Folgeachse zum
Stillstand abgebremst.
Variante 3:

EGOFC(Folgespindel1) Das elektronische Getriebe wird


ausgeschaltet. Die Folgespindel läuft
mit der zum Ausschaltzeitpunkt
aktuellen Drehzahl/Geschwindigkeit
weiter. Der Aufruf löst Vorlaufstopp
aus.

Hinweis
Diese Funktion ist nur für Spindeln erlaubt.
Definition eines Elektronischen Getriebes löschen
Ein EG-Achsverband muss ausgeschaltet sein, bevor seine Definition gelöscht werden kann.

EGDEL(Folgeachse) Die Kopplungsdefinition des Achsverbandes wird gelöscht. Es


wird bis zum Erreichen der maximalen Anzahl gleichzeitig
aktivierter Achsverbände wieder möglich, weitere
Achsverbände mit EGDEF neu zu definieren. Der Aufruf löst
Vorlaufstopp aus.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-29
Weitere Funktionen
13.7 Erweitertes Stillsetzen und Rückziehen

13.6.4 Umdrehungsvorschub (G95)/Elektronisches Getriebe (FPR)

Funktion
Mit dem FPR( ) Befehl kann auch die Folgeachse eines Elektronischen Getriebes als
vorschubbestimmende Achse des Umdrehungsvorschubes angegeben werden. Für diesen
Fall gilt folgendes Verhalten:
● Der Vorschub ist abhängig von der Sollgeschwindigkeit der Folgeachse des
Elektronischen Getriebes.
● Die Sollgeschwindigkeit wird berechnet aus den Geschwindigkeiten der Leitspindeln und
Modulo-Leitachsen (die nicht Bahnachsen sind) und deren zugeordneten Koppelfaktoren.
● Geschwindigkeitsanteile von linearen bzw. nicht Modulo-Leitachsen und überlagerte
Bewegungen der Folgeachse werden nicht berücksichtigt.

13.7 13.7 Erweitertes Stillsetzen und Rückziehen

Funktion
Die Funktion "Erweitertes Stillsetzen und Rückziehen" ESR (Extended Stopping and Retract)
bietet die Möglichkeit, auf wählbare Fehlerquellen flexibel und werkstückschonend zu
reagieren.
Verfügbare Teil-Reaktionen
Das "Erweiterte Stillsetzen und Rückziehen" stellt folgende Teil-Reaktionen zur Verfügung:
● "Erweitertes Stillsetzen" (antriebsautark) ist ein definiertes, zeitlich verzögertes
Stillsetzen.
● "Rückziehen" (antriebsautark)
bedeutet eine "Flucht" aus der Bearbeitungsebene in eine sichere Rückzugsposition.
Hiermit soll eine vorhandene Kollisions-Gefahr zwischen Werkzeug und Werkstück
vermieden werden.
● "Generatorbetrieb" (antriebsautark)
Für die Fälle, in denen die Energie des Zwischenkreises nicht für einen sicheren Rückzug
ausreicht, ist ein Generatorbetrieb möglich. Er stellt als eigenständige Antriebs-
Betriebsart bei Netzstörungen o.ä. die notwendige Energie für den Antriebs-
Zwischenkreis zur Verfügung, die für ein geordnetes "Stillsetzen" und "Rückziehen"
benötigt wird.

Arbeitsvorbereitung
13-30 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.7 Erweitertes Stillsetzen und Rückziehen

Zusätzliche Erweiterungen
● Erweitertes Stillsetzen (NC-geführt)
ist ein definiertes, zeitlich verzögertes und konturschonendes Stillsetzen unter Kontrolle
der NC.
● Rückziehen (NC-geführt)
bedeutet eine "Flucht" aus der Bearbeitungsebene in eine sichere Rückzugsposition
unter Kontrolle der NC. Hiermit wird eine vorhandene Kollisionsgefahr zwischen
Werkzeug und Werkstück umgangen. Bei Zahnradbearbeitung z. B. ist darunter ein
Herausziehen aus gerade bearbeiteten Zahnlücken zu verstehen.
Alle Reaktionen sind unabhängig voneinander nutzbar. Weitere Informationen siehe
/FB3/ Funktionshandbuch Sonderfunktionen; Achskopplung und ESR (M3).

Mögliche Auslösquellen
Nachfolgende Fehlerquellen für einen Start von "Erweitertes Stillsetzen und Rückziehen"
sind: Allgemeine Quellen (NC-extern/global oder BAG-/kanalspezifisch):
● Digitale Eingänge (z. B. auf NCU-Baugruppe bzw. Terminalblock) bzw. das
steuerungsinterne, rücklesbare Abbild digitaler Ausgänge $A_IN, $A_OUT
● Kanalzustand $AC_STAT
● VDI-Signale ($A_DBB)
● Sammelmeldungen einer Anzahl von Alarmen ($AC_ALARM_STAT)

Axiale Quellen
● Notrückzugsschwelle der Folgeachse (Synchronlauf der elektronischen Kopplung,
$VC_EG_SYNCDIFF[Folgeachse])
● Antrieb: Zwischenkreis-Warnschwelle (drohende Unterspannung),
$AA_ESR_STAT[Achse]
● Antrieb: Generator-Minimaldrehzahl-Schwelle (keine rückspeisbare Rotationsenergie
mehr vorhanden), $AA_ESR_STAT[Achse].

Verknüpfungslogik der statischen Synchronaktionen: Quellen-/Reaktions-Verknüpfung


Die flexiblen Verknüpfungsmöglichkeiten der statischen Synchronaktionen werden genutzt,
um aufgrund von Quellen relativ zeitnah bestimmte Reaktionen auszulösen.
Die Verknüpfung aller relevanten Quellen mit Hilfe statischer Synchronaktionen liegt in den
Händen des Anwenders. Er kann die Quellen-Systemvariablen als Ganzes oder mit Hilfe von
Bit-Masken auch selektiv auswerten und hieran seine gewünschten Reaktionen knüpfen. Die
statischen Synchronaktionen sind in allen Betriebsarten wirksam.
Eine ausführliche Beschreibung der Verwendung der Synchronaktionen finden Sie in
Literatur: /FBSY/ Funktionsbeschreibung Synchronaktionen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-31
Weitere Funktionen
13.7 Erweitertes Stillsetzen und Rückziehen

Aktivierung
Funktionsfreigabe:
$AA_ESR_ENABLE
Die Funktionen Generatorbetrieb, Stillsetzen, Rückziehen werden durch Setzen des
zugehörigen Steuersignals ($AA_ESR_ENABLE) freigegeben. Dieses Steuersignal kann von
Synchronaktionen verändert werden.
Funktionsauslösung (gemeinsames Auslösen aller freigegebenen Achsen)
$AN_ESR_TRIGGER
Der Generatorbetrieb wird "automatisch" im Antrieb bei Erkennung drohender
Zwischenkreis-Unterspannung aktiv.
Antriebsautarkes Stillsetzen und/oder Rückziehen werden aktiv bei Erkennung eines
Kommunikationsausfalls (zwischen NC und Antrieb) sowie bei Erkennung einer
Zwischenkreis-Unterspannung im Antrieb (Konfiguration und Freigabe vorausgesetzt).
Antriebsautarkes Stillsetzen und/oder Rückziehen können zusätzlich auch von der NC-Seite
her ausgelöst werden durch das Setzen des entsprechenden Steuersignals
$AN_ESR_TRIGGER (Broadcast-Kommando an alle Antriebe).

13.7.1 Antriebsautarke Reaktionen auf ESR

Funktion
Antriebsautarke Reaktionen werden axial definiert, d. h. jeder Antrieb bearbeitet im
Aktivierungsfall seine Stillsetzen-/Rückziehen-Anforderung autark. Eine interpolatorische
bzw. bahntreue Verkopplung der Achsen beim Stillsetzen oder Rückziehen ist nicht
gegeben, ein Bezug zu den Achsen läuft zeitgesteuert ab.
Während und nach Durchführung antriebsautarker Reaktionen gehorcht der jeweilige Antrieb
nicht mehr den NC-Freigaben bzw. NC-Fahrbefehlen. Es ist ein Power-Off/Power-On
erforderlich. Der Alarm "26110: Antriebsautarkes Stillsetzen/Rückziehen ausgelöst" weist
darauf hin.

Parameter
Generatorbetrieb
Der Generatorbetrieb wird
● konfiguriert: über MD 37500: 10
● freigegeben: Systemvariable $AA_ESR_ENABLE
● aktiviert: abhängig von der Einstellung der Antriebs-Maschinendaten bei Unterschreiten
der Spannung im Zwischenkreis.
Rückziehen (antriebsautark)
Das antriebsautarke Rückziehen wird
● konfiguriert: über MD 37500: 11; Zeitangabe und Rückzugsgeschwindigkeit erfolgt über
MD, siehe "Beispiel: Verwendung der antriebsautarken Reaktion" am Ende dieses
Kapitels,
● freigegeben: Systemvariable $AA_ESR_ENABLE

Arbeitsvorbereitung
13-32 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.7 Erweitertes Stillsetzen und Rückziehen

● ausgelöst: Systemvariable $AN_ESR_TRIGGER.


Stillsetzen (antriebsautark)
Das antriebsautarke Stillsetzen wird
● konfiguriert: über MD 37500: 12 sowie Zeitangabe über MD;
● freigegeben ($AA_ESR_ENABLE) und
● gestartet: Systemvariable $AN_ESR_TRIGGER.

Beispiel Verwendung der antriebsautarken Reaktion


Beispiel-Konfiguration
● Achse A soll als Generatorantrieb arbeiten,
● Achse X soll im Fehlerfall mit maximaler Geschwindigkeit um 10 mm zurückziehen und
● die Achsen Y und Z sollen um 100 ms verzögert stillgesetzt werden, damit die
Rückzugsachse Zeit hat, die mechanische Kopplung aufzuheben.
Beispiel-Ablauf
1. Optionen "Erw. Stillsetzen und Rückziehen" und "Betriebsart übergreifende Aktionen"
(enthält "Statische Synchronaktionen IDS ...)" freigeben.
2. Funktionszuordnung:
$MA_ESR_REACTION[X] = 11,
$MA_ESR_REACTION[Y] = 12,
$MA_ESR_REACTION[Z] = 12,
$MA_ESR_REACTION[A] = 10;
3. Antriebs-Konfiguration:
MD 1639: RETRACT_SPEED[X] = 400000H in pos. Richtung (max. Geschw.),
= FFC00000H in neg. Richtung,
MD 1638: RETRACT_TIME[X] = 10ms (Rückzugszeit),
MD 1637: GEN_STOP_DELAY[Y] = 100ms,
MD 1637: GEN_STOP_DELAY[Z] = 100ms,
MD 1635: GEN_AXIS_MIN_SPEED[A] = [Link](U/min).
4. Funktionsfreigabe (von Teileprogramm oder Synchronaktionen aus):
$AA_ESR_ENABLE[X] = 1,
$AA_ESR_ENABLE[Y] = 1,
$AA_ESR_ENABLE[Z] = 1,
$AA_ESR_ENABLE[A] = 1.
5. Generatorantrieb auf "Schwung"-Drehzahl bringen (z. B. im Spindelbetrieb M03 S1000)
6. Trigger-Bedingung als statische Synchronaktion(en) formulieren, z. B.:
● abhängig vom Eingreifen der Generatorachse: IDS = 01 WHENEVER
$AA_ESR_STAT[A]>0 DO $AN_ESR_TRIGGER = 1
● und/oder abhängig von Alarmen, die Nachführbetrieb auslösen (Bit13=2000H): IDS =
02 WHENEVER ($AC_ALARM_STAT B_AND 'H2000'>0
DO $AN_ESR_TRIGGER = 1
● sowie abhängig von EG-Synchronlaufüberwachung (wenn z. B. Y als EG-Folgeachse
definiert ist und die max. zulässige Synchronlaufabweichung 100 μm sein soll):
IDS = 03 WHENEVER ABS($VA_E_SYNCDIFF[Y])>0.1
DO $AN_ESR_TRIGGER = 1

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-33
Weitere Funktionen
13.7 Erweitertes Stillsetzen und Rückziehen

13.7.2 NC-geführte Reaktionen auf Rückziehen

Funktion
Für NC-geführtes Rückziehen sind bestimmte Ausgangsbedingungen erforderlich, die
nachfolgend unter Vorraussetzungen beschrieben sind. Sind diese Voraussetzungen für
Rückziehen erfüllt, dann wird Schnellabheben aktiviert.
Im Teileprogramm muss die Rückzugsposition POLF programmiert worden sein. Für die
Rückzugbewegung müssen die Freigabesignale gesetzt sein und gesetzt bleiben.

Programmierung

POLF[geo |mach]=,= Wert Zielposition der Rückzugsachse


POLFA(Achse, Typ, Wert) Rückzugsposition von Einzelachsen
Es sind folgende Kurzformen erlaubt:
POLFA(Achse, Typ) Kurzform für Einzelachs-Rückziehen
POLFA(Achse, 0/1/2)Typ)
Schnelle Deaktivierung oder Aktivierung
POLFA(Achse, 0, $AA_POLFA[Achse]) Bewirkt einen Vorlaufstopp
POLFA(Achse, 0)
Bewirkt keinen Vorlaufstopp
POLFMASK(achsname1, achsname2, ...) Achsenauswahl für den Rückzug
Achsen ohne Zusammenhang
POLFMLIN(achsname1, achsname2, ...) Achsenauswahl für den Rückzug
Achsen mit linearem Zusammenhang

Achtung
Wird bei Verwendung der Kurzformen POLFA nur der Typ geändert, dann muss der
Anwender sicherstellen, dass entweder die Rückzugsposition oder der Rückzugsweg einen
sinnvollen Wert enthält. Insbesondere sind die Rückzugsposition und der Rückzugsweg
nach Power On neu zu setzen.

Parameter

geo | mach Geometrieachse oder Kanal-/Maschinenachse die zurückzieht.


Achse Achsbezeichner der gültigen Einzelachsen
Typ Positionswerte der Einzelachsen vom Typ:
Positionswert ungültig machen
Positionswert ist absolut
Positionswert ist inkrementell (Distanz)

Arbeitsvorbereitung
13-34 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.7 Erweitertes Stillsetzen und Rückziehen

Wert Rückzugsposition, für Geometrieachse gilt WKS, sonst MKS. Bei


gleichen Bezeichnern für Geoachse und Kanal–/Maschinenachse
wird im Werkstückkoordinatensystem zurückgezogen.
Inkrementelle Programmierung ist zulässig.
Rückzugsposition mit Typ=1 für Einzelachsen
Rückzugsweg mit Typ=2 für Einzelachsen
Der Wert wird auch mit Typ=0 übernommen. Nur ist dieser Wert
dann als ungültig markiert, und muss für das Rückziehen neu
programmiert werden.
POLF Der Befehl POLF ist modal wirksam.
POLFA Ist eine Achse keine Einzelachse, oder fehlt der Typ bzw.
Typ=0, dann wird der entsprechende Alarm 26080 und Alarm 26081
gemeldet.
POLFMASK, Mit dem Befehle POLFMASK werden die angegebenen Achsen für den
Rückzug - ohne Zusammenhang zwischen den Achsen - freigegeben.
Der Befehl POLFMASK() ohne Angabe einer Achse deaktiviert das
Schnellabheben für alle Achsen, die ohne Zusammenhang zwischen
den Achsen zurückgezogen wurden.
POLFMLIN, Mit dem Befehle POLFMLIN werden die angegebenen Achsen für den
Rückzug - mit linearem Zusammenhang zwischen den Achsen -
freigegeben.
Der Befehl POLFMLIN() ohne Angabe einer Achse deaktiviert das
Schnellabheben für alle Achsen, die mit linearem Zusammenhang
zurückgezogen wurden.
achsnamei Namen der Achsen, die bei LIFTFAST auf ihre mit POLF
definierten Positionen fahren sollen. Alle angegebenen Achsen
müssen sich im gleichen Koordinatensystem befinden. Bevor über
POLFMASK oder POLFMLIN das Schnellabheben auf eine feste
Position freigegeben werden kann, muss für die ausgewählten
Achsen eine Position mit POLF programmiert worden sein. Es ist
kein Maschinendatum für die Vorbelegung der Werte von POLF
vorgesehen.
Bei der Interpretation von POLFMASK oder POLFMLIN wird ein
Alarm 16016 abgesetzt, wenn POLF noch nicht programmiert
worden ist.

Hinweis
Werden Achsen nacheinander mit POLFMASK, POLFMLIN oder POLFMLIN, POLFMASK
freigegeben, gilt für die jeweilige Achse immer die letzte Festlegung.

Vorsicht
Die mit POLF programmierten Positionen und die Aktivierung durch POLFMASK oder
POLFMLIN werden bei Teileprogrammstart gelöscht. Das heißt, der Anwender muss in
jedem Teileprogramm die Werte für POLF und die selektierten Achsen in POLFMASK bzw.
POLFMLIN neu programmieren.
Weitere Hinweise bezüglich Änderung des Koordinatensystems, der Wirkung bei
Modulorundachsen usw. finden Sie im
/FB3/ Funktionshandbuch Sonderfunktionen; Achskopplung und ESR (M3).

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-35
Weitere Funktionen
13.7 Erweitertes Stillsetzen und Rückziehen

Beispiel Rückziehen einer Einzelachse

MD 37500: ESR_REACTION[AX1] = 21 ;NC-geführtes Rückziehen


...
$AA_ESR_ENABLE[AX1] = 1
POLFA(AX1,1, 20.0) ;AX1 wird die axiale Rückzugsposition
;20.0 (absolut) zugeteilt.
$AA_ESR_TRIGGER[AX1] = 1 ;ab hier beginnt der Rückzug.

Voraussetzung
Rückziehen
● die mit POLFMASK oder POLFMLIN ausgewählten Achsen,
● die mit POLF definierten achsspezifischen Positionen,
● die mit POLFA definierten Rückzugspositionen einer Einzelachse,
● die Zeitfenster in
MD 21380: ESR_DELAY_TIME1 und
MD 21381: ESR_DELAY_TIME2,
● der Anstoß durch Systemvariable $AC_ESR_TRIGGER
$AA_ESR_TRIGGER für Einzelachsen,
● die vereinbarte ESR
MD 37500: ESR_REACTION = 21,
● LFPOS aus der modalen 46. G-Code-Gruppe.

NC-geführtes Rückziehen freigeben und starten


Wenn die Systemvariable $AC_ESR_TRIGGER = 1 gesetzt wird, und wenn in diesem
Kanal eine Rückzugsachse konfiguriert ist (d. h. MD 37500: ESR_REACTION = 21) und für
diese Achse $AA_ESR_ENABLE = 1 gesetzt ist, dann wird in diesem Kanal LIFTFAST
aktiviert.
Im Teileprogramm muss die Rückzugsposition POLF programmiert worden sein. Beim
Einzelachs-Rückziehen mit POLFA(Achse, Typ, Wert) muss der Wert programmiert
worden sein und die folgenden Bedingungen eingehalten werden:
● $AA_ESR_ENABLE = 1 gesetzt sein.
● POLFA(Achse) muss zum Triggerzeitpunkt eine Einzelachse sein.
● POLFA(Typ) entweder Typ=1 oder Typ=2
Für die Rückzugbewegung müssen die Freigabesignale gesetzt sein und gesetzt bleiben.
● Die mit LFPOS, POLF konfigurierte Abhebebewegung der mit POLFMASK oder
POLFMLIN selektierte(n) Achse(n) ersetzt die für diese Achse(n) im Teileprogramm
festgelegte Bahnbewegung.
● Die Erweiterte Rückzugbewegung (d. h. durch $AC_ESR_TRIGGER ausgelöstes
LIFTFAST/LFPOS) ist nicht unterbrechbar und kann nur durch NOTAUS vorzeitig
beendet werden.

Arbeitsvorbereitung
13-36 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.7 Erweitertes Stillsetzen und Rückziehen

Für den Rückzug steht maximal die Summe der Zeiten MD 21380: ESR_DELAY_TIME1 und
MD 21381: ESR_DELAY_TIME2 zur Verfügung. Nach Ablauf dieser Zeitspanne wird auch
für die Rückzugachse Schnellbremsen eingeleitet mit anschließendem Nachführen.

Rückzugsrichtung beim Schnellabheben und Achstausch


Zum Zeitpunkt der Aktivierung des Schnellabhebens wird der gültige Frame berücksichtigt.

Hinweis
Frames mit Drehung beeinflussen über POLF auch die Richtung, in welche abgehoben
wird. Das NC-geführte Rückziehen wird
• konfiguriert: über MD 37500: 21 sowie 2 Zeitangabe über MD s.o.,
• freigegeben ($AA_ESR_ENABLE) und
• gestartet: Systemvariable $AC_ESR_TRIGGER für Einzelachsen mit
$AA_ESR_TRIGGER.

Beim NC-geführten Rückziehen wird LIFTFAST/LFPOS wie beim Gewindeschneiden


genutzt und mit der Systemvariable $AC_ESR_TRIGGER wird die im Kanal konfigurierte
Rückzugsachse zum Schnellabheben freigegeben. Durch $AC_ESR_TRIGGER ausgelöstes
Rückziehen ist gegen Mehrfach-Rückzug verriegelt.
Rückzugsachsen sind immer genau einem NC-Kanal zuzuordnen und dürfen nicht zwischen
den Kanälen getauscht werden. Der Versuch eine Rückzugsachse in einen anderen Kanal
zu tauschen wird mit dem Alarm 26122 angezeigt.
Erst nachdem diese Achse mit $AA_ESR_ENABLE[AX] = 0 wieder deaktiviert wurde, kann
die Achse in einem neuen Kanal getauscht werden. Nach dem erfolgten Achstausch können
Achsen wieder mit $AA_ESR_ENABLE[AX] = 1 beaufschlagt werden.
Neutrale Achsen können kein NC-geführtes ESR ausführen.
Bei $AA_ESR_ENABLE[AX] = 1 und beim Wechsel der Achse in den neutralen Zustand,
wird der unterdrückbare ShowAlarm 26121 abgesetzt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-37
Weitere Funktionen
13.7 Erweitertes Stillsetzen und Rückziehen

13.7.3 NC-geführte Reaktionen auf Stillsetzen

Funktion
Stillsetzen
Der Ablauf für erweitertes Stillsetzen (NC-geführt) ist durch die beiden Maschinendaten
MD 21380: ESR_DELAY_TIME1 und
MD 21381: ESR_DELAY_TIME2 gegeben.
Für die Dauer der Zeitspanne in MD 21380 interpoliert die Achse ungestört weiter wie
programmiert. Nach Ablauf der Zeitspanne in MD 21380 wird interpolatorisch geführtes
Bremsen (Rampenstopp) eingeleitet. Für das interpolatorisch geführte Bremsen steht dann
maximal die Zeitspanne in MD 21381 zur Verfügung, nach Ablauf dieser Zeitspanne wird
Schnellbremsen mit anschließendem Nachführen eingeleitet.
NC-geführtes Stillsetzen freigeben und starten
Das NC-geführte Stillsetzen wird
konfiguriert: über MD 37500: 22 sowie 2 Zeitangabe über die zwei MD siehe oben;
freigegeben ($AA_ESR_ENABLE) und
gestartet: Systemvariable $AC_ESR_TRIGGER für Einzelachsen mit $AA_ESR_TRIGGER.

Beispiel Stillsetzen einer Einzelachse

MD 37500: ESR_REACTION[AX1] = 22 ; NC-geführtes Stillsetzen


MD 21380: ESR_DELAY_TIME1[AX1] = 0.3
MD 21381: ESR_DELAY_TIME2[AX1] = 0.06
...
$AA_ESR_ENABLE[AX1] = 1
$AA_ESR_TRIGGER[AX1] = 1 ; ab hier beginnt das Stillsetzen.

13.7.4 Generatorbetrieb/Zwischenkreisstützung

Funktion
Durch Projektierung von Antriebs-MD und entsprechender Programmierung über statische
Synchronaktionen ($AA_ESR_ENABLE) können kurzzeitige
Zwischenkreisspannungseinbrüche kompensiert werden. Die überbrückbare Zeit hängt ab
von der gespeicherten Energie des Generators, der zur Zwischenkreisstützung
herangezogen wird, und der benötigten Energie zur Aufrechterhaltung der momentanen
Bewegungen (Zwischenkreisstützung und Überwachung auf Generatordrehzahlgrenze).
Bei Unterschreitung der Zwischenkreisspannungs-Unterschwelle geht die betroffene
Achse/Spindel vom lage- oder drehzahlgeregelten Betrieb in den Generatorbetrieb über.
Durch Abbremsen des Antriebs (Vorgabe Drehzahlsollwert = 0) wird Energie in den
Zwischenkreis zurückgespeist.

Arbeitsvorbereitung
13-38 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.7 Erweitertes Stillsetzen und Rückziehen

Weitere Information siehe


/FB3/ Funktionshandbuch Sonderfunktionen; Achskopplungen und ESR (M3).

13.7.5 Antriebsautarkes Stillsetzen

Funktion
Die Antriebe eines zuvor gekoppelten Verbundes können durch zeitgesteuerte
Abschaltverzögerung mit möglichst geringen Abweichungen zueinander stillgesetzt werden,
wenn dies steuerungsseitig nicht möglich ist.
Das antriebsautarke Stillsetzen wird über MD konfiguriert und freigegeben
(Verzögerungsdauer T1 im MD) und wird mittels der Systemvariable $AA_ESR_ENABLE
freigegeben und mit $AN_ESR_TRIGGER gestartet.

Reaktionen
Für die Zeit T1 wird der im Fehlerfall gerade aktive Drehzahlsollwert weiter ausgegeben.
Hierdurch wird versucht, die vor dem Ausfall wirkende Bewegung aufrechtzuerhalten,
solange bis der Formschluss aufgehoben bzw. die parallel in anderen Antrieben initiierte
Rückzugsbewegung abgeschlossen ist. Dies kann für alle Leit-/Folgeantriebe oder für in
Kopplung oder im Verbund befindliche Antriebe sinnvoll sein.

7 W

Nach dieser Zeit T1 werden alle Achsen mit Drehzahlsollwert Null-Aufschaltung an der
Stromgrenze stillgesetzt und bei Erreichen des Stillstands bzw. nach Ablauf der Zeit (+
Antriebs-MD) die Impulse gelöscht.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-39
Weitere Funktionen
13.8 Link-Kommunikation

13.7.6 Antriebsautarkes Rückziehen

Funktion
Achsen mit digitalen Antrieben SIMODRIVE 611Digital können (wenn projektiert und
freigegeben)
● auch bei Ausfall der Steuerung (Lebenszeichenausfall-Erkennung),
● bei Abfall der Zwischenkreisspannung unter eine Warnschwelle,
● bei Auslösung durch die Systemvariable $AN_ESR_TRIGGER
selbsttätig eine Rückzugsbewegung ausführen. Die Rückzugsbewegung erfolgt autark durch
den Antrieb SIMODRIVE 611Digital. Ab dem Beginn der Rückzugsphase hält der Antrieb
seine Freigaben selbständig auf den zuvor gültigen Werten.
Weitere Informationen siehe
/FB3/ Funktionshandbuch Sonderfunktionen; Achsfunktionen und ESR (M3).

13.8 13.8 Link-Kommunikation

Funktion
NCU-Link, die Verbindung zwischen mehreren NCU-Einheiten einer Anlage, findet ihren
Einsatz in Anlagen mit dezentralem Systemaufbau. Bei großem Bedarf an Achsen und
Kanälen, z. B. bei Rundtaktmaschinen und Mehrspindelmaschinen, können die
Rechenleistung, die Konfigurationsmöglichkeiten und Speicherbereiche mit einer einzigen
NCU an praktische Grenzen stoßen.
Mehrere, mit einem NCU-Link-Modul vernetzte, NCUs bieten eine nach oben offene Lösung,
die insgesamt die Aufgaben solcher Werkzeugmaschinen erfüllt. Das NCU-Link-Modul (HW)
realisiert eine schnelle NCU-NCU-Kommunikation durch schreibenden und lesenden Zugriff
auf Systemvarable.

Voraussetzung
Diese Funktionalität ist an die zu bestellende Option geknüpft.

Linkvariable
Link-Variablen sind systemglobale Daten, die von den verbundenen NCUs als
Systemvariablen angesprochen werden können.
Durch den Anwender (das ist in diesem Falle in der Regel der Maschinenhersteller) wird
festgelegt:
● Inhalte dieser Variablen,
● ihr Datentyp,
● ihre Verwendung,
● ihre Position (Zugriffsindex) im Link-Speicher.

Arbeitsvorbereitung
13-40 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.8 Link-Kommunikation

Anwendungen für Link-Variable


● globale Maschinenzustände
● Werkstück-Aufspannung offen/geschlossen
● usw.

Zeitliches Verhalten zugreifender Anwendungen


Die zu einem Zeitpunkt gemeinsam auf den Link-Speicher zugreifenden Anwendungen der
verschiedenen NCUs müssen den Link-Speicher einheitlich benutzen. Für zeitlich gänzlich
entkoppelte Vorgänge kann der Link-Speicher verschieden belegt werden.

Warnung
Ein Schreibvorgang einer Linkvariablen ist erst dann beendet, wenn auch die anderen NCUs
die geschriebene Information vorfinden. Dafür wird die Zeit von ca. zwei Interpolationstakten
benötigt. Das lokale Schreiben in den Link-Speicher wird um die gleiche Zeit verzögert,
damit Konsistenz herrscht.
Weitere Hinweise finden Sie im
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Mehrere Bedientafeln und NCUs (B3).

13.8.1 Zugriff auf einen NCU-globalen Speicherbereich

Funktion
Mehrere über Link-Module verbundene NCUs können mit Hilfe der im Folgenden
beschriebenen Systemvariablen-Zugriffe auf einen NCU-globalen Speicherbereich
schreibend und lesend zugreifen.
● Jede über Link-Modul verbunden NCU kann für alle verbundenen NCUs einheitlich
ansprechbare globaleLink-Variablen nutzen.
● Link-Variablen sind als Systemvariablen programmierbar. Die Bedeutung dieser
Variablen wird in der Regel durch den Maschinenhersteller festgelegt und dokumentiert.
● Anwendungen für Link-Variablen
● Datenvolumen vergleichsweise klein
● Übertragungsgeschwindigkeit sehr schnell, daraus folgt: Die Nutzung ist für zeitkritische
Informationen vorgesehen.
● Der Zugriff auf diese Systemvariablen ist aus dem Teileprogramm und aus
Synchronaktionen heraus möglich. Die Größe des Speicherbereiches für NCU-globale
Systemvariablen ist projektierbar.
Nach einem Interpolationstakt können alle beteiligten NCUs einen neu geschrieben Wert in
einer globalen Systemvariablen konsistent lesen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-41
Weitere Funktionen
13.9 Achscontainer (AXCTWE, AXCTWED)

Parameter
Link-Variablen sind im Link-Speicher abgelegt. Nach dem Hochlauf ist der Link-Speicher mit
0 initialisiert.
Innerhalb des Link-Speichers können die folgenden Link-Variablen angesprochen werden:
● INT $A_DLB[i] ;Datenbyte (8 Bit)
● INT $A_DLW[i] ;Datenwort (16 BIT)
● INT $A_DLD[i] ;Datendoppelwort (32 Bit)
● REAL $A_DLR[i] ;Realdatum (64 Bit)
Entsprechend des Typs werden beim Schreiben/Lesen der Linkvariablen 1, 2, 4, 8 Byte
angesprochen.
Der Index i bezeichnet den Anfang der entsprechenden Variablen bezogen auf den Anfang
des projektierten Link-Speichers. Der Index wird ab 0 gezählt.
Wertebereiche
Mit den Datentypen sind die folgenden Wertebereiche verbunden:
BYTE: 0 bis 255
WORD: -32768 bis 32767
DWORD: -2147483646 bis +2147483647
REAL: ±(2,2*10-308 … 1,8*10+308)

Beispiel

$A_DLB[5]=21 Das 5. Byte im gemeinsamen Link-Speicher erhält den Wert 21.

13.9 13.9 Achscontainer (AXCTWE, AXCTWED)

Funktion
Bei Rundtaktmaschinen/Mehrspindelmaschinen bewegen sich die werkstücktragenden
Achsen von einer Bearbeitungseinheit zur nächsten.
Weil die Bearbeitungseinheiten verschiedenen NCU-Kanälen unterstehen, müssen bei
einem Stations-/Lagewechsel die werkstücktragenden Achsen dem entsprechenden NCU-
Kanal dynamisch neu zugeordnet werden. Diesem Zweck dienen Achscontainer.
Zu einem Zeitpunkt ist immer nur eine Werkstück-Aufspannachse/Spindel an der lokalen
Bearbeitungseinheit aktiv. Der Achscontainer stellt die Verbindungsmöglichkeiten zu allen
Aufspannachsen/Spindeln zusammen, von denen immer nur genau eine für die
Bearbeitungseinheit aktiviert ist.

Arbeitsvorbereitung
13-42 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.9 Achscontainer (AXCTWE, AXCTWED)

Programmierung
Die Verschiebung der Einträge im Achscontainer um die Schrittweite n erfolgt mit den
Befehlen:

AXCTSWE(CTi) AXIS CONTAINER SWITCH ENABLE


AXCTSWED(CTi) AXIS CONTAINER SWITCH ENABLE DIRECT

Parameter

AXCTSWE Von jeden Kanal die im Container eingetragenen


Achsen für eine Containerdrehung freigeben.
AXCTSWED Unter alleiniger Wirkung des aktiven Kanals um eine
hinterlegte Schrittweite den Achscontainer drehen.
Die im Container eingetragenen Achsen werden
freigegeben, wenn sich die übrigen Kanäle, die
Achsen im Container haben, im RESET-Zustand
befinden.
CTi Nummer des Achscontainers, dessen Inhalte
oder verschoben werden sollen oder

z. B. A_CONT1 durch MD eingestellter individueller Namen des


Achscontainers.

Achscontainer
Über Achscontainer können zugeordnet werden:
● lokale Achsen und/oder
● Link-Achsen (s. Grundlagen)
Der Wechsel der über einen Achscontainer definiert benutzbaren Achsen erfolgt durch
Verschiebung der Einträge im Achscontainer.
Die Verschiebung kann durch das Teileprogramm ausgelöst werden.
Achscontainer mit Link-Achsen sind ein NCU-übergreifendes Betriebsmittel (NCU global),
das durch die Steuerung koordiniert wird. Achscontainer, in denen ausschließlich lokale
Achsen verwaltet werden, sind möglich.
Detaillierte Hinweise zur Projektierung von Achscontainern finden Sie im
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Mehrere Bedientafeln und NCUs (B3).

Freigabekriterien
AXCTSWE ()
Jeder Kanal, dessen Achsen im angegebenen Container eingetragen sind, gibt die Freigabe
für eine Containerdrehung (enable), wenn er mit der Bearbeitung der Lage/Station fertig ist.
Wenn in der Steuerung die Freigaben aller Kanäle für die Achsen des Containers
eingetroffen sind, erfolgt die Containerdrehung mit der im SD hinterlegten Schrittweite.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-43
Weitere Funktionen
13.9 Achscontainer (AXCTWE, AXCTWED)

.DQDODFKV /RJLVFKHV0DVFKLQHQDFKVDEELOG
QDPH

;  $; /RNDOH0DVFKLQHQDFKVH
<  $; /RNDOH0DVFKLQHQDFKVH
= 
6 
&7B6/ $FKVFRQWDLQHU(LQWUDJ 6ORW

1ULPORJLVFKHQ
0DVFKLQHQDFKVDEELOG

$FKVFRQWDLQHU $FKVFRQWDLQHU

1&B$; 1&B$;
1&B$;
1&B$;
1&B$; $;&76:( &7 1&B$;

1&B$;
 
 
1&B$;


$FKVFRQWDLQHUHLQWU¦JHPLW6FKULWWZHLWHYHUVFKREHQ

Nach der Achscontainerdrehung um 1 ist im vorstehenden Beispiel der Kanalachse Z statt


der Achse AX1 auf NCU1 die Achse AX5 auf NCU1 zugeordnet.
AXCTSWED ()
Die Befehlsvariante AXCTSWED(CTi) kann zur Vereinfachung der Inbetriebnahme
eingesetzt werden. Der Achscontainer dreht sich unter alleiniger Wirkung des aktiven Kanals
um die im SD hinterlegte Schrittweite. Der Aufruf darf nur verwendet werden, wenn sich die
übrigen Kanäle, die Achsen im Container haben, im RESET-Zustand befinden.
Von der neuen Achszuordnung nach einer Achscontainerdrehung sind alle NCUs betroffen,
deren Kanäle über das logische Maschinenachsabbild auf den gedrehten Achscontainer
verweisen.

Achscontainer-Drehung mit impliziten GET/GETD


Bei der Freigabe einer Achscontainer-Drehung werden alle dem Kanal zugeordneten
Achscontainer-Achsen mittels GET bzw. GETD dem Kanal zugeordnet. Eine Abgabe der
Achsen ist erst nach der Achscontainer-Drehung wieder erlaubt
Maschinenhersteller
Dieses Verhalten kann über ein Bit per Maschinendatum eingestellt werden. Bitte beachten
Sie die Angaben des Maschinenherstellers.

Arbeitsvorbereitung
13-44 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.10 Programmlaufzeit/Werkstückzähler

Hinweis
Die Achscontainer-Drehung mit impliziten GET/GETD kann für eine Achse die im Zustand
Hauptlauf-Achse, z.B. für eine PLC-Achse nicht angewendet werden, da diese Achse dann
diesen Zustand zur Achscontainer-Drehung verlassen müsste.

13.10 13.10 Programmlaufzeit/Werkstückzähler

13.10.1 Allgemeines
Zur Unterstützung des Bearbeiters an der Werkzeugmaschine werden Informationen zur
Programmlaufzeit bereitgestellt.
Diese Informationen sind in den entsprechenden Maschinendaten spezifiziert und können
als Systemvariable im NC- und/oder PLC-Programm bearbeitet werden. Gleichzeitig stehen
diese Informationen dem HMI in der Bedientafelfront-Schnittstelle zur Verfügung.

13.10.2 Programmlaufzeit

Funktion
Unter der Funktion Programmlaufzeit werden Timer als Systemvariable bereitgestellt, die zur
Überwachung technologischer Prozesse genutzt werden können.
Für diese Timer existieren nur Lese-Zugriffe. Auf sie kann HMI jederzeit lesend zugreifen.

Parameter
Die beiden folgenden Timer sind als NCK-spezifische Systemvariable definiert und immer
aktiv.
Sytemvariable

$AN_SETUP_TIME Zeit seit dem letzten Setup in Minuten;


wird bei SETUP rückgesetzt
$AN_POWERON_TIME Zeit seit dem letzten PowerOn in Minuten;
wird bei POWERON rückgesetzt

Die drei folgenden Timer sind als kanalspezifische Systemvariable definiert und können über
Maschinendatum aktiviert werden.

$AC_OPERATING_TIME Gesamt-Laufzeit von NC-Programmen in der


Betriebsart Automatik in Sekunden
$AC_CYCLE_TIME Laufzeit des angewählten NC-Programms in Sekunden
$AC_CUTTING_TIME Werkzeug-Eingriffszeit in Sekunden
$MC_RUNTIMER_MODE Werkzeug-Eingriffszeit in Sekunden

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-45
Weitere Funktionen
13.10 Programmlaufzeit/Werkstückzähler

Hinweis
Alle Timer werden bei einem Steuerungshochlauf mit Default-Werten genullt und können
unabhängig von ihrer Aktivierung gelesen werden.

Beispiel

1. Aktivierung der Laufzeit-Messung für das aktive NC-Programm, dabei kein Messen
bei aktivem Probelauf-Vorschub und Programm-Test:
$MC_PROCESSTIMER_MODE = 'H2'
2. Aktivierung der Messung für die Werkzeug-Eingriffs-Zeit, dabei auch Messen bei
aktivem Probelauf-Vorschub und Programm-Test:
$MC_PROCESSTIMER_MODE = 'H34'
3. Aktivierung der Messung für die Gesamt-Laufzeit und die Werkzeug-Eingriffszeit,
dabei auch Messen bei Programm-Test:
$MC_PROCESSTIMER_MODE = 'H25'

13.10.3 Werkstückzähler

Funktion
Mit der Funktion "Werkstückzähler" werden Zähler bereitgestellt, die z. B. für die
steuerungsinterne Zählung von Werkstücken verwendet werden können. Diese Zähler
existieren als kanalspezifische Systemvariablen mit Schreib- und Lese-Zugriff im
Wertebereich von 0 bis 999 999 999.
Über Maschinendaten kann auf die Zähler-Aktivierung, den Zeitpunkt der Nullung und den
Zählalgorithmus Einfluss genommen werden.

Parameter
Folgende Zähler werden bereitgestellt:
Systemvariable

$AC_REQUIRED_PARTS Anzahl der benötigten Werkstücke (Werkstück-Soll)


In diesem Zähler kann die Anzahl der Werkstücke definiert
werden, bei dessen erreichen die Anzahl der aktuellen
Werkstücke $AC_ACTUAL_PARTS genullt wird. Über ein MD kann
die Generierung des Anzeige-Alarms " Werkstueck-Soll
erreicht" und des Kanal-VDI-Signals "Werkstück-Soll
erreicht" aktiviert werden.

Arbeitsvorbereitung
13-46 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.10 Programmlaufzeit/Werkstückzähler

$AC_TOTAL_PARTS Anzahl der insgesamt hergestellten Werkstücke (Gesamt-Ist)


Der Zähler gibt die Anzahl aller ab Startzeitpunkt
hergestellten Werkstücke an. Der Zähler wird automatisch
nur bei Steuerungshochlauf mit Default-Werten genullt.
$AC_ACTUAL_PARTS Anzahl der aktuellen Werkstücke (Aktuell-Ist)
In diesem Zähler wird die Anzahl aller ab Startzeitpunkt
hergestellten Werkstücke registriert. Bei einem Erreichen
des Werkstück-Solls ($AC_REQUIRED_PARTS) wird der Zähler
automatisch genullt ($AC_REQUIRED_PARTS ungleich 0 wird
vorausgesetzt).
$AC_SPECIAL_PARTS Anzahl der vom Anwender spezifizierten Werkstücke
Dieser Zähler erlaubt dem Anwender eine Werkstück-Zählung
nach eigener Definition. Definiert werden kann eine
Alarmausgabe bei Identität mit $AC_REQUIRED_PARTS
(Werkstück-Soll). Eine Nullung des Zählers muss der
Anwender selbst vornehmen.

Hinweis
Die Funktion "Werkstückzähler" ist unabhängig von den Funktionen der
Werkzeugverwaltung. Alle Zähler können vom HMI gelesen und beschrieben werden.
Alle Zähler werden bei einem Steuerungshochlauf mit Default-Werten genullt und können
unabhängig von ihrer Aktivierung gelesen/geschrieben werden.

Beispiel

Aktivierung des Werkstück-Zählers $AC_REQUIRED_PARTS:


$MC_PART_COUNTER='H3' $AC_REQUIRED_PARTS ist aktiv,
Anzeige-Alarm bei $AC_REQUIRED_PARTS
== $AC_SPECIAL_PARTS
Aktivierung des Werkstück-Zählers $AC_TOTAL_PARTS:
$MC_PART_COUNTER='H10' $AC_TOTAL_PARTS ist aktiv, mit jedem
$MC_PART_COUNTER_MCODE[0]=80 M02 wird der Zähler um den Wert 1
erhöht, $MC_PART_COUNTER_MCODE[0]
hat keine Bedeutung
Aktivierung des Werkstück-Zählers $AC_ACTUAL_PARTS:
$MC_PART_COUNTER='H300' $AC_TOTAL_PARTS ist aktiv, mit jedem
$MC_PART_COUNTER_MCODE[1]=17 M17 wird der Zähler um den Wert 1
erhöht
Aktivierung des Werkstück-Zählers $AC_SPECIAL_PARTS:
$MC_PART_COUNTER='H3000' $AC_SPECIAL_PARTS ist aktiv, mit
$MC_PART_COUNTER_MCODE[2]=77 jedem M77 wird der Zähler um den
Wert 1 erhöht
Abschalten des Werkstück-Zählers $AC_ACTUAL_PARTS:
$MC_PART_COUNTER='H200' $AC_TOTAL_PARTS ist nicht aktiv,
$MC_PART_COUNTER_MCODE[1]=50 Rest ohne Bedeutung
Aktivierung aller Zähler Beispiel 1-4:

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-47
Weitere Funktionen
13.11 Fenster aus dem Teileprogramm interaktiv aufrufen Befehl (MMC)

$MC_PART_COUNTER = 'H3313' $AC_REQUIRED_PARTS ist aktiv


$MC_PART_COUNTER_MCODE[0] = 80 Anzeige-Alarm bei $AC_REQUIRED_PARTS
$MC_PART_COUNTER_MCODE[1] = 17 == $AC_SPECIAL_PARTS
$MC_PART_COUNTER_MCODE[2] = 77 $AC_TOTAL_PARTS ist aktiv, mit jedem
M02 wird der Zähler um den Wert 1
erhöht
$MC_PART_COUNTER_MCODE[0] hat keine
Bedeutung
$AC_ACTUAL_PARTS ist aktiv, mit
jedem M17 wird der Zähler um den
Wert 1 erhöht
$AC_SPECIAL_PARTS ist aktiv, mit
jedem M77 wird der Zähler um den
Wert 1 erhöht

13.11 13.11 Fenster aus dem Teileprogramm interaktiv aufrufen Befehl (MMC)

Funktion
Über den Befehl MMC können aus dem Teileprogramm auf dem HMI anwenderdefinierte
Dialogfenster (Dialogbilder) angezeigt werden.
Das Aussehen der Dialogfenster wird durch rein textuelle Projektierung festgelegt (COM-
Datei im Zyklenverzeichnis), die HMI -System-Software bleibt dabei unverändert.
Anwenderdefinierte Dialogfenster können nicht zeitgleich in verschiedenen Kanälen
aufgerufen werden.

Programmierung
MMC(CYCLES, PICTURE_ON, T_SK.COM, BILD, [Link], BILD_3.AWB,
TEST_1, A1", "S")
Detaillierte Hinweise zur Programmierung des MMC-Befehls (inkl. Programmierbeispiele)
finden Sie in /IAM/ in den Büchern AE1, BE1, HE1, IM2, IM4 und IM5 je nach der
verwendeten HMI-Software.

Parameter

MMC Aus dem Teileprogramm interaktiv Dialogfenster am


HMI aufrufen.
CYCLES Bedienbereich, in dem die projektierten
Anwenderdialoge ausgeführt werden.
PICTURE_ON bzw. PICTURE_OFF Befehl: Bildanwahl bzw. Bildabwahl
T_SK.COM Com-Datei: Name der Dialogbild-Datei
(Anwenderzyklen). Hier ist das Aussehen der
Dialogbilder festgelegt. Im Dialogbild können
Anwendervariablen und/oder Kommentartexte angezeigt
werden.

Arbeitsvorbereitung
13-48 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.12 Beeinflussung der Bewegungsführung

BILD Dialogbildname: Die einzelnen Bilder werden durch


den Dialogbildnamen ausgewählt.
[Link] Anwenderdatendefinitionsdatei, auf die beim
Lesen/Schreiben von Variablen zugegriffen wird.
BILD_3.AWB Grafikdatei
TEST_1 Anzeigezeit oder Quittungsvariable
A1 Textvariablen...",
"S" Quittungsmodus: synchron, Quittung über den Softkey
"OK"

13.12 13.12 Beeinflussung der Bewegungsführung

13.12.1 Prozentuale Ruckkorrektur (JERKLIM)

Funktion
In kritischen Programmabschnitten kann es notwendig sein, den Ruck unter den maximal
möglichen Wert zu beschränken, um z. B. die Maschinenbeanspruchung zu verringern. Der
Beschleunigungsmodus SOFT muss aktiv sein. Die Funktion wirkt nur auf Bahnachsen.

Programmierung
JERKLIM[Achse] =...

Parameter

JERKLIM Änderung in Prozent für den größten zulässigen Ruck


bezogen auf den im Maschinendatum für die Achse
eingestellten Wert
Achse Maschinenachse, deren Ruckgrenzwert angepasst
werden soll
Wertebereich: 1 ... 200 100 entspricht: keine Beeinflussung des Rucks.
100 ist nach RESET und Teileprogramm-Beginn
wirksam.

Beispiel
In den AUTOMATIK-Betriebsarten wird für die programmierte Achse der Ruckgrenzwert auf
den angegebenen Prozentsatz des im Maschinendatum hinterlegten Ruckgrenzwertes
beschränkt.
N60 JERKLIM[X] = 75
Bedeutet: Der Achsschlitten in X-Richtung soll nur mit 75% des für die Achse zulässigen
Rucks beschleunigt/verzögert werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-49
Weitere Funktionen
13.12 Beeinflussung der Bewegungsführung

Hinweis
Ein weiteres Beispiel folgt im Kapitel "Prozentuale Geschwindigkeitskorrektur (VELOLIM)".

13.12.2 Prozentuale Geschwindigkeitskorrektur (VELOLIM)

Funktion
In kritischen Programmabschnitten kann es notwendig sein, die Geschwindigkeit unter den
maximal möglichen Werte zu beschränken, um z. B. die Maschinenbeanspruchung zu
verringern oder die Bearbeitungsgüte zu verbessern. Die Funktion wirkt nur auf Bahn- und
Positionierachsen.

Programmierung
VELOLIM[Achse] = ...

Parameter

VELOLIM Änderung in Prozent für die größte zulässige


Geschwindigkeit bezogen auf den im Maschinendatum
für die Achse eingestellten Wert
Achse Maschinenachse, deren Geschwindigkeitsgrenzwert
angepasst werden soll
Wertebereich: 1 ... 100 100 entspricht: keine Beeinflussung der
Geschwindigkeit.
100 ist nach RESET und Teileprogramm-Beginn
wirksam.

Beispiel VELOLIM
In den AUTOMATIK-Betriebsarten wird für die programmierte Achse der
Geschwindigkeitsgrenzwert auf den angegebenen Prozentsatz des im Maschinendatum
hinterlegten Geschwindigkeitsgrenzwertes beschränkt.
N70 VELOLIM[X] = 80
Bedeutet: Der Achsschlitten in X-Richtung soll nur mit 80 % der für die Achse zulässigen
Geschwindigkeit verfahren werden.

Arbeitsvorbereitung
13-50 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.13 Master-/Slave-Verband (MASLDEF, MASLDEL, MASLOF, MASLOF, MASLOFS)

Beispiel VELOLIM und JERKLIM


N1000 G0 X0 Y0 F10000 SOFT G64
N1100 G1 X20 RNDM = 5 ACC[X] = 20
ACC[Y] = 30
N1200 G1 Y20 VELOLIM[X] = 5
JERKLIM[Y] = 200
N1300 G1 X0 JERKLIM[X] = 2
N1400 G1 Y0
M30

13.13 Master-/Slave-Verband (MASLDEF, MASLDEL, MASLOF, MASLOF,


13.13

MASLOFS)

Funktion
Die Master-/Slave-Kopplung vor SW 6.4 gestattet das Einkoppeln der Slave-Achsen auf ihre
Masterachse nur im Stillstand der beteiligten Achsen.
Die Erweiterung des SW-Standes 6.5 erlaubt das Koppeln und Trennen von drehenden,
drehzahlgesteuerten Spindeln und die dynamische Projektierung.

Programmierung

MASLON(Slv1, Slv2, ..., )


MASLOF(Slv1, Slv2, ..., )
MASLDEF(Slv1, Slv2, ..., Erweiterung für dynamische Projektierung
Masterachse)
MASLDEL(Slv1, Slv2, ..., ) Erweiterung für dynamische Projektierung
MASLOFS(Slv1, Slv2, ..., ) Erweiterung für Slavespindel

Hinweis
Bei MASLOF/MASLOFS entfällt der implizite Vorlaufstopp. Bedingt durch den fehlenden
Vorlaufstopp liefern die $P-Systemvariablen für die Slaveachsen bis zum Zeitpunkt erneuter
Programmierung keine aktualisierten Werte.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-51
Weitere Funktionen
13.13 Master-/Slave-Verband (MASLDEF, MASLDEL, MASLOF, MASLOF, MASLOFS)

Parameter
Allgemein

MASLON eine temporäre Kopplung einschalten.


MASLOF eine aktive Kopplung trennen. Bei Spindeln
sind die Erweiterungen zu beachten.

Erweiterung dynamische Projektierung

MASLDEF Kopplung anwenderdefiniert über


Maschinendaten oder auch aus dem
Teileprogramm heraus anlegen/ändern.
MASLOFS die Kopplung analog zu MASLOF trennen und die
Slavespindel automatisch abbremsen.
MASLDEL Master/Slave Achsverband trennen und
Definition des Verbandes löschen.
Slv1, Slv2, ... Slave-Achsen, die von einer Masterachse
geführt werden.
Masterachse Achse, die in einem Master/Slave-Verband
definierte Slaveachsen führt.

Beispiel Dynamische Projektierung einer Master/Slave-Kopplung


Dynamische Projektierung einer Master/Slave-Kopplung aus dem Teileprogramm heraus:
Die nach einer Achscontainerdrehung relevante Achse soll zur Masterachse werden.

MASLDEF(AUX,S3) ;S3 Master für AUX


MASLON(AUX) ;Kopplung ein für AUX
M3=3 S3=4000 ;Drehrichtung rechts
MASLDEL(AUX) ;Projektierung löschen und
;Trennen der Kopplung
AXCTSWE(CT1) ;Containerdrehung

Beispiel Istwertkopplung einer Slave-Achse


Istwertkopplung einer Slave-Achse auf den gleichen Wert der Master-Achse durch
PRESETON.
Bei einer Permanenten Master/Slave-Kopplung soll an der SLAVE Achse der Istwert durch
PRESETON verändert werden.

N37262 ;Permanente Kopplung kurz ausschalten


$MA_MS_COUPLING_ALWAYS_ACTIVE[AX2]=0
N37263 NEWCONF
N37264 STOPRE
MASLOF(Y1) ;Temporäre Kopplung aus
N5 PRESETON(Y1, 0, Z1, 0, B1, 0, C1, 0, ;Istwert setzen der nicht referierten
U1, 0) ;Slave Achsen, da diese mit Power On
;aktiviert sind.

Arbeitsvorbereitung
13-52 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Weitere Funktionen
13.13 Master-/Slave-Verband (MASLDEF, MASLDEL, MASLOF, MASLOF, MASLOFS)

N37262 ;Permanente Kopplung aktivieren


$MA_MS_COUPLING_ALWAYS_ACTIVE[AX2]=1
N37263 NEWCONF

Beispiel Kopplungssequenz Lage 3/Container CT1


Damit die Kopplung nach der Containerdrehung mit einer anderen Spindel geschlossen
werden kann, muss vorher die alte Kopplung getrennt, die Projektierung gelöscht und die
neue Kopplung projektiert werden.
Ausgangssituation:

Nach Drehung um einen Slot:

Literatur:
/FB2/ Funktionshandbuch Erweiterungsfunktionen; Mehrere Bedientafelfronten und NCUs
(B3), Kapitel "Achscontainer".

Beschreibung
Allgemein

MASLOF Bei Spindeln im Drehzahlsteuerbetrieb wird diese Anweisung unmittelbar


ausgeführt. Die zu diesem Zeitpunkt drehenden Slavespindeln behalten
ihre Drehzahlen bis zur erneuten Drehzahlprogrammierung bei.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 13-53
Weitere Funktionen
13.13 Master-/Slave-Verband (MASLDEF, MASLDEL, MASLOF, MASLOF, MASLOFS)

Erweiterung dynamische Projektierung

MASLDEF Definition eines Master-/Slave-Verbandes aus dem Teileprogramm


heraus. Vorher erfolgte die Definition ausschließlich über
Maschinendaten.
MASLDEL Die Anweisung hebt die Zuordnung der Slaveachsen zur Masterachse
auf und trennt gleichzeitig, analog zu MASLOF die Kopplung auf.
Die in den Maschinendaten vereinbarten Master-/Slave-Definitionen
bleiben erhalten.
MASLOFS MASLOFS kann dazu verwendet werden, um Slavespindeln beim
Trennen der Kopplung automatisch abzubremsen.
Bei Achsen und Spindeln im Positionierbetrieb wird die Kopplung nur im
Stillstand geschlossen und getrennt.

Hinweis
Für die Slave-Achse kann der Istwert durch PRESETON auf den gleichen Wert der Master
Achse synchronisiert werden. Dazu muss die dauerhafte Master-/Slave-Kopplung kurzfristig
ausgeschaltet werden um den Istwert der nicht referierten Slave-Achse mit Power On auf
den Wert der Master-Achse zu setzen. Danach wird die dauerhafte Kopplung wieder
hergestellt.
Die dauerhafte Master-/Slave-Kopplung wird mit MD 37262:
MS_COUPLING_ALWAYS_ACTIVE = 1 aktiviert und hat keine Auswirkung auf die
Sprachbefehle der temporären Kopplung.

Koppelverhalten bei Spindeln ab SW 6.5


Bei Spindeln im Drehzahlsteuerbetrieb wird das Koppelverhalten von MASLON, MASLOF,
MASLOFS und MASLDEL explizit über das MD 37263: MS_SPIND_COUPLING_MODE
festgelegt.
In der Standardeinstellung mit MD 37263 = 0 erfolgt das Einkoppeln und Trennen der Slave-
Achsen ausschließlich im Stillstand der beteiligten Achsen. MASLOFS entspricht dem
MASLOF.
Bei MD 37263 = 1 wird die Koppelanweisung unmittelbar, und damit auch in der Bewegung
ausgeführt. Die Kopplung wird bei MASLON sofort geschlossen und bei MASLOFS oder
MASLOF sofort getrennt. Die zu diesem Zeitpunkt drehenden Slavespindeln werden bei
MASLOFS automatisch abgebremst und behalten bei MASLOF ihre Drehzahlen bis zur
erneuten Drehzahlprogrammierung bei.

Arbeitsvorbereitung
13-54 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Eigene Abspanprogramme 14
14.1 14.1 Unterstützende Funktion für das Abspanen

Funktion
Für das Abspanen werden Ihnen fertige Bearbeitungszyklen angeboten. Darüber hinaus
haben Sie die Möglichkeit, mit den nachfolgend aufgeführten Funktionen eigene
Abspanprogramme zu erstellen.

Hinweis
Sie können diese Funktionen nicht nur zum Abspanen, sondern universell einsetzen.

Voraussetzung
Vor dem Aufruf von CONTPRON oder CONTDCON muss
● ein Startpunkt angefahren werden, der eine kollisionsfreie Bearbeitung erlaubt,
● die Schneidenradiuskorrektur mit G40 ausgeschaltet sein.

Programmierung
CONTPRON
oder
CONTDCON
mit
INTERSEC
oder
ISPOINTS
oder
EXECTAB
oder
CALCDAT
Konturaufbereitung beenden
EXECUTE (FEHLER)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 14-1
Eigene Abspanprogramme
14.2 Konturaufbereitung (CONTPRON)

Parameter

CONTDCON Konturdecodierung in Tabellenform einschalten (6-spaltig)


CONTPRON Konturaufbereitung in Tabellenform einschalten (11-spaltig)
INTERSEC Schnittpunkt zwischen zwei Konturelementen ermitteln.
(Nur für Tabellen, die durch CONTPRON erstellt wurden).
ISPOINTS Mögliche Schnittpunkte zwischen zweier Konturelementen ermitteln.
(Nur für Tabellen, die durch CONTPRON erstellt wurden).
EXECTAB Satzweise Abarbeitung von Konturelementen einer Tabelle
(Nur für Tabellen, die durch CONTPRON erstellt wurden).
CALCDAT Radien und Mittelpunkte eines Kreises aus 3 oder 4 Punkten
berechnen.
EXECUTE Konturaufbereitung beenden
FEHLER Variable für Fehlerrückmeldung, Typ INT
1 = Fehler; 0 = kein Fehler

Mit EXECUTE wird die Konturaufbereitung abgeschaltet und gleichzeitig in den normalen
Abarbeitungsmodus zurückgeschaltet.
Beispiel:
N30 CONTPRON(...)
N40 G1 X... Z...
N50 ...
N100 EXECUTE(...)

14.2 14.2 Konturaufbereitung (CONTPRON)

Funktion
Die nach CONTPRON durchlaufenen Sätze beschreiben die Kontur, die aufbereitet wird. Die
Sätze werden nicht bearbeitet, sondern in der Konturtabelle abgelegt. Jedem Konturelement
entspricht eine Tabellenzeile im zweidimensionalen Feld der Konturtabelle. Die Anzahl der
ermittelten Hinterschnitte wird zurückgeliefert.

Programmierung
CONTPRON (TABNAME, BEARBART, NN, MODE)
Konturaufbereitung beenden und gleichzeitig in den normalen Abarbeitungsmodus zurück:
EXECUTE (FEHLER)

Arbeitsvorbereitung
14-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Eigene Abspanprogramme
14.2 Konturaufbereitung (CONTPRON)

Parameter

CONTPRON Konturaufbereitung einschalten


TABNAME Name der Kontur-Tabelle
BEARBART Parameter für Bearbeitungsart:
"G": Längsdrehen: Innenbearbeitung
"L": Längsdrehen: Außenbearbeitung
"N": Plandrehen: Innenbearbeitung
"P": Plandrehen: Außenbearbeitung
NN Anzahl der Hinterschnitte in Ergebnisvariable vom Typ INT
MODE Bearbeitungsrichtung, Typ INT
0 = Konturaufbereitung vorwärts (Default-Wert)
1 = Konturaufbereitung in beiden Richtungen

Beispiel 1: Kurventabelle erstellen


Erstellen einer Konturtabelle mit
● Namen KTAB,
● max. 30 Konturelementen (Kreise, Geraden),
● einer Variablen für die Anzahl auftretender Hinterschnittelemente,
● einer Variablen für Fehlermeldungen.









  



=
  

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 14-3
Eigene Abspanprogramme
14.2 Konturaufbereitung (CONTPRON)

NC-Teileprogramm

N10 DEF REAL KTAB[30,11] ;Konturtabelle mit Namen KTAB und


;beispielsweise max. 30 Konturelementen
;Parameterwert 11 ist eine feste Größe
N20 DEF INT ANZHINT ;Variable für Anzahl der
;Hinterschnittelemente mit Namen ANZHINT
N30 DEF INT FEHLER ;Variable für Quittung
;0=kein Fehler, 1=Fehler
N40 G18
N50 CONTPRON (KTAB,"G",ANZHINT) ;Aufruf Konturaufbereitung
N60 G1 X150 Z20 ;N60 bis N120 Konturbeschreibung
N70 X110 Z30
N80 X50 RND=15
N90 Z70
N100 X40 Z85
N110 X30 Z90
N120 X0
N130 EXECUTE(FEHLER) ;Füllen der Konturtabelle beenden,
;Umschalten auf normalen Programmbetrieb
N140 … ;Weitere Bearbeitung der Tabelle

Zugehörige Tabelle KTAB

Index Spalte
Zeile
(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
7 7 11 0 0 20 150 0 82.40535663 0 0
0 2 11 20 150 30 110 -1111 104.0362435 0 0
1 3 11 30 110 30 65 0 90 0 0
2 4 13 30 65 45 50 0 180 45 65
3 5 11 45 50 70 50 0 0 0 0
4 6 11 70 50 85 40 0 146.3099325 0 0
5 7 11 85 40 90 30 0 116.5650512 0 0
6 0 11 90 30 90 0 0 90 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0

Arbeitsvorbereitung
14-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Eigene Abspanprogramme
14.2 Konturaufbereitung (CONTPRON)

Erläuterung der Spalteninhalte

(0) Zeiger auf nächstes Konturelement (auf die Zeilennummer desselben)


(1) Zeiger auf vorhergehendes Konturelement
(2) Codierung des Konturmodes für die Bewegung
Mögliche Werte für X = abc
a = 102 G90 = 0 G91 = 1
b = 101 G70 = 0 G71 = 1
c= 100 G0 = 0 G1 = 1 G2 = 2 G3 = 3
(3), (4) Anfangspunkt der Konturelemente
(3) = Abszisse, (4) = Ordinate in der aktuellen Ebene
(5), (6) Endpunkt der Konturelemente
(5) = Abszisse, (6) = Ordinate in der aktuellen Ebene
(7) Max-/min-Anzeiger: kennzeichnet lokale Maxima und Minima in der Kontur
(8) Maximaler Wert zwischen Konturelement und Abszisse (bei Längsbearbeitung)
bzw. Ordinate (bei Planbearbeitung). Der Winkel ist abhängig von der
programmierten Bearbeitungsart.
(9), (10) Mittelpunktskoordinaten des Konturelements, wenn es ein Kreissatz ist.
(9) = Abszisse, (10) = Ordinate

Beispiel 2: Kurventabelle erstellen


Erstellen einer Konturtabelle mit
● Namen KTAB,
● max. 92 Konturelementen (Kreise, Geraden),
● Betriebsart: Längsdrehen, Außenbearbeitung,
● Aufbereitung vorwärts und rückwärts.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 14-5
Eigene Abspanprogramme
14.2 Konturaufbereitung (CONTPRON)









 




=
  

NC-Teileprogramm

N10 DEF REAL KTAB[92,11] ;Konturtabelle mit Namen KTAB und


;beispielsweise max. 92 Konturelementen
;Parameterwert 11 ist eine feste Größe
N20 CHAR BT="L" ;Betriebsart für CONTPRON:
;Längsdrehen, Außenbearbeitung
N30 DEF INT HE=0 ;Anzahl der Hinterschnittelemente=0
N40 DEF INT MODE=1 ;Aufbereitung vorwärts und rückwärts
N50 DEF INT ERR=0 ;Fehlerrückmeldung
...
N100 G18 X100 Z100 F1000
N105 CONTPRON (KTAB, BT, HE, MODE) ;Aufruf Konturaufbereitung
N110 G1 G90 Z20 X20
N120 X45
N130 Z0
N140 G2 Z-15 X30 K=AC(-15) I=AC(45)
N150 G1 Z-30
N160 X80
N170 Z-40
N180 EXECUTE(ERR) ;Füllen der Konturtabelle beenden,
;Umschalten auf normalen Programmbetrieb
...

Zugehörige Tabelle KTAB


Nach Ende der Konturaufbereitung steht die Kontur in beiden Richtungen zur Verfügung.

Arbeitsvorbereitung
14-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Eigene Abspanprogramme
14.2 Konturaufbereitung (CONTPRON)

Index Spalte
Zeile (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
0 61) 72) 11 100 100 20 20 0 45 0 0
1 03) 2 11 20 20 20 45 -3 90 0 0
2 1 3 11 20 45 0 45 0 0 0 0
3 2 4 12 0 45 -15 30 5 90 -15 45
4 3 5 11 -15 30 -30 30 0 0 0 0
5 4 7 11 -30 30 -30 45 -1111 90 0 0
6 7 04) 11 -30 80 -40 80 0 0 0 0
7 5 6 11 -30 45 -30 80 0 90 0 0
8 15) 26) 0 0 0 0 0 0 0 0 0
...
83 84 07) 11 20 45 20 80 0 90 0 0
84 90 83 11 20 20 20 45 -1111 90 0 0
85 08) 86 11 -40 80 -30 80 0 0 0 0
86 85 87 11 -30 80 -30 30 88 90 0 0
87 86 88 11 -30 30 -15 30 0 0 0 0
88 87 89 13 -15 30 0 45 -90 90 -15 45
89 88 90 11 0 45 20 45 0 0 0 0
90 89 84 11 20 45 20 20 84 90 0 0
91 839) 8510) 11 20 20 100 100 0 45 0 0
Erläuterung der Spalteninhalte und der Anmerkungen zu den Zeilen 0, 1, 6, 8, 83, 85 und 91
Es gelten die im Beispiel 1 genannten Erläuterungen der Spalteninhalte.
Immer in Tabellen-Zeile 0:
1) Vorgänger: Zeile n enthält das Konturende vorwärts
2) Nachfolger: Zeile n ist das Konturtabellenende vorwärts
Je einmal innerhalb der Konturelemente vorwärts:
3) Vorgänger: Konturbeginn (vorwärts)
4) Nachfolger: Konturende (vorwärts)
Immer auf Zeile Konturtabellenende (vorwärts) +1:
5) Vorgänger: Anzahl der Hinterschnitte vorwärts
6) Nachfolger: Anzahl der Hinterschnitte rückwärts
Je einmal innerhalb der Konturelemente rückwärts:
7) Nachfolger: Konturende (rückwärts)
8) Vorgänger: Konturbeginn (rückwärts)
Immer in letzter Tabellen-Zeile:
9) Vorgänger: Zeile n ist der Konturtabellenanfang (rückwärts)
10) Nachfolger: Zeile n enthält den Konturanfang (rückwärts)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 14-7
Eigene Abspanprogramme
14.2 Konturaufbereitung (CONTPRON)

Erlaubte Verfahrbefehle, Koordinatensystem


Für die Konturprogrammierung sind folgende G-Befehle zulässig:
G-Gruppe 1: G0, G1, G2, G3
zusätzlich Rundung und Fase.
Die Kreisprogrammierung ist über CIP und CT ist möglich.
Die Funktionen Spline, Polynom Gewinde führen zu Fehlern.
Änderungen des Koordinatensystems durch Einschalten eines Frames sind zwischen
CONTPRON und EXECUTE nicht zulässig. Gleiches gilt für einen Wechsel zwischen G70
und G71/G700 und G710.
Ein Tausch der Geometrieachsen mit GEOAX während der Aufbereitung der Konturtabelle
führt zu einem Alarm.

Aufbereitung beenden
Mit dem Aufruf von EXECUTE (variable) schalten Sie nach dem Schreiben der Kontur in den
normalen Programmablauf zurück und die Konturaufbereitung wird beendet. Die Variable
zeigt danach an:
1 = Fehler
0 = kein Fehler (die Kontur konnte fehlerfrei aufbereitet werden).

Hinterschnittelemente
Die Konturbeschreibung der einzelnen Hinterschnittelemente kann wahlweise in einem
Unterprogramm oder in einzelnen Sätzen erfolgen.

Abspanen unabhängig von der programmierten Konturrichtung


Die Konturaufbereitung CONTPRON wurde so erweitert, dass nach ihrem Aufruf die
Konturtabelle unabhängig von der programmierten Richtung zur Verfügung steht.

Arbeitsvorbereitung
14-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Eigene Abspanprogramme
14.3 Konturdecodierung (CONTDCON)

14.3 14.3 Konturdecodierung (CONTDCON)

Funktion
Die nach CONTDCON durchlaufenen Sätze beschreiben die Kontur, die decodiert wird. Die
Sätze werden nicht bearbeitet, sondern in einer 6-spaltigen Konturtabelle speichergünstig
codiert abgelegt. Jedem Konturelement entspricht eine Tabellenzeile in der Konturtabelle.
Aus Kenntnis der unten angegebenen Codierungsregeln können Sie Anwendungen wie z. B.
Zyklen aus den Tabellenzeilen DIN-Code-Programme zusammenstellen. In der
Tabellenzeile mit der Nummer 0 werden die Daten des Ausgangspunktes gespeichert.

Programmierung
CONTDCON (TABNAME, MODE)
Konturaufbereitung abschalten und gleichzeitig in den normalen Abarbeitungsmodus zurück:
EXECUTE (FEHLER)

Parameter

CONTDCON Konturaufbereitung einschalten


TABNAME Name der Kontur-Tabelle
MODE Bearbeitungsrichtung, Typ INT
0 = Konturaufbereitung (Default-Wert) gemäß der Folge der
Kontursätze

Die für CONTDCON zugelassenen G-Codes im zu tabellierenden Programmstück sind


umfangreicher als bei CONTPRON. Darüber hinaus werden Vorschübe und Vorschubtyp pro
Konturstück mit gespeichert werden.

Beispiel Konturtabelle erstellen


Erstellen einer Konturtabelle mit
● Namen KTAB,
● Konturelementen (Kreise, Geraden),
● Betriebsart: Drehen,
● Aufbereitung vorwärts.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 14-9
Eigene Abspanprogramme
14.3 Konturdecodierung (CONTDCON)









 




=
  

NC-Teileprogramm

N10 DEF REAL KTAB[9,6] ;Konturtabelle mit Namen KTAB und 9


Tabellenzeilen.
;Diese erlauben 8 Kontursätze. Parameterwert 6
;(Spaltenzahl der Tabelle) ist eine feste Größe
N20 DEF INT MODE = 0 ;Standardwert 0: nur in programmierter
;Richtung der Kontur. Wert 1 ist unzulässig.
N30 DEF INT ERROR = 0 ;Fehlerrückmeldung
...
N100 G18 G64 G90 G94 G710
N101 G1 Z100 X100 F1000
N105 CONTDCON (KTAB, MODE) ;Aufruf Konturdecodierung
;MODE darf weggelassen werden siehe oben.
N110 G1 Z20 X20 F200 ;Konturbeschreibung
N120 G9 X45 F300
N130 Z0 F400
N140 G2 Z-15 X30 K=AC(-15) I=AC(45)F100
N150 G64 Z-30 F600
N160 X80 F700
N170 Z-40 F800
N180 EXECUTE(ERROR) ;Füllen der Konturtabelle beenden,
;Umschalten auf normalen Programmbetrieb
...

Arbeitsvorbereitung
14-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Eigene Abspanprogramme
14.3 Konturdecodierung (CONTDCON)

Zugehörige Tabelle KTAB

Spalten- 0 1 2 3 4 5
index
Zeilenindex Konturmode Endpunkt Endpunkt Mittelpunkt Mittelpunkt Vorschub
Abszisse Ordinate Abszisse Ordinate
0 30 100 100 0 0 7
1 11031 20 20 0 0 200
2 111031 20 45 0 0 300
3 11031 0 45 0 0 400
4 11032 -15 30 -15 45 100
5 11031 -30 30 0 0 600
6 11031 -30 80 0 0 700
7 11031 -40 80 0 0 800
8 0 0 0 0 0 0

Erläuterung der Spalteninhalte

Zeile 0: Codierungen für den Startpunkt:


Spalte 0:
100 (Einerstelle): G0 = 0
101 (Zehnerstelle): G70 = 0, G71 = 1, G700 = 2, G710 = 3
Spalte 1: Startpunkt Abszisse
Spalte 2: Startpunkt Ordinate
Spalte 3-4: 0
Spalte 5: Zeilenindex des letzten Konturstückes in der Tabelle
Zeilen 1-n: Einträge der Konturstücke
Spalte 0:
100 (Einerstelle): G0 = 0, G1 = 1, G2 = 2, G3 = 3
101 (Zehnerstelle): G70 = 0, G71 = 1, G700 = 2, G710 = 3
102 (Hunderterstelle): G90 = 0, G91 = 1
103 (Tausenderstelle): G93 = 0, G94 = 1, G95 = 2, G96 = 3
104 (Zehntausenderstelle): G60 = 0, G44 = 1, G641 = 2, G642 = 3
105 (Hunderttausender Stelle): G9 = 1
Spalte 1: Endpunkt Abszisse
Spalte 2: Endpunkt Ordinate
Spalte 3: Mittelpunkt Abszisse bei Kreisinterpolation
Spalte 4: Mittelpunkt Ordinate bei Kreisinterpolation
Spalte 5: Vorschub

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 14-11
Eigene Abspanprogramme
14.3 Konturdecodierung (CONTDCON)

Erlaubte Verfahrbefehle, Koordinatensystem


Für die Konturprogrammierung sind folgende G-Gruppen und G-Befehle zulässig:

G-Gruppe 1: G0, G1, G2, G3


G-Gruppe 10: G60, G64, G641, G642
G-Gruppe 11: G9
G-Gruppe 13: G70, G71, G700, G710
G-Gruppe 14: G90, G91
G-Gruppe 15: G93, G94, G95, G96, G961
zusätzlich Rundung und Fase.
Die Kreisprogrammierung ist über CIP und CT ist möglich.
Die Funktionen Spline, Polynom, Gewinde führen zu Fehlern.
Änderungen des Koordinatensystems durch Einschalten eines Frames sind zwischen
CONTDCON und EXECUTE nicht zulässig. Gleiches gilt für einen Wechsel zwischen G70
und G71/G700 und G710.
Ein Tausch der Geometrieachsen mit GEOAX während der Aufbereitung der Konturtabelle
führt zu einem Alarm.

Aufbereitung beenden
Mit dem Aufruf von EXECUTE (FEHLER) schalten Sie nach dem Schreiben der
Konturtabelle in den normalen Programmablauf zurück und die Konturaufbereitung wird
beendet. Eine Rückmeldung erfolgt in der zugehörigen Variablen FEHLER:
0 = kein Fehler(die Kontur konnte fehlerfrei aufbereitet werden)
1 = Fehler
Unzulässige Befehle, falsche Ausgangsbedingungen, wiederholter CONTDCON-Aufruf ohne
EXECUTE( ), zu wenige Kontursätze oder zu klein definierte Tabellen führen zusätzlich zu
Alarmen.

Abspanen in der programmierten Konturrichtung


Die mit CONTDCON erzeugte Konturtabelle ist zum Abspanen in der programmierten
Richtung der Kontur vorgesehen.

Arbeitsvorbereitung
14-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Eigene Abspanprogramme
14.4 Schnittpunkt zweier Konturelemente (INTERSEC)

14.4 14.4 Schnittpunkt zweier Konturelemente (INTERSEC)

Funktion
INTERSEC ermittelt den Schnittpunkt von zwei normierten Konturelementen aus der mit
CONTPRON erzeugten Konturtabelle.

Programmierung
ISPOINT = INTERSEC (TABNAME1[n1], TABNAME2[n2], ISCOORD, MODE)
Der zurückgegebene Status von ISPOINT weist darauf hin, ob ein Schnittpunkt vorliegt
(ISPOINT = TRUE) oder kein Schnittpunkt gefunden wurde (ISPOINT = FALSE).

Parameter

INTERSEC Abspan-Funktion vom Typ REAL zur Ermittlung zweier


Konturelemente aus der mit CONTPRON erzeugten Konturtabelle
ISPOINT Variable für den Schnittpunktstatus vom Typ BOOL:
TRUE: Schnittpunkt gefunden
FALSE: kein Schnittpunkt gefunden
TABNAME1[n1] Tabellenname und n1. Konturelement der ersten Tabelle
TABNAME2[n2] Tabellenname und n2. Konturelement der zweiten Tabelle
ISCOORD Schnittpunkt-Koordinaten in der aktiven Ebene G17 - G19
MODE Bearbeitungsart: Mode = 0 (Defaultwert) oder Mode = 1
(Erweiterung)
0 = Schnittpunktberechnung in der mit Parameter 2 aktiven
Ebene
1 = Schnittpunktberechnung unabhängig der übergebenen Ebene
G17 - G19 übergebene Ebene der Konturtabelle bei Aktivierung von
CONTPRON

Hinweis
Beachten Sie, dass Variable vor ihrer Verwendung definiert sein müssen.
Die Übergabe der Konturen erfordert die Einhaltung der mit CONTPRON definierten Werte:

Parameter 2 Codierung des Kontur-Mode für die Bewegung


Parameter 3 Kontur-Anfangpunkt Abszisse
Parameter 4 Kontur-Anfangpunkt Ordinate
Parameter 5 Kontur-Endpunkt Abszisse
Parameter 6 Kontur-Endpunkt Ordinate
Parameter 9 Mittelpunkskoordinate für die Abszisse (nur bei Kreis-Kontur)
Parameter 10 Mittelpunkskoordinate für die Ordinate (nur bei Kreis-Kontur)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 14-13
Eigene Abspanprogramme
14.4 Schnittpunkt zweier Konturelemente (INTERSEC)

Beispiel
Schnittpunkt von Konturelement 3 der Tabelle TABNAME1 und Konturelement 7 der Tabelle
TABNAME2 ermitteln. Die Schnittpunkt-Koordinaten in der aktiven Ebene werden in
SCHNITT (1. Element = Abszisse, 2. Element = Ordinate) abgelegt. Existiert kein
Schnittpunkt, erfolgt ein Sprung zu KEINSCH (kein Schnittpunkt gefunden).

DEF REAL TABNAME1 [12, 11] ;Konturtabelle 1


DEF REAL TABNAME2 [10, 11] ;Konturtabelle 2
DEF REAL ISCOORD [2] ;Schnittpunkt-Koordinaten bei ISPOINT = 1
DEF BOOL ISPOINT ;Variable für Schnittpunktstatus
DEF INT MODE ;Bearbeitungsart definieren

MODE = 1 ;Berechnung unabhängig der aktiven Ebene
N10 ISPOINT=INTERSEC (TABNAME1[16,11],TABNAME2[3,11],ISCOORD, MODE)
;Aufruf Schnittpunkt der Konturelemente
N20 IF ISPOINT==FALSE GOTOF KEINSCH ;Sprung zu KEINSCH

Arbeitsvorbereitung
14-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Eigene Abspanprogramme
14.5 Verfahren eines Konturelementes aus der Tabelle (EXECTAB)

14.5 14.5 Verfahren eines Konturelementes aus der Tabelle (EXECTAB)

Funktion
Mit dem Befehl EXECTAB können Sie die Konturelemente einer Tabelle, die z. B. mit dem
Befehl CONTPRON erzeugt wurde, satzweise verfahren.

Programmierung
EXECTAB (TABNAME[n])

Parameter

TABNAME[n] Name der Tabelle mit Nummer n des Elementes

Beispiel
Mit dem Unterprogramm EXECTAB werden die Konturelemente der Tabelle KTAB
satzweise abgefahren. Beim Aufruf werden nacheinander die Elemente 0 bis 2 übergeben.

N10 EXECTAB (KTAB[0]) ;Element 0 der Tabelle KTAB verfahren


N20 EXECTAB (KTAB[1]) ;Element 1 der Tabelle KTAB verfahren
N30 EXECTAB (KTAB[2]) ;Element 2 der Tabelle KTAB verfahren

14.6 14.6 Kreisdaten berechnen (CALCDAT)

Funktion
Berechnung von Radius und Kreismittelpunkt-Koordinaten aus drei oder vier bekannten
Kreispunkten. Die angegebenen Punkte müssen unterschiedlich sein. Bei 4 Punkten, die
nicht exakt auf dem Kreis liegen, wird für Kreismittelpunkt und Radius ein Mittelwert gewählt.

Programmierung
VARIB = CALCDAT (PKT[n,2], ANZ, ERG)

Hinweis
Beachten Sie, dass Variable vor ihrer Verwendung definiert sein müssen.
Der angegebene Status weist darauf hin, ob die drei oder vier bekannten Punkte exakt auf
einen Kreis (VARIB = TRUE) oder keinen Kreis liegen (VARIB = FALSE).

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 14-15
Eigene Abspanprogramme
14.6 Kreisdaten berechnen (CALCDAT)

Parameter

CALCDAT Radien und Mittelpunkte eines Kreises aus 3 oder 4 Punkten


berechnen.
VARIB Variable für Status
TRUE = Kreis, FALSE = kein Kreis
PKT [n,2] Punkte zur Berechnung
n = Anzahl der Punkte (3 oder 4);
2 = Angabe von 2 Punkt-Koordinaten
ANZ Anzahl der zur Berechnung verwendeten Punkte: 3 oder 4
ERG [3] Variable für Ergebnis: Angabe von Kreismittelpunkt-Koordinaten und
Radius;
0 = Abszisse, 1 = Ordinate des Kreismittelpunkts; 2 = Radius

Beispiel
Von den drei Punkten soll ermittelt werden, ob sie auf einem Kreisabschnitt liegen.

<






>@
(5*




(5*>@

;
      
(5*>@

N10 DEF REAL PKT[3,2]=(20,50,50,40,65,20) ;Punkte-Definition


N20 DEF REAL ERG[3] ;Ergebnis
N30 DEF BOOL STATUS ;Variable für Status
N40 STATUS = CALCDAT(PKT,3,ERG) ;Aufruf der ermittelten Kreisdaten
N50 IF STATUS == FALSE GOTOF ERROR ;Sprung zu Fehler

Arbeitsvorbereitung
14-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen 15
15.1 15.1 Liste der Anweisungen

Legende:
1 Standardeinstellung bei Programmanfang (im Auslieferungsstand der Steuerung, wenn nichts anderes programmiert
ist).
2 Die Gruppen-Numerierung entspricht der Tabelle im Abschnitt "Liste der G-Funktionen/Wegbedingungen".
3 Absolute Endpunkte: modal (m)
Inkrementale Endpunkte: satzweise (s)
Ansonsten: m/s in Abhängigkeit von der Syntaxbestimmung G-Funktion
4 Als Kreismittelpunkte wirken IPO-Paramter inkrementell. Mit AC können sie absolut programmiert werden. Bei anderen
Bedeutungen (z. B. Gewindesteigung) wird die Adressmodifikation ignoriert.
5 Schlüsselwort gilt nicht für SINUMERIK 810D.
5 Schlüsselwort gilt nicht für SINUMERIK 810D/NCU571.
7 Schlüsselwort gilt nur für SINUMERIK FM-NC.
8 Der OEM-Anwender kann zwei zusätzliche Interpolationsarten einbringen. Die Namen kann der OEM-Anwender
verändern.
9 Für diese Funktionen ist die erweiterte Adressschreibweise nicht zulässig.

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
: Satznummer - Hauptsatz 0 ... Besondere z. B.: 20
(siehe N) 99 999 999 Kennzeichnung
nur ganz- von Sätzen -
zahlig, ohne anstelle von N...
Vorzeichen ; dieser Satz
sollte alle
Anweisungen
für einen
kompletten
nachfolgenden
Bearbeitungs-
abschnitt
enthalten.
A Achse Real m/s
A2 5 Werkzeugorientierung: Real s
Eulerwinkel

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-1
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
A3 5 Werkzeugorientierung: Real s
Richtungsvektor-
komponente
A4 5 Werkzeugorientierung für Real s
Satzanfang
A5 5 Werkzeugorientierung für Real s
Satzende:
Normalenvektor-
komponente
ABS Absolutwert Real
AC Maßeingabe absolut 0, ..., X=AC(100) s
359.9999°
ACC 5 Axiale Beschleunigung Real, ohne m
(acceleration axial) Vorzeichen
ACCLIMA 5 Reduktion oder 0, ..., 200 Gültigkeits- ACCLIMA[X]= ...[%] m
Überhöhung der bereich ist
maximalen axialen 1 bis 200%.
Beschleunigung
(acceleration axial)
ACN Absolutmaßangabe für A=ACN(...) B=ACN(...) s
Rundachsen, Position in C=ACN(...)
negativer Richtung
anfahren
ACOS Arcus-Cosinus Real
(Trigon. Funktion)
ACP Absolutmaßangabe für A=ACP(...) B=ACP(...) s
Rundachsen, Position in C=ACP(...)
positiver Richtung
anfahren
ADIS Überschleifabstand für Real, ohne m
Bahnfunktionen G1, G2, Vorzeichen
G3, ...
ADISPOS Überschleifabstand für Real, ohne m
Eilgang G0 Vorzeichen
ADISPOSA Größe des Integer, Real ADISPOSA=... oder m
Toleranzfenster für ADISPOSA(<Achse>[,
IPOBRKA REAL])
ALF Schnellabhebewinkel Integer, ohne m
(angle tilt fast) Vorzeichen
AMIRROR Programmierbare Spiegelung AMIRROR X0 Y0 Z0 s 3
(additive mirror) ;eigener Satz
AND Logisches UND
ANG Konturzug-Winkel Real s

Arbeitsvorbereitung
15-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
AP Polarwinkel (angle polar) 0, ..., ± 360° m/s
APR Zugriffsschutz lesen / Integer, ohne
anzeigen Vorzeichen
(access protection read)
APW Zugriffsschutz schreiben Integer, ohne
(access protection write) Vorzeichen
AR Öffnungswinkel 0, ..., 360° m/s
(angle circular)
AROT Programmierbare Drehung um: AROT X... Y... Z... s 3
Drehung [Link]: AROT RPL=
(additive rotation) -180°... +180° ;eigener Satz
[Link]:
-90° ... +90°
[Link]:
-180°... +180°
AROTS Programmierbare Framedrehungen mit AROTS X... Y... s 3
Raumwinkeln (additive rotation) AROTS Z... X...
AROTS Y... Z...
AROTS RPL=
;eigener Satz
AS Makro-Definition String
ASCALE Programmierbare Skalierung ASCALE X... Y... Z... s 3
(additive scale) ;eigener Satz
ASPLINE Akima-Spline m 1
ATAN2 Arcus-Tangens2 Real
ATRANS Additive programmierbare Verschiebung ATRANS X... Y... Z... s 3
(additive translation) ;eigener Satz
AX Variabler Achsbezeichner Real m/s
AXCSWAP Containerachse weiterschalten AXCSWAP(CTn, 25
CTn+1,...)
AXCTSWE Containerachse weiterschalten AXCTSWE(CTi) 25
AXIS Datentyp: Achsbezeichner Kann den
Namen einer
Datei
aufnehmen.
AXNAME Konvertiert Eingangsstring String Enthält der
in Achsbezeichner (get Eingangsstring
axname) keinen gültigen
Achsnamen, so
wird ein Alarm
gesetzt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-3
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
AXSTRING Konvertiert den String String Kann den AXSTRING[SPI(n)]
Spindelnummer Namen einer
(get string) Datei
aufnehmen.
AXTOCHAN Achse für einen bestimmten Kanal AXTOCHAN(Achse,
anfordern. Ist vom NC-Programm und aus Kanalnr.[,Achse,
Synchronaktion möglich. Kanalnummer[,…]])
B Achse Real m/s
B_AND Bitweises UND
B_OR Bitweises ODER
B_NOT Bitweise Negierung
B_XOR Bitweises Exklusiv-ODER
B2 5 Werkzeugorientierung: Real s
Eulerwinkel
B3 5 Werkzeugorientierung: Real s
Richtungsvektor-
komponente
B4 5 Werkzeugorientierung für Real s
Satzanfang
B5 5 Werkzeugorientierung für Real s
Satzende: Normalen-
vektorkomponente
BAUTO Festlegung des ersten Splineabschnitts m 19
durch die folgenden 3 Punkte
(begin not a knot)
BLSYNC Bearbeitung der Interruptroutine soll erst
mit dem nächsten Satzwechsel beginnen
BNAT 1 Natürlicher Übergang zum ersten Spline- m 19
Satz (begin natural)
BOOL Datentyp: Wahrheitswerte TRUE/FALSE
bzw. 1/0
BOUND Prüft, ob Wert innerhalb Real Var1: Varmin RetVar =
des definierten Var2: Varmax
Wertebereichs liegt. Var3: Varcheck
Gleichheit gibt Prüfwert
zurück.
BRISK 1 Sprungförmige Bahnbeschleunigung m 21
BRISKA Sprungförmige Bahnbeschleunigung für
die programmierten Achsen einschalten
BSPLINE B-Spline m 1
BTAN Tangentialer Übergang zum ersten Spline- m 19
Satz (begin tangential)

Arbeitsvorbereitung
15-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
C Achse Real m/s
C2 5 Werkzeugorientierung: Real s
Eulerwinkel
C3 5 Werkzeugorientierung: Real s
Richtungsvektorkompone
nte
C4 5 Werkzeugorientierung für Real s
Satzanfang
C5 5 Werkzeugorientierung für Real s
Satzende;
Normalenvektorkomponen
te
CAC Absolutes Anfahren einer Position Codierter Wert
(coded position: absolute coordinate) ist Tabellen-
index;
Tabellenwert
wird
angefahren.
CACN In Tabelle abgelegter Wert wird absolut in Zulässig für die
negativer Richtung angefahren Programmie-
(coded position absolute negative) rung von
Rundachsen als
Positionier-
achsen.
CACP In Tabelle abgelegter Wert wird absolut in
positiver Richtung angefahren
(coded position absolute positive)
CALCDAT Berechnet Radius und VAR Real [3] Die Punkte
Mittelpunkt eines Kreises müssen sich
aus 3 oder 4 Punkten unterscheiden.
(calculate circle data)
CALL Indirekter Unterprogrammaufruf CALL PROGVAR
CALLPATH Programmierbarer Suchpfad bei Zum CALLPATH
Unterprogrammaufrufen bestehenden (/_N_WKS_DIR/
NCK- _N_MYWPD/
Filesystem unterprogramm-
kann ein Pfad bezeichner_SPF)
mit CALLPATH
programmiert
werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-5
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
CANCEL Modale Synchronaktion INT Abbrechen
abbrechen mit der ange-
gebenen ID.
Ohne
Parameter:
Alle modalen
Synchron-
aktionen
werden
abgewählt.
CASE Bedingte Programmverzweigung
CDC Direktes Anfahren einer Position Siehe CAC.
(coded position: direct coordinate)
CDOF 1 Kollisionsüberwachung AUS m 23
(collision detection OFF)
CDON Kollisionsüberwachung EIN m 23
(collision detection ON)
CDOF2 Kollisionsüberwachung AUS Nur für m 23
(collision detection OFF) CUT3DC.
CFC 1 Konstanter Vorschub an der Kontur m 16
(constant feed at contour)
CFIN Konstanter Vorschub nur bei m 16
Innenkrümmung, nicht bei
Außenkrümmung (constant feed at internal
radius).
CFTCP Konstanter Vorschub im m 16
Werkzeugschneiden-Bezugspunkt
(Mittelpunktsbahn)
(constant feed in tool-center-point)
CHAN Spezifizierung des Gültigkeitsbereichs von Pro Kanal
Daten einmal
vorhanden.
CHANDATA Kanalnummer für INT Nur im
Kanaldatenzugriffe Initialisierungs-
einstellen baustein
zulässig.
CHAR Datentyp: ASCII-Zeichen 0, ..., 255
CHECKSUM Bildet die Checksumme Max. Länge Liefert Zeichen- ERROR=
über ein Feld als STRING von 32 kette von 16- CHECKSUM
mit einer festgesetzten Hex-Ziffern.
Länge

Arbeitsvorbereitung
15-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
CHF Fase; Real, ohne s
Wert = Länge der Fase Vorz.
CHR
Fase;
Wert = Breite der Fase in
Bewegungsrichtung
(chamfer)
CHKDNO Eindeutigkeitsprüfung der D-Nummern
CIC Inkrementelles Anfahren einer Position Siehe CAC.
(coded position: incremental coordinate)
CIP Kreisinterpolation über Zwischenpunkt CIP X... Y... Z... m 1
I1=... J1=... K1=...
CLEARM Rücksetzen INT, Beeinflusst
einer/mehrerer Marken für 1 - n Bearbeitung im
Kanalkoordinierung eigenen Kanal
nicht.
CLRINT Interrupt abwählen INT Parameter:
Interrupt-
nummer
CMIRROR Spiegeln an einer FRAME
Koordinatenachse
COARSEA Bewegungsende beim Erreichen von COARSEA=... oder m
"Genauhalt Grob" COARSEA[n]=...
COMPOF 1,6 Kompressor AUS m 30
COMPON 6 Kompressor EIN m 30
COMPCURV Kompressor EIN: krümmungsstetige m 30
Polynome
COMPCAD Kompressor EIN: Optimierte m 30
Oberflächengüte CAD-Programm
CONTDCON Konturdecodierung in Tabellenform EIN
CONTPRON Referenzaufbereitung einschalten
(contour preparation ON)
COS Cosinus Real
(Trigon. Funktion)
COUPDEF Definition ELG-Verband / String Satzwechsel COUPDEF(FS, ...)
Synchronspindel-Verband (SW)-Verhalten:
(couple definition) NOC: keine
SW-Steuerung
FINE /
COARSE:
SW bei
"Synchronlauf
fein/grob"
IPOSTOP:
SW bei
sollwertseitiger
Beendigung der
überlagerten
Bewegung

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-7
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
COUPDEL ELG-Verband löschen (couple delete) COUPDEL(FS,LS)
COUPOF ELG-Verband/Synchronspindelpaar AUS COUPOF(FS,LS,
(couple OFF) POSFS,POSLS)
COUPOFS Ausschalten ELG-Verband / Synchron- COUPOFS(FS,LS,POS
spindelpaar mit Stopp der Folgespindel FS)

COUPON ELG-Verband / Synchronspindelpaar EIN COUPON(FS,LS,


(couple ON) POSFS)
COUPONC Einschalten ELG- COUPONC(FS,LS)
Verband/Synchronspindelpaar mit
vorhergehender Programmierung
übernehmen
COUPRES ELG-Verband rücksetzen Programmierte COUPRES(FS,LS)
(couple reset) Werte ungültig;
Maschinen-
datenwerte
gültig.
CP Bahnbewegung (continuos path) m 49
CPRECOF1,6 Programmierbare Konturgenauigkeit AUS m 39
(contour precision OFF)
CPRECON6 Programmierbare Konturgenauigkeit EIN m 39
(contour precision ON)
CPROT Kanalspezifischer Schutzbereich EIN/AUS
CPROTDEF Definition eines kanalspezifischen
Schutzbereichs
(channel specific protection area definition)
CR Kreisradius (circle radius) Real, ohne s
Vorzeichen
CROT Drehung des aktuellen FRAME Max. Para-
Koordinatensystems meteranzahl: 6
CROTS Programmierbare Framedrehungen mit CROTS X... Y... s
Raumwinkeln (Drehung in den CROTS Z... X...
angegebenen Achsen) CROTS Y... Z...
CROTS RPL=
;eigener Satz
CSCALE Maßstabsfaktor für FRAME Max. Para-
mehrere Achsen meteranzahl:
2 * Achs-
anzahlmax
CSPLINE Kubischer Spline m 1
CT Kreis mit tangentialem Übergang CT X... Y.... Z... m 1
CTAB Ermittle Folgeachsposition Real Wenn
anhand der Parameter 4/5
Leitachsposition aus nicht
Kurventabelle programmiert:
Standard-
Skalierung

Arbeitsvorbereitung
15-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
CTABDEF Tabellendefinition EIN
CTABDEL Kurventabelle löschen
CTABEND Tabellendefinition AUS
CTABEXISTS Prüft die Kurventabelle mit der Nummer n Parameter n
CTABFNO Anzahl der noch möglichen Kurventabellen memType
im Speicher
CTABFPOL Anzahl der noch möglichen Polynome im memType
Speicher
CTABFSEG Anzahl der noch möglichen memType
Kurvensegmente im Speicher
CTABID Liefert Tabellen-Nummer der nten Parameter n
Kurventabelle und memType
CTABINV Ermittle Leitachsposition Real Siehe CTAB.
anhand der
Folgeachsposition aus
Kurventabelle
CTABIS Gibt den Sperrzustand der Kurventabelle Parameter n
LOCK mit der Nummer n zurück
CTABLOCK Sperren gegen Löschen und Parameter n, m,
Überschreiben setzen und memType.
CTABMEMTYP Gibt den Speicher zurück, in dem die Parameter n
Kurventabelle mit der Nummer n angelegt
ist.
CTABMPOL Anzahl der maximal möglichen Polynome memType
im Speicher
CTABMSEG Anzahl der maximal möglichen memType
Kurvensegmente im Speicher
CTABNO Anzahl der definierten Kurventabellen Keine Angabe
ungeachtet vom Speichertyp der Parameter.
CTABNOMEM Anzahl der definierten Kurventabellen im memType
Speicher SRAM oder DRAM
CTABPERIOD Gibt die Tabellenperiodizität mit der Parameter n
Nummer n zurück
CTABPOL Anzahl der bereits verwendeten Polynome memType
im Speicher
CTABPOLID Anzahl der von der Kurventabelle mit der Parameter n
Nummer n verwendeten Kurvenpolynome
CTABSEG Anzahl der bereits verwendeten memType
Kurvensegmente im Speicher
CTABSEGID Anzahl der von der Kurventabelle mit der Parameter n
Nummer n verwendeten Kurvensegmente
CTABSEV Liefert den Endwert der Folgeachse eines Segment wird R10 = CTABSEV(LW,
Segments der Kurventabelle bestimmt durch n, grad, FAchse,
LW. LAchse)
CTABSSV Liefert den Startwert der Folgeachse eines Segment wird R10 = CTABSSV(LW,
Segments der Kurventabelle bestimmt durch n, grad, FAchse,
LW. LAchse)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-9
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
CTABTEP Liefert den Wert der Leitachse am Leitwert am R10 = CTABTEP(n,
Kurventabellen-Ende Ende der grad, LAchse)
Kurventabelle.
CTABTEV Liefert den Wert der Folgeachse am Folgewert am R10 = CTABTEV(n,
Kurventabellen-Ende Ende der grad, FAchse)
Kurventabelle.
CTABTMAX Liefert Maximalwert der Folgeachse der Folgewert der R10 = CTABTMAX(n,
Kurventabelle Kurventabelle. FAchse)
CTABTMIN Liefert Minimalwert der Folgeachse der Folgewert der R10 = CTABTMIN(n,
Kurventabelle Kurventabelle. FAchse)
CTABTSP Liefert den Wert der Leitachse am Leitwert am R10 = CTABTSP(n,
Kurventabellen-Anfang Anfang der grad, LAchse)
Kurventabelle.
CTABTSV Liefert den Wert der Folgeachse am Folgewert am R10 = CTABTSV(n,
Kurventabellen-Anfang Anfang der grad, FAchse)
Kurventabelle.
CTABUNLOCK Sperren gegen Löschen und Parameter n, m,
Überschreiben aufheben und memType
CTRANS Nullpunktverschiebung für FRAME Max. 8 Achsen.
mehrere Achsen
CUT2D 1 2D-Werkzeugkorrektur (Cutter m 22
compensation type 2dimensional)
CUT2DF 2D-Werkzeugkorrektur (Cutter m 22
compensation type 2dimensional frame).
Die Werkzeugkorrektur wirkt relativ zum
aktuellen Frame (schräge Ebene).
CUT3DC 5 3D-Werkzeugkorrektur Umfangsfräsen m 22
(Cutter compensation type 3dimensional
circumference)
CUT3DCC 5 3D-Werkzeugkorrektur Umfangsfräsen mit m 22
Begrenzungsflächen (Cutter compensation
type 3dimensional circumference)
CUT3DCCD 5 3D-Werkzeugkorrektur Umfangsfräsen mit m 22
Begrenzungsflächen mit
Differenzwerkzeug (Cutter compensation
type 3dimensional circumference)
CUT3DF 5 3D-Werkzeugkorrektur Stirnfräsen (Cutter m 22
compensation type 3dimensional face)
CUT3DFF 5 3D-Werkzeugkorrektur Stirnfräsen mit m 22
konstanter Werkzeugorientierung
abhängig vom aktiven Frame (Cutter
compensation type 3dimensional face
frame)
CUT3DFS 5 3D-Werkzeugkorrektur Stirnfräsen mit m 22
konstanter Werkzeugorientierung
unabhängig vom aktiven Frame (Cutter
compensation type 3dimensional face)

Arbeitsvorbereitung
15-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
CUTCONOF1 Konstante Radiuskorrektur AUS m 40
CUTCONON Konstante Radiuskorrektur EIN m 40
D Werkzeugkorrektur- 1, ..., 32 000 Enthält D...
nummer Korrekturdaten
für ein best.
Werkzeug T...
; D0 →
Korrekturwerte
für ein
Werkzeug
DAC Absolut satzweise Durchmesser- DAC(50) s
achsspezifische programmie-
Durchmesser- rung
programmierung
DC Absolutmaßangabe für A=DC(...) B=DC(...) s
Rundachsen, Position C=DC(...)
direkt anfahren SPOS=DC(...)
DEF Variablendefinition Integer, ohne
Vorzeichen
DEFAULT Zweig in der CASE-Verzweigung Wird
angesprungen,
wenn Ausdruck
keinen der
angegebenen
Werte erfüllt.
DELAYFSTON Beginn eines Stopp-Dalay-Bereichs Impliziert, wenn m
definieren G331/G332
(DELAY Feed Stop ON) aktiv.
DELAYFSTOF Ende eines Stopp-Dalay-Bereichs m
definieren (DELAY Feed Stop OF)
DELDTG Restweglöschen
(Delete distance to go)
DELETE Die angegebene Datei löschen. Der Kann alle
Dateiname kann mit Pfad und Datei- Dateien
Kennung angegeben werden. löschen.
DELT Werkzeug löschen Duplo-Nr. kann
entfallen.
DIACYCOFA Achsspezifische modale Durchmesser- Radiuspro- DIACYCOFA[Achse] m
programmierung: Aus in Zyklen grammierung
zuletzt akt.
G-Code.
DIAM90 Durchmesserprogrammierung für G90, m 29
Radiusprogrammierung für G91
DIAM90A Achsspezifische modale m
Durchmesserprogrammierung für G90 und
AC, Radiusprogrammierung für G91 und
IC

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-11
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
DIAMCHAN Übernahme aller Achsen aus MD Durchmesser- DIAMCHAN
Achsfunktionen in den Kanalzustand der programmie-
Durchmesserprogrammierung rung aus MD
übernehmen.
DIAMCHANA Übernahme Kanalzustand der Kanalzustand. DIAMCHANA[Achse]
Durchmesserprogrammierung
DIAMCYCOF Radiusprogrammierung für G90/G91: EIN. Radiuspro- m 29
Für die Anzeige bleibt der zuletzt aktive G- grammierung
Code dieser Gruppe aktiv. zuletzt akt.
G-Code.
DIAMOF1 Durchmesserprogrammierung: AUS Radiuspro- m 29
(Diametral programming OFF) grammierung
Grundstellung siehe Maschinenhersteller für G90/G91.
DIAMOFA Achsspezifische modale Durchmesser- Radiusprogr. für DIAMOFA[Achse] m
programmierung: Ein G90/G91 und
Grundstellung siehe Maschinenhersteller AC, IC.
DIAMON Durchmesserprogrammierung ein: EIN Durchmesser- m 29
(Diametral programming ON) programmierg.
für G90/G91.
DIAMONA Achsspezifische modale Durchmesser- Durchmesser- DIAMONA[Achse] m
programmierung: Ein programmie-
Freischaltung siehe Maschinenhersteller rung für
G90/G91 und
AC, IC.
DIC Relativ satzweise achsspezifische Durchmesser- DIC(50) s
Durchmesserprogrammierung programmie-
rung.
DILF Schnellabhebe-Länge m
DISABLE Interrupt AUS
DISC Überhöhung 0, ..., 100 m
Übergangskreis
Werkzeug-
Radiuskorrektur
DISPLOF Aktuelle Satzanzeige unterdrücken
(Display OFF)
DISPR Repos-Bahndifferenz Real, ohne s
Vorzeichen
DISR Repos-Abstand Real, ohne s
Vorzeichen
DITE Gewindeauslaufweg Real m
DITS Gewindeeinlaufweg Real m
DIV Integer-Division
DL Werkzeugsummenkorrekt INT m
ur

Arbeitsvorbereitung
15-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
DRFOF Ausschalten der Handradverschiebungen m
(DRF)
DRIVE7, 9 Geschwindigkeitsabhängige m 21
Bahnbeschleunigung
DRIVEA Geknickte Beschleunigungskennlinie für
die programmierten Achsen einschalten
DYNFINISH Dynamik für Feinschlichten Technologie DYNFINISH G1 X10 m 59
G-Gruppe Y20 Z30 F1000
DYNNORM Normale Dynamik wie bisher DYNNORM G1 X10 m 59
DYNPOS Dynamik für Positionierbetrieb, DYNPOS G1 X10 Y20 m 59
Gewindebohren Z30 F...
DYNROUGH Dynamik für Schruppen DYNROUGH G1 X10 m 59
Y20 Z30 F10000
DYNSEMIFIN Dynamik für Schlichten DYNSEMIFIN G1 X10 m 59
Y20 Z30 F2000
EAUTO Festlegung des letzten Splineabschnitts m 20
durch die letzten 3 Punkte
(end not a knot)
EGDEF Definition eines elektronischen Getriebes Für 1 Folge-
(electronic gear define) achse mit
bis zu 5
Leitachsen.
EGDEL Kopplungsdefinition für die Folgeachse Löst Vorlauf-
löschen stopp aus.
(electronic gear delete)
EGOFC Elektronisches Getriebe kontinuierlich
ausschalten
(electronic gear OFF continuous)
EGOFS Elektronisches Getriebe selektiv
ausschalten
(electronic gear OFF selectiv)
EGON Elektronisches Getriebe einschalten Ohne Syn-
(electronic gear ON) chronisation.
EGONSYN Elektronisches Getriebe einschalten Mit Syn-
(electronic gear ON synchronized) chronisation.
EGONSYNE Elektronisches Getriebe einschalten, mit Mit Syn-
Vorgabe von Anfahrmodus chronisation.
(electronic gear ON synchronized)
ELSE Programmverzweigung, wenn IF-
Bedingung nicht erfüllt
ENABLE Interrupt EIN
ENAT 1, 7 Natürlicher Kurvenübergang zum nächsten m 20
Verfahrsatz (end natural)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-13
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
ENDFOR Endezeile der FOR-Zählschleife
ENDIF Endezeile der IF-Verzweigung
ENDLOOP Endezeile der Endlos-Programmschleife
LOOP
ENDPROC Endezeile eines Programms mit der
Anfangszeile PROC
ENDWHILE Endezeile der WHILE-Schleife
ETAN Tangentialer Kurvenübergang zum m 20
nächsten Verfahrsatz bei Spline-Beginn
(end tangential)
EVERY Synchronaktion ausführen, wenn
Bedingung von FALSE nach TRUE
übergeht
EXECSTRING Übergabe einer String-Variablen mit der Indirekte Teile- EXECSTRING(MFCT1
auszuführenden Teileprogrammzeile programmzeile. << M4711)
EXECTAB Ein Element aus einer Bewegungstabelle
abarbeiten (Execute table)
EXECUTE Programmausführung EIN Aus dem Refe-
renzaufberei-
tungsmodus
oder nach
Aufbau eines
Schutzbe-reichs
zur normalen
Programm-
bearbeitung
zurückschalten.
EXP Exponentialfunktion ex Real
EXTCALL Externes Unterprogramm abarbeiten Programm von
HMI im Modus
"Abarbeiten von
Extern"
nachladen.
EXTERN Bekanntmachung eines Unterprogramms
mit Parameterübergabe
F Vorschubwert 0.001, ..., Bahngeschw. F=100 G1 ...
(in Verbindung mit G4 99999.999 Werkzeug/
wird unter F auch die Werkstück;
Verweilzeit programmiert) Maßeinheit in
mm/min oder
mm/Umdr. in
Abhängigkeit
von G94 oder
G95.

Arbeitsvorbereitung
15-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
FA Axialer Vorschub 0.001, ..., FA[X]=100 m
(feed axial) 999999.999
mm/min,
Grad/min;
0.001, ...,
39999.9999
inch/min
FAD Zustell-Vorschub für Real, ohne
Weiches An- und Vorzeichen
Abfahren
(Feed approach/depart)
FALSE Logische Konstante: BOOL Ersetzbar durch
falsch Integer-
Konstante 0.
FCTDEF Polynomfunktion definieren Wird in
SYNFCT oder
PUTFTOCF
ausgewertet.
FCUB 6 Vorschub nach kubischem Spline Wirkt auf m 37
veränderlich Vorschub mit
(feed cubic) G93 und G94.
FD Bahnvorschub für Real, ohne s
Handradüberlagerung Vorz.
(feed DRF)
FDA Axialer Vorschub für Real, ohne s
Handradüberlagerung Vorz.
(feed DRF axial)
FENDNORM Eckenverzögerung AUS m 57
FFWOF 1 Vorsteuerung AUS (feed forward OFF) m 24
FFWON Vorsteuerung Ein (feed forward ON) m 24
FGREF Bezugsradius bei Rundachsen oder Bezugsgröße m
Bahnbezugsfaktoren bei Effektivwert
Orientierungsachsen (Vektorinterpolation)
FGROUP Festlegung der Achse(n) mit F gilt für alle FGROUP (Achse1,
Bahnvorschub unter FGROUP [Achse2], ...)
angegebenen
Achsen.
FIFOCTRL Steuerung des Vorlaufpuffers m 4
FIFOLEN Programmierbare Vorlauftiefe
(preprocessing depth)
FILEDATE Liefert Datum des zuletzt STRING, Format ist
schreibenen Zugriffs auf Länge 8 "[Link]".
die Datei
FILEINFO Liefert Summe von STRING, Format "rwxsd
FILEDATE, FILESIZE, Länge 32 nnnnnnnn dd.
FILESTAT und FILETIME hh:mm:ss".
zusammen

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-15
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
FILESIZE Liefert aktuelle Größe der Typ INT In BYTE.
Datei
FILESTAT Liefert Filestatus der STRING, Format ist
Rechte Lesen, Schreiben, Länge 5 "rwxsd".
Execute, Anzeigen ,
Löschen (rwxsd)
FILETIME Liefert Uhrzeit des zuletzt STRING, Format ist
schreibenen Zugriffs auf Länge 8 "dd:mm:yy".
die Datei
FINEA Bewegungsende beim Erreichen von FINEA=... oder m
"Genauhalt Fein" FINEA[n]=...
FL Grenzgeschwindigkeit für Real, ohne Es gilt die mit FL [Achse] =... m
Synchronachsen Vorzeichen G93, G94, G95
(feed limit) eingestellte
Einheit (max.
Eilgang).
FLIN 6 Vorschub linear veränderlich (feed linear) Wirkt auf m 37
Vorschub mit
G93 und G94.
FMA Mehrere Vorschübe axial Real, ohne m
(feed multiple axial) Vorzeichen
FNORM 1,6 Vorschub normal nach DIN66025 m 37
(feed normal)
FOCOF Fahren mit begrenztem Moment/Kraft m
ausschalten
FOCON Fahren mit begrenztem Moment/Kraft m
einschalten
FOR Zählschleife mit fester Anzahl von
Durchläufen
FP Festpunkt: Nummer des Integer, ohne G75 FP=1 s
anzufahrenden Vorzeichen
Festpunkts
FPO Über ein Polynom Real Quadratischer,
programmierter kubischer
Vorschubverlauf Polynom-
(feed polynomial) koeffizient.
FPR Kennzeichnung 0.001, ..., FPR (Rundachse)
Rundachse 999999.999
FPRAOF Umdrehungsvorschub
ausschalten
FPRAON Umdrehungsvorschub
einschalten

Arbeitsvorbereitung
15-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
FRAME Datentyp zur Festlegung des Enthält pro
Koordinatensystems Geometrie-
achse:
Verschiebung,
Drehung,
Scherungs-
winkel,
Skalierung,
Spiegelung;
Pro
Zusatzachse:
Verschiebung,
Skalierung,
Spiegelung
FRC Vorschub für Radius und s
Fase
FRCM Vorschub für Radius und m
Fase modal
FTOC Werkzeugfeinkorrektur ändern Abhängig von
einem mit
FCTDEF
festgelegten
Polynom
3. Grades.
FTOCOF 1,6 Online wirksame Werkzeugfeinkorrektur m 33
AUS (fine tool offset OFF)
FTOCON 6 Online wirksame Werkzeugfeinkorrektur m 33
EIN (fine tool offset ON)
FXS Fahren auf Festanschlag Integer, ohne 1 = anwählen, m
ein (fixed stop) Vorzeichen 0 = abwählen
FXST Momentgrenze für Fahren % Angabe m
auf Festanschlag optional
(fixed stop torque)
FXSW Überwachungsfenster für mm, inch oder Angabe
Fahren auf Festanschlag Grad optional
(fixed stop window)
G G-Funktion Nur ganz- G...
(Wegbedingung) zahlige, vor-
Die G-Funktionen sind in gegebene
G-Gruppen eingeteilt. Es Werte
kann nur eine G-Funktion
einer Gruppe in einem
Satz geschrieben werden.
Eine G-Funktion kann
modal wirksam sein (bis
auf Widerruf durch eine
andere Funktion
derselben Gruppe), oder
sie ist nur für den Satz
wirksam, in dem sie steht
(satzweise wirksam).

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-17
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
G0 Linearinterpolation mit Eilgang Bewegungs- G0 X... Z... m 1
(Eilgangsbewegung) befehle
G11 Linearinterpolation mit Vorschub G1 X... Z... F... m 1
(Geradeninterpolation)
G2 Kreisinterpolation im Uhrzeigersinn G2 X... Z... I... K... F... m 1
;Mittel- und Endpunkt
G2 X... Z... CR=... F...
;Radius und Endpunkt
G2 AR=... I... K... F...
;Öffnungswinkel und
;Mittelpunkt
G2 AR=... X... Z... F.
;Öffnungswinkel und
;Endpunkt
G3 Kreisinterpolation gegen Uhrzeigersinn G3 ... ; sonst wie bei m 1
G2
G4 Verweilzeit, zeitlich vorbestimmt Spezielle G4 F... ; Verweilzeit in s s 2
Bewegung oder
G4 S... ; Verweilzeit in
Spindelumdrehung.
; Eigener Satz
G5 Schrägeinstechschleifen Schrägein- s 2
stechen
G7 Ausgleichsbewegung beim Startposition s 2
Schrägeinstechschleifen
G9 Genauhalt - Geschwindigkeitsabnahme s 11
G171 Wahl der Arbeitsebene X/Y Zustellrichtung m 6
Z
G18 Wahl der Arbeitsebene Z/X Zustellrichtung m 6
Y
G19 Wahl der Arbeitsebene Y/Z Zustellrichtung m 6
X
G25 Untere Arbeitsfeldbegrenzung Wertzuweisung G25 X... Y... Z... s 3
in Kanalachsen. ;eigener Satz
G26 Obere Arbeitsfeldbegrenzung G26 X... Y... Z... s 3
;eigener Satz
G33 Gewindeinterpolation mit 0.001, ..., Bewegungs- G33 Z... K... SF=... m 1
konstanter Steigung 2000.00 befehl ; Zylindergewinde
mm/U G33 X... I... SF=...
; Plangewinde
G33 Z... X... K... SF=...
; Kegelgewinde
(in Z-Achse Weg
größer als in X Achse)
G33 Z... X... I... SF=...
; Kegelgewinde
(in X-Achse Weg
größer als in Z-Achse)

Arbeitsvorbereitung
15-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
G34 Linear progressive Bewegungs- G34 X... Y... Z... I... J... m 1
Geschwindigkeitsänderung [mm/U2] befehl K... F...
G35 Linear degressive Bewegungs- G35 X... Y... Z... I... J... m 1
Geschwindigkeitsänderung [mm/U2] befehl K... F...
G40 1 Werkzeugradiuskorrektur AUS m 7
G41 Werkzeugradiuskorrektur links von der m 7
Kontur
G42 Werkzeugradiuskorrektur rechts von der m 7
Kontur
G53 Unterdrückung der aktuellen Inkl. pro- s 9
Nullpunktverschiebung (satzweise) grammierter
Verschiebun-
gen.
G54 [Link] Nullpunktverschiebung m 8
G55 2. Einstellbare Nullpunktverschiebung m 8
G56 3. Einstellbare Nullpunktverschiebung m 8
G57 4. Einstellbare Nullpunktverschiebung m 8
G58 Axiale programmierbare s 3
Nullpunktverschiebung absolut
G59 Axiale programmierbare s 3
Nullpunktverschiebung additiv
G60 1 Genauhalt - Geschwindigkeitsabnahme m 10
G62 Eckenverzögerung an Innenecken bei Nur zusammen G62 Z... G1 m 57
aktiver Werkzeuradiuskorrektur (G41, mit Bahn-
G42) steuerbetrieb.
G63 Gewindebohren mit Ausgleichsfutter G63 Z... G1 s 2
G64 Genauhalt - Bahnsteuerbetrieb m 10
G70 Maßangabe in Inch (Längen) m 13
G71 1 Metrische Maßangabe (Längen) m 13
G74 Referenzpunktanfahren G74 X... Z... s 2
;eigener Satz
G75 Festpunktanfahren Maschinen- G75 FP=.. X1=... Z1=... s 2
achsen ;eigener Satz
G90 1 Maßangabe absolut G90 X... Y... Z...(...) m 14
Y=AC(...) oder s
X=AC Z=AC(...)
G91 Kettenmaßangabe G91 X... Y... Z... oder m 14
X=IC(...) Y=IC(...) s
Z=IC(...)
G93 Zeitreziproker Vorschub 1/min Abfahren eines G93 G01 X... F... m 15
Satzes:
Zeitdauer

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-19
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
G94 1 Linearvorschub F in mm/min oder inch/min m 15
und °/min
G95 Umdrehungsvorschub F in mm/U oder m 15
inch/U
G96 konstante Schnittgeschwindigkeit (wie bei G96 S... LIMS=... F... m 15
G95) EIN
G97 konstante Schnittgeschwindigkeit (wie bei m 15
G95) AUS
G110 Polprogrammierung relativ zur letzten G110 X... Y... Z... s 3
programmierten Sollposition
G111 Polprogrammierung relativ zum Nullpunkt G110 X... Y... Z... s 3
des aktuellen Werkstück-
Koordinatensystems
G112 Polprogrammierung relativ zum letzten G110 X... Y... Z... s 3
gültigen Pol
G140 1 Anfahrrichtung WAB festgelegt durch m 43
G41/G42
G141 Anfahrrichtung WAB links der Kontur m 43
G142 Anfahrrichtung WAB rechts der Kontur m 43
G143 Anfahrrichtung WAB tangentenabhängig m 43
G147 Weiches Anfahren mit Gerade s 2
G148 Weiches Abfahren mit Gerade s 2
G153 Unterdrückung aktueller Frames inklusive Inkl. s 9
Basisframe Systemframe.
G247 Weiches Anfahren mit Viertelkreis s 2
G248 Weiches Abfahren mit Viertelkreis s 2
G290 Umschalten auf SINUMERIK-Mode EIN m 47
G291 Umschalten auf ISO2/3-Mode EIN m 47
G331 Gewindebohren ±0.001,..., Bewegungs- m 1
G332 Rückzug 2000.00 befehle m 1
(Gewindebohren) mm/U
G340 1 Anfahrsatz räumlich (Tiefe und in der Wirkt beim m 44
Ebene zugleich (Helix) weichen An-
bzw. Abfahren.
G341 Zuerst in der senkrechten Achse zustellen Wirkt beim m 44
(z), dann Anfahren in der Ebene weichen An-
bzw. Abfahren.
G347 Weiches Anfahren mit Halbkreis s 2
G348 Weiches Abfahren mit Halbkreis s 2
G450 1 Übergangskreis Eckenverhalten m 18
bei Werkzeug-
radiuskorrektur.

Arbeitsvorbereitung
15-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
G451 Schnittpunkt der Äquidistanten m 18
G460 1 Kollisionsüberwachung für An- und m 48
Abfahrsatz ein
G461 Randsatz mit Kreisbogen verlängern, ... kein m 48
wenn ... Schnittpunkt im
G462 Randsatz mit Gerade verlängern, wenn ... WRK-Satz m 48
G500 1 Ausschalten aller einstellbaren Frames, m 8
wenn in G500 kein Wert steht
G505 ... G599 5 ... 99. Einstellbare m 8
Nullpunktverschiebung
G601 1 Satzwechsel bei Genauhalt fein Wirksam nur: m 12
G602 Satzwechsel bei Genauhalt grob - bei akt. G60 m 12
oder
G603 Satzwechsel bei IPO-Satzende - bei G9 mit m 12
G641 Genauhalt - Bahnsteuerbetrieb programmier- G641 ADIS=... m 10
G642 Überschleifen mit axialer Genauigkeit barem m 10
Übergangs-
verschleifen
G643 Satzinternes Überschleifen m 10
G644 Überschleifen mit Vorgabe der m 10
Achsdynamik
G621 Eckenverzögerung an allen Ecken Nur zusammen G621 ADIS=... m 57
mit Bahn-
steuerbetrieb.
G700 Maßangabe in Inch und Inch/min m 13
(Längen + Geschwindigkeiten +
Systemvariable)
G7101 Metrische Maßangabe in mm und mm/min m 13
(Längen + Geschwindigkeiten +
Systemvariable)
G8101, ..., G819 Für den OEM-Anwender reservierte 31
G-Gruppe
G8201, ..., G829 Für den OEM-Anwender reservierte 32
G-Gruppe
G931 Vorschubvorgabe durch Verfahrzeit Verfahrzeit m 15
G942 Linear-Vorschub und konstante m 15
Schnittgeschwindigkeit oder
Spindeldrehzahl einfrieren
G952 Umdrehungsvorschub und konstante m 15
Schnittgeschwindigkeit oder
Spindeldrehzahl einfrieren
G961 konstante Schnittgeschwindigkeit und Vorschubtyp G961 S... LIMS=... F... m 15
Linear-Vorschub wie bei G94.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-21
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
G962 Linear-Vorschub oder m 15
Umdrehungsvorschub und konstante
Schnittgeschwindigkeit
G971 Spindeldrehzahl einfrieren und Linear- Vorschubtyp m 15
Vorschub wie bei G94.
G972 Linear-Vorschub oder m 15
Umdrehungsvorschub und konstante
Spindeldrehzahl einfrieren
G973 Umdrehungsvorschub ohne G97 ohne LIMS m 15
Spindeldrehzahlbegrenzung für ISO-Mode.
GEOAX Den Geometrieachsen 1 - 3 neue Ohne
Kanalachsen zuordnen Parameter:
MD-Festlegung
wirksam.
GET Maschinen-Achse(n) belegen Achse muss mit
RELEASE im
anderen Kanal
freigegeben
werden.
GETD Maschinen-Achse(n) direkt belegen Siehe GET.
GETACTT Aktives Werkzeug aus einer Gruppe von
gleichnamigen Werkzeugen bestimmen
GETSELT Vorgewählte T-Nummer liefern
GETT T-Nummer zu Werkzeugnamen
bestimmen
GOTO Sprunganweisung erst vorwärts dann Im GOTO (Label, Satz-Nr.)
rückwärts (Richtung erst zum Programm- Teileprogramm Labels müssen im
Ende und dann zum Programm-Anfang und auch in Unterprogramm
Technologie- vorhanden sein.
zyklen
GOTOF Sprunganweisung vorwärts (Richtung anwendbar. GOTOF (Label, Satz-
Programm-Ende) Nr.)
GOTOB Sprunganweisung rückwärts (Richtung GOTOB (Label, Satz-
Programm-Anfang) Nr.)
GOTOC Alarm 14080 "Sprungziel nicht gefunden" Siehe GOTO.
unterdrücken
GWPSOF Konst. Scheibenumfangsgeschwindigkeit GWPSOF (T-Nr.) s
(SUG) abwählen
GWPSON Konst. Scheibenumfangsgeschwindigkeit GWPSON (T-Nr.) s
(SUG) anwählen

Arbeitsvorbereitung
15-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
H... Hilfsfunktionsausgabe an Real/INT Per MD H100 oder H2=100
die PLC Progr.: einstellbar
REAL: (Maschinen-
0 ...+/- 3.4028 hersteller).
exp38
INT:
-2147483646
...
+2147483647
Anzeige:
± 999 999
999,9999
I4 Interpolationsparameter Real s
I1 Zwischenpunktkoordinate Real s
IC Kettenmaßeingabe 0, ..., X=IC(10) s
±99999.999°
ICYCOF Alle Sätze eines Technologiezyklus nach Nur innerhalb
ICYCOF in einem IPO-Takt abarbeiten der Programm-
ebene.
ICYCON Jeder Satz eines Technologiezyklus nach Nur innerhalb
ICYCON in einem separaten IPO-Takt. der Programm-
ebene.
IDS Kennzeichnung statischer
Synchronaktionen
IF Einleitung eines bedingten Sprungs im Struktur: IF - IF (Bedingung)
Teileprogramm / Technologiezyklus ELSE - ENDIF
INCCW Fahren auf einer Real Endpunkt: INCW/INCCW X... Y... m 1
Kreisevolvente gegen den Mittelpunkt: Z...
Uhrzeigersinn mit Radius mit INCW/INCCW I... J...
Interpolation der CR > 0: K...
Evolvente durch Drehwinkel in INCW/INCCW CR=...
G17/G18/G19 Grad zwischen AR...
INCW Fahren auf einer Real Start- und Direkte m 1
Kreisevolvente im Endvektor Programmierung:
Uhrzeigers mit INCW/INCCW I... J...
Interpolation der K... CR=... AR=...
Evolvente durch
G17/G18/G19
INDEX Index eines Zeichens im 0, ..., String:
Eingangsstring INT 1. Parameter
bestimmen Zeichen:
2. Parameter

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-23
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
INIT Baustein zur Abarbeitung in einem Kanal Kanalnummer INIT(1,1,2) oder
anwählen 1-10 oder INIT(CH_X, CH_Y)
$MC_CHAN_
NAME
INT Datentyp: Ganzzahliger - (231-1), ...,
Wert mit Vorzeichen 231-1
INTERSEC Schnittpunkt zwischen VAR REAL [2] ISPOINT ISPOINTS=
zwei Konturelementen Fehlerstatus: INTERSEC
berechnen und BOOL FALSE (TABNAME1[n1],
Schnittpunktstatus TRUE TABNAME2[n2],
in ISPOINT angeben ISTCOORD, MODE)
IP Variabler Real
Interpolationsparameter
(Interpolation Parameter)
IPOBRKA Bewegungskriterium ab Einsatzpunkt der Bremsrampe IPOBRKA=.. oder m
Bremsrampe bei 100% bis IPOBRKA(<Achse>[,R
0%. EAL])
IPOENDA Bewegungsende beim Erreichen von IPOENDA=.. oder m
"IPO-Stop" IPOENDA[n]..
IPTRLOCK Beginn des suchunfähigen Unter- m
Programmabschnitts auf nächsten brechungs-
Maschinenfunktionssatz einfrieren. zeiger
einfrieren.
IPTRUNLOCK Ende des suchunfähigen Unter- m
Programmabschnitts auf aktuellen Satz brechungs-
zum Unterbrechungszeitpunkt setzen. zeiger setzen.
ISAXIS Prüfen, ob die als BOOL
Parameter angegebene
Geometrieachse 1 ist
ISD Eintauchtiefe Real m
(insertion depth)
ISFILE Prüfen, ob eine Datei im BOOL Liefert Ergebnis RESULT=ISFILE("Testf
NCK-Anwendungs- vom Typ BOOL. ile") IF
speicher vorhanden ist (RESULT==FALSE)
ISNUMBER Prüfen, ob Eingangsstring BOOL Eingangsstring
in Zahl umgewandelt in Zahl
werden kann umwandeln.
ISPOINTS Ermittelt von ISTAB INT Bearbeitungs- STATE=ISPOINTS
mögliche Schnittpunkte art MODE (KTAB1[n1],
zwischen zwei Konturen (optional). KTAB2[n2], ISTAB,
in der aktuellen Ebene [MODE])
ISVAR Prüfen, ob der BOOL Maschinen-
Übergabeparameter eine daten,
in der NC bekannte Settingdaten
Variable enthält und Variable
wie GUD's.

Arbeitsvorbereitung
15-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
J4 Interpolationsparameter Real s
J1 Zwischenpunktkoordinate Real s
JERKA Über MD eingestelltes
Beschleunigungsverhalten für die
programmierten Achsen aktivieren
JERKLIMA5 Reduktion oder 1, ..., 200 Gültigkeits- JERKLIMA[X]= ...[%] m
Überhöhung des bereich ist
maximalen axialen Rucks 1 bis 200%
(jerk axial)
K4 Interpolationsparameter Real s
K1 Zwischenpunktkoordinate Real s
KONT Kontur umfahren bei der m 17
Werkzeugkorrektur
KONTC Mit krümmungsstetigem Polynom m 17
an-/abfahren
KONTT Mit tangentenstetigem Polynom m 17
an-/abfahren
L Unterprogramm-Nummer Integer, bis zu L10 s
7 Stellen
LEAD 5 Voreilwinkel Real m
LEADOF Leitwerkkopplung AUS (lead off)
LEADON Leitwerkkopplung EIN (lead on)
LFOF 1 Unterbrechung von Gewindeschneiden m 41
AUS
LFON Unterbrechung von Gewindeschneiden m 41
EIN
LFPOS Axiales Abheben auf eine Position m 46
LFTXT 1 Werkzeugrichtung beim Abheben m 46
tangential
LFWP Werkzeugrichtung beim Abheben nicht m 46
tangential
LIFTFAST Schnellabheben vor Aufruf der
Interruptroutine
LIMS Drehzahlbegrenzung 0.001, ..., m
bei G96/G961 und G97 99 999. 999
(limit spindle speed)
LN Natürlicher Logarithmus Real
LOCK Synchronaktion mit ID sperren
(Technologiezyklus stoppen)
LOG (Zehner-)Logarithmus Real
LOOP Einleitung einer Endlosschleife Struktur: LOOP
- ENDLOOP

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-25
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
M... Schalthandlungen INT Max. 5 freie
Anzeige: M-Funktionen
0, ..., vom
999 999 999 Maschinen-
Programm: hersteller
0,..., festzulegen.
2147483647
M0 9 Programmierter Halt
M1 9 Wahlweiser Halt
M2 9 Programmende Hauptprogramm mit
Rücksetzen auf Programmanfang
M3 Spindeldrehrichtung rechts für
Masterspindel
M4 Spindeldrehrichtung links für
Masterspindel
M5 Spindel halt für Masterspindel
M6 Werkzeugwechsel
M17 9 Unterprogrammende
M19 Bei SSL aufgesammelte
Spindelprogrammierungen
M30 9 Programmende, wie M2
M40 Automatische Getriebeschaltung
M41... M45 Getriebestufe 1, ..., 5
M70 Übergang in Achsbetrieb
MASLDEF Master/Slave-Achsverband definieren
MASLDEL Master/Slave-Achsverband trennen und
Definition des Verbandes löschen
MASLOF Ausschalten einer temporären Kopplung
MASLOFS Ausschalten einer temporären Kopplung
mit automatischem Stillsetzen der Slave-
Achse
MASLON Einschalten einer temporären Kopplung
MAXVAL Größerer Wert zweier Real Gleichheit liefert ValMax =
Variablen (arithm. gleichen Wert. MAXVAL(Var1, Var2)
Funktion)
MCALL Modaler Unterprogrammaufruf Ohne Unter-
programm-
namen: Abwahl
MEAC Kontinuierliches Messen Integer, ohne s
ohne Restweglöschen Vorzeichen
MEAFRAME Frame-Berechnung aus FRAME
Messpunkten
MEAS Messen mit schaltendem Integer, ohne s
Taster (measure) Vorzeichen
MEASA Messen mit s
Restweglöschen

Arbeitsvorbereitung
15-26 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
MEAW Messen mit schaltendem Integer, ohne s
Taster ohne Vorzeichen
Restweglöschen
(measure without deleting
distance to go)
MEAWA Messen ohne s
Restweglöschen
MI Zugriff auf Frame-Daten: Spiegelung MI
(mirror)
MINDEX Index eines 0, ..., String:
Zeichens im INT 1. Parameter
Eingangsstring Zeichen:
bestimmen 2. Parameter
MINVAL Kleinerer Wert Real Gleichheit liefert ValMin =
zweier Variablen gleichen Wert. MINVAL(Var1, Var2)
(Arithmet. Funktion)
MIRROR Programmierbare Spiegelung MIRROR X0 Y0 Z0 s 3
;eigener Satz
MMC Aus dem STRING
Teileprogramm
interaktiv
Dialogfenster am
HMI aufrufen
MOD Modulo-Division
MOV Positionierachse Real
starten
(start moving
positioning axis)
MSG Programmierbare Meldungen MSG("Meldung") m
N Satznummer - Nebensatz 0, ..., Kann zur Kenn- z. B. N20
9999 9999 zeichnung von
nur ganz- Sätzen mit
zahlig, ohne einer Nummer
Vorzeichen ver-wendet
werden; steht
am Anfang
eines Satzes.
NCK Spezifizierung des Gültigkeitsbereichs von Pro NCK einmal
Daten vorhanden.
NEWCONF Geänderte Maschinendaten übernehmen. Auch über
Entspricht Maschinendatum wirksam Softkey über
setzen. HMI möglich.
NEWT Neues Werkzeug anlegen Duplo-Nr. kann
entfallen.
NORM 1 Normaleinstellung im Anfangs-, Endpunkt m 17
bei der Werkzeugkorrektur

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-27
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
NOT Logisches NICHT (Negation)
NPROT Maschinenspezifischer Schutzbereich
EIN/AUS
NPROTDEF Definition eines maschinenspezifischen
Schutzbereichs
(NCK specific protection area definition)
NUMBER Eingangsstring in Zahl Real
umwandeln
OEMIPO1 6,8 OEM-Interpolation 1 m 1
OEMIPO2 6,8 OEM-Interpolation 2 m 1
OF Schlüsselwort in der CASE-Verzweigung
OFFN Aufmaß zur programmierten Kontur OFFN=5
OMA1 6 OEM-Adresse 1 Real m
OMA2 6 OEM-Adresse 2 Real m
OMA3 6 OEM-Adresse 3 Real m
OMA4 6 OEM-Adresse 4 Real m
OMA5 6 OEM-Adresse 5 Real m
OFFN Offsetkorrektur - normal Real m
OR Logisches ODER
ORIC 1,6 Orientierungsänderungen an Außenecken m 27
werden dem einzufügenden Kreissatz
überlagert
(orientation change continuously)
ORID 6 Orientierungsänderungen werden vor dem m 27
Kreissatz ausgeführt
(orientation change discontinuously)
ORIAXPOS Orientierungswinkel über virtuelle m 50
Orientierungsachsen mit
Rundachspositionen
ORIEULER Orientierungswinkel über Euler-Winkel m 50
ORIAXES Lineare Interpolation der Endorien- Parametrierung wie m 51
Maschinenachsen oder tierung: Angabe folgt:
Orientierungsachsen Vektor A3, B3, Richtungsvektoren
ORICONCW Interpolation auf einer Kreismantelfläche C3 oder Euler- normiert A6=0 B6=0 m 51
im Uhrzeigersinn /RPY-Winkel C6=1
A2, B2, C2
ORICONCCW Interpolation auf einer Kreismantelfläche Öffnungswinkel erfolgt m 51
im Gegenuhrzeigersinn Zusatz- als Verfahrwinkel mit
angaben: NUT=...
ORICONIO Interpolation auf einer Kreismantelfläche Drehvektoren m 51
NUT=+... bei ≤ 180
mit Angabe einer Zwischenorientierung A6, B6, C6 Grad
ORICONTO Interpolation auf einer Kreismantelfläche Öffnungswinkel NUT= -... bei ≥ 180 m 51
im tangentialen Übergang des Kegels in Grad
(Angabe der Endorientierung) Grad: Zwischenorientierung
ORICURVE Interpolation der Orientierung mit Vorgabe 0 < NUT <180 normiert m 51
der Bewegung zweier Kontaktpunkte des Zwischen- A7=0 B7=0 C7=1
Werkzeugs

Arbeitsvorbereitung
15-28 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
ORIPLANE Interpolation in einer Ebene vektoren: m 51
(entspricht ORIVECT) A7, B7, C7
Großkreisinterpolation Kontaktpunkt
des Werkzeugs:
XH, YH, ZH
ORIPATH Werkzeugorientierung bezogen auf die Trans- m 51
Bahn formations-
paket Handling
(siehe /FB3/
TE4).
ORIPATHS Werkzeugorientierung bezogen auf die Bezogen relativ m 51
Bahn, ein Knick im Orientierungsverlauf zur gesamten
wird geglättet Bahn.
ORIROTA Drehwinkel zu einer absolut vorgegebenen m 54
Drehrichtung
ORIROTC Tangentialer Drehvektor zur Bahntangente Bezogen zur m 54
Bahntangente.
ORIROTR Drehwinkel relativ zur Ebene zwischen m 54
Start- und Endorientierung
ORIROTT Drehwinkel relativ zur Änderung des m 54
Orientierungsvektors
ORIRPY Orientierungswinkel über RPY-Winkel Drehreihen- m 50
(XYZ) folge XYZ
ORIRPY2 Orientierungswinkel über RPY-Winkel Drehreihen- m 50
(ZYX) folge ZYX
ORIS 5 Orientierungsänderung Real Bezogen auf m
(orientation smoothing die Bahn.
factor)
ORIVECT Großkreisinterpolation (identisch mit m 51
ORIPLANE)
ORIVIRT1 Orientierungswinkel über virtuelle m 50
Orientierungsachsen (Definition 1)
ORIVIRT2 Orientierungswinkel über virtuelle m 50
Orientierungsachsen (Definition 1)
ORIMKS 6 Werkzeugorientierung im Maschinen- m 25
Koordinatensystem (tool orientation in
machine coordinate system)
ORIRESET Grundstellung der Werkzeugorientierung Parameter ORIRESET(A,B,C)
mit bis zu 3 Orientierungsachsen optional (REAL)
ORIWKS 1,6 Werkzeugorientierung im Werkstück- m 25
Koordinatensystem
(tool orientation in workpiece coordinate
system)
OS Pendeln ein/aus Integer, ohne
Vorzeichen

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-29
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
OSB Pendeln: Startpunkt m
OSC 6 Konstante Glättung Werkzeugorientierung m 34
OSCILL Achszuordnung für Axis: 1 - 3 m
Pendeln - Zustellachsen
Pendeln einschalten
OSCTRL Optionen Pendeln Integer, ohne m
Vorzeichen
OSD 6 Überschleifen der Werkzeugorientierung Satzintern m 34
durch Vorgabe der Überschleiflänge mit
SD
OSE Pendeln: Endpunkt m
OSNSC Pendeln: Ausfunkanzahl m
(oscillating: number spark
out cycles)
OSOF 1,6 Glättung der Werkzeugorientierung AUS m 34
OSP1 Pendeln: linker Real m
Umkehrpunkt
(oscillating: Position 1)
OSP2 Pendeln: rechter Real m
Umkehrpunkt
(oscillating: Position 2)
OSS 6 Glättung der Werkzeugorientierung am m 34
Satzende
OSSE 6 Glättung der Werkzeugorientierung am m 34
Satzanfang und Satzende
OST 6 Überschleifen der Werkzeugorientierung Satzintern m 34
durch Vorgabe der Winkeltoleranz in Grad
mit dem SD (maximale Abweichung vom
programmiert. Orientierungsverlauf)
OST1 Pendeln: Haltepunkt im Real m
linken Umkehrpunkt
OST2 Pendeln: Haltepunkt im Real m
rechten Umkehrpunkt
OVR Drehzahlkorrektur 1, ..., 200% m
(Override)
OVRA Axiale Drehzahlkorrektur 1, ..., 200% m
(Override)
P Anzahl Unterprogramm- 1, ..., 9999 z. B. L781 P...
durchläufe Integer ohne ;eigener Satz
Vorzeichen
PCALL Unterprogramme mit absoluter Kein absoluter
Pfadangabe und Parameterübergabe Pfad. Verhalten
aufrufen wie CALL.
PAROT Werkstückkoordinatensystem am m 52
Werkstück ausrichten

Arbeitsvorbereitung
15-30 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
PAROTOF Werkstückbezogene Framedrehung m 52
ausschalten
PDELAYOF 6 Verzögerung beim Stanzen AUS m 36
(punch with delay OFF)
PDELAYON 1,6 Verzögerung beim Stanzen EIN m 36
(punch with delay ON)
PL Parameter-Intervall-Länge Real, ohne s
Vorzeichen
PM pro Minute Vorschub pro
Minute.
PO Polynom Real, ohne s
Vorzeichen
POLF Position LIFTFAST Real, ohne Geometrie- POLF[Y]=10 m
Vorzeichen achse im WKS, Zielposition der
sonst MKS. Rückzugsachse
POLFA Rückzugsposition von Für POLFA(AX1, 1, 20.0) m
Einzelachsen mit Einzelachsen.
$AA_ESR_TRIGGER
starten
POLFMASK Achsen für den Rückzug Selektierte POLFMASK(AX1, AX2, m
ohne Zusammenhang Achsen ...)
zwischen den Achsen
freigeben
POLFMLIN Achsen für den Rückzug Selektierte POLFMIN(AX1, AX2, m
mit linearen Achsen ...)
Zusammenhang zwischen
den Achsen freigeben
POLY 5 Polynom-Interpolation m 1
POLYPATH 5 Polynom-Interpolation selektierbar für die POLYPATH ("AXES") m 1
Achsgruppen AXIS oder VECT POLYPATH ("VECT")
PON 6 Stanzen EIN (punch ON) m 35
PONS 6 Stanzen EIN im IPO-Takt (punch ON slow) m 35
POS Achse positionieren POS[X]=20
POSA Achse positionieren über POSA[Y]=20
Satzgrenze
POSP Positionieren in Real: End-
Teilstücken (Pendeln) position,
(position axis in parts) Teillänge;
Integer:
Option
POT Quadrat Real
(Arithmetische Funktion)
PR Pro Umdrehung (per Revolution) Umdrehungs-vorschub

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-31
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
PRESETON Istwertsetzen für programmierte Achsen Es wird jeweils PRESETON(X,10,Y,
ein Achs- 4.5)
bezeichner und
im nächsten
Parameter der
zugehörige
Wert
programmiert.
Bis zu 8 Achsen
möglich.
PRIO Schlüsselwort zum Setzen der Priorität bei
der Behandlung von Interrupts
PROC Erste Anweisung eines Programms Satznummer - PROC -
Bezeichner
PTP Punkt zu Punkt Bewegung Synchronachse m 49
(point to point)
PTPG0 Punkt zu Punkt Bewegung nur bei G0, Synchronachse m 49
sonst CP
PUTFTOC Werkzeugfeinkorrektur für paralleles Kanalnummer PUTFTOC(1,1,2) oder
Abrichten (continous dressing) 1-10 oder $MC PUTFTOC(CH_name)
(Put Fine Tool Correction) _CHAN_NAME
PUTFTOCF Werkzeugfeinkorrektur in Abhängigkeit Kanalnummer PUTFTOCF(1,1,2) oder
einer mit FCtDEF festgelegten Funktion 1-10 oder $MC PUTFTOCF(CH_name)
für paralleles Abrichten (continous _CHAN_NAME
dressing)
(put fine tool correction function
dependant)
PW Punkt-Gewicht Real, ohne s
(point weight) Vorzeichen
QECLRNOF Quadrantenfehlerkompensation lernen
AUS (quadrant error compensation
learning OFF)
QECLRNON Quadrantenfehlerkompensation lernen
EIN (quadrant error compensation learning
ON)
QU Schnelle Zusatz-(Hilfs-)funktionsausgabe
R... Rechenparameter ± R-Parameter- R10=3
auch als einstellbarer 0.0000001, anzahl ist über ;R-Parameter-
Adressbezeichner und mit ..., MD einstellbar. zuweisung
numerischer Erweiterung 9999 9999 X=R10 ;Achswert
R[R10]=6
;indirekte Program.
RAC Absolut satzweise achsspezifische Radius- RAC(50) s
Radiusprogrammierung programmie-
rung

Arbeitsvorbereitung
15-32 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
RDISABLE Einlesesperre (read in disable)
READ Liest in der angegebenen Datei eine oder Die Information
mehrere Zeilen ein und legt gelesene liegt als
Informationen im Feld ab STRING vor.
READAL Alarm lesen (read alarm) Alarme werden
nach
steigenden
Nummern
durchsucht.
REAL Datentyp: Gleitpunkt- Entspricht
Variable mit Vorzeichen dem 64-Bit-
(reale Zahlen) Floating-
point-
Format des
Prozessors
REDEF Einstellung für Maschinendaten, NC-
Sprachelemente und Systemvariablen, bei
welchen Benutzergruppen sie angezeigt
werden
RELEASE Maschinenachsen freigeben Mehrere
Achsen können
programmiert
werden.
REP Schlüsselwort zur Initialisierung aller REP(Wert)
Elemente eines Feldes mit demselben oder
Wert DO FELD[n,m]=REP( )
REPEAT Wiederholung einer Programmschleife So lange, bis
(UNTIL) eine
Bedingung
erfüllt ist.
REPEATB Wiederholung einer Programmzeile nnn-mal
REPOSA Wiederanfahren an die Kontur linear mit s 2
allen Achsen
(repositioning linear all axes)
REPOSH Wiederanfahren an die Kontur im s 2
Halbkreis
(repositioning semi circle)
REPOSHA Wiederanfahren an die Kontur mit allen s 2
Achsen; Geometrieachsen im Halbkreis
(repositioning semi circle all axes)
REPOSL Wiederanfahren an die Kontur linear s 2
(repositioning linear)
REPOSQ Wiederanfahren an die Kontur im s 2
Viertelkreis
(repositioning quarter circle)

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-33
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
REPOSQA Wiederanfahren an die Kontur linear mit s 2
allen Achsen; Geometrieachsen im
Viertelkreis
(repositioning quarter circle all axes)
RESET Technologiezyklus rücksetzen Eine oder
mehrere IDs
können
programmiert
werden.
RET Unterprogrammende Verwendung RET
statt M17 -
ohne Funktions-
ausgabe an den
PLC.
RIC Relativ satzweise achsspezifische Radius- RIC(50) s
Radiusprogrammierung programmie-
rung
RINDEX Index eines Zeichens im 0, ..., String:
Eingangsstring INT 1. Parameter
bestimmen Zeichen:
2. Parameter
RMB Wiederanfahren an Satzanfangspunkt m 26
(repos mode begin of block)
RME Wiederanfahren an Satzendepunkt m 26
(repos mode end of block)
RMI 1 Wiederanfahren an Unterbrechungspunkt m 26
(repos mode interrupt)
RMN Wiederanfahren an nächstliegenden m 26
Bahnpunkt
(repos mode end of nearest orbital block)
RND Konturecke verrunden Real, ohne RND=... s
Vorzeichen
RNDM Modales Verrunden Real, ohne RNDM=... m
Vorzeichen RNDM=0: M. V.
ausschalten
ROT Programmierbare Drehung um ROT X... Y... Z... s 3
Drehung (rotation) 1. Geoachse: ROT RPL=
-180°... +180° ;eigener Satz
2. Geoachse:
-90° ... +90°
3. Geoachse:
-180°... +180°
ROTS Programmierbare Framedrehungen mit ROTS X… Y… s 3
Raumwinkeln (rotation) ROTS Z… X...
ROTS Y... Z...
ROTS RPL=
;eigener Satz

Arbeitsvorbereitung
15-34 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
ROUND Runden der Real
Nachkommastellen
RP Polarradius (radius polar) Real m/s
RPL Drehung in der Ebene Real, ohne s
(rotation plane) Vorzeichen
RT Parameter für Zugriff auf Framedaten:
Drehung (rotation)
RTLION G0 mit Linear-Interpolation m 55
RTLIOF G0 ohne Linear-Interpolation m 55
(Einzelachsinterpolation)
S Spindeldrehzahl oder REAL Spindeldreh- S...: Drehzahl für m/s
(bei G4, G96/G961) Anzeige: zahl in U/min Masterspindel
andere Bedeutung ±999 999 G4: Verweilzeit S1...: Drehzahl für
999.9999 in Spindel-um- Spindel 1
Programm: drehungen
±3,4028 ex38 G96/G961:
Schnittgeschw.
in m/min
SAVE Attribut zur Rettung von Informationen bei Gerettet
Unterprogrammaufrufen werden: alle
modalen G-
Funktionen und
der aktuelle
Frame.
SBLOF Einzelsatz unterdrücken Nachfolgende
(single block OFF) Sätze werden
im Einzelsatz
wie ein Satz
abgearbeitet.
SBLON Einzelsatzunterdrückung aufheben
(single block ON)
SC Parameter für Zugriff auf Framedaten:
Skalierung (scale)
SCALE Programmierbare Skalierung SCALE X... Y... Z... s 3
(scale) ;eigener Satz
SCC Selektive Zuordnung einer Planachse zu Auch bei aktiver SCC[Achse]
G96/G961/G962. Achsbezeichner können konst.
Geo-, Kanal oder Maschinenachse sein. Schnittgeschw.
SD Spline-Grad Integer, ohne s
(spline degree) Vorzeichen
SEFORM Strukturierungsanweisung im Stepeditor, Wird im Step- SEFORM
um daraus die Schrittansicht für Editor aus- (<abschnittsname>,
HMI Advanced zu generieren gewertet. <ebene>, <icon> )
SET Schlüsselwort zur Initialisierung aller SET(Wert, Wert, ...)
Elemente eines Feldes mit aufgelisten oder
Werten DO FELD[n,m]=SET( )

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-35
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
SETAL Alarm setzen (set alarm)
SETDNO D-Nummer des Werkzeugs (T) und
dessen Schneide auf "neu" setzen
SETINT Festlegung, welche Interruptroutine Ausgewertet
aktiviert werden soll, wenn ein NCK- wird
Eingang ansteht Flanke 0 → 1.
SETMS Zurückschalten auf die im
Maschinendatum festgelegte
Masterspindel
SETMS(n) Spindel n soll als Masterspindel gelten
SETPIECE Stückzahl für alle Werkzeuge Ohne Spindel-
berücksichtigen, die der Spindel nummer:
zugeordnet sind gilt für
Masterspindel.
SF Startpunktversatz für 0.0000,..., m
Gewindeschneiden 359.999°
(spline offset)
SIN Sinus (Trigon. Funktion) Real
SOFT Rückbegrenzte Bahnbeschleunigung m 21
SOFTA Ruckbegrenzte Achsbeschleunigung für
die programmierten Achsen einschalten
SON 6 Nibbeln EIN (stroke ON) m 35
SONS 6 Nibbeln EIN im IPO-Takt (stroke ON slow) m 35
SPATH 1 Bahnbezug für FGROUP-Achsen ist m 45
Bogenlänge
SPCOF Masterspindel oder Spindel (n) von SPCOF m
Lageregelung in Drehzahlregelung SPCOF(n)
umschalten
SPCON Masterspindel oder Spindel (n) von SPCON m
Drehzahlregelung in Lageregelung SPCON(n)
umschalten
SPIF11,6 Schnelle NCK-Ein-/Ausgänge für m 38
Stanzen/Nibbeln Byte 1
(stroke/punch interface 1)
SPIF26 Schnelle NCK-Ein-/Ausgänge für m 38
Stanzen/Nibbeln Byte 2
(stroke/punch interface 2)
SPLINE-PATH Spline-Verband festlegen Max. 8 Achsen.
SPOF 1,6 Hub AUS, Stanzen, Nibbeln AUS m 35
(stroke/punch OFF)
SPN 6 Anzahl der Teilstrecken Integer s
pro Satz
(stroke/punch number)
SPP 6 Länge einer Teilstrecke Integer m
(stroke/punch path)
SPOS Spindelposition SPOS=10 oder m
SPOS[n]=10

Arbeitsvorbereitung
15-36 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
SPOSA Spindelposition über SPOSA=5 oder m
Satzgrenzen hinweg SPOSA[n]=5
SQRT Quadratwurzel Real
(arithmetische Funktion)
(square root)
SR Pendelrückzugsweg Real, ohne s
für Synchronaktion Vorzeichen
(sparking out retract path)
SRA Pendelrückzugsweg bei SRA[Y]=0.2 m
externem Eingang axial
für Synchronaktion
(sparking out retract path
axial)
ST Pendelausfeuerzeit Real, ohne s
für Synchronaktion Vorzeichen
(sparking out time)
STA Pendelausfeuerzeit axial m
für Synchronaktion
(sparking out time axial)
START Starten der ausgewählten Programme in Unwirksam für START(1,1,2) oder
mehreren Kanälen gleichzeitig aus dem den eigenen START(CH_X, CH_Y)
laufenden Programm Kanal. $MC _CHAN_NAME
STARTFIFO1 Abarbeiten; parallel dazu Auffüllen des m 4
Vorlaufpuffers
STAT Stellung der Gelenke Integer s
STOPFIFO Anhalten der Bearbeitung; Auffüllen des m 4
Vorlaufpuffers, bis STARTFIFO erkannt
wird, Vorlaufpuffer voll oder
Programmende
STOPRE Vorlaufstopp, bis alle vorbereiteten Sätze
vom Hauptlauf abgearbeitet sind
(stop preprocessing)
STOPREOF Vorlaufstopp aufheben
(stop preprocessing OFF)
STRING Datentyp: Zeichenkette Max. 200
Zeichen
STRINGIS Prüft vorhandenen NC- INT Rückgabewerte STRINGIS
Sprachumfang und Ergebnisse sind (STRING,name)=
speziell für diesen Befehl 000 Rückgabewert
gehörende NC- nicht bekannt stellencodiert
Zyklennamen, 100
Anwendervariablen, programmierbar
Makros und Labelnamen, 2XX erkannt als
ob diese existieren, gültig, vorhanden
definiert oder aktiv sind.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-37
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
STRLEN Länge eines Strings INT
bestimmen
SUBSTR Index eines Zeichens im Real String:
Eingangsstring [Link],
bestimmen Zeichen:
[Link]
SUPA Unterdrückung der aktuellen s 9
Nullpunktverschiebung, einschließlich
programmierter Verschiebungen,
Systemframes, Handradverschiebungen
(DRF), externer Nullpunktverschiebung
und überlagerte Bewegung
SYNFCT Auswertung eines VAR REAL
Polynoms abhängig von
einer Bedingung in der
Bewegungssynchron-
aktion
SYNR Lesen der Variable erfolgt synchron, d. h.
zum Abarbeitungszeitpunkt
(synchronous read)
SYNRW Lesen und Schreiben der Variable erfolgt
synchron, d. h. zum Abarbeitungszeitpunkt
(synchronous read-write)
SYNW Schreiben der Variable erfolgt synchron,
d. h. zum Abarbeitungszeitpunkt
(synchronous write)
T Werkzeug aufrufen 1, ..., 32 000 Aufruf über T- z. B. T3 bzw. T=3
(wechseln nur, wenn im Nr. oder über z. B. T="BOHRER"
Maschinendatum Werkzeug-
festgelegt; ansonsten M6- bezeichner.
Befehl nötig)
TAN Tangens (Trigon. Real
Funktion)
TANG Tangente für die Nachführung aus beiden
angegebenen Leitachsen bestimmen
TANGOF Tangentielles Nachführen AUS
(tangential follow up mode OFF)
TANGON Tangentielles Nachführen EIN
(tangential follow up mode ON)
TCARR Werkzeugträger (Nummer Integer m=0: aktiven TCARR=1
"m") anfordern WZ-Träger
abwählen
TCOABS 1 Werkzeuglängenkomponenten aus der Nötig nach m 42
aktuellen Werkzeugorientierung Umrüsten, z. B.
bestimmen durch manuelle
TCOFR Werkzeuglängenkomponenten aus der Einstellung. m 42
Orientierung des aktiven Frames
bestimmen

Arbeitsvorbereitung
15-38 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
TCOFRX Werkzeugorientierung eines aktiven WZ senkrecht m 42
Frames bei der Werkzeugwahl zur schrägen
bestimmen, Werkzeug zeigt in X-Richtung Fläche.
TCOFRY Werkzeugorientierung eines aktiven WZ senkrecht m 42
Frames bei der Werkzeugwahl zur schrägen
bestimmen, Werkzeug zeigt in Y-Richtung Fläche.
TCOFRZ Werkzeugorientierung eines aktiven WZ senkrecht m 42
Frames bei der Werkzeugwahl zur schrägen
bestimmen, Werkzeug zeigt in Z-Richtung Fläche.
THETA Drehwinkel THETA ist stets THETA=Wert s
senkrecht zur THETA=AC
aktuellen WZ- THETA=IC
Orientierung. Polynom für THETA
PO[THT]=(…)
TILT 5 Seitwärtswinkel Real TILT=Wert m
TMOF Werkzeugüberwachung abwählen T-Nr. nur TMOF (T-Nr.)
notwendig,
wenn Werkzeug
mit dieser Nr.
nicht aktiv.
TMON Werkzeugüberwachung anwählen T-Nr. = 0: TMON (T-Nr.)
Überwachung
für alle
Werkzeuge
ausschalten
TO Bezeichnet den Endwert in einer FOR-
Zählschleife
TOFFOF Online-Werkzeuglängenkorrektur
rücksetzen
TOFFON Online-Werkzeuglängenkorrektur Angabe einer TOFFON (Z, 25) mit
aktivieren dreidimensio- Korrekturrichtung Z
(tool offset ON) nalen Korrektur- Offsetwert von 25
richtung.
TOFRAME Aktuellen programmierbaren Frame auf Framedrehung m 53
Werkzeugkoordinatensystem setzen in Werkzeug-
TOFRAMEX X-Achse parallel zur Werkzeugrichtung, richtung. m 53
Nebenachse Y, Z
TOFRAMEY Y-Achse parallel zur Werkzeugrichtung, m 53
Nebenachse Z, X
TOFRAMEZ Z-Achse parallel zur Werkzeugrichtung, m 53
Nebenachse X, Y
TOLOWER Buchstaben des eines Strings in
Kleinbuchstaben umwandeln
TOROTOF Framedrehungen in Werkzeugrichung m 53
AUS

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-39
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
TOROT Z-Achse parallel zur Werkzeugorientierung Frame- m 53
TOROTX X-Achse parallel zur drehungen EIN m 53
Rotationsanteil
Werkzeugorientierung
des program-
TOROTY Y-Achse parallel zur mierbaren m 53
Werkzeugorientierung Frame
TOROTZ Z-Achse parallel zur Werkzeugorientierung m 53
TOUPPER Buchstaben des eines Strings in
Großbuchstaben umwandeln
TOWSTD Grundstellungswert für Korrekturen in der Einrechnung m 56
Werkzeuglänge Werkzeug-
TOWBCS Verschleißwerte im verschleiß m 56
Basiskoordinatensystem (BKS)
TOWKCS Verschleißwerte im Koordinatensystem m 56
des Werkzeugkopfes bei kinetischer
Transformation (unterscheidet sich vom
MKS durch Werkzeugdrehung)
TOWMCS Verschleißwerte im m 56
Maschinenkoordinatensystem (MKS)
TOWTCS Verschleißwerte im m 56
Werkzeugkoordinatensystem
(Werkzeugträgerbezugspunkt T an der
Werkzeughalteraufnahme)
TOWWCS Verschleißwerte im m 56
Werkstückkoordinatensystem (WKS)
TRAANG Transformation schräge Achse Pro Kanal
mehrere Trans-
formationen
einstellbar.
TRACEOF Kreisformattest: Übertragung der Werte
AUS
TRACEON Kreisformattest: Übertragung der Werte
EIN
TRACON Kaskadierte Transformation
(transformation concatenated)
TRACYL Zylinder: Mantelflächen-Transformation Siehe
TRAANG.
TRAFOOF Transformation ausschalten TRAFOOF( )
TRAILOF Achssynchrones Mitschleppen AUS
(trailing OFF)
TRAILON Achssynchrones Mitschleppen EIN
(trailing ON)
TRANS Programmierbare Verschiebung TRANS X... Y... Z... s 3
(translation) ;eigener Satz
TRANSMIT Polar-Transformation Siehe
TRAANG.

Arbeitsvorbereitung
15-40 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
TRAORI 4-, 5-Achstransformation, Generische Aktiviert Generische
Transformation vereinbarte Transformation
(transformation oriented) Orientierungs- TRAORI(1,X,Y,Z)
transformation.
TRUE Logische Konstante: wahr BOOL Ersetzbar
durch Integer-
Konstante 1.
TRUNC Abschneiden der Real
Nachkommastellen
TU Achswinkel Integer TU=2 s
TURN Windungsanzahl für 0, ..., 999 s
Schraubenlinie
UNLOCK Synchronaktion mit ID freigeben
(Technologiezyklus fortsetzen)
UNTIL Bedingung zur Beendigung einer
REPEAT-Schleife
UPATH Bahnbezug für FGROUP- m 45
Achsen ist
Kurvenparameter
VAR Schlüsselwort: Art der Parameterübergabe Mit VAR: call by
reference
VELOLIMA5 Reduktion oder 1, ..., 200 Gültigkeits- VELOLIMA[X]= ...[%] m
Überhöhung der bereich ist
maximalen axialen 1 bis 200%
Geschwindigkeit
(velocity axial)
WAITC Warten, bis Kopplungssatzwechsel- Bis zu 2 WAITC(1,1,2)
kriterium für die Achsen/Spindeln erfüllt ist Achsen/Spindel
(wait for couple condition) n können
programmiert
werden.
WAITE Warten auf das Programmende in einem Kanalnummer WAITE(1,1,2) oder
anderen Kanal. 1-10 oder $MC WAITE(CH_X, CH_Y)
_CHAN_NAME
WAITM Warten auf Marker im angegebenen Kanalnummer WAITM(1,1,2) oder
Kanal; vorhergehenden Satz mit 1-10 oder $MC WAITM(CH_X, CH_Y)
Genauhalt beenden. _CHAN_NAME
WAITMC Warten auf Marker im angegeben. Kanal; Kanalnummer WAITMC(1,1,2) oder
Genauhalt nur, wenn die anderen Kanäle 1-10 oder $MC WAITMC(CH_X, CH_Y)
den Marker noch nicht erreicht haben. _CHAN_NAME
WAITP Warten auf Verfahrende WAITP(X)
; eigener Satz
WAITS Warten auf Erreichen der Spindelposition WAITS (Hauptspindel)
WAITS (n,n,n)
WALCS0 WKS-Arbeitsfeldbegrenzung abgewählt m 60
WALCS1 WKS-Arbeitsfeldbegrenzungsgruppe 1 m 60
aktiv
WALCS2 WKS-Arbeitsfeldbegrenzungsgruppe 2 m 60
aktiv

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 15-41
Tabellen
15.1 Liste der Anweisungen

Name Bedeutung Wert Beschreibung, Syntax m/s3 Gruppe2


Kommentar
WALCS3 WKS-Arbeitsfeldbegrenzungsgruppe 3 m 60
aktiv
WALCS4 WKS-Arbeitsfeldbegrenzungsgruppe 4 m 60
aktiv
WALCS5 WKS-Arbeitsfeldbegrenzungsgruppe 5 m 60
aktiv
WALCS6 WKS-Arbeitsfeldbegrenzungsgruppe 6 m 60
aktiv
WALCS7 WKS-Arbeitsfeldbegrenzungsgruppe 7 m 60
aktiv
WALCS8 WKS-Arbeitsfeldbegrenzungsgruppe 8 m 60
aktiv
WALCS9 WKS-Arbeitsfeldbegrenzungsgruppe 9 m 60
aktiv
WALCS10 WKS-Arbeitsfeldbegrenzungsgruppe 10 m 60
aktiv
WALIMOF BKS-Arbeitsfeldbegrenzung AUS ;eigener Satz m 28
(working area limitation OFF)
WALIMON1 BKS-Arbeitsfeldbegrenzung EIN ;eigener Satz m 28
(working area limitation ON)
WHILE Beginn der WHILE-Programmschleife Ende:
ENDWHILE
WRITE Satz ins Dateisystem schreiben. Die Sätze
Hängt einen Satz am Ende der werden nach
angegebenen Datei an. M30 eingefügt.
X Achse Real m/s
XOR Logisches Exklusiv- ODER
Y Achse Real m/s
Z Achse Real m/s

Legende:
1 Standardeinstellung bei Programmanfang (im Auslieferungsstand der Steuerung, wenn nichts anderes programmiert
ist).
2 Die Gruppen-Numerierung entspricht der Tabelle im Abschnitt "Liste der G-Funktionen/Wegbedingungen".
3 Absolute Endpunkte: modal (m)
Inkrementale Endpunkte: satzweise (s)
Ansonsten: m/s in Abhängigkeit von der Syntaxbestimmung G-Funktion
4 Als Kreismittelpunkte wirken IPO-Paramter inkrementell. Mit AC können sie absolut programmiert werden. Bei anderen
Bedeutungen (z. B. Gewindesteigung) wird die Adressmodifikation ignoriert.
5 Schlüsselwort gilt nicht für SINUMERIK 810D.
5 Schlüsselwort gilt nicht für SINUMERIK 810D/NCU571.
7 Schlüsselwort gilt nur für SINUMERIK FM-NC.
8 Der OEM-Anwender kann zwei zusätzliche Interpolationsarten einbringen. Die Namen kann der OEM-Anwender
verändern.
9 Für diese Funktionen ist die erweiterte Adressschreibweise nicht zulässig.

Arbeitsvorbereitung
15-42 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
A Anhang A

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 A-1
Anhang
A.1 Liste der Abkürzungen

A.1 A.1 Liste der Abkürzungen

A Ausgang
AS Automatisierungssystem
ASCII American Standard Code for Information Interchange: Amerikanische Code-Norm für
den Informationsaustausch
ASIC Application Specific Integrated Circuit: Anwender-Schaltkreis
ASUP Asynchrones Unterprogramm
AV Arbeitsvorbereitung
AWL Anweisungsliste
BA Betriebsart
BAG Betriebsartengruppe
BB Betriebsbereit
BuB, B&B Bedienen und Beobachten
BCD Binary Coded Decimals: Im Binärcode verschlüsselte Dezimalzahlen
BHG Bedienhandgerät
BIN Binärdateien (Binary Files)
BIOS Basic Input Output System
BKS Basiskoordinatensystem
BOF Bedienoberfläche
BOT Boot Files: Bootdateien für SIMODRIVE 611 digital
BT Bedientafel
BTSS Bedientafelschnittstelle
CAD Computer-Aided Design
CAM Computer-Aided Manufacturing
CNC Computerized Numerical Control: Computerunterstützte numerische Steuerung
COM Communication
CP Communication Processor
CPU Central Processing Unit: Zentrale Rechnereinheit
CR Carriage Return
CRT Cathode Ray Tube: Bildröhre
CSB Central Service Board: PLC-Baugruppe
CTS Clear To Send: Meldung der Sendebereitschaft bei seriellen Daten-Schnittstellen
CUTOM Cutter radius compensation: Werkzeugradiuskorrektur
DAU Digital-Analog-Umwandler
DB Datenbaustein in der PLC
DBB Datenbausteinbyte in der PLC
DBW Datenbausteinwort in der PLC
DBX Datenbausteinbit in der PLC
DC Direct Control: Bewegung der Rundachse auf kürzestem Weg auf die absolute
Position innerhalb einer Umdrehung
DCD Carrier Detect
DDE Dynamic Data Exchange

Arbeitsvorbereitung
A-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Anhang
A.1 Liste der Abkürzungen

DEE Datenendeinrichtung
DIN Deutsche Industrie Norm
DIO Data Input/Output: Datenübertragungs-Anzeige
DIR Directory: Verzeichnis
DLL Dynamic Link Library
DOE Datenübertragungseinrichtung
DOS Disk Operating System
DPM Dual Port Memory
DPR Dual-Port-RAM
DRAM Dynamic Random Access Memory
DRF Differential Resolver Function: Differential-Drehmelder-Funktion (Handrad)
DRY Dry Run: Probelaufvorschub
DSB Decoding Single Block: Dekodierungseinzelsatz
DW Datenwort
E Eingang
E/A Ein-/Ausgabe
E/R Einspeise-/Rückspeiseeinheit (Stromversorgung) des
SIMODRIVE 611 digital
EIA-Code Spezieller Lochstreifencode, Lochanzahl pro Zeichen stets ungerade
ENC Encoder: Istwertgeber
EPROM Erasable Programmable Read Only Memory (Löschbarer, elektrisch
programmierbarer Lesespeicher)
ERROR Error from printer
FB Funktionsbaustein
FBS Flachbildschirm
FC Function Call: Funktionsbaustein in der PLC
FDB Fabrikate-Datenbank
FDD Floppy Disk Drive
FEPROM Flash-EPROM: Les- und schreibbarer Speicher
FIFO First In First Out: Speicher, der ohne Adressangabe arbeitet und dessen Daten in
derselben Reihenfolge gelesen werden, in der sie gespeichert wurden.
FIPO Feininterpolator
FM Funktionsmodul
FM-NC Funktionsmodul-Numerische Steuerung
FPU Floating Point Unit: Gleitpunkteinheit
FRA Frame-Baustein
FRAME Datensatz (Rahmen)
FRK Fräsradiuskorrektur
FST Feed Stop: Vorschub Halt
FUP Funktionsplan (Programmiermethode für PLC)
GP Grundprogramm
GUD Global User Data: Globale Anwenderdaten
HD Hard Disk: Festplatte
HEX Kurzbezeichnung für hexadezimale Zahl

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 A-3
Anhang
A.1 Liste der Abkürzungen

HiFu Hilfsfunktion
HMI Human Machine Interface: Bedienfunktionalität der SINUMERIK für Bedienen,
Programmieren und Simulieren.
HMS Hochauflösendes Messsystem
HSA Hauptspindelantrieb
HW Hardware
IBN Inbetriebnahme
IF Impulsfreigabe des Antriebsmoduls
IK (GD) Implizite Kommunikation (Globale Daten)
IKA Interpolative Compensation: Interpolatorische Kompensation
IM Interface-Modul: Anschaltungsbaugruppe
IMR Interface-Modul Receive: Anschaltungsbaugruppe für Empfangsbetrieb
IMS Interface-Modul Send: Anschaltungsbaugruppe für Sendebetrieb
INC Increment: Schrittmaß
INI Initializing Data: Initialisierungsdaten
IPO Interpolator
ISA International Standard Architecture
ISO International Standard Organization
ISO-Code Spezieller Lochstreifencode, Lochanzahl pro Zeichen stets gerade
JOG Jogging: Einrichtbetrieb
K1 .. K4 Kanal 1 bis Kanal 4
K-Bus Kommunikationsbus
KD Koordinatendrehung
KOP Kontaktplan (Programmiermethode für PLC)
Kv Kreisverstärkungsfaktor
KÜ Übersetzungsverhältnis
LCD Liquid-Crystal Display: Flüssigkristallanzeige
LED Light-Emitting Diode: Leuchtdiodenanzeige
LF Line Feed
LMS Lagemesssystem
LR Lageregler
LUD Local User Data
MB Megabyte
MD Maschinendaten
MDA Manual Data Automatic: Handeingabe
MK Messkreis
MKS Maschinenkoordinatensystem
MLFB Maschinenlesbare Fabrikatbezeichnung
MPF Main Program File: NC-Teileprogramm (Hauptprogramm)
MPI Multi Port Interface: Mehrpunktfähige Schnittstelle
MS- Microsoft (Software-Hersteller)
MSTT Maschinensteuertafel
NC Numerical Control: Numerische Steuerung

Arbeitsvorbereitung
A-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Anhang
A.1 Liste der Abkürzungen

NCK Numerical Control Kernel: Numerik-Kern mit Satzaufbereitung, Verfahrbereich usw.


NCU Numerical Control Unit: Hardware Einheit des NCK
NRK Bezeichnung des Betriebssystems des NCK
NST Nahtstellensignal
NURBS Non-Uniform Rational B-Spline
NV Nullpunktverschiebung
OB Organisationsbaustein in der PLC
OEM Original Equipment Manufacturer
OP Operation Panel: Bedieneinrichtung
OPI Operation Panel Interface: Bedientafel-Anschaltung
OPT Options: Optionen
OSI Open Systems Interconnection: Normung für Rechnerkommunikation
P-Bus Peripheriebus
PC Personal Computer
PCIN Name der SW für den Datenaustausch mit der Steuerung
PCMCIA Personal Computer Memory Card International Association: Speichersteckkarten
Normierung
PCU PC Unit: PC-Box (Rechnereinheit)
PG Programmiergerät
PLC Programmable Logic Control: Anpass-Steuerung
POS Positionier-
RAM Random Access Memory: Programmspeicher, der gelesen und beschrieben werden
kann
REF Funktion Referenzpunkt anfahren
REPOS Funktion Repositionieren
RISC Reduced Instruction Set Computer: Prozessortyp mit kleinem Befehlssatz und
schnellem Befehlsdurchsatz
ROV Rapid Override: Eingangskorrektur
RPA R-Parameter Active: Speicherbereich in
NCK für R- NCK für R-Parameternummern
RPY Roll Pitch Yaw: Drehungsart eines Koordinatensystems
RTS Request To Send: Sendeteil einschalten, Steuersignal von seriellen Daten-
Schnittstellen
SBL Single Block: Einzelsatz
SD Setting-Datum
SDB System Datenbaustein
SEA Setting Data Active: Kennzeichnung (Dateityp) für Settingdaten
SFB System Funktionsbaustein
SFC System Function Call
SK Softkey
SKP Skip: Satz ausblenden
SM Schrittmotor
SPF Sub Program File: Unterprogramm
SPS Speicherprogrammierbare Steuerung

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 A-5
Anhang
A.1 Liste der Abkürzungen

SRAM Statischer Speicher (gepuffert)


SRK Schneidenradiuskorrektur
SSFK Spindelsteigungsfehlerkompensation
SSI Serial Synchron Interface: Serielle synchrone Schnittstelle
SW Software
SYF System Files: Systemdateien
TEA Testing Data Active: Kennung für Maschinendaten
TO Tool Offset: Werkzeugkorrektur
TOA Tool Offset Active: Kennzeichnung (Dateityp) für Werkzeugkorrekturen
TRANSMIT Transform Milling into Turning: Koordinatenumrechnung an Drehmaschinen für
Fräsbearbeitung
UFR User Frame: Nullpunktverschiebung
UP Unterprogramm
VSA Vorschubantrieb
V.24 Serielle Schnittstelle (Definition der Austauschleitungen zwischen DEE und DÜE)
WKS Werkstückkoordinatensystem
WKZ Werkzeug
WLK Werkzeuglängenkorrektur
WOP Werkstatt orientierte Programmierung
WPD Work Piece Directory: Werkstückverzeichnis
WRK Werkzeug-Radius-Korrektur
WZK Werkzeugkorrektur
WZW Werkzeugwechsel
ZOA Zero Offset Active: Kennzeichnung (Dateityp) für Nullpunktverschiebungsdaten
µC Mikro-Controller

Arbeitsvorbereitung
A-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Anhang
A.2 Publikationsspezifische Information

A.2 A.2 Publikationsspezifische Information

A.2.1 Korrekturblatt - Faxvorlage


Sollten Sie beim Lesen dieser Unterlage auf Druckfehler gestoßen sein, bitten wir Sie, uns
diese mit diesem Vordruck mitzuteilen. Ebenso dankbar sind wir für Anregungen und
Verbesserungsvorschläge.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 A-7
Anhang
A.2 Publikationsspezifische Information

$EVHQGHU
$Q
6,(0(16$* 1DPH
$ '0&06 $QVFKULIW,KUHU)LUPD'LHQVWVWHOOH
3RVWIDFK 

6WUD¡H
'(UODQJHQ
3/= 2UW 

)D[   'RNXPHQWDWLRQ 7HOHIRQ 


PDLOWRGRFXPRWLRQFRQWURO#VLHPHQVFRP

ZZZVLHPHQVFRPDXWRPDWLRQVHUYLFH VXSSRUW 7HOHID[ 


9RUVFKO¦JHXQGRGHU.RUUHNWXUHQ

Arbeitsvorbereitung
A-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Anhang
A.2 Publikationsspezifische Information

A.2.2 Dokumentationsübersicht

'RNXPHQWDWLRQV¾EHUVLFKW6,180(5,.'VO'LVO
$OOJHPHLQH'RNXPHQWDWLRQ

6,180(5,. 6,180(5,. 6,1$0,&6


'VO 6
'LVO

:HUEHVFKULIW .DWDORJ1& .DWDORJ


'8PULFKWHU(LQEDXJHU¦WH

$QZHQGHU'RNXPHQWDWLRQ

6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,.


'VO 'VO 'VO 'VO 'VO
' ' ' 'LVO
'LVO 'LVO 'LVO
'L 'L 'L
' ' '

%HGLHQKDQGEXFK %HGLHQKDQGEXFK 3URJUDPPLHUKDQGEXFK 3URJUDPPLHUKDQGEXFK 'LDJQRVHKDQGEXFK


B+0,VO ದ+0,$GYDQFHG ದ*UXQGODJHQ ದ=\NOHQ
ದ+0,(PEHGGHG ದ%HGLHQXQJ.RPSDNW ದ$UEHLWVYRUEHUHLWXQJ ದ0HVV]\NOHQ
ದ6KRS0LOO ದ3URJUDPPLHUXQJ.RPSDNW
ದ6KRS7XUQ ದ/LVWHQ6\VWHPYDULDEOHQ
ದ,627XUQLQJ0LOOLQJ

+HUVWHOOHU6HUYLFH'RNXPHQWDWLRQ

6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,.


'VO 'VO 'VO 'LVO 'VO
'LVO 'LVO

*HU¦WHKDQGEXFK *HU¦WHKDQGEXFK ,QEHWULHEQDKPHKDQG ,QEHWULHEQDKPH /LVWHQKDQGEXFK


1&8 %HGLHQNRPSRQHQWHQ EXFK&1& KDQGEXFK ದ7HLO
ದ1&.3/&$QWULHE ದ7HLO
ದ+0,VO
ದ+0,(PEHGGHG
ದ+0,$GYDQFHG
ದ6KRS0LOO
ದ6KRS7XUQ

+HUVWHOOHU6HUYLFH'RNXPHQWDWLRQ

6,180(5,. 6,180(5,. 6,1$0,&6 6,180(5,. 6,180(5,.


'VO 'VO 6 'VO 'VO
' ' '
'LVO 'LVO 'LVO
'L 'L 'L
' ' '
)XQNWLRQVKDQGEXFK )XQNWLRQVKDQGEXFK )XQNWLRQVKDQGEXFK )XQNWLRQVKDQGEXFK (095LFKWOLQLHQ
ದ*UXQGODJHQ ದ6\QFKURQDNWLRQHQ $QWULHEVIXQNWLRQHQ 6DIHW\,QWHJUDWHG
ದ(UZHLWHUXQJVIXQNWLRQHQ ದ,62'LDOHNWH
ದ6RQGHUIXQNWLRQHQ

(OHNWURQLVFKH'RNXPHQWDWLRQ

6,180(5,.
6,1$0,&6
0RWRUHQ

'2&21&'
'2&21:(% (PSIRKOHQHU0LQLPDOXPIDQJGHU'RNXPHQWDWLRQ

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 A-9
Anhang
A.2 Publikationsspezifische Information

'RNXPHQWDWLRQV¾EHUVLFKW6,180(5,.''L'
$OOJHPHLQH'RNXPHQWDWLRQ

6,180(5,. 6,180(5,. 6DIHW\,QWHJUDWHG


'
'L
'

:HUEHVFKULIW .DWDORJ1& 6DIHW\,QWHJUDWHG


$SSOLNDWLRQVKDQGEXFK

$QZHQGHU'RNXPHQWDWLRQ

6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,.


' 'VO 'VO 'VO ' 'L
'L ' ' ' 'L
' 'LVO 'LVO 'LVO '
'L 'L 'L
' ' '
%HGLHQKDQGEXFK %HGLHQKDQGEXFK 3URJUDPPLHUKDQGEXFK 3URJUDPPLHUKDQGEXFK 'LDJQRVHKDQGEXFK 6\VWHP¾EHUEOLFN
ದ+0,(PEHGGHG ದ+0,$GYDQFHG ದ*UXQGODJHQ ದ=\NOHQ
ದ6KRS0LOO ದ%HGLHQXQJ.RPSDNW ದ$UEHLWVYRUEHUHLWXQJ ದ0HVV]\NOHQ
ದ6KRS7XUQ ದ3URJUDPPLHUXQJ.RPSDNW
ದ+7 ದ/LVWHQ6\VWHPYDULDEOHQ
ದ,627XUQLQJ0LOOLQJ

+HUVWHOOHU6HUYLFH'RNXPHQWDWLRQ

6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,.


' ' ' ' 'L '
' 'L 'L 'L 'L
' ' ' '

3URMHNWLHUXQJ +:  *HU¦WHKDQGEXFK ,QEHWULHEQDKPH )XQNWLRQVKDQGEXFK ,QEHWULHEQDKPH /LVWHQKDQGEXFK


ದ' %HGLHQNRPSRQHQWHQ KDQGEXFK ದ6KRS0LOO KDQGEXFK ದ7HLO
ದ' ದ'' ದ6KRS7XUQ ದ7HLO
ದ+0,
ದ%DVHVRIWZDUH

+HUVWHOOHU6HUYLFH'RNXPHQWDWLRQ

6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,. 6,180(5,.


'VO ' ' ' ' '
' 'L 'L ' '
'LVO ' '
'L
'
)XQNWLRQVKDQGEXFK )XQNWLRQVKDQGEXFK )XQNWLRQVKDQGEXFK )XQNWLRQVKDQGEXFK 3URMHNWLHUXQJ 0&,6
ದ*UXQGODJHQ ದ$QWULHEVINW ದ)HUQGLDJQRVH 6DIHW\,QWHJUDWHG ದ%HGLHQREHUIO¦FKH ದ5HFKQHUNRSSOXQJ
ದ(UZHLWHUXQJVIXQNWLRQHQ ದ:HUN]HXJYHUZ ದ#(YHQW 23 ದ:HUN]HXJEHGDUI
ದ6RQGHUIXQNWLRQHQ ದ+\GUDXOLNPRGXO ದ+0,(PEHGGHG ದ1&'DWHQYHUZ
ದ6\QFKURQDNWLRQHQ ದ$QDORJPRGXO ದ1&'DWHQ¾EHUWU
ದ,62'LDOHNWH ದ7RRO'DWD&RPPXQ
ದ(095LFKWOLQLHQ

(OHNWURQLVFKH'RNXPHQWDWLRQ

6,180(5,.
6,02'5,9(
0RWRUHQ

'2&21&'
'2&21:(% (PSIRKOHQHU0LQLPDOXPIDQJGHU'RNXPHQWDWLRQ

Arbeitsvorbereitung
A-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

Absolutmaß
Angabe des Bewegungsziels einer Achsbewegung durch ein Maß, das sich auf den
Nullpunkt des momentan gültigen Koordinatensystems bezieht. Siehe -> Kettenmaß.

Achsadresse
Siehe -> Achsbezeichner

Achsbezeichner
Achsen werden nach DIN 66217 für ein rechtsdrehendes, rechtwinkliges ->
Koordinatensystem bezeichnet mit X,Y, Z.
Um X,Y, Z drehende -> Rundachsen erhalten die Bezeichner A, B, C. Zusätzliche Achsen,
parallel zu den angegebenen, können mit weiteren Adressbuchstaben gekennzeichnet
werden.

Achsen
Die CNC-Achsen werden entsprechend ihres Funktionsumfangs abgestuft in:
● Achsen: interpolierende Bahnachsen
● Hilfsachsen: nicht interpolierende Zustell- und Positionierachsen mit achsspezifischem
Vorschub. Hilfsachsen sind an der eigentlichen Bearbeitung nicht beteiligt, z. B.
Werkzeugzubringer, Werkzeugmagazin.

Achsname
Siehe -> Achsbezeichner

Adresse
Eine Adresse ist die Kennzeichnung für einen bestimmten Operanden oder
Operandenbereich, z. B. Eingang, Ausgang usw.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-1
Glossar

Alarme
Alle -> Meldungen und Alarme werden auf der Bedientafel im Klartext mit Datum und Uhrzeit
und dem entsprechenden Symbol für das Löschkriterium angezeigt. Die Anzeige erfolgt
getrennt nach Alarmen und Meldungen.
1. Alarme und Meldungen im Teileprogramm
Alarme und Meldungen können direkt aus dem Teileprogramm im Klartext zur Anzeige
gebracht werden.
2. Alarme und Meldungen von PLC
Alarme- und Meldungen der Maschine können aus dem PLC-Programm im Klartext zur
Anzeige gebracht werden. Dazu sind keine zusätzlichen Funktionsbaustein-Pakete
notwendig.

Analog-Ein-/Ausgabebaugruppe
Analog-Ein-/Ausgabebaugruppen sind Signalformer für analoge Prozesssignale.
Analog-Eingabebaugruppen wandeln analoge Messgrößen in digitale Werte um, die in der
CPU verarbeitet werden können.
Analog-Ausgabebaugruppen wandeln digitale Werte in analoge Stellgrößen um.

Antrieb
Das Steuerungssystem SINUMERIK 840D ist über einen schnellen digitalen Parallelbus mit
dem Umrichtersystem SIMODRIVE 611 digital verbunden.

Anwenderdefinierte Variable
Anwender können für beliebige Nutzung im -> Teileprogramm oder Datenbaustein (globale
Anwenderdaten) anwenderdefinierte Variable vereinbaren. Eine Definition enthält eine
Datentypangabe und den Variablennamen. Siehe -> Systemvariable.

Anwenderprogramm
Anwenderprogramme für Automatisierungssysteme S7-300 werden mit der
Programmiersprache STEP 7 erstellt. Das Anwenderprogramm ist modular aufgebaut und
besteht aus einzelnen Bausteinen.
Die grundlegenden Bausteintypen sind:
Code-Bausteine: diese Bausteine enthalten die STEP 7-Befehle.
Datenbausteine: diese Bausteine enthalten Konstanten und Variablen für das STEP 7-
Programm.

Anwenderspeicher
Alle Programme und Daten wie Teileprogramme, Unterprogramme, Kommentare,
Werkzeugkorrekturen, Nullpunktverschiebungen/Frames sowie Kanal- und
Programmanwenderdaten können in den gemeinsamen CNC- Anwenderspeicher abgelegt
werden.

Arbeitsvorbereitung
Glossar-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

Arbeitsfeldbegrenzung
Mit der Arbeitsfeldbegrenzung kann der Verfahrbereich der Achsen zusätzlich zu den
Endschaltern eingeschränkt werden. Je Achse ist ein Wertepaar zur Beschreibung des
geschützten Arbeitsraumes möglich.

Arbeitsraum
Dreidimensionaler Raum, in den die Werkzeugspitze aufgrund der Konstruktion der
Werkzeugmaschine hineinfahren kann. Siehe -> Schutzraum.

Arbeitsspeicher
Der Arbeitsspeicher ist ein RAM-Speicher in der -> CPU, auf den der Prozessor während der
Programmbearbeitung auf das Anwenderprogramm zugreift.

Archivieren
Auslesen von Dateien und/oder Verzeichnissen auf ein externes Speichergerät.

A-Spline
Der Akima-Spline verläuft tangentenstetig durch die programmierten Stützpunkte (Polynom
3. Grades).

Asynchrones Unterprogramm
Teileprogramm, das asynchron (unabhängig) zum aktuellen Programmzustand durch ein
Interruptsignal (z. B. Signal "schneller NC-Eingang") gestartet werden kann.

Automatik
Betriebsart der Steuerung (Satzfolgebetrieb nach DIN): Betriebsart bei NC-Systemen, in der
ein -> Teileprogramm angewählt und kontinuierlich abgearbeitet wird.

Back up
Abzug des Speicherinhaltes auf ein externes Speichergerät.

Backup-Speicher
Der Backup-Speicher gewährleistet eine Pufferung von Speicherbereichen der -> CPU ohne
Pufferbatterie. Gepuffert wird eine parametrierbare Anzahl von Zeiten, Zählern, Merkern und
Datenbytes.

Bahnachse
Bahnachsen sind alle Bearbeitungsachsen des -> Kanals, die vom -> Interpolator so geführt
werden, dass sie gleichzeitig starten, beschleunigen, stoppen und den Endpunkt erreichen.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-3
Glossar

Bahngeschwindigkeit
Die maximal programmierbare Bahngeschwindigkeit ist abhängig von der Eingabefeinheit.
Bei einer Auflösung von beispielsweise 0,1 mm beträgt die maximal programmierbare
Bahngeschwindigkeit 1000 m/min.

Bahnsteuerbetrieb
Ziel des Bahnsteuerbetriebes ist es, ein größeres Abbremsen der die Steuerung, Maschine
und weitere Vermögenswerte des Betriebes und Anwenders -> Bahnachsen an den
Teileprogramm-Satzgrenzen zu vermeiden und mit möglichst gleicher Bahngeschwindigkeit
in den nächsten Satz zu wechseln.

Bahnvorschub
Bahnvorschub wirkt auf -> Bahnachsen. Er stellt die geometrische Summe der Vorschübe
der beteiligten -> Geometrieachsen dar.

Basisachse
Achse, deren Soll- oder Istwert für die Berechnung eines Kompensationswertes
herangezogen wird.

Basiskoordinatensystem
Kartesisches Koordinatensystem, wird durch Transformation auf das
Maschinenkoordinatensystem abgebildet.
Im -> Teileprogramm verwendet der Programmierer Achsnamen des
Basiskoordinatensystems. Es besteht, wenn keine -> Transformation aktiv ist, parallel zum -
> Maschinenkoordinatensystem. Der Unterschied zu diesem liegt in den Achsbezeichnern.

Baudrate
Geschwindigkeit bei der Datenübertragung (Bit/s).

Baustein
Als Bausteine werden alle Dateien bezeichnet, die für die Programmerstellung und
Programmverarbeitung benötigt werden.

Bearbeitungskanal
Über eine Kanalstruktur können durch parallele Bewegungsabläufe Nebenzeiten verkürzt
werden, z. B. Verfahren eines Ladeportals simultan zur Bearbeitung. Ein CNC-Kanal ist
dabei als eigene CNC-Steuerung mit Dekodierung, Satzaufbereitung und Interpolation
anzusehen.

Arbeitsvorbereitung
Glossar-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

Bedienoberfläche
Die Bedienoberfläche (BOF) ist das Anzeigemedium einer CNC-Steuerung in Gestalt eines
Bildschirms. Sie ist mit horizontalen und vertikalen Softkeys gestaltet.

Beschleunigung mit Ruckbegrenzung


Zur Erzielung eines optimalen Beschleunigungsverhaltens an der Maschine bei
gleichzeitiger Schonung der Mechanik kann im Bearbeitungsprogramm zwischen
sprunghafter Beschleunigung und stetiger (ruckfreier) Beschleunigung umgeschaltet werden.

Betriebsart
Ablaufkonzept für den Betrieb einer SINUMERIK-Steuerung. Es sind die Betriebsarten ->
Jog, -> MDA, -> Automatik definiert.

Betriebsartengruppe
Zu einem Zeitpunkt sind alle Achsen/Spindeln genau einem Kanal zugeordnet. Jeder Kanal
ist einer Betriebsartengruppe zugeordnet. Den Kanälen der BAG ist immer die gleiche ->
Betriebsart zugeordnet.

Bezeichner
Die Wörter nach DIN 66025 werden durch Bezeichner (Namen) für Variable
(Rechenvariable, Systemvariable, Anwendervariable), für Unterprogramme, für
Schlüsselwörter und Wörter mit mehreren Adressbuchstaben ergänzt. Diese Ergänzungen
kommen in der Bedeutung den Wörtern beim Satzaufbau gleich. Bezeichner müssen
eindeutig sein. Derselbe Bezeichner darf nicht für verschiedene Objekte verwendet werden.

Booten
Laden des Systemprogramms nach Power On.

B-Spline
Beim B-Spline sind die programmierten Positionen keine Stützpunkte, sondern lediglich
"Kontrollpunkte". Die erzeugte Kurve verläuft nicht direkt durch die Kontrollpunkte, sondern
lediglich in deren Nähe (wahlweise Polynome 1., 2. oder 3. Grades).

Busverbinder
Ein Busverbinder ist ein S7-300-Zubehörteil, das zusammen mit den ->
Peripheriebaugruppen ausgeliefert wird. Der Busverbinder erweitert den -> S7-300-Bus von
der -> CPU bzw. einer Peripheriebaugruppe zur jeweils benachbarten Peripheriebaugruppe.

C-Achse
Achse, um die eine gesteuerte Drehbewegung und Positionierung mit der Werkstückspindel
erfolgt.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-5
Glossar

CNC
Siehe -> NC

COM
Komponente der NC-Steuerung zur Durchführung und Koordination von Kommunikation.

CPU
Central Processor Unit, siehe -> Speicherprogrammierbare Steuerung

C-Spline
Der C-Spline ist der bekannteste und am meisten verwendete Spline. Die Übergänge an den
Stützpunkten sind tangenten- und krümmungsstetig. Es werden Polynome 3. Grades
verwendet.

Datenbaustein
1. Dateneinheit der -> PLC, auf die -> HIGHSTEP Programme zugreifen können.
2. Dateneinheit der -> NC: Datenbausteine enthalten Datendefinitionen für globale
Anwenderdaten. Die Daten können bei der Definition direkt initialisiert werden.

Datenübertragungsprogramm PCIN
PCIN ist ein Hilfsprogramm zum Senden und Empfangen von CNC-Anwenderdaten über die
serielle Schnittstelle, wie z. B. Teileprogramme, Werkzeugkorrekturen etc. Das PCIN-
Programm ist unter MS-DOS auf Standard-Industrie-PCs lauffähig.

Datenwort
Zwei Byte große Dateneinheit innerhalb eines -> Datenbausteins.

Diagnose
1. Bedienbereich der Steuerung
2. Die Steuerung besitzt sowohl ein Selbstdiagnose-Programm als auch Testhilfen für den
Service: Status-, Alarm- und Serviceanzeigen.

Dienste
Bedienbereich der Steuerung

Digital-Ein-/Ausgabebaugruppe
Digitalbaugruppen sind Signalformer für binäre Prozesssignale.

Arbeitsvorbereitung
Glossar-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

DRF
Differential Resolver Function: NC-Funktion, die in Verbindung mit einem elektronischen
Handrad eine inkrementale Nullpunktverschiebung im Automatik-Betrieb erzeugt.

Editor
Der Editor ermöglicht das Erstellen, Ändern, Ergänzen, Zusammenschieben und Einfügen
von Programmen/Texten/Programmsätzen.

Eilgang
Schnellste Verfahrgeschwindigkeit einer Achse. Sie wird z. B. verwendet, wenn das
Werkzeug aus einer Ruhestellung an die -> Werkstückkontur herangefahren oder von der
Werkstückkontur zurückgezogen wird.

Elektronisches Handrad
Mit Hilfe von elektronischen Handrädern können die angewählten Achsen im Handbetrieb
simultan verfahren werden. Die Bewertung der Teilstriche der Handräder wird über die
Externe Nullpunktverschiebung Schrittmaßbewertung festgelegt.

Externe Nullpunktverschiebung
Von der -> PLC vorgegebene Nullpunktverschiebung.

Fertigteilkontur
Kontur des fertig bearbeiteten Werkstücks. Siehe -> Rohteil.

Festpunkt-Anfahren
Werkzeugmaschinen können feste Punkte wie Werkzeugwechselpunkt, Beladepunkt,
Palettenwechselpunkt etc. definiert anfahren. Die Koordinaten dieser Punkte sind in der
Steuerung hinterlegt. Die Steuerung verfährt die betroffenen Achsen, wenn möglich, im ->
Eilgang.

Frame
Ein Frame stellt eine Rechenvorschrift dar, die ein kartesisches Koordinatensystem in ein
anderes kartesisches Koordinatensystem überführt. Ein Frame enthält die Komponenten ->
Nullpunktverschiebung, -> Rotation, -> Skalierung, -> Spiegelung.

Genauhalt
Bei programmierter Genauhaltanweisung wird die in einem Satz angegebene Position genau
und ggf. sehr langsam angefahren. Zur Reduktion der Annäherungszeit werden für Eilgang
und Vorschub -> Genauhaltsgrenzen definiert.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-7
Glossar

Genauhaltgrenze
Erreichen alle Bahnachsen ihre Genauhaltgrenze, so verhält sich die Steuerung als habe sie
einen Zielpunkt exakt erreicht. Es erfolgt Satzweiterschaltung des -> Teileprogramms.

Geometrie
Beschreibung eines -> Werkstücks im -> Werkstückkoordinatensystem.

Geometrieachse
Geometrieachsen dienen der Beschreibung eines 2- oder 3-dimensionalen Bereichs im
Werkstückkoordinatensystem.

Geradeninterpolation
Das Werkzeug wird auf einer Geraden zum Zielpunkt verfahren und dabei das Werkstück
bearbeitet.

Geschwindigkeitsführung
Um bei Verfahrbewegungen um sehr kleine Beträge je Satz eine akzeptable
Verfahrgeschwindigkeit erreichen zu können, kann vorausschauende Auswertung über
mehrere Sätze (-> Look Ahead) eingestellt werden.

Gewindebohren ohne Ausgleichsfutter


Mit dieser Funktion können Gewinde ohne Ausgleichsfutter gebohrt werden. Durch das
interpolierende Verfahren der Spindel als Rundachse und der Bohrachse werden Gewinde
exakt auf Endbohrtiefe geschnitten, z. B. Sacklochgewinde (Voraussetzung: Achsbetrieb der
Spindel).

Globales Haupt-/Unterprogramm
Jedes globale Haupt-/Unterprogramm kann nur einmal unter seinem Namen im Verzeichnis
erscheinen, ein gleicher Programmname in verschiedenen Verzeichnissen mit
verschiedenen Inhalten ist als globales Programm nicht möglich.

Grenzdrehzahl
Maximale/minimale (Spindel-)Drehzahl: Durch Vorgaben von Maschinendaten, der -> PLC
oder -> Settingdaten kann die maximale Drehzahl einer Spindel begrenzt sein.

Hauptprogramm
Mit Nummer oder Bezeichner gekennzeichnetes -> Teileprogramm, in dem weitere
Hauptprogramme, Unterprogramme oder -> Zyklen en aufgerufen werden können.

Arbeitsvorbereitung
Glossar-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

Hauptsatz
Durch ":" eingeleiteter Satz, der alle Angaben enthält, um den Arbeitsablauf in einem ->
Teileprogramm starten zu können.

HIGHSTEP
Zusammenfassung der Programmiermöglichkeiten für die -> PLC des System
AS300/AS400.

Hilfsfunktionen
Mit Hilfsfunktionen können in -> Teileprogrammen -> Parameter an die -> PLC übergeben
werden, die dort vom Maschinenhersteller definierte Reaktionen auslösen.

Hochsprache CNC
Die Hochsprache bietet: -> Anwenderdefinierte Variable, -> Systemvariable, ->
Makrotechnik.

Initialisierungsbaustein
Initialisierungsbausteine sind spezielle -> Programmbausteine. Sie enthalten
Wertzuweisungen, die vor der Programmabarbeitung ausgeführt werden.
Initialisierungsbausteine dienen vor allem der Initialisierung vordefinierter Daten oder
globaler Anwenderdaten.

Initialisierungsdatei
Zu jedem -> Werkstück ist es möglich eine Initialisierungsdatei anzulegen. In ihr können
verschiedene Variablenwertanweisungen abgelegt werden, die speziell für ein Werkstück
gelten sollen.

Interpolator
Logische Einheit des -> NCK, die nach Angaben von Zielpositionen im Teileprogramm
Zwischenwerte für die in den einzelnen Achsen zu fahrenden Bewegungen bestimmt.

Interpolatorische Kompensation
Mit Hilfe der interpolatorischen Kompensation können fertigungsbedingte
Spindelsteigungsfehler und Messsystemfehler kompensiert werden (SSFK, MSFK).

Interruptroutine
Interruptroutinen sind spezielle -> Unterprogramme, die durch Ereignisse (externe Signale)
vom Bearbeitungsprozess gestartet werden können. Ein in Abarbeitung befindlicher
Teileprogrammsatz wird abgebrochen, die Unterbrechungsposition der Achsen wird
automatisch gespeichert.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-9
Glossar

Jog
Betriebsart der Steuerung (Einrichtebetrieb): In der Betriebsart Jog kann die Maschine
eingerichtet werden. Einzelne Achsen und Spindeln können über die Richtungstasten im
Tippbetrieb verfahren werden. Weitere Funktionen in der Betriebsart Jog sind das ->
Referenzpunktfahren, -> Repos sowie -> Preset (Istwert setzen).

Kanal
Ein Kanal ist dadurch gekennzeichnet, dass er unabhängig von anderen Kanälen ein ->
Teileprogramm abarbeiten kann. Ein Kanal steuert exklusiv die ihm zugeordneten Achsen
und Spindeln. Teileprogrammabläufe verschiedener Kanäle können durch ->
Synchronisation koordiniert werden.

Kanalstruktur
Die Kanalstruktur erlaubt es, die -> Programme der einzelnen Kanäle simultan und
asynchron abzuarbeiten.

Kettenmaß
Auch Inkrementmaß: Angabe eines Bewegungsziels einer Achse durch eine zu verfahrende
Wegstrecke und Richtung bezogen auf einen bereits erreichten Punkt. Siehe -> Absolutmaß.

Kompensationsachse
Achse, deren Soll- oder Istwert durch den Kompensationswert modifiziert wird.

Kompensationstabelle
Tabelle von Stützpunkten. Sie liefert für ausgewählte Positionen der Basisachse die
Kompensationswerte der Kompensationsachse.

Kompensationswert
Differenz zwischen der durch den Messgeber gemessenen Achsposition und der
gewünschten, programmierten Achsposition.

Kontur
Umriss des -> Werkstücks

Konturüberwachung
Als Maß für die Konturtreue wird der Schleppfehler innerhalb eines definierbaren
Toleranzbandes überwacht. Ein unzulässig hoher Schleppfehler kann sich z. B. durch
Überlastung des Antriebes ergeben. In diesem Fall kommt es zu einem Alarm und die
Achsen werden stillgesetzt.

Arbeitsvorbereitung
Glossar-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

Koordinatensystem
Siehe -> Maschinenkoordinatensystem, -> Werkstückkoordinatensystem

Korrekturspeicher
Datenbereich in der Steuerung, in dem Werkzeugkorrekturdaten hinterlegt sind.

Kreisinterpolation
Das -> Werkzeug soll zwischen festgelegten Punkten der Kontur mit einem gegebenen
Vorschub auf einem Kreis fahren und dabei das Werkstück bearbeiten.


Übersetzungsverhältnis

Kv
Kreisverstärkungsfaktor, regelungstechnische Größe eines Regelkreises

Ladespeicher
Der Ladespeicher ist bei der CPU 314 der -> SPS gleich dem -> Arbeitsspeicher.

Linearachse
Die Linearachse ist eine Achse, welche im Gegensatz zur Rundachse, eine Gerade
beschreibt.

Look Ahead
Mit der Funktion Look Ahead wird durch das "Vorausschauen" über eine parametrierbare
Anzahl von Verfahrsätzen ein Optimum an Bearbeitungsgeschwindigkeit erzielt.

Losekompensation
Ausgleich einer mechanischen Maschinenlose, z. B. Umkehrlose bei Kugelrollspindeln. Für
jede Achse kann die Losekompensation getrennt eingegeben werden.

Makrotechnik
Zusammenfassung einer Menge von Anweisungen unter einem Bezeichner. Der Bezeichner
repräsentiert im Programm die Menge der zusammengefassten Anweisungen.

Maschine
Bedienbereich der Steuerung

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-11
Glossar

Maschinenachsen
In der Werkzeugmaschine physikalisch existierende Achsen.

Maschinenfestpunkt
Durch die Werkzeugmaschine eindeutig definierter Punkt, z. B. Referenzpunkt.

Maschinenfestpunkt anfahren
Fahrbewegung zu einem der vordefinierten -> Maschinenfestpunkte.

Maschinenkoordinatensystem
Koordinatensystem, das auf die Achsen der Werkzeugmaschine bezogen ist.

Maschinennullpunkt
Fester Punkt der Werkzeugmaschine, auf den sich alle (abgeleiteten) Messsysteme
zurückführen lassen.

Maschinensteuertafel
Bedientafel der Werkzeugmaschine mit den Bedienelementen Tasten, Drehschalter usw.
und einfachen Anzeigeelementen wie LEDs. Sie dient der unmittelbaren Beeinflussung der
Werkzeugmaschine über die PLC.

Maßangabe metrisch und inch


Im Bearbeitungsprogramm können Positions- und Steigungswerte in inch programmiert
werden. Unabhängig von der programmierbaren Maßangabe (G70/G71) wird die Steuerung
auf ein Grundsystem eingestellt.

Masse
Als Masse gilt die Gesamtheit aller untereinander verbundenen inaktiven Teile eines
Betriebsmittels, die auch im Fehlerfall keine gefährliche Berührungsspannung annehmen
können.

MDA
Betriebsart der Steuerung: Manual Data Automatic. In der Betriebsart MDA können einzelne
Programmsätze oder Satzfolgen ohne Bezug auf ein Haupt- oder Unterprogramm
eingegeben und anschließend über die Taste NC-Start sofort ausgeführt werden.

Arbeitsvorbereitung
Glossar-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

Mehrpunkt-Schnittstelle
Die Mehrpunkt-Schnittstelle (MPI) ist eine 9-polige D-Sub-Schnittstelle. An eine Mehrpunkt-
Schnittstelle kann eine parametrierbare Anzahl von Geräten angeschlossen werden und
miteinander kommunizieren:
● PGs
● Bedien- und Beobachtungssysteme
● weitere Automatisierungssysteme
Der Parameterblock "Multipoint Interface MPI" der CPU enthält die -> Parameter, die die
Eigenschaften der Mehrpunkt-Schnittstelle festlegen.

Meldungen
Alle im Teileprogramm programmierten Meldungen und vom System erkannte -> Alarme
werden auf der Bedientafel im Klartext mit Datum und Uhrzeit und dem entsprechenden
Symbol für das Löschkriterium angezeigt. Die Anzeige erfolgt getrennt nach Alarmen und
Meldungen.

Metrisches Messsystem
Genormtes System von Einheiten: für Längen z. B. mm (Millimeter), m (Meter).

NC
Numerical Control: NC-Steuerung umfasst alle Komponenten der
Werkzeugmaschinensteuerung: -> NCK, -> PLC, HMI, -> COM.

Hinweis
Für die Steuerungen SINUMERIK 840D wäre CNC-Steuerung korrekter: computerized
numerical control.

NCK
Numeric Control Kernel: Komponente der NC-Steuerung, die -> Teileprogramme abarbeitet
und im Wesentlichen die Bewegungsvorgänge für die Werkzeugmaschine koordiniert.

Nebensatz
Durch "N" eingeleiteter Satz mit Informationen für einen Arbeitsschritt, z. B. eine
Positionsangabe.

Netz
Ein Netz ist die Verbindung von mehreren S7-300 und weiteren Endgeräten, z. B. einem PG,
über -> Verbindungskabel. Über das Netz erfolgt ein Datenaustausch zwischen den
angeschlossenen Geräten.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-13
Glossar

NRK
Numeric Robotic Kernel (Betriebssystem des -> NCK)

Nullpunktverschiebung
Vorgabe eines neuen Bezugspunktes für ein Koordinatensystem durch Bezug auf einen
bestehenden Nullpunkt und ein -> Frame.
1. Einstellbar
SINUMERIK 840D: Es steht eine projektierbare Anzahl von einstellbaren
Nullpunktverschiebungen für jede CNC-Achse zur Verfügung. Die über G-Funktionen
anwählbaren Verschiebungen sind alternativ wirksam.
2. Extern
Zusätzlich zu allen Verschiebungen, die die Lage des Werkstücknullpunktes festlegen,
kann eine externe Nullpunktverschiebung durch Handrad (DRF-Verschiebung) oder von
der PLC überlagert werden.
3. Programmierbar
Mit der Anweisung TRANS sind für alle Bahn- und Positionierachsen
Nullpunktverschiebungen programmierbar.

NURBS
Die steuerungsinterne Bewegungsführung und Bahninterpolation wird auf Basis von NURBS
(Non Uniform Rational B-Splines) durchgeführt. Damit steht bei SINUMERIK 840D
steuerungsintern für alle Interpolationen ein einheitliches Verfahren zur Verfügung.

OEM
Für Maschinenhersteller, die ihre eigene Bedienoberfläche erstellen oder
technologiespezifische Funktionen in die Steuerung einbringen wollen, sind Freiräume für
individuelle Lösungen (OEM-Applikationen) für SINUMERIK 840D vorgesehen.

Orientierter Spindelhalt
Halt der Werkstückspindel in vorgegebener Winkellage, z. B. um an bestimmter Stelle eine
Zusatzbearbeitung vorzunehmen.

Orientierter Werkzeugrückzug
RETTOOL: Bei Bearbeitungsunterbrechungen (z. B. bei Werkzeugbruch) kann das
Werkzeug per Programmbefehl mit vorgebbarer Orientierung um einen definierten Weg
zurückgezogen werden.

Override
Manuelle bzw. programmierbare Eingriffsmöglichkeit, die es dem Bediener gestattet,
programmierte Vorschübe oder Drehzahlen zu überlagern, um sie einem bestimmten
Werkstück oder Werkstoff anzupassen.

Arbeitsvorbereitung
Glossar-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

Peripheriebaugruppe
Peripheriebaugruppen stellen die Verbindung zwischen CPU und Prozess her.
Peripheriebaugruppen sind:
● → Digital-Ein-/Ausgabebaugruppen
● → Analog-Ein-/Ausgabebaugruppen
● → Simulatorbaugruppen

PLC
Programmable Logic Control: → Speicherprogrammierbare Steuerung. Komponente der
→ NC: Anpass-Steuerung zur Bearbeitung der Kontroll-Logik der Werkzeugmaschine.

PLC-Programmierung
Die PLC wird mit der Software STEP 7 programmiert. Die Programmiersoftware STEP 7
basiert auf dem Standardbetriebssystem WINDOWS und enthält die Funktionen der
STEP 5 -Programmierung mit innovativen Weiterentwicklungen.

PLC-Programmspeicher
SINUMERIK 840D: Im PLC-Anwenderspeicher werden das PLC-Anwenderprogramm und
die Anwenderdaten gemeinsam mit dem PLC-Grundprogramm abgelegt.

Polarkoordinaten
Koordinatensystem, das die Lage eines Punktes in einer Ebene durch seinen Abstand vom
Nullpunkt und den Winkel festlegt, den der Radiusvektor mit einer festgelegten Achse bildet.

Polynom-Interpolation
Mit der Polynom-Interpolation können die unterschiedlichsten Kurvenverläufe erzeugt
werden, wie Gerade-, Parabel-, Potenzfunktionen (SINUMERIK 840D).

Positionierachse
Achse, die eine Hilfsbewegung an einer Werkzeugmaschine ausführt. (z. B.
Werkzeugmagazin, Palettentransport). Positionierachsen sind Achsen, die nicht mit den
→ Bahnachsen interpolieren.

Programmbaustein
Programmbausteine enthalten die Haupt- und Unterprogramme der → Teileprogramme.

Programmierbare Arbeitsfeldbegrenzung
Begrenzung des Bewegungsraumes des Werkzeugs auf einen durch programmierte
Begrenzungen definierten Raum.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-15
Glossar

Programmierbare Frames
Mit programmierbaren → Frames können dynamisch im Zuge der Teileprogramm-
Abarbeitung neue Koordinatensystem-Ausgangspunkte definiert werden. Es wird
unterschieden nach absoluter Festlegung anhand eines neuen Frames und additiver
Festlegung unter Bezug auf einen bestehenden Ausgangspunkt.

Programmierschlüssel
Zeichen und Zeichenfolgen, die in der Programmiersprache für → Teileprogramme eine
festgelegte Bedeutung haben.

Pufferbatterie
Die Pufferbatterie gewährleistet, dass das → Anwenderprogramm in der → CPU
netzausfallsicher hinterlegt ist und festgelegte Datenbereiche und Merker, Zeiten und Zähler
remanent gehalten werden.

Quadrantenfehlerkompensation
Konturfehler an Quadrantenübergängen, die durch wechselnde Reibverhältnisse an
Führungsbahnen entstehen, sind mit der Quadrantenfehlerkompensation weitgehend
eliminierbar. Die Parametrierung der Quadrantenfehlerkompensation erfolgt durch einen
Kreisformtest.

Referenzpunkt
Punkt der Werkzeugmaschine, auf den sich das Messsystem der → Maschinenachsen
bezieht.

Rohteil
Teil, mit dem die Bearbeitung eines Werkstücks begonnen wird.

Rotation
Komponente eines → Frames, die eine Drehung des Koordinatensystems um einen
bestimmten Winkel definiert.

R-Parameter
Rechenparameter, kann vom Programmierer des → Teileprogramms für beliebige Zwecke im
Programm gesetzt oder abgefragt werden.

Rundachse
Rundachsen bewirken eine Werkstück- oder Werkzeugdrehung in eine vorgegebene
Winkellage.

Arbeitsvorbereitung
Glossar-16 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

Rundungsachse
Rundungsachsen bewirken eine Werkstück- oder Werkzeugdrehung in eine einem
Teilungsraster entsprechende Winkellage. Beim Erreichen eines Rasters ist die
Rundungsachse "in Position".

Satzsuchlauf
Zum Austesten von Teileprogrammen oder nach einem Abbruch der Bearbeitung kann über
die Funktion "Satzsuchlauf" eine beliebige Stelle im Teileprogramm angewählt werden, an
der die Bearbeitung gestartet oder fortgesetzt werden soll.

Schlüsselschalter
Der Schlüsselschalter auf der → Maschinensteuertafel besitzt 4 Stellungen, die vom
Betriebssystem der Steuerung mit Funktionen belegt sind. Zum Schlüsselschalter gehören
drei verschiedenfarbige Schlüssel, die in den angegebenen Stellungen abgezogen werden
können.

Schlüsselwörter
Wörter mit festgelegter Schreibweise, die in der Programmiersprache für → Teileprogramme
eine definierte Bedeutung haben.

Schneidenradiuskorrektur
Bei der Programmierung einer Kontur wird von einem spitzen Werkzeug ausgegangen. Da
dies in der Praxis nicht realisierbar ist, wird der Krümmungsradius des eingesetzten
Werkzeugs der Steuerung angegeben und von dieser berücksichtigt. Dabei wird der
Krümmungsmittelpunkt um den Krümmungsradius verschoben äquidistant um die Kontur
geführt.

Schnellabheben von der Kontur


Beim Eintreffen eines Interrupts kann über das CNC-Bearbeitungsprogramm eine Bewegung
eingeleitet werden, die ein schnelles Abheben des Werkzeugs von der gerade bearbeiteten
Werkstückkontur ermöglicht. Zusätzlich kann der Rückzugwinkel und der Betrag des Weges
parametriert werden. Nach dem Schnellabheben kann zusätzlich eine Interruptroutine
ausgeführt werden (SINUMERIK 840D).

Schnelle digitale Ein-/Ausgänge


Über die digitalen Eingänge können z. B. schnelle CNC-Programmroutinen
(Interruptroutinen) gestartet werden. Über die digitalen CNC-Ausgänge können schnelle,
programmgesteuerte Schaltfunktionen ausgelöst werden (SINUMERIK 840D).

Schrägenbearbeitung
Bohr- und Fräsbearbeitungen an Werkstückflächen, die nicht in den Koordinatenebenen der
Maschine liegen, können mit Unterstützung der Funktion "Schrägenbearbeitung" komfortabel
ausgeführt werden.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-17
Glossar

Schraubenlinien-Interpolation
Die Schraubenlinien-Interpolation eignet sich besonders zum einfachen Herstellen von
Innen- oder Außengewinden mit Formfräsern und zum Fräsen von Schmiernuten.
Dabei setzt sich die Schraubenlinie aus zwei Bewegungen zusammen:
● Kreisbewegung in einer Ebene
● Linearbewegung senkrecht zu dieser Ebene

Schrittmaß
Verfahrweglängenangabe über Inkrementanzahl (Schrittmaß). Inkrementanzahl kann als
→ Settingdatum hinterlegt sein bzw. durch entsprechend beschriftete Tasten 10, 100, 1000,
10000 gewählt werden.

Schutzraum
Dreidimensionaler Raum innerhalb des → Arbeitsraumes, in den die Werkzeugspitze nicht
hineinreichen darf.

Serielle Schnittstelle V.24


Für die Dateneingabe/-ausgabe ist auf der PCU 20 eine serielle V.24-Schnittstelle (RS232),
auf der PCU 50/70 sind zwei V.24-Schnittstellen vorhanden. Über diese Schnittstellen
können Bearbeitungsprogramme sowie Hersteller- und Anwenderdaten geladen und
gesichert werden.

Settingdaten
Daten, die Eigenschaften der Werkzeugmaschine auf durch die Systemsoftware definierte
Weise der NC-Steuerung mitteilen.

Sicherheitsfunktionen
Die Steuerung enthält ständig aktive Überwachungen, die Störungen in der → CNC, der
Anpass-Steuerung (→ PLC) und der Maschine so frühzeitig erkennen, dass Schäden an
Werkstück, Werkzeug oder Maschine weitgehend ausgeschlossen werden. Im Störungsfall
wird der Bearbeitungsablauf unterbrochen und die Antriebe werden stillgesetzt, die
Störungsursache gespeichert und als Alarm angezeigt. Gleichzeitig wird der PLC mitgeteilt,
dass ein CNC-Alarm ansteht.

Skalierung
Komponente eines → Frames, die achsspezifische Maßstabsveränderungen bewirkt.

Softkey
Taste, deren Beschriftung durch ein Feld im Bildschirm repräsentiert wird, das sich
dynamisch der aktuellen Bediensituation anpasst. Die frei belegbaren Funktionstasten
(Softkeys) werden softwaremäßig definierten Funktionen zugeordnet.

Arbeitsvorbereitung
Glossar-18 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

Software-Endschalter
Software-Endschalter begrenzen den Verfahrbereich einer Achse und verhindern ein
Auffahren des Schlittens auf die Hardware-Endschalter. Je Achse sind 2 Wertepaare
vorgebbar, die getrennt über die → PLC aktiviert werden können.

Speicherprogrammierbare Steuerung
Speicherprogrammierbare Steuerungen (SPS) sind elektronische Steuerungen, deren
Funktion als Programm im Steuerungsgerät gespeichert ist. Aufbau und Verdrahtung des
Gerätes hängen also nicht von der Funktion der Steuerung ab. Die
speicherprogrammierbare Steuerung hat die Struktur eines Rechners; sie besteht aus CPU
(Zentralbaugruppe) mit Speicher, Ein-/Ausgabebaugruppen und internem Bus-System. Die
Peripherie und die Programmiersprache sind auf die Belange der Steuerungstechnik
ausgerichtet.

Spiegelung
Bei Spiegelung werden die Vorzeichen der Koordinatenwerte einer Kontur bezüglich einer
Achse vertauscht. Es kann bezüglich mehrerer Achsen zugleich gespiegelt werden.

Spindelsteigungsfehler-Kompensation
Ausgleich mechanischer Ungenauigkeiten einer am Vorschub beteiligten Kugelrollspindel
durch die Steuerung anhand von hinterlegten Messwerten der Abweichungen.

Spline-Interpolation
Mit der Spline-Interpolation kann die Steuerung aus nur wenigen vorgegebenen
Stützpunkten einer Sollkontur einen glatten Kurvenverlauf erzeugen.

Standardzyklen
Für häufig wiederkehrende Bearbeitungsaufgaben stehen Standardzyklen zur Verfügung:
● für die Technologie Bohren/Fräsen
● für die Technologie Drehen
Im Bedienbereich "Programm" werden unter dem Menü "Zyklenunterstützung" die zur
Verfügung stehenden Zyklen aufgelistet. Nach Anwahl des gewünschten Bearbeitungszyklus
werden die notwendigen Parameter für die Wertzuweisung im Klartext angezeigt.

Synchronachsen
Synchronachsen benötigen für ihren Weg die gleiche Zeit wie die Geometrieachsen für ihren
Bahnweg.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-19
Glossar

Synchronaktionen
1. Hilfsfunktionsausgabe
Während der Werkstückbearbeitung können aus dem CNC-Programm heraus
technologische Funktionen (→ Hilfsfunktionen) an die PLC ausgegeben werden. Über
diese Hilfsfunktionen werden beispielsweise Zusatzeinrichtungen der Werkzeugmaschine
gesteuert, wie Pinole, Greifer, Spannfutter etc.
2. Schnelle Hilfsfunktionsausgabe
Für zeitkritische Schaltfunktionen können die Quittierungszeiten für die → Hilfsfunktionen
minimiert und unnötige Haltepunkte im Bearbeitungsprozess vermieden werden.

Synchronisation
Anweisungen in → Teileprogrammen zur Koordination der Abläufe in verschiedenen
→ Kanälen an bestimmten Bearbeitungsstellen.

Systemspeicher
Der Systemspeicher ist ein Speicher in der CPU, in der folgende Daten abgelegt werden:
● Daten, die das Betriebssystem benötigt
● die Operanden Zeiten, Zähler, Merker

Systemvariable
Ohne Zutun des Programmierers eines → Teileprogramms existierende Variable. Sie ist
definiert durch einen Datentyp und dem Variablennamen, der durch das Zeichen $
eingeleitet wird. Siehe → Anwenderdefinierte Variable.

Teileprogramm
Folge von Anweisungen an die NC-Steuerung, die insgesamt die Erzeugung eines
bestimmten → Werkstücks bewirken. Ebenso Vornahme einer bestimmten Bearbeitung an
einem gegebenen → Rohteil.

Teileprogrammsatz
Teil eines → Teileprogramms, durch Line Feed abgegrenzt. Es werden → Hauptsätze und
→ Nebensätze unterschieden.

Teileprogrammverwaltung
Die Teileprogrammverwaltung kann nach → Werkstücken organisiert werden. Die Größe des
Anwenderspeichers bestimmt die Anzahl der zu verwaltenden Programme und Daten. Jede
Datei (Programme und Daten) kann mit einem Namen von maximal 24 alphanumerischen
Zeichen versehen werden.

Arbeitsvorbereitung
Glossar-20 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

Text-Editor
Siehe → Editor

TOA–Bereich
Der TOA–Bereich umfasst alle Werkzeug- und Magazindaten. Standardmäßig fällt der
Bereich bzgl. der Reichweite der Daten mit dem Bereich → Kanal zusammen. Über
Maschinendaten kann jedoch festgelegt werden, dass sich mehrere Kanäle eine → TOA-
Einheit teilen, so dass diesen Kanälen dann gemeinsame WZV-Daten zur Verfügung stehen.

TOA–Einheit
Jeder → TOA-Bereich kann mehrere TOA-Einheiten enthalten. Die Anzahl der möglichen
TOA-Einheiten wird über die maximale Anzahl aktiver → Kanäle begrenzt. Eine TOA-Einheit
umfasst genau einen WZ-Daten-Baustein und einen Magazindaten-Baustein. Zusätzlich
kann noch ein WZ-Trägerdaten-Baustein enthalten sein (optional).

Transformation
Additive oder absolute Nullpunktsverschiebung einer Achse.

Unterprogramm
Folge von Anweisungen eines → Teileprogramms, die mit unterschiedlichen
Versorgungsparametern wiederholt aufgerufen werden kann. Der Aufruf des
Unterprogramms erfolgt aus einem Hauptprogramm. Jedes Unterprogramm kann gegen
nicht autorisiertes Auslesen und Anzeigen gesperrt werden. → Zyklen sind eine Form von
Unterprogrammen.

Urlöschen
Beim Urlöschen werden folgende Speicher der → CPU gelöscht:
● -→ Arbeitsspeicher
● Schreib-/Lesebereich des → Ladespeichers
● → Systemspeicher
● → Backup-Speicher

Variablendefinition
Eine Variablendefinition umfasst die Festlegung eines Datentyps und eines
Variablennamens. Mit dem Variablennamen kann der Wert der Variablen angesprochen
werden.

Verbindungskabel
Verbindungskabel sind vorgefertigte bzw. vom Anwender selbst anzufertigende 2-Draht-
Leitungen mit 2 Anschlusssteckern. Diese Verbindungskabel verbinden die → CPU über die
→ Mehrpunkt-Schnittstelle (MPI) mit einem → PG bzw. mit anderen CPUs.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-21
Glossar

Verfahrbereich
Der maximal zulässige Verfahrbereich bei Linearachsen beträgt ± 9 Dekaden. Der absolute
Wert ist abhängig von der gewählten Eingabe- und Lageregelfeinheit und dem
Einheitensystem (inch oder metrisch).

Vorkoinzidenz
Satzwechsel bereits, wenn Bahnweg um ein vorgegebenes Delta der Endposition nahe
gekommen ist.

Vorschub-Override
Der programmierten Geschwindigkeit wird die aktuelle Geschwindigkeitseinstellung über
→ Maschinensteuertafel oder von der → PLC überlagert (0-200%). Die
Vorschubgeschwindigkeit kann zusätzlich im Bearbeitungsprogramm durch einen
programmierbaren Prozentfaktor (1-200%) korrigiert werden.

Vorsteuerung, dynamisch
Ungenauigkeiten der → Kontur, bedingt durch Schleppfehler, lassen sich durch die
dynamische, beschleunigungsabhängige Vorsteuerung nahezu eliminieren. Dadurch ergibt
sich auch bei hohen → Bahngeschwindigkeiten eine hervorragende
Bearbeitungsgenauigkeit. Die Vorsteuerung kann achsspezifisch über das → Teileprogramm
an- und abgewählt werden.

Werkstück
Von der Werkzeugmaschine zu erstellendes/zu bearbeitendes Teil.

Werkstückkontur
Sollkontur des zu erstellenden/bearbeitenden → Werkstücks.

Werkstückkoordinatensystem
Das Werkstückkoordinatensystem hat seinen Ausgangspunkt im → Werkstücknullpunkt. Bei
Programmierung im Werkstückkoordinatensystem beziehen sich Maße und Richtungen auf
dieses System.

Werkstücknullpunkt
Der Werkstücknullpunkt bildet den Ausgangspunkt für das → Werkstückkoordinatensystem.
Er ist durch Abstände zum → Maschinennullpunkt definiert.

Werkzeug
An der Werkzeugmaschine wirksames Teil, das die Bearbeitung bewirkt (z. B. Drehmeißel,
Fräser, Bohrer, LASER-Strahl ...).

Arbeitsvorbereitung
Glossar-22 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Glossar

Werkzeugkorrektur
Berücksichtigung der Werkzeug-Abmessungen bei der Berechnung der Bahn.

Werkzeugradiuskorrektur
Um eine gewünschte → Werkstückkontur direkt programmieren zu können, muss die
Steuerung unter Berücksichtigung des Radius des eingesetzten Werkzeugs eine
äquidistante Bahn zur programmierten Kontur verfahren (G41/G42).

Zeitreziproker Vorschub
Bei SINUMERIK 840D kann anstelle der Vorschubgeschwindigkeit für die Achsbewegung
die Zeit programmiert werden, die der Bahnweg eines Satzes benötigen soll (G93).

Zoll-Maßsystem
Maßsystem, das Entfernungen in "inch" und Bruchteilen davon definiert.

Zwischensätze
Verfahrbewegungen mit angewählter → Werkzeugkorrektur (G41/G42) dürfen durch eine
begrenzte Anzahl Zwischensätze (Sätze ohne Achsbewegungen in der Korrekturebene)
unterbrochen werden, wobei die Werkzeugkorrektur noch korrekt verrechnet werden kann.
Die zulässige Anzahl Zwischensätze, die die Steuerung vorausliest, ist über
Systemparameter einstellbar.

Zyklus
Geschütztes Unterprogramm zur Ausführung eines wiederholt auftretenden
Bearbeitungsvorganges am → Werkstück.

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Glossar-23
Glossar

Arbeitsvorbereitung
Glossar-24 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Index
AXTOCHAN, 1-63
GET, 1-59
$ ohne Synchronisierung, 1-61
ohne Vorlaufstopp, 1-62
$AA_COUP_ACT, 9-10, 9-35, 13-23
RELEASE, 1-59
$AA_COUP_OFFS, 13-23
über Synchronaktionen anfordern und
$AA_LEAD_SP, 9-34
freigeben, 10-44
$AA_LEAD_SV, 9-34
Verhalten veränderbar einstellen, 1-62
$AA_MOTEND, 5-41
Voraussetzungen, 1-61
$AC_MARKER[n], 10-14
ACOS, 1-20
$AC_PARAM, 10-15
AC-Regelung, additiv, 10-33
$AC_TIMER[n], 10-18
AC-Regelung, multiplikativ, 10-34
$MC_COMPESS_VELO_TOL, 9-41
ACTFRAME, 6-5
$P_TECCYCLE, 10-65
ADISPOSA, 5-39
$SA_LEAD_TYPE, 9-34
Aktuelle Kanal Basisframes, 6-26
$TC_CARR1...14, 8-37
Aktuelle NCU-globale Basisframes, 6-25
$TC_CARR18[m], 8-37, 8-41
Aktuelle Satzanzeige, 2-36
$TC_CARR24[m], 8-39
Aktuelle Systemframes, 6-25
Aktueller
Kopplungszustand Folgespindel, 13-23
A Winkelversatz, 13-23
A, 7-62 Aktueller 1. Basisframe im Kanal, 6-26
A1, A2, 8-37, 8-39 Aktueller einstellbarer Frame, 6-27
A2, 7-16 Aktueller Gesamtframe, 6-27
A3, 7-16 Aktueller programmierbarer Frame, 6-27
A4, 7-16, 7-22 ALF, 1-51
A5, 7-16, 7-22 Amax, 12-2
ABS, 1-20 Amin, 12-2
Abspanen, 14-1 AND, 1-23
Abstandsregelung, 10-35 Anfahren vom nächstliegenden Bahnpunkt, 9-56
ACC, 13-21 ANG, 15-2
Achs- Antriebsautarke Reaktionen, 13-32
Container, 13-42 Antriebsautarkes Rückziehen, 13-40
Achscontainer, 13-42, 13-45 Antriebsautarkes Stillsetzen, 13-39
Achse Anweisungen
lokale, 13-43 Liste, 15-1, 15-42
Achse direkt übernehmen Anwenderdaten definieren, 3-8
GETD, 1-59 ANZ, 14-16
Achse positionieren, 10-41 ANZHINT, 14-4, 14-6
Vorgegebene Referenzposition, 10-42 applim, 9-13
Achse starten/stoppen, 10-43 APR, 3-12, 3-15, 3-17
Achskoordinierung, 10-48 APW, 3-12, 3-15, 3-17
Achstausch APX, 3-17
Achse freigeben, 1-62
Achse übernehmen, 1-62

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Index-1
Index

Arbeitsspeicher, 3-6 Bahnrelative Orientierung


Datenbereiche, 3-6 Drehung der Werkzeugorientierung, 7-40
Initialisierungsprogramme, 3-6 Drehung des Orientierungsvektors, 7-40
Reservierte Bausteinnamen, 3-10 Drehungen des Werkzeugs, 7-39
AS, 2-43 Einfügen von Zwischensätzen, 7-43
ASIN, 1-20 Bahntangentenwinkel, 10-60
ASPLINE, 5-3 BAUTO, 5-4
Asynchrones Pendeln, 11-1 BEARBART, 14-3
ATAN2, 1-20 Bedingt unterbrechbare Programmabschnitte, 9-44
aufgelöster Kinematik, 8-37, 8-41 Befehlselemente, 10-3
Aufrunden, 1-75 Bestimmte Programmstelle für SERUPRO
Aufspannachse/Spindel, 13-42 verhindern, 9-49
Ausfeuerungshub, 11-2 Bewegungsendekriterium
Auslastungsauswertung, 10-61 programmierbar, 5-38
Ausschaltposition, 13-22 Bewegungsführung, 13-49
Auswertefunktion, 10-32 Bewegungssynchronaktionen
Automatische Wegaufteilung, 12-4 Aktionen, 10-7
Automatischer Unterbrechungszeiger, 9-51 Programmierung, 10-2
Automatisches "GET", 1-62 Übersicht, 10-23
AV, 13-19 BFRAME, 6-3
AX, 13-1, 13-2 Birweise Logische Operatoren, 1-23
AXCTSWE, 13-43 BLOCK, 2-23
AXCTSWED, 13-43 BNAT, 5-4
Axiale Leitwertkopplung, 9-29 BOOL, 1-4
Axialer Vorschub, 10-48 BOUND, 1-20, 1-27
AXIS, 1-4 BSPLINE, 5-3
AXNAME, 13-1, 13-2 BTAN, 5-4
AXSTRING, 1-31, 13-1, 13-2
AXTOCHAN, 1-63
AXTOSPI, 13-1, 13-2 C
C2, 7-16
C3, 7-16
B
C4, 7-16, 7-22
B_AND, 1-23 C5, 7-16, 7-22
B_NOT, 1-23 CAC, 5-1
B_OR, 1-23 CACN, 5-1
B_XOR, 1-23 CACP, 5-1
B2, 7-16 CALCDAT, 14-2, 14-15, 14-16
B3, 7-16 CALL, 2-22, 2-23
B4, 7-16, 7-22 Call by Value-Parameter für Technologiezyklen,
B5, 7-16, 7-22 10-66
Bahnbezug CALLPATH, 2-26, 3-5
Bahnachsen, 5-25 CANCEL, 10-2
Bahnvorschub, 5-25 CASE, 1-39
Einstellbarer Bahnbezug, 5-23 CASE-Anweisung, 1-39
FGROUP-Achsen, 5-23 CDC, 5-1
G-Code-Gruppe, 5-23 CFINE, 6-15
Gewindesätze, 5-25 CHANDATA, 3-7
Kreisinterpolation und Linearinterpolation, 5-25 CHAR, 1-4
Kurvenparameter, 5-23 CHECKSUM, 1-74
Randbedingungen, 5-25 CHKDNO, 8-34
CIC, 5-1

Arbeitsvorbereitung
Index-2 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Index

CLEARM, 1-47, 10-57 CTABTEP, 9-22, 9-23


CLRINT, 1-51 CTABTEV, 9-22, 9-23
CMIRROR, 1-20, 6-8 CTABTMAX, 9-23
COARSE, 13-15, 13-19, 13-22 CTABTMIN, 9-23
COARSEA, 5-39 CTABTSP, 9-22, 9-23
Codierte Positionen anfahren, 5-1 CTABTSV, 9-22, 9-23
COMCAD, 5-13 CTABUNLOCK, 9-19
COMPCURV, 5-13 CTRANS, 1-20, 6-8, 6-15
COMPLETE, 3-6, 3-7 CUT3DC, 8-15, 8-20
COMPOF, 5-13, 5-23 CUT3DCC, 8-24
COMPON, 5-13, 5-23, 7-44, 9-41 CUT3DCCD, 8-24
CONTDCON, 14-2, 14-9 CUT3DF, 8-15
CONTPRON, 14-2, 14-3, 14-13, 14-15 CUT3DFF, 8-15
COS, 1-20 CUT3DFS, 8-15
COUPDEF, 13-14, 13-18 CUTCONOF, 8-12
COUPDEL, 13-14, 13-18 CUTCONON, 8-12
COUPOF, 13-14, 13-22
COUPOFS, 13-14, 13-22
COUPON, 13-14, 13-20 D
COUPONC, 13-14
D, 7-54
COUPRES, 13-14, 13-23
DEF, 1-4, 1-9, 3-8, 10-63
[Link], Anwenderzyklen, 2-39
DEFAULT, 1-39
CP, 7-67
Default-Achsbezeichner
CPROT, 4-4
Undefinierte Achsvariablen vom Typ AXIS
CPROTDEF, 4-2, 4-3
initialisieren, 10-13
CROT, 1-20, 6-8
DEFINE, 2-43, 10-63
CSCALE, 1-20, 6-8
DELAYFSTOF, 9-44
CSPLINE, 5-3
DELAYFSTON, 9-44
CTAB, 9-26, 9-27, 9-28
DELDTG, 5-31, 10-28
CTABDEF, 9-13, 9-15
DELETE, 1-67
CTABDEL, 9-13, 9-17, 9-19
DELT, 8-4
CTABEND, 9-13, 9-15
DISABLE, 1-51
CTABEXISTS, 9-19
DISPLOF, 2-37
CTABFNO, 9-19
DISPR, 9-52
CTABFPOL, 9-20
DIV, 1-20
CTABFSEG, 9-20
D-Nummern
CTABID, 9-19
frei vergeben, 8-33
CTABINV, 9-26, 9-27, 9-28
prüfen, 8-34
CTABISLOCK, 9-19
T-Nummer ermitteln, 8-35
CTABLOCK, 9-19
umbenennen, 8-34
CTABMAX, 9-22
DO, 10-3, 10-7, 11-7
CTABMEMTYP, 9-19
Drehachsen
CTABMIN, 9-22
Abstandsvektoren l1, l2, 8-37
CTABMPOL, 9-20
Richtungsvektoren V1, V2, 8-37
CTABMSEG, 9-20
Drehungen des Orientierungsvektors programmieren
CTABNOMEM, 9-19
über THETA, 7-35
CTABPERIOD, 9-20
Drehwinkel, 7-36
CTABPOLID, 9-20
Dreistellige M-/G-Funktion, 2-43
CTABSEG, 9-20
DRF, 6-16
CTABSEGID, 9-20
CTABSEV, 9-26, 9-27
CTABSSV, 9-26, 9-27

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Index-3
Index

DRF-Verschiebung, 6-16 F
DUPLO_NR, 8-4
FA, 11-4, 13-21
DV, 13-19
Fachse, 9-30
DZERO, 8-36
FAchse, 9-3, 9-8, 9-13, 9-22, 9-27
Fahren auf Festanschlag FXS und
FOCON/FOCOF, 10-58
E FALSE, 1-2
EAUTO, 5-4 FCTDEF, 8-8, 10-30
Eckenverzögerung an allen Ecken, 5-38 FCUB, 9-36
Eckenverzögerung an Innenecken, 5-38 FEHLER, 14-2
EG Fehlerrückmeldung, 14-2
Elektronisches Getriebe, 13-24 Feinverschiebung, 6-14
EGDEF, 13-25 Feldindex, 1-10
EGDEL, 13-29 FENDNORM, 5-38
EGOFC, 13-29 FGROUP, 5-23
EGOFS, 13-29 FIFO-Variable, 10-19
EGON, 13-25 FILEDATE, 1-72
EGONSYN, 13-25 FILEINFO, 1-72
EGONSYNE, 13-25 Fileinformationen FILExxxx
Ein in ISO-Sprache programmiertes Programm mit vom NCK-Anwenderspeicher lesen, 1-72
ISOCALL indirekt aufrufen, 2-24 FILESIZE, 1-72
Einlesesperre, 10-27 FILESTAT, 1-72
Einzelachsbewegung, 12-9 FILETIME, 1-72
Einzelsatzunterdrückung, 2-32 FINE, 13-15, 13-19
Einzelzeichen selektieren, 1-37 FINEA, 5-39
Elektronisches Getriebe, 13-24 FLIN, 9-36
ELSE, 1-42 FMA, 15-16
ENABLE, 1-51 FNORM, 9-36
ENAT, 5-4 Folgeachse, 9-30
ENDFOR, 1-42 FOR, 1-42, 1-44
ENDIF, 1-42 FPO, 9-36
ENDLOOP, 1-42 FPR, 13-30
Endpos, 11-6 Frame
ENDPROC, 10-36 aufrufen, 6-11
ENDWHILE, 1-42 Frame-Kettung, 6-28
Endwinkel, 7-36 FRAME, 1-4
ERG, 14-16 Frame-Berechnung
Erster Basisframe im Kanal, 6-24 MEAFRAME, 6-19
Erweiterte Messfunktion, 5-28, 7-66 Framekompnente
Erweitertes Stillsetzen und Rückziehen, 13-30 MI, 6-11
ETAN, 5-4 Framekomponente
Euler-Winkel, 8-28 FI, 6-11
EVERY, 10-6 SC, 6-11
EXECSTRING, 1-17 TR, 6-11
EXECTAB, 14-2, 14-15 Framekomponenten, 6-10
EXECUTE, 4-2, 4-3, 14-2 FramekomponenteRT, 6-11
EXP, 1-20 Frames
EXTCALL, 2-28 Frameketten, 6-13
EXTERN, 2-10 zuweisen, 6-13
Externe Nullpunktverschiebung, 6-17

Arbeitsvorbereitung
Index-4 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Index

Framevariable, 6-1 Grobverschiebung, 6-14


Aufruf von Koordinatentransformationen, 6-1 Grundstellung der Werkzeugorientierung
Definition neuer Frames, 6-13 ORIRESET, 7-14
Vordefinierte Framevariable, 6-3, 6-12 GUD, 3-3, 3-6, 3-10, 3-11
Werte zuweisen, 6-8 automatische Aktivierung, 3-13
Framvariable -Definitionsdatei erstmalig aktivieren, 3-13
Nullpunktverschiebungen G54 bis G599, 6-7 -und Makro-Definitionen entladen, 3-13
Zuordnungen zu den G-Befehlen G54 bis G599, -und Makro-Definitionen laden, 3-14
6-7 GUD-Variable für Synchronaktionen
Fräser Anwenderdefinierte GUD-Variable, 10-12
-hilfspunkt (FH), 8-20
-spitze (FS), 8-20
FRC, 15-15, 15-17 H
FRCM, 15-17 Haltesatz, 9-50
FROM, 10-6 Haltezeit, 11-2
FS, 13-15 Hilfsfunktionen, 10-26, 12-4
FTOCOF, 8-8 Hinterschnitt, 14-3
FTOCON, 8-8 Hinterschnittelemente, 14-8
F-Wort-Polynom, 5-23 Hubauslösung, 12-3

G I
I1,I2, 8-37
G[<Gruppen-Index>], 1-14
ICYCOF, 10-67
G05, 7-65
ICYCON, 10-67
G07, 7-65
ID, 10-2
G1, 11-3
Identifikationsnummer, 10-4
G25,G26, 9-5
IDS, 10-2
G4, 11-2
IF, 1-42
G450, 8-22
IF-ELSE-ENDIF, 1-43
G451, 8-22
IFRAME, 6-3
G62, 5-38
II1,II2, 11-9
G621, 5-38
INDEX, 1-35
G64, 2-2
Indirekte G-Code-Programmierung, 1-14
G643, 5-24
Indirekte Pogrammierung, 1-14
G-Code, 5-23
Indirekter Unterprogrammaufruf, 1-16
Generatorbetrieb, 13-38
INIT, 1-46
GEOAX, 7-77
Initialisierung von Feld-Variablen, 10-56
Gesamt-Basisframe, 6-26
Initialisierungsprogramm, 3-6
Geschwindigkeitskopplung, 13-15
AnwenderdatenGUDdefinieren, 3-8
GET, 1-59
Initialisierungsprogramm erzeugen, 3-6
GETACTTD, 8-35
Initialisierungsprogramm laden, 3-8
GETD, 1-59
Initialisierungsprogramm sichern, 3-7
GETDNO, 8-34
INT, 1-4
GETSELT, 8-4
Integer/Real-Variable, 1-14
GETT, 8-4
Interpolation des Drehvektors, 7-35, 7-41
GEWINDE, 14-8, 14-12
Interpolationstakt, 13-41
Glättung des Orientierungsverlaufs, 7-40, 7-43
Interruptroutine, 1-50
GOTO, 1-39
Programmierbare Verfahrrichtung, 1-51
GOTOB, 1-39
Rangfolge festlegen, 1-54
GOTOC, 1-39
Schnellabheben von der Kontur, 1-55
GOTOF, 1-39
Unterbrechungsposition speichern, 1-53
grad, 9-23, 9-27

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Index-5
Index

Interruptroutine als Unterprogramm erstellen, 1-52 Koppel, 9-3, 9-9


Interruptroutine aus-/wieder einschalten, 1-54 Koppelart
Interruptroutine zuordnen und starten, 1-53 AV, 13-15
INTERSEC, 14-2, 14-13 DV, 13-15
IPOBRKA, 5-39 VV, 13-15
IPOENDA, 5-39 Kopplungen löschen, 13-22
IPOSTOP, 13-15, 13-19, 13-21 Kopplungsart, 13-15
IPTRLOCK, 9-49 Kopplungsstatus, 9-35
IPTRUNLOCK, 9-49 Kreisdaten berechnen, 14-15
ISAXIS, 13-1, 13-2 KS, 9-3
ISCOORD, 14-13 KTAB, 14-3, 14-5, 14-9, 14-15
ISD, 8-15, 8-20 Kurventabellen, 9-12, 9-17
ISD (Insertion Depth), 8-14 Lesen in Synchronaktionen, 9-26
ISFILE, 1-71 Nicht periodische Kurventabelle, 9-24
ISNUMBER, 1-32 Periodische Kurventabelle, 9-25
ISOCALL, 2-24
ISPOINT, 14-13
ISPOINTS, 14-2 L
Istwertkopplung, 13-15
L..., 2-10
Istwertsetzen, 10-49
Lachse, 9-30
ISVAR ( ), 13-7
LAchse, 9-3, 9-8, 9-13, 9-22, 9-27
Lagesynchronität, 13-12
Längsdrehen
J Außenbearbeitung, 14-3
JERKLIM, 13-49 Innenbearbeitung, 14-3
Laserleistungssteuerung, 10-31
LEAD, 7-16, 8-28
K LEADOF, 9-30
LEADON, 9-30
Kanalspezifische Frames, 6-23
Leitachse, 9-30
Kartesisches PTP-Fahren, 7-6
Leitwertkopplung, 10-53
Kinematiktyp, 8-41
aus statische Synchronaktionen, 9-31
Kinematiktyp M, 8-41
Ist- und Sollwertkopplung, 9-30, 9-33
Kinematiktyp P, 8-41
Synchronisation Leit- und Folgeachse, 9-32
Kinematiktyp T, 8-41
Leitwertsimulation, 9-34
Kinematische Transformation TRANSMIT, TRACYL
LIFTFAST, 1-51
und TRAANG, 7-5
Linearinterpolation, 5-25
Kommandoachsen, 10-40
Linkachse, 13-43
Kompensationskennlinien einlernen, 13-10
Link-Kommunikation, 13-40
Kompressor, 5-13, 5-25
Linkmodul, 13-41
Kompressor für Orientierungen
Linkvariable
COMPON, COMPCURV, 5-16
globale, 13-41
Kontrollstrukturen, 1-41
LLIMIT, 10-30
Laufzeitverhalten, 1-43
LN, 1-20
Randbedingungen, 1-43
LOCK, 10-2, 10-70
Konturaufbereitung, 14-3, 14-9
Logische Operatoren, 1-22
Hinterschnittelemente, 14-8
LOOP, 1-42
Konturelement, 14-5
LOOP-ENDLOOP, 1-44
Konturelement verfahren, 14-15
Lose, 13-10
Konturelemente, Schnittpunkt, 14-13
LS, 13-15
Konturtabelle, 14-3, 14-9
Konvertierungsroutinen, 10-10

Arbeitsvorbereitung
Index-6 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Index

M MMC, 13-48
MOD, 1-20
M, 8-39
MODE
M17, 2-5
Bearbeitungsart, 14-13
MAC
Bearbeitungsrichtung, 14-3
automatische Aktivierung, 3-13
Modus, 11-6
Makrotechnik, 2-42, 12-2
Modus, 11-6
Maschinen-
MOV, 10-43
Zustand, globalerWerkstückaufspannung, 13-41
MPF, 3-3
MASLDEF, 13-52
MU, 7-64
MASLDEL, 13-52
MZ, 7-64
MASLOF, 13-52
MASLOFS, 13-52
MASLON, 13-52
MATCH, 1-35
N
Max-/min-Anzeiger, 14-5 n, 9-27
MAXVAL, 1-20, 1-27 Framenummer, 6-11
M-Befehle, 12-2 Nummer der Kurventabelle, 9-13, 9-20
MCALL, 2-20 Nummer der Kurventabellen, 9-23
MEAC, 5-29, 5-31 NC-geführte Reaktionen, 13-36
MEAFRAME, 6-19 NCU-
MEAFRAME, 6-19 Link, 13-40
MEAFRAME, 6-22 NCU-globale Basisframes, 6-23
MEAS, 5-26 NCU-globale Einstellbare Frames, 6-23
MEASA, 5-29 NCU-NCU-Kommunikation, 13-40
MEAW, 5-26 Nennerpolynom, 5-21
MEAWA, 5-29, 10-55 NEWCONF, 1-64
Merkervariable, 10-14 NEWT, 8-4
Messauftrag Nibbeln, 12-1, 12-4
mit 2 Messsystemen, 5-35 Nibbeln ein, 12-2
Status bei MEASA, MEAWA, 5-35 NN, 14-3
Messen, 10-55 NOC, 13-15, 13-19
Betriebsmodus, 5-32 NOT, 1-23
Erkannte Fehlerprogrammierungen, 5-36 NPROT, 4-5
Kontinuierliches Messen MEAC, 5-36 NPROTDEF, 4-2, 4-3
Restweglöschen MEASA, MEAWA, 5-33 Nullpunktverschiebung
Trigger-Ereignisse, 5-32 Externe Nullpunktverschiebung, 6-17
Messen mit schaltendem Taster PRESETON, 6-18
Messsätze programmieren, 5-26 Verschiebung mit dem Handrad, 6-16
Zustandsvariable, 5-27 NUMBER, 1-32
Messergebnisse für MEASA, MEAWA, 5-34
Messtasterstatus, 5-35
Messwerteaufnahme, 5-27 O
M-Funktion
OEM-Adressen, 5-37
dreistellig, 2-43
OEM-Funktionen, 5-37
MINDEX, 1-35
OEMIPO1/2, 5-37
Minimalposition/Maximalposition der Drehachse, 8-39
OF, 1-40
MINVAL, 1-20, 1-27
OFFN, 7-51, 7-54
MIRROR, 6-4
Offset der Drehachsen, 8-39
Mitschleppen, 9-7, 10-51
Offset Kontur-normal OFFN, 7-59
Koppelfaktor, 9-10
Online-Werkzeugkorrektur, 10-37
Mittschleppachsen, 9-10
Online-Werkzeuglängenkorrektur, 7-47, 10-39
Mitschleppverband, 9-8

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Index-7
Index

OR, 1-23 OSD, 8-28


ORIAXES, 7-41 OSE, 11-2, 11-5
ORIAXES, 7-25 OSNSC, 11-2, 11-6
ORIC, 8-28 OSOF, 8-28
ORICONCCW, 7-28, 7-42 OSP, 11-4
ORICONCW, 7-28, 7-42 OSP1, 11-1, 11-6
ORICONIO, 7-28, 7-42 OSP2, 11-1, 11-6
ORICONTO, 7-28, 7-42 OSS, 8-28
ORICURVE, 7-31, 7-42 OSSE, 8-28
ORID, 8-28 OST, 8-29, 11-2
Orientierbare Werkzeugtäger OST1, 11-1, 11-6
Parameter der Drehachsen, 8-39 OST2, 11-1, 11-6
Parameter für den Anwender, 8-39 Override, 11-12
Systemvariable, 8-37 aktueller, 10-60
Orientierbare Werkzeugträger resultierender, 10-61
Nummer des Werkzeugträgers, 8-39 OVRA, 13-21
Orientierungsachsen, 7-15, 7-22, 7-25, 7-27
Orientierungsinterpolation, 7-28, 7-42
Orientierungsprogrammierung, 7-26, 7-41 P
Orientierungstransformation TRAORI
P, 2-18
Generische 5/6-Achs Transformation, 7-5
Parametrierbarer Unterprogrammrücksprung, 2-14
Maschinenkinematik, 7-4
PCALL, 2-25
Orientierungsprogrammieung, 7-13
PDELAYOF, 12-2
Varianten der Orientierungsprogrammieung, 7-14
PDELAYON, 12-2
Verfahbewegungen und
Pendelachse, 11-3
Orientierungsbewegungen, 7-3
Pendelbewegung
ORIEULER, 7-41
Umkehrbereich, 11-9
ORIEULER, 7-26
Zustellung unterdrücken, 11-9
ORIMKS, 7-23, 8-28
Pendelbwegung
ORIPATH, 7-40, 15-29
Umkehrpunkt, 11-9
ORIPATHS, 7-40, 7-43, 15-29
Zustellung im Umkehrpunkt, 11-11
ORIPLANE, 7-28, 7-42
Pendeln
ORIRESET(A, B, C), 7-14
Asynchrones Pendeln, 11-1
ORIROTA, 7-36
Bewegungsablauf definieren, 11-4
ORIROTC, 7-36, 7-41
Pendeln ein-, ausschalten, 11-1
ORIROTR, 7-36
Synchrones Pendeln, 11-6
ORIROTT, 7-36
Teilzustellung, 11-9
ORIRPY, 7-41
über Synchronaktion steuern, 11-6
ORIRPY, 7-26
Pendelumkehrpunkte, 11-4
ORIRPY2, 7-26
Pfadangabe
ORIS, 8-28
absolut, 1-45
ORIVECT, 7-41
relativ, 1-45, 1-46
ORIVECT, 7-25
PFRAME, 6-4
ORIVIRT1, 7-41
PHI, 7-34
ORIVIRT1, 7-26
PKT, 14-16
ORIVIRT2, 7-41
PL, 5-5, 5-17
ORIVIRT2, 7-26
Plandrehen
ORIWKS, 7-23, 8-28
Außenbearbeitung, 14-3
OS, 11-1, 11-2
Innenbearbeitung, 14-3
OSC, 8-28
PO, 5-17
OSCILL, 11-6, 11-9
PO[PHI], 7-34, 7-40
OSCTRL, 11-1, 11-4
PO[PSI], 7-34

Arbeitsvorbereitung
Index-8 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Index

PO[THT], 7-34, 7-40


PO[XH], 7-34 Werkstückverzeichnis anlegen, 3-4
PO[YH], 7-34 Werkstückverzeichnisse, 3-3
PO[ZH], 7-34 Programmteilwiederholung mit indirekter
Polar-Transformation, 7-5 Programmierung CALL, 2-22
POLF, 13-35 Programmwiederholung, 2-18
POLFA, 13-35 Projektierbare Parameterbereiche, 10-12
POLFMASK, 13-35 PSFS, 13-15
POLFMLIN, 13-35 PSI, 7-34
POLY, 5-17 PTP, 7-67, 7-71
Polynom PTP bei TRANSMIT, 7-70
-Interpolation, 5-25 PTPG0, 7-71
POLYNOM, 14-8, 14-12 PUNCHACC, 12-2
Polynomdefinition, 10-30 PUTFTOC, 8-8
Polynom-Interpolation, 5-17 PUTFTOCF, 8-8
Nennerpolynom, 5-21 PW, 5-5
Polynomkoeffizient, 5-18
Polynoms bis zum maximal 5. Grades, 9-15
POLYPATH, 5-17 Q
PON, 12-8
[Link], 13-11
PONS, 12-2
[Link], 13-11
POS, 10-41
QECLRNOF, 13-11
POSFS, 13-20
QECLRNON, 13-11
POSFS POSLS, 13-15
[Link], 13-11
Positionierbewegungen, 10-40
QFK, 13-10
POSP, 11-6
Quadrantenfehlerkompensation
POSRANGE, 10-42
Lernvorgang aktivieren, 13-10
POT, 1-20
Lernvorgang ausschalten, 13-10
PREPRO, 2-38
Nachlernen, 13-11
PRESETON, 6-18, 10-50
Preset-Verschiebung, 6-18
PRIO, 1-51
PROC, 2-5
R
Programmablauf mit Vorlaufspeicher, 9-42 Randbedingungen bei Transformationen, 7-74
programmierbaren Unterbrechungszeiger, 9-49 RDISABLE, 10-27
Programmierbarer Suchpfad bei READ, 1-69
Unterprogrammaufrufen, 2-26 REAL, 1-4
Programmierbefehle REAL-Variable als Zählervariable in einer FOR-
Liste, 15-1, 15-42 Schleife, 1-43
Programmkoordinierung Rechenfunktion
Anweisungen zur Programmkoordinierung, 1-45 *, 1-20
Beispiel, 1-48 /, 1-20
Kanalnamen, 1-47 +, 1-20
Kanalnummern, 1-47 Rechenfunktionen, 1-20
Programmlaufzeit, 13-45 Rechenleistung, 13-40
Programmspeicher, 3-1 Rechenparameter, 1-1
Dateitypen, 3-3 REDEF, 3-15, 3-17
Standard-Verzeichnisse, 3-2 Refpos, 10-43
Suchpfad bei Unterprogrammaufruf, 3-5 Reibung, 13-10
Werkstück anwählen, 3-4 RELEASE, 1-59
Werkstück-Hauptverzeichnis, 3-3 REP, 1-8, 10-56
REPEAT, 1-42, 1-44

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Index-9
Index

REPOS, 1-50, 1-52 Schutzstufen


REPOSA, 9-52 Änderung bei Maschinendaten und Settingdaten,
REPOSH, 9-52 3-14
REPOSHA, 9-52 Attribute von Sprachelementen ändern, 3-18
REPOSL, 1-52, 9-52 Für Anwenderdaten, 3-11
REPOSQ, 9-52 Systemvariable beschreiben und NC-
REPOSQA, 9-52 Sprachelement ausführen, 3-16
RESET, 10-70 SCPARA, 5-42
Restweglöschen, 10-28, 11-2 SD, 5-5
Restweglöschen mit Vorbereitung, 10-28 SEFORM, 3-24
RET, 2-2, 2-5, 2-14, 2-32 Seitwärtswinkel, 7-16
RET(<Satznummer/Label>, < >, < >), 2-14 Servo-Parametersatz
RINDEX, 1-35 programmierbar, 5-42
RMB, 9-52 SET, 1-8, 10-56
RME, 9-52 SETAL, 10-57
RMI, 9-52 SETDNO, 8-34
ROUND, 1-20 SETINT, 1-51
ROUNDUP, 1-75 SETM, 1-46, 10-57
R-Parameter, 10-16 SETPIECE, 8-4
RPY, 8-28 Settingdaten, 11-2
RPY-Winkel, 8-28 SIN, 1-20
Rückziehen, 13-36 Singuläre Stellen, 7-24
Smax, 12-2
Smin, 12-2
S Sollwertkopplung, 13-15
SON, 12-2, 12-7, 12-8
S1, S2, 13-18, 13-23
SONS, 12-2
Satzanzeige, 2-24, 2-36
SPATH, 5-23
SAVE, 1-53, 2-4
Speicher
SBL1, 2-36
Arbeitsspeicher, 3-6
SBL2, 2-36
Programmspeicher, 3-1
SBL3, 2-36
SPF, 3-3
SBLOF, 2-32
SPI, 13-1, 13-2, 13-21
SBLON, 2-32
SPIF1, 15-36
Schlüsselwort, 10-5
SPIF2, 15-36
Schneidennummer, 8-33
Spindelbewegungen, 10-50
Schnittpunkt von Konturelementen, 14-2
Spindeltausch
Schräge Achse programmieren
GET, 1-59
G05, G07, 7-64
RELEASE, 1-59
Schräge Achse, TRAANG, 7-5, 7-61
SPLINE, 14-8, 14-12
Schutzbereiche
Spline-Interpolation, 5-3, 5-25
aktivieren, deaktivieren, 4-4
A-Spline, 5-7
Aktivierungsstatus, 4-7
B-Spline, 5-8
angewählte Arbeitsebene, 4-3
C-Spline, 5-9
definieren, 4-2
Kompressor, 5-11
Festlegungen an der Maschine, 4-1
SPLINEPATH, 5-11
Kanalspezifische Schutzbereiche, 4-2
Spline-Verbund, 5-11
Konturbeschreibung von Schutzbereichen, 4-3
SPN, 12-4
Maschinenspezifische Schutzbereiche, 4-2
SPOF, 12-2
Mehrfache Aktivierung, 4-7
SPOS, 13-20
Status nach dem Hochlaufen, 4-7
SPP, 12-4
Verschiebung, 4-7
zulässige Konturelemente, 4-3

Arbeitsvorbereitung
Index-10 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Index

Sprunganweisung Repositionierung, 10-74


CASE-Anweisung, 1-39 Reset, 10-73
SQRT, 1-20 Satzsuchlauf, 10-74
SR, 15-37 Vorlaufvariablen, 10-9
SRA, 15-37 Wertelisten mit SET und REP, 10-56
ST, 15-37 Synchronaktions-Parameter, 10-15
STA, 15-37 Synchrones Pendeln
Stanzen, 12-1, 12-4 Anhalten im Umkehrpunkt, 11-11
Stanzen ein, 12-2 Auswertung, IPO-Takt, 11-12
Stanzen mit Verzögerung aus, 12-2 Nächste Teilzustellung, 11-12
Stanzen mit Verzögerung ein, 12-2 Synchronaktionen, 11-9
Stanzen, Nibbeln aus, 12-2 Zuordnung von Pendel- und Zustellachse, 11-9
START, 1-46 Zustellbewegung, 11-10
STARTFIFO, 9-42 Zustellung im Umkehrbereich, 11-10
STAT, 7-67, 7-71 Zustellungen festlegen, 11-9
Stations-/Lagewechsel, 13-42 Synchronlauf
Stillsetzen, 13-38 fein, 13-15
Stillsetzen und Rückziehen grob, 13-15
Erweitertes, 13-30 sollwertseitiger Synchronlauf, 13-15
STOPFIFO, 9-42 Synchronspindel, 13-12
STOPRE, 5-26, 5-29, 5-30, 9-42, 11-3 Kopplung löschen, 13-22
STRING, 1-4 -paar, 13-12
STRINGFELD, 1-30 -paar festlegen, 13-18
STRINGIS, 13-3 Satzwechselverhalten, 13-19
Basisinformationen, 13-4 Systemvariable, 1-2
Detailinformationen, 13-5 Übersetzungsverhältins kÜ, 13-18
NC-Adressen, 13-5 SYNFCT, 10-32
NC-Sprachumfang, 13-4 Systemvariable, 1-1, 13-41
Prüfungsumfang, 13-3 globale, 13-41
Rückgabewerte, 13-4 Systemvariablen, 10-9
spezielle Prüfungen, 13-3
Stringlänge, 1-35
Stringoperationen, 1-30 T
STRINGVAR, 1-30
TABNAME, 14-3, 14-9, 14-15
STRLEN, 1-35
TABNAME1, 14-13
Strukturierungsanweisung für den Stepeditor, 3-24
TABNAME2, 14-13
SUBSTR, 1-37
TAN, 1-20
Suchpfad beim Unterprogrammruf programmieren,
TANG, 9-3, 9-5
3-5
TANGDEL, 9-3
Suchunfähige Bereiche erfassen und suchen, 9-50
Tangentiale Nachführung optimiert, 9-3
SW-Endschalter, 10-48
Tangentialsteuerung
Synchronaktion, 13-41
Folge- und Leitachse definieren, 9-5
Synchronaktion löschen, 10-71
Grenzwinkel durch Arbeitsfeldbegrenzung, 9-5
Synchronaktionen
Tangentialsteuerung ausschalten, 9-3
ASUP, 10-74
Tangentialsteuerung einschalten, TANGON, 9-3
Betriebsartenwechsel, 10-72
TANGOF, 9-3
CANCEL, 10-75
TANGON, 9-3
Hauptlaufvariable, 10-9
TE, 5-29
NC-Stopp, 10-73
Technologiezyklen
Power On, 10-72
Kaskadierungen, 10-68
Programmende, 10-73
Randbedingungen wichtiger Ereignisse, 10-72

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Index-11
Index

Technologiezyklen, 10-63 Programmierung in RPY-Winkeln, 7-19


Default-Parameter mit Initialwerte, 10-67 Programmierung über LEAD/TILT, 7-15
Zyklische Abarbeitung steuern ICYCOF, 10-67 Transformationen
Technologiezyklen Drei-, Vier- und Fünf-Achs-Transformation
in satzweisen Synchronaktionen, 10-69 TRAORI, 7-2
Technologiezyklen Kinematikunabhängige Grundstellung der
IF-Kotrollstrukturen, 10-69 Werkzeugorientierung, 7-2
Technologiezyklen Kinematische Transformationen, 7-2
Bedingte Verzweigungen, 10-69 Orientierungstransformation, 7-2
Technologiezyklen verkettete, 7-75
Sprunganweisungen GOTOP, GOTOF, Verkettete Transformationen, 7-3
GOTOB, 10-69 Transformationsarten
Technologiezyklen Allgemeine Funktion, 7-1
Unbedingte Sprünge, 10-70 TRANSMIT, 7-5, 7-49, 7-51, 7-52, 7-71
Teileprogramm, 13-41, 13-43 TRAORI, 7-9, 7-12
Teilestückzahl, feste, 1-42 TRUE, 1-2
Teillänge, 11-6 TRUNC, 1-20, 1-25
Teillänge, 11-6 TU, 7-67, 7-71
Teilstrecke, 12-4 Typkonvertierung, 1-31
Teilstrecken, 12-4
Teilstring auswählen, 1-37
THETA, 7-34, 7-36 U
TILT, 7-16, 8-28
U1,U2, 11-9
Timer-Variable, 10-18
Überschreiben von Kurventabellen, 9-21
TLIFT, 9-3
Übersetzungsverhältnis, 13-18
TOFFOF, 7-47, 10-39
Übersicht
TOFFON, 7-47, 10-39
im Kanal wirksame Frames, 6-25
TOLOWER, 1-34
[Link], Anwenderzyklen, 2-40
Torsion, 13-10
ULIMIT, 10-30
TOUPPER, 1-34
Umfangsfräsen, 8-15
TRAANG, 7-5, 7-61
Umfangsfräsen mit Begrenzungsflächen, 8-24
TRACON, 7-76
Umkehr
TRACYL, 7-5, 7-53, 7-54, 7-59
-punkt, 11-6
TRAFOOF, 7-51, 7-54, 7-62, 7-75, 7-76
Umschaltbare Geometrieachsen, 7-77
TRAILOF, 9-8
UNLOCK, 10-2, 10-70
TRAILON, 9-8
Unterprogrammaufruf
Transformation abwählen
indierekt, 1-16
TRAFOOF, 7-75
Unterprogrammaufruf mit Pfadangabe und
Transformation mit schwenkbarer Linearachse, 7-11
Parametern, 2-25
Transformation Schräge Achse, 7-61
Unterprogrammaufruf, Suchpfad, 3-5
Transformation TRACYL, 7-54
Unterprogramme, 2-1
Transformation TRANSMIT, 7-51
Indirekter Unterprogrammaufruf, 2-22
Transformation TRAORI, 7-12
Modaler Unterprogrammaufruf, 2-20
Transformation, 5 Achs
Programmwiederholung, 2-18
Programmierung der Werkzeugorientierung mit
SAVE-Mechanismus, 2-4
LEAD und TILT, 7-20
Schachtelung, 2-3
Programmierung des Richtungsvektors, 7-19
Unterprogramm mit Parameterübergabe, 2-9
Transformation, Drei-, Vier-Achstransformationen, 7-12
Unterprogrammaufruf, 2-9
Transformation, Fünf-Achs
Unterprogramme mit Parameterübergabe
Programmierung der Bahnkrümmung in
Parameterübergabe zwischen Haupt- und
Flächennormalenvektoren, 7-21
Unterprogramm, 2-8
Programmierung in Eulerwinkeln, 7-18

Arbeitsvorbereitung
Index-12 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0
Index

Unterprogrammen mit Parameterübergabe Wartemarken, 10-57


Felddefinition, 2-8 Wegabhängige Beschleunigung PUNCHACC, 12-2,
UNTIL, 1-42, 1-44 12-3
UPATH, 5-23 Wegaufteilung, 12-8
Wegaufteilung bei Bahnachsen, 12-7
Werkstück-Hauptverzeichnis, 3-3
V Werkstückverzeichnisse, 3-3
Werkstückzähler, 13-46
V1,V2, 8-37
Werkzeugkorrektur
VAR, 2-5
3D-Stirnfräsen, 8-16
Variable, 1-1
Korrektur auf der Bahn, Bahnkrümmung und
anwenderdefiniert, 1-1
Eintauchtiefe, 8-19
Anwenderdefinierte Variable, 1-3
Korrekturspeicher, 8-1
Indirekte G-Code-Programmierung, 1-14
Online, 8-7
Indirekte Programmierung, 1-14
Stirnfräsen, 8-14
Rechenvariable, 1-2
Werkzeugorientierung, 8-27
Systemvariable, 1-2
Werkzeugradienkorrektur mit Normwerkzeugen
Typenkonvertierung, 1-29
Kontur an der Bearbeitungsfläche, 8-26
Variablenarten, 1-1
Werkzeugradiuskorrektur
Zuweisungen, 1-18
3D-Umfangsfräsen mit Begrenzungsflächen, 8-25
Variablendefinition, 1-3, 10-12
3D-Umfangsfräsen mit CUT3DC, 8-21
Variablentyp, 1-4
3D-Umfangsfräsen mit realen Werkzeugen, 8-23
VARIB, 14-16
3D-Umfangsfräsen ohne Begrenzungsflächen, 8-23
VELOLIM, 13-50
Eckenverzögerung, 5-37
Verdrehwinkel 1, 2, 8-37
Werkzeugradiuskorrektur, 3D, 8-14
Vergleichs- und logische Operatoren, 1-22
Eintauchtiefe ISD, 8-20
Vergleichsoperatoren
Innenecken/Außenecken, 8-21
<, 1-23
Programmierung der Werkzeugorientierung, 8-28
<=, 1-23
Schnittpunkt der Äquidistanten, 8-22
<>, 1-23
Übergangskreis, 8-22
>, 1-23
Umfangsfräsen, 8-16
>=, 1-23
Verhalten an Außenecken, 8-31
Vergleichsoperatoren, 1-23
Werkzeugorientierung, 8-27
==, 1-23
Werkzeugträger
Verhalten an den Rändern der Kurventabelle, 9-22
Daten löschen/ändern/lesen, 8-41
Verkettung von Strings, 1-33
-kinematik, 8-37
vernetzte NCUs, 13-40
Werkzeugtypen
vordefinierte GUD-Variablenname, 10-12
Fräserformen, Werkzeugdaten, 8-17
Voreilwinkel, 7-16
Werkzeugüberwachung, schleifspezifisch, 8-10
Vorlaufspeicher, 9-42
Werkzeugverwaltung, 8-5
Vorlaufstopp, 10-28
Wertebereich, 1-1
Vorschub
WHEN, 10-5
axialer, 10-48
WHEN-DO, 11-7, 11-10
WHENEVER, 10-5
WHENEVER-DO, 11-7, 11-10
W WHILE, 1-42, 1-44
WAIT, 1-46 Wiederanfahren an die Kontur, 9-51
WAITC, 13-14, 13-21 Anfahren auf einer Geraden, 9-52
WAITE, 1-46 Anfahren im Halbkreis, 9-54
WAITM, 1-46 Anfahren im Viertelkreis, 9-53
WAITMC, 1-46 Anfahren mit neuem Werkzeug, 9-57
WALIMON, 9-5 Wiederanfahrpunkt, 9-54

Arbeitsvorbereitung
Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0 Index-13
Index

Wiederholte Verwendung von Kurventabellen, 9-20 Zeitbedarf


Winkelbezug, 13-20 Synchronaktionen, 10-61
Winkeloffset/Winkelinkrement der Drehachsen, 8-39 Zugriff auf Kurventabellenpositionen und
Winlimit, 10-43 Kurventabellensegmeten, 9-26
WKS, 3-3, 11-12 Zuletzt programmierte Satznummer anzeigen, 2-24
WPD, 3-3 Zustell
WRITE, 1-65 -achse, 11-7
WZ, 8-4 -bewegung, 11-11
Zuweisungen, 1-18
Zwischenkreisstützung, 13-38
X Zyklen
Anwenderzyklen parametrieren, 2-39
x, 8-4
Anwenderzyklen und Herstellerzyklen mit
XOR, 1-23
gleichnamigen NC-Programmen, 2-38
Zylindermantelkurventransformation, 7-53
Offset Kontur-normal OFFN, 7-59
Z Zylindermanteltransformation, 7-5
Zeichen suchen, 1-35

Arbeitsvorbereitung
Index-14 Programmierhandbuch, 11/2006, 6FC5398-2BP10-2AA0

Common questions

Auf Basis von KI

Die SEFORM-Anweisung wird im Stepeditor zur Strukturierung des NC-Unterprogramms genutzt. Sie ermöglicht die Generierung einer übersichtlichen Schrittansicht durch die Definition von Abschnittsnamen, Ebenen und Icons, was die Lesbarkeit und Wartbarkeit des Programms verbessert .

Synchronaktionen können die Programmlogik erheblich beeinflussen, indem sie asynchrone Operationen ermöglichen, wie z. B. das Positionieren von Achsen oder die Ausgabe von Hilfsfunktionen nur bei erfüllten Bedingungen. Diese Aktionen werden fortlaufend geprüft und bei Aktivierung sofort umgesetzt, was eine flexiblere Reaktion auf Zustandsänderungen erlaubt .

Es ist wichtig, die DEF.../REDEF-Reihenfolge einzuhalten, da die Definition der GUD-Variablen vor der Attributänderung (REDEF) erfolgen muss. Attributänderungen setzen nämlich eine bereits bestehende Definition voraus .

GUD-Variablen können durch die REDEF-Anweisung nach der ursprünglichen DEF-Zuweisung geändert werden. Es ist darauf zu achten, dass ein ausreichend großer Speicher für Initialisierungswerte zur Verfügung steht und das Maschinendatum korrekt gesetzt ist, um Alarme wie 'Initialisierung nicht erlaubt' zu vermeiden .

Nach der Aktivierung einer Orientierungstransformation beziehen sich die Positionsangaben immer auf die Spitze des Werkzeugs. Änderungen der Positionen der an der Transformation beteiligten Achsen führen zu entsprechenden Ausgleichsbewegungen anderer Maschinenachsen, um die Werkzeugspitzenposition unverändert zu halten .

Mit DEF CHAR kann eine Variable vom Typ Char erstellt werden, der ein einzelnes ASCII-Zeichen oder dessen Codewert zugeordnet werden kann. Der Codewert 65 entspricht zum Beispiel dem Buchstaben 'A' .

Für den Datentyp FRAME sind keine Initialisierungswerte möglich. FRAME-Variablen können folglich keine vordefinierten Werte bei der Erstellung zugewiesen bekommen .

Nicht korrekt initialisierte GUD-Variablen können zu unerwartetem Verhalten des NC-Programms führen, da sie mit Standardwerten belegt sind, die für spezifische Berechnungen unzulänglich sein können. Dies könnte zu Programmlogikfehlern und Maschinenstopps führen .

Synchronaktionen können genutzt werden, um Spindeln asynchron zum Teileprogramm zu positionieren. Hierfür werden Aktionen definiert, die auf externe Signale reagieren. Beispielsweise kann mit der Aktion 'DO SPOS=270' eine Spindel positioniert werden, sobald ein bestimmtes Eingangssignal erfüllt ist .

Bewegungssynchronaktionen erlauben die Durchführung von Aktionen parallel zur regulären Programmausführung, was die Effizienz erhöht. Sie erlauben asynchrone Anpassungen, wie z. B. Werkzeugkorrekturen, ohne das Hauptprogramm anzuhalten, und erhöhen somit die Flexibilität und Reaktionsfähigkeit des Systems .

Das könnte Ihnen auch gefallen