TwinCAT NC I
Home


Vorwort

Vorwort
Vorwort
Weiterführende Informationen
•
Hinweise zur Dokumentation
•
Sicherheitshinweise


Hinweise zur Dokumentation

Vorwort [image] Hinweise zur Dokumentation
Hinweise zur Dokumentation
Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- und Automatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.
Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der Dokumentation und der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.
Das Fachpersonal ist verpflichtet, für jede Installation und Inbetriebnahme die zu dem betreffenden Zeitpunkt veröffentliche Dokumentation zu verwenden.
Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produkte alle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungen und Normen erfüllt.
Disclaimer
Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Wir behalten uns das Recht vor, die Dokumentation jederzeit und ohne Ankündigung zu überarbeiten und zu ändern.
Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche auf Änderung bereits gelieferter Produkte geltend gemacht werden.
Marken
Beckhoff®, TwinCAT®, EtherCAT®, EtherCAT G®, EtherCAT G10®, EtherCAT P®, Safety over EtherCAT®, TwinSAFE®, XFC®, XTS® und XPlanar® sind eingetragene und lizenzierte Marken der Beckhoff Automation GmbH.
Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kann zu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.
Patente
Die EtherCAT-Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP1590927, EP1789857, EP1456722, EP2137893, DE102015105702
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.
EtherCAT® ist eine eingetragene Marke und patentierte Technologie lizenziert durch die Beckhoff Automation GmbH, Deutschland
Copyright
© Beckhoff Automation GmbH & Co. KG, Deutschland.
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sind verboten, soweit nicht ausdrücklich gestattet.
Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster- oder Geschmacksmustereintragung vorbehalten.


Sicherheitshinweise

Vorwort [image] Sicherheitshinweise
Sicherheitshinweise
Sicherheitsbestimmungen
Beachten Sie die folgenden Sicherheitshinweise und Erklärungen!
Produktspezifische Sicherheitshinweise finden Sie auf den folgenden Seiten oder in den Bereichen Montage, Verdrahtung, Inbetriebnahme usw.
Haftungsausschluss
Die gesamten Komponenten werden je nach Anwendungsbestimmungen in bestimmten Hard- und Software-Konfigurationen ausgeliefert. Änderungen der Hard- oder Software-Konfiguration, die über die dokumentierten Möglichkeiten hinausgehen, sind unzulässig und bewirken den Haftungsausschluss der Beckhoff Automation GmbH & Co. KG.
Qualifikation des Personals
Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs-, Automatisierungs- und Antriebstechnik, das mit den geltenden Normen vertraut ist.
Erklärung der Symbole
In der vorliegenden Dokumentation werden die folgenden Symbole mit einem nebenstehenden Sicherheitshinweis oder Hinweistext verwendet. Die Sicherheitshinweise sind aufmerksam zu lesen und unbedingt zu befolgen!
SmallWarningYellow GEFAHR
Akute Verletzungsgefahr!
Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, besteht unmittelbare Gefahr für Leben und Gesundheit von Personen!
SmallWarningYellow WARNUNG
Verletzungsgefahr!
Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, besteht Gefahr für Leben und Gesundheit von Personen!
SmallWarningYellow VORSICHT
Schädigung von Personen!
Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, können Personen geschädigt werden!
Hinweis
Schädigung von Umwelt oder Geräten
Wenn der Hinweis neben diesem Symbol nicht beachtet wird, können Umwelt oder Geräte geschädigt werden.
Tipp oder Fingerzeig
Dieses Symbol kennzeichnet Informationen, die zum besseren Verständnis beitragen.


Einleitung

Einleitung
Einleitung
TwinCAT NCI steht für 'numerical control interpolation' und ist das NC-System für interpolierende Bahnbewegungen.
TwinCAT NCI bietet eine 3D-Interpolation (Interpreter, Sollwertgenerierung, Lageregler), eine integrierte SPS mit NC-Schnittstelle und eine E/A-Anbindung für Achsen über den Feldbus.
Mit der NCI können 3 Bahnachsen und bis zu 5 Hilfsachsen pro Kanal verfahren werden. Zusätzlich können noch Master/Slave Kopplungen gebildet werden. In Kombination mit TwinCAT Kinematic Transformation (TS 511x) lassen sich auch komplexe Kinematiken aus der NCI heraus ansteuern.
Die Programmierung erfolgt aus einem eigenen NC-Programm nach DIN 66025 mit eigenen Spracherweiterungen (vgl. Interpreter (DIN 66025/G-Code)) oder direkt aus der SPS mit der Bibliothek PLC Library: TcPlcInterpolation.
Installationsvoraussetzung
Um TwinCAT NC I nutzen zu können, muss bei der Installation von TwinCAT der NC I Level angewählt werden.
Übersicht
Kapitel | Inhalt
System Manager Benutzerschnittstelle | Beschreibung der Parameter und Funktionalitäten für den Interpreter im System Manager
Interpreter | Programmieranleitung des Interpreters
PLC NCI Libraries | Beschreibung der speziellen NCI Bibliotheken
Beispiel | Beispiel mit SPS und NC Programm, sowie System Manager Konfiguration
Anhang | Parametrierung, Zyklisches Kanalinterface


Benutzerschnittstelle im System Manager

Benutzerschnittstelle im System Manager
Benutzerschnittstelle im System Manager
Weiterführende Informationen
•
Überblick
•
Interpolationskanal
•
Interpreter Element
•
Gruppenelement


Überblick

Benutzerschnittstelle im System Manager [image] Überblick
Überblick
Um die Interpolation nutzen zu können, fügen Sie einen Interpolationskanal im System Manager ein. Dies gilt sowohl für die Verwendung des Interpreters als auch der Bibliothek TcPlcInterpolation.
1.
Legen Sie einen NC-Kanal an.
2.
Wählen Sie in der Auswahlbox den NC Kanal für die Interpolation an.
3.
Ordnen Sie diesem aus der SPS per Funktionsbaustein PTP-Achsen zu.
⇨
Der angelegte Kanal besteht aus folgenden Elementen:
Interpolationskanal | Beschreibung der Eigenschaftsseiten, die sich hinter dem Element 'Interpolation' befinden
Interpreter Element | Beschreibung der Eigenschaftsseiten, die sich hinter dem Element 'Interpreter' befinden
Gruppenelement | Beschreibung der Eigenschaftsseiten, die sich hinter dem Element 'Gruppe' befinden
Hinweis Achsspezifische Parameter für die NCI befinden sich in der Achsparametrierung unter dem Unterpunkt 'NCI Parameter'.


Interpolationskanal

Benutzerschnittstelle im System Manager [image] Interpolationskanal
Interpolationskanal
Mit einem Klick auf den Interpolationskanal (hier 'Interpolation 2' ) werden folgende Dialoge sichtbar:
Karteireiter "Online"
Hier werden alle Achsen der aktuellen Interpolationsgruppe aufgelistet. Dabei werden aktuell dargestellt:
▪
Istpositionen
▪
Sollpositionen
▪
Schleppabstände
▪
Sollgeschwindigkeiten und
▪
Fehlercodes
Karteireiter "Override"
Auf der Seite 'Override' ist der Kanal-Override für die Achsen abzulesen und zu setzen. Falls die SPS läuft und dort das zyklische Kanal-Interface beschrieben wird, dann wird der hier gesetzte Override durch die SPS wieder überschrieben.
Nähere Information zur Wirkungsweise des Overrides sind unter Bahnoverride (Interpreter-Overridetypen) zu finden.
Der Spindel-Override wird zwar durch das zyklische Kanal-Interface beschrieben, aber derzeit nicht unterstützt.


Interpreter Element

Benutzerschnittstelle im System Manager [image] Interpreter Element
Interpreter Element
Mit einem Klick auf das Interpreter Element (hier Channel2_Itp) werden folgende Eigenschaftsseiten und das Online Fenster sichtbar:
Weiterführende Informationen
•
Interpreter Online-Fenster
•
Karteireiter "Interpreter"
•
Karteireiter "M-Functions"
•
Karteireiter "R-Parameter"
•
Karteireiter "Nullpunkte"
•
Karteireiter "Werkzeuge"
•
Karteireiter "Editor“
•
Karteireiter "MDI"


Interpreter Online-Fenster

Benutzerschnittstelle im System Manager [image] Interpreter Element [image] Interpreter Online-Fenster
Interpreter Online-Fenster
Achsen
Wie auch auf der Eigenschaftsseite 'Online' im Interpolationskanal, werden in diesem Fenster alle Achsen, die sich aktuell in der Interpolationsgruppe befinden aufgelistet. Dabei werden die Werte für
▪
Istpositionen
▪
Sollpositionen
▪
Schleppabstände
▪
Sollgeschwindigkeiten und
▪
aktuelle Fehlercodes
dargestellt.
Programmanzeige SAF
Die Programmanzeige SAF stellt den z.Zt. in der Satzausführung abzuarbeitenden NC Satz dar. Dabei ist die letzte Zeile in dem Fenster der aktuelle Satz.
Wie nahezu alle Parameter, lässt sich auch die Programmanzeige via ADS auslesen. Dies kann z.B. dazu verwendet werden, in einer Visual Basic Applikation die aktuellen NC-Sätze anzuzeigen (vergl. ADS-Device-Dokumentation - ADS Interface NC.
Programm-Name
Zeigt den Namen des z.Zt. geladenen Programms. Dies muss nicht unbedingt das Programm sein, was im Editor dargestellt ist.
Interpreter Status
Der Interpreter Status gibt den aktuellen Status der Interpreter State Maschine wieder. Die vollständige Liste ist unten aufgeführt. Da für die Auswertung in der SPS nicht alle Zustände relevant sind, sollen nur die wichtigsten erläutert werden.
Status | Beschreibung
ITP_STATE_IDLE | Der Interpreter befindet sich im Idle Zustand, wenn noch kein NC Programm geladen ist oder wenn ein Gruppen Reset ausgeführt wird. Beim Stoppen eines laufenden Programms, geht der Interpreter ebenfalls in den Idle State. In diesem Fall ist ein Gruppen Reset unbedingt erforderlich, da sonst Fehler 0x42C5 ausgegeben wird. Es empfiehlt sich daher nach einem Stopp aus der SPS direkt einen Gruppen Reset durchzuführen.
ITP_STATE_READY | Nach dem erfolgreichen Laden eines NC Programms befindet sich der Interpreter im Ready State. Wenn ein Programm erfolgreich abgearbeitet und beendet wird, befindet sich der Interpreter anschließend ebenfalls im Ready State. Zwischenzeitlich werden aber andere Zustände angenommen.
ITP_STATE_ABORTED | Tritt während der Abarbeitung des NC Programms ein Laufzeitfehler auf, so geht der Interpreter in den Aborted State. Der eigentliche Fehlercode ist dem Kanal Status zu entnehmen.
ITP_STATE_SINGLESTOP | Dieser Status wird nur im Einzelsatzbetrieb angenommen. Sobald der Eintrag aus dem Interpreter an den NC Kern gesendet wird, geht der Interpreter in diesen Zustand.
Hinweis
Abfrage des Interpreter-Status während der Ausführung des Programms
Da der Interpreter-Status während der Ausführung des Programms zwischen verschiedenen Zuständen wechseln kann, wird empfohlen, ihn mit einer negativen Logik abzufragen. Während der Abarbeitung des Programms ist der Interpreter nicht zwingend im State ITP_STATE_RUNNING. Wurde das Programm erfolgreich ausgeführt, ist der Interpreter anschließend immer im Ready State. Siehe auch Beispiele
Rückgabewerte Interpreter-Status
0 ITP_STATE_INITFAILED
1 ITP_STATE_IDLE
2 ITP_STATE_READY
3 ITP_STATE_STARTED
4 ITP_STATE_SCANNING
5 ITP_STATE_RUNNING
6 ITP_STATE_STAY_RUNNING
7 ITP_STATE_WRITETABLE
8 ITP_STATE_SEARCHLINE
9 ITP_STATE_END
10 ITP_STATE_SINGLESTOP
11 ITP_STATE_ABORTING
12 ITP_STATE_ABORTED
13 ITP_STATE_FAULT
14 ITP_STATE_RESET
15 ITP_STATE_STOP
16 ITP_STATE_WAITFUNC
17 ITP_STATE_FLUSHBUFFERS
Kanal-Status
Der Kanal-Status gibt den aktuellen Fehlerstatus des Kanals wieder. D.h. tritt zur Lade- oder Laufzeit des NC Programms ein Fehler auf, so wird hier der dazugehörige Fehlercode angezeigt. Geht z.B. eine Achse während der Bearbeitung in einen Schleppfehler, so wird das NC Programm gestoppt und der Kanal-Status hat einen Wert ungleich 0. Deshalb sollte der Kanal-Status unbedingt in der SPS überprüft werden, damit auf Fehler reagiert werden kann. Im fehlerfreien Betrieb ist der Kanal-Status immer 0.
Ladepuffer
Hier wird die aktuelle Größe des Ladepuffers für den Interpreter angezeigt. Um den Wert zu verändern, muss der Karteireiter 'Interpreter' angewählt werden.


Karteireiter "Interpreter"

Benutzerschnittstelle im System Manager [image] Interpreter Element [image] Karteireiter "Interpreter"
Karteireiter "Interpreter"
Karteireiter "Interpreter
Typ
In der Auswahlbox 'Typ' kann der Interpretertyp ausgewählt werden. Zurzeit steht nur der NC-Interpreter basierend auf DIN 66025 zur Verfügung.
Ladepuffergröße
Hier kann die Ladepuffergröße für den Interpreter editiert werden. Dabei ist zu beachten, dass der benötigte Speicher im Interpreter wesentlich größer ist, als die Größe der NC Datei. Die maximal erlaubte Ladepuffergröße ist auf 64MB begrenzt.
Hinweis
Änderung der Ladepuffergröße
Wenn die Ladepuffergröße verändert wird, ist unbedingt ein TwinCAT Restart notwendig.
G70 / G71 Faktor
Wird im Teileprogramm von G71 (Millimeter - default) auf G70 umgeschaltet, so ist hier der Umrechnungsfaktor hinterlegt. Dieser muss nur dann editiert werden, wenn das Basisbezugssystem nicht Millimeter ist.
Ist die Maschine z.B. auf Inch eingemessen und im Teileprogramm wird G70 aktiv geschaltet, dann muss der G70-Faktor gleich 1 und der G71-Faktor gleich 1/25.4 gesetzt werden
Save/Restore
Mit der Save-Funktion kann zur Laufzeit ein 'Schnappschuss' von den gerade aktuellen Parametern gesichert werden. Welche Parameter dabei berücksichtig werden sollen, wird mit den Checkboxen festgelegt. Die Save-Funktion generiert dabei die Datei 'SnapShot.bin' im TwinCAT\CNC-Verzeichnis.
Die Restore-Funktion lädt die mit Save beschriebene Datei.
Diese Funktion ist ausschließlich für Debugzwecke vorgesehen


Karteireiter "M-Functions"

Benutzerschnittstelle im System Manager [image] Interpreter Element [image] Karteireiter "M-Functions"
Karteireiter "M-Functions"
Hinweis
Verwendung ausschließlich mit Interpreter
Dieser Karteireiter hat für den Betrieb mit der Library TcPlcInterpolation keine Bedeutung.
Hier werden die aktuell parametrierten M-Funktionen dargestellt. Auf dieser Seite können neue M-Funktionen hinzugefügt bzw. bestehende anders parametriert werden.
Eine nähere Beschreibung der möglichen Parameter ist der Interpreterbeschreibung unter M-Funktionen zu entnehmen.
Hinweis
Parametrierung von M-Funktionen
Wenn M-Funktionen umparametriert werden, ist anschließend eine Aktivierung der Konfiguration und ein TwinCAT Neustart erforderlich.


Karteireiter "R-Parameter"

Benutzerschnittstelle im System Manager [image] Interpreter Element [image] Karteireiter "R-Parameter"
Karteireiter "R-Parameter"
Auf der Eigenschaftsseite 'R-Parameter' werden die zurzeit gültigen R-Parameter angezeigt. Während der Testphase ist es hier z.B. möglich, R-Parameter zu initialisieren oder zu verändern. Das Editieren der R-Parameter sollte allerdings im Regelfall aus dem NC-Programm oder ggf. aus der SPS erfolgen.
Näheres zur Verwendung von R-Parametern ist in der Interpreterbeschreibung unter R-Parameter zu finden.


Karteireiter "Nullpunkte"

Benutzerschnittstelle im System Manager [image] Interpreter Element [image] Karteireiter "Nullpunkte"
Karteireiter "Nullpunkte"
Hier werden die aktuellen Nullpunktverschiebungen für die Achsen, die sich in der Interpolationsgruppe befinden, dargestellt. Die Parameter P54..P59 stehen für den entsprechenden G Code. Wie auch bei den R-Parametern, lassen sich an dieser Stelle die Nullpunktverschiebungen editieren.
Die Spalten F & G (z.B. P54 F & P54 G) sind historisch bedingt und werden jeweils für einen Parameter addiert.
Näheres zur Wirkungsweise ist in der Interpreterbeschreibung unter Nullpunktverschiebungen zu finden.


Karteireiter "Werkzeuge"

Benutzerschnittstelle im System Manager [image] Interpreter Element [image] Karteireiter "Werkzeuge"
Karteireiter "Werkzeuge"
Auf der Eigenschaftsseite 'Werkzeuge' können die Daten für die Werkzeugkorrektur editiert werden.
Eine nähere Beschreibung der Parameter ist in der Interpreterbeschreibung unter Werkzeugkorrekturen zu finden.


Karteireiter "Editor“

Benutzerschnittstelle im System Manager [image] Interpreter Element [image] Karteireiter "Editor“
Karteireiter "Editor“
Mit dem Editor können NC Programme dargestellt und editiert werden.
Erläuterung der Schalter:
▪
Browse...
öffnet einen Dialog, mit dem vorhandene NC Programme ausgewählt und dargestellt werden können
▪
F5
Startet das aktuell geladene NC Programm
Hinweis Das im Editor dargestellte NC Programm muss nicht ungedingt das aktuell geladene Programm sein
▪
F6
Stoppt das aktuell laufende NC Programm
▪
F7
lädt das im Editor dargestellte NC Programm
▪
F8
führt einen Gruppen-Reset durch
▪
F9
speichert das aktuell im Editor dargestellte NC Programm unter dem gleichen Namen
▪
Editor...
öffnet ein größeres Fenster, in dem das NC Programm dargestellt wird.


Karteireiter "MDI"

Benutzerschnittstelle im System Manager [image] Interpreter Element [image] Karteireiter "MDI"
Karteireiter "MDI"
MDI steht für 'Manual Data Interface'. Hiermit lassen sich aus dem System Manager einzelne NC Sätze direkt eingeben. Mit F5 und F6 wird die Abarbeitung gestartet bzw. gestoppt.


Gruppenelement

Benutzerschnittstelle im System Manager [image] Gruppenelement
Gruppenelement
Allgemein
DXD
Einstellungen
Online
3D-Online
Weiterführende Informationen
•
Karteireiter "Allgemein"
•
Karteireiter "DXD"
•
Karteireiter „Einstellungen“
•
Karteireiter "Online"
•
Karteireiter "3D-Online"


Karteireiter "Allgemein"

Benutzerschnittstelle im System Manager [image] Gruppenelement [image] Karteireiter "Allgemein"
Karteireiter "Allgemein"
Gruppen ID
Auf der Seite 'Allgemein' kann die Gruppen ID ermittelt werden. Diese wird für Gruppenspezifische ADS Kommandos benötigt.
Symbole erzeugen
Um symbolisch auf Bahnvariablen etc. zugreifen zu können, muss an dieser Stelle die Generierung von Symbolen für die Gruppe angewählt werden.


Karteireiter "DXD"

Benutzerschnittstelle im System Manager [image] Gruppenelement [image] Karteireiter "DXD"
Karteireiter "DXD"
Karteireiter "DXD"
Auf der Eigenschaftsseite 'DXD' werden die NCI-Gruppenparameter beschrieben.
Kurvengeschwindigkeitsreduktionsmethode
Die Kurvengeschwindigkeitsreduktionsmethode wirkt ausschließlich für C0-Übergänge (vergl. Klassifikation der Segmentübergänge)
Defines der Kurvengeschwindigkeitsreduktionsmethoden
0 Coulomb
1 Cosinus
2 VeloJump
3 DeviationAngle (not yet released)
Methode
Beschreibung
Coulomb
Die Coulomb-Reduktionsmethode ist ein dynamisches Verfahren in Analogie zur Coulombstreuung.
Der Ablenkungswinkel φ im Übergangspunkt ist der Winkel zwischen der Tangente der Bahn am Ende des Segments S1 und der Tangente der Bahn am Anfang des Segments S2.
Die Geschwindigkeit wird in Analogie zur Coulombstreuung proportional zur Geschwindigkeit im Unendlichen angesetzt
Vk ∝ ( tan(0.5(π-φ)) )1/2
und dann per C0-Faktor reduziert.
Vk ← C0 Vk.
Bei Bewegungsumkehr (φ=180) wird damit auf jeden Fall auf Vk = C0 reduziert. Da die Reduktion jedoch bei kleinen Ablenkungswinkeln drastisch ist, gibt es einen Winkel φlow∈ [0,180] ab dem die Reduktion voll einsetzt. Wollen Sie nicht reduzieren, dann setzen Sie φlow = 180. Wollen Sie (bis auf φ = 0) vollständig reduzieren, dann setzen Sie C0 = 0.0 und φlow = 0.
Cosinus
Die Cosinus-Reduktionsmethode ist ein rein geometrisches Verfahren.
Hier gibt es
▪
den C0-Faktor ∈ [0,1],
▪
einen Winkel φlow ∈ [0,180],
▪
einen Winkel φhigh ∈ [0,180], sodas φlow < φhigh
▪
Reduktionsschema:
▪
φ < φlow: keine Reduktion: Vk←Vk,
▪
φhigh < φ: Reduktion um den C0-Faktor: Vk← C0 Vk
▪
φlow < φ <φhigh: partielle Reduktion stetig interpolierend zwischen den Fällen 1 und 2, proportional zur cos-Funktion im Bereich [0,π/2].
Will man (bis auf φ = 0) vollständig reduzieren, dann muss man C0 = 0.0, φlow=0 und φhigh sehr klein aber ungleich 0 setzen (z.B. 1.0E-10)
VeloJump
Hierbei handelt es sich um ein geometrisches Verfahren zur Bestimmung der Segmentübergangsgeschwindigkeit bei einem C0-Übergang. Bei diesem Verfahren wird die Bahngeschwindigkeit ggf. so reduziert, dass der auftretende Geschwindigkeitssprung nicht grösser wird, als max. erlaubt. Dieser berechnet sich nach der Formel: VeloJump-Faktor * Zykluszeit * min(Beschleunigung; Verzögerung) Weitere Information
Geschwindigkeitsreduktionsfaktor C0-Übergang
Reduktionsfaktor für C0-Übergänge. Die Wirkungsweise ist von der Reduktionsmethode abhängig.
C0 ∈ [0.0, 1]
Geschwindigkeitsreduktionsfaktor C1-Übergang
Zuerst wirdV_link gleich dem Minimum der beiden Segmentsollgeschwindigkeiten gesetzt: V_link = min(V_in,V_out). In Abhängigkeit von den Geometrietypen G_in und G_out auf den zu verbindenden Segmenten und den Ebenenanwahlen auf G_in und G_out wird der geometrisch induzierte absolute Beschleunigungssprung AccJump im Segentübergang unter der Geschwindigkeit V_link berechnet. Ist dieser größer als C1 mal der für die Geometrien und Ebenen zulässigen Bahn-Beschleunigung /(absolute)Verzögerung AccPathReduced, dann wird die Geschwindigkeit V_link so reduziert, dass der sich ergebende Beschleunigungssprung gleich AccPathReduced ist. Ist dieser Wert kleiner als V_min, dann hat V_min Priorität.
Hinweis Bei Wechsel der Dynamikparameter ändert sich automatisch die für die Geometrien und Ebenen zulässige Bahn-Beschleunigung und damit das das Verhalten der Reduktion.
Reduktionsfaktor für C1-Übergänge: C1 ≥ 0.0
Kritischer Winkel Segementübergang 'Low'
Paramter für φlow. Beschreibung zur Wirkungsweise vergl. Kurvengeschwindigkeitsreduktionsmethode
Kritischer Winkel Segementübergang 'High'
Paramter für φhigh. Beschreibung zur Wirkungsweise vergl. Kurvengeschwindigkeitsreduktionsmethode
Mindestgeschwindigkeit an Segmentübergängen
Jede NCI-Gruppe hat eine Mindestbahngeschwindigkeit V_min≥ 0.0 die niemals unterschritten werden sollte. Vom Benutzer vorgegebene Ausnahmen sind: programmierter Halt am Segmentübergang, Bahnende und Overrideanforderungen die unter die Mindestgeschwindigkeit führen. Systembedingte Ausnahme ist eine Bewegungsumkehr. Bei der Reduktionsmethode DEVIATIONANGLE gilt für den Ablenkungswinkel φ ≥ φ_h, dann wird die Mindestgeschwindigkeit nicht beachtet. V_min muss kleiner als die Bahnsollgeschwindigkeit (F-Wort) jedes Segments sein.
Die Mindestgeschwindigkeit kann jederzeit im NC-Programm auf einen neuen Wert V_min≥ 0.0 in Einheiten mm/sec gesetzt werden.
Global Soft Position Limits (für x,y,z-Achsen)
Parameter zum Einschalten der Software-Endlagen der Bahn
Beschreibung im Anhang unter Parametrierung.
Interpreter Override Typ
Parameter zur Auswahl des Overridetyps der Bahn (Beschreibung siehe Bahnoverride (Interpreter-Overridetypen)).


Karteireiter „Einstellungen“

Benutzerschnittstelle im System Manager [image] Gruppenelement [image] Karteireiter „Einstellungen“
Karteireiter „Einstellungen“
Karteireiter „Einstellungen“
Unter dem Karteireiter Einstellungen können Sie die Zykluszeit für die Interpolation einstellen. Die hier eingestellte Zykluszeit ist hierbei ein Vielfaches der Zykluszeit der SAF-Task.
Hinweis
Verwendung der Zykluszeit im Karteireiter „Einstellungen“
Die Einstellung der Zykluszeit können Sie nutzen, wenn Sie eine von der SAF-Task verschiedene Zykluszeit für die Interpolation wählen müssen. Im Allgemeinen sollte zum Einstellen der Zykluszeit die Zykluszeit der SAF-Task angepasst werden.


Karteireiter "Online"

Benutzerschnittstelle im System Manager [image] Gruppenelement [image] Karteireiter "Online"
Karteireiter "Online"
Karteireiter "Online"
Fehlercode
Hier wird der aktuelle Fehlercode des Kanals dargestellt. Der Wert ist der gleiche, wie er im Online-Fenster des Interpreters unter 'Kanal Status' angezeigt wird.
SVB-Status
Der SVB-Status stellt den aktuellen Zustand der SVB (Satzvorbereitung) dar. Mögliche SVB-Zustände sind:
ERROR
IDLE
READY
START
DRIVEOUT
CALIBRATE
MFUNC
SYNCREC
DELAY
MFUNCWAIT
SPINDLEWAIT
Für gewöhnlich ist es nicht erforderlich, dass der SVB-Status von der SPS ausgewertet wird.
SAF-Status
Der SAF-Status stellt den aktuellen Zustand der SAF (Satzausführung) dar. Mögliche SAF-Zustände sind:
ERROR
IDLE
CONTROL
RUN
RUN_DRIVEOUT
WAIT
Für gewöhnlich ist es nicht erforderlich, dass der SAF-Status von der SPS ausgewertet wird.
SVB-Einträge
Anzahl der momentanen SVB-Einträge
SAF-Einträge
Anzahl der momentanen SAF-Einträge


Karteireiter "3D-Online"

Benutzerschnittstelle im System Manager [image] Gruppenelement [image] Karteireiter "3D-Online"
Karteireiter "3D-Online"
Karteireiter "3D-Online"
Soll-Belegung
An dieser Stelle wird die Interpolationsgruppe gebildet. D.h. die PTP Achsen, die den Bahnachsen X, Y und Z zugewiesen werden, können anschließend interpolierend verfahren werden.
Mit Hilfe der Auswahllisten können Sie für die Bahnachsen X, Y und Z beliebige PTP Achsen auswählen. Wenn Sie den Button 'Übernehmen' drücken, wird die 3D-Gruppe gebildet.
Ein vergleichbarer SPS Baustein steht ebenfalls in der TcNcCfg.lib zur Verfügung.
Ist-Belegung
Hier wird die aktuelle Belegung der Bahnachsen angezeigt. Wenn Sie einzelne Achsen aus der 3D-Gruppe entfernen möchten, können Sie dies über 'Löschen' machen.
Belegung komplett löschen
Löst die komplette 3D-Gruppe auf. Auch hierfür steht ein SPS Baustein in der TcNcCfg.lib zur Verfügung.


Interpreter (DIN 66025/G-Code)

Interpreter (DIN 66025/G-Code)
Interpreter (DIN 66025/G-Code)
Weiterführende Informationen
•
Grundlagen der NC-Programmierung
•
Programmierung von Bewegungsätzen
•
Zusatzfunktionen
•
Werkzeugkorrekturen
•
Befehlsübersicht


Grundlagen der NC-Programmierung

Interpreter (DIN 66025/G-Code) [image] Grundlagen der NC-Programmierung
Grundlagen der NC-Programmierung
Weiterführende Informationen
•
Aufbau eines NC-Programms
•
Satzunterdrückung
•
Look-Ahead
•
Glättung von Segmentübergängen
•
Koordinatensystem
•
Maßangaben
•
Arbeitsebene und Zustellrichtung
•
Maßangaben Inch / metrisch
•
Einzelsatzbetrieb
•
Rechenparameter


Aufbau eines NC-Programms

Interpreter (DIN 66025/G-Code) [image] Grundlagen der NC-Programmierung [image] Aufbau eines NC-Programms
Aufbau eines NC-Programms
Ein NC-Programm ist ein Text, der normalerweise als Kette von ASCII-Codes in einer Datei auf der Festplatte abgelegt ist. Es besteht aus einer Reihe von NC-Sätzen, die jeweils durch eine Zeilenschaltung (Return) getrennt sind. In der Regel wird es bei der Abarbeitung Zeichen für Zeichen und Zeile für Zeile interpretiert und abgearbeitet.
Programmaufbau
Dabei ist das NC-Programm aus drei Teilen zusammengesetzt
▪
Programmanfang (optional)·
▪
Anzahl von Sätzen
▪
Programmende
Programmanfang
Am Anfang eines NC-Programms kann das Zeichen '%' für den Programmanfang stehen. Hinter diesem Zeichen befindet sich dann der Name des Programms. Der Satz für den Programmanfang muss nicht zwingend programmiert werden.
Beispiel:
% Test1 (program start)
N10 G0 X100 Y100 Z0
M30 (program end)
NC-Satz
Jeder der NC-Sätze besteht aus keinem (Leerzeile), einem oder mehreren NC-Worten, die durch Leerzeichen oder Tabulator getrennt sind. Daher darf innerhalb eines Wortes kein Leerzeichen verwendet werden.
Beispiel:
N10 G0 X100 Y100 Z0
NC-Wort
Das erste Zeichen des NC-Wortes legt seine Bedeutung fest. Es handelt sich dabei um einen Buchstaben oder ein Sonderzeichen.
Groß- / Kleinschreibung ist in der Regel nicht von Bedeutung. Allerdings ist eine einheitliche Großschreibung wegen der besseren Lesbarkeit empfehlenswert. Die optional folgenden Zeichen spezifizieren die Bedeutung genauer oder liefern Parameter für die Ausführung.
Um mit dem begrenzten Vorrat an Zeichen auszukommen, ist nicht für jede Variante jeder Funktion ein eigener Ausdruck verfügbar. Vielmehr wird die Bedeutung und Wirkung vieler NC-Worte durch den Zusammenhang mitbestimmt. Das kann sich auf die im Satz vorausgehenden NC-Worte beziehen, aber auch auf die vorausgehenden NC-Sätze. In einigen Fällen wird die Wirkung von NC-Worten sogar durch Maschinendaten beeinflusst.
Programmende
Das Programmende wird durch eine M-Funktion gekennzeichnet. Hierfür wird entweder M2 oder M30 verwendet.
Wirkungsdauer von Wörtern
Befehle, wie z.B. G0, G17 die über das Satzende hinaus wirken, werden laut DIN 66025 als modal bezeichnet. Diese Befehle wirken solange, bis sie durch einen anderen Befehl aufgehoben oder geändert werden.
Kommentare
Sollen Teilbereiche eines NC-Satzes oder der ganze Satz nicht interpretiert werden, ist der Bereich in runde Klammern zu setzen.
Beispiel:
N10 G0 X100 (comment)
Hinweis Ein Kommentar endet mit der schließenden Klammer, spätestens jedoch am Satzende. Ein Kommentar kann sich also nicht über mehrere Zeilen erstrecken. Eine Schachtelung von Kommentaren ist ebenfalls nicht möglich.
Satznummer
Jeder Satz kann mit einer Satznummer gekennzeichnet werden. Die Satznummer wird mit einem "N" für Nebensätze und mit ":" für Hauptsätze gekennzeichnet.
Hinweis Die Satznummer ist nicht zwingend erforderlich. Ein nicht mit einer Satznummer gekennzeichneter Satz kann jedoch nicht als Ziel für Sprungbefehle dienen. Außerdem kann bei einer Fehlermeldung der Ort des Fehlers nur ungenau (letzte Satznummer) angegeben werden.


Satzunterdrückung

Interpreter (DIN 66025/G-Code) [image] Grundlagen der NC-Programmierung [image] Satzunterdrückung
Satzunterdrückung
Oft ist es nützlich, nicht immer alle Sätze eines Programms auszuführen. Dadurch ist es möglich, ähnliche Bearbeitungen mit einem einzigen Programm zu verwirklichen. In einem solchen Fall werden die Sätze, die zu einer Variante gehören mit einer Satzausblendungs-Kennung versehen. Diese muss an den Satzanfang geschrieben werden und besteht aus einem Schrägstrich "/". Sind mehrere Varianten erforderlich, so wird der Schrägstrich um eine Zahlenangabe (0..15) ergänzt, also z.B. "/12". Die Zahlenangabe (dabei ist "/" gleichzusetzen mit "/0") wählt ein Bit aus einem Wort des Kanalinterface von der SPS zur NC aus. Ist dieses Bit gesetzt, wird der Satz nicht interpretiert.
In der NC wird hierfür die Variable 'mSkipLine' ausgewertet, die sich unter den Eingängen im zyklischen Kanalinterface befindet. Das entsprechende Gegenstück in der SPS ist bei den Ausgängen unter 'nSkipLine' (früher: nSatzunterdrückung) zu finden (vergl. TwinCAT PLC Library: NCI Interpreter).
Soll eine bestimmte von mehreren Varianten aktiv sein, sind alle anderen Unterdrückungen zu setzen. Dann sind nur noch Sätze aktiv, die keine oder die gewünschte Kennung tragen.
Wirkzeitpunkt der Satzunterdrückung
Der Interpreter läuft gegenüber der Ausführung eine variable Anzahl von Sätzen voraus. Die Satzunterdrückung kann nur dann korrekt wirken, wenn sie früh genug (eventuell schon vor Programm-Start) gesetzt wird oder der Interpreter an einer geeigneten Stelle des Programms mit der Ausführung synchronisiert wird (Dekodierstopp).


Look-Ahead

Interpreter (DIN 66025/G-Code) [image] Grundlagen der NC-Programmierung [image] Look-Ahead
Look-Ahead
Die tatsächliche Geschwindigkeit im Segmentübergang ist von vielen Parametern abhängig. Dazu zählen u.a. Bahnrestweg, Dynamikparameter des aktuellen Segments und indirekt der geometrische Winkel im Segmentübergang.
Der Dynamik-Look-Ahead (im Folgenden einfacher als Look-Ahead bezeichnet) sorgt dafür, dass die Geschwindigkeit an Segmentübergängen möglichst hoch bleiben kann. Dabei werden in der Standardkonfiguration 128 Geometrie-Einträge berücksichtigt.
Ohne Look-Ahead wird die Geschwindigkeit an jedem Segmentübergang auf 0 reduziert (G60).
Segmente mit unterschiedlichen Zielgeschwindigkeiten
Ändert sich die Zielgeschwindigkeit von einem hohen Geschwindigkeitsniveau auf ein niedrigeres (N10 -> N20), so ist die niedrigere Geschwindigkeit zu Beginn des Segments bereits erreicht.
Ändert sich die Zielgeschwindigkeit von einem niedrigen Geschwindigkeitsniveau auf ein höheres (N20 -> N30), so wird die höhere Geschwindigkeit mit dem Segmentübergang eingeleitet. D.h. es ist immer sichergestellt, dass auch am Rande des Segments die aktuelle Geschwindigkeit nicht höher wird, als die programmierte.
grün: Bahngeschwindigkeit
blau: Position
orange: Satznummer
N10 G01 X600 F30000
N20 G01 X700 F15000
N30 G01 X900 F30000
M30
grün: Bahngeschwindigkeit
blau: Position
orange: Satznummer
N40 G01 X200 F15000
N50 G01 X800 F30000
N60 G01 X900 F15000
M30


Glättung von Segmentübergängen

Interpreter (DIN 66025/G-Code) [image] Grundlagen der NC-Programmierung [image] Glättung von Segmentübergängen
Glättung von Segmentübergängen
Übersicht
Segmentübergänge die nicht zweimal stetig differenzierbar sind, führen zu Unstetigkeiten in der Dynamik, wenn die Bahngeschwindigkeit dort nicht auf 0 abgesenkt wird. Um mit endlicher Geschwindigkeit ohne dynamische Unstetigkeiten den Segmentübergang zu passieren, gibt es die Möglichkeit, die Segmentübergänge mittels Bezier-Splines so zu glätten, dass die Geometrie lokal verändert und damit die Gesamtbahn zweimal stetig differenzierbar wird.
Toleranzkugel
Zur Glättung wird um jeden Segmentübergang eine Toleranzkugel gelegt, innerhalb der die Bahn von ihrer vorgegebenen Geometrie abweichen darf, jedoch nur soweit, dass sie in der Toleranzkugel bleibt. Der Radius der Toleranzkugel (Parametrierung) wird durch den Benutzer vorgegeben und gilt modal für alle Segmentübergänge die keinen Genauhalt oder Stopp im Segmentübergang implizieren. Die Radien der Toleranzkugeln werden automatisch adaptiv gesetzt indem verhindert wird, dass sich - bei kleinen Segmenten - Toleranzkugeln überlappen.
Dynamikparameter
Die Glättung erlaubt eine schnellere Dynamik. Die vom System vorberechnete maximale Segmentübergangsgeschwindigkeit VeloLink kann vom Benutzer insofern beeinflusst werden, als der Systemparameter C2-Geschwindigkeitsreduktion C2 (Parametrierung) die Segmentübergangsgeschwindigkeit auf C2x VeloLink setzt. Der Faktor ist online änderbar.
Verhalten an Segmentübergängen
Bei Eintritt in die Toleranzkugel ist die Bahnbeschleunigung 0 und die Bahngeschwindigkeit gleich der Segmentüberganggeschwindigkeit. Das wird innerhalb der Toleranzkugel beibehalten. In der Toleranzkugel ist der Override nicht aktiv, d.h. die durch den Override bedingte Änderung des Geschwindigkeitsniveaus wird in der Toleranzkugel unterbrochen und nach dem Austritt aus der Toleranzkugel fortgesetzt.


Koordinatensystem

Interpreter (DIN 66025/G-Code) [image] Grundlagen der NC-Programmierung [image] Koordinatensystem
Koordinatensystem
Die Bezeichnungen für die Achsen einer Werkzeugmaschine werden durch die DIN 66217 festgelegt. Dabei werden die Buchstaben X, Y und Z für Achsen vergeben. Diese bilden ein rechtsdrehendes und rechtwinkliges (kartesisches) Koordinatensystem. Bei vielen Maschinen sind nicht in jeder Einrichtung drei Achsen vorhanden. In diesen Fällen werden einzelne dieser Buchstaben sinngemäß vergeben und nicht vorhandene Achsen übersprungen.


Maßangaben

Interpreter (DIN 66025/G-Code) [image] Grundlagen der NC-Programmierung [image] Maßangaben
Maßangaben
Maßangaben können sich wahlweise auf einen absoluten Punkt oder auf den aktuellen Sollwert beziehen.
Absolutmaßangabe
Befehl | G90
Aufhebung | G91

Bei der Absolutmaßangabe beziehen sich alle Positionsangaben immer auf den gerade gültigen Nullpunkt.
Für die Werkzeugbewegung bedeutet das, dass mit der Absolutmaßangabe die Positionen beschrieben werden, die das Werkzeug anfahren soll.
Kettenmaß
Befehl | G91
Aufhebung | G90
Bei der Kettenmaßangabe bezieht sich eine Positionsangabe auf den jeweils vorherigen Punkt. Dabei werden neben den Bahnachsen auch die Hilfsachsen (Q1..Q5) berücksichtigt.
Für die Werkzeugbewegung bedeutet das, dass mit der Kettenmaßangabe beschrieben wird, um wie viel das Werkzeug verfahren werden soll.
Einheiten
In der folgenden Tabelle werden die Einheiten für Längen, Winkel etc. beschrieben:
 | Einheit
Positionen und Längen | mm
Winkel | Grad
Zeiten | sec
Vorschub | mm/min


Arbeitsebene und Zustellrichtung

Interpreter (DIN 66025/G-Code) [image] Grundlagen der NC-Programmierung [image] Arbeitsebene und Zustellrichtung
Arbeitsebene und Zustellrichtung
Für die Beschreibung von Kreisen (außer CIP), sowie für die Fräserradius- und Werkzeuglängenkorrektur ist eine Festlegung der Arbeitsebene erforderlich.
Arbeitsebene XY
Befehl | G17
Aufhebung | G18 oder G19
Die Funktion G17 legt die Arbeitsebene auf die XY-Ebene und die Zustellrichtung in Z-Richtung fest.
Die Funktion wirkt als:
▪
Ebene für Werkzeugradiuskorrektur
▪
Zustellrichtung für Werkzeuglängenkorrektur (Offset)
▪
Ebene für die Kreisinterpolation
Wechsel der Arbeitsebene
Bei aktiver Werkzeugkorrektur kann die Arbeitsebene nicht gewechselt werden.
Arbeitsebene ZX
Befehl | G18
Aufhebung | G17 oder G19
Die Funktion G18 legt die Arbeitsebene auf die ZX-Ebene und die Zustellrichtung in Y-Richtung fest.
Arbeitsebene YZ
Befehl | G19
Aufhebung | G17 oder G18
Die Funktion G19 legt die Arbeitsebene auf die YZ-Ebene und die Zustellrichtung in X-Richtung fest.
Festlegung der Zustellrichtung
Befehl | P
Parameter | +Zustellrichtung positiv (default) - Zustellrichtung negativ
Die Parametrierung der Zustellrichtung ist für die Werkzeuglängenkorrektur erforderlich. Damit wird festgelegt, ob das Werkzeug oberhalb oder unterhalb des Werkstücks arbeiten soll.
Beispiel:
N10 G0 X0 Y0 Z0 F6000
N20 D2 P- Z
N30 G01 X100
N40 D0 Z
N50 M30
In diesem Beispiel arbeitet die Längenkorrektur unterhalb des Werkstücks.


Maßangaben Inch / metrisch

Interpreter (DIN 66025/G-Code) [image] Grundlagen der NC-Programmierung [image] Maßangaben Inch / metrisch
Maßangaben Inch / metrisch
ab TwinCAT V2.9 Build 901
G70 | Maßangabe in Inch
G71 | Maßangabe in Millimetern (default)
G700 | Maßangabe in Inch mit Verrechnung des Vorschubs
G710 | Maßangabe in Millimetern mit Verrechnung des Vorschubs
Standardmäßig ist die Maßangabe in Millimetern (G71) aktiviert. Ob dafür die Koordinaten umgerechnet werden müssen, ist in den Maschinenparametern (Karteireiter: Interpreter) hinterlegt. Auch hier ist standardmäßig das Basismaßsystem auf Millimeter eingestellt.
Auswirkungen der Umschaltung
Für den Fall, dass das Basismaßsystem ungleich dem aktuellen Maßsystem (mit G70 bzw. G71 eingestellten) ist, so müssen bestimmte Parameter und Koordinaten umgerechnet werden. Der hierfür benötigte Umrechnungsfaktor ist, wie das Basismaßsystem, in Maschinenparametern hinterlegt. Die Umschaltung hat auf folgende Parameter Auswirkungen:
▪
Weginformationen der Bahnachsen (X, Y & Z)
▪
Weginformationen der Hilfsachsen (Q1..Q5)
▪
Zwischenpunktkoordinaten (I, J, K)
▪
Kreisradius (B bzw. U)
▪
Programmierbare Nullpunktverschiebung
▪
Verrundungsradius (Kreis - und Spline-Smooting)
Des Weiteren gibt es Parameter, die grundsätzlich im Basismaßsystem verbleiben und nicht umgerechnet werden. Dazu zählen die
▪
Einstellbare Nullpunktverschiebung
▪
Werkzeugdaten
▪
Vorschübe (außer G700 bzw. G710)
Beispiel 1:
Basismaßsystem: Inch
...
N10 G71 (metric dimensions)
N20 G01 X100 (conversion is carried out)
N30 G70 (dimensions in inches)
N40 G01 Y100 (conversion is not necessary, because)
.... (the basic dimensions are also inches)
Beispiel 2:
Basismaßsystem: Millimeter
...
N10 G71 (metric dimensions)
N20 G01 X100 (conversion is not necessary, because)
(the basic dimensions are also metric)
N30 G70 (dimensions in inches)
N40 G01 Y100 (conversion is carried out)
Nullpunktverschiebungen (NPV)
Einstellbare Nullpunktverschiebungen (G54-G57) verbleiben grundsätzlich im Basismaßsystem und werden nicht umgerechnet. Bei den programmierbaren Nullpunktverschiebungen (G58 & G59) ist die Wirkungsweise von dem aktuellen Maßsystem bei der Anwahl der Verschiebung abhängig.
Beispiel 3:
Basismaßsystem: Millimeter
...
N10 G71 (mm - default)
N20 G54 (activates adjustable zero offset shift)
N30 G58 X100 (programmable zero offset shift)
N40 G01 X0 F6000 (the axis travels to 100 in the machine co-ordinate system)
N50 G70 (inch)
N60 G01 X0 (zero offset shift is programmed under G71 => zero offset shift remains unchanged)
(i.e. the axis does not move)
N70 G58 X100 (new programmable zero offset shift - now in inches)
N80 G01 X0 (axis moves out by zero offset shift - to 2540 in the machine co-ordinate system)


Einzelsatzbetrieb

Interpreter (DIN 66025/G-Code) [image] Grundlagen der NC-Programmierung [image] Einzelsatzbetrieb
Einzelsatzbetrieb
ab TwinCAT V2.9 Build 901
Zum Testen eines neuen NC-Programms gibt es die Möglichkeit, die NCI mit dem Funktionsbaustein ItpSingleBlock auf Einzelsatzbetrieb umzuschalten. Bei aktivem Einzelsatzbetrieb wird das NC-Programm nach jeder Zeile gestoppt. Die Ausführung der nächsten Zeile muss vom Anwender bestätigt werden. Dies können Sie tun, indem Sie im System Manager unter dem Reiter Editor auf 'NC Start (F5)' drücken oder im SPS-Funktionsbaustein ItpSingleBlock den Eingang 'bTriggerNext' setzen.
Es werden zwei Modi unterschieden:
▪
Interpreter-Einzelsatzbetrieb
▪
Nc-Kern-Einzelsatzbetrieb
Interpreter-Einzelsatzbetrieb
Bei aktivem Interpreter-Einzelsatzbetrieb wird das NC-Programm im Interpreter nach jeder Zeile gestoppt. Dies ist auch dann der Fall, wenn in der Zeile lediglich Berechnungen und kein Geometriesatz programmiert wurden.
Damit ist es zum Beispiel grundsätzlich möglich, R-Parameter neu zu beschreiben.
Die Aktivierung des Interpreter-Einzelsatzbetriebes sollten Sie vor dem Start des NC-Programms durchführen. Ist dies nicht möglich, so können Sie auch eine M-Funktion für die Aktivierung reservieren und diese mit einem Dekodierstopp kombinieren.
Wird der Interpreter-Einzelsatzbetrieb während der Abarbeitung des NC-Programms ohne M-Funktion und Dekodierstopp eingeschaltet, so kann nicht vorausgesagt werden, wann er aktiv sein wird. Theoretisch ist es möglich, dass die Speicher im NC-Kern (SVB & SAF) gefüllt sind und mehr als 100 Geometrie-Einträge beinhalten. Erst wenn diese Speicher komplett abgearbeitet sind, kann der Einzelsatz wirken.
NC-Kern-Einzelsatzbetrieb
Wie im Interpreter-Einzelsatzbetrieb werden im NC-Kern-Einzelsatzbetrieb die NC-Sätze einzeln ausgeführt. Allerdings mit dem Unterschied, dass im NC-Kern-Einzelsatzbetrieb bereits alle Einträge (z.B. Geometrie-Einträge) den Interpreter durchlaufen haben. Hier ist es also nicht möglich, z. B. R-Parameter nachträglich zu überschreiben.
Diese Betriebsart hat den Vorteil, dass der Einzelsatzbetrieb während der Bearbeitung des NC-Programms aktiviert werden kann. Wird während der Aktivierung ein Geometrie-Eintrag ausgeführt (d.h. die Achsen verfahren), so wird am nächstmöglichen Segmentende angehalten. Dies ist in der Regel das aktuelle Segment. Für die Aktivierung nach Programmstart ist hier keine M-Funktion mit Dekodierstopp erforderlich.
Wird der NC-Kern-Einzelsatzbetrieb in Verbindung mit den Verschleifungen eingesetzt, so erfolgt die Satzweiterschaltung in der Verschleifungskugel. Die programmierte Verschleifung wird weiterhin ausgeführt (ab TwinCAT V2.10 Build 1301).
Alternativen zur Aktivierung
Es wird empfohlen, den Einzelsatzbetrieb mit ItpSingleBlock zu aktivieren.
In früheren TwinCAT-Versionen muss der Einzelsatzbetrieb über das zyklische Kanalinterface aktiviert werden.
ab TwinCAT Version 2.7 und 2.8:
Den Einzelsatzbetrieb können Sie im zyklischen Kanalinterface der SPS an- bzw. abwählen. Dazu müssen Sie im Kanalinterface SPS/NC die Variable 'nItpMode' richtig maskieren.
Um den Interpreter-Einzelsatzbetrieb einzuschalten, muss Bit 14 (0x4000) gesetzt werden. Das Zurücksetzen schaltet den Einzelsatzbetrieb wieder aus.
Über dieses Interface ist es auch möglich, den Einzelsatz aus der SPS zu triggern. Dafür muss das Bit 15 gesetzt werden. Die Wirkungsweise ist dabei die gleiche, wie wenn NC-Start im System Manager betätigt wird.


Rechenparameter

Interpreter (DIN 66025/G-Code) [image] Grundlagen der NC-Programmierung [image] Rechenparameter
Rechenparameter
Bei den Rechenparametern (kurz R-Parameter) handelt es sich um Interpreter-Variablen, die mit einem Ausdruck der Form "R<n>" genannt werden. Da es sich bei 'n' um eine Ganzzahl im Wertebereich 0..999 handelt, stehen insgesamt 1000 R-Parameter zur Verfügung. Davon sind die ersten 900 (R0..R899) Werte lokale Variablen des NC-Kanals. Sie sind nur durch den Interpreter des Kanals zugreifbar. Die R-Parameter R900..R999 sind global angelegt. Sie existieren nur einmal pro NC und die Zugriffe aller Kanäle erfolgen auf denselben Speicher. Dadurch ist ein Datenaustausch (z.B. für eine Teileverfolgung, Kollisionsvermeidung etc.) über die Kanalgrenze hinweg möglich.
Mathematische Berechnungen
Die R-Parameter (wie auch die Achs-Koordinaten, Vorschübe etc.) sind als Variablen des Typs 'double' angelegt. Dadurch ist die Rechenfähigkeit des Rechners voll nutzbar. Die Zahl der Vor- und Nachkommastellen ist nicht durch eine Format-Vorschrift festgelegt. Allerdings ist die Auflösung und Rechengenauigkeit begrenzt. Dies wird in der Praxis aber nur in besonders kritischen Fällen sichtbar. Beispiele dafür können Differenzen von fast gleichen sehr großen Zahlen oder trigonometrische Funktionen in bestimmten Winkelbereichen sein.
Zuweisung von R-Parametern
N100 R5=17.5
N110 R6=-4
N120 R7=2.5 R8=1
Wie die dritte Zeile zeigt, ist es ohne weiteres möglich, mehr als eine Zuweisung in einem Satz anzugeben. Dadurch wird die Interpretation ein wenig beschleunigt, aber ein Fehler in der Zeile kann schwieriger zu lokalisieren sein.
Rechenformeln
Eine Rechenformel ist eine Erweiterung der Zuweisung. Sie besteht aus einem Ziel-Parameter, einem Zuweisungszeichen und einer Kette von Werten (R-Parameter und Konstanten), die durch Rechenanweisungen getrennt sind.
N100 R1=R2+R3-17.5*R9/2.5
Diese Formel wird (entgegen der mathematischen Vorgehensweise) strikt von links nach rechts abgearbeitet.
Die gezeigte Formel wird wie folgt gerechnet:
1.
Der Inhalt von R2 wird in das Rechenwerk geladen
2.
Der Inhalt von R3 wird in das Rechenwerk geladen
3.
Das Rechenwerk führt die Anweisung + aus
4.
Der Wert 17.5 wird in das Rechenwerk geladen
5.
Das Rechenwerk führt die Anweisung - aus
6.
Der Inhalt von R9 wird in das Rechenwerk geladen
7.
Das Rechenwerk führt die Anweisung * aus
8.
Der Wert 2.5 wird in das Rechenwerk geladen
9.
Das Rechenwerk führt die Anweisung / aus
10.
Der Inhalt des Rechenwerks wird im R-Parameter R1 gespeichert
Mathematische Funktionen
Der Interpreter stellt Standard-Rechenfunktionen zur Verfügung. Die DIN 66025 legt in dieser Hinsicht keine Syntax fest. Der Aufruf der Rechenfunktionen erfolgt über @6xx (vergl. Anhang - @-Kommando Übersicht).
Die trigonometrischen Funktionen werden dabei grundsätzlich in Grad berechnet.
Beispiel:
N10 R2=0 R3=45
N20 @630 R2 R3
In diesem Beispiel wird der Sinus von R3 in Grad berechnet. Das Ergebnis wird anschließend in R2 geschrieben.
R-Parameter Zugriff aus der SPS
Sie können die R-Parameter in die SPS einlesen, bzw. aus der SPS die R-Parameter beschreiben. Hierfür gibt es spezielle SPS Bausteine, die dies ermöglichen
▪
ItpReadRParams
▪
ItpWriteRParams
Achten Sie beim Beschreiben der R-Parameter darauf, dass der Interpreter der Satzausführung vorauseilt. D. h. das Schreiben der R-Parameter aus der SPS sollte vor dem NC-Programm-Start erfolgen oder mit einem Dekodierstopp verbunden sein.
ab TwinCAT V2.9 Build 1002
Zu Debugzwecken können Sie sämtliche R-Parameter zu beliebiger Zeit in eine Datei schreiben. Anstoßen können Sie diesen Prozess via ADS (vergl. ADS-Interface - Kanalfunktionen IndexOffset 0x24 & 0x25).
Sonstige Funktionen
RToDwordGetBit
Ab TwinCAT V2.10 B1308
Diese Funktion wandelt einen R-Parameter in ein DWord und überprüft dann, ob ein bestimmtes Bit gesetzt ist. Das Ergebnis wird wieder in einem R-Parameter hinterlegt.
Befehl | RToDwordGetBit[<dest>; <src>; <bit> ]
Parameter <dest> | R-Parameter in dem das Ergebnis eingetragen wird
Parameter <src> | R-Parameter, der die Zahl enthält die gewandelt und überprüft werden soll
Parameter <bit> | Bit, das überprüft werden soll (0..31)
Beispiel:
N10 R1=7
N20 RToDwordGetBit[R2;R1;0]
R10=31
N30 RToDwordGetBit[R3;R1;R10]
In R2 wird hier eine 1 und in R3 eine 0 eingetragen
Initialisierung von R-Parametern
ab TwinCAT V2.9 Build 954
Mit 'set RParam' wird einem zusammenhängenden Block von R-Parametern ein Wert zugewiesen.
Befehl | #set RParam(<start index>; <count>; <value> )#
Parameter <start index> | Beschreibt den ersten zu beschreibenden R-Parameter
Parameter <count> | Anzahl der R-Parameter, die beschieben werden sollen
Parameter <value> | Wert der zugewiesen wird
Beispiel:
N10 G01 X100 Y200 F6000
N15 R2=3000
N20 #set RParam( 1; 2; 0.0 )# (R2 is overwritten again here)
N30 G01 X500
Retten von R-Parametern
Wenn Sie den Inhalt von R-Parametern für eine spätere Verwendung noch brauchen, die R-Parameter aber zwischenzeitlich für einen anderen Zweck benutzt werden sollen, kann er zeitweise im Werte-Stapel des Rechenwerks hinterlegt werden.
Hierfür existieren zwei Möglichkeiten:
▪
Aufzählung der R-Parameter
▪
Bereichsangabe der R-Parameter
Retten der Werte:
Befehl
@40 <Anzahl> R<n> R<m>...
@41 <1. R-Parameter> <letzter R-Parameter>
Restauration der Werte:
Befehl
@42 <Anzahl> R<n> R<m>
@43 <letzter R-Parameter> <1. R-Parameter>
Beim Restaurieren der Werte nennen Sie die Parameter in umgekehrter Reihenfolge.
Beispiel 1:
(saving the data)
N100 @40 K4 R800 R810 R823 R4

N110 R800=4711
N120 ...

(restoring the data)
N200 @42 K4 R4 R823 R810 R800
Beispiel 2:
(saving the data)
N100 @41 R800 R805

N110 R800=4711
N120 ...

(restoring the data)
N200 @43 R805 R800
Größe des Stacks
Der Werte-Stapel des Rechenwerks hat eine begrenzte Kapazität. Läuft er über, so wird das NC-Programm mit einer Fehlermeldung abgebrochen. Das kann beim Retten von Werten auftreten, kann aber auch bei einer daran anschließenden Rechenformel vorkommen.


Programmierung von Bewegungsätzen

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen
Programmierung von Bewegungsätzen
Weiterführende Informationen
•
Referenzierung
•
Eilgang
•
Linearinterpolation
•
Kreisinterpolation
•
Helix
•
Verweilzeit
•
Genauhalt
•
Vorschubinterpolation
•
Nullpunktverschiebungen
•
Zielpositionsüberwachung
•
Konturzüge
•
Rotation
•
Spiegeln
•
Verschleifung von Segmentübergängen
•
Verrundung mit Kreissegmenten
•
Automatischer Genauhalt
•
Restweglöschen
•
Modulo Bewegungen
•
Hilfsachsen


Referenzierung

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Referenzierung
Referenzierung
Referenzieren (Homing) Sie die Achsen standardmäßig vor dem Bilden der 3D-Gruppe aus dem PTP-Kanal. Sie können dies aber auch noch aus dem NC-Programm heraus machen.
Wenn Sie die Achsen im PTP-Mode referenzieren, können Sie dies für mehrere Achsen gleichzeitig durchführen. Aus dem NC-Programm können Sie nur eine Achse zeitgleich referenzieren.
Befehl | G74
Aufhebung | Satzende
Beispiel:
N10 G74 X
N20 G74 Y
Referenzierung im eigenen Satz
Die Referenzierung muss in einem eigenen Satz erfolgen. Dabei dürfen Sie mit G74 nur eine Achse nennen. Dieses Kommando ist nur auf die Hauptachsen (X,Y,Z) anwendbar.


Eilgang

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Eilgang
Eilgang
Befehl | G0
Aufhebung | G1, G2 oder G3
Der Eilgang wird zum schnellen Positionieren des Werkzeugs eingesetzt und ist nicht für die Bearbeitung des Werkstücks vorgesehen. Die Achsen werden mit der maximaler Geschwindigkeit verfahren.
Wenn mehrere Achsen im Eilgang verfahren werden sollen, dann wird die Geschwindigkeit von der Achse bestimmt, die für ihren Bahnweg die längste Zeit benötigt.
Mit G0 wird ein Genauhalt (G60) aufgehoben.
Die Geschwindigkeit für den Eilgang wird für jede Achse individuell eingestellt. Editieren können Sie dies in den Parametern der Achse im System Manager unter dem Punkt NCI-Parameter.


Linearinterpolation

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Linearinterpolation
Linearinterpolation
Befehl | G1 bzw. G01 (Standardeinstellung)
Aufhebung | G0, G2 oder G3
Bei der Linearinterpolation verfährt das Werkzeug mit dem Vorschub F eine Gerade, die frei im Raum liegen kann. Dabei wird die Bewegung der betroffenen Achsen zeitgleich abgeschlossen.
Mit dem Vorschub F wird die Bahngeschwindigkeit in Millimeter pro Minute beschrieben. Dieser Wert ist modal wirksam, d.h. er muss nicht neu programmiert werden, wenn später für andere Geometrieeinträge der gleiche Vorschub verwendet werden soll.
Beispiel:
N10 G90
N20 G01 X100.1 Y200 F6000
In diesem Beispiel werden die Achsen linear auf die beschriebene Position gefahren. Die Z-Achse wird in diesem Programm nicht erwähnt und bleibt deshalb auf ihrer alten Position.


Kreisinterpolation

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Kreisinterpolation
Kreisinterpolation
Die Programmierung von Kreisen kann auf unterschiedliche Weise erfolgen. Dabei muss zwischen zwei Arten unterschieden werden. Dies ist zum einen ein Kreis in der Arbeitsebene (z.B. XY-Ebene) und zum anderen ein Kreis, der frei im Raum liegen kann (CIP-Kreis).
Kreisinterpolation im Uhrzeigersinn
Befehl | G2 bzw. G02
Aufhebung | G0, G1 oder G3
Mit der Funktion G2 wird eine Kreisbahn im Uhrzeigersinn beschrieben. Hierfür ist es allerdings erforderlich, dass die Arbeitsebene zuvor bestimmt wird (standardmäßig G17).
Um den Kreis eindeutig zu beschreiben sind neben dem Endpunkt noch weitere Parameter notwendig. Dabei kann zwischen einer Mittelpunktprogrammierung und einer Radiusprogrammierung gewählt werden.
Radiusprogrammierung
Bei der Radiusprogrammierung wird neben dem Endpunkt noch der Radius des Kreises programmiert. Für den Radius können wahlweise die Buchstaben 'B' bzw. 'U' verwendet werden.
Da mit G2 die Richtung vorgegeben ist, ist auch der Kreis eindeutig bestimmt. Die Anfangskoordinaten ergeben sich aus der vorangegangenen Geometrie.
Beispiel 1:
N10 G01 G17 X100 Y100 F6000
N20 G02 X200 B200
Winkelprogrammierung für Winkel >180°
Wenn ein Winkel größer als 180° gefahren werden soll, so muss der Radius negativ angegeben werden.
Vollkreisprogrammierung
Start- und Endpunkt müssen sich voneinander unterscheiden, damit der Mittelpunkt berechenbar ist. Somit ist mit der Radiusprogrammierung kein Vollkreis programmierbar. Hierfür kann die Mittelpunktprogrammierung verwendet werden.
Mittelpunktprogrammierung
Die Mittelpunktprogrammierung stellt eine Alternative zu der gerade beschriebenen Methode dar. Der Vorteil der Mittelpunktprogrammierung ist, dass hier auch Vollkreise beschrieben werden können.
In der Standardeinstellung wird der Mittelpunkt immer relativ zum Anfangspunkt des Kreises angegeben. Hierfür werden die Parameter I, J und K verwendet. Dabei steht
▪
I für den X-Anteil
▪
J für den Y-Anteil und
▪
K für den Z-Anteil.
Mindestens einer dieser Parameter ist 0 und es ist deshalb nicht erforderlich diese mitzuprogrammieren.
Beispiel 2:
N10 G01 G17 X100 Y100 F6000
N20 G02 I50 J0 (J is optional) X200
N30 M30 (program end)
Beispiel 3:
N10 G01 G18 X100 Y100 Z100 F6000
N20 G02 I0 K50 X150 Z150 (quarter circle in ZX plane)
N30 M30
Über die Programmierung eines Maschinendatums ist es aber auch möglich, den Mittelpunkt absolut einzugeben. Um auf ein Maschinendatenbit schreibend zuzugreifen wird der Befehl @402 benötigt.
Im folgenden Beispiel wird der Kreis aus dem 1. Beispiel mit dem absoluten Kreismittelpunkt programmiert.
Beispiel 4:
N10 G01 G17 X100 Y100 F6000
N20 @402 K5003 K5 K1 (centre point programming on)
N30 G02 I150 J100 X200
N40 @402 K5003 K5 K0 (centre point programming off)
N50 M30
Kreisinterpolation gegen Uhrzeigersinn
Befehl | G3 bzw. G03
Aufhebung | G0, G1 oder G2
Mit der Funktion G3 wird eine Kreisbahn gegen Uhrzeigersinn gefahren. Die Parameter und auch die Eingabemöglichkeiten sind die gleichen, wie unter G2.
Kreisgenauigkeit
ab TwinCAT V2.9 Build 1022
Befehl | #set paramRadiusPrec(<param>)#
Parameter | param: maximal erlaubte Radiustoleranz 0.001 < param < 1.0 (default 0.1)
Mit der Funktion 'set paramRadiusPrec' wird die erforderliche Kreisgenauigkeit parametriert. Dieser Parameter wirkt auf Kreise, die mit G02 bzw. G03 programmiert werden.
Ist bei der Mittelpunkprogrammierung die Differenz der Radienlänge grösser als <param>, so wird ein Fehler generiert.
Mittelpunktskorrektur
ab TwinCAT V2.10 Build 1243
Befehl | CPCON (Standardeinstellung)
Aufhebung | CPCOF
Bei der Mittelpunktsprogrammierung ist der Kreis überbestimmt. Damit die Daten konsistent sind, wird im Standardfall der Mittelpunkt korrigiert. In der Regel ist dafür nur eine marginale Änderung des Mittelpunkts notwendig. Nach der Mittelpunktskorrektur ist der Betrag des Eingangsradius gleich dem Ausgangsradius.
Liegen Start- und Endpunkt sehr dicht beieinander, so kann der Mittelpunkt massiv verschoben werden. Dies kann bei automatisch generierten G-Code (Postprozessor) zu Problemen führen. Für manuell geschriebenen G-Code wird die Einstellung CPCON (center point correction on) empfohlen.
CIP-Kreis
Befehl | CIP
Aufhebung | Satzende
Die bislang besprochenen Kreise können nur in den Hauptebenen verfahren. Mit dem CIP-Kreis ist es auch möglich einen Kreis frei im Raum zu programmieren. Hierfür muss neben dem Endpunkt auch noch ein Punkt auf der Bahn programmiert werden.
Damit der Kreis eindeutig beschrieben werden kann, dürfen alle 3 Punkte (Anfangspunkt ist implizit vorgegeben) nicht kollinear sein. Es lässt sich also auf diese Weise kein Vollkreis programmieren.
Als Parameter für den Bahnpunkt stehen I, J und K zur Verfügung, die standardmäßig relativ zum Kreisanfangspunkt beschrieben werden.
Beispiel 5:
N10 G01 X100 Y100 F6000
N20 CIP X200 Y200 I50 J50 K50
Hinweis Um den CIP-Kreis verfahren zu können, darf die Fräserradiuskorrektur nicht aktiv sein.


Helix

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Helix
Helix
Wird einer Kreisbewegung eine senkrechte Linearbewegung überlagert, so erhält man eine Helix. Die Programmierung einer Helix ist nur in den Hauptebenen möglich. Es werden dabei die gleichen Parameter, wie bei der Kreisbewegung in den Hauptebenen verwendet. Zusätzlich wird noch die Achse, die senkrecht zur Ebene steht, verfahren.
ab TwinCAT 2.11 Build 2235
Die Helix kann zusammen mit der Fräserradiuskorrektur verwendet werden.
Beispiel:
N10 G01 G17 X100 Y0 Z0 F6000
N20 G03 I-50 Z100
M30


Verweilzeit

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Verweilzeit
Verweilzeit
Befehl | G4 bzw. G04
Aufhebung | Satzende
Parameter | F oder X
Mit G4 wird die Verweilzeit eingeschaltet. Sie dient dazu, zwischen zwei NC-Sätzen für eine programmierte Zeit in Sekunden, die Werkstückbearbeitung zu unterbrechen.
Beispiel:
N10 G01 X100 F6000
N20 G04 X0.5 (pause in sec)
N30 G02 X300
...
Hinweis Die Programmierung der Verweilzeit muss in einem eigenen Satz erfolgen und die Parameter (X bzw. F) müssen nach dem G04 programmiert werden.


Genauhalt

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Genauhalt
Genauhalt
satzweise
Befehl | G9 bzw G09
Aufhebung | Satzende
Die Genauhaltanweisung wird z.B. dann benutzt, wenn scharfe Konturecken hergestellt werden müssen. Dabei wird die Sollgeschwindigkeit der Bahn im Konturübergang bis auf null reduziert und anschließend wieder erhöht. Auf diese Weise wird sichergestellt, dass die programmierte Position genau angefahren wird.
Hinweis G09 wirkt nur sollwertseitig. Eine Überprüfung der Istwerte kann z.B. mit TPM (Zielpositionsüberwachung) vorgenommen werden.
modal
Befehl | G60
Aufhebung | G0
Beschreibung:
s.o.
vergl. auch Zielpositionsüberwachung (TPM)


Vorschubinterpolation

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Vorschubinterpolation
Vorschubinterpolation
ab TwinCAT V2.10 B1308
Konstante Vorschubinterpolation
Befehl | FCONST (Standradeinstellung)
Aufhebung | FLIN
Mit der konstanten Vorschubinterpolation (default) wird die programmierte Geschwindigkeit so schnell wie möglich angefahren.
Beispiel 1:
N05 FCONST
N10 G01 X1000 F50000
N20 G01 X2500 F80000
N30 G01 X3500 F60000
...
Lineare Vorschubinterpolation
Befehl | FLIN
Aufhebung | FCONST
Die lineare Vorschubinterpolation überführt die Geschwindigkeit von v_start nach v_end linear über den Bahnweg.
Beispiel 1:
N05 FCONST
N10 G01 X1000 F50000
N15 FLIN
N20 G01 X2500 F80000
N30 G01 X3500 F60000
...
Hinweis Wenn aufgrund der Geometrie oder z.B. einer M-Funktion die Geschwindigkeit am Segmentübergang stärker reduziert werden muss, als die programmierte Segmentendgeschwindigkeit, so wird der lineare Geschwindigkeitsverlauf so lange wie möglich eingehalten. Erst wenn es dynamisch erforderlich ist, wird auf die reduzierte Segmentendgeschwindigkeit verzögert.


Nullpunktverschiebungen

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Nullpunktverschiebungen
Nullpunktverschiebungen
In TwinCAT NC I stehen eine Reihe von Nullpunktverschiebungen zur Verfügung. Hiermit wird der Abstand zwischen dem Werkstück- und dem Maschinennullpunkt beschrieben.
Unterdrückung der Nullpunktverschiebung
Befehl | G53
Aufhebung | G54 bis G59
Mit G53 wird die Nullpunktverschiebung modal unterdrückt. Dabei wirkt sich die Unterdrückung sowohl auf die einstellbare, wie auch auf die programmierbare Nullpunktverschiebung aus.
Einstellbare Nullpunktverschiebung
Befehl | G54 G55 G56 G57
Aufhebung | G53 oder Anwahl einer anderen einstellbaren Nullpunktverschiebung
Im NC-Programm kann über die Befehle G54 bis G57 zwischen den Nullpunktverschiebungen hin- und hergeschaltet werden.
Parametrierung
Die einstellbare Nullpunktverschiebung kann auf unterschiedliche Weise parametriert werden
1.
SPS-Funktionsbaustein ItpWriteZeroShiftEx (empfohlener Standard)
2.
System Manager
3.
aus dem DIN-Programm (ab TwinCAT V2.9 Build 1031)
Die Parameter werden für jeden Interpolationskanal einzeln gesichert. D.h. die einstellbaren Nullpunktverschiebungen sind kanalabhängig.
Hinweis Die Anwahl der einstellbaren Nullpunktverschiebung muss in einem eigenen Satz erfolgen. Damit die Verschiebung auch wirklich herausgefahren wird, müssen in einem folgenden Geometriesatz wenigstens die betroffenen Achsen genannt werden.
Beispiel 1:
N10 G01 X100 Y0 Z0 F6000
N20 G54 (activates adjustable zero offset shift (NPV))
N30 G01 X Y Z
N40 M30
In Beispiel 1 werden in Zeile 30 alle Achsen beteiligten Achsen genannt. Dies bewirkt, dass die Nullpunktverschiebungen für alle Achsen herausgefahren werden.
Beispiel 2:
N10 G01 X100 Y0 Z0 F6000
N20 G54 (activates adjustable zero offset shift (NPV))
N30 G01 X200 Y
In Beispiel 2 wird in Zeile 30 die X-Achse an die Position 200 + Verschiebung in X-Richtung verfahren. Bei der Y-Achse wird lediglich die Verschiebung herausgefahren und die Z-Achse wird nicht bewegt.
Parametrierung aus dem DIN-Programm
ab TwinCAT V2.9 Build 1031
Befehl | #set paramZeroShift( G<n>; <value x>; <value y>; <value z> )#
Parameter G<n> | Nullpunktverschiebung die parametriert werden soll (G54..G59)
Parameter <value> | Koordinaten der Nullpunktverschiebung
Mit '#set paramZeroShift(..)#' wird die NPV parametriert aber noch nicht aktiviert. Dafür muss der G-Code noch explizit programmiert werden.
Beispiel 3:
N10 G01 X100 Y0 Z0 F6000
N20 R12=200
N30 #set paramZeroShift( G54; 100.0; R12; -20)#
N40 G54 (activates adjustable zero offset shift (NPV))
N50 G01 X200 Y Z
Programmierbare Nullpunktverschiebung
Befehl | G58 oder G59
Aufhebung | G53
Neben der einstellbaren existieren auch noch programmierbare Nullpunktverschiebungen. Diese Art der Nullpunktverschiebung wird direkt aus dem NC-Programm beschrieben.
Addition der Nullpunktverschiebungen
Die programmierbare Nullpunktverschiebung wirkt nur bei aktiver einstellbarer Nullpunktverschiebung. D.h. die gesamte Verschiebung ist die Summe aus
• eingestellter Nullpunktverschiebung(G54, G55, G56 oder G57)
• erster programmierbarer Nullpunktverschiebung (G58)
• zweiter programmierbarer Nullpunktverschiebung (G59)
Beispiel 4:
N10 G01 X100 Y0 Z0 F6000
N20 G54 (activates adjustable zero offset shift (NPV))
N30 G58 X0.5 Y0.5 Z0.5 (1st prg. zero offset shift)
N50 X Y Z (movements for the zero offset shift)
...
M30
Verhalten bei Kettenmaßangabe
Standardverhalten, unabhängig von der TwinCAT Version
Eine Veränderung des Nullpunktes wirkt sich auch im Kettenmaß aus.
Beispiel 5:
N10 G01 X100 Y0 Z0 F6000
N20 G54 (activates adjustable zero offset shift (NPV))
N25 G58 X10 Y10 Z0
N30 G91 (Incr. dimensions)
N40 G01 X200 Y0
N50 ...
In N40 verfährt Y im Basis-Koordinatensystem auf 10. Mit der Verschiebung des Nullpunktes, verschiebt sich auch der Bezugspunkt für die Kettenmaßprogrammierung, womit sich für Y dann ein Verfahrweg ergibt.
Auf diese Weise kann eine Kontur, die komplett im Kettenmaß programmiert ist, durch eine Nullpunktverschiebung an beliebiger Stelle abgefahren werden.
ab TwinCAT Version 2.10 Build 1308
Ab dieser Version ist das Verhalten unter G91 parametrierbar.
Befehl | Beschreibung
ZeroShiftIncOn | Auch unter G91 werden die Nullpunktverschiebungen herausgefahren, wenn die Achse genannt wird
ZeroShiftIncOff | Unter G91 wird die Nullpunktverschiebung nicht herausgefahren
Beispiel 6:
N10 G01 X100 Y0 Z0 F6000
N15 ZeroShiftIncOff
N20 G54 (activates adjustable zero offset shift (NPV))
N25 G58 X10 Y10 Z0
N30 G91 (Incr. dimensions)
N40 G01 X200 Y
N50 ...
Da im Beispiel 6 'ZeroShiftIncOff' eingestellt ist, wird die X-Achse in N40 um 200mm unabhängig von der neuen Nullpunktverschiebung verfahren. Für die Y-Achse wurde keine Zielkoordinate programmiert, die Achse bleibt also stehen.
Vergl. auch ToolOffsetIncOn/Off


Zielpositionsüberwachung

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Zielpositionsüberwachung
Zielpositionsüberwachung
ab TwinCAT V2.9 Build 1026
Befehl | TPM
Aufhebung | Satzende
Mit dem Befehl 'TPM' wird die Zielpositionsüberwachung aus dem NC-Programm angestoßen. Dies führt am Geometrieende immer zu einem sollwertseitigen Genauhalt und einer anschließenden Kontrolle des Zielpositionsfensters. Wenn für alle Achsen der Gruppe die Überwachungsbedingungen erfüllt sind, erfolgt die Satzweiterschaltung.
Wie bei der PTP wird diese Funktion für jede Achse einzeln aktiviert und parametriert. Somit können z.B. für Hilfsachsen andere Grenzwerte als für die Bahnachsen gewählt werden.
Beispiel 1:
N10 G01 X100 Y100 F6000
N20 G01 X300 Y100 TPM
...
Am Ende der Bewegung von N20 wird sowohl für die X-Achse, als auch für Y die Zielpositionsüberwachung durchgeführt (vorausgesetzt, beide Achsen haben die Zielpositionsüberwachung aktiviert)
Beispiel 2:
N10 G01 X100 Y100 F6000
N20 G01 X300 Y100
N30 M61 (Type Handshake)
N40 TPM
...
TPM kann auch in einem eigenen Satz programmiert werden. Dabei wird dann die letzte Positionierung überprüft (hier von N20).
Hinweis Wenn die Zielpositionsüberwachung für eine Achse aktiviert ist, sollte auch der Zielpositionsalarm (PEH) aktiv sein. Die Zeitüberwachung bewirkt, dass spätestens nach dem Timeout ein Kanalfehler generiert wird, falls sich die Achse noch nicht im Zielpositionsfenster befindet. Damit keine unnötigen Kanalfehler generiert werden, sollte der Timeout-Wert genügend groß gewählt werden (z.B. 5 - 10s). Für den Fall, dass keine PEH-Zeitüberwachung aktiv ist und sich die Achse dauerhaft außerhalb des Positionsfensters befindet, erfolgt keine Satzweiterschaltung und die NC bleibt von außen betrachtet stehen. Dabei befindet sich die SAF im Waiting-Zustand (nicht zu verwechseln mit dem Interpreterstatus).
Vergl. auch Genauhalt (G09).


Konturzüge

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Konturzüge
Konturzüge
ab TwinCAT V2.9 Build 959
Winkel und Segmentlänge
Bei dieser Art der Programmierung werden ähnlich wie bei Polarkoordinaten immer der Winkel und der Betrag (Segmentlänge) angegeben.
Parameter | Beschreibung
ANG | Winkel in Grad relativ zur Abszisse ( -360 ≤ ang ≤ 360 )
SEG | Betrag der Segmentlänge
Beispiel 1:
N10 G01 ANG=45 SEG=424.264 F60000
N20 G01 ANG=0 SEG=400
N30 G01 ANG=-45 SEG=282.843
oder
N10 G01 ANG=45 SEG=424.264 F60000
N20 G01 X700 Y300
N30 G01 ANG=-45 SEG=282.843
Einschränkungen:
▪
Die Programmierung darf nur in der angewählten Hauptebene erfolgen.
▪
Die Segmentlänge muss echt größer Null sein und bezieht sich auf die Projektion der Hauptebene
Hinweis Eine Verrundung bzw. Fase kann zusätzlich noch programmiert werden. Die Parameter ANG und SEG müssen in jedem Satz programmiert werden. Bei der Zuweisung dürfen R-Parameter aber keine Formel programmiert werden.
Winkel und eine Komponente in der Ebene
Wie oben wird ein Winkel programmiert, aber die Länge des Segments wird nicht mehr direkt vorgegeben. Sie wird aus einer Komponente der angewählten Hauptebene berechnet.
Beispiel 2:
N10 G01 ANG=45 X300

N20 G01 ANG=0 Z700
R10=100
N30 G01 ANG=315
X=R10
Laufzeitfehler
Werden zwei Komponenten der Ebene oder keine angegeben, so führt dieses zu einem Laufzeitfehler. Des Weiteren wird ein Laufzeitfehler generiert wenn die Bewegung parallel zur Abszisse bzw. Ordinate programmiert wird und es keinen Schnittpunkt damit gibt.


Rotation

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Rotation
Rotation
Neben der Nullpunktverschiebung ist es auch möglich eine Rotation (Drehung) zu programmieren. Dabei wird zwischen einer absoluten und einer additiven Rotation unterschieden.
Mit der Rotation können im Werkstückkoordinatensystem die Koordinatenachsen (X, Y und Z) gedreht werden.
Damit ist es möglich, schräg liegende Flächen (in der Ebene oder auch im Raum) zu bearbeiten.
Absolute Rotation
Befehl | ROT X<Wert(x)> Y<Wert(y)> Z<Wert(z)>
Aufhebung | ROT (ohne Parameter)
Die Anweisungen zur Rotation müssen in einem eigenen Satz programmiert werden. Dabei sind die Winkelangaben grundsätzlich in Grad vorzunehmen.
Drehrichtung
Ein positiver Winkel beschreibt die Drehung in Richtung der positiven Koordinatenachse und Drehung gegen den Uhrzeigersinn.
Durchführung der Drehung
Bei der Drehung eines Koordinatensystems ist die Reihenfolge der Drehung von entscheidender Bedeutung. In TwinCAT NC I wird die Rotation immer in folgender Reihenfolge durchgeführt:
1.
Drehung um die Z-Achse
2.
Drehung um die Y-Achse
3.
Drehung um die X-Achse
Diese Reihenfolge wird auch dann eingehalten, wenn die Parameter in einer anderen Reihenfolge programmiert werden.
Als Drehpunkt wird immer der Ursprung des Werkstückkoordinatensystems verwendet. D.h. die gerade aktive gesamte Nullpunktverschiebung beschreibt den Drehpunkt.
Additive Rotation
Neben der absoluten Programmierung der Rotation, ist es auch möglich diese additiv durchzuführen. Dabei gelten die gleichen Bedingungen wie bei der absoluten Rotation.
Befehl | AROT X <Wert(x)> Y<Wert(y)> Z<Wert(z)>
Aufhebung | ROT (ohne Parameter)
Beispiel:
N10 G01 G17 X0 Y0 Z0 F60000
N20 G55
N30 G58 X200 Y0
N50 L47
N60 G58 X200 Y200
N65 ROT Z30
N70 L47
N80 G58 X0 Y200
N90 AROT Z15
N100 L47
N110 M30
L47
N47000 G01 X0 Y0 Z0 (movements for zero shift & rotation)
N47010 G91 (incremental dimensions)
N47020 G01 X100
N47030 G01 Y80
N47040 G03 X-20 Y20 I-20 J0
N47050 G01 X-40
N47060 G01 Y-40
N47070 G01 X-40 Y-30
N47080 G01 Y-30
N47090 G90
N47100 M17
In diesem Beispiel wird die gleiche Kontur unter verschiedenen Drehwinkeln verfahren. Da die Kontur (L47) im Kettenmaß programmiert ist und der Anfangspunkt über die programmierte Nullpunktverschiebung beschrieben wird, ist die Drehung recht anschaulich.
Hinweis:
Nach der Programmierung des ROT- bzw. AROT-Kommandos muss immer der komplette Bahnvektor (X, Y & Z) zugewiesen werden.
Erweiterungen der Rotation
ab TwinCAT V2.9 Build 1031
bis TwinCAT V2.9 Build 1030 muss nach einem ROT-Kommando immer der komplette Bahnvektor programmiert werden. Da dies in einigen Applikation schwer zu realisieren ist, kann optional diese Berechnung automatisch im Interpreter erfolgen. Möchte man diese Option nutzen, so sollte zu Beginn des NC-Programm 'RotExOn' programmiert werden.
Befehl | RotExOn
Aufhebung | RotExOff
Beispiel:
N10 RotExOn
...
N100 G54 (activate zero point & point of rotation)
N110 ROT X90
N120 G0 Z3 (preposition the tool)
N130 G01 Z-10 F6000 (lower to cutting depth)
N140 G01 X100
N150 G01 Z3 (raise to preposition)
...
N1000 RotExOff
N1010 M30
Berechne Rotation
ab TwinCAT V2.9 Build 931
Befehl | CalcRot[ R<s>; R<t>; R<u>]
 | CalcInvRot[ R<s>; R<t>; R<u>]
Parameter | Die 3 R-Parameter beschreiben den zu berechnenden Vektor. Mit der Berechnung wird das Ergebnis in diese R-Parameter eingetragen und der ursprüngliche Wert damit überschrieben
Die Funktion CalcRot rotiert einen dreidimensionalen Vektor um die aktuellen Rotationswinkel. Dabei wurden die Rotationswinkel zuvor mit ROT bzw. AROT beschrieben. Die Reihenfolge der Berechnung ist die gleiche wie bei der eigentlichen Rotation, also Z, Y und X.
Die Funktion CalcInvRot verhält sich genau umgekehrt. Dabei werden die Vorzeichen der aktuell gültigen Rotationswinkel invertiert und die Reihenfolge der Berechnung ist X, Y und Z. Der Vektor wird also quasi zurückgedreht.
CalcRot und CalcInvRot generieren keine Geometrie, sondern führen lediglich die Berechnung des Vektors aus.
Beispiel:
N10 G01 X40 Y10 Z0 F6000 (the axes are moved
without rotation)
N20 R1=40 R2=10 R3=0

N30 ROT Z45

(What is the position to which X, Y, must be taken so that no
movement is executed?)
N40 CalcInvRot[R1; R2; R3]
N50 G01 X=R1 Y=R2 Z=R3 (R1=35.35 R2=-21.21 R3=0)
N60 ...
ab TwinCAT V2.9 Build 948
Befehl | RotVec[ R<x>; R<y>; R<z>; R<α>; R<β>; R<γ>]
Parameter | Die 3 R-Parameter (x..z) beschreiben den zu drehenden Vektor. Mit der Berechnung wird das Ergebnis in diese R-Parameter eingetragen und der ursprüngliche damit Wert überschrieben Die letzten 3 R-Parameter beschreiben die Winkel.
Die Funktion RotVec rotiert einen dreidimensionalen Vektor um die mitgegebenen Winkel. Dabei ist die Reihenfolge der Drehung wie beim ROT Z, Y und X. RotVec ist eine reine Berechnungsroutine zum Drehen eines Vektors und hat keine Auswirkungen auf ROT bzw. AROT.


Spiegeln

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Spiegeln
Spiegeln
ab TwinCAT V2.11 Build 2016
Die Spiegeln-Funktionalität (Mirror) ändert das Vorzeichen benannter Achsen. Auf diese Art können Subroutinen nochmal verwendet werden.
Spiegeln
Command | Mirror <opt. X> <opt. Y> <opt. Z>
Cancellation | Mirror (without parameters)
Die Spiegeln-Anweisungen müssen in ihrem eigenen Block programmiert werden. Gespiegelte Achsen müssen ohne weitere Parameter benannt werden.
Beispiel:
N20 G54
N30 G58 X100 Y100
N40 L100

N50 G58 X-100 Y100
N60 Mirror X
N70 L100

N80 G58 X-50 Y-50
N90 Mirror X Y
N100 L100

N110 G58 X10 Y-10
N120 Mirror Y
N130 L100

N140 Mirror (turn off mirror)
N150 G0 X0 y0
M02

L100
N1000 G0 X200 Y0 Z10 F60000 (move to start pos)
N1020 G01 Z0
N1030 G03 X200 Y100 J50
N1040 G01 X50
N1050 G01 Y400
N1060 G01 X0
N1070 G01 Y0
N1080 G01 X200
N1090 G01 Z10
M17
Falls eine Nullpunktverschiebung vorliegt (G54...G59) ist die Spiegeln-Funktionalität abhängig vom derzeitig programmierten Koordinatensystem.


Verschleifung von Segmentübergängen

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Verschleifung von Segmentübergängen
Verschleifung von Segmentübergängen
Weiterführende Informationen
•
Übersicht
•
Parabel-Verschleifung
•
Bi-Quadratische-Verschleifung
•
Bezier-Verschleifung 3-ter Ordnung
•
Bezier-Verschleifung 5-ter Ordnung
•
Alte Bezier-Verschleifungen
•
Subtypen


Übersicht

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Verschleifung von Segmentübergängen [image] Übersicht
Übersicht
Übersicht
Polygonzüge (G01-Sätze) bestehen in der Regel nicht aus stetig differenzierbaren Segmentübergängen, sondern es gibt „Knicke“ in der Kontur. Eine instantane Geschwindigkeitsänderung ist im Allgemeinen nicht möglich. Soll die Bahngeschwindigkeit an solchen Übergängen nicht auf 0 reduziert werden, kann die Kontur im Bereich des Segmentübergangs durch eine Verschleifung verändert werden.
 | Ausführung | Unterstützte Segmentübergänge | Beschleunigung der Achskomponenten | max. Toleranzgröße | adaptiver Toleranzradius | Befehl
Kreisverrundung | Interpreter | Gerade-Gerade | Beschleunigungssprung (Höhe mit dem C1-Faktor parametrierbar) | 1/2 des Ein- bzw. Ausgangssegments | nein | paramCircularSmoothing(...)
Parabel-Verschleifung | NC-Kern | Gerade-Gerade | Beschleunigungssprung auf ein konstantes Niveau (Höhe mit dem C1-Faktor parametrierbar) | 1/3 des Ein- bzw. Ausgangssegments | kann angewählt werden | paramVertexSmoothing(...)
Bi-Quadratische-Verschleifung | NC-Kern | Gerade-Gerade | Stetige Beschleunigung - beim Ein- und Austritt ist die Beschleunigung 0 - es ist kein Zwischenpunkt erforderlich | 1/3 des Ein- bzw. Ausgangssegments | kann angewählt werden | paramVertexSmoothing(...)
Bezier-Verschleifung 3-ter Ordnung | NC-Kern | alle | Beschleunigungssprung auf ein lineares Niveau (Höhe mit dem C1-Faktor parametrierbar) | 1/3 des Ein- bzw. Ausgangssegments | kann angewählt werden, wirkt bei Gerade-Geraden-Übergängen | paramVertexSmoothing(...)
Bezier-Verschleifung 5-ter Ordnung | NC-Kern | alle | Stetige Beschleunigung - beim Ein- und Austritt ist die Beschleunigung 0 - es ist kein Zwischenpunkt erforderlich | 1/3 des Ein- bzw. Ausgangssegments | kann angewählt werden, wirkt bei Gerade-Geraden-Übergängen | paramVertexSmoothing(...)
'Alte' Bezier-Verschleifung | NC-Kern | alle | Stetige Beschleunigung - beim Ein- und Austritt, sowie im symmetrischen Zwischenpunkt ist die Beschleunigung 0 | 1/4 des Ein- bzw. Ausgangssegments | nein | paramSplineSmoothing(...) paramVertexSmoothing(...)
Eine Verschleifung wirkt ab dem Übergang zwischen den nachfolgenden zwei Segmenten.
Wirkungsweise der Verschleifung
Der Radius der Toleranzkugel ist jederzeit im NC-Programm veränderbar und kann mit dem Radius 0 wieder ausgeschaltet werden. Eine Verschleifung bleibt bis zum nächsten Reset des Interpreters oder TwinCAT-Restart aktiv.


Parabel-Verschleifung

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Verschleifung von Segmentübergängen [image] Parabel-Verschleifung
Parabel-Verschleifung
Parabel-Verschleifung
ab TwinCAT V2.10 B1248
Befehl | #set paramVertexSmoothing(<type>; <subtype>; <radius> )#
Parameter <type> | für die Parabel-Verschleifung: 2
Parameter <subtype> | 1: konstanter Toleranzradius 2: Abstand Schnittpunkt zum Scheitelpunkt 3: adaptiver Toleranzradius
Parameter <radius> | max. Radius der Toleranzkugel
Bei der Parabel-Verschleifung wird geometrisch eine Parabel im Segmentübergang eingefügt. Dadurch wird die Geschwindigkeit innerhalb des Toleranzradius stetig überführt.
Die Parabel wird lediglich bei Geraden-Geraden-Übergängen eingefügt.


Bi-Quadratische-Verschleifung

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Verschleifung von Segmentübergängen [image] Bi-Quadratische-Verschleifung
Bi-Quadratische-Verschleifung
Bi-Quadratische-Verschleifung
ab TwinCAT V2.10 B1248
Befehl | #set paramVertexSmoothing(<type>; <subtype>; <radius> )#
Parameter <type> | für die Parabel-Verschleifung: 3
Parameter <subtype> | 1: konstanter Toleranzradius 2: Abstand Schnittpunkt zum Scheitelpunkt 3: adaptiver Toleranzradius
Parameter <radius> | max. Radius der Toleranzkugel
Bei der Bi-Quadratischen-Verschleifung tritt kein Beschleunigungssprung in den Achskomponenten auf. Bei gleichem Radius ist deshalb evtl. eine kleinere Eingangsgeschwindigkeit als bei der Parabel notwendig.
Die Wirkungsweise der Subtypen ist mit den Subtypen der Parabel identisch.


Bezier-Verschleifung 3-ter Ordnung

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Verschleifung von Segmentübergängen [image] Bezier-Verschleifung 3-ter Ordnung
Bezier-Verschleifung 3-ter Ordnung
Bezier-Verschleifung 3-ter Ordnung
ab TwinCAT V2.10 B1308
Befehl | #set paramVertexSmoothing(<type>; <subtype>; <radius> )#
Parameter <type> | für die Bezier-Verschleifung 3-ter Ordnung: 4
Parameter <subtype> | 1: konstanter Toleranzradius 2: Abstand Schnittpunkt zum Scheitelpunkt 3: adaptiver Toleranzradius
Parameter <radius> | max. Radius der Toleranzkugel
Bei der Bezier-Verschleifung 3-ter Ordnung tritt mit dem Eintritt in die Toleranzkugel ein Beschleunigungssprung in den Achskomponenten auf. Die max. Größe wird durch die Beschleunigungen der Achskomponenten und den C1-Faktor begrenzt.
Diese Verschleifung ist für alle Segmentübergänge einsetzbar. Die Subtypen 2 und 3 wirken nur für Geraden-Geraden-Übergänge.
Spitze Winkel am Segmentübergang
Die Bezier-Splines werden standardmäßig auch bei sehr spitzen Winkel generiert. Damit die Dynamikwerte nicht überschritten werden, ist für diesen Fall eine erhebliche Geschwindigkeitsreduktion erforderlich. Da im Spline die Dynamik konstant gehalten wird, dauert es entsprechend lange, bis der Spline durchfahren wird. Für diesen Fall ist es häufig sinnvoll, den Segmentübergang mit einem Genauhalt anzufahren. Damit die Winkel nicht manuell berechnet werden müssen, gibt es den Befehl AutoAccurateStop.


Bezier-Verschleifung 5-ter Ordnung

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Verschleifung von Segmentübergängen [image] Bezier-Verschleifung 5-ter Ordnung
Bezier-Verschleifung 5-ter Ordnung
Bezier-Verschleifung 5-ter Ordnung
ab TwinCAT V2.10 B1308
Befehl | #set paramVertexSmoothing(<type>; <subtype>; <radius> )#
Parameter <type> | für die Bezier-Verschleifung 5-ter Ordnung: 5
Parameter <subtype> | 1: konstanter Toleranzradius 2: Abstand Schnittpunkt zum Scheitelpunkt 3: adaptiver Toleranzradius
Parameter <radius> | max. Radius der Toleranzkugel
Bei der Bezier-Verschleifung 5-ter Ordnung tritt mit dem Eintritt in die Toleranzkugel kein Beschleunigungssprung in den Achskomponenten auf. D.h. bei angewählter Verschleifung, ist der Beschleunigungsverlauf für die Bahnachsen immer stetig.
Diese Verschleifung ist für alle Segmentübergänge einsetzbar. Die Subtypen 2 und 3 wirken nur für Geraden-Geraden-Übergänge.
Spitze Winkel am Segmentübergang
Die Bezier-Splines werden standardmäßig auch bei sehr spitzen Winkel generiert. Damit die Dynamikwerte nicht überschritten werden, ist für diesen Fall eine erhebliche Geschwindigkeitsreduktion erforderlich. Da im Spline die Dynamik konstant gehalten wird, dauert es entsprechend lange, bis der Spline durchfahren wird. Für diesen Fall ist es häufig sinnvoll, den Segmentübergang mit einem Genauhalt anzufahren. Damit die Winkel nicht manuell berechnet werden müssen, gibt es den Befehl AutoAccurateStop.


Alte Bezier-Verschleifungen

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Verschleifung von Segmentübergängen [image] Alte Bezier-Verschleifungen
Alte Bezier-Verschleifungen
Funktionen zur Kompatibilität mit bestehenden Projekten
Diese Funktionen werden aus Kompatibilitätsgründen noch zur Verfügung gestellt. Für neue Projekte sollte die Bezier-Verschleifung 3-ter Ordnung oder die Bezier-Verschleifung 5-ter Ordnung verwendet werden.
Alte Bezier-Verschleifung mit paramVertexSmoothing
ab TwinCAT V2.10 B1243
Befehl | #set paramVertexSmoothing(<type>; <subtype>; <radius> )#
Parameter <type> | für die Bezier-Spline-Verschleifung: 1
Parameter <subtype> | für die Bezier-Spline-Verschleifung: 1
Parameter <radius> | Radius der Toleranzkugel
Beispiel 1:
N10 R57=100
#set paramVertexSmoothing(1; 1;R57)#
Alte Bezier-Verschleifung mit paramSplineSmoothing
ab TwinCAT Version 2.7 Build 423
Mit Hilfe der Glättung ist es möglich, zwischen zwei Geometrieeinträgen automatisch ein Bezier-Spline einzufügen. Hierfür muss lediglich der Radius der Toleranzkugel programmiert werden. Dieser beschreibt die maximal erlaubte Abweichung von der programmierten Kontur im Segementübergang. Der Vorteil bei dieser Art der Glättung gegenüber der Verrundung mit Kreiselement ist, dass hier an den Segementübergängen keine Beschleunigungssprünge entstehen.
Der Radius der Toleranzkugel ist jederzeit im NC-Programm veränderbar und kann mit dem Radius 0 wieder ausgeschaltet werden. Wird der Radius nicht auf 0 zurückgesetzt, bleibt er bis zum nächsten Reset des Interpreters oder TwinCAT-Restart aktiv.
Befehl | #set paramSplineSmoothing( <radius> )#
Parameter <radius> | Radius der Toleranzkungel
oder Alternativ
#set paramVertexSmoothing(...)
Beispiel 1:
N10 R57=100
#set paramSplineSmoothing(R57)#
Beispiel 2:
N10 G01 X0 Y0 F6000
N20 X1000
#set paramSplineSmoothing(100)#
N30 X2000 Y1000
N40 X3000 Y0
M30
Der neue Parameter ist ab dem Übergang zwischen den nachfolgenden zwei Segmenten gültig. D.h. in Beispiel 2 ist der neue Wert für die Toleranzkugel im Segmentübergang von N30 zu N40 gültig.
Bild: Kontur mit und ohne Spline im Segementübergang
Die Splines werden standardmäßig auch bei sehr spitzen Winkel generiert. Damit die Dynamikwerte nicht überschritten werden, ist für diesen Fall eine erhebliche Geschwindigkeitsreduktion erforderlich. Da aber im Spline die Dynamik konstant gehalten wird, dauert es entsprechend lange, bis der Spline durchfahren wird. Für diesen Fall ist es häufig sinnvoll, den Segmentübergang mit einem Genauhalt anzufahren. Damit die Winkel nicht manuell berechnet werden müssen, gibt es den Befehl 'AutoAccurateStop', der ebenfalls aus dem NC-Programm aufgerufen werden kann.


Subtypen

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Verschleifung von Segmentübergängen [image] Subtypen
Subtypen
Konstanter Toleranzradius (Subtyp 1)
Ist Subtyp 1 angewählt, so wird immer der maximale Toleranzradius (RTB) für die Verschleifung verwendet. Eine Verkleinerung von RTB erfolgt genau dann, wenn das Ein- bzw. Ausgangssegment kleiner als 3*RTB ist.
Abstand vom Schnittpunkt zum Scheitelpunkt (Subtyp 2)
Mit dem Subtyp 2 wird der Abstand vom programmierten Segmentübergang zum Scheitelpunkt der Parabel vorgegeben. Anhand dessen ergibt sich dann der Toleranzradius (RTB). Ist ein Segment zu kurz, so wird der Abstand so verkürzt, dass der Toleranzradius max. 1/3 einnimmt.
Adaptiver Toleranzradius (Subtyp 3)
Innerhalb des Toleranzradius (auch beim konstanten Toleranzradius) wird immer sichergestellt, dass die maximal zulässige Beschleunigung nicht überschritten wird. Je nach Ablenkungswinkel und Geschwindigkeit kann damit die maximal auftretende Achsbeschleunigung im Verrundungssegment unterschiedlich ausfallen. Ziel beim adaptiven Toleranzradius ist eine maximale Beschleunigung innerhalb der Verschleifung. Um dies zu erreichen, wird der Verrundungsradius unter Berücksichtigung der programmierten Geschwindigkeit und Dynamik entsprechend verkleinert. D.h. wird die programmierte Geschwindigkeit verändert, so kann sich auch der Toleranzradius ändern. Der Override hat keinen Einfluss auf den Radius.


Verrundung mit Kreissegmenten

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Verrundung mit Kreissegmenten
Verrundung mit Kreissegmenten
ab TwinCAT Version 2.6 Build 323
Mit Hilfe der Verrundung ist es möglich, zwischen zwei Geradenelementen automatisch ein Kreiselement einzufügen. Hierfür muss lediglich der Radius des Kreiselements programmiert werden.
Der Radius der Verrundung ist jederzeit im NC-Programm veränderbar und kann mit dem Radius 0 wieder ausgeschaltet werden. Vor dem Programmende oder einem Dekodierstopp ist es erforderlich die Verrundung auszuschalten.
Befehl | #set paramCircularSmoothing( <radius> )#
Parameter <radius> | Radius des Kreiselements der Verrundung
Beispiel:
N10 R57=4.5
#set paramCircularSmoothing(R57)#
…
#set paramCircularSmoothing(0)#
N1000 M02
Hinweis In Kombination mit der Fräserradiuskorrektur ist zu beachten, dass zuerst die Radiuskorrektur berechnet und anschließend die Kreisverrundung eingefügt wird. Somit bezieht sich der Verrundungsradius auf den TCP.
Hinweis Das alte Kommando paramGroupVertex wird weiterhin unterstützt. Es ist hier allerdings nicht möglich R-Parameter zu übergeben.
Syntax:
#set paramGroupVertex(<grp>,<radius>)#
Der erste Parameter beschreibt die Gruppe, auf den sich die Verrundung bezieht. Dieser Wert ist zurzeit immer 1. Mit dem zweiten Parameter wird der Radius der Verrundung festgelegt.


Automatischer Genauhalt

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Automatischer Genauhalt
Automatischer Genauhalt
ab TwinCAT Version 2.7 Build 423
Befehl | #set paramAutoAccurateStop(<winkel>)#
Parameter <winkel> | Grenzwinkel (in Grad) ab dem ein Genauhalt eingefügt wird
Abwahl | #set paramAutoAccurateStop( 0 )#
Mit dem Kommando 'AutoAccurateStop' wird ab einem definierten Grenzwinkel ein Genauhalt zwischen 2 Segmenten eingefügt.
Bei Kreissegmenten errechnet sich der Winkel aus den Eingangs- bzw. Ausgangstangenten.
Beispiel:
#set paramAutoAccurateStop(45)# (angle in
degrees)
N10 G01 X1000 Y0 Z0 F60000 (start position: X0 Y0 Z0)
N20 X0 Y500
...
Für dieses Beispiel wird zwischen den Segmenten A & B ein Genauhalt eingefügt.
Anwendungsgebiet:
Dieses Kommando sollte in Verbindung mit Bezier-Verschleifungen verwendet werden, wenn im NC-Programm spitze Winkel programmiert werden.
Siehe auch:
▪
Bezier-Verschleifung 3-ter Ordnung
▪
Bezier-Verschleifung 5-ter Ordnung
▪
'Alte' Bezier-Verschleifung
Hinweis Für Segmentübergänge mit einer Helix ist diese Funktion noch nicht implementiert.


Restweglöschen

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Restweglöschen
Restweglöschen
Befehl | DelDTG
Aufhebung | Satzende
DelDTG ( delete distance to go ) wird aus dem NC Programm satzweise aktiviert. Dieses Kommando ermöglicht es, aus der SPS ( TcNci.lib ItpDelDtgEx) den Restweg der aktuellen Geometrie zu löschen. D.h. trifft das Kommando während der Abarbeitung des Satzes ein, so wird mit den üblichen Verzögerungsrampen die Bewegung angehalten. Anschließend wird mit dem nächsten Satz im NC Programm fortgefahren. Falls das SPS-Kommando nicht während der Ausführung eines Satzes mit angewähltem Restweglöschen eintrifft, wird dieses mit einer Fehlermeldung beantwortet.
Das Restweglöschen bewirkt immer einen impliziten Dekodierstop, d.h. es erfolgt am Satzende immer ein Genauhalt.
Beispiel:
N10 G01 X0 Y0 F6000
N20 DelDTG G01 X2000
N30 G01 X0
Hinweis DelDTG darf nicht bei aktiver Fräserradiuskorrektur aktiv sein.
Hinweis Ab TwinCAT V2.10 B1303 darf eine Nullpunktverschiebung aktiv sein


Modulo Bewegungen

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Modulo Bewegungen
Modulo Bewegungen
ab TwinCAT V2.7 Build 451
Befehl | MOD[<axis and target modulo position>]
Aufhebung | Satzende
Parameter 1 | Achse die modulo verfahren werden soll
Parameter 2 | Vorzeichen für die Drehrichtung (optional)
Parameter 3 | Modulo Position
Die Programmierung der Moduloposition erfolgt auf gleiche Weise, wie bei einer gewöhnlichen Positionierung.
Das MOD-Kommando gilt satzweise und muss für jede Achse, die Modulo verfahren werden soll, explizit programmiert werden. Dabei bestimmt das Vorzeichen der Moduloposition die Drehrichtung.
▪
Positives Vorzeichen: Die Achse fährt in Richtung 'größer'
▪
Negatives Vorzeichen: Die Achse fährt in Richtung 'kleiner'
▪
Ausnahme: Modulo -0 kann nicht angefahren werden, da 0 vorzeichenlos ist
Beispiel 1:
N10 G90
N20 G01 MOD[X200] Y30 F600
N30 G01 X200
In N20 wird in positiver Richtung für X die Moduloposition 200 angefahren. Y verfährt auf die absolute Position 30. Im Satz N30 wird X absolut auf Position 200 verfahren, also nicht modulo.
Modulobewegungen mit mehr als 360 Grad
Mit dem MOD-Kommando lassen sich auch Bewegungen mit mehr als 360 Grad verfahren.
Moduloposition = Anzahl der erforderlichen Umdrehungen * 360 + Moduloposition
Beispiel 2:
N10 G90
N20 G01 X3610 F6000
N30 R1=360
N40 G01 MOD[X=R1+20]
In diesem Beispiel verfährt die X Achse um 370 Grad auf die Moduloposition 20.
Einschränkungen und Hinweise bei Modulobewegungen:
▪
Es darf keine Radiuskorrektur für die Moduloachse aktiv sein.
▪
Es darf keine Nullpunktverschiebung für die Moduloachse aktiv sein.
▪
Bei Relativprogrammierung (G91) wird das Modulokommando nicht ausgewertet, d.h. die in den eckigen Klammern aufgerufene Achse wird so behandelt, als ob das MOD-Kommando nicht eingegeben wurde.
Modulofaktor
Der Modulofaktor ist konstant und beträgt 360.


Hilfsachsen

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Hilfsachsen
Hilfsachsen
ab TwinCAT 2.8
Hilfsachsen (auch Auxiliary oder Q-Achsen genannt) können zusätzlich zu den eigentlichen Bahnachsen (X, Y & Z) einer Interpolationsgruppe angefügt werden. Dabei muss man sich die Hilfsachse als eine Art Slave zur Bahn vorstellen. D.h. sie haben keinen direkten Einfluss auf die Bahngeschwindigkeit. Insgesamt können neben den 3 Bahnachsen noch 5 Hilfsachsen pro Kanal mit interpoliert werden.
Das Anfügen in die Interpolationsgruppe aus der SPS, kann z.B. mit dem Funktionsbaustein 'CfgBuildExt3DGroup' aus der TcNcCfg.lib erfolgen.
Syntax
Aus dem Teileprogramm werden die Hilfsachsen mit Q1..Q5 angesprochen. Es kann dabei entweder direkt der Zahlenwert oder ein R-Parameter zugewiesen werden.
Beispiel 1:
(start position X=Y=Z=Q1=0)
N10 G01 X100 Q1=47.11 F6000
...
Wird ein NC-Satz mit Bahnachse(n) und einer Hilfsachse programmiert, so starten beide Achsen gleichzeitig und kommen auch gemeinsam ins Ziel.
Schwenken der Hilfsachsen
Von einem Schwenken der Hilfsachsen wird dann gesprochen, wenn der Bahnweg in einem Verfahrsatz null ist. Dies ist häufig beim 'Schwenken' eines Werkzeugs der Fall, wo der Zustellwinkel zur Kontur geändert wird.
Da es hier keinen Bezug mehr zur Bahn gibt, da der Bahnweg null ist, werden die Bewegungen der Hilfsachsen mit einer virtuellen Bahn berechnet. Dies hat aber keinen Einfluss auf die reale Bahn von X, Y und Z, sondern bewirkt auch hier, dass alle Hilfsachsen gleichzeitig gestartet werden und ebenfalls zeitgleich im Ziel ankommen.
Die Geschwindigkeit wird auch hier mit dem F-Parameter vorgegeben und bezieht sich jetzt auf die Hilfsachse mit dem größten Verfahrweg.
Beispiel 1:
(start position X=Y=Z=Q1=Q1=0)
N10 G01 X100 F6000
N20 Q1=100 Q2=200 F3000
...
In N20 ist die Geschwindigkeit von Q2 nun 3000 und von Q1 1500, da der Verfahrweg von Q1=Q2/2 ist.
Weiterführende Informationen
•
Berechnung der Geschwindigkeit
•
Bahngeschwindigkeit an Segmentübergängen


Berechnung der Geschwindigkeit

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Hilfsachsen [image] Berechnung der Geschwindigkeit
Berechnung der Geschwindigkeit
Für die Berechnung der Bahngeschwindigkeit werden zunächst nur die Bahnachsen (X, Y und Z) berücksichtigt.
Anhand des Bahnweges und der zu verfahrenden Distanz der einzelnen Hilfsachsen ergibt sich ein festes Kopplungsverhältnis für jede Hilfsachse in einem Segment. Damit ist auch die Sollgeschwindigkeit der Hilfsachse bekannt. Falls diese Geschwindigkeit größer ist, als die zulässige maximale Geschwindigkeit dieser Hilfsachse, so wird die Bahngeschwindigkeit soweit reduziert, bis die obere Geschwindigkeitsgrenze eingehalten wird. D.h. wenn die Geschwindigkeitsgrenzwerte der Hilfsachsen überschritten werden, hat das auch indirekt einen Einfluss auf die Bahngeschwindigkeit.


Bahngeschwindigkeit an Segmentübergängen

Interpreter (DIN 66025/G-Code) [image] Programmierung von Bewegungsätzen [image] Hilfsachsen [image] Bahngeschwindigkeit an Segmentübergängen
Bahngeschwindigkeit an Segmentübergängen
Im Folgenden soll die Reduzierung der Bahngeschwindigkeit anhand eines Beispiels näher erläutert werden. Dazu eignet sich besonders gut die Kontur eines Stadions. Ziel ist es, den Zustellwinkel eines Werkzeugs zur Bahntangente konstant zu halten.
Befindet man sich auf der Geraden des Stadions, so bleibt die Orientierung des Werkzeugs konstant, d.h. das Werkzeug wird nicht gedreht. Im Kreis dagegen muss die Orientierung in Bezug auf das Basiskoordinatensystem ständig geändert werden. Angenommen die Bahngeschwindigkeit wird im Geraden-Kreis-Übergang nicht bis auf null reduziert, so entsteht zwangsläufig ein Geschwindigkeitssprung für die Drehachse (nicht aber für die Bahnachsen!).
Dieser Geschwindigkeitssprung der Hilfsachse ist frei parametrierbar und von der Maschine abhängig. In den beiden Extremfällen wird einmal die Bahngeschwindigkeit an derartigen Segmentübergängen bis auf null reduziert oder im anderen Fall die Geschwindigkeit gar nicht reduziert.
Die Parametrierung erfolgt mit dem globalen Achsparameter 'VeloJumpFactor', der für jede Achse individuell eingestellt werden kann. Die daraus resultierende Geschwindigkeit und die Berechnung ist im TwinCAT NCI Anhang auf der Seite Parametrierung näher beschrieben.
Glättung der Geschwindigkeit an Segmentübergängen
ab TwinCAT 2.9 Build 940
Wie oben beschrieben, können an den Segmentübergängen Geschwindigkeitssprünge auftreten. Die Größe dieses Sprunges kann mit dem VeloJump-Parameter beeinflusst werden.
Zusätzlich kann für jede Hilfsachse eine Toleranzkugel bestimmt werden, die im Segmentübergang symmetrisch mit dem Bahnweg ist. Mit dem Eintritt in diese Kugel wird dann die Geschwindigkeit der Hilfsachse stetig in die neue Sollgeschwindigkeit am Kugelausgang überführt. D.h. die Geschwindigkeitssprünge werden damit eliminiert. Dabei wird innerhalb der Kugel eine Positionsabweichung für die Hilfsachse in Kauf genommen. Mit dem Eintritt in die Kugel wird schon damit begonnen die Achse auf die neue Zielgeschwindigkeit zu bringen. Damit wird ein Überschwingen der Position verhindert und an den Kugelgrenzen ist die Position dann wieder genau.
Für den Fall, dass die vorgegebene Kugel größer als 1/3 des Bahnweges ist, so wird der Radius automatisch auf diesen Wert begrenzt.
An- und Abwahl
Die Toleranzkugel der Hilfsachse ist ein Achsparameter (IO: 0x108). Sie kann im Achsinterface im System Manager oder via ADS eingestellt werden.
Parametrierung der Achsparameter
Die hier beschriebenen Parameter wirken nur für Achsen, die sich als Hilfsachsen (Q1..Q5) in der Interpolationsgruppe befinden. Für Bahnachsen (x,y,z) haben die Parameter 'Geschw. Sprung Faktor'‚'Toleranzkugel Hilfsachse' und 'Max. Positionsabweichung, Hilfsachse' keinen Einfluss.
Diagnose
Zu Diagnosezwecken kann für jede Hilfsachse die Toleranzkugel und der sich ergebene Positionsfehler der Hilfsachse aufgezeichnet werden. Auf die Variablen kann ebenfalls via ADS zugegriffen werden und befinden sich im Gruppenzustand (IO: 0x54n und 0x56n).
Rückwirkung auf VeloJump, falls die Toleranzkugel verkleinert wird
ab TwinCAT V2.9 Build 1013
Wenn aufgrund der gegebenen Geometrie die Toleranzkugel verkleinert werden muss, so wird nun auch für diesen Segmentübergang der VeloJump-Parameter automatisch angepasst. D.h. falls notwendig wird die Bahngeschwindigkeit im Übergang stärker reduziert. Damit wird erreicht, dass bei kleineren Toleranzkugel die Dynamik der Hilfsachse nicht überschritten wird.
Positionsabweichung der Hilfsachse, falls die Toleranzkugel verkleinert werden müsste
Der Parameter 'maximal erlaubte Positionsabweichung der Hilfsachse' wirkt nur dann, wenn die Toleranzkugel aufgrund der Geometrie verkleinert werden müsste.
Ziel ist es, dass die Bahngeschwindigkeit trotz der verkleinerten Toleranzkugel hoch gehalten werden kann, wenn der daraus resultierende Positionsfehler einen Schwellwert nicht überschreitet. Dafür wird die Geschwindigkeit der Hilfsachse konstant gehalten und der Positionsfehler berechnet. Ist dieser kleiner als die maximale Positionsabweichung, dann wird für diesen Segmentübergang die Geschwindigkeit beibehalten und der entstandene Positionsfehler im nächsten Segment wieder ausgefahren (die Toleranzkugel wird dann für diesen Segmentübergang überflüssig).
Für den Fall, dass der Positionsfehler die max. Abweichung überschreiten würde, greift die verkleinerte Toleranzkugel mit der Rückwirkung auf den VeloJump-Faktor. Dabei wird dann ggf. die Bahngeschwindigkeit reduziert.
Beispiel 1:
Anfangsbedinungen:
▪
eingestellte Toleranzkugel: 5
▪
max. Positionsabweichung: 1
▪
aufgrund der Geometrie ergibt sich z.B. eine effektive Toleranzkugel von 0.2
▪
die potenzielle Positionsabweichung beträgt 0.3
Resultierendes Verhalten:
▪
Bahngeschwindigkeit bleibt auf konstant hohen Niveau
▪
Geschwindigkeit der Hilfsachse wird konstant gehalten
▪
für diesen Übergang ist keine Toleranzkugel erforderlich
▪
die entstandene Positionsabweichung wird im darauffolgenden Segment ausgeglichen
Beispiel2:
Anfangsbedingungen:
▪
eingestellte Toleranzkugel: 5
▪
max. Positionsabweichung: 1
▪
aufgrund der Geometrie ergibt sich z.B. eine effektive Toleranzkugel von 1.2
▪
die potenzielle Positionsabweichung beträgt 1.1
Resultierendes Verhalten:
▪
Toleranzkugel wird angepasst
▪
VeloJump-Parameter wird angepasst
▪
die Bahngeschwindigkeit wird im Segmentübergang reduziert
▪
es entsteht keine Positionsabweichung, die ausgeglichen werden muss
Parametrierung
Die Parametrierung der maximal erlaubten Positionsabweichung ist ein Achsparameter. Standardmäßig ist diese Eigenschaft ausgeschaltet (Abweichung = 0.0)


Zusatzfunktionen

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen
Zusatzfunktionen
Weiterführende Informationen
•
M-Funktionen
•
H-, T- und S-Parameter
•
Dekodierstopp
•
Sprünge
•
Schleifen
•
Unterprogrammtechnik
•
Dynamischer Override
•
Änderung der Bahndynamik
•
Änderung der Reduktionsparameter
•
Änderung der Mindestgeschwindigkeit
•
Lese Achsen-Istwert
•
Überspringe virtuelle Bewegung
•
Meldungen aus dem NC-Programm


M-Funktionen

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] M-Funktionen
M-Funktionen
Aufgabe: Signalaustausch zwischen NC und PLC
Eine Reihe von Einrichtungen, wie z.B. Spannzangen, Bohrantrieben, Transporteinrichtungen etc. werden vorteilhaft nicht von der NC direkt, sondern indirekt unter Nutzung der SPS als Anpass- und Verknüpfungssteuerung kontrolliert. Dadurch ist es leicht möglich, Rückmeldungen oder Sicherheitsbedingungen zu berücksichtigen, ohne das NC-Programm oder sogar das NC-System anpassen zu müssen. Bei den M-Funktionen der NC handelt es sich um einen Signalaustausch mit digitalem Charakter: Es werden Funktionen ein- oder ausgeschaltet, aktiviert oder deaktiviert. Die Übergabe von Zahlenwerten als Arbeitsparameter ist dabei nicht vorgesehen, lässt sich aber auf anderem Wege (H-Funktion, T-Nummer etc.) verwirklichen.
Weiterführende Informationen
•
Verfügbare M-Funktionen
•
Zurücksetzen von M-Funktionen
•
Parametrierung von M-Funktionen
•
Kombination von M-Funktionen
•
Verhalten im Fehlerfall


Verfügbare M-Funktionen

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] M-Funktionen [image] Verfügbare M-Funktionen
Verfügbare M-Funktionen
Anzahl M-Funktionen
Es stehen insgesamt 160 M-Funktionen pro Kanal zur Verfügung
M-Funktion | Bedeutung
0..159 | Frei definierbare M-Funktionen (außer 2, 17, 30)
2 | Programmende
17 | Unterprogramm Ende
30 | Programmende mit ablöschen von allen schnellen M-Funktionen
Abgesehen von den 3 fest vorbelegten M-Funktionen (M2, M17, M30) kann über die Bedeutung der restlichen M-Funktionen frei verfügt werden. D.h. je nach Maschinentyp kann z.B. mit M8 ein Kühlmittel eingeschaltet werden, es lässt sich aber auch eine andere Funktionalität damit ausführen. Dies ist soweit vom Maschinenbauer frei wählbar.
Die Regeln für die reservierten M-Funktionen werden wie alle anderen beim TwinCAT Start eingelesen. Zusätzlich wird im Interpreter bei diesen Funktionen noch ein interner Code generiert, der für das beschriebene Verhalten sorgt. Somit müssen diese 3 M-Funktionen nicht in der Tabelle beschrieben werden. Wenn M-Funktionen verwendet werden, ist es dennoch sinnvoll, dass M2 und M30 parametriert werden.
Typen von M-Funktionen
Grundsätzlich stehen zwei Varianten des Signal-Austausches zur Verfügung: Schnelle Signalbits oder per Handshake gesicherte Übermittlung.
Gesicherter Handshake
M-Funktionen mit Rückmeldungsbedarf müssen mit einem bidirektionalen Signalaustausch zwischen NC und SPS abgearbeitet werden. Wird eine M-Funktion vom Typ Handshake programmiert, so wird die Geschwindigkeit an dieser Stelle auf 0 reduziert. In der PLC wird mit der Funktion ItpIsHskMFunc geprüft, ob eine M-Funktion mit Handshake anliegt. Die M-Funktionsnummer wird dann mit ItpGetHskFunc ermittelt. Solange keine Bestätigung der M-Funktion aus der PLC erfolgt, ist die NC im Wartezustand und arbeitet keine weiteren NC-Kommandos ab. Erst mit der Quittierung aus der PLC (ItpConfirmHsk) wird die Abarbeitung des NC-Programms fortgeführt.
Diese Arbeitsweise ermöglicht es, die Arbeit der NC-kontrollierten und der SPS-kontrollierten Einrichtungen in der Maschine sicher zu koordinieren. So wird sinnvollerweise die M-Funktion zum Einschalten der Spindel (z.B. M3) dann quittiert, wenn eine Mindestdrehzahl erreicht ist.
Da es sich bei dieser Art der M-Funktionen um synchrone Funktionen handelt, kann immer nur eine M-Funktion mit Handshake im NC-Programm aktiv sein.
Schnelle Signal-Bits
Wenn keine Rückmeldung von der PLC erforderlich ist, so können schnelle Signal-Bits zum Aktivieren von M-Funktionen eingesetzt werden. Da die NC für diese M-Funktionen nicht auf die SPS warten muss, kann der Look-Ahead die Segmente miteinander verbinden. So ist es möglich, ohne Geschwindigkeitsreduzierung eine M-Funktion zu schalten.
Diese Art der M-Funktion eignet sich z.B. wenn während einer Bewegung eine Düse zum Auftragen von Klebstoff aktiviert werden muss.
Eine Kombination von schnellen Signalbits und Handshake ist ebenfalls möglich. Da mit dem Handshake immer auf die PLC gewartet wird, muss für diesen Fall auch die Geschwindigkeit auf 0 reduziert werden.


Zurücksetzen von M-Funktionen

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] M-Funktionen [image] Zurücksetzen von M-Funktionen
Zurücksetzen von M-Funktionen
Schnelle Signal-Bits zurücksetzen
Die Signal-Bits liegen solange an, bis sie entweder explizit zurückgesetzt, ein M30 (Programmende) oder ein Kanal-Reset durchgeführt wird.
Zurücksetzen mit Reset-Liste
Jede M-Funktion kann bis zu 10 schnelle M-Funktionen zurücksetzen. Wird z.B. mit M8 das Kühlmittel eingeschaltet, so kann mit M9 das Kühlmittel wieder ausgeschaltet werden. Dazu muss lediglich M8 in die Reset-Liste von M9 eingetragen werden.
Automatisches Zurücksetzen
Bei der Parametrierung der M-Funktion kann ein 'Auto-Reset-Flag' gesetzt werden. Damit wird die M-Funktion am Ende des Satzes automatisch wieder zurückgesetzt.
Damit die PLC die Möglichkeit hat, das Signal zu sehen, muss der Verfahrsatz zeitlich lang genug sein oder diese M-Funktion wird mit einem Handshake kombiniert. Dabei kann der Handshake von der gleichen oder einer anderen M-Funktionsnummer sein.
Zurücksetzen aus der PLC
Möchte man die schnellen M-Funktionen aus der PLC zurücksetzen, so ist das mit dem Funktionsbaustein 'ItpResetFastMFunc' möglich. Aus Gründen der Übersichtlichkeit, sollte ein Mischbetrieb zwischen Zurücksetzen aus der SPS und NC vermieden werden.
Löschen aller anstehenden M-Funktionen
Mit einem Kanalstopp und einem Kanalreset werden alle anstehenden M-Funktionen zurückgesetzt. Das gilt für die M-Funktionen vom Typ 'Handshake' und auch für die schnellen Signal Bits. Wird das NC-Programm ordnungsgemäß mit M30 beendet sind ebenfalls alle M-Funktionen abgelöscht.


Parametrierung von M-Funktionen

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] M-Funktionen [image] Parametrierung von M-Funktionen
Parametrierung von M-Funktionen
Die Parametrierung der M-Funktionen erfolgt im TwinCAT System-Manager. Dabei wird für jeden Interpolationskanal eine eigene M-Funktionstabelle beschrieben.
Um eine Konfiguration von M-Funktionen wirksam zu schalten, ist ein Neustart der TwinCAT-Konfiguration erforderlich.
No
Nummer der zu parametrierende M-Funktion. Der Wert muss zwischen 0 und 159 liegen
HShake
Ist hier ein Wert ungleich 'None' eingetragen, so ist die M-Funktion vom Type 'Handshake'
▪
None: es wird kein Handshake ausgeführt
▪
BM (Before Move): Falls im gleichen Satz eine Bewegung programmiert ist, erfolgt der Handshake vor der Bewegung
▪
AM (After Move): Falls im gleichen Satz eine Bewegung programmiert ist, erfolgt der Handshake nach der Bewegung
Fast
Wird hier ein Wert ungleich 'None' eingetragen, so wird eine M-Funktion vom Type 'Schnelle-Signal-Bit' ausgeführt
▪
None: es wird keine schnelle M-Funktion ausgeführt
▪
BM (Before Move): Falls im gleichen Satz eine Bewegung programmiert ist, erfolgt die Ausgabe vor der Bewegung.
▪
AM (After Move): Falls im gleichen Satz eine Bewegung programmiert ist, erfolgt die Ausgabe nach der Bewegung.
▪
BMAutoReset (Before Move & automatisches Zurücksetzen): Falls im gleichen Satz eine Bewegung programmiert ist, erfolgt die Ausgabe vor der Bewegung. Zusätzlich wird die M-Funktion am Ende des Satzes automatisch wieder gelöscht. D.h. die M-Funktion ist nur satzweise wirksam. Um sicherzustellen, dass die PLC die M-Funktion auf jeden Fall erkennt, muss der der damit programmierte Verfahrsatz zeitlich lang genug sein (min. 2 PLC-Zyklen) oder zusätzlich eine M-Funktion mit Handshake programmiert werden.
▪
AMAutoReset (After Move & automatisches Zurücksetzen): Diese Parametrierung ist nur dann sinnvoll, wenn entweder eine M-Funktion vom Typ Handshake mit programmiert (bzw. parametriert) wird, oder die M-Funktion lediglich zum Zurücksetzen von anderen M-Funktionen genutzt wird. Ohne einen zusätzlichen Handshake, wird diese M-Funktion in der Regel nicht von der PLC erkannt.
▪
alle anderen Kombinationen sind aus Kompatibilitätsgründen anwählbar.
Reset
Hier können bis zu 10 M-Funktionen eingetragen werden, die mit dem Aufruf gelöscht werden.
Hinweis Für den Fall, dass kein Reset-Signal-Bit gesetzt wird, werden die abzulöschenden Bits unmittelbar vor dem Setzen der neuen Signal-Bits zurückgesetzt.
Import/Export
Die M-Funktionen werden für jeden Kanal einzeln parametriert. Mit der Im- und Exportfunktion kann die Parametrierung auf andere Kanäle übertragen werden.


Kombination von M-Funktionen

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] M-Funktionen [image] Kombination von M-Funktionen
Kombination von M-Funktionen
▪
Es darf pro Zeile nur eine M-Funktion vom Typ 'Handshake' programmiert werden!
▪
Es dürfen bis zu 10 M-Funktionen vom Typ 'Signal-Bit' in einer Zeile programmiert werden
▪
Eine Kombination von Punkt 1 & 2 ist erlaubt
Beispiel:
N10 G01 X1000 F60000
N20 M10 M11 M12 X2000 (M10 & M11 are signal bits)
(M12 is of type handshake)
M30
Beispiele für sinnvolle und praktisch einsetzbare Regelkombinationen:
▪
Eine M-Funktion soll für die Dauer einer Bewegung anstehen und dann automatisch gelöscht werden. Dazu ist in der Spalte HShake 'None' und in der Spalte Fast 'BMAutoReset' anzuwählen. Mit dem erzeugten Signal-Bit kann z.B. ein Beleimungsventil gesteuert werden.
▪
Eine M-Funktion startet einen Bohrantrieb und die folgenden Bewegungen dürfen erst nach einer Anlaufzeit und nur bei Betriebsbereitschaft ausgelöst werden. Hier muss in der Spalte HShake 'BM' ausgewählt werden. Die SPS quittiert die Anforderung erst nach einer Verzögerungszeit und nur, wenn der Frequenzumrichter betriebsbereit ist.
▪
Ein Bohrantrieb wird mit einer M-Funktion gestartet. Um nicht auf die Hochlaufzeit des Antriebs warten zu müssen, soll die M-Funktion bereits im Satz vor der Bohrbewegung programmiert werden. In der nächsten Bewegung (der eigentlichen Bohrbewegung) muss trotzdem sichergestellt sein, dass der Antrieb seine Drehzahl erreicht hat. Für diese Variante müssen entweder zwei verschiedene M-Funktionen verwendet werden (Vorlaufsignal als Signal-Bit, Sicherheitsabfrage als Handshake) oder aber es wird eine M-Funktion Fast 'BMAutoReset' und HShake 'AM' verwendet.


Verhalten im Fehlerfall

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] M-Funktionen [image] Verhalten im Fehlerfall
Verhalten im Fehlerfall
Tritt während der Abarbeitung eines NC-Programms ein Laufzeitfehler (z.B. Schleppabstandsüberwachung schlägt zu) auf, so wird das NC Programm abgebrochen. Für diesen Fall bleiben die M-Funktionen, falls sie gesetzt sind, anliegen. D.h. das PLC Programm hat für diesen Fall dafür Sorge zu tragen, dass ggf. M-Funktionen nicht bearbeitet werden.


H-, T- und S-Parameter

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] H-, T- und S-Parameter
H-, T- und S-Parameter
H-, T- und S-Parameter werden verwendet, um Parameter aus dem NC-Interpreter zur SPS zu übertragen.
Der H-Parameter steht in diesem Zusammenhang für Hilfsparameter und ist vom Type DINT (32 bit signed).
Die T- und S-Parameter sind vom Typ WORD und stehen für Tool (Werkzeug) und Spindel.
Beispiel:
H=4711
R1=23
S=R1
T4711
Hinweis Bei dem T-Parameter kann kein R-Parameter zugewiesen werden. Des Weiteren erfolgt die Zuweisung ohne Zuweisungsoperator ('=').
T- und S-Parameter wirken jeweils am Satzanfang, H-Parameter wirken am Ende des programmierten Satzes.


Dekodierstopp

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Dekodierstopp
Dekodierstopp
Code | Funktion
@714 | Dekodierstopp
@716 | Dekodierstopp mit Rescan der Achspositionen
@717 | Dekodierstopp mit Triggerevent, bedingter Dekodierstopp
Weiterführende Informationen
•
Dekodierstopp (@714)
•
Dekodierstopp mit Rescan der Achspositionen (@716)
•
Dekodierstopp mit externem Triggerevent (@717)


Dekodierstopp (@714)

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Dekodierstopp [image] Dekodierstopp (@714)
Dekodierstopp (@714)
Der Interpreter bietet die Möglichkeit einen Dekodierstopp im NC-Programm auszuführen. D.h. wenn der Interpreter auf diesen Befehl läuft, wartet er solange, bis von außen ein bestimmtes Ereignis eintrifft. Erst wenn dieses Ereignis eingetroffen ist, wird mit der Bearbeitung des NC-Programms fortgefahren.
Ein Dekodierstopp kann z.B. dafür verwendet werden die Satzunterdrückung aus der SPS ein- bzw. auszuschalten oder aber auch um R-Parameter neu zuzuweisen.
Es existieren zwei Ereignisse um mit der Bearbeitung fortzufahren:
▪
Quittierung einer M-Funktion
▪
SAF-Task ist leer
Quittierung einer M-Funktion
Die Dekodierung des NC Programms wird solange unterbrochen, bis die M-Funktion, die unmittelbar vor dem Dekodierstopp programmiert ist, bestätigt wird. D.h. die M-Funktion muss vom Typ "Handshake" sein.
Beispiel 1:
N10...
N20 M43 (M-function with handshake)
N30 @714 (decoder stop)
N40 ...
SAF-Task ist leer
Der Dekodierstopp muss nicht unbedingt in Verbindung mit einer M-Funktion programmiert werden. Wenn die SAF-Task leer läuft, d.h. es existieren keine Fahraufträge mehr, wird ebenfalls ein Event an den Interpreter geschickt. Dieses Event bewirkt, dass der Interpreter wieder anläuft.
Hinweis Der Dekodierstopp darf nicht bei aktiver Werkzeugkorrektur oder Kreisverrundung programmiert werden, da diese dann nicht mehr funktionieren.


Dekodierstopp mit Rescan der Achspositionen (@716)

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Dekodierstopp [image] Dekodierstopp mit Rescan der Achspositionen (@716)
Dekodierstopp mit Rescan der Achspositionen (@716)
Neben dem gewöhnlichen Dekodierstopp (siehe Dekodierstopp (@714)) existiert auch ein Dekodierstopp, bei dem die Achspositionen des Interpolationskanals neu eingelesen werden. Dieser Stopp wird dann benötigt, wenn z.B. während eines Werkzeugwechsels Achsen via PTP verfahren und anschließend die Achsen nicht auf die alte Position zurückgefahren werden. Ein weiterer Anwendungsfall besteht dann, wenn in einer M-Funktion (mit Handshake) die Achskonfiguration geändert wird.
Wird ein Dekodierstopp mit Rescan programmiert, ist es unbedingt erforderlich unmittelbar davor eine M-Funktion mit Handshake zu programmieren.
Beispiel 2:
N10...
N20 M43 (M function with handshake carries out a tool change, for
example)
N30 @716 (Decoder stop with rescan)
N40 ...
Hinweis Der Dekodierstopp darf nicht bei aktiver Werkzeugkorrektur oder Kreisverrundung programmiert werden, da diese dann nicht mehr funktionieren.
Hinweis Ab TwinCAT V2.10 B1303 darf eine Nullpunktverschiebung aktiv sein.


Dekodierstopp mit externem Triggerevent (@717)

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Dekodierstopp [image] Dekodierstopp mit externem Triggerevent (@717)
Dekodierstopp mit externem Triggerevent (@717)
In manchen Fällen kann es z.B. von Ereignissen in der SPS abhängen, ob das NC-Teileprogramm warten muss oder fortgesetzt werden kann. Mit den 2 Typen von M-Funktionen gibt es dabei folgende Probleme:
▪
Handshake: Aufgrund des Handshakes der M-Funktion muss die Bahngeschwindigkeit an der Stelle, wo die M-Funktion programmiert wurde immer auf 0 gezogen werden und anschließend wird auf die Bestätigung aus der SPS gewartet.
▪
On The Fly (oder auch schnelle M-Funktion genannt): Da keine Bestätigung von der SPS erwartet wird, gibt es auch keine Möglichkeit, dass das Teileprogramm auf die SPS wartet.
▪
Auch eine Kombination der beiden M-Funktionstypen hilft hier erst mal nicht weiter.
Beispiel:
Aus dem NC-Teileprogramm wird während einer Positionierung mit einer fliegenden M-Funktion ein Prozess A angestoßen. Dabei wird vorausgesetzt, dass der Verfahrsatz im NC-Programm für gewöhnlich lang genug ist, so dass der Prozess A in der SPS fertig gestellt werden kann. Ist A fertig, so soll das NC-Teileprogramm mit Lookahead das nächste Segment abfahren. Für den Fall, dass A allerdings nicht fertig geworden ist, soll die NC am Segmentende anhalten und warten, bis der Prozess A beendet ist. Genau dieses Szenario kann mit dem Befehl @717 realisiert werden. Dabei schickt die SPS das sogenannte 'GoAhead'-Kommando, wenn Prozess A beendet ist.
N10 ...
N20 G0 X0 Y0 Z0
N30 G01 X500 F6000
N40 M70 (flying M-function that triggers process A)
N50 G01 X700
N60 @717 (decoder stop with external trigger event)
N70 G01 X1000
N80 ...
Trifft das Go-Ahead Signal früh genug aus der SPS ein, so werden die Sätze N50 & N70 vom Lookahead verbunden und die Bahngeschwindigkeit wird dann nicht reduziert. Falls das Signal in der Verzögerungsphase von N50 eintrifft, so wird die Geschwindigkeit dann wieder aufgebaut. Ansonsten wird gewartet, bis das Signal aus der SPS eintrifft.
Hinweis Der Dekodierstopp darf nicht bei aktiver Werkzeugkorrektur oder Kreisverrundung programmiert werden, da diese dann nicht mehr funktionieren.
ab TwinCAT V2.10 B1319:
Der Funktionsbaustein 'ItpGoAheadEx' liefert den Fehlercode 0x410A, wenn zum Zeitpunkt des Aufrufs kein @717 im Interpreter anliegt.


Sprünge

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Sprünge
Sprünge
Code | Funktion
@100 | Unbedingter Sprung
@121 | Springe wenn ungleich
@122 | Springe wenn gleich
@123 | Springe wenn kleiner gleich
@124 | Springe wenn kleiner
@125 | Springe wenn größer gleich
@126 | Springe wenn größer
@111 | Case-Anweisung
Unbedingter Sprung
Befehl | @100
Parameter | K oder R
Der Parameter beschreibt das Sprungziel. Dieses muss mit einer Richtungsangabe ('+' oder '-') versehen sein.
Beispiel 1:
N10 ..
...
N120 @100 K-10
In diesem Beispiel wird nach dem interpretieren von Zeile 110 wieder mit Zeile 10 fortgefahren. Dabei gibt das Vorzeichen die Richtung an, in der die zu suchende Zeile zu finden ist.
Springe wenn ungleich
Befehl | @121 |
Parameter 1 | R<n> | Wert mit dem verglichen wird
Parameter 2 | K oder R<m> | Vergleichswert
Parameter 3 | K | Sprungziel mit Richtungsangabe
Beispiel 2:
N10 ..
...
R1=14
N120 @121 R1 K9 K-10
N130 ...
Springe wenn gleich
vergl. Springe wenn ungleich
Springe wenn kleiner gleich
vergl. Springe wenn ungleich
Springe wenn kleiner
vergl. Springe wenn ungleich
Springe wenn größer gleich
vergl. Springe wenn ungleich
Springe wenn größer
vergl. Springe wenn ungleich
Case-Anweisung
Befehl | @111 |
Parameter 1 | R<n> | Wert mit dem verglichen wird
Parameter 2 | K oder R<m> | 1. Vergleichswert
Parameter 3 | K | 1. Sprungziel
Parameter 4 | K oder R<m> | 2. Vergleichswert
... |  |
Beispiel 3:
N100 R2=12 (R2=13) (R2=14)
N200 @111 R2 K12 K300
K13 K400
K14 K500

N300 R0=300
N310 @100 K5000

N400 R0=400
N410 @100 K5000

N500 R0=500
N510 @100 K5000

N5000 M30
In der Zeile 200 wird eine Case-Anweisung aufgerufen. Für den Fall, dass R2 = 12 ist, wird zu der Zeile 300 gesprungen.
Ist R2 = 13, wird zu der Zeile 400 gesprungen. Wenn R2 = 14 ist, wird folglich zu der Zeile 500 gesprungen.
Für den Fall, dass keine der Bedingungen erfüllt ist, wird einfach mit der nächsten Zeile (hier 300) fortgefahren.


Schleifen

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Schleifen
Schleifen
Im Folgenden werden die unterschiedlichen Schleifentypen beschrieben.
Code | Schleifentyp | Abbruchbedingung
@131 | While-Schleife | Schleife solange gleich
@132 | While-Schleife | Schleife solange ungleich
@133 | While-Schleife | Schleife solange grösser
@134 | While-Schleife | Schleife solange grösser oder gleich
@135 | While-Schleife | Schleife solange kleiner
@136 | While-Schleife | Schleife solange kleiner oder gleich
@141 | Repeat-Schleife | Wiederhole bis gleich
@142 | Repeat-Schleife | Wiederhole bis ungleich
@143 | Repeat-Schleife | Wiederhole bis grösser
@144 | Repeat-Schleife | Wiederhole bis grösser oder gleich
@145 | Repeat-Schleife | Wiederhole bis kleiner
@146 | Repeat-Schleife | Wiederhole bis kleiner oder gleich
@151 | For-To-Schleife |
@161 | For-DownTo-Schleife |
Eine Verschachtelung der Schleifen ist grundsätzlich möglich.
While-Schleife
Befehl | @13<n> | mit 1 <= n <= 6
Parameter 1 | R<m> | Wert mit dem verglichen wird
Parameter 2 | K oder R<k> | Vergleichswert
Parameter 3 | K | Sprungziel für den Fall, dass die Bedingung nicht erfüllt ist
Die While-Schleife wird solange ausgeführt, wie die Bedingung erfüllt ist. Dabei findet die Überprüfung am Schleifenanfang statt. Wenn die Bedingung nicht oder nicht mehr erfüllt ist, wird zu der angegebenen Zeile gesprungen (Parameter 3).
Am Ende der While-Schleife muss ein unbedingter Sprung (@100) programmiert werden. Dabei ist als Sprungziel die Zeilennummer der While-Schleife anzugeben.
Mit <n> wird die Abbruchbedingung der Schleife spezifiziert.
Beispiel 1:
N100 R6=4
N200 @131 R6 K4 K600 (K600 is the target of the jump, when the condition is no longer satisfied)
N210 ...
N220 @100 K-200

N600 ...

N5000 M30
Solange R6 = 4 ist, wird die Schleife (Zeile 200 bis 220) wiederholt. Wenn die Bedingung nicht mehr erfüllt ist, wird zu der Zeile 600 gesprungen.
Repeat-Schleife
Befehl | @14<n> | mit 1 <= n <= 6
Parameter 1 | R<m> | Wert mit dem verglichen wird
Parameter 2 | K oder R<k> | Vergleichswert
Parameter 3 | K | Sprungziel zum Schleifenanfang
Bei der Repeat-Schleife erfolgt die Abfrage am Ende der Schleife. D.h. die Schleife wird mindestens einmal durchlaufen. Erst wenn die Bedingung erfüllt ist, wird die Schleife beendet und mit dem Programm fortgefahren.
Beispiel 2:
N200 ...
N210 ...

N300 @141 R6 K25 K200
Die Schleife wird solange wiederholt, bis R6 = 25 ist. Die zweite Konstante in Zeile 300 gibt das Sprungziel (Schleifenanfang) an.
For-To-Schleife
Befehl
@151 <Variable> <Wert> <Konstante>
Die For-To-Schleife ist eine Zählschleife, die solange ausgeführt wird, bis Variable gleich Wert ist. Dabei findet die Überprüfung am Anfang der Schleife statt. Falls die Bedingung erfüllt ist, wird zu der unter Konstante angegebenen Zeile gesprungen.
Am Ende der Schleife muss die Variable inkrementiert (@620) und mit einem unbedingten Sprung an den Schleifenanfang gesprungen werden.
Beispiel 3:
N190 R6=0
N200 @151 R6 K20 K400
N210 ...
N290 @620 R6 (increment R6)
N300 @100 K-200
For-Downto-Schleife
Befehl
@161 <Variable> <Wert> <Konstante>
Die For-Downto-Schleife ist eine Zählschleife. Die Verhaltensweise ist vergleichbar mit der For-To-Schleife. Es besteht lediglich der Unterschied, dass die Variable am Schleifenende um 1 dekrementiert (@621) wird.


Unterprogrammtechnik

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Unterprogrammtechnik
Unterprogrammtechnik
Auch in der NC-Programmierung ist es sinnvoll, häufig benutzte Befehlsfolgen als Unterprogramm zu gestalten. Auf diese Weise ist es möglich, aus verschiedenen Werkstückprogrammen auf eine vorgefertigte und ausgetestete Funktion zurückzugreifen.
Innerhalb eines Programms werden Unterprogramme über eine Nummer identifiziert. Diese muss eindeutig sein: Es kann nur ein Unterprogramm mit einer bestimmten Nummer (1..>2.000.000.000) geben.
Bei der Interpretation wird das aufrufende Programm unterbrochen. Der Text des Unterprogramms wird (bei Bedarf mehrmals) abgearbeitet. Anschließend wird die Abarbeitung im aufrufenden Programm hinter der Aufrufstelle fortgesetzt.
Selbstverständlich kann auch aus einem Unterprogramm ein anderes Unterprogramm aufgerufen werden. In diesem Fall wird sinngemäß verfahren. Dabei bildet sich ein Stapel von Rücksprunginformationen. Zurzeit ist diese Unterprogramm-Schachtelung aus technischen Gründen auf 20 Ebenen begrenzt.
Definition eines Unterprogramms
Der Code eines Unterprogramms kann in derselben Datei geschrieben werden, in der sich auch das aufrufende Programm befindet. In diesem Fall wird das Unterprogramm direkt gebunden: Es wird beim Laden der Datei automatisch mitgeladen. Soll es allgemein verfügbar sein, muss es in eine eigene Datei geschrieben werden, die sich im CNC-Verzeichnis befinden muss.
Der Name der Datei beginnt mit dem Buchstaben 'L' und es folgt eine Ziffernkette. Diese Ziffernkette muss die Unterprogramm-Nummer ohne führende '0' wiedergeben.
Der Startpunkt des Unterprogramms ist im Code mit einem Unterprogramm-Label zu markieren. Dieses besteht wie der Dateiname aus dem Buchstaben 'L' und der beschriebenen Ziffernfolge.
Unmittelbar hinter diesem Label setzt der Interpreter auf.
Syntax Unterprogramm:
(Datei L2000.NC)
L2000
N100...
N110...
...
N5000 M17 (return command)
Aufruf eines Unterprogramms
Um in einem beliebigen Satz des NC-Programms ein Unterprogramm aufzurufen, ist folgende Syntax zu benutzen. Wichtig ist, dass der Ausdruck "L2000" nicht am Zeilenanfang steht, um eine Verwechslung mit einem Unterprogramm-Label zu vermeiden.
(syntax of the subroutine call)
N100 L2000
Im folgenden Beispiel wird mit dem Ausdruck "P5" eine 5-fache Wiederholung des Unterprogramms veranlasst.
(n-fold subroutine call (here: 5- fold))
N100 L2000 P5
Dynamischer Unterprogrammaufruf
Manchmal steht erst zur Laufzeit fest, welches Unterprogramm aufgerufen werden soll. Um sich für diesen Fall die CASE-Anweisung zu sparen, ist es auch möglich, das Unterprogramm mit einem R-Parameter aufzurufen. Dabei muss der Wert für R aber in einer eigenen Zeile zugewiesen bzw. berechnet werden.
(Dynamic call of a subroutine)
N099 R47=R45+1
N100 L=R47
Parameterübergabe
Die Übergabe von Parametern an Unterprogramme ist mit Hilfe der R-Parameter zu verwirklichen. Dabei ist zu beachten, dass R-Parameter nicht automatisch gesichert werden (vergl. Retten von R-Parametern) .
Parameterverwendung
In einem NC-Unterprogramm können R-Parameter im Prinzip frei verwendet werden. Das hat eine Reihe von Konsequenzen, die zu Fehlern führen können, wenn sie nicht beachtet werden. Auf der anderen Seite ist ein gezielter Einsatz möglich, der dem NC-Programmierer eine Reihe von Arbeitstechniken zur Verfügung stellt.
Ergebnisse von Unterprogrammen
Wird ein R-Parameter verändert, ohne dass sein Inhalt gerettet und restauriert wurde, ist die Veränderung nach einem Unterprogrammrücksprung wirksam. Wenn dies unbeabsichtigt war, kann es in der Folge zu einem nicht geplanten Verhalten der Maschine kommen.
Dies kann jedoch auch bewusst dazu ausgenutzt werden, den weiteren Verlauf der Bearbeitung von den Ergebnissen eines Unterprogramms abhängig zu machen. Dabei ist keinerlei Einschränkung außer denen der R-Parameter zu beachten.
Beispiel:
N100 L2000
N110 R2=R3+R4
...
N999 M30
L2000
N10 R3=17.5
N20 R4=1
N99 M17
Hier werden in einem Unterprogramm Werte festgelegt. Die Werte werden im aufrufenden Programm weiter verwendet.
Beenden eines Unterprogramms
Ein Unterprogramm wird mit M17 beendet.


Dynamischer Override

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Dynamischer Override
Dynamischer Override
ab TwinCAT V2.6 Build 320
Befehl | DynOvr=<value> oder DynOvr = R<n>
Aufhebung | DynOvr=1
Beispiel:
N10 G01 X100 Y200 F6000
N20 DynOvr=0.4
N30 G01 X500
Mit 'DynOvr' können zur Laufzeit des NC Programms die Dynamikparameter der Achsen in der Gruppe prozentual verändert werden. Daraus ergeben sich ebenfalls neue Werte für die Bahndynamik. Die neuen Dynamikwerte werden ohne Stopp mit der Ausführung der Zeile gültig. Für das oben dargestellte Beispiel bedeutet das, dass in Satz 10 noch mit den alten Werten verzögert und in Satz 20 mit den neuen Werten beschleunigt wird.
Definitionsbereich
0 < DynOvr ≤ 1
Vergl. auch Änderung der Bahndynamik.


Änderung der Bahndynamik

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Änderung der Bahndynamik
Änderung der Bahndynamik
ab TwinCAT Version 2.6 Build 323
Befehl | #set paramPathDynamics
Parameter <acc> | Wert für die maximal erlaubte Bahnbeschleunigung in mm/s^2
Parameter <dec> | Wert für die maximal erlaubte Verzögerung in mm/s^2
Parameter <jerk> | Wert für den maximal erlaubten Ruck in mm/s^3.
Beispiel:
N10 G01 X100 Y200 F6000
N15 R4=3000
N20 #set paramPathDynamics( 700; 700; R4 )#
N30 G01 X500
Mit 'paramPathDynamics' kann zur Laufzeit des NC Programms die Bahndynamik verändert werden. Die neuen Dynamikwerte werden mit der programmierten Zeile wirksam. Für das oben dargestellte Beispiel bedeutet das, dass Satz 10 auch am Satzende mit den Default-Werten behandelt wird. Für Satz 30 werden am Segmentanfang die neuen Parameter verwendet.
Dieses Kommando limitiert für alle Bahnachsen auf die parametrierten Dynamikwerte. Die Bahn selber kann aber in Abhängigkeit ihrer Orientierung eine höhere Dynamik aufweisen. Die Dynamik von Hilfsachsen wird nicht verändert.
Vergl. auch Dynamischer Override.
Hinweis Die aus dem NC Programm geänderten Dynamikwerte bleiben bis zum nächsten Reset des Interpreters bzw. Restart von TwinCAT aktiv.
Hinweis Das alte Kommando 'paramGroupDynamics' bleibt weiterhin wirksam. Es ist dabei allerdings nicht möglich, R-Parameter zu übergeben.
Befehl | #set paramGroupDynamics(<grp>,<acc>,<dec>,<jerk>)#
Parameter <grp> | Gruppe für die die Dynamikänderung wirksam sein soll. Z.Zt. immer 1.
Parameter <acc> | Wert für die maximal erlaubte Bahnbeschleunigung in mm/s^2
Parameter <dec> | Wert für die maximal erlaubte Verzögerung in mm/s^2
Parameter <jerk> | Wert für den maximal erlaubten Ruck in mm/s^3.
Beispiel:
N10 G01 X100 Y200 F6000
N20 #set paramGroupDynamics( 1, 700, 700, 3000 )#
N30 G01 X500
Änderung der Achsdynamik
ab TwinCAT Version 2.9 Build 948
Befehl | #set paramAxisDynamics
Parameter <axis> | Achse in der Interpolationsgruppe: X: 0 Y: 1 Z: 2 Q1: 3 ... Q5: 7
Parameter <acc> | Wert für die maximal erlaubte Beschleunigung in mm/s^2
Parameter <dec> | Wert für die maximal erlaubte Verzögerung in mm/s^2
Parameter <jerk> | Wert für den maximal erlaubten Ruck in mm/s^3.
Beispiel:
N10 G01 X100 Y200 F6000
N15 R4=30000
N20 #set paramAxisDynamics( 0; 1500; 1400; R4 )#
N30 G01 X500
Mit 'paramAxisDynamics' kann zur Laufzeit die Dynamik einer Achse geändert werden. Grundsätzlich ist die Verhaltensweise die gleiche wie bei 'paramPathDynamics', allerdings mit dem Unterschied, dass hiermit für jede Achse individuell die Dynamik vorgegeben werden kann.


Änderung der Reduktionsparameter

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Änderung der Reduktionsparameter
Änderung der Reduktionsparameter
C0 Reduktion
C1 Reduktion
C2 Reduktion
C0 Reduktion
ab TwinCAT Version 2.6 Build 323
Bei manchen Maschinentypen ist es nicht unbedingt erforderlich, an Knicken die Bahngeschwindigkeit bis auf 0 zu reduzieren. Dazu werden 2 Reduktionsmethoden angeboten
▪
VeloJump
▪
DeviationAngle
VeloJump
Befehl | #set paramVeloJump( <C0X>; <C0Y>; <C0Z> )#
Parameter <C0X> | Reduktionsfaktor für C0-Übergänge: X-Achse: C0X ≥ 0.0
Parameter <C0Y> | Reduktionsfaktor für C0-Übergänge: Y-Achse: C0Y ≥ 0.0
Parameter <C0Z> | Reduktionsfaktor für C0-Übergänge: Z-Achse: C0Z ≥ 0.0
Mit 'paramVeloJump' können zur Laufzeit des NC Programms die Faktoren für die Geschwindigkeitssprünge verändert werden. Die neuen Werte werden aus der Satzausführung in der programmierten Zeile wirksam. Näheres zu der Wirkungsweise ist im Anhang unter Parametrierung zu finden.
Beispiel:
N10 G01 X100 Y200 F6000
N20 R2=4.5
N30 #set paramVeloJump( 1.45; R2; R2 )#
N40 G01 X500
Zurücksetzen der Parameter
Die aus dem NC Programm geänderten VeloJump Parameter bleiben bis zum nächsten Reset des Interpreters bzw. Restart von TwinCAT aktiv.
DeviationAngle (noch nicht freigegeben)
Befehl | #set paramDevAngle( <C0Factor>; <AngleLow>; <AngleHeigh> )#
Parameter <C0Factor> | Bahn-Reduktionsfaktor für C0-Übergänge: 1.0 ≥ C0 ≥ 0.0
Parameter <AngleLow> | Winkel in Grad ab dem die Reduktion einsetzt: 0 ≤ φ_l < φ_h ≤ π
Parameter <AngleHeigh> | Winkel in Grad ab dem auf v_link = 0.0 reduziert wird: 0 ≤ φ_l < φ_h ≤ π
Mit 'paramDevAngle' werden die Parameter für die C0 Reduktion beschrieben. Im Gegensatz zu der Reduktionsmethode VeloJump, wo der Geschwindigkeitssprung direkt beeinflusst wird, ergibt sich bei der Methode DeviationAngle, der Geschwindigkeitssprung in Abhängigkeit vom Winkel. Näheres zu der Wirkungsweise ist im Anhang unter Parametrierung zu finden.
Beispiel:
N10 G01 X100 Y200 F6000
N20 #set paramDevAngle(0.15; 5; 160 )#
N30 G01 X500
Zurücksetzen der Parameter
Die aus dem NC Programm geänderten DeviationAngle Parameter bleiben bis zum nächsten Reset des Interpreters bzw. Restart von TwinCAT aktiv.
C1 Reduktionsfaktor
ab TwinCAT Version 2.6 Build 323
Befehl | #set paramC1ReductionFactor( <C1Factor> )#
Parameter <C1Factor> | C1 Reduktionsfaktor
Mit 'paramC1ReductionFactor' kann zur Laufzeit des NC Programms der C1 Reduktionsfaktor verändert werden.
Der neue Parameter ist in dem Segmentübergang zwischen dem der Reduktionsfaktor programmiert wird gültig. D.h. in dem angefügten Beispiel ist der neue Wert für die C1 Reduktion im Segmentübergang von N10 zu N30 bereits gültig.
Als Parameter kann ein Floating-Point-Wert oder ein R-Parameter übergeben werden.
Näheres zu der Wirkungsweise ist im Anhang unter Parametrierung zu finden.
Beispiel:
N10 G01 X100 Y200 F6000
N20 #set paramC1ReductionFactor( 0.45 )#
N30 G01 X500
Zurücksetzen der Parameter
Der aus dem NC Programm geänderte C1 Reduktionsfaktor bleibt bis zum nächsten Reset des Interpreters bzw. Restart von TwinCAT aktiv.
C2 Reduktionsfaktor
ab TwinCAT Version 2.7 Build 422
Befehl | #set paramC2ReductionFactor( <C2Factor> )#
Parameter <C2Factor> | C2 Reduktionsfaktor
Mit 'paramC2ReductionFactor' kann zur Laufzeit des NC Programms der C2 Reduktionsfaktor verändert werden.
Der Befehl wirkt in dem Segmentübergang zwischen dem der Reduktionsfaktor programmiert wird. D.h. in dem angefügten Beispiel ist der neue Wert für die C2 Reduktion im Segmentübergang von N10 zu N30 bereits gültig.
Als Parameter kann ein Floating-Point-Wert oder ein R-Parameter übergeben werden.
Beispiel:
N10 G01 X100 Y200 F6000
N20 #set paramC2ReductionFactor( 1.45 )#
N30 G01 X500
Zurücksetzen der Parameter
Der aus dem NC Programm geänderte C2 Reduktionsfaktor bleibt bis zum nächsten Reset des Interpreters bzw. Restart von TwinCAT aktiv.


Änderung der Mindestgeschwindigkeit

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Änderung der Mindestgeschwindigkeit
Änderung der Mindestgeschwindigkeit
ab TwinCAT Version 2.6 Build 323
Befehl | #set paramVeloMin( <VeloMin> )#
Parameter <VeloMin> | Minimale Bahngeschwindigkeit
Mit 'paramVeloMin' kann zur Laufzeit des NC Programms die Mindestgeschwindigkeit an der Bahn verändert werden. Die neue Geschwindigkeit wird aus der Satzausführung in der programmierten Zeile wirksam.
Als Parameter kann ein Floating-Point-Wert oder ein R-Parameter übergeben werden.
Beispiel:
N10 G01 X100 Y200 F6000
N20 #set paramVeloMin( 2.45 )#
N30 G01 X500
Zurücksetzen der Parameter
Die aus dem NC Programm geänderte Mindestgeschwindigkeit bleibt bis zum nächsten Reset des Interpreters bzw. Restart von TwinCAT aktiv.
Programmierung der Geschwindigkeit
Die Einheit der Geschwindigkeit ist mm/sec und damit äquivalent mit den üblichen Einheiten im System Manager.


Lese Achsen-Istwert

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Lese Achsen-Istwert
Lese Achsen-Istwert
Befehl | @361 |
Parameter 1 | R<n> | R Parameter, dem der Achsen-Istwert zugewiesen wird
Parameter 2 | K<m> | Konstante für die zu lesende Achskoordinate 0: X-Achse 1: Y-Achse 2: Z-Achse 3: Q1-Achse 4: Q2-Achse . . . 7: Q5-Achse
Beispiel 1:
N10 G0 X0 Y0 Z0 F24000
N30 G01 X1000
N40 @361 R1 K0 (read position of x axis)
N50 R0=X
N60 G01 X=R0+R1
N70 M30
Mit dem Befehl @361 wird implizit ein Dekodierstopp ausgeführt. Damit wird sichergestellt, dass in diesem Beispiel die Position gelesen wird, wenn Satz N30 abgearbeitet ist.
Eine mögliche Anwendung ist z.B. die Kombination mit dem Restweglöschen.
Lese Achsen-Istwert ohne Dekodierstopp
ab TwinCAT V2.9 Build 947
Befehl | #get PathAxesPos( R<a>; R<b>; R<c> )# |
Parameter 1 | R<a> | R Parameter, dem der Achsen-Istwert der X-Achse zugewiesen wird
Parameter 2 | R<b> | R Parameter, dem der Achsen-Istwert der Y-Achse zugewiesen wird
Parameter 3 | R<c> | R Parameter, dem der Achsen-Istwert der Z-Achse zugewiesen wird
Der Befehl #get PathAxesPos( )# liest die aktuellen Ist-Positionen der Bahnachsen (X, Y &Z) aus. Er verhält sich ähnlich wie @361 mit dem Unterschied, dass mit diesem Kommando kein impliziter Dekodierstopp ausgelöst wird. D.h. der Programmierer muss selber sicherstellen, dass sich beim Abarbeiten des Kommandos im Interpreter die Achsen noch nicht bewegt haben oder im Satz vor dem Befehl muss ein Dekodierstopp (@714) programmiert werden.
#get PathAxesPos( )# ist eine Alternative zu @361, die aber an bestimmte Bedingungen geknüpft ist.
Beispiel 2:
@714(optional)
N27 #get PathAxesPos( R0; R1; R20 )#
Hinweis Wenn eine Bahnachse nicht zugewiesen ist (z.B. Z hat keine zugewiesene Achse), wird dem dazugehörigen R-Parameter der Wert 0 übergeben.


Überspringe virtuelle Bewegung

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Überspringe virtuelle Bewegung
Überspringe virtuelle Bewegung
ab TwinCAT V2.9 Build 1022
ab 2.10 Build 1341 für Hilfsachsen
Befehl | #skip VirtualMovements(<parameter>)#
Parameter | 0 (default): virtuelle Bewegungen werden 'ausgefahren' 1: virtuelle Bewegungen werden übersprungen
Bewegungen von nicht vorhandenen aber dennoch programmierten Hauptachsen (X, Y & Z) können mit dem Befehl 'skip VirtualMovements' übersprungen werden.
Beispiel:
Die Interpolationsgruppe (CfgBuildGroup) beinhaltet nur Zuweisungen für die X- und Y-Achse. Die Z-Achse ist nicht zugewiesen, aber im Teileprogramm programmiert.
(Startposition X0 Y0 Z0)
N10 #skip VirtualMovements(1)#
N20 G01 X100 Y200 F6000
N30 G01 Z1000 (virtual movement, because z is not assigned)
N40 G01 X500
Die Ausführung dieses Programms überspringt das Segment N30.


Meldungen aus dem NC-Programm

Interpreter (DIN 66025/G-Code) [image] Zusatzfunktionen [image] Meldungen aus dem NC-Programm
Meldungen aus dem NC-Programm
ab TwinCAT V2.9 Build 1031
Befehl
#MSG (<message level>; <mask>; "<text>" )#
<message level>
▪
ITP
Die Meldung wird aus dem Interpreter abgesetzt. Damit erscheint die Meldung in der Regel deutlich vor der Abarbeitung im NC-Kern.
▪
NCK
Die Meldung wird mit der Ausführung des NC-Satzes aus dem NC-Kern abgesetzt. Damit erscheint sie synchron mit der Satzausführung (SAF)
<mask>
STRING
<text>
der darzustellende Text
N10 G0 X0 Y0
N20 G01 X100 Y0 F6000

N30 #MSG( NCK; STRING; "this is a text")#

N40 G01 X200 Y-100
Mit dem Text können keine weiteren Parameter (z.B. R-Parameter) übergeben werden.
Die Meldung wird intern wie ein Hinweis gehandhabt.


Werkzeugkorrekturen

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen
Werkzeugkorrekturen
Weiterführende Informationen
•
Werkzeugdaten
•
An- und Abwahl der Längenkorrektur
•
Kartesische Werkzeugverschiebung
•
Fräserradiuskorrektur
•
Orthogonales An- bzw. Abfahren der Kontur
•
Bahngeschwindigkeit bei Kreisen
•
Flaschenhalserkennung


Werkzeugdaten

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen [image] Werkzeugdaten
Werkzeugdaten
Für die Werkzeugdaten stehen in der NC 255 Speicherplätze (D1..D255) pro Kanal zur Verfügung. Die Parameter für die Werkzeugdaten können direkt im System Manager beschrieben werden. Die Sicherung der Daten erfolgt als ASCII-Datei (<Kanal ID>.wz) und wird im TwinCAT\CNC Verzeichnis hinterlegt. Beim Start von TwinCAT werden diese Daten automatisch geladen.
Zurzeit werden zwei Werkzeugtypen unterstützt:
▪
Bohrer
▪
Schaftfräser
Im Folgenden werden die relevanten Spalten (Parameter) für diesen Werkzeugtyp beschrieben.
Bohrer
Parameter | Bedeutung
0 | Tool-Nummer Mit dem Aufruf dieses D-Worts kann gleichzeitig eine Tool-Nummer angegeben werden, die hier festgelegt wird.
1 | Werkzeugtyp Beim Bohrer handelt es sich um Typ 10
2 | Geometrie: Länge Beschreibt die Länge des Bohrers
5 | Verschleiß: Länge Beschreibt den Verschleiß des Bohrers. Dabei muss der Verschleiß negativ angegeben werden, da er zur Länge hinzuaddiert wird.
8 | kartesische Werkzeugverschiebung in X-Richtung
9 | kartesische Werkzeugverschiebung in Y-Richtung
10 | kartesische Werkzeugverschiebung in Z-Richtung
Schaftfräser
Parameter | Bedeutung
0 | Tool-Nummer Mit dem Aufruf dieses D-Worts kann gleichzeitig eine Tool-Nummer angegeben werden, die hier festgelegt wird.
1 | Werkzeugtyp Beim Schaftfräser handelt es sich um Typ 20
2 | Geometrie: Länge Länge des Schaftfräsers
4 | Geometrie: Radius
5 | Verschleiß: Länge
7 | Verschleiß: Radius
8 | kartesische Werkzeugverschiebung in X-Richtung
9 | kartesische Werkzeugverschiebung in Y-Richtung
10 | kartesische Werkzeugverschiebung in Z-Richtung
Schreiben der Werkzeugdaten
Werkzeugdaten mit dem System Manager editieren
Wie bereits erwähnt ist es möglich, die Werkzeugdaten direkt aus dem System Manager zu beschreiben. Editieren Sie dazu das oben abgebildete Fenster.
Werkzeugdaten mit der SPS parametrieren
Des Weiteren können Sie Werkzeugdaten mit dem Funktionsbaustein ItpWriteToolDescEx aus der SPS lesen und schreiben.
Werkzeugdaten aus dem Teileprogramm schreiben
(ab TwinCAT V2.9 Build 932)
Bei manchen Applikationen ist es komfortabler, wenn man die Werkzeugdaten direkt aus dem Teileprogramm beschreiben kann.
Der zu beschreibende Werkzeugsatz darf nicht aktiv sein, wenn er beschrieben wird. D.h. wenn z.B. die Werkzeugradiuskorrektur mit dem Parametersatz D10 aktiv ist, darf dieser nicht überschrieben werden, solange D10 noch angewählt ist.
Befehl | #set ToolParam(<Zeile>; <Spalte>;<Wert>)#
Parameter <Zeile> | Beschreibt die Zeile des Werkzeugparameters (1..255) Dies entspricht der D-Nummer
Parameter <Spalte> | Spalte die beschrieben werden soll (0..15)
Parameter <Wert> | zu übertragender Parameterwert
Beispiel:
N10 G0 X0 Y0 Z0
N20 G01 X100 F60000
N30 R1=10 R2=4 R3=20.3
N40 #set ToolParam(10; 0; 5)# #set ToolParam(10;1;20)#
N50 #set ToolParam(R1; R2; R3)#
N60 G41 X200 Y D10
...
Hinweis Als Parameter dürfen keine Formeln übergeben werden. Für das Beschreiben der Werkzeugdaten ist kein Dekodierstopp erforderlich.
Werzeugdaten aus dem Teileprogramm lesen
(ab TwinCAT V2.10 B1329)
Mit diesem Kommando können Werkzeugdaten einem R-Parameter zugewiesen werden.
Befehl | #get ToolParam(<Zeile>; <Spalte>;<R-Param>)#
Parameter <Zeile> | Beschreibt die Zeile des Werkzeugparameters (1..255), dies entspricht der D-Nummer
Parameter <Spalte> | Spalte die beschrieben werden soll (0..15)
Parameter <R-Param> | R-Parameter, in dem das Datum eingetragen wird
Beispiel:
N10 G0 X0 Y0 Z0
N20 G01 X100 F60000
N30 R1=10 R2=4
N40 #get ToolParam(10; 0; R5)# #getToolParam(10;1;R20)#
N50 #get ToolParam(R1; R2; R3)#
N60 G41 X200 Y D10
...
Hinweise:
Hinweis Als Parameter dürfen keine Formeln übergeben werden. Für das Lesen der Werkzeugdaten ist kein Dekodierstopp erforderlich.


An- und Abwahl der Längenkorrektur

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen [image] An- und Abwahl der Längenkorrektur
An- und Abwahl der Längenkorrektur
Die Anwahl der Längenkorrektur kann nur bei wirksamen G0 bzw. G1 erfolgen. Dabei muss die Arbeitsebene angewählt sein, auf der die Längenkorrektur senkrecht steht.
Die Zustellrichtung wird mit P festgelegt (vergl. Arbeitsebene und Zustellrichtung).
Damit die Längenkorrektur herausgefahren wird, muss die betroffene Achse wenigstens genannt werden.
Beispiel:
N10 G17 G01 X0 Y0 Z0 F6000
N20 D1 X10 Y10 Z
N30 ...
N90 M30
Hinweis Mit der Anwahl der Fräserradiuskorrektur wird die Längenkorrektur automatisch angewählt.Um die Längenkorrektur wieder abzuwählen, muss D0 programmiert werden. Auch hier ist es wieder erforderlich, die betroffenen Achsen zu nennen, um die neue Position anzufahren.


Kartesische Werkzeugverschiebung

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen [image] Kartesische Werkzeugverschiebung
Kartesische Werkzeugverschiebung
Mit der kartesischen Werkzeugverschiebung wird der Offset zwischen dem Bezugspunkt des Werkzeugträgers und dem Bezugspunkt des eigentlichen Werkzeugs beschrieben. In vielen Fällen liegen diese Bezugspunkte übereinander, sodass für die kartesische Werkzeugverschiebung 0 eingetragen werden kann.
Parameter
Die Parameter für die Verschiebung werden wie die Werkzeuglänge etc. bei den Werkzeugdaten eingetragen. Hierfür stehen die Parameter 8 bis 10 zur Verfügung. Dabei beschreibt
▪
P8 immer die X-Komponente
▪
P9 immer die Y-Komponente
▪
P10 immer die Z-Komponente
unabhängig von der Ebenenanwahl.
An- und Abwahl der kartesischen Werkzeugverschiebung
Wie auch die Längenkorrektur, wird die Werkzeugverschiebung mit D<n> (n>0) eingeschaltet. Um die Verschiebung herauszufahren, müssen die Achsen wenigstens genannt werden. D.h. die Verschiebung wird dann herausgefahren, wenn die Achse das erste Mal aufgerufen wird. Zusätzlich kann eine neue Endposition für die Achse eingegeben werden.
Ausgeschaltet wird die Funktion mit D0. Auch hier müssen die Achsen wenigstens genannt werden, damit die Achsen auf die neuen Koordinaten fahren.
Beispiel 1:
N10 G17 G01 X0 Y0 Z0 F6000
N20 D1 X10 Y10 Z (Z-Axis is repositioned)
N30 ...
N90 M30
Beispiel 2:
N10 G17 G01 X0 Y0 Z0 F6000
N20 D1 X10 Y10 (Z-Axis is not moved)
N30 ...
N90 M30
Verwendung von Werkzeugverschiebung und Rotation
Wird die kartesische Werkzeugverschiebung in Verbindung mit der Rotation verwendet, so wird nur dann richtig kompensiert, wenn das Aggregat (Werkzeugträger) ebenfalls um den gleichen Winkel rotiert wird.
Anwendungsbeispiel
Bei Bearbeitungsmaschinen kommt es häufig vor, dass sich an einem Werkzeugträger mehrere Werkzeuge befinden. Je nachdem welche Bearbeitung anliegt, wird das jeweilige Werkzeug pneumatisch zugeschaltet. Da sich die Werkzeuge nun einmal an unterschiedlichen Orten befinden, wird eine kartesische Werkzeugverschiebung benötigt.
Werkzeugparameter
Parameter | Wert
0 | 0..65535
1 | 10
2 | 40
5 | 0
8 | 100.0
9 | 0.0
10 | 50
Verhalten bei Kettenmaßangabe
Standardverhalten, unabhängig von der TwinCAT Version
Wird im Kettenmaß (G91) ein neuer Werkzeugversatz (und auch Längenkorrektur) angewählt, so wird mit dem Nennen der Achse der neue Korrekturwert herausgefahren.
Beispiel 3:
(Tooloffset D1: X10 Y20 Z30)
N10 G01 D1 X100 Y0 Z0 F6000
N20 G91 (incremental dimension)
N30 D2 (Tooloffset D2: X100
Y200 Z300)
N30 Z10
N40 ...
ab TwinCAT Version 2.10 Build 1308
Ab dieser Version ist das Verhalten unter G91 parametrierbar.
Befehl | Beschreibung
ToolOffsetIncOn | Auch unter G91 werden die Werkzeugverschiebungen und Längenkorrektur herausgefahren, wenn die Achse genannt wird
ToolOffsetIncOff | Unter G91 werden die Werkzeugverschiebung und Längenkorrektur nicht herausgefahren
Beispiel 4:
(Tooloffset D1: X10 Y20 Z30)
N05 ToolOffsetIncOff
N10 G01 D1 X100 Y0 Z0 F6000
N20 G91 (incremental dimension)
N30 D2 (Tooloffset D2: X100
Y200 Z300)
N30 Z10
N40 ...
In N10 wird der Tooloffset für alle 3 Achsen herausgefahren. D.h. die Achsen fahren im Maschinen-Koordinaten-System (MCS) auf X110 Y10 Z30.
In N30 wird der neue Tooloffset der Z-Achse nicht herausgefahren. Dadurch ergibt sich im MCS X110 Y10 Z40.
Vergl. auch ZeroShiftIncOn/Off


Fräserradiuskorrektur

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen [image] Fräserradiuskorrektur
Fräserradiuskorrektur
Weiterführende Informationen
•
Fräser-/Schneidenradiuskorrektur aus
•
Fräser-/Schneidenradiuskorrektur links
•
Fräser-/Schneidenradiuskorrektur rechts
•
An- und Abfahrverhalten der Fräserradiuskorrektur


Fräser-/Schneidenradiuskorrektur aus

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen [image] Fräserradiuskorrektur [image] Fräser-/Schneidenradiuskorrektur aus
Fräser-/Schneidenradiuskorrektur aus
Fräser-/Schneidenradiuskorrektur aus
Befehl | G40
Aufhebung | G41 oder G42
Die Funktion G40 schaltet die Fräser-/Schneidenradiuskorrektur aus. Dabei bleibt die Längenkorrektur noch solange aktiv, bis sie mit D0 ausgeschaltet wird.


Fräser-/Schneidenradiuskorrektur links

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen [image] Fräserradiuskorrektur [image] Fräser-/Schneidenradiuskorrektur links
Fräser-/Schneidenradiuskorrektur links
Fräser-/Schneidenradiuskorrektur links
Befehl | G41
Aufhebung | G40
Die Funktion G41 schaltet die Fräser-/Schneidenradiuskorrektur ein. Dabei befindet sich das Werkzeug in Bewegungsrichtung links vom Werkstück.
Wie schon bei der Längenkorrektur kann die Fräserradiuskorrektur nur bei wirksamen G0 oder G1 aktiviert werden. Mit der Anwahl der Fräserradiuskorrektur müssen die Achsen der Ebene verfahren werden.
Beispiel:
N10 G17 G01 X0 Y0 Z0 F6000
N20 G41 X10 Y20 Z D1
N30 X30
N40 G40 X10 Y10 Z
N50 M30
Bild 1: Radiuskorrektur links
Fräserradiuskorrektur gilt nicht für Vollkreise
Es werden keine Vollkreise bei der Fräserradiuskorrektur unterstützt, Sie müssen diese z.B. in Halbkreise aufteilen.
Hinweise:
▪
Damit das NC-Programm ordnungsgemäß beendet werden kann, ist vor dem Programmende die Fräserradiuskorrektur zu deaktivieren
▪
Wird ein Dekodierstopp programmiert, muss die Fräserradiuskorrektur zuvor deaktiviert werden
▪
Durch die Radiuskorrektur kann sich bei Kreisen die Bahngeschwindigkeit an der Kontur verändern, vergl. Sie hierzu 'Bahngeschwindigkeit bei Kreisen'
▪
vergl. Orthogonales An- bzw. Abfahren an der Kontur


Fräser-/Schneidenradiuskorrektur rechts

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen [image] Fräserradiuskorrektur [image] Fräser-/Schneidenradiuskorrektur rechts
Fräser-/Schneidenradiuskorrektur rechts
Fräser-/Schneidenradiuskorrektur rechts
Befehl | G42
Aufhebung | G40
Die Funktion G42 schaltet die Fräser-/Schneidenradiuskorrektur ein. Dabei befindet sich das Werkzeug in Bewegungsrichtung rechts vom Werkstück.
Bild 2: Radiuskorrektur rechts
Fräserradiuskorrektur gilt nicht für Vollkreise
Es werden keine Vollkreise bei der Fräserradiuskorrektur unterstützt, Sie müssen diese z.B. in Halbkreise aufteilen.
Hinweis Für den Fall, dass von G41 nach G42 geschaltet werden soll, so ist zwischen den Geometrien ein G40 zu programmieren.


An- und Abfahrverhalten der Fräserradiuskorrektur

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen [image] Fräserradiuskorrektur [image] An- und Abfahrverhalten der Fräserradiuskorrektur
An- und Abfahrverhalten der Fräserradiuskorrektur
An- und Abfahrverhalten der Fräserradiuskorrektur
Dieses Kapitel beschreibt das An- und Abfahrverhalten beim Einschalten bzw. Ausschalten der Fräserradiuskorrektur. Dieses Verhalten ist abhängig von der Startposition und kann ansonsten nicht beeinflusst werden.
Nach dem Einschalten der Radiuskorrektur muss diese noch herausgefahren werden. D.h. der Fräser steht an einem Punkt P1 (ohne Radiuskorrektur) und verfährt zu einem Punkt P2', wobei der Fräserradius im Punkt P2' kompensiert wird.
Der Punkt P2' ist dabei von der Startposition P1 in der Ebene abhängig, wobei grundsätzlich 3 Fälle unterschieden werden. Diese Fälle werden im Folgenden exemplarisch beim Herausfahren der Radiuskorrektur mit einem programmierten G42 (Korrektur rechts) gezeigt.
Beim Deaktivieren der Korrektur gelten ähnliche Regeln, mit dem Unterschied, dass die Tangente t am Ende des Bahnsegments ermittelt wird und daraus werden die gleichen Bedingungen hergeleitet.
Fall 1
Befindet sich der Startpunkt P1 rechts von der Bahntangente t, so ist P2' orthogonal zur Tangente (vergl. Bild 3). Dieses Anfahrverhalten trifft auf den grün schraffierten Bereich von Bild 4 zu.
Bild 3: Beispiel Startposition rechts von der Bahntangente
Bild 4: Startposition rechts von der Bahntangente (allgemein)
Fall 2
Für den Fall, dass sich die Startposition P1 rechts von der Normalen n und links von der Bahntangente t befindet, so wird P2' verschoben (vergl. Bild 5). Dabei ergibt sich P2' aus dem Schnittpunkt der Parallelen von P1P2 und der verschobenen Strecke P2P3. Beide Geraden werden um den Radius R verschoben.
Diese Verhaltensweise gilt für den grün schraffierten Bereich von Bild 6.
Bild 5: Beispiel Startposition rechts von der Normalen n
Bild 6: Startposition rechts von der Normalen n (allgemein)
Fall 3:
Befindet sich die Startposition P1 links von der Normalen n und auch links von der Bahntangente t, so wird beim Anfahren von P2' ein zusätzliches Kreissegment eingefügt. Damit in P2 kein Freischneiden durchgeführt wird, befindet sich P2' nicht orthogonal zur Anfangstangente der Strecke P2P3.
Das zusätzliche Kreissegment wird für alle Startpositionen im grün schraffierten Bereich von Bild 8 eingefügt.
Bild 7: Beispiel Startposition links von der Normalen n
Bild 8: Startposition links von der Normalen n (allgemein)
Nach dem Herausfahren folgt ein Kreissegment
Die Radiuskorrektur wird immer mit einer Geraden herausgefahren. (Dies muss im Teileprogramm sichergestellt werden, da sonst ein Laufzeitfehler generiert wird). Danach kann die Kontur mit einem Kreis beginnen. Die Regeln für das An- und Abfahren sind dabei die gleich wie zuvor. D.h. auch hier wird die Bahntangente der Kontur zu P2 ermittelt und dann die 3 beschriebenen Fälle unterschieden.
Bild 9: Beispiel Kreissegment
Bild 10: Kreissegment (allgemein)
Falls P2' immer unabhängig vom Startpunkt orthogonal zur Bahntangente von P2 angefahren werden soll, ist das mit einem zusätzlichen Kommando zu realisieren (vergl. Orthogonales An- bzw. Abfahren an der Kontur).


Orthogonales An- bzw. Abfahren der Kontur

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen [image] Orthogonales An- bzw. Abfahren der Kontur
Orthogonales An- bzw. Abfahren der Kontur
ab TwinCAT V2.7 Build 427
Befehl | NORM
Aufhebung | Satzende
Programmierbar mit | G40 G41 G42
Der Befehl 'NORM' bewirkt, dass beim Einschalten der Fräserradiuskorrektur orthogonal zur Kontur angefahren wird. Dabei spielt die aktuelle Position des Fräsers keine Rolle. Bei der Abwahl wird das letzte Segment mit aktiver Korrektur ebenfalls orthogonal verlassen.
Beispiel:
N10 G17
N20 G01 X0 Y0 Z0 F6000
N30 G42 NORM X100 Y0 D5
N40 X200
N50 G40 NORM X220 Y0
N60 M30
Hinweis 1:
Der Norm-Befehl ist bislang nur für Geraden-Geraden-Übergänge implementiert.


Bahngeschwindigkeit bei Kreisen

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen [image] Bahngeschwindigkeit bei Kreisen
Bahngeschwindigkeit bei Kreisen
Bei eingeschalteter Fräserradiuskorrektur ändert sich bei Kreisen der programmierte Kreisradius. Damit verändert sich ebenfalls die Vorschubgeschwindigkeit. Mit den folgenden Befehlen wird festgelegt, ob sich die Vorschubangabe auf die Kontur bezieht oder auf den Werkzeugmittelpunkt.
Konstanter Vorschub an der Kontur
Befehl | CFC
Aufhebung | CFIN oder CFTCP
Mit CFC (constant feed contour) wird der Vorschub an der Kontur konstant gehalten.
Konstanter Vorschub an Innenkreisen
Befehl | CFIN
Aufhebung | CFC oder CFTCP
Mit CFIN (constant feed internal radius) wird der Vorschub an Innenkreisen reduziert. Dadurch ergibt sich an der Kontur eine konstante Geschwindigkeit. Am Außenkreis wird die Geschwindigkeit nicht erhöht.
Konstanter Vorschub des Werkzeugmittelpunkts
Befehl | CFTCP
Aufhebung | CFC oder CFIN
Mit CFTCP (constant feed tool center point) wird der Vorschub des Werkzeugmittelpunkts konstant gehalten. D.h. an Innenkreisen wird die Geschwindigkeit an der Kontur erhöht und an Außenkreisen entsprechend verringert.


Flaschenhalserkennung

Interpreter (DIN 66025/G-Code) [image] Werkzeugkorrekturen [image] Flaschenhalserkennung
Flaschenhalserkennung
ab TwinCAT Version 2.8
Wird bei der Erstellung von Teileprogrammen der Radius des Fräsers nicht berücksichtigt, so kann es vorkommen, dass der Fräser z.B. ungewollt die gegenüberliegende Seite des Werkstücks bearbeitet. D.h. es resultiert eine Konturkollision mit dem Werkstück oder anders ausgedrückt, es wurde ein Flaschenhals programmiert.
Befehl | CDON
Aufhebung | CDOF
Dieses Verhalten kann in dieser Form nur in Verbindung mit der Fräserradiuskorrektur (G41/G42) auftreten. Um derartige Konturkollisionen zu verhindern, kann aus dem Teileprogramm mit CDON die Überwachung eingeschaltet werden. Damit sie auch wirklich aktiv ist, muss auch die Fräserradiuskorrektur angewählt sein.
Die Reaktion der NCI, wenn ein Flaschenhals erkannt wird, kann mit Hilfe der SPS parametriert werden. Dabei werden 3 Fälle unterschieden:
▪
Fehler und Abbruch
Wird ein Flaschenhals erkannt, so generiert die NC einen Laufzeitfehler und bricht die Bearbeitung des Programms ab.
▪
Hinweis und Modifizierung der Kontur
Wenn ein Flaschenhals erkannt wird, dann wird die Kontur so modifiziert, dass keine Konturkollision auftritt (vergl. Bild 1: blaue Linie). D.h. aber auch, dass je nach Programm Segmente ausgelassen werden. Außerdem wird ein Hinweis im Applikationsviewer eingetragen, dass ein Flaschenhals erkannt wurde.
▪
Hinweis und Konturkollision
Wird ein Flaschenhals erkannt, so wird bei dieser Einstellung weder die Kontur verändert noch ein Fehler generiert. Es wird lediglich eine Meldung in den Applikation Viewer eingetragen.
Für die Konturkollisionsüberwachung wird eine gewisse Rechner-Performance benötigt. Deshalb sollte sie nur dann angewählt werden, wenn auch wirklich Bedarf besteht. Des Weiteren sollte noch die Größe des Look-Aheads für die Flaschenhalserkennung festgelegt werden. Dabei wird die Anzahl der Segmente bestimmt, die relativ vom n-ten Segment in die Zukunft geschaut wird, um sie auf Flaschenhälse zu überprüfen. Hier sollte die Anzahl der Segmente nicht unnötig groß gewählt werden, da ansonsten das System belastet wird. Der Wert für den Look-Ahead wird ebenfalls aus der SPS parametriert.
Funktionsbausteine zum Parametrieren der Flaschenhalserkennung:
▪
ItpSetBottleNeckModeEx
▪
ItpGetBottleNeckModeEx
▪
ItpSetBottleNeckLookAheadEx
▪
ItpGetBottleNeckLookAheadEx
Beispiel:
N10 G0 X0 Y0 Z0
N20 CDON
N30 G01 G41 D3 X100 F6000 (cutter radius 30mm)
...
N40 G01 X200
N50 G02 X220 Y-74.641 I0 J-40
N60 G01 X300 Y-104
N70 G01 X230 Y120
N80 G40 D0 Y200
N90 CDOF
...
M30


Befehlsübersicht

Interpreter (DIN 66025/G-Code) [image] Befehlsübersicht
Befehlsübersicht
Weiterführende Informationen
•
Allgemeine Kommandoübersicht
•
@-Kommando Übersicht


Allgemeine Kommandoübersicht

Interpreter (DIN 66025/G-Code) [image] Befehlsübersicht [image] Allgemeine Kommandoübersicht
Allgemeine Kommandoübersicht
Kommando | Beschreibung | satzweise / modal | Default
ANG | Konturzugprogrammierung (Winkel) | s |
AROT | Rotation additiv | m |
CalcInvRot | Berechnet die inverse Rotation eines Vektors | s |
CalcRot | Berechnet die Rotation eines Vektors | s |
CDOF | Flaschenhalserkennung aus | m | Default
CDON | Flaschenhalserkennung ein | m |
CFC | Konstante Geschwindigkeit an der Kontur | m | Default
CFIN | Konstante Geschwindigkeit im Innenkreis | m |
CFTCP | Konstante Geschwindigkeit des Werkzeugmittelpunkts | m |
CIP | Kreisinterpolation | s |
CPCOF | Mittelpunktskorrektur aus | m |
CPCON | Mittelpunktskorrektur ein | m | Default
DelDTG | Restweglöschen | s |
DYNOVR | Dynamischer Override | m |
FCONST | Konstante Vorschubprogrammierung | m | Default
FLIN | Lineare Vorschubprogrammierung | m |
G00 | Eilgang | m |
G01 | Geradeninterpolation | m | Default
G02 | Kreisinterpolation im Uhrzeigersinn | m |
G03 | Kreisinterpolation im Gegenuhrzeigersinn | m |
G04 | Verweilzeit | s |
G09 | Genauhalt | s |
G17 | Ebenenanwahl XY | m | Default
G18 | Ebenenanwahl ZX | m |
G19 | Ebenenanwahl YZ | m |
G40 | Keine Fräser-/Schneidenradiuskorrektur | m | Default
G41 | Fräser-/Schneidenradiuskorrektur links | m |
G42 | Fräser-/Schneidenradiuskorrektur rechts | m |
G53 | Unterdrückung der Nullpunktverschiebung | m | Default
G54 | 1. einstellbare Nullpunktverschiebung | m |
G55 | 2. einstellbare Nullpunktverschiebung | m |
G56 | 3. einstellbare Nullpunktverschiebung | m |
G57 | 4. einstellbare Nullpunktverschiebung | m |
G58 | 1. programmierbare Nullpunktverschiebung | m |
G59 | 2. programmierbare Nullpunktverschiebung | m |
G60 | Genauhalt | m |
G70 | Maßangaben inch | m |
G71 | Maßangabe metrisch | m | Default
G74 | Referenzpunktanfahren per Programm | s |
G90 | Bezugsmaßangabe | m | Default
G91 | Kettenmaßangabe | m |
G700 | Maßangabe inch mit Verrechnung des Vorschubs | m |
G710 | Maßangabe metrisch mit Verrechnung des Vorschubs | m |
Mirror | Koordinatensystem spiegeln | m |
MOD | Modulobewegung | s |
MSG | Meldungen aus dem NC-Programm | s |
NORM | orthogonales An- Abfahren an der Kontur | s |
P+ | Zustellrichtung positiv | m | Default
P- | Zustellrichtung negativ | m |
paramAutoAccurateStop | Automatischer Genauhalt | m |
paramAxisDynamics | Parametrierung der Achsdynamik | m |
paramC1ReductionFactor | C1 Reduktionsfaktor | m |
paramC2ReductionFactor | C2 Reduktionsfaktor | m |
paramCircularSmoothing | Verrundung | m |
paramDevAngle | C0 Reduktion - Ablenkungswinkel | m |
paramGroupVertex | Verrundung (alt) | m |
paramGroupDynamic | Bahndynamik (alt) | m |
paramPathDynamics | Bahndynamik | m |
paramRadiusPrec | Kreisgenauigkeit | m |
paramSplineSmoothing | Glättung mit Bezier-Splines | m |
paramVertexSmoothing | Glättung von Segmentübergängen | m |
paramVeloJump | C0 Reduktion - max. Geschwindigkeitssprung | m |
paramVeloMin | Mindestgeschwindigkeit | m |
paramZeroShift | Parametrierung der einstellbaren Nullpunktverschiebung | m |
PathAxesPos | Liest aktuelle Ist-Position | s |
ROT | Rotation absolut | m |
RotExOff | Erweiterte Rotationsfunktion aus | m | Default
RotExOn | Erweiterte Rotationsfunktion ein | m |
RotVec | Berechnungsroutine zum Drehen eines Vektors | s |
RParam | Initialisierung von R-Parametern | s |
RToDwordGetBit | Wandelt einen R-Parameter zum DWord und prüft, ob ein definiertes Bit gesetzt ist | m |
SEG | Konturzugprogrammierung (Segmentlänge) | s |
skip VirtualMovements | Virtuelle Bewegungen überspringen | m |
ToolOffsetIncOff | Kartesische Werkzeugverschiebung und Längenkorrektur wird unter G91 nicht herausgefahren | m |
ToolOffsetIncOn | Kartesische Werkzeugverschiebung und Längenkorrektur wird unter G91 herausgefahren | m | Default
ToolParam | Schreiben und lesen von Werkzeugparametern | m |
TPM | Zielpositionsüberwachung | s |
ZeroShiftIncOff | Nullpunktverschiebung wird unter G91 nicht herausgefahren | m |
ZeroShiftIncOn | Nullpunktverschiebung wird unter G91 herausgefahren | m | Default
Adresse | Beschreibung
Q<n> | Achsbezeichner der Hilfsachse ( 1 <= n <= 5)


@-Kommando Übersicht

Interpreter (DIN 66025/G-Code) [image] Befehlsübersicht [image] @-Kommando Übersicht
@-Kommando Übersicht
Bei diesen Befehlen sind oft mehrere Varianten möglich, die dadurch entstehen, dass für einen Parameter mit K eine Konstante, mit R ein R-Parameter und mit P ein als Pointer verwendeter R-Parameter angegeben werden kann. Beispielsweise ist die Schreibweise K/R/Pn zu verstehen als "entweder eine Zahl oder ein R-Parameter oder ein Pointer".
Die folgenden @-Befehle stehen zur Verfügung:
Kommando | Varianten | Funktion
@40 | @40 Kn Rn Rm .... | Rette Register auf dem Stack
@41 | @41 Rn Rm | Rette Register auf dem Stack
@42 | @42 Kn .... Rm Rn | Restauriere Register vom Stack
@43 | @43 Rm Rn | Restauriere Register vom Stack
@100 | @100 K±n @100 Rm | Unbedingter Sprung
@111 | @111 Rn K/Rn Km ... | Case-Anweisung
@121 | @121 Rn K/Rn Kn | Springe wenn ungleich
@122 | @122 Rn K/Rn Kn | Springe wenn gleich
@123 | @123 Rn K/Rn Kn | Springe wenn kleiner gleich
@124 | @124 Rn K/Rn Kn | Springe wenn kleiner
@125 | @125 Rn K/Rn Kn | Springe wenn größer gleich
@126 | @126 Rn K/Rn Kn | Springe wenn größer
@131 | @131 Rn K/Rn Kn | Schleife solange gleich
@132 | @132 Rn K/Rn Kn | Schleife solange ungleich
@133 | @133 Rn K/Rn Kn | Schleife solange grösser
@134 | @134 Rn K/Rn Kn | Schleife solange grösser oder gleich
@135 | @135 Rn K/Rn Kn | Schleife solange kleiner
@136 | @136 Rn K/Rn Kn | Schleife solange kleiner oder gleich
@141 | @141 Rn K/Rn Kn | Wiederhole bis gleich
@142 | @142 Rn K/Rn Kn | Wiederhole bis ungleich
@143 | @143 Rn K/Rn Kn | Wiederhole bis grösser
@144 | @144 Rn K/Rn Kn | Wiederhole bis grösser oder gleich
@145 | @145 Rn K/Rn Kn | Wiederhole bis kleiner
@146 | @146 Rn K/Rn Kn | Wiederhole bis kleiner oder gleich
@151 | @151 Rn K/Rn Kn | FOR_TO-Schleife
@161 | @161 Rn K/Rn Kn | FOR_DOWNTO-Schleife
@200 | @200 Rn | Löschen einer Variablen
@202 | @202 Rn Rm | Vertauschen von zwei Variablen
@302 | @302 K/R/Pn K/R/Pn R/Pn | Lese Maschinendatenbit
@361 | @361 Rn Km | Lese maschinenbezogenen Achsen-Istwert
@372 | @372 Rn | Nummer des NC-Kanals in Variable einstellen.
@402 | @402 K/R/Pn K/R/Pn K/R/Pn | Schreibe Maschinendatenbit
@610 | @610 Rn Rn | Absolutwert einer Variablen ermitteln
@613 | @613 Rn Rn | Quadratwurzel einer Variablen ermitteln
@614 | @614 Rn Rm Rm | Quadratwurzel der Summe der Quadrate von zwei Variablen ermitteln x = sqrt( a^2 + b^2)
@620 | @620 Rn | Variable inkrementieren
@621 | @621 Rn | Variable dekrementieren
@622 | @622 Rn | Ganzzahl einer Variablen ermitteln
@630 | @630 Rn Rm | Sinus einer Variablen ermitteln
@631 | @631 Rn Rm | Cosinus einer Variablen ermitteln
@632 | @632 Rn Rm | Tangens einer Variablen ermitteln
@633 | @633 Rn Rm | Cotangens einer Variablen ermitteln
@634 | @634 Rn Rm | Arcus Sinus einer Variablen ermitteln
@635 | @635 Rn Rm | Arcus Cosinus einer Variablen ermitteln
@636 | @636 Rn Rm | Arcus Tangens einer Variablen ermitteln
@714 | @714 | Dekodier-Stop
@716 | @716 | Dekodier-Stop mit Rescan der Achspositionen
@717 | @717 | Dekodier-Stop mit externen Triggerevent
Maschinendaten
Zugriffe auf folgende Maschinendaten werden unterstützt:
Byte | Bit | Wirkungsweise
5003 | 5 | 0: IJK-Worte legen den Abstand des Kreismittelpunktes vom Anfangspunkt fest. 1: IJK sind Absolutangaben des Kreismittelpunktes.


PLC NCI Libraries

PLC NCI Libraries
PLC NCI Libraries
Voraussetzungen
Übersicht der PLC NCI Libraries | Beschreibung
TwinCAT PLC Library NCI Interpreter | Bausteine für die Bedienung des Interpreters (G-Codes (DIN 66025)). Dies sind z.B. laden und starten.
TwinCAT PLC Library NC Configuration | Bausteine für die Konfiguration der Interpolationsgruppe (z.B. Bilden der 3D Gruppe)
TwinCAT PLC Library NCI Utilities | Hilfsfunktionsbausteine für die Interpolation (z.B. geniere ASCII-Zeile für Geradenbewegung)
TwinCAT PLC Library TcPlcInterpolation | Programmierung von mehrdimensionalen Bewegungen aus der SPS (Alternative zur Benutzung des G-Codes (DIN 66025))
Weiterführende Informationen
•
PLC Library: NCI Interpreter
•
PLC Library: NC Configuration
•
PLC Library: NCI Utilities
•
PLC Library: TcPlcInterpolation


PLC Library: NCI Interpreter

PLC NCI Libraries [image] PLC Library: NCI Interpreter
PLC Library: NCI Interpreter
Die TwinCAT-Bibliotheken TcNci.lib enthält Funktionsbausteine zur Bedienung des NC-Interpreters aus der SPS heraus.
Die folgenden Funktionsbausteine sind in der Bibliothek TcNci.lib enthalten.
Funktionsbaustein | Beschreibung
ItpConfirmHsk | Bestätigt eine M-Funktion vom Typ Handshake
ItpDelDtgEx | Triggert das Restweglöschen in der NC
ItpEnableDefaultGCode | Führt vor dem Start jedes NC-Programms einen vom Anwender definierten Standard G-Code aus
ItpEStopEx | Triggert den NCI EStop
ItpGetBlockNumber | Liefert die Blocknummer des NC Programms des zyklischen Interfaces
ItpGetBottleNeckLookAheadEx | Liefert die Größe des Look-Aheads für die Flaschenhalserkennung
ItpGetBottleNeckModeEx | Liefert den Reaktionsmode für die Flaschenhalserkennung
ItpGetChannelId | Liefert die Kanal ID
ItpGetChannelType | Liefert den Kanaltyp des zyklischen Interfaces
ItpGetCyclicLRealOffsets | Liefert die Index Offsets der im zyklischen Kanalinterface verwendeten LREAL Variablen
ItpGetCyclicUdintOffsets | Liefert die Index Offsets der im zyklischen Kanalinterface verwendeten UDINT Variablen
ItpGetError | Liefert die Fehlernummer
ItpGetGroupAxisIds | Liefert die Achs-IDs die für die Gruppe konfiguriert worden sind
ItpGetGroupId | Liefert die Gruppen ID
ItpGetHParam | Liefert den aktuellen H-Parameter aus der NC
ItpGetHskMFunc | Liefert die aktuell anliegende M-Funktionsnummer vom Typ Handshake
ItpGetItfVersion | Liefert die aktuelle Version des zyklischen Interfaces
ItpGetOverridePercent | Liefert den Kanaloverride in Prozent
ItpGetSParam | Liefert den aktuellen S-Parameter aus der NC
ItpGetStateInterpreter | Liefert den aktuellen Status des Interpreters
ItpGetTParam | Liefert den aktuellen T-Parameter aus der NC
ItpGetVersion | Liefert die Versionsnummer dieser Library
ItpGoAheadEx | Triggert die GoAhead Funktion (Dekodierstopp mit externem Triggerevent)
ItpHasError | Ermittelt, ob ein Fehler anliegt
ItpIsFastMFunc | Ermittelt, ob die mitgegebene M-Funktionsnummer als schnelle M-Funktion anliegt
ItpIsEStopEx | Ermittelt, ob ein EStop ausgeführt wird bzw. ob ein EStop anliegt
ItpIsHskMFunc | Ermittelt, ob eine M-Funktion vom Typ Handshake anliegt
ItpLoadProgEx | Lädt ein NC-Programm via Programmnamen
ItpReadCyclicLRealParam1 | Liest den ersten LReal Parameter aus dem zyklischen Kanalinterface
ItpReadCyclicUdintParam1 | Liest den ersten UDint Parameter aus dem zyklischen Kanalinterface
ItpReadRParamsEx | Liest Rechenparameter
ItpReadToolDescEx | Liest die Werkzeugbeschreibung aus der NC
ItpReadZeroShiftEx | Liest die Nullpunktverschiebung aus der NC
ItpResetEx2 | Führt einen Reset des Interpreters, bzw. des NC-Kanals aus
ItpResetFastMFuncEx | Setzt ein schnelles Signal-Bit zurück
ItpSetBottleNeckLookAheadEx | Setzt die Größe des Look-Ahead für die Flaschenhalserkennung
ItpSetBottleNeckModeEx | Setzt den Reaktionsmode bei eingeschalteter Flaschenhalserkennung
ItpSetCyclicLRealOffsets | Setzt die Index Offsets der im zyklischen Kanalinterface verwendeten LREAL Variablen
ItpSetCyclicUdintOffsets | Setzt die Index Offsets der im zyklischen Kanalinterface verwendeten UDINT Variablen
ItpSetOverridePercent | Setzt den Kanaloverride in Prozent
ItpSetSubroutinePathEx | Setzt optional den Suchpfad für Unterprogramme
ItpSetToolDescNullEx | Setzt alle Toolparameter (inkl. Nummer und Type) auf Null
ItpSetZeroShiftNullEx | Setzt alle Nullpunktverschiebungen auf Null
ItpSingleBlock | Aktiviert bzw. deaktiviert die Einzelsatzausführung in der NCI.
ItpStartStopEx | Startet bzw. stoppt den Interpreter (NC-Kanal)
ItpStepOnAfterEStopEx | Ermöglicht die Weiterbearbeitung des Teileprogramms nach einem NCI EStop
ItpWriteRParamsEx | Schreibt Rechenparameter
ItpWriteToolDescEx | Schreibt die Werkzeugbeschreibung in die NC
ItpWriteZeroShiftEx | Schreibt die Nullpunktverschiebung in die NC
Blocksearch (Funktionalitätsbeschreibung siehe Blocksearch)
ItpBlocksearch | Setzt den Interpreter auf eine vom Anwender definierte Stelle, sodass das NC-Programm ab dieser Stelle weiter abgearbeitet wird.
ItpGetBlocksearchData | Liest nach der Unterbrechung eines NC-Programms den aktuellen Zustand aus.
ItpStepOnAfterBlocksearch | Startet die Bewegung nachdem ein Blocksearch ausgeführt wurde.
Rückwärtsfahren
ItpEnableFeederBackup | Aktiviert die Backup-Liste für das Rückwärtsfahren
ItpIsFeederBackupEnabled | Liest aus, ob die Backup-Liste zum Rückwärtsfahren aktiv ist
ItpIsFirstSegmentReached | Liest aus, ob beim Rückwärtsfahren die Startposition erreicht ist
ItpIsFeedFromBackupList | Liest aus, ob Feeder-Einträge aus der Backupliste gesendet werden
ItpIsMovingBackwards | Liest aus, ob rückwärts auf der aktuellen Bahn verfahren wird
ItpRetraceMoveBackward | Führt eine Rückwärtsbewegung auf der Bahn aus
ItpRetraceMoveForward | Führt eine Vorwärtsbewegung auf der Bahn aus, wird aufgerufen um das Rückwärtsfahren abzubrechen.
Voraussetzungen
Die einzubindende Bibliothek ist von der TwinCAT Version abhängig. Ab TwinCAT Version 2.8 sollte die TcNci.lib verwendet werden. Für ältere Versionen sollte die TcNciItp.lib verwendet werden. Das Interface von Funktionsbausteinen etc. beider Bibliotheken ist identisch.
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
ab TwinCAT v2.8.0 | PC (i386) | TcNci.lib
Funktionsbausteine zur Kompatibilität mit bestehenden Programmen:
Funktionsbausteine zur Kompatibilität
Die unten aufgeführten Funktionsbausteine existieren zur Kompatibilität mit bestehenden Projekten. Für neue Projekte wird empfohlen, diese Bausteine nicht zu verwenden und stattdessen die äquivalenten Bausteine in der oberen Tabelle zu benutzen.
Funktionsbaustein | Beschreibung
ItpDelDtg | Triggert das Restweglöschen in der NC
ItpEStop | Triggert den NCI EStop
ItpGetBottleNeckLookAhead | Liefert die Größe des Look-Aheads für die Flaschenhalserkennung
ItpGetBottleNeckMode | Liefert den Reaktionsmode für die Flaschenhalserkennung
ItpGoAhead | Triggert die GoAhead Funktion
ItpIsEStop | Ermittelt, ob ein EStop ausgeführt wird bzw. ob ein EStop anliegt
ItpLoadProg | Lädt ein NC-Programm via Programmnamen
ItpReadRParams | Liest Rechenparameter
ItpReadToolDesc | Liest die Werkzeugbeschreibung aus der NC
ItpReadZeroShift | Liest die Nullpunktverschiebung aus der NC
ItpReset | Führt einen Reset des Interpreters, bzw. des NC-Kanals aus
ItpResetEx | Führt einen Reset des Interpreters, bzw. des NC-Kanals aus.
ItpResetFastMFunc | Setzt ein schnelles Signal-Bit zurück
ItpSetBottleNeckLookAhead | Setzt die Größe des Look-Ahead für die Flaschenhalserkennung
ItpSetBottleNeckMode | Setzt den Reaktionsmode bei eingeschalteter Flaschenhalserkennung
ItpSetSubroutinePath | Setzt optional den Suchpfad für Unterprogramme
ItpSetToolDescNull | Setzt alle Toolparameter (inkl. Nummer und Type) auf Null
ItpSetZeroShiftNull | Setzt alle Nullpunkte auf Null
ItpStartStop | Startet bzw. Stoppt den Interpreter (NC-Kanal)
ItpStepOnAfterEStop | Ermöglicht die Weiterbearbeitung des Teileprogramms nach einem NCI EStop
ItpWriteRParams | Schreibt Rechenparameter
ItpWriteToolDesc | Schreibt die Werkzeugbeschreibung in die NC
ItpWriteZeroShift | Schreibt die Nullpunktverschiebung in die NC
Weiterführende Informationen
•
ItpConfirmHsk
•
ItpDelDtgEx
•
ItpEnableDefaultGCode
•
ItpEStopEx
•
ItpGetBlockNumber
•
ItpGetBottleNeckLookAheadEx
•
ItpGetBottleNeckModeEx
•
ItpGetChannelId
•
ItpGetChannelType
•
ItpGetCyclicLrealOffsets
•
ItpGetCyclicUDintOffsets
•
ItpGetError
•
ItpGetGroupAxisIds
•
ItpGetGroupId
•
ItpGetHParam
•
ItpGetHskMFunc
•
ItpGetItfVersion
•
ItpGetOverridePercent
•
ItpGetSParam
•
ItpGetStateInterpreter
•
ItpGetTParam
•
ItpGetVersion
•
ItpGoAheadEx
•
ItpHasError
•
ItpIsFastMFunc
•
ItpIsEStopEx
•
ItpIsHskMFunc
•
ItpLoadProgEx
•
ItpReadCyclicLRealParam1
•
ItpReadCyclicUdintParam1
•
ItpReadRParamsEx
•
ItpReadToolDescEx
•
ItpReadZeroShiftEx
•
ItpResetEx2
•
ItpResetFastMFuncEx
•
ItpSetBottleNeckLookAheadEx
•
ItpSetBottleNeckModeEx
•
ItpSetCyclicLrealOffsets
•
ItpSetCyclicUDintOffsets
•
ItpSetOverridePercent
•
ItpSetSubroutinePathEx
•
ItpSetToolDescNullEx
•
ItpSetZeroShiftNullEx
•
ItpSingleBlock
•
ItpStartStopEx
•
ItpStepOnAfterEStopEx
•
ItpWriteRParamsEx
•
ItpWriteToolDescEx
•
ItpWriteZeroShiftEx
•
Blocksearch
•
Rückwärtsfahren
•
Bausteine zur Kompatibilität mit bestehenden Programmen


ItpConfirmHsk

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpConfirmHsk
ItpConfirmHsk
ab Library Version 4.0
Der Funktionsbaustein ItpConfirmHsk bestätigt die aktuell anliegende M-Funktion.
Wenn der Kanaloverride auf 0 gesetzt oder ein E-Stop aktiv ist, werden für diese Zeit keine M-Funktionen bestätigt. Somit bleibt das Busy-Signal von ItpConfirmHsk anliegen und muss weiterhin aufgerufen werden.
Interface
VAR_INPUT
bExecute : BOOL;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
sPlcToNci : NciChannelFromPlc;
END_VAR
NciChannelToPlc
NciChannelFromPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Parameter
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
sPlcToNci | NciChannelFromPlc | Struktur des zyklischen Kanalinterfaces von der SPS zur NCI.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis im Kanalinterface das Request-Bit der M-Funktion auf FALSE gesetzt wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpDelDtgEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpDelDtgEx
ItpDelDtgEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Baustein ItpDelDtgEx triggert das Restweglöschen. Eine ausführlichere Beschreibung ist in der Interpreter Dokumentation zu finden.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpEnableDefaultGCode

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpEnableDefaultGCode
ItpEnableDefaultGCode
ab Library Version 4.0
Der Funktionsbaustein ItpEnableDefaultGCode ermöglicht es aus der SPS einen vom Anwender definierten G-Code vor dem Start jedes NC-Programms auszuführen. Das Defaultprogramm wird beim Start des eigentlichen NC-Programms vor dem geladenen Programm ausgeführt.
Mit diesem Funktionsbaustein ist es zum Beispiel möglich, das Koordinatensystem für alle auszuführenden NC-Programme zu drehen.
Der Standard-G-Code muss als „DefaultGCode<Channel-Number>.def“ im TwinCAT\CNC Verzeichnis gespeichert werden.
Interface
VAR_IN
bExecute : BOOL;
bUseDefaultGCode : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
bUseDefaultGCode | BOOL | Ist diese Variable TRUE, wird durch eine steigende Flanke an bExecute der Default G-Code aktiviert. Ist die Variable FALSE, wird der Default G-Code deaktiviert.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.


ItpEStopEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpEStopEx
ItpEStopEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Interface
VAR_INPUT
bExecute : BOOL;
fDec : LREAL;
fJerk : LREAL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Baustein ItpEStopEx triggert den NCI EStop und ermöglicht so ein kontrolliertes Anhalten auf der Bahn. Dabei werden die Grenzwerte für die Verzögerung und den Ruck als Parameter übertragen. Falls diese kleiner sein sollten, als die z.Zt. wirkenden Dynamikparameter, so werden die übertragenden Parameter verworfen.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
fDec | LREAL | max. Verzögerung mit der angehalten werden soll. Ist fDec kleiner als die z.Zt. aktive Verzögerung, so wird fDec nicht übernommen. Es wird so also sichergestellt, dass mindestens mit der Standard-Rampe verzögert wird.
fJerk | LREAL | max. Ruck mit dem angehalten werden soll. Ist fJerk kleiner als der z.Zt. akive Ruck, so wird fJerk nicht übernommen.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Siehe auch ItpStepOnAfterEStopEx.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpGetBlockNumber

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetBlockNumber
ItpGetBlockNumber
ab Bibliotheksversion 6.1.32
ItpGetBlockNumber ist eine Funktion, die die Blocknummer des NC-Programms des zyklischen Interfaces zurückliefert.
Interface
Function ItpGetBlockNumber

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Rückgabewert
Datentyp | Beschreibung
UDINT | Blocknummer des aktiven Geometriesegments
Beispiel
VAR
nBlockNumber : UDINT;
sNciToPlc : NciChannelToPlc;
END_VAR
nBlockNumber := ItpGetBlockNumber(sNciToPlc);
Voraussetzungen
Entwicklungsumgebung | Zielsystem | einzubindende SPS-Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpGetBottleNeckLookAheadEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetBottleNeckLookAheadEx
ItpGetBottleNeckLookAheadEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
nLookAhead : UDINT;
END_VAR
Beschreibung
Der Baustein ItpGetBottleNeckLookAheadEx ermittelt die maximale verwendete Größe des LookAheads für die Falschenhalserkennung (Kontur-Kollisions-Überwachung).
Eine weitere Beschreibung ist in der Interpreter Dokumentation zu finden.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der, an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wenn der Baustein einen Timeout-Fehler hat, so ist 'Error' = TRUE und 'nErrId' = 1861 (Hexadezimal 0x745). Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
nLookAhead | UDINT | Größe des Look-Aheads für die Flaschenhalserkennung
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpGetBottleNeckModeEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetBottleNeckModeEx
ItpGetBottleNeckModeEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
eBottleNeckMode : E_ItpBnMode
END_VAR
TYPE E_ItpBnMode:
(
ItpBnm_Abort := 0,
ItpBnm_Adjust := 1,
ItpBnm_Leave := 2
);
END_TYPE
Beschreibung
Der Baustein ItpGetBottleNeckModeEx liest die Verhaltensweise bei einer auftretenden Kontur-Kollision (Flaschenhals) aus.
Eine weitere Beschreibung ist in der Interpreter Dokumentation zu finden.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der, an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wenn der Baustein ein Timeout-Fehler hat, so ist 'Error' = TRUE und 'nErrId' = 1861 (Hexadezimal 0x745). Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
eBottleNeckMode | E_ItpBnMode | Enum für die Verhaltensweise bei einer auftretenden Kontur-Kollision
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpGetChannelId

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetChannelId
ItpGetChannelId
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
ItpGetChannelId ist eine Funktion, die aus dem zyklischen Interface die Kanal ID ermittelt
Interface
FUNCTION ItpGetChannelId

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Ein- & Ausganh | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Rückgabewert
Datentyp | Beschreibung
UDINT | Kanal ID
Beispiel
VAR
nChnId : UINT;
sNciToPlc : NciChannelToPlc;
END_VAR
nChnId := ItpGetChannelId( sNciToPlc );
siehe auch: ItpGetGroupId
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpGetChannelType

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetChannelType
ItpGetChannelType
ab Bibliotheksversion 6.1.32
ItpGetChannelType ist eine Function, die den Kanaltyp des zyklischen Interfaces zurückliefert.
Interface
FUNCTION ItpGetChannelType

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Ein- & Ausganh | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Rückgabewert
Datentyp | Beschreibung
E_ItpChannelType | Kanaltyp
TYPE E_ItpChannelType :
(
ItpChannelTypeNone,
ItpChannelTypeInterpreter,
ItpChannelTypeKinematic,
ItpChannelType_InvalidItfVer := 16#4B14 (*ErrTcNciItp_ItfVersion the cyclic channel interface does not match to the requested function/fb *)
);
END_TYPE
Beispiel
VAR
nChannelType : E_ItpChannelType;
sNciToPlc : NciChannelToPlc;
END_VAR
nChannelType := ItpGetChannelType( sNciToPlc );
Voraussetzungen
Entwicklungsumgebung | Zielsystem | einzubindende SPS-Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpGetCyclicLrealOffsets

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetCyclicLrealOffsets
ItpGetCyclicLrealOffsets
ab Library Version 6.1.25 und TwinCAT Version 2.10 Build 1320
Mit dem Funktionsbaustein ItpGetCyclicLRealOffsets wird die aktuelle Konfiguration des zyklischen Kanalinterface für LREAL Variablen ausgelesen.
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
nIndexOffsetParam1 : UDINT;
nIndexOffsetParam2 : UDINT;
nIndexOffsetParam3 : UDINT;
nIndexOffsetParam4 : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der, an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
nIndexOffsetParam1 | UDINT | Gruppenzustand (Index Offset) für Parameter 1
nIndexOffsetParam2 | UDINT | Gruppenzustand (Index Offset) für Parameter 2
nIndexOffsetParam3 | UDINT | Gruppenzustand (Index Offset) für Parameter 3
nIndexOffsetParam4 | UDINT | Gruppenzustand (Index Offset) für Parameter 4
siehe auch:
▪
ItpReadCyclicLRealParam1
▪
ItpSetCyclicLRealOffsets
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpGetCyclicUDintOffsets

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetCyclicUDintOffsets
ItpGetCyclicUDintOffsets
ab Library Version 6.1.25 und TwinCAT Version 2.10 Build 1320
Mit dem Funktionsbaustein ItpGetCyclicUDintOffsets wird die aktuelle Konfiguration des zyklischen Kanalinterface für UDINT Variablen ausgelesen.
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
nIndexOffsetParam1 : UDINT;
nIndexOffsetParam2 : UDINT;
nIndexOffsetParam3 : UDINT;
nIndexOffsetParam4 : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der, an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
nIndexOffsetParam1 | UDINT | Gruppenzustand (Index Offset) für Parameter 1
nIndexOffsetParam2 | UDINT | Gruppenzustand (Index Offset) für Parameter 2
nIndexOffsetParam3 | UDINT | Gruppenzustand (Index Offset) für Parameter 3
nIndexOffsetParam4 | UDINT | Gruppenzustand (Index Offset) für Parameter 4
siehe auch:
▪
ItpReadCyclicUDintParam1
▪
ItpSetCyclicUdintOffsets
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpGetError

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetError
ItpGetError
ab Library Version 4.0
ItpGetError ist eine Funktion, die die Fehlernummer zurückliefert. Eine Beschreibung der NC Fehlercodes ist hier zu finden.
Interface
FUNCTION ItpGetError

VAR_IN_OUT
sNciToPlc: NciChannelToPlc;
END_VAR
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS
Rückgabewert
Datentyp | Beschreibung
UINT | Fehlernummer
Hinweis:
ItpGetError wertet aus dem zyklischen Interface die Variable 'nItpErrCode' aus.
Beispiel
VAR
bItpError: BOOL;
nErrId: UINT;
sNciToPlc: NciChannelToPlc;
END_VAR
bItpError := ItpHasError( sNciToPlc );
IF bItpError THEN
nErrId := ItpGetError( sNciToPlc );
…
END_IF
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpGetGroupAxisIds

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetGroupAxisIds
ItpGetGroupAxisIds
ab Bibliotheksversion 6.1.29
ItpGetGroupAxisIds ist eine Funktion, die ein Array von Achsen-IDs liefert, die für die Gruppe konfiguriert worden sind.
Interface
FUNCTION ItpGetGroupAxisIds

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
nNciAxisIds : ARRAY[1..8] OF DWORD;
END_VAR
NciChannelToPlc
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
sNciAxisIds | ARRAY[1..8] OF DWORD | Array der Achsen-IDs
Rückgabewert
Datentyp | Beschreibung
DWORD | Fehlernummer - diese Funktion ist nur gültig für ein zyklisches Interface der Version 6 und höher.
Hinweis:
ItpGetGroupAxisIds wertet die Informationen der Variable 'nAcsAxisIDs[8]' aus dem zyklischen Interface aus.
Beispiel
VAR
nNciAxisIds : ARRAY[1..8] OF DWORD;
sNciToPlc : NciChannelToPlc;
nVersionErr : DWORD;
END_VAR
nVersionErr := ItpGetGroupAxisIds(nNciAxisIds, sNciToPlc );


ItpGetGroupId

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetGroupId
ItpGetGroupId
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
ItpGetGroupId ist eine Funktion, die aus dem zyklischen Interface die Group ID ermittelt.
Interface
FUNCTION ItpGetGroupId

VAR_IN_OUT
sNciToPlc: NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Rückgabewert
Datentyp | Beschreibung
UINT | Group ID
Beispiel
VAR
nGrpId: UINT;
sNciToPlc: NciChannelToPlc;
END_VAR
nGrpId := ItpGetGroupId( sNciToPlc );
Siehe auch: ItpGetChannelId
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpGetHParam

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetHParam
ItpGetHParam
ab Library Version 4.0
ItpGetHParam ist eine Funktion, die den aktuellen H-Parameter zurückliefert.
Interface
FUNCTION ItpGetHParam

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Rückgabewert
Datentyp | Beschreibung
DINT | H-Parameter
Hinweis ItpGetHParam wertet aus dem zyklischen Interface die Variable 'nHFuncValue' aus.
Beispiel
VAR
nHParam: DINT;
sNciToPlc: NciChannelToPlc;
END_VAR
nHParam := ItpGetHParam( sNciToPlc );
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpGetHskMFunc

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetHskMFunc
ItpGetHskMFunc
ab Library Version 4.0
ItpGetHskMFunc liefert die Nummer der M-Funkion vom Typ Handshake.
Interface
FUNCTION ItpGetHskMFunc

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Rückgabewert
Datentyp | Beschreibung
INT | Nummer der M-Funktion
Hinweis ItpGetHskMFunc wertet aus dem zyklischen Interface die Variable 'nHskMFuncNo' aus.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpGetItfVersion

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetItfVersion
ItpGetItfVersion
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
ItpGetItfVersion ist eine Funktion, die die Versionsnummer des zyklischen Interfaces ermittelt.
Interface
FUNCTION ItpGetItfVersion

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Rückgabewert
Datentyp | Beschreibung
UINT | Versionsnummer des zyklischen Interfaces
Beispiel
VAR
nItfVer: UINT;
sNciToPlc: NciChannelToPlc;
END_VAR
nItfVer := ItpGetItfVersion( sNciToPlc );
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpGetOverridePercent

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetOverridePercent
ItpGetOverridePercent
ab Library Version 4.0
Die Funktion ItpGetOverridePercent liefert den Achsen-Kanal-Override in Prozent. Dabei muss unbedingt beachtet werden, dass es sich hierbei nicht um einen Wert von der NC handelt. Es wird der Wert ausgewertet, der sollwertseitig an die NC weiter gegeben wird.
Interface
FUNCTION ItpGetOverridePercent

VAR_IN_OUT
sPlcToNci : NciChannelFromPlc;
END_VAR
NciChannelFromPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sPlcToNci | NciChannelFromPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird hier nur lesend zugegriffen.
Rückgabewert
Datentyp | Beschreibung
LREAL | Override in Prozent
Beispiel
VAR
sPlcToNci: NciChannelFromPlc;
fOverride: LREAL;
END_VAR
fOverride := ItpGetOverridePercent( sPlcToNci );
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpGetSParam

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetSParam
ItpGetSParam
ab Library Version 4.0
ItpGetSParam ist eine Funktion, die den aktuellen S-Parameter zurückliefert.
Interface
FUNCTION ItpGetSParam

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Aus diese Struktur wird nur lesend zugegriffen.
Rückgabewert
Datentyp | Beschreibung
UINT | S-Parameter
Hinweis ItpGetSParam wertet aus dem zyklischen Interface die Variable 'nSpindleRpm' aus.
Beispiel
VAR
nSParam: UINT;
sNciToPlc: NciChannelToPlc;
END_VAR
nSParam := ItpGetSParam( sNciToPlc );
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpGetStateInterpreter

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetStateInterpreter
ItpGetStateInterpreter
ab Library Version 4.1
ItpGetStateInterpreter ist eine Funktion, die den Interpreter Status zurückliefert.
Interface
FUNCTION ItpGetStateInterpreter : UDINT

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS
Rückgabewert
Datentyp | Beschreibung
UDINT | Aktueller Status des Interpreters
Hinweis ItpGetStateInterrpreter wertet aus dem zyklischen Interface die Variable 'nItpState' aus.
Beispiel
VAR
nItpState: UDINT;
sNciToPlc: NciChannelToPlc;
END_VAR
nItpState := ItpGetStateInterpreter( sNciToPlc );
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpGetTParam

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetTParam
ItpGetTParam
ab Library Version 4.0
ItpGetTParam ist eine Funktion, die den aktuellen T-Parameter zurückliefert.
Interface
FUNCTION ItpGetTParam

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Rückgabewert
Datentyp | Beschreibung
UINT | T-Parameter
Hinweis ItpGetTParam wertet aus dem zyklischen Interface die Variable 'nTool' aus.
Beispiel
VAR
nTParam: UINT;
sNciToPlc: NciChannelToPlc;
END_VAR
nTParam := ItpGetTParam( sNciToPlc );
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpGetVersion

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGetVersion
ItpGetVersion
ab Library Version 4.0
ItpGetVersion ist eine Funktion, die die aktuelle Versionsnummer dieser SPS-Bibliothek als String liefert.
Interface
FUNCTION ItpGetVersion

VAR_INPUT
END_VAR
Rückgabewert
Datentyp | Beschreibung
STRING(20) | Versionsnummer
Beispiel
VAR
strVersion: STRING(20);
END_VAR
strVersion := ItpGetVersion();
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpGoAheadEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpGoAheadEx
ItpGoAheadEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der Baustein ItpGoAheadEx darf nur in Verbindung mit dem Dekodierstopp '@717' verwendet werden. Eine ausführlichere Beschreibung dieses Dekodierstopps ist in der Interpreter Dokumentation zu finden.
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der, an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Der Ausgang Wird durch das Ausführen eines neuen Befehls auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpHasError

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpHasError
ItpHasError
ab Library Version 4.0
ItpHasError ist eine Funktion, die ermittelt, ob der Interpreter im Fehlerzustand ist.
Interface
FUNCTION ItpHasError : BOOL

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS
Rückgabewert
Die Funktion liefert im Fehlerfall ein TRUE.
Hinweis ItpHasError wertet aus dem zyklischen Interface die Variable 'nItpErrCode' aus. Ist dieser Wert ungleich 0, so wird TRUE zurückgegeben.
Beispiel
VAR
bItpError: BOOL;
sNciToPlc: NciChannelToPlc;
END_VAR
bItpError := ItpHasError( sNciToPlc );
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpIsFastMFunc

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpIsFastMFunc
ItpIsFastMFunc
ab Library Version 4.0
ItpIsFastMFunc ist eine Funktion, die ermittelt, ob bei der mitgegebenen M-Funktionsnummer die schnelle M-Funktion gesetzt ist.
Interface
FUNCTION ItpIsFastMFunc

VAR_IN
nFastMFuncNo : INT;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Eingang | Datentyp | Beschreibung
nFastMFuncNo | INT | Nummer der M-Funktion, die überprüft werden soll.
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS
Rückgabewert
Die Funktion liefert TRUE, wenn das schnelle Bit der M-Funktion gesetzt ist.
Hinweis ItpIsFastMFunc wertet aus dem zyklischen Interface die Variable 'nFastMFuncMask' aus.
Beispiel
(*this enum is defined by the user *)

TYPE FastMFuncs:
(
M10_CoolingFluidOn := 10, (*fast M-Funktion M10*)
M11_CoolingFluidOff := 11,
M12_FanOn := 12,
M13_FanOff := 13
);
END_TYPE
VAR
sNciToPlc: NciChannelToPlc
enFastMFuncs: FastMFuncs;
bTurnFanOn: BOOL;
END_VAR
bTurnFanOn := ItpIsFastMFunc( M12_FanOn,sNciToPlc );
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpIsEStopEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpIsEStopEx
ItpIsEStopEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Die Funktion ItpIsEStopEx liefert die Information, ob ein EStop-Kommando angestoßen wurde.
Interface
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS
Rückgabewert
Ist der Rückgabewert TRUE, dann wurde zuvor ein EStop ausgeführt (z.B. ItpEStopEx). Dabei liefert das Flag keine Information darüber, ob die Achsen bereits stehen oder sich noch auf der Bremsrampe befinden.
Nach der Ausführung von ItpStepOnAfterEStopEx, liefert ItpIsEStopEx wieder ein FALSE zurück.
Hinweis ItpIsEStopEx wertet das zyklische Interface aus.
siehe auch:
ItpEStopEx
ItpStepOnAfterEStopEx
Voraussetzungen
Version 2 des zyklischen Kanalinterface


ItpIsHskMFunc

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpIsHskMFunc
ItpIsHskMFunc
ab Library Version 4.0
ItpIsHskMFunc ermittelt ob eine M-Funktion vom Typ Handshake anliegt.
Interface
FUNCTION ItpIsHskMFunc

VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS
Rückgabewert
Die Funktion liefert TRUE, wenn eine M-Funktion vom Typ Handshake ansteht.
Hinweis ItpIsHskFunc wertet aus dem zyklischen Interface die Variable 'nHskMFuncReq ' aus.
Beispiel
VAR
bMFuncRequest: BOOL;
END_VAR
bMFuncRequest := ItpIsHskMFunc( sNciToPlc );
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpLoadProgEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpLoadProgEx
ItpLoadProgEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Interface
VAR_INPUT
bExecute : BOOL;
sPrg : STRING;
nLength : UDINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Bei einer steigenden Flanke am Eingang bExecute lädt der Baustein das NC-Programm, dessen Name am Eingang sPrg angegeben ist. Die Stringlänge des Programmnamens wird am Eingang nLength angelegt.
Das NC-Programm wird im Verzeichnis "TwinCAT\cnc" gesucht, wenn keine weiteren Angaben gemacht werden. Es kann jedoch auch ein absoluter Pfad angegeben werden.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Beispiel
VAR
in_stItpToPlc AT %I* : NciChannelToPlc;
fbLoadProg : ItpLoadProgEx;
sProgramPath : STRING (255):= 'TestIt.nc';
END_VAR
fbLoadProg(
bExecute := TRUE,
sPrg := sProgramPath,
nLength := LEN(sProgramPath),
tTimeOut := t#200ms,
sNciToPlc := in_stItpToPlc
);
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpReadCyclicLRealParam1

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpReadCyclicLRealParam1
ItpReadCyclicLRealParam1
ab Library Version 6.1.25 und TwinCAT Version 2.10 Build 1320
Diese Funktion liest aus dem zyklischen Kanalinterface den ersten LREAL Parameter aus. Dieser Parameter wird zuvor mit ItpSetCyclicLRealOffsets konfiguriert.
Die Parameter 2 bis 4 werden über den gleichen Mechanismus ausgelesen (z.B. ItpReadCyclicLRealParam2).
Interface
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Rückgabewert
Parameter 1 vom Type LREAL.
siehe auch:
▪
ItpReadCyclicUdintParam1
▪
ItpSetCyclicLRealOffsets
▪
ItpGetCyclicLRealOffsets
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpReadCyclicUdintParam1

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpReadCyclicUdintParam1
ItpReadCyclicUdintParam1
ab Library Version 6.1.25 und TwinCAT Version 2.10 Build 1320
Interface
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Beschreibung
Diese Funktion liest aus dem zyklischen Kanalinterface den ersten UDINT Parameter aus. Dieser Parameter wird zuvor mit ItpSetCyclicUdintOffsets konfiguriert.
Die Parameter 2 bis 4 werden über den gleichen Mechanismus ausgelesen (z.B. ItpReadCyclicUdintParam2).
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Rückgabewert
Parameter 1 vom Type UDINT
siehe auch:
▪
ItpReadCyclicLRealParam1
▪
ItpSetCyclicUdintOffsets
▪
ItpGetCyclicUdintOffsets
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpReadRParamsEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpReadRParamsEx
ItpReadRParamsEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der Baustein ItpReadRParamsEx liest Rechenparameter, kurz R-Parameter, der NC. Eine genaue Beschreibung der Rechenparameter ist hier zu finden. Insgesamt stehen 1000 R-Parameter zur Verfügung, wovon die ersten 900 (0..899) lokal, d.h. nur im aktuellen NC-Kanal, sichtbar sind. Die letzten 100 (900..999) R-Parameter sind global und somit NC-weit sichtbar.
Interface
VAR_INPUT
bExecute : BOOL;
pAddr : DWORD;
nIndex : DINT;
nCount : DINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Mit einer steigenden Flanke wird der Lesevorgang gestartet.
pAddr | DWORD | Adresse der Zielvariablen der zu lesenden Daten. Dabei werden die Daten direkt ab der angegebenen Adresse beschrieben. D.h. nIndex ist nicht als Offset zu pAddr zu sehen. Die Daten werden gewöhnlich in einem Array vom Typ LREAL abgelegt, das vom Anwender definiert werden muss.
nIndex | DINT | Beschreibt den Index des R-Parameters der aus NC Sicht gelesen werden soll.
nCount | DINT | Anzahl der zu lesenden R-Parameter
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpReadToolDescEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpReadToolDescEx
ItpReadToolDescEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der Baustein ItpReadToolDescEx liest für das mitgegebene D-Wort die Werkzeugparameter.
Interface
VAR_INPUT
bExecute : BOOL;
nDNo : UDINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
sToolDesc : ToolDesc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
TYPE ToolDesc:
STRUCT
nToolNumber : UDINT; (*valid range from 0 .. 65535*)
nToolType : UDINT;
fParam : ARRAY [2..15] OF LREAL;
END_STRUCT
END_TYPE
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
nDNo | UDINT | D-Wort für das die Werkzeugparameter ausgelesen werden sollen. nDNo kann Werte von 1 bis einschließlich 255 annehmen (bis Library-Version 5.4.15 werden nur 50 Werkzeugparameter unterstützt).
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
sToolDesc | ToolDesc | Struktur, in der die Werkzeugparameter von nDNo geschrieben werden. Die Bedeutung der Parameter ist vom Werkzeugtyp abhängig und können den Werkzeugdaten entnommen werden.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Siehe auch:
ItpWriteToolDescEx
ItpSetToolDescNullEx
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpReadZeroShiftEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpReadZeroShiftEx
ItpReadZeroShiftEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der Baustein ItpReadZeroShiftEx liest für die angegebene Nullpunktverschiebung die Verschiebungskomponenten X, Y und Z.
Interface
VAR_INPUT
bExecute : BOOL;
nZsNo : UDINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
sZeroShiftDesc : ZeroShiftDesc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
TYPE ZeroShiftDesc:
STRUCT
fShiftX : LREAL;
fShiftY : LREAL;
fShiftZ : LREAL;
END_STRUCT
END_TYPE
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
nZsNo | UDINT | Nummer der Nullpunktverschiebung NC-seitig sind G54 bis G59 Nullpunktverschiebungen. Der gültige Wertebereich für 'nZsNo' ist deshalb von 54 bis 59.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
sZeroShiftDesc | ZeroShiftDesc | Struktur mit den Komponenten der Nullpunktverschiebung.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Hinweis:
Aus Kompatibilitätsgründen gibt es pro Nullpunktverschiebung (z.B. G54) für jede Achse zwei Einträge (grob & fein), die addiert werden. Dieser Funktionsbaustein wertet beide Einträge aus und addiert sie automatisch.
Siehe auch:
ItpWriteZeroShiftEx
ItpSetZeroShiftNullEx
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpResetEx2

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpResetEx2
ItpResetEx2
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der Baustein 'ItpResetEx2' führt einen Kanal-Reset aus und löscht damit alle vorhandenen Tabellen des NC-Kanals. Im Gegensatz zum veralteten Baustein ItpReset wird ein aktiver Kanal erst gestoppt, bevor der Reset ausgeführt wird. Damit wird die Programmierung in der SPS vereinfacht, da nicht explizit überprüft werden muss, ob die Achsen noch in Bewegung sind.
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
tTimeOut | TIME | ADS Timeout-Delay ( das bBusy-Signal kann länger anliegen als tTimeOut )
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis die Achsen sollwertseitig stehen und der Baustein den Reset erfolgreich ausgeführt hat, oder aber ein Fehler an bErr anliegt. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpResetFastMFuncEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpResetFastMFuncEx
ItpResetFastMFuncEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Mit einer steigenden Flanke am Eingang bExecute wird die schnelle M-Funktion nMFuncNo zurückgesetzt. Für den Fall, dass die M-Funktion nicht anliegt, wird kein Fehler zurückgegeben.
Dieser Funktionsbaustein stellt eine Alternative zum Autoreset bzw. dem Zurücksetzen mit einer anderen M-Funktion dar (Resetliste bei der Parametrierung der M-Funktion). Aus Gründen der Übersichtlichkeit sollte ein Mischbetrieb zwischen dem Zurücksetzen mit einer M-Funktion und diesem Funktionsbaustein vermieden werden.
Interface
VAR_INPUT
bExecute : BOOL;
nMFuncNo : UINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
nMFuncNo | UINT | Fliegende M-Funktion, die zurückgesetzt werden soll
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpSetBottleNeckLookAheadEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpSetBottleNeckLookAheadEx
ItpSetBottleNeckLookAheadEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der Baustein ItpSetBottleNeckLookAheadEx legt fest, wie viel Segmente maximal für die Flaschenhalserkennung (Kontur-Kollisions-Überwachung) in die Zukunft geschaut darf. Dabei ist zu beachten, dass Segmente, die aufgrund der Radiuskorrektur eingefügt wurden (z.B. Zusatzsegmente an spitzen Winkeln) mit berücksichtigt werden.
Eine weitere Beschreibung ist in der Interpreter Dokumentation zu finden.
Interface
VAR_INPUT
bExecute : BOOL;
nLookAhead : UDINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
nLookAhead | UDINT | Legt die Größe des Look-Aheads fest
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpSetBottleNeckModeEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpSetBottleNeckModeEx
ItpSetBottleNeckModeEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der Baustein ItpSetBottleNeckModeEx legt die Verhaltensweise bei einer auftretenden Kontur-Kollision (Flaschenhals) fest.
Eine weitere Beschreibung ist in der Interpreter Dokumentation zu finden.
Interface
VAR_INPUT
bExecute : BOOL;
eBottleNeckMode: E_ItpBnMode
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
TYPE E_ItpBnMode:
(
ItpBnm_Abort := 0,
ItpBnm_Adjust := 1,
ItpBnm_Leave := 2
);
END_TYPE
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
eBottleNeckMode | E_ItpBnMode | Enum für die Verhaltensweise bei einer auftretenden Kontur-Kollision
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpSetCyclicLrealOffsets

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpSetCyclicLrealOffsets
ItpSetCyclicLrealOffsets
ab Library Version 6.1.25 und TwinCAT Version 2.10 Build 1320
Mit dem Funktionsbaustein ItpSetCyclicLrealOffsets wird das zyklische Kanalinterface für die 4 frei konfigurierbaren LREAL Variablen beschrieben. Dabei können Variablen (Index Offsets) aus dem Gruppenzustand ausgewählt werden.
Die Funktionalität ist nur dann aktiv, wenn nIndexOffsetParam1 ungleich 0 ist.
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
nIndexOffsetParam1 : UDINT;
nIndexOffsetParam2 : UDINT;
nIndexOffsetParam3 : UDINT;
nIndexOffsetParam4 : UDINT;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
tTimeOut | TIME | ADS Timeout-Delay
nIndexOffsetParam1 | UDINT | Gruppenzustand (Index Offset) für Parameter 1
nIndexOffsetParam2 | UDINT | Gruppenzustand (Index Offset) für Parameter 2
nIndexOffsetParam3 | UDINT | Gruppenzustand (Index Offset) für Parameter 3
nIndexOffsetParam4 | UDINT | Gruppenzustand (Index Offset) für Parameter 4
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Siehe auch:
▪
ItpReadCyclicLRealParam1
▪
ItpGetCyclicLRealOffsets
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpSetCyclicUDintOffsets

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpSetCyclicUDintOffsets
ItpSetCyclicUDintOffsets
ab Library Version 6.1.25 und TwinCAT Version 2.10 Build 1320
Mit dem Funktionsbaustein ItpSetCyclicUDintOffsets wird das zyklische Kanalinterface für die 4 frei konfigurierbaren UDINT Variablen beschrieben. Dabei können Variablen (Index Offsets) aus dem Gruppenzustand ausgewählt werden.
Die Funktionalität ist nur dann aktiv, wenn nIndexOffsetParam1 ungleich 0 ist.
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
nIndexOffsetParam1 : UDINT;
nIndexOffsetParam2 : UDINT;
nIndexOffsetParam3 : UDINT;
nIndexOffsetParam4 : UDINT;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
tTimeOut | TIME | ADS Timeout-Delay
nIndexOffsetParam1 | UDINT | Gruppenzustand (Index Offset) für Parameter 1
nIndexOffsetParam2 | UDINT | Gruppenzustand (Index Offset) für Parameter 2
nIndexOffsetParam3 | UDINT | Gruppenzustand (Index Offset) für Parameter 3
nIndexOffsetParam4 | UDINT | Gruppenzustand (Index Offset) für Parameter 4
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Siehe auch:
▪
ItpReadCyclicUDintParam1
▪
ItpGetCyclicUdintOffsets
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpSetOverridePercent

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpSetOverridePercent
ItpSetOverridePercent
ab Library Version 4.0
Die Funktion ItpSetOverridePercent schreibt den Achsen-Kanal-Override in das zyklische Interface zur NCI. Dabei wird der Override in Prozent übergeben.
Interface
FUNCTION ItpSetOverridePercent

VAR_INPUT
fOverridePercent : LREAL;
END_VAR

VAR_IN_OUT
sPlcToNci : NciChannelFromPlc;
END_VAR
NciChannelFromPlc
Parameter
Eingang | Datentyp | Beschreibung
fOverridePercent | LREAL | Achsen-Kanal-Override in Prozent
Ein- & Ausgang | Datentyp | Beschreibung
sPlcToNci | NciChannelFromPlc | Struktur des zyklischen Kanalinterfaces von der SPS zur NCI
Rückgabewert
Datentyp | Beschreibung
BOOL | immer True
Beispiel
VAR
sPlcToNci: NciChannelFromPlc;
fOverride: LREAL;
END_VAR
fOverride := 47.11;
ItpSetOverridePercent( fOverride, sPlcToNci );
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpSetSubroutinePathEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpSetSubroutinePathEx
ItpSetSubroutinePathEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Mit dem Baustein ItpSetSubroutinePathEx wird optional der Suchpfad für Unterprogramme gesetzt.
Wenn ein Unterprogramm noch eingebunden werden muss, wird in folgender Reihenfolge nach der Datei gesucht:
1.
optionaler Suchpfad (ItpSetSubroutinePath)
2.
Pfad aus dem das Hauptprogramm geladen wurde
3.
TwinCAT\CNC-Verzeichnis
Es kann immer nur ein optionaler Pfad wirken und dieser bleibt bestehen, bis er mit einem anderen Pfad oder mit einem Leerstring überschrieben wird.
Nach einem TwinCAT-Restart muss der Pfad neu zugewiesen werden.
Interface
VAR_INPUT
bExecute : BOOL;
sPath : STRING;
nLength : UDINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
sPath | STRING | optionaler Pfad für Unterprogramme. Wird mit einem Leerstring deaktiviert
nLength | UDINT | Stringlänge
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpSetToolDescNullEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpSetToolDescNullEx
ItpSetToolDescNullEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der FB ItpSetToolDescNullEx überschreibt alle Werkzeugparameter (inkl. Nummer & Type) des Kanals mit Null.
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Mit einer steigenden Flanke am Eingang bExecute werden alle Werkzeugparameter des NC-Kanals mit Null überschrieben.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein den Befehl ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Siehe auch:
ItpWriteToolDescEx
ItpReadToolDescEx
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpSetZeroShiftNullEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpSetZeroShiftNullEx
ItpSetZeroShiftNullEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der FB ItpSetZeroShiftNullEx überschreibt alle Nullpunktverschiebungen des Kanals mit Null.
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Mit einer steigenden Flanke am Eingang bExecute werden alle Nullpunktverschiebungen des NC-Kanals mit Null überschrieben.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein den Befehl ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Siehe auch:
▪
ItpWriteZeroShiftEx
▪
ItpReadZeroShiftEx
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpSingleBlock

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpSingleBlock
ItpSingleBlock
ab Library Version 6.1.26
Der Baustein ItpSingleBlock aktiviert bzw. deaktiviert die Einzelsatzausführung in der NCI. Die Satzweiterschaltung kann direkt aus der SPS mit dem Eingang 'bTriggerNext' angestoßen werden, alternativ kann im System Manager der Startbutton des Interpreters (F5) genutzt werden.
Eine weiterführende Beschreibung ist in der Interpreter-Dokumentation zu finden.
Interface
VAR_INPUT
bExecuteModeChange : BOOL;
nMode : E_ItpSingelBlockMode;
bTriggerNext : BOOL
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
TYPE E_ItpSingleBlockMode:
(
ItpSingleBlockOff := 0,
ItpSingleBlockNck := 1,
ItpSingleBlockIntp := 16#4000
);
END_TYPE
Beschreibung
Der Baustein besitzt folgende Eingänge:
Eingang
Datentyp
Beschreibung
bExecuteModeChange
BOOL
Durch eine steigende Flanke an diesem Eingang wird der Single Block Mode, der an nMode anliegt, aktiviert.
nMode
E_ItpSingleBlockMode
Betriebsart für den Einzelsatz (vgl. Einzelsatzbetrieb):
▪
ItpSingleBlockOff: Einzelsatz aus
▪
ItpSingleBlockNck: Einzelsatz im NC-Kern
▪
ItpSingleBlockIntp: Einzelsatz im Interpreter
bTriggerNext
BOOL
Durch eine steigende Flanke an diesem Eingang wird die Satzweiterschaltung getriggert.
tTimeOut
TIME
ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 | PC (i386) | TcNci.lib (ab Lib. V 6.1.26)


ItpStartStopEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpStartStopEx
ItpStartStopEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Beschreibung
Der Baustein ItpStartStopEx startet den NC-Kanal, wenn am Eingang bStart eine positive Flanke angelegt wird. Bei einer positiven Flanke am Eingang bStop wird der NC-Kanal gestoppt. Der Eingang bStop hat eine höhere Priorität als der Eingang bStart, d.h. wenn beide Eingänge eine positive Flanke haben, wird ein Kanal-Stop ausgeführt.
Bei einem Stop-Befehl werden alle Tabellen in der NC gelöscht und die Achsen geregelt angehalten.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Interface
VAR_INPUT
bStart : BOOL;
bStop : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpStepOnAfterEStopEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpStepOnAfterEStopEx
ItpStepOnAfterEStopEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der Baustein ItpStepOnAfterEStopEx ermöglicht die weitere Abarbeitung des Teileprogramms nach einem programmierten EStopEx.
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Siehe auch:
ItpEStopEx
ItpIsEStopEx
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpWriteRParamsEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpWriteRParamsEx
ItpWriteRParamsEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der Baustein ItpWriteRParamsEx schreibt R-Parameter in die NC.
Interface

VAR_INPUT
bExecute : BOOL;
pAddr : DWORD;
nIndex : DINT;
nCount : DINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Mit einer steigenden Flanke wird der Schreibvorgang gestartet.
pAddr | DWORD | Adresse der Variablen, die die zu schreibenden Daten enthält. Dabei werden die Daten direkt ab der angegebenen Adresse verwendet. D.h. nIndex ist nicht als Offset zu pAddr zu sehen. Die Daten werden gewöhnlich aus einem Array vom Typ LREAL, das vom Anwender definiert werden muss.
nIndex | DINT | Beschreibt den Index des R-Parameters der aus NC Sicht beschrieben werden soll.
nCount | DINT | Anzahl der zu beschreibenden R-Parameter
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Beispiel
VAR
arrfRParam90to99 : ARRAY[0..9] OF LREAL;
fbWriteRParamEx : ItpWriteRParamsEx;
n : INT := 0;
bWriteParam : BOOL := FALSE;
END_VAR
FOR n:=0 TO 9 DO
arrfRParam90to99[n] := 90 + n;
END_FOR

fbWriteRParam(
bExecute := bWriteParam,
pAddr := ADR( arrfRParam90to99[0] ),
nIndex := 90,
nCount := 10,
tTimeOut := T#200ms,
sNciToPlc := g_sNciToPlc );
In diesem Beispiel werden aus NC Sicht die Parameter R90 bis R99 beschrieben.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpWriteToolDescEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpWriteToolDescEx
ItpWriteToolDescEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der Baustein ItpWriteToolDescEx schreibt einen Block von Werkzeugparametern.
Interface
VAR_INPUT
bExecute : BOOL;
nDNo : UDINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
sToolDesc : ToolDesc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
TYPE ToolDesc:
STRUCT
nToolNumber : UDINT; (*valid range from 0 .. 65535*)
nToolType : UDINT;
fParam : ARRAY [2..15] OF LREAL;
END_STRUCT
END_TYPE
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
nDNo | UDINT | D-Wort für das die Werkzeugparameter ausgelesen werden sollen. nDNo kann Werte von 1 bis einschließlich 50 annehmen (Die TcNci.lib ab der Library-Version 5.4.16 unterstützt 255 Werkzeugparameter).
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
sToolDesc | ToolDesc | Struktur, die die neuen Werkzeugparameter enthält. Auf diese Struktur wird nur lesend zugegriffen. Die Bedeutung der Parameter ist vom Werkzeugtyp abhängig und können den Werkzeugdaten entnommen werden.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Siehe auch:
ItpReadToolDescEx
ItpSetToolDescNullEx
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpWriteZeroShiftEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] ItpWriteZeroShiftEx
ItpWriteZeroShiftEx
ab Library Version 6.1.21und TwinCAT Version 2.10 Build 1304
Der Baustein ItpWriteZeroShiftEx schreibt für die angegebene Nullpunktverschiebung die Verschiebungskomponenten X, Y und Z.
Interface
VAR_INPUT
bExecute : BOOL;
nZsNo : UDINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
sZeroShiftDesc : ZeroShiftDesc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
TYPE ZeroShiftDesc:
STRUCT
fShiftX : LREAL;
fShiftY : LREAL;
fShiftZ : LREAL;
END_STRUCT
END_TYPE
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
nZsNo | UDINT | Nummer der Nullpunktverschiebung NC-seitig sind G54 bis G59 Nullpunktverschiebungen. Wobei G58 und G59 nur aus dem NC-Programm editiert werden können. Der gültige Wertebereich für 'nZsNo' ist deshalb von 54 bis 57.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
sZeroShiftDesc | ZeroShiftDesc | Struktur mit den Komponenten der Nullpunktverschiebung. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Hinweis Aus Kompatibilitätsgründen gibt es für jede einstellbare Nullpunktverschiebung pro Achse zwei Parameter (grob & fein). Beim Schreiben einer neuen Nullpunktverschiebung mit diesem Baustein, wird der neue Wert in den 'Fein-Parameter' geschrieben. In den 'Grob-Parameter' wird eine 0.0 eingetragen.
Auf diese Weise ist es möglich, dass z.B. mit dem ItpReadZeroShiftEx Baustein die Nullpunktverschiebung gelesen, modifiziert und erneut der NC übergeben wird.
Siehe auch:
▪
ItpReadZeroShiftEx;
▪
ItpSetZeroShiftNullEx
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


Blocksearch

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Blocksearch
Blocksearch
Blocksearch kann dazu benutzt werden, ein Programm für einen Werkzeugwechsel oder am Ende einer Schicht zu unterbrechen. Nach der Unterbrechung kann wieder auf der vorherigen Position aufgesetzt werden.
Das Schema stellt dar, wie der Blocksearch verwendet wird.
Weiterführende Informationen
•
ItpBlocksearch
•
ItpGetBlocksearchData
•
ItpStepOnAfterBlocksearch


ItpBlocksearch

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Blocksearch [image] ItpBlocksearch
ItpBlocksearch
Der Funktionsbaustein ItpBlocksearch setzt den Interpreter auf die an den Eingängen definierte Stelle. Die Eingangswerte können vom Funktionsbaustein ItpGetBlocksearchData übernommen oder manuell gesetzt werden. Nachdem der Interpreter mit ItpBlocksearch auf die definierte Stelle gesetzt worden ist, kann die Bewegung an der Position, die am Ausgang sStartPosition ausgegeben wird, mit ItpStepOnAfterBlocksearch fortgesetzt werden.
VAR_INPUT
bExecute : BOOL;
nBlockId : UDINT;
eBlockSearchMode : E_ItpBlockSearchMode;
eDryRunMode : E_ItpDryRunMode;
fLength : LREAL;
sPrgName : STRING(255);
nPrgLength : UDINT;
tTimeOut : TIME;
sAxesList : ST_ItpAxes;
sOptions : ST_ItpBlockSearchOptions;
END_VAR
bExecute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.
nBlockId: Blocknummer oder EntryCounter des Segments im NC-Programm, ab der gestartet werden soll.
eBlockSearchMode:Definiert, ob die angegebene nBlockId eine Blocknummer (z.B. N4711) oder ein fortlaufender EntryCounter ist. Voraussetzung für die Verwendung der Blocknummer ist, dass diese eindeutig ist. Vgl. ItpBlocksearch
eDryRunMode: Definiert, welche Zeilen des Programms ausgeführt und welche übersprungen werden. Vgl. ItpBlocksearch
fLength:Verbleibende Länge innerhalb des mit nBlockId ausgewählten Segments in Prozent.
sPrgName:Name bzw. Dateipfad des Programms, das ausgeführt werden soll.
nPrgLength: Gibt die Länge des Strings sPrgName an.
tTimeOut: ADS-Timeout-Delay
sAxesList: Definition der Achsen, die sich in der NCI-Gruppe befinden. Vgl. ItpBlocksearch
sOptions: Gibt Informationen zum Retrace (Rückwärtsfahren) an.
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
sNciToPlc: Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen. Vgl. NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
bDone : BOOL;
sStartPosition : ST_ItpBlockSearchStartPosition;
END_VAR
bBusy: Bleibt TRUE, bis der Baustein eine Befehlsanforderung ausgeführt hat, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
bErr: Wird TRUE, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS-Fehlerdokumentation oder in der NC-Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
bDone: Der Ausgang wird TRUE, wenn der Befehl erfolgreich ausgeführt wurde.
sStartPosition: Gibt die Startposition aus, von der das NC-Programm weiterläuft. Die einzelnen Achsen müssen vor dem Ausführen von ItpStepOnAfterBlocksearch an diese Positionen verfahren werden . Vgl. ItpBlocksearch
E_ItpBlockSearchMode
Über E_ItpBlockSearchMode wird definiert, auf welche Art die Blocksuche beim Blocksearch ausgeführt wird.
TYPE E_ItpBlockSearchMode :
(
ItpBlockSearchMode_Disable := 0,
ItpBlockSearchMode_BlockNo := 1,
ItpBlockSearchMode_EntryCounter := 2
);
END_TYPE
ItpBlockSearchMode_Disable: Blocksearch deaktiviert (Initialwert).
ItpBlockSearchMode_BlockNo: Der Blocksearch wird über die vom Anwender im NC-Programm programmierte Blocknummer (z.B. N4711) ausgeführt. Voraussetzung ist, dass die Blocknummer vom Anwender eindeutig vergeben wurde.
ItpBlockSearchMode_EntryCounter: Der Blocksearch wird über einen eindeutigen EntryCounter ausgeführt. Dieser EntryCounter ist implizit eindeutig, kann jedoch vom Anwender im NC-Programm nicht eingesehen werden.
E_ItpDryRunMode
Der E_ItpDryRunMode definiert, wie mit programmierten Sätzen umgegangen wird, die sich bei Abarbeitung des gesamten Programms vor dem Satz, von dem im Blocksearch gestartet wird, befinden.
TYPE E_ItpDryRunMode :
(
ItpDryRunMode_Disable := 0,
ItpDryRunMode_SkipAll := 1,
ItpDryRunMode_SkipMotionOnly := 2,
ItpDryRunMode_SkipDwellAndMotion := 3
);
END_TYPE
ItpDryRunMode_Disable: DryRun deaktiviert (Initialwert).
ItpDryRunMode_SkipAll: Alle vorherigen Sätze werden übersprungen. R-Parameter werden geschrieben.
ItpDryRunMode_SkipMotionOnly: Nur Bewegungssätze werden übersprungen. R-Parameter werden geschrieben und Verweilzeiten und M-Funktionen ausgeführt.
ItpDryRunMode_SkipDwellAndMotion: Bewegungssätze und Verweilzeiten werden übersprungen. R-Parameter werden geschrieben und M-Funktionen ausgeführt.
ST_ItpAxes
Die Struktur ST_ItpAxes beinhaltet die Achsen, die sich bei der Abarbeitung des Programms in der NCI-Gruppe befunden haben.
TYPE ST_ItpAxes :
STRUCT
nAxisIds : ARRAY[1..8] OF UDINT;
END_STRUCT
END_TYPE
nAxisIds: Array der Achen, die sich in der NCI-Gruppe befunden haben. Dabei ist die Reihenfolge nAxisIds[1]=X, nAxisIds[2]=Y, nAxisIds[3]=Z, nAxisIds[4]=Q1, nAxisIds[5]=Q2… Die Achs-Id kann aus dem zyklischen Achsinterface ausgelesen werden.
St_ItpBlockSearchOptions
Die Struktur beinhaltet Informationen zur Retrace-Funktionalität.
TYPE ST_ItpBlockSearchOptions :
STRUCT
bIsRetrace : BOOL:= FALSE;
bRetraceBackward : BOOL:= FALSE;
END_STRUCT
END_TYPE
bIsRetrace: Zeigt an, ob die Retrace-Funktionalität aktiv ist.
bRetraceBackward:Zeigt an, ob rückwärts auf der Bahn verfahren wurde
ST_ItpBlockSearchStartPosition
Die Struktur gibt die Position an, an der das NC-Programm nach einem Blocksearch fortgesetzt wird. Der Anwender ist dafür verantwortlich, die Achsen an die entsprechenden Positionen zu verfahren.
TYPE ST_ItpBlockSearchStartPosition :
STRUCT
fStartPosition : ARRAY[1..8] OF LREAL;
END_STRUCT
END_TYPE
fStartPosition: Array der Achspositionen, an der das NC-Programm fortgesetzt wird
Dabei ist die Reihenfolge fStartPosition[1]=X, fStartPosition [2]=Y, fStartPosition [3]=Z, fStartPosition [4]=Q1, fStartPosition [5]=Q2…


ItpGetBlocksearchData

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Blocksearch [image] ItpGetBlocksearchData
ItpGetBlocksearchData
Der Funktionsbaustein ItpGetBlocksearchData liest die aktuelle Position auf der Bahn aus. Üblicherweise wird dieser Befehl im Stillstand aufgerufen. Anschließend kann mit ItpBlockSearch der Interpreter wieder an die in sBlockSearchData gespeicherte Position aufgesetzt werden.
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
bExecute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.
bTimeOut: ADS Timeout-Delay
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
sNciToPlc: Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen. Vgl. NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
sBlockSearchData : ST_ItpBlockSearchData;
END_VAR
bBusy: Bleibt TRUE, bis der Baustein eine Befehlsanforderung ausgeführt hat, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
bErr: Wird TRUE, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS-Fehlerdokumentation oder in der NC-Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
sBlockSearchData: Enthält Informationen zur aktuellen Position auf der Bahn.
TYPE ST_ItpBlockSearchData :
STRUCT
fLength : LREAL;(* remaining distance of actual movement block in percent*)
nBlockNo : UDINT;(* number of the actual block *)
nBlockCounter : UDINT;(* counter value of the actual block *)
bIsRetrace : BOOL;(* e.g. by activ Retrace *)
bRetraceBackward : BOOL;(* e.g. by activ Retrace Backward *)
END_STRUCT
END_TYPE


ItpStepOnAfterBlocksearch

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Blocksearch [image] ItpStepOnAfterBlocksearch
ItpStepOnAfterBlocksearch
Startet die Bewegung, nachdem ein Blocksearch ausgeführt wurde.
Die Achsen müssen zuvor an die am Ausgang von ItpBlocksearch ausgegebenen Positionen verfahren worden sein.
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
bExecute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.
bTimeOut: ADS Timeout-Delay
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
sNciToPlc: Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen. Vgl. NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
bBusy: Bleibt TRUE, bis der Baustein eine Befehlsanforderung ausgeführt hat, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
bErr: Wird TRUE, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS-Fehlerdokumentation oder in der NC-Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.


Rückwärtsfahren

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Rückwärtsfahren
Rückwärtsfahren
Weiterführende Informationen
•
ItpEnableFeederBackup
•
ItpIsFeederBackupEnabled
•
ItpIsFeedFromBackupList
•
ItpIsFirstSegmentReached
•
ItpIsMovingBackwards
•
ItpRetraceMoveBackward
•
ItpRetraceMoveForward


ItpEnableFeederBackup

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Rückwärtsfahren [image] ItpEnableFeederBackup
ItpEnableFeederBackup
ab Library Version 6.1.24 und vorweggenommen mit TwinCAT Version 2.10 Build 1308
Der Funktionsbaustein ItpEnableFeederBackup aktiviert die Speicherung der abgefahrenen Bahn für das Rückwärtsfahren. Er muss einmal aktiviert werden, bevor das NC-Programm (G-Code) gestartet ist. Falls die Funktionalität Blocksearch verwendet wird, muss ItpEnableFeederBackup vor dem Aufruf von ItpBlocksearch aktiviert werden. Das Feeder-Backup wird solange ausgeführt, bis ein TwinCAT Neustart oder bEnable = FALSE mit steigender Flanke auf bExecute ausgelöst wird.
Wenn das Feeder-Backup nicht aktiviert ist, funktioniert das Rückwärtsfahren nicht. Dies lässt sich über ItpIsFeederBackupEnabled überprüfen.
Interface
VAR_INPUT
bEnable : BOOL;
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bEnable | BOOL | TRUE: aktiviert Feeder-Backup FALSE: deaktiviert Feeder-Backup
bExecute | BOOL | Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.
tTimeOut | TIME | ADS Timeout-Delay
Eingang/Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpIsFeederBackupEnabled

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Rückwärtsfahren [image] ItpIsFeederBackupEnabled
ItpIsFeederBackupEnabled
ab Library Version 6.1.24 und vorweggenommen mit TwinCAT Version 2.10 Build 1308
Der Funktionsbaustein ItpIsFeederBackupEnabled gibt an, ob das Feeder-Backup aktiviert ist. Um rückwärtszufahren, muss das Feeder-Backup zuvor aktiviert werden. Hierdurch wird die abgefahrene Bahn gespeichert.
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bEnabled : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.
tTimeOut | TIME | ADS Timeout-Delay
Eingang/Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein einen Befehl ausgeführt hat, längstens aber für die Dauer der an dem ‚Timeout’-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bEnabled | BOOL | TRUE: Backupliste für Rückverfolgung ist aktiviert FALSE: Backupliste für Rückverfolgung ist deaktiviert
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in ‚nErrId’ enthalten. Wenn der Baustein einen Timeout-Fehler hat, ist ‚Error’ = TRUE und ‚nErrId’ = 1861 (Hexadezimal 0x745). Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpIsFeedFromBackupList

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Rückwärtsfahren [image] ItpIsFeedFromBackupList
ItpIsFeedFromBackupList
ab Library Version 6.1.24 und vorweggenommen mit TwinCAT Version 2.10 Build 1308
Die Funktion ItpIsFeedFromBackupList wird TRUE, wenn die Zufuhr-Einträge (SAF & SVB) von der Backupliste gesendet werden. Bei der Rückwärtsbewegung werden alle Einträge von der Backupliste gesendet. Wird das Programm vorwärts ausgeführt, dann stammen die ersten Einträge in der Regel auch von der Backupliste. Dies ist abhängig von der Anzahl zurückverfolgter Einträge sowie der Anzahl Einträge in der SVB- und SAF-Tabelle zu dem Zeitpunkt, als die Rückverfolgung aufgerufen wurde. Alle weiteren Befehle stammen vom ‚Original’-Code.
Während die NCI an der Backupliste arbeitet, sind nicht alle Funktionen verfügbar oder sinnvoll. Hier einige Beispiele:
▪
Dekodierstopps wie @714 werden nicht ausgewertet
▪
R-Parameter die verändert werden, haben keinen Einfluss solange auf der Backup-Bahn verfahren wird (vorwärts und rückwärts). Sobald die Bahndaten nicht mehr aus der Backup-Liste kommen, wirken auch R-Parameter-Änderungen wieder.
Interface
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingang/Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpIsFirstSegmentReached

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Rückwärtsfahren [image] ItpIsFirstSegmentReached
ItpIsFirstSegmentReached
ab Version 6 des zyklischen Kanalinterface
ItpIsFirstSegmentReached ist eine Funktion, die aus dem zyklischen Kanalinterface ermittelt, ob beim Rückwärtsfahren die Startposition des Programms erreicht ist.
Function ItpIsFirstSegmentReached : BOOL
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS
Rückgabewert
Die Funktion liefert TRUE, wenn die Startposition des G-Code-Programms erreicht ist. Ist die Version des zyklischen Kanalinterface kleiner 6, ist der Rückgabewert immer FALSE.


ItpIsMovingBackwards

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Rückwärtsfahren [image] ItpIsMovingBackwards
ItpIsMovingBackwards
ab Version 6 des zyklischen Kanalinterface
ItpIsMovingBackwards ist eine Funktion, die aus dem zyklischen Kanalinterface ermittelt, ob rückwärts auf der Bahn des aktuellen G-Code Programms verfahren wird.
ItpIsMovingBackwards : BOOL
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
Eingangsparameter
Ein- & Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS
Rückgabewert
Die Funktion liefert TRUE, wenn rückwärts auf der Bahn verfahren wird. Ist die Version des zyklischen Kanalinterface kleiner 6, ist der Rückgabewert immer FALSE.


ItpRetraceMoveBackward

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Rückwärtsfahren [image] ItpRetraceMoveBackward
ItpRetraceMoveBackward
ab Library Version 6.1.24 und vorweggenommen mit TwinCAT Version 2.10 Build 1308
Der Funktionsbaustein ItpRetraceMoveBackward führt die geometrischen Einträge von der Istposition zum Beginn des Teilprogramms (G-Code).
Vorgehensweise
1.
Feeder-Backupliste aktivieren (siehe ItpEnableFeederBackup)
⇨
Das NC-Programm wird mit ItpEStopEx gestoppt
2.
Warten und sichergehen, dass alle Achsen in der Gruppe still stehen
3.
ItpRetraceMoveBackward aufrufen
4.
Rückwärtsbewegung mit ItpEStop stoppen, ansonsten kehrt das Programm wieder zum Anfang zurück
5.
ItpRetraceMoveForward aufrufen, um wieder nach vorne zu gehen
6.
Gegebenenfalls ItpEStopEx und ItpRetraceMoveBackward aufrufen usw.
Hinweis Nicht in Verbindung mit Vertex-Verschleifung verwenden. M-Funktionen werden bei Rückwärtsbewegung unterdrückt.
Der Baustein besitzt folgende Eingänge
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.
tTimeOut | TIME | ADS Timeout-Delay
Eingang/Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


ItpRetraceMoveForward

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Rückwärtsfahren [image] ItpRetraceMoveForward
ItpRetraceMoveForward
ab Library Version 6.1.24 und vorweggenommen mit TwinCAT Version 2.10 Build 1308
Der Funktionsbaustein ItpRetraceMoveForward führt alle Einträge vom Istblock (z.B. Position) in Vorwärtsrichtung zum NC-Kernel. Er wird dazu aufgerufen, die Richtung wieder umzukehren, nachdem ItpRetraceMoveBackward aufgerufen wurde.
Interface
VAR_INPUT
bExecute : BOOL;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sNciToPlc : NciChannelToPlc;
END_VAR
NciChannelToPlc
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.
tTimeOut | TIME | ADS Timeout-Delay
Eingang/Ausgang | Datentyp | Beschreibung
sNciToPlc | NciChannelToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
siehe auch: ItpRetraceMoveBackward
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcNci.lib


Bausteine zur Kompatibilität mit bestehenden Programmen

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen
Bausteine zur Kompatibilität mit bestehenden Programmen
Weiterführende Informationen
•
ItpDelDtg
•
ItpEStop
•
ItpGetBottleNeckLookAhead
•
ItpGetBottleNeckMode
•
ItpGoAhead
•
ItpIsEStop
•
ItpLoadProg
•
ItpReadRParams
•
ItpReadToolDesc
•
ItpReadZeroShift
•
ItpReset
•
ItpResetEx
•
ItpResetFastMFunc
•
ItpSetBottleNeckLookAhead
•
ItpSetBottleNeckMode
•
ItpSetSubroutinePath
•
ItpSetToolDescNull
•
ItpSetZeroShiftNull
•
ItpStartStop
•
ItpStepOnAfterEStop
•
ItpWriteRParams
•
ItpWriteToolDesc
•
ItpWriteZeroShift


ItpDelDtg

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpDelDtg
ItpDelDtg
ab Library Version 4.0
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpDelDtgEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Baustein ItpDelDtg triggert das Restweglöschen. Eine ausführlichere Beschreibung ist in der Interpreter Dokumentation zu finden.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpEStop

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpEStop
ItpEStop
ab Library Version 5.3.9 und
TwinCAT V2.8 B540 bzw. V2.9 B905
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpEStopEx.
Interface
VAR_INPUT
bExecute : BOOL;
nGrpId : UDINT;
fDec : LREAL;
fJerk : LREAL;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Baustein ItpEStop triggert den NCI EStop und ermöglicht so ein kontrolliertes Anhalten auf der Bahn. Dabei werden die Grenzwerte für die Verzögerung und den Ruck als Parameter übertragen. Falls diese kleiner sein sollten, als die z.Zt. wirkenden Dynamikparameter, so werden die übertragenden Parameter verworfen.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nGrpId | UDINT | Gruppen ID
fDec | LREAL | max. Verzögerung mit der Angehalten werden soll. Ist fDec kleiner als die z.Zt. aktive Verzögerung, so wird fDec nicht übernommen. Es wird so also sichergestellt, dass mindestens mit der Standard-Rampe verzögert wird.
fJerk | LREAL | max. Ruck mit dem Angehalten werden soll Ist fJerk kleiner als der z.Zt. akive Ruck, so wird fJerk nicht übernommen.
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
siehe auch:
ItpStepOnAfterEStop
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht unterstützt
TwinCAT v2.8.0 | PC (i386) | TcNci.lib
TwinCAT v2.9.0 | PC (i386) | TcNci.lib


ItpGetBottleNeckLookAhead

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpGetBottleNeckLookAhead
ItpGetBottleNeckLookAhead
ab Library Version 5.3.4
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpGetBottleNeckLookAheadEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
nLookAhead : UDINT;
END_VAR
Beschreibung
Der Baustein ItpGetBottleNeckLookAhead ermittelt die maximale verwendete Größe des LookAheads für die Falschenhalserkennung (Kontur-Kollisions-Überwachung).
Eine weitere Beschreibung ist in der Interpreter Dokumentation zu finden.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der, an dem 'Timeout'-Eingang angelegten, Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wenn der Baustein ein Timeout-Fehler hat, so ist 'Error' = TRUE und 'nErrId' = 1861 (Hexadezimal 0x745). Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
nLookAhead | UDINT | Größe des Look-Aheads für die Flaschenhalserkennung
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 | PC (i386) | TcNci.lib (ab Lib. V 5.3.4)


ItpGetBottleNeckMode

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpGetBottleNeckMode
ItpGetBottleNeckMode
ab Library Version 5.3.4
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpGetBottleNeckModeEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
eBottleNeckMode: E_ItpBnMode
END_VAR
TYPE E_ItpBnMode:
(
ItpBnm_Abort := 0,
ItpBnm_Adjust := 1,
ItpBnm_Leave := 2
);
END_TYPE
Beschreibung
Der Baustin ItpGetBottleNeckMode liest die Verhaltensweise bei einer auftretenden Kontur-Kollision (Flaschenhals) aus.
Eine weitere Beschreibung ist in der Interpreter Dokumentation zu finden.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der, an dem 'Timeout'-Eingang angelegten, Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wenn der Baustein ein Timeout-Fehler hat, so ist 'Error' = TRUE und 'nErrId' = 1861 (Hexadezimal 0x745). Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
eBottleNeckMode | E_ItpBnMode | Enum für die Verhaltensweise bei einer auftretenden Kontur-Kollision
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 | PC (i386) | TcNci.lib (ab Lib. V 5.3.4)


ItpGoAhead

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpGoAhead
ItpGoAhead
ab Library Version 4.0
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpGoAheadEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Baustein ItpGoAhead darf nur in Verbindung mit dem Dekodierstopp '@717' verwendet werden. Eine ausführlichere Beschreibung dieses Dekodierstopps ist in der Interpreter Dokumentation zu finden.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpIsEStop

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpIsEStop
ItpIsEStop
ab Library Version 5.4.15 und
TwinCAT V2.9 B956
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpIsEStopEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bEStop : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Funktionsbaustein ItpIsEStop liefert mit bEStop die Information, ob ein EStop-Kommando angestoßen wurde. Ist bEStop TRUE, dann wurde zuvor ein EStop ausgeführt (z.B. ItpEStop). Dabei liefert das Flag keine Information darüber, ob die Achsen bereits stehen oder sich noch auf der Bremsrampe befinden.
Nach der Ausführung von ItpStepOnAfterEStop, liefert ItpIsEStop wieder ein FALSE zurück.
Der Baustein ItpIsEStop besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nGrpId | UDINT | Gruppen ID
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der, an dem 'Timeout'-Eingang angelegten, Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bEStop | BOOL | TRUE: EStop-Kommando wurde ausgeführt FALSE: Es liegt kein EStop an
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
siehe auch:
ItpEStop
ItpStepOnAfterEStop
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht unterstützt
TwinCAT v2.8.0 | PC (i386) | TcNci.lib
TwinCAT v2.9.0 | PC (i386) | TcNci.lib


ItpLoadProg

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpLoadProg
ItpLoadProg
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpLoadProgEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
sPrg : STRING;
nLength : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Bei einer steigenden Flanke am Eingang bExecute lädt der Baustein das NC-Programm, dessen Name am Eingang sPrg angegeben ist. Die Stringlänge des Programmnamens wird am Eingang nLength angelegt. nChnId ist die ID des zugehörigen NC-Kanals.
Das NC-Programm wird im Verzeichnis "TwinCAT\cnc" gesucht, wenn keine weiteren Angaben gemacht werden. Es kann jedoch auch ein absoluter Pfad angegeben werden.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpReadRParams

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpReadRParams
ItpReadRParams
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpReadRParamsEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
pAddr : DWORD;
nIndex : DINT;
nCount : DINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Baustein ItpReadRParams liest Rechenparameter, kurz R-Parameter, der NC. Eine genaue Beschreibung der Rechenparameter ist hier zu finden. Insgesamt stehen 1000 R-Parameter zur Verfügung, wovon die ersten 900 (0..899) lokal, d.h. nur im aktuellen NC-Kanal, sichtbar sind. Die letzten 100 (900..999) R-Parameter sind global und somit NC-weit sichtbar.
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Mit einer steigenden Flanke wird der Lesevorgang gestartet
nChnId | UDINT | ID des NC-Kanals dessen R-Parameter gelesen werden sollen
pAddr | DWORD | Adresse der Zielvariablen der zu lesenden Daten. Dabei werden die Daten direkt ab der angegebenen Adresse von der NC beschrieben D.h. nIndex ist nicht als Offset zu pAddr zu sehen. Die Daten befinden sich für gewöhnlich in einem Array vom Typ LREAL, das vom Anwender definiert werden muss.
nIndex | DINT | Beschreibt den Index des R-Parameters der aus NC Sicht gelesen werden soll.
nCount | DINT | Anzahl der zu lesenden R-Parameter
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
siehe auch:
ItpWriteRParams
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpReadToolDesc

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpReadToolDesc
ItpReadToolDesc
ab Library Version 4.0
ab TwinCAT V2.7 Build 500
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpReadToolDescEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
nDNo : UDINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sToolDesc : ToolDesc;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
TYPE ToolDesc:
STRUCT
nToolNumber : UDINT; (*valid range from 0 .. 65535*)
nToolType : UDINT;
fParam : ARRAY [2..15] OF LREAL;
END_STRUCT
END_TYPE
Der Baustein ItpReadToolDesc liest für das mitgegebene D-Wort die Werkzeugparameter.
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
nDNo | UDINT | D-Wort für das die Werkzeugparameter ausgelesen werden sollen. nDoNo kann Werte von 1 bis einschließlich 50 annehmen (Die TcNci.lib ab der Library-Version 5.4.16 unterstützt 255 Werkzeugparameter).
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sToolDesc | ToolDesc | Struktur, in der die Werkzeugparameter von nDNo geschrieben werden. Die Bedeutung der Parameter ist vom Werkzeugtyp abhängig und können den Werkzeugdaten entnommen werden.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
siehe auch:
ItpWriteToolDesc; ItpSetToolDescNull
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpReadZeroShift

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpReadZeroShift
ItpReadZeroShift
ab Library Version 4.0
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpReadZeroShiftEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
nZsNo : UDINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sZeroShiftDesc : ZeroShiftDesc;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
TYPE ZeroShiftDesc:
STRUCT
fShiftX : LREAL;
fShiftY : LREAL;
fShiftZ : LREAL;
END_STRUCT
END_TYPE
Der Baustein ItpReadZeroShift liest für die angegebene Nullpunktverschiebung die Verschiebungskomponenten X, Y und Z.
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
nZsNo | UDINT | Nummer der Nullpunktverschiebung NC-seitig sind G54 bis G59 Nullpunktverschiebungen. Der gültige Wertebereich für 'nZsNo' ist deshalb von 54 bis 59.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sZeroShiftDesc | ZeroShiftDesc | Struktur mit den Komponenten der Nullpunktverschiebung.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Hinweis:
Aus Kompatibilitätsgründen gibt es pro Nullpunktverschiebung (z.B. G54) für jede Achse zwei Einträge (grob & fein), die addiert werden. Dieser Funktionsbaustein wertet beide Einträge aus und addiert sie automatisch.
siehe auch:
ItpWriteZeroShift; ItpSetZeroShiftNull
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpReset

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpReset
ItpReset
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpResetEx2.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Bei einer steigenden Flanke am Eingang bExecute wird ein Reset des NC-Kanals mit der ID nChnId durchgeführt. Dabei werden alle Tabellen in der NC gelöscht. Die Achsen werden instantan abgebremst. Deshalb sollte ein Reset nur im Fehlerfall oder bei stehenden Achsen durchgeführt werden.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpResetEx

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpResetEx
ItpResetEx
ab TwinCAT V2.10 Build 1245
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpResetEx2.
Interface
VAR_INPUT
bExecute : BOOL;
nGrpId : UDINT;
nChnId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Baustein 'ItpResetEx' führt einen Kanal-Reset aus und löscht damit alle vorhandenen Tabellen des NC-Kanals. Im Gegensatz zum herkömmlichen ItpReset wird ein aktiver Kanal erst gestoppt, bevor der Reset ausgeführt wird. Damit wird die Programmierung in der SPS vereinfacht, da nicht explizit überprüft werden muss, ob die Achsen noch in Bewegung sind.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nGrpId | UDINT | Gruppen ID
nChnId | UDINT | Kanal ID
tTimeOut | TIME | ADS Timeout-Delay ( das bBusy-Signal kann länger anliegen alstTimeOut )
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
siehe auch: ItpStartStop
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpResetFastMFunc

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpResetFastMFunc
ItpResetFastMFunc
ab Library Version 5.4.19
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpResetFastMFuncEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
nMFuncNo : UINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Mit einer steigenden Flanke am Eingang bExecute wird die schnelle M-Funktion nMFuncNo zurückgesetzt. Für den Fall, dass die M-Funktion nicht anliegt, wird kein Fehler zurückgegeben.
Dieser Funktionsbaustein stellt eine Alternative zum Autoreset bzw. dem Zurücksetzen mit einer anderen M-Funktion dar (Resetliste bei der Parametrierung der M-Funktion). Aus Gründen der Übersichtlichkeit sollte ein Mischbetrieb zwischen dem Zurücksetzen mit einer M-Funktion und diesem Funktionsbaustein vermieden werden.
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
nMFuncNo | UINT | Fliegende M-Funktion, die zurückgesetzt werden soll
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpSetBottleNeckLookAhead

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpSetBottleNeckLookAhead
ItpSetBottleNeckLookAhead
ab Library Version 5.3.4
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpSetBottleNeckLookAheadEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
nLookAhead : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Baustein ItpSetBottleNeckLookAhead legt fest, wie viel Segmente maximal für die Flaschenhalserkennung (Kontur-Kollisions-Überwachung) in die Zukunft geschaut darf. Dabei ist zu beachten, dass Segmente, die aufgrund der Radiuskorrektur eingefügt wurden (z.B. Zusatzsegmente an spitzen Winkeln) mit berücksichtigt werden.
Eine weitere Beschreibung ist in der Interpreter Dokumentation zu finden.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
nLookAhead | UDINT | Legt die Größe des Look-Aheads fest
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 | PC (i386) | TcNci.lib (ab Lib. V 5.3.4)


ItpSetBottleNeckMode

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpSetBottleNeckMode
ItpSetBottleNeckMode
ab Library Version 5.3.4
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpSetBottleNeckModeEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
eBottleNeckMode: E_ItpBnMode
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
TYPE E_ItpBnMode:
(
ItpBnm_Abort := 0,
ItpBnm_Adjust := 1,
ItpBnm_Leave := 2
);
END_TYPE
Beschreibung
Der Baustein ItpSetBottleNeckMode legt die Verhaltensweise bei einer auftretenden Kontur-Kollision (Flaschenhals) fest.
Eine weitere Beschreibung ist in der Interpreter Dokumentation zu finden.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
eBottleNeckMode | E_ItpBnMode | Enum für die Verhaltensweise bei einer auftretenden Kontur-Kollision
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 | PC (i386) | TcNci.lib (ab Lib. V 5.3.4)


ItpSetSubroutinePath

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpSetSubroutinePath
ItpSetSubroutinePath
ab Library Version 5.4.17
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpSetSubroutinePathEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
sPath : STRING;
nLength : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Mit dem Baustein ItpSetSubroutinePath wird optional der Suchpfad für Unterprogramme gesetzt.
Wenn ein Unterprogramm noch eingebunden werden muss, wird in folgender Reihenfolge nach der Datei gesucht:
▪
optionaler Suchpfad (ItpSetSubroutinePath)
▪
Pfad aus dem das Hauptprogramm geladen wurde
▪
TwinCAT\CNC-Verzeichnis
Es kann immer nur ein optionaler Pfad wirken und dieser bleibt bestehen, bis er
▪
mit einem anderen Pfad oder
▪
mit einem Leerstring überschrieben wird.
▪
nach einem TwinCAT-Restart muss der Pfad neu zugewiesen werden.
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
sPath | STRING | optionaler Pfad für Unterprogramme. Wird mit einem Leerstring deaktiviert
nLength | UDINT | Stringlänge
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht unterstützt
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpSetToolDescNull

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpSetToolDescNull
ItpSetToolDescNull
ab Library Version 5.5
ab TwinCAT V2.9 Build 1031
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpSetToolDescNullEx.
Der FB ItpSetToolDescNull überschreibt alle Werkzeugparameter (inkl. Nummer & Type) des Kanals mit Null.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Mit einer steigenden Flanke am Eingang bExecute werden alle Werkzeugparameter des NC-Kanals mit der ID nChnId mit Null überschrieben.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein den Befehl ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Siehe auch:
▪
ItpWriteToolDesc,
▪
ItpReadToolDesc
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpSetZeroShiftNull

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpSetZeroShiftNull
ItpSetZeroShiftNull
ab Library Version 5.5
ab TwinCAT V2.9 Build 1031
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpSetZeroShiftNullEx.
Der FB ItpSetZeroShiftNull überschreibt alle Nullpunktverschiebungen des Kanals mit Null.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Mit einer steigenden Flanke am Eingang bExecute werden alle Nullpunktverschiebungen des NC-Kanals mit der ID nChnId mit Null überschrieben.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein den Befehl ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Siehe auch:
▪
ItpWriteZeroShift
▪
ItpReadZeroShift
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpStartStop

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpStartStop
ItpStartStop
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpStartStopEx.
Interface
VAR_INPUT
bStart : BOOL;
bStop : BOOL;
nChnId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Baustein ItpStartStop startet den NC-Kanal, dessen ID am Eingang nChnId angelegt ist, wenn am Eingang bStart eine positive Flanke angelegt wird. Bei einer positiven Flanke am Eingang bStop wird der NC-Kanal gestoppt. Der Eingang bStop hat eine höhere Priorität als der Eingang bStart, d.h. wenn beide Eingänge eine positive Flanke haben, wird ein Kanal-Stop ausgeführt.
Bei einem Stop-Befehl werden alle Tabellen in der NC gelöscht und die Achsen geregelt angehalten.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpStepOnAfterEStop

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpStepOnAfterEStop
ItpStepOnAfterEStop
ab Library Version 5.3.9 und
TwinCAT V2.8 B540 bzw. V2.9 B905
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpStepOnAfterEStopEx.
Interface
VAR_INPUT
bExecute : BOOL;
nGrpId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Baustein ItpStepOnAfterEStop ermöglicht die weitere Abarbeitung des Teileprogramms nach einem programmierten EStop.
Der Baustein besitzt folgende Eingänge:
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
nGrpId | UDINT | Gruppen ID
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Siehe auch:
ItpEStop
ItpIsEStop
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht unterstützt
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpWriteRParams

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpWriteRParams
ItpWriteRParams
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpWriteRParamsEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
pAddr : DWORD;
nIndex : DINT;
nCount : DINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Der Baustein ItpWriteRParams schreibt R-Parameter in die NC.
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Mit einer steigenden Flanke wird der Schreibvorgang gestartet
nChnId | UDINT | ID des NC-Kanals dessen R-Parameter beschrieben werden sollen
pAddr | DWORD | Adresse der Variablen, die die zu schreibenden Daten enthält. Dabei werden die Daten direkt ab der angegebenen Adresse verwendet. D.h. nIndex ist nicht als Offset zu pAddr zu sehen. Die Daten befinden sich für gewöhnlich in einem Array vom Typ LREAL, das vom Anwender definiert werden muss.
nIndex | DINT | Beschreibt den Index des R-Parameters der aus NC Sicht beschrieben werden soll.
nCount | DINT | Anzahl der zu beschreibenden R-Parameter
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Beispiel
VAR
arrfRParam90to99 : ARRAY[0..9] OF LREAL;
fbWriteRParam : ItpWriteRParams;
n : INT := 0;
bWriteParam : BOOL := FALSE;
END_VAR
FOR n:=0 TO 9 DO
arrfRParam90to99[n] := 90 + n;
END_FOR

fbWriteRParam(
bExecute := bWriteParam,
nChnId := 2,
pAddr := ADR( arrfRParam90to99[0] ),
nIndex := 90,
nCount := 10,
tTimeOut := T#200ms );
In diesem Beispiel werden aus NC Sicht die Parameter R90 bis R99 beschrieben.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpWriteToolDesc

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpWriteToolDesc
ItpWriteToolDesc
ab Library Version 4.0
ab TwinCAT V2.7 Build 500
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpWriteToolDescEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
nDNo : UDINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
sToolDesc : ToolDesc;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
TYPE ToolDesc:
STRUCT
nToolNumber : UDINT; (*valid range from 0 .. 65535*)
nToolType : UDINT;
fParam : ARRAY [2..15] OF LREAL;
END_STRUCT
END_TYPE
Der Baustein ItpWriteToolDesc schreibt einen Block von Werkzeugparametern.
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
nDNo | UDINT | D-Wort für das die Werkzeugparameter ausgelesen werden sollen. nDoNo kann Werte von 1 bis einschließlich 50 annehmen (Die TcNci.lib ab der Library-Version 5.4.16 unterstützt 255 Werkzeugparameter).
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sToolDesc | ToolDesc | Struktur, die die neuen Werkzeugparameter enthält. Auf diese Struktur wird nur lesend zugegriffen. Die Bedeutung der Parameter ist vom Werkzeugtyp abhängig und können den Werkzeugdaten entnommen werden.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
siehe auch:
ItpReadToolDesc, ItpSetToolDescNull
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


ItpWriteZeroShift

PLC NCI Libraries [image] PLC Library: NCI Interpreter [image] Bausteine zur Kompatibilität mit bestehenden Programmen [image] ItpWriteZeroShift
ItpWriteZeroShift
ab Library Version 4.0
Veraltete Version
Dieser Funktionsbaustein existiert ausschließlich zur Gewährleistung der Kompatibilität mit bestehenden Projekten. Für neue Projekte verwenden Sie bitte den Baustein ItpWriteZeroShiftEx.
Interface
VAR_INPUT
bExecute : BOOL;
nChnId : UDINT;
nZsNo : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
VAR_IN_OUT
sZeroShiftDesc : ZeroShiftDesc;
END_VAR
TYPE ZeroShiftDesc:
STRUCT
fShiftX : LREAL;
fShiftY : LREAL;
fShiftZ : LREAL;
END_STRUCT
END_TYPE
Der Baustein ItpWriteZeroShift schreibt für die angegebene Nullpunktverschiebung die Verschiebungskomponenten X, Y und Z.
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
nChnId | UDINT | Kanal ID
nZsNo | UDINT | Nummer der Nullpunktverschiebung NC-seitig sind G54 bis G59 Nullpunktverschiebungen. Wobei G58 und G59 nur aus dem NC-Programm editiert werden können. Der gültige Wertebereich für 'nZsNo' ist deshalb von 54 bis 57.
tTimeOut | TIME | ADS Timeout-Delay
Ein- & Ausgang | Datentyp | Beschreibung
sZeroShiftDesc | ZeroShiftDesc | Struktur mit den Komponenten der Nullpunktverschiebung. Auf diese Struktur wird nur lesend zugegriffen.
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Hinweis:
Aus Kompatibilitätsgründen gibt es für jede einstellbare Nullpunktverschiebung pro Achse zwei Parameter (grob & fein). Beim Schreiben einer neuen Nullpunktverschiebung mit diesem Baustein, wird der neue Wert in den 'Fein-Parameter' geschrieben. In den 'Grob-Parameter' wird eine 0.0 eingetragen.
Auf diese Weise ist es möglich, dass z.B. mit dem ItpReadZeroShift Baustein die Nullpunktverschiebung gelesen, modifiziert und erneut der NC übergeben wird.
siehe auch:
ItpReadZeroShift; ItpSetZeroShiftNull
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | TcNciItp.lib
TwinCAT v2.8.0 | PC (i386) | TcNci.lib


PLC Library: NC Configuration

PLC NCI Libraries [image] PLC Library: NC Configuration
PLC Library: NC Configuration
Die Bibliothek TcNcCfg.lib stellt Funktionsbausteine zur allgemeinen NC Achskonfiguration bereit. Damit ist es möglich, direkt aus der SPS heraus Achsen auf einfache Art und Weise zu konfigurieren, bzw. umzukonfigurieren.
Die folgenden Funktionsbausteine sind in der Bibliothek TcNcCfg.lib enthalten und mehrfach instanziierbar.
Funktionsbaustein | Beschreibung
CfgBuild3DGroup | Gruppiert bis zu 3 PTP-Achsen in einer 3D-Gruppe
CfgBuildExt3DGroup | Gruppiert bis zu 3 PTP-Achsen und 5 Hilfsachsen in einer 3D-Gruppe
CfgAddAxisToGroup | Konfiguriert eine einzelne Achse an einen bestimmten Platz innerhalb einer Gruppe (PTP, 3D, FIFO)
CfgReconfigGroup | Auflösen einer 3D- (FIFO-) Achsbelegung und Rückführung der Achsen in ihre persönliche PTP-Gruppe
CfgReconfigAxis | Rückführung einer einzelnen Achse z.B. aus einer 3D-Gruppe in ihre persönliche PTP-Gruppe
CfgRead3DAxisIds | Lesen der Achs-IDs (Achsbelegung) einer 3D-Gruppe
CfgReadExt3DAxisIds | Lesen der Achs-IDs (Achsbelegung) einer 3D-Gruppe mit Hilfsachsen
Weiterführende Informationen
•
CfgBuild3DGroup
•
CfgBuildExt3DGroup
•
CfgAddAxisToGroup
•
CfgReconfigGroup
•
CfgReconfigAxis
•
CfgRead3DAxisIds
•
CfgReadExt3DAxisIds


CfgBuild3DGroup

PLC NCI Libraries [image] PLC Library: NC Configuration [image] CfgBuild3DGroup
CfgBuild3DGroup
Dieser Baustein konfiguriert eine 3D-Gruppe mit bis zu 3 PTP-Achsen (X, Y und Z). An den Eingängen nXAxisId, nYAxisId und nZAxisId werden die IDs der PTP-Achsen angelegt. nGroupId enthält die ID der 3D-Gruppe. Bei einer positiven Flanke am Eingang bExecute wird der Befehl ausgeführt.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Interface
VAR_INPUT
bExecute : BOOL;
nGroupId : UDINT;
nXAxisId : UDINT;
nYAxisId : UDINT;
nZAxisId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR


CfgBuildExt3DGroup

PLC NCI Libraries [image] PLC Library: NC Configuration [image] CfgBuildExt3DGroup
CfgBuildExt3DGroup
ab TwinCAT 2.8
ab TcNcCfg.lib Version 3.1
Dieser Baustein konfiguriert eine 3D-Gruppe mit bis zu 3 Bahnachsen (X, Y und Z). Zusätzlich können bis zu 5 Hilfsachsen (Q1..Q5) konfiguriert werden. An den Eingängen nXAxisId bis nQ5AxisId werden die Achs-IDs der PTP-Achsen angelegt, die in der Interpolationsgruppe aufgenommen werden sollen.
Bei der Zuweisung der Hilfsachsen muss mit nQ1AxisId begonnen werden und es dürfen keine Plätze zwischen Hilfsachsen freigelassen werden. D.h. wenn z.B. nQ3AxisId belegt werden soll, dann muss auch nQ2AxisId eine gültige Achs-ID zugewiesen werden.
nGroupId enthält die ID der 3D-Gruppe. Bei einer positiven Flanke am Eingang bExecute wird der Befehl ausgeführt.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Interface
VAR_INPUT
bExecute : BOOL;
nGroupId : UDINT;
nXAxisId : UDINT;
nYAxisId : UDINT;
nZAxisId : UDINT;
nQ1AxisId : UDINT;
nQ2AxisId : UDINT;
nQ3AxisId : UDINT;
nQ4AxisId : UDINT;
nQ5AxisId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR


CfgAddAxisToGroup

PLC NCI Libraries [image] PLC Library: NC Configuration [image] CfgAddAxisToGroup
CfgAddAxisToGroup
Der Baustein CfgAddAxisToGroup konfiguriert eine einzelne Achse an einen bestimmten Platz innerhalb einer bestehenden Gruppe (PTP, 3D, FIFO). Am Eingang nGroupId wird die ID der Zielgruppe angelegt. Die ID der zu konfigurierenden Achse wird dem Eingang nAxisId übergeben. nIndex enthält den Platz der Achse innerhalb der Gruppe. nIndex kann Werte von 0..n-1 annehmen. Dabei hat n je nach Gruppentyp folgende Wertigkeit:
▪
PTP: n = 1
▪
3D: n = 3
▪
FIFO: n = 8
Interface
VAR_INPUT
bExecute : BOOL;
nGroupId : UDINT;
nAxisId : UDINT;
nIndex : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Mit einer steigenden Flanke am Eingang bExecute wird der Befehl ausgeführt.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.


CfgReconfigGroup

PLC NCI Libraries [image] PLC Library: NC Configuration [image] CfgReconfigGroup
CfgReconfigGroup
Beschreibung
Der Baustein CfgReconfigGroup löst die Achsbelegung einer bestehenden Gruppe (NCI oder FIFO) auf und führt die Achsen in ihre persönliche PTP-Gruppe zurück. Die ID der aufzulösenden Gruppe wird am Eingang nGroupId angelegt. Mit einer steigenden Flanke an Eingang bExecute wird der Befehl ausgeführt.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Interface
VAR_INPUT
bExecute : BOOL;
nGroupId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR


CfgReconfigAxis

PLC NCI Libraries [image] PLC Library: NC Configuration [image] CfgReconfigAxis
CfgReconfigAxis
Der Baustein CfgReconfigAxis führt eine einzelne Achse aus z.B. einer 3D-Gruppe in ihre persönliche PTP-Gruppe zurück. Dazu wird an den Eingang nAxisId die ID der rückzuführenden Achse angelegt. Mit einer steigenden Flanke am Eingang bExecute wird der Befehl ausgeführt.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Interface
VAR_INPUT
bExecute : BOOL;
nAxisId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR


CfgRead3DAxisIds

PLC NCI Libraries [image] PLC Library: NC Configuration [image] CfgRead3DAxisIds
CfgRead3DAxisIds
Der Baustein CfgRead3DAxisIds liest die Achskonfiguration einer 3D-Gruppe. Die ID der 3D-Gruppe wird am Eingang nGroupId angelegt. An den Eingang pAddr wird die Adresse der Variablen angelegt, in die der Baustein die AchsIds der Gruppenbelegung schreibt. Diese Variable ist ein Array mit drei Elementen vom Typ UDINT.
Mit einer steigenden Flanke am Eingang bExecute wird der Befehl ausgeführt.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Interface
VAR_INPUT
bExecute : BOOL;
nGroupId : UDINT;
pAddr : DWORD;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beispiel:
VAR
(* instance *)
ReadAxIds : CfgRead3DAxisIds;
AxIds : ARRAY[1..3] OF UDINT;
END_VAR
ReadAxIds( bExecute := TRUE,
nGroupId := 4,
pAddr := ADR( AxIds ),
tTimeOut := T#1s );
AxIds enthält nun die drei Achs-ID's der 3D-Gruppe mit der Gruppen-ID 4.


CfgReadExt3DAxisIds

PLC NCI Libraries [image] PLC Library: NC Configuration [image] CfgReadExt3DAxisIds
CfgReadExt3DAxisIds
ab TwinCAT Version 2.8 Build 723
ab TcNcCfg.lib Version 3.2
Der Baustein CfgReadExt3DAxisIds liest die Achskonfiguration der erweiterten 3D-Gruppe. Die ID der 3D-Gruppe wird am Eingang nGroupId angelegt. An den Ein- & Ausgang stExt3dGroup wird eine Instanz der Struktur NCI_EXT3DGROUP angelegt. In diese Struktur werden die Achs-IDs der aktuellen Interpolationsgruppe eingetragen.
Mit einer steigenden Flanke am Eingang bExecute wird der Befehl ausgeführt.
Der Ausgang bBusy bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt hat, längstens aber für die Dauer der an dem tTimeOut-Eingang angelegten Zeit. Während bBusy = TRUE wird an den Eingängen kein neuer Befehl angenommen.
Der Ausgang bErr wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Durch das Ausführen eines Befehls an den Eingängen werden die Ausgänge zurückgesetzt.
Interface
VAR_INPUT
bExecute : BOOL;
nGroupId : UDINT;
tTimeOut : TIME;
END_VAR
VAR_IN_OUT
stExt3dGroup : NCI_EXT3DGROUP;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
TYPE NCI_EXT3DGROUP :
STRUCT
nXAxisId : UDINT;
nYAxisId : UDINT;
nZAxisId : UDINT;
nQ1AxisId : UDINT;
nQ2AxisId : UDINT;
nQ3AxisId : UDINT;
nQ4AxisId : UDINT;
nQ5AxisId : UDINT;
END_STRUCT
END_TYPE


PLC Library: NCI Utilities

PLC NCI Libraries [image] PLC Library: NCI Utilities
PLC Library: NCI Utilities
Die Bausteine ItpPpg* stellen eine Möglichkeit dar, um aus der SPS ein Teileprogramm (G-Code-File) zu erstellen. Dabei wird beim Generieren grundsätzlich zwischen einem Hauptprogramm (ItpPpgCreateMain) und einem Unterprogramm (ItpPpgCreateSubroutine) unterschieden.
Anschließend können mit ItpPpgAppend* verschiedene NC-Zeilen hinzugefügt werden. Dabei stehen folgende FBs zur Verfügung:
▪
ItpPpgAppendGeoLine fügt eine Linearbewegung hinzu.
▪
ItpPpgAppendGeoCircleByRadius fügt einen Kreis mit Radiusangabe hinzu.
▪
ItpPpgAppendGenericBlock fügt eine selbstdefinierte Zeile, wie z.B. Einschalten der Verrundung oder M-Funktionen hinzu.
Ist das Teileprogramm soweit fertig gestellt, wird es mit den Routinen ItpPpgCloseMain bzw. ItpPpgCloseSubroutine geschlossen.
Folgende Funktionsblöcke können verwendet werden:
Funktionsbaustein | Beschreibung
ItpPpgAppendGenericBlock | Hängt eine generische NC-Zeile an ein spezifiziertes Teileprogramm
ItpPpgAppendGeoCircleByRadius | Fügt einen Kreis an ein spezifiziertes Teileprogramm an
ItpPpgAppendGeoLine | Fügt eine Linearbewegung an ein spezifiziertes Teileprogramm an
ItpPpgCloseMain | Schließt ein zuvor geöffnetes Teileprogramm
ItpPpgCloseSubroutine | Schließt ein zuvor geöffnetes Unterprogramm
ItpPpgCreateMain | Öffnet bzw. generiert ein Teileprogramm
ItpPpgCreateSubroutine | Öffnet bzw. generiert ein Unterprogramm
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 Build >746 TwinCAT v2.9.0 Build >947 | PC (i386) | TcNciUtilities.lib
Weiterführende Informationen
•
ItpPpgAppendGenericBlock
•
ItpPpgAppendGeoCircleByRadius
•
ItpPpgAppendGeoLine
•
ItpPpgCloseMain
•
ItpPpgCloseSubroutine
•
ItpPpgCreateMain
•
ItpPpgCreateSubroutine


ItpPpgAppendGenericBlock

PLC NCI Libraries [image] PLC Library: NCI Utilities [image] ItpPpgAppendGenericBlock
ItpPpgAppendGenericBlock
Der Baustein ItpPpgAppendGenericBlock fügt eine generische Zeile ans Teileprogramm an. Er kann z.B. dazu verwendet werden, um eine M-Funktion oder die Verrundung einzuschalten.
Vor dem Aufruf sollte ItpPpgCreateMain oder ItpPpgCreateSubroutine aufgerufen werden.
Der Baustein ItpPpgAppendGenericBlock besitzt folgende Eingänge:
Interface
VAR_INPUT
bExecute : BOOL;
sPathName : STRING;
sBlock : STRING;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Beschreibung
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
sPathName | STRING | Name des Teileprogramms mit Pfadangabe
sBlock | STRING | Generische Zeile des Teileprogramms, die hinzugefügt werden soll
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 Build >746 TwinCAT v2.9.0 Build >947 | PC (i386) | TcNciUtilities.lib


ItpPpgAppendGeoCircleByRadius

PLC NCI Libraries [image] PLC Library: NCI Utilities [image] ItpPpgAppendGeoCircleByRadius
ItpPpgAppendGeoCircleByRadius
Der Baustein ItpPpgAppendGeoCircleByRadius fügt eine Kreisbewegung ans Teileprogramm an. Dabei wird der Kreis mit dem Radius parametriert.
Vor dem Aufruf sollte ItpPpgCreateMain oder ItpPpgCreateSubroutine aufgerufen werden.
Der Baustein ItpPpgAppendGeoCircleByRadius besitzt folgende Eingänge:
Interface
VAR_INPUT
bExecute : BOOL;
sPathName : STRING;
bClockWise : BOOL;
fTargetXPos : LREAL;
fTargetYPos : LREAL;
fTargetZPos : LREAL;
fRadius : LREAL;
fPathVelo : LREAL;
nBlockNo : UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
sPathName | STRING | Name des Teileprogramms mit Pfadangabe
bClockwise | BOOL | Wenn TRUE, wird der Kreis im Uhrzeigersinn abgefahren, andernfalls gegen den Uhrzeigersinn
fTargetXPos | LREAL | Zielposition der X-Achse
fTargetYPos | LREAL | Zielposition der Y-Achse
fTargetZPos | LREAL | Zielposition der Z-Achse
fRadius | LREAL | Kreisradius
fPathVelo | LREAL | Bahngeschwindigkeit
nBlockNo | UDINT | Zeilennummer im Teileprogramm
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 Build >746 TwinCAT v2.9.0 Build >947 | PC (i386) | TcNciUtilities.lib


ItpPpgAppendGeoLine

PLC NCI Libraries [image] PLC Library: NCI Utilities [image] ItpPpgAppendGeoLine
ItpPpgAppendGeoLine
Der Baustein ItpPpgAppendGeoLine fügt eine Linearbewegung ans Teileprogramm an. Neben der eigentlichen Zielposition werden die vorgesehen Bahngeschwindigkeit und die Zeilennummer übergeben.
Vor dem Aufruf sollte ItpPpgCreateMain oder ItpPpgCreateSubroutine aufgerufen werden.
Der Baustein ItpPpgAppendGeoLine besitzt folgende Eingänge:
Interface
VAR_INPUT
bExecute : BOOL;
sPathName : STRING;
fTargetXPos : LREAL;
fTargetYPos : LREAL;
fTargetZPos : LREAL;
fPathVelo : LREAL;
nBlockNo : UDINT;
tTimeOut : TIME;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
sPathName | STRING | Name des Teileprogramms mit Pfadangabe
fTargetXPos | LREAL | Zielposition der X-Achse
fTargetYPos | LREAL | Zielposition der Y-Achse
fTargetZPos | LREAL | Zielposition der Z-Achse
fPathVelo | LREAL | Bahngeschwindigkeit
nBlockNo | UDINT | Zeilennummer im Teileprogramm
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 Build >746 TwinCAT v2.9.0 Build >947 | PC (i386) | TcNciUtilities.lib


ItpPpgCloseMain

PLC NCI Libraries [image] PLC Library: NCI Utilities [image] ItpPpgCloseMain
ItpPpgCloseMain
Der Baustein ItpPpgCloseMain schließt das Hauptprogramm mit dem entsprechenden Code für den Interpreter (M02) ab.
Vor dem Aufruf sollte ItpPpgCreateMain aufgerufen werden.
Der Baustein besitzt folgende Eingänge:
Interface
VAR_INPUT
bExecute : BOOL;
sPathName : STRING;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
sPathName | STRING | Name des Teileprogramms mit Pfadangabe
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | nicht implementiert
TwinCAT v2.8.0 Build >746 TwinCAT v2.9.0 Build >947 | PC (i386) | TcNciUtilities.lib


ItpPpgCloseSubroutine

PLC NCI Libraries [image] PLC Library: NCI Utilities [image] ItpPpgCloseSubroutine
ItpPpgCloseSubroutine
Der Baustein ItpPpgCloseSubroutine schließt das Unterprogramm mit dem entsprechenden Code für den Interpreter (M17) ab.
Vor dem Aufruf sollte ItpPpgCreateSubroutine aufgerufen werden.
Der Baustein besitzt folgende Eingänge:
Interface
VAR_INPUT
bExecute : BOOL;
sPathName : STRING;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt
sPathName | STRING | Name des Teileprogramms mit Pfadangabe
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.8.0 Build >746 TwinCAT v2.9.0 Build >947 | PC (i386) | TcNciUtilities.lib
Sehen Sie dazu auch
•
ItpPpgCreateSubroutine


ItpPpgCreateMain

PLC NCI Libraries [image] PLC Library: NCI Utilities [image] ItpPpgCreateMain
ItpPpgCreateMain
Der Baustein ItpPpgCreateMain generiert eine neue Datei, die später als Hauptprogramm abgearbeitet werden kann. Falls die Datei noch nicht existiert, wird sie erzeugt, andernfalls überschrieben.
Der Baustein besitzt folgende Eingänge:
Interface
VAR_INPUT
bExecute : BOOL;
sPathName : STRING;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
sPathName | STRING | Name des Teileprogramms mit Pfadangabe
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.8.0 Build >746 TwinCAT v2.9.0 Build >947 | PC (i386) | TcNciUtilities.lib


ItpPpgCreateSubroutine

PLC NCI Libraries [image] PLC Library: NCI Utilities [image] ItpPpgCreateSubroutine
ItpPpgCreateSubroutine
Der Baustein ItpPpgCreateSubroutine generiert eine neue Datei, die später als Unterprogramm abgearbeitet werden kann. Falls die Datei noch nicht existiert, wird sie erzeugt, andernfalls überschrieben.
Der Baustein besitzt folgende Eingänge:
Interface
VAR_INPUT
bExecute : BOOL;
sPathName : STRING;
nSubroutineId: UDINT;
tTimeOut : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bErr : BOOL;
nErrId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Befehl ausgeführt.
sPathName | STRING | Name des Unterprogramms mit Pfadangabe
nSubroutineId | UDINT | Nummer des Unterprogramms
tTimeOut | TIME | ADS Timeout-Delay
Ausgang | Datentyp | Beschreibung
bBusy | BOOL | Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
bErr | BOOL | Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.8.0 Build >746 TwinCAT v2.9.0 Build >947 | PC (i386) | TcNciUtilities.lib


PLC Library: TcPlcInterpolation

PLC NCI Libraries [image] PLC Library: TcPlcInterpolation
PLC Library: TcPlcInterpolation
Die TcPlcInterpolation-Bilbliothek bietet eine Alternative zur Verwendung von G-Code (DIN 66025). Mit dieser Bibliothek ist es möglich, interpolierte Fahrbefehle unmittelbar aus der SPS und ohne die Verwendung von G-Code auszuführen.
In einem ersten Schritt wird eine Tabelle verschiedener Fahrbefehle und Zusatzfunktionen beschrieben. Hierzu werden Strukturen wie zum Beispiel ST_NciGeoLine an den FB NciFeedTablePreparation übergeben. Hierdurch wird der Fahrbefehl an die Tabelle angehängt. Wenn die Tabelle voll ist oder alle erforderlichen Einträge in der Tabelle sind, wird NciFeedTable dazu aufgerufen, den Tabelleninhalt zum NC-Kern zu übertragen. Mit der Datenübertragung wird die Ausführung direkt gestartet.
Funktionsbausteine, die zur Gruppierung von Achsen oder zur Kanalsteuerung (Kanaloverride) benötigt werden, befinden sich in den Bibliotheken ‚TcNcCfg.lib‘ und ‚TcNci.lib‘.
Funktionsbaustein | Beschreibung
FB_NciFeedTablePreparation | Füllt eine Tabelle mit NCI-Bewegungen in der SPS
FB_NciFeedTable | Übergibt eine zuvor geschriebene Tabelle an den NC-Kern und startet die Bewegung
Folgende Strukturen können als Eingangsparameter für den Baustein NciFeedTablePreparation benutzt werden:
Strukturen | Enum | Beschreibung
Organisation
 | E_NciEntryTypeNone | Keine Funktion
ST_NciGeoStart | E_NciEntryTypeGeoStart | Stellt die Startposition des ersten Geometrieeintrags ein
ST_NciEndOfTables | E_NciEntryTypeEndOfTables | Signalisiert das Ende der Geometrietabelle
Fahrbefehle
ST_NciGeoLine | E_NciEntryTypeGeoLine | Beschreibt eine Gerade
ST_NciGeoCirclePlane | E_NciEntryTypeGeoCirclePlane | Beschreibt einen Kreis in der Hauptebene (Mittelpunktprogrammierung)
ST_NciGeoCircleCIP | E_NciEntryTypeGeoCircleCIP | Beschreibt einen frei im Raum liegenden Kreis
ST_NciGeoBezier3 | E_NciEntryTypeGeoBezier3 | Beschreibt einen Bezier 3. Ordnung mit Kontrollpunkten
ST_NciGeoBezier5 | E_NciEntryTypeGeoBezier5 | Beschreibt einen Bezier 5. Ordnung mit Kontrollpunkten
ST_NciDwellTime | E_NciEntryTypeDwellTime | Beschreibt eine Verweilzeit
Bahnparameter
ST_NciBaseFrame | E_NciEntryTypeBaseFrame | Beschreibt eine Nullpunktverschiebung und Rotation
ST_NciVertexSmoothing | E_NciEntryTypeVertexSmoothing | Aktiviert eine Verschleifung an Segmentübergängen
ST_NciTangentialFollowingDesc | E_NciEntryTypeTfDesc | Aktiviert die tangentiale Nachführung des Werkzeugs
Dynamik
ST_NciDynOvr | E_NciEntryTypeDynOvr | Verändert den dynamischen Override
ST_NciAxisDynamics | E_NciEntryTypeAxisDynamics | Limitiert die Dynamik der Achsen
ST_NciPathDynamics | E_NciEntryTypePathDynamics | Limitiert die Bahndynamik
Parameterbefehle
ST_NciHParam | E_NciEntryTypeHParam | Setzt einen H-Parameter (DINT)
ST_NciSParam | E_NciEntryTypeSParam | Setzt einen S-Parameter (WORD)
ST_NciTParam | E_NciEntryTypeTParam | Setzt einen T-Parameter (WORD)
ST_NciMFuncFast | E_NciEntryTypeMFuncFast | Parametriert eine schnelle M-Funktion (kein Handshake)
ST_NciMFuncHsk | E_NciEntryTypeMFuncHsk | Parametriert eine M-Funktion mit Handshake
ST_NciMFuncResetAllFast | E_NciEntryTypeResetAllFast | Setzt alle schnellen M-Funktionen zurück
Voraussetzungen
Entwicklungsumgebung | Zielsystem | Einzubindende SPS-Bibliotheken
TwinCAT v2.10 | PC (i386) | TcPlcInterpolation.lib
Weiterführende Informationen
•
FB_NciFeedTablePreparation
•
FB_NciFeedTable
•
Typen und Enums


FB_NciFeedTablePreparation

PLC NCI Libraries [image] PLC Library: TcPlcInterpolation [image] FB_NciFeedTablePreparation
FB_NciFeedTablePreparation
Der Funktionsbaustein FB_NciFeedTablePreparation hängt einen Eintrag eines spezifischen Typs an die Feed-Tabelle (stFeedGropupTable). Ein angehängter Eintrag kann mehr als eine Zeile in der Tabelle erzeugen. Falls sich nicht genug freie Zeilen in der Tabelle befinden, wird ein Fehler zurückgeliefert und es wird kein Eintrag in der Tabelle hinzugefügt. Dann muss der Eintrag entweder einer anderen Tabelle hinzugefügt werden oder derselben nachdem FB_NciFeedTable ausgeführt wurde. Dieser Funktionsbaustein kümmert sich um Modalfunktionen wie die tangentiale Nachführung. Es ist deshalb wichtig, immer dieselbe Instanz dieses Funktionsbausteins zu verwenden. Der Funktionsbaustein kann in einem SPS-Zyklus mehrfach aufgerufen werden.
Interface
VAR_INPUT
nEntryType : E_NciEntryType;
pEntry : POINTER TO UDINT;
bResetTable : BOOL;
bResetAll : BOOL;
END_VAR
VAR_IN_OUT
stFeedGroupTable : ST_NciFeedGroupTable
END_VAR
VAR_OUTPUT
nFilledRows : INT;
bError : BOOL;
nErrorId : UDINT;
END_VAR
VAR_INPUT
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Spezifiziert den Eintragstyp, z.B. Linie, Kreis, tangentiale Nachführung
pEntry | POINTER | Pointer auf Eintragsstruktur – muss übereinstimmen mit nEntryType
bResetTable | BOOL | Wenn bResetTable = TRUE dann wird die Tabelle ‚stFeedGroupTable’ auf Null gesetzt und nFilledRows wird ebenfalls auf Null gesetzt. Wenn nErrorId = ErrNciFeedTableFull ist, wird dieser Fehler zurückgesetzt. Alle Modalflags (wie tangentiale Nachführung) bleiben konstant.
bResetAll | BOOL | Genau wie bResetTable. Daneben werden alle Modalflags auf ihren Standardwert gesetzt und alle Fehler-IDs werden zurückgesetzt.
VAR_IN_OUT
Eingang/Ausgang | Datentyp | Beschreibung
stFeedGroupTable | ST_NciFeedGroupTable | Tabelle, die die Zeilen für den NC-Kernel enthält.
VAR_OUTPUT
Ausgang | Datentyp | Beschreibung
nFilledRows | INT | Anzahl gefüllter Zeilen.
bError | BOOL | Wird TRUE, wenn ein Fehler aufgetreten ist.
nErrorId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS-Fehlerdokumentation oder in der NC-Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.
Hinweis:
▪
Wenn bResetTable, bResetAll, oder bError true ist, werden keine weiteren Einträge akzeptiert.
▪
Der Fehlercode 0x4B72 zeigt an, dass die Tabelle voll ist, und der letzte Eintrag nicht akzeptiert wurde.
Beispiel:
stGeoLine.nDisplayIndex := 1;
stGeoLine.fEndPosX := 0;
stGeoLine.fEndPosY := 400;
stGeoLine.fEndPosZ := 100;
stGeoLine.fEndPosQ1 :=-90;
stGeoLine.fVelo := 1000; (*mm per sec*)

fbFeedTablePrep(
nEntryType := E_NciEntryTypeGeoLine,
pEntry := ADR(stGeoLine),
bResetTable:= FALSE,
stFeedGroupTable:= stNciFeedGroupTable,
nFilledRows=> nFilledRows,
bError => bError,
nErrorId => nErrorId);
Voraussetzungen
Entwicklungsumgebung | Zielsystem | Einzubindende SPS-Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcPlcInterpolation.lib


FB_NciFeedTable

PLC NCI Libraries [image] PLC Library: TcPlcInterpolation [image] FB_NciFeedTable
FB_NciFeedTable
Der Funktionsbaustein FB_NciFeedTable übergibt eine gegebene Tabelle zum NC-Kern. Wenn der Override gesetzt und die Freigaben aktiviert sind, wird die Ausführung sofort gestartet. Nachdem die Übergabe abgeschlossen ist, wird bFeedingDone TRUE. Dieses Signal kann für einen erneutes Überschreiben der Tabelle mit NciFeedTablePreparation verwendet werden. In NciFeedTablePreparation muss die Tabelle vorher zurückgesetzt werden.
bChannelDone signalisiert die vollständige Ausführung im NC-Kern der Tabellen. Deshalb muss der Identifier ST_NciEndOfTables an das Ende der letzten Tabelle gesetzt werden.
Interface
VAR_INPUT
bExecute : BOOL;
bReset : BOOL;
bLogFeederEntries : BOOL;
END_VAR
VAR_IN_OUT
stFeedGroupTable : ST_NciFeedGroupTable;
stNciToPlc : NciChannelToPlc;
END_VAR
VAR_OUTPUT
bFeedingDone : BOOL;
bChannelDone : BOOL;
bFeedBusy: : BOOL;
bResetBusy: : BOOL;
bError : BOOL;
nErrorId : UDINT;
END_VAR
Eingang | Datentyp | Beschreibung
bExecute | BOOL | Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.
bReset | BOOL | Löst einen Kanalreset aus und setzt ebenfalls den Funktionsbaustein zurück
bLogFeederEntries | BOOL | Wenn TRUE, wird eine Logdatei ‚PlcItpFeed.log’ in den TwinCAT\CNC-Ordner geschrieben. Sie enthält alle Einträge, die über ADS an den NC-Kern gesendet werden. Hinweis Wenn bLogFeederEntries = TRUE, dann ist mehr Zeit erforderlich, bis bFeedingDone TRUE wird.
Eingang/Ausgang | Datentyp | Beschreibung
stFeedGroupTable | ST_NciFeedGroupTable | Tabelle, die die Zeilen für den NC-Kern enthält.
stNciToPlc | NciChannelToPlc | Die Struktur des zyklischen Kanalinterfaces von der NCI zur SPS.
Ausgang | Datentyp | Beschreibung
bFeedingDone | BOOL | Wird TRUE, wenn alle Zeilen der Tabelle an den NC-Kern gesendet wurden.
bChannelDone | BOOL | Wird TRUE, wenn alle Einträge der Tabelle im NC-Kern ausgeführt wurden und ST_NciEndOfTables erkannt wurde.
bFeedBusy | BOOL | Wird TRUE, wenn der Funktionsbaustein Einträge an den NC-Kern sendet.
bResetBusy | BOOL | Wird TRUE, während ein Reset augeführt wird.
bError | BOOL | Wird TRUE, wenn ein Fehler aufgetreten ist.
nErrorId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS-Fehlerdokumentation oder in der NC-Fehlerdokumentation nachgeschlagen werden.
Voraussetzungen
Entwicklungsumgebung | Zielsystem | Einzubindende SPS-Bibliotheken
TwinCAT v2.10.0 | PC (i386) | TcPlcInterpolation.lib


Typen und Enums

PLC NCI Libraries [image] PLC Library: TcPlcInterpolation [image] Typen und Enums
Typen und Enums
E_NciEntryType
TYPE E_NciEntryType :
(
E_NciEntryTypeNone := 0,
E_NciEntryTypeGeoStart := 1,
E_NciEntryTypeGeoLine := 2,
E_NciEntryTypeGeoCirclePlane := 3,
E_NciEntryTypeGeoCircleCIP := 4,
E_NciEntryTypeGeoBezier3 := 10,
E_NciEntryTypeGeoBezier5 := 11,
E_NciEntryTypeMFuncHsk := 20,
E_NciEntryTypeMFuncFast := 21,
E_NciEntryTypeMFuncResetAllFast := 23,
E_NciEntryTypeHParam := 24,
E_NciEntryTypeSParam := 25,
E_NciEntryTypeTParam := 26,
E_NciEntryTypeDynOvr := 50,
E_NciEntryTypeVertexSmoothing := 51,
E_NciEntryTypeBaseFrame := 52,
E_NciEntryTypePathDynamics := 53,
E_NciEntryTypeAxisDynamics := 55,
E_NciEntryTypeDwellTime := 56,
E_NciEntryTypeTfDesc := 100,
E_NciEntryTypeEndOfTables := 1000
);
END_TYPE
Strukturen | Enum | Beschreibung
Organisation
 | E_NciEntryTypeNone | Keine Funktion
ST_NciGeoStart | E_NciEntryTypeGeoStart | Stellt die Startposition des ersten Geometrieeintrags ein
ST_NciEndOfTables | E_NciEntryTypeEndOfTables | Signalisiert das Ende der Geometrietabelle
Fahrbefehle
ST_NciGeoLine | E_NciEntryTypeGeoLine | Beschreibt eine Gerade
ST_NciGeoCirclePlane | E_NciEntryTypeGeoCirclePlane | Beschreibt einen Kreis in der Hauptebene (Mittelpunktprogrammierung)
ST_NciGeoCircleCIP | E_NciEntryTypeGeoCircleCIP | Beschreibt einen frei im Raum liegenden Kreis
ST_NciGeoBezier3 | E_NciEntryTypeGeoBezier3 | Beschreibt einen Bezier 3. Ordnung mit Kontrollpunkten
ST_NciGeoBezier5 | E_NciEntryTypeGeoBezier5 | Beschreibt einen Bezier 5. Ordnung mit Kontrollpunkten
ST_NciDwellTime | E_NciEntryTypeDwellTime | Beschreibt eine Verweilzeit
Bahnparameter
ST_NciBaseFrame | E_NciEntryTypeBaseFrame | Beschreibt eine Nullpunktverschiebung und Rotation
ST_NciVertexSmoothing | E_NciEntryTypeVertexSmoothing | Aktiviert eine Verschleifung an Segmentübergängen
ST_NciTangentialFollowingDesc | E_NciEntryTypeTfDesc | Aktiviert die tangentiale Nachführung des Werkzeugs
Dynamik
ST_NciDynOvr | E_NciEntryTypeDynOvr | Verändert den dynamischen Override
ST_NciAxisDynamics | E_NciEntryTypeAxisDynamics | Limitiert die Dynamik der Achsen
ST_NciPathDynamics | E_NciEntryTypePathDynamics | Limitiert die Bahndynamik
Parameterbefehle
ST_NciHParam | E_NciEntryTypeHParam | Setzt einen H-Parameter (DINT)
ST_NciSParam | E_NciEntryTypeSParam | Setzt einen S-Parameter (WORD)
ST_NciTParam | E_NciEntryTypeTParam | Setzt einen T-Parameter (WORD)
ST_NciMFuncFast | E_NciEntryTypeMFuncFast | Parametriert eine schnelle M-Funktion (kein Handshake)
ST_NciMFuncHsk | E_NciEntryTypeMFuncHsk | Parametriert eine M-Funktion mit Handshake
ST_NciMFuncResetAllFast | E_NciEntryTypeResetAllFast | Setzt alle schnellen M-Funktionen zurück
ST_NciGeoStart
TYPE ST_NciGeoStart :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeGeoStart; (*do not override this parameter *)
fPosX: LREAL;
fPosY: LREAL;
fPosZ: LREAL;
fPosQ1: LREAL;
fPosQ2: LREAL;
fPosQ3: LREAL;
fPosQ4: LREAL;
fPosQ5: LREAL;
END_STRUCT
END_TYPE
Stellt die Startposition des ersten Geometrie-Eintrags ein. Dies ist erforderlich, wenn der erste Geometrie-Eintrag ein Kreis ist oder die tangentiale Nachführung im ersten Segment ON ist. Diese Struktur kann optional bei jedem Start der ersten Tabelle geschrieben werden.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
fPosX | LREAL | Startposition X
fPosY | LREAL | Startposition Y
fPosZ | LREAL | Startposition Z
fPosQ1 | LREAL | Startposition Q1
fPosQ2 | LREAL | Startposition Q2
fPosQ3 | LREAL | Startposition Q3
fPosQ4 | LREAL | Startposition Q4
fPosQ5 | LREAL | Startposition Q5
ST_NciGeoLine
TYPE ST_NciGeoLine :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeGeoLine; (*do not override this parameter *)
nDisplayIndex: UDINT;
fEndPosX: LREAL;
fEndPosY: LREAL;
fEndPosZ: LREAL;
fEndPosQ1: LREAL;
fEndPosQ2: LREAL;
fEndPosQ3: LREAL;
fEndPosQ4: LREAL;
fEndPosQ5: LREAL;
fVelo: LREAL;
bRapidTraverse: BOOL;
bAccurateStop: BOOL; (* VeloEnd := 0 *)
END_STRUCT
END_TYPE
Beschreibt eine Gerade mit spezifizierter Geschwindigkeit.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
fEndPosX | LREAL | Zielposition X
fEndPosY | LREAL | Zielposition Y
fEndPosZ | LREAL | Zielposition Z
fEndPosQ1 | LREAL | Zielposition Q1
fEndPosQ2 | LREAL | Zielposition Q2
fEndPosQ3 | LREAL | Zielposition Q3
fEndPosQ4 | LREAL | Zielposition Q4
fEndPosQ5 | LREAL | Zielposition Q5
fVelo | LREAL | Zielbahngeschwindigkeit, wie F in G-Code, allerdings in Basiseinheiten pro Sekunde (z.B. mm/s)
bRapidTraverse | BOOL | TRUE hat dieselbe Wirkung wie G0 FALSE behandelt diesen Eintrag wie G01
bAccurateStop | BOOL | Genauhalt (TRUE hat dieselbe Wirkung wie G09)
ST_NciGeoCirclePlane
TYPE ST_NciGeoCirclePlane :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeGeoCirclePlane; (*do not override this parameter *)
nDisplayIndex: UDINT;
fEndPosX: LREAL;
fEndPosY: LREAL;
fEndPosZ: LREAL;
fCenterX: LREAL;
fCenterY: LREAL;
fCenterZ: LREAL;
fEndPosQ1: LREAL;
fEndPosQ2: LREAL;
fEndPosQ3: LREAL;
fEndPosQ4: LREAL;
fEndPosQ5: LREAL;
fVelo: LREAL;
bClockwise: BOOL;
bAccurateStop: BOOL; (* VeloEnd := 0 *)
nPlane: E_NciGeoPlane := E_NciGeoPlaneXY;
END_STRUCT
END_TYPE
Beschreibt einen Kreis in der Hauptebene. Der Mittelpunkt ist in absoluten Koordinaten angegeben.
Hinweis:
Ab TC2.11 R3 B2243 (TcPlcInterpolation.lib V1.1.39)
Die orthogonale Komponente beim Mittelpunkt wird intern zugewiesen. Wenn z.B. ein Kreis in der XY-Ebene programmiert wird, so wird ‚fCenterZ‘ intern zugewiesen. Falls der Anwender den Wert explizit zugewiesen hat, wird der Wert dennoch vom FB überschrieben.
Hinweis:
Ab TC2.11 R3 B2243 (TcPlcInterpolation.lib V1.1.39)
Mit der Programmierung der Höhe, lässt sich auch eine Helix beschreiben. Wird z.B. eine Helix in der XY-Ebene programmiert, wird die Hubhöhe der Helix mit ‚fEndPosZ‘ absolut vorgegeben.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
fEndPosX | LREAL | Zielposition X
fEndPosY | LREAL | Zielposition Y
fEndPosZ | LREAL | Zielposition Z
fCenterX | LREAL | Mittelposition X in absoluten Koordinaten
fCenterY | LREAL | Mittelposition Y in absoluten Koordinaten
fCenterZ | LREAL | Mittelposition Z in absoluten Koordinaten
fEndPosQ1 | LREAL | Zielposition Q1
fEndPosQ2 | LREAL | Zielposition Q2
fEndPosQ3 | LREAL | Zielposition Q3
fEndPosQ4 | LREAL | Zielposition Q4
fEndPosQ5 | LREAL | Zielposition Q5
fVelo | LREAL | Zielbahngeschwindigkeit in Basiseinheiten pro Sekunde (z.B. mm/s), wie F in G-Code
bClockwise | BOOL | Wenn TRUE, wird der Kreis im Uhrzeigersinn gezogen, ansonsten gegen den Uhrzeigersinn (ähnlich wie G02, G03)
bAccurateStop | BOOL | Genauhalt (TRUE hat dieselbe Wirkung wie G09)
nPlane | E_NciGeoPlane | Spezifiziert die Ebene: XY, YZ, oder ZX (ähnlich wie G17..G19)
Kreissegment als Startsegment
Ist das erste Geometrie-Segment ein Kreis, ist es erforderlich, die Startposition mit ST_NciGeoStart zu setzen.
E_NciGeoPlane
TYPE E_NciGeoPlane :
(
E_NciGeoPlaneXY := 17,
E_NciGeoPlaneZX := 18,
E_NciGeoPlaneYZ := 19
);
END_TYPE
ST_NciGeoCircleCIP
ab Library Version 1.1.34
TYPE ST_NciGeoCircleCIP :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeGeoCircleCIP; (* do not overwrite this parameter *)
nDisplayIndex: UDINT;
fEndPosX: LREAL;
fEndPosY: LREAL;
fEndPosZ: LREAL;
fCIPPosX: LREAL;
fCIPPosY: LREAL;
fCIPPosZ: LREAL;
fEndPosQ1: LREAL;
fEndPosQ2: LREAL;
fEndPosQ3: LREAL;
fEndPosQ4: LREAL;
fEndPosQ5: LREAL;
fVelo: LREAL;
bAccurateStop: BOOL; (* VeloEnd := 0 *)
END_STRUCT
END_TYPE
Mit dem CIP-Kreis ist es möglich einen Kreis frei im Raum zu beschreiben. Er muss sich nicht in der Hauptebene befinden. Damit der Kreis eindeutig beschrieben werden kann, dürfen alle 3 Punkte (Anfangspunkt ist implizit vorgegeben) nicht auf einer Geraden liegen. Es lässt sich also auf diese Weise kein Vollkreis programmieren.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
fCIPPosX | LREAL | X-Position in absoluten Koordinaten (Punkt auf Kreisbahn)
fCIPPosY | LREAL | Y-Position in absoluten Koordinaten (Punkt auf Kreisbahn)
fCIPPosZ | LREAL | Z-Position in absoluten Koordinaten (Punkt auf Kreisbahn)
fEndPosX | LREAL | Zielposition X
fEndPosY | LREAL | Zielposition Y
fEndPosZ | LREAL | Zielposition Z
fEndPosQ1 | LREAL | Zielposition Q1
fEndPosQ2 | LREAL | Zielposition Q2
fEndPosQ3 | LREAL | Zielposition Q3
fEndPosQ4 | LREAL | Zielposition Q4
fEndPosQ5 | LREAL | Zielposition Q5
fVelo | LREAL | Zielbahngeschwindigkeit in Basiseinheiten pro Sekunde (z.B. mm/s), wie F in G-Code
bAccurateStop | BOOL | Genauhalt (TRUE hat dieselbe Wirkung wie G09)
Kreissegment als Startsegment
Ist das erste Geometrie-Segment ein Kreis, ist es erforderlich, die Startposition mit ST_NciGeoStart zu setzen.
ST_NciGeoBezier3
TYPE ST_NciGeoBezier3:
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeGeoBezier3; (*do not override this parameter *)
nDisplayIndex: UDINT;
fControlPoint1X: LREAL;
fControlPoint1Y: LREAL;
fControlPoint1Z: LREAL;
fControlPoint2X: LREAL;
fControlPoint2Y: LREAL;
fControlPoint2Z: LREAL;
fEndPosX: LREAL;
fEndPosY: LREAL;
fEndPosZ: LREAL;
fEndPosQ1: LREAL;
fEndPosQ2: LREAL;
fEndPosQ3: LREAL;
fEndPosQ4: LREAL;
fEndPosQ5: LREAL;
fVelo: LREAL;
bAccurateStop: BOOL; (* VeloEnd := 0 *)
END_STRUCT
END_TYPE
Beschreibt einen Bezier dritter Ordnung mit Hilfe von Kontrollpunkten. Die Startposition ergibt sich aus dem vorherigen Segment. Der dritte Kontrollpunkt wird durch die Zielposition vorgegeben.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
fControlPoint1X | LREAL | X Komponente Kontrollpunkt 1
fControlPoint1Y | LREAL | Y Komponente Kontrollpunkt 1
... |  |
fControlPoint2Z | LREAL | Z Komponente Kontrollpunkt 2
fEndPosX | LREAL | Zielposition X
fEndPosY | LREAL | Zielposition Y
fEndPosZ | LREAL | Zielposition Z
fEndPosQ1 | LREAL | Zielposition Q1
fEndPosQ2 | LREAL | Zielposition Q2
fEndPosQ3 | LREAL | Zielposition Q3
fEndPosQ4 | LREAL | Zielposition Q4
fEndPosQ5 | LREAL | Zielposition Q5
fVelo | LREAL | Zielbahngeschwindigkeit in Basiseinheiten pro Sekunde (z.B. mm/s), wie F in G-Code
bAccurateStop | BOOL | Genauhalt (TRUE hat dieselbe Wirkung wie G09)
ST_NciGeoBezier5
ab Library Version 1.1.31
TYPE ST_NciGeoBezier5:
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeGeoBezier5; (*do not override this parameter *)
nDisplayIndex: UDINT;
fControlPoint1X: LREAL;
fControlPoint1Y: LREAL;
fControlPoint1Z: LREAL;
fControlPoint2X: LREAL;
fControlPoint2Y: LREAL;
fControlPoint2Z: LREAL;
fControlPoint3X: LREAL;
fControlPoint3Y: LREAL;
fControlPoint3Z: LREAL;
fControlPoint4X: LREAL;
fControlPoint4Y: LREAL;
fControlPoint4Z: LREAL;
fEndPosX: LREAL;
fEndPosY: LREAL;
fEndPosZ: LREAL;
fEndPosQ1: LREAL;
fEndPosQ2: LREAL;
fEndPosQ3: LREAL;
fEndPosQ4: LREAL;
fEndPosQ5: LREAL;
fVelo: LREAL;
bAccurateStop: BOOL; (* VeloEnd := 0 *)
END_STRUCT
END_TYPE
Beschreibt einen Bezier 5ter Ordnung mit Hilfe von Kontrollpunkten. Die Startposition ergibt sich aus dem vorherigen Segment. Der fünfte Kontrollpunkt wird durch die Zielposition vorgegeben.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
fControlPoint1X | LREAL | X Komponente Kontrollpunkt 1
fControlPoint1Y | LREAL | Y Komponente Kontrollpunkt 1
... |  |
fControlPoint4Z | LREAL | Z Komponente Kontrollpunkt 4
fEndPosX | LREAL | Zielposition X
fEndPosY | LREAL | Zielposition Y
fEndPosZ | LREAL | Zielposition Z
fEndPosQ1 | LREAL | Zielposition Q1
fEndPosQ2 | LREAL | Zielposition Q2
fEndPosQ3 | LREAL | Zielposition Q3
fEndPosQ4 | LREAL | Zielposition Q4
fEndPosQ5 | LREAL | Zielposition Q5
fVelo | LREAL | Zielbahngeschwindigkeit in Basiseinheiten pro Sekunde (z.B. mm/s), wie F in G-Code
bAccurateStop | BOOL | Genauhalt (TRUE hat dieselbe Wirkung wie G09)
ST_NciMFuncHsk
TYPE ST_NciMFuncHsk :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeMFuncHsk; (*do not override this parameter *)
nDisplayIndex: UDINT;
nMFunc: INT;
END_STRUCT
END_TYPE
Beschreibt eine M-Funktion des Typs Handshake. Die M-Funktionsnummer liegt zwischen 0 und 159
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
nMFunc | INT | M-Funktionsnummer (0..159)
M-Funktionen in der PlcInterpolation-Bibliothek
Werden in der PlcInterpolation-Bibliothek M-Funktionen verwendet, müssen diese nicht im User Interface des Systemmanagers eingetragen werden. Eine M-Funktion wirkt immer an der programmierten Stelle.
ST_NciMFuncFast
TYPE ST_NciMFuncFast :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeMFuncFast; (*do not override this parameter *)
nDisplayIndex: UDINT;
nMFuncIn0: INT;
nMFuncIn1: INT;
nMFuncIn2: INT;
nMFuncIn3: INT;
nMFuncIn4: INT;
nMFuncIn5: INT;
nMFuncIn6: INT;
nMFuncIn7: INT;
END_STRUCT
END_TYPE
Parametriert bis zu 8 schnelle M-Funktionen. Die erste M-Funktion muss nMFuncIn0 zugewiesen werden, die zweite nMFuncIn1 usw. -1 gibt das Ende der Zuweisungen an.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
nMFuncIn0 | INT | schnelle M-Funktionsnummer (0..159)
nMFuncIn1 | INT | schnelle M-Funktionsnummer (0..159) -1 gibt das Ende der Liste an.
nMFuncIn2 | INT | schnelle M-Funktionsnummer (0..159) -1 gibt das Ende der Liste an.
nMFuncIn3 | INT | schnelle M-Funktionsnummer (0..159) -1 gibt das Ende der Liste an.
nMFuncIn4 | INT | schnelle M-Funktionsnummer (0..159) -1 gibt das Ende der Liste an.
nMFuncIn5 | INT | schnelle M-Funktionsnummer (0..159) -1 gibt das Ende der Liste an.
nMFuncIn6 | INT | schnelle M-Funktionsnummer (0..159) -1 gibt das Ende der Liste an.
nMFuncIn7 | INT | schnelle M-Funktionsnummer (0..159) -1 gibt das Ende der Liste an.
M-Funktionen in der PlcInterpolation-Bibliothek
Werden in der PlcInterpolation-Bibliothek M-Funktionen verwendet, müssen diese nicht im User Interface des Systemmanagers eingetragen werden. Eine M-Funktion wirkt immer an der programmierten Stelle.
ST_NciMFuncResetAllFast
TYPE ST_NciMFuncResetAllFast :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeMFuncResetAllFast; (*do not override this parameter *)
nDisplayIndex: UDINT;
END_STRUCT
END_TYPE
Setzt alle schnellen M-Funktionen zurück.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
ST_NciHParam
TYPE ST_NciHParam :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeHParam; (*do not override this parameter *)
nDisplayIndex: UDINT;
nHParam: UDINT;
END_STRUCT
END_TYPE
Setzt einen H-Parameter im zyklischen Kanalinterface.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
nHParam | UDINT | H-Parameter von der NC zur SPS
ST_NciSParam
TYPE ST_NciSParam :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeSParam; (*do not override this parameter *)
nDisplayIndex: UDINT;
nSParam: UINT;
END_STRUCT
END_TYPE
Setzt einen S-Parameter im zyklischen Kanalinterface.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
nSParam | UINT | S-Parameter von der NC zur SPS
ST_NciTParam
TYPE ST_NciTParam :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeTParam; (*do not override this parameter *)
nDisplayIndex: UDINT;
nTParam: UINT;
END_STRUCT
END_TYPE
Setzt einen T-Parameter im zyklischen Kanalinterface.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
nTParam | UINT | T-Parameter von der NC zur SPS
ST_NciDynOvr
TYPE ST_NciDynOvr :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeDynOvr; (*do not override this parameter*)
nDisplayIndex: UDINT;
fDynOvr: LREAL;
END_STRUCT
END_TYPE
Modalfunktion zur Änderung der Bahndynamik.
Vergleiche DynOvr in Interpreter-Dokumentation.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
fDynOvr | LREAL | Wert für dynamischen Override ( 0.01 < fDynOvr <= 1)
ST_NciVertexSmoothing
seit Library Build 11
TYPE ST_NciVertexSmoothing :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeVertexSmoothing; (*do not override this parameter *)
nDisplayIndex: UDINT;
nType: UDINT; (*type of smoothing, e.g. parabola, bi-quad *)
nSubtype: UDINT; (*e.g. adaptive, constant radius *)
fRadius: LREAL; (*max. radius for tolerance ball *)
END_STRUCT
END_TYPE
Modalfunktion zur Aktivierung der Verschleifung am Segmentübergang. Die Verschleifung wirkt, bis sie durch Setzen des Radius auf 0 wieder aufgehoben wird.
Es befindet sich eine detaillierte Beschreibung des Parameters in der Interpreter-Dokumentation (paramVertexSmoothing).
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
nType | UDINT | Verschleifungsart: 2: Parabel 3: Bi-quadratisch 4: Bezier 3. Ordnung 5: Bezier 5. Ordnung
nSubtype | UDINT | 1: konstanter Toleranzradius 2: Abstand Schnittpunkt zum Scheitelpunkt 3: adaptiver Toleranzradius
fRadius | LREAL | Radius der Verschleifungskugel in Basiseinheiten (z.B. mm)
ST_NciBaseFrame
seit Library Build 21
TYPE ST_NciBaseFrame:
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeBaseFrame; (*Do not override this parameter *)
nDisplayIndex: UDINT;
fShfitX: LREAL;
fShiftY: LREAL;
fShiftZ: LREAL;
fRotX: LREAL;
fRotY: LREAL;
fRotZ: LREAL;
fShiftQ1: LREAL;
fShiftQ2: LREAL;
fShiftQ3: LREAL;
fShiftQ4: LREAL;
fShiftQ5: LREAL;
END_STRUCT
END_TYPE
Die Struktur ST_NciBaseFrame beschreibt eine modale Nullpunktverschiebung und Rotation. Dabei ist die Wirkungsweise die gleiche wie die Nullpunktverschiebung und Rotation im Interpreter. D.h. der Punkt um den rotiert wird, ist der aktuelle Nullpunkt (vergl. Rotation in der Interpreterdokumentation)
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
fShiftX | LREAL | Nullpunktverschiebung in X-Richtung
fShiftY | LREAL | Nullpunktverschiebung in Y-Richtung
fShiftZ | LREAL | Nullpunktverschiebung in Z-Richtung
fRotX | LREAL | Rotation der X-Achse
fRotY | LREAL | Rotation der Y-Achse
fRotZ | LREAL | Rotation der Z-Achse
fShiftQ1 | LREAL | Offset der Q1-Achse
fShfitQ2 | LREAL | Offset der Q2-Achse
fShiftQ3 | LREAL | Offset der Q3-Achse
fShiftQ4 | LREAL | Offset der Q4-Achse
fShiftQ5 | LREAL | Offset der Q5-Achse
ST_NciPathDynamics
Seit Library Build 22
TYPE ST_NciPathDynamics:
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypePathDynamics; (*do not override this parameter *)
nDisplayIndex: UDINT;
fAcc: LREAL;
fDec: LREAL;
fJerk: LREAL;
END_STRUCT
END_TYPE
Die Struktur ST_NciPathDynamics setzt die Dynamik (Beschleunigung, Verzögerung, Ruck) auf der Bahn. Dabei ist die Wirkungsweise die gleiche wie paramPathDynamics im Interpreter (vergl. paramPathDynamics in der Interpreterdokumentation)
Eingang | Datentype | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
fAcc | LREAL | Maximal erlaubte Bahnbeschleunigung
fDec | LREAL | Maximal erlaubte Bahnverzögerung
fJerk | LREAL | Maximal erlaubter Bahnruck
ST_NciAxisDynamics
Seit library Build 30
TYPE ST_NciAxisDynamics:
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeAxisDynamics; (*Do not override this parameter*)
nDisplayIndex: UDINT;
nAxis: UDINT;
fAcc: LREAL;
fDec: LREAL;
fJerk: LREAL;
END_STRUCT
END_TYPE
Die Struktur ST_NciAxisDynamics setzt die Dynamik (Beschleunigung, Verzögerung, Ruck) auf der Bahnachsen. Dabei ist die Wirkungsweise die gleiche wie paramAxisDynamics im Interpreter (vergl. paramAxisDynamics in der Interpreterdokumentation)
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | >diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
nAxis | UDINT | Achse in der Interpolationsgruppe X:0 Y:1 Z:2 Q1:3 ... Q5:7
fAcc | LREAL | Maximal erlaubte Achsbeschleunigung
fDec | LREAL | Maximal erlaubte Achsverzögerung
fJerk | LREAL | Maximal erlaubter Achsruck
ST_NciDwellTime
Seit library build 30
TYPE ST_NciDwellTime:
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeDwellTime; (*Do not override this parameter *)
nDisplayIndex: UDINT;
fDwellTime: LREAL;
END_STRUCT
END_TYPE
Mit der Struktur ST_NciDwellTime wird eine Verweilzeit in Sekunden eingeschaltet (vergl. Verweilzeit in der Interpreterdokumentation)
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | diesen Parameter nicht überschreiben
nDisplayIndex | UDINT | Zu Anzeigezwecken, wie Satznummer im G-Code
fDwellTime | LREAL | Verweilzeit in Sekunden
ST_NciTangentialFollowingDesc
TYPE ST_NciTangentialFollowingDesc :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeTfDesc; (*do not override this parameter *)
bTangOn: BOOL;
nTangAxis: E_NciAxesInGroup; (*axis used for tangential following *)
nPathAxis1: E_NciAxesInGroup; (*describing the plane e.g. x*)
nPathAxis2: E_NciAxesInGroup; (*e.g. y ==> g17, xy plane*)
fOffset: LREAL; (*geo tangent is 0 degree, counting is mathmatical positive *)
fCriticalAngle1: LREAL;
nTfBehavior: E_TangentialFollowingBehavior; (*what to do if angle becomes bigger than critical angle 1 *)
END_STRUCT
END_TYPE
Dies ist ein Modalbefehl zur Ein-/Ausschaltung der tangentialen Nachführung.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben
bTangOn | BOOL | Wenn TRUE, wird die tangentiale Nachführung eingeschaltet
nTangAxis | E_NciAxesInGroup | Achse (Q1..Q5), die als Tangentialachse verwendet wird
nPathAxis1 | E_NciAxesInGroup | Erste Bahnachse, die die Ebene und Ausrichtung zur Berechnung der Tangente beschreibt
nPathAxis2 | E_NciAxesInGroup | Zweite Bahnachse, die die Ebene und Ausrichtung zur Berechnung der Tangente beschreibt
fOffset | LREAL | Offset der Tangentialachse
fCritialAngle1 | LREAL | Kritischer Winkel 1. Die Reaktion, wenn der Winkel zwischen zwei Segmenten größer ist als fCriticalAngle1, wird mit nTfBehavior spezifiziert
nTfBehavior | E_TangentialFollowingBehavior | siehe fCriticalAngle1
E_NciAxesInGroup
TYPE E_NciAxesInGroup :
(
NoneAxis := 0,
XAxis,
YAxis,
ZAxis,
Q1Axis,
Q2Axis,
Q3Axis,
Q4Axis,
Q5Axis
);
END_TYPE
E_TangentialFollowingBehavior
TYPE E_TangentialFollowingBehavior :
(
E_TfIngoreAll, (*ignore critical angle *)
E_TfErrorOnCritical1 (*if angle becomes bigger than critical angle 1 ==> error *)
);
END_TYPE
ST_NciEndOfTables
TYPE ST_NciEndOfTables :
STRUCT
nEntryType: E_NciEntryType := E_NciEntryTypeEndOfTables; (*do not override this parameter *)
END_STRUCT
END_TYPE
Gibt den letzten Eintrag der letzten Tabelle an. Wird verwendet zur Signalisierung der bChannelDone-Flag in FB_NciFeedTable.
Eingang | Datentyp | Beschreibung
nEntryType | E_NciEntryType | Diesen Parameter nicht überschreiben


Beispiele

Beispiele
Beispiele
Weiterführende Informationen
•
FirstNciSample


FirstNciSample

Beispiele [image] FirstNciSample
FirstNciSample
Übersicht
Das Beispiel FirstNciSample zeigt, wie ein NC-Programm aus der SPS geladen und die Abarbeitung angestossen wird.
Dazu gehört u.a.
▪
Bilden einer Interpolationsgruppe
▪
Laden eines NC-Programms (Teileprogramm)
▪
Starten des NC-Programms
▪
Quittieren von M-Funktionen
▪
Auflösen der Interpolationsgruppe
Weitere Informationen zu den verwendeten Funktionsbausteinen befinden sich in den Kapiteln PLC Library: NC Configuration und PLC Library: NCI Interpreter.
Beispielprogramm installieren
Die Datei FirstNciSample.exe ist selbstentpackend und kann in ein beliebiges Verzeichnis kopiert werden.
Wenn die Daten erfolgreich entpackt wurden, sind im Verzeichnis folgende Dateien enthalten:
▪
FirstNciSample.pro (SPS-Programm)
▪
FirstNciSample.tsm (Konfigurationsdatei für den TwinCAT System Manager)
▪
ScopeFirstNciSample.scp (Konfigurationsdatei für das TwinCAT Scope)
▪
TestIt.nc (Beispiel NC-Programm)
Beispielprogramm starten
1.
TestIt.nc in das TwinCAT\CNC-Verzeichnis kopieren (ansonsten wird das Teileprogramm beim Laden nicht gefunden). Alternativ den Pfad im SPS-Programm anpassen.
2.
SPS-Projekt FirstNciSample.pro kompilieren
3.
FirstNciSample.tsm öffnen und die Konfiguration aktivieren
4.
SPS in den Run-Modus setzen
⇨
Das NC-Programm wird jetzt einmal abgearbeitet. Mit der Scopekonfiguration ScopeFirstNciSample.scp können die Positionen und Geschwindigkeiten aufgezeichnet werden.
Möchten Sie das NC-Programm ein weiteres Mal abarbeiten, so können Sie dies mit der Variable bExec im Main der SPS antriggern.
Download
von FirstNciSample


Anhang

Anhang
Anhang
Weiterführende Informationen
•
Anzeige des Teileprogramms
•
Anzeige von Technologiedaten
•
Anzeige der verbleibenden Bahnlänge
•
Parametrierung
•
Zyklisches Kanal-Interface
•
ADS Return Codes
•
Übersicht NC-Fehler
•
Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] )


Anzeige des Teileprogramms

Anhang [image] Anzeige des Teileprogramms
Anzeige des Teileprogramms
Auslesen der aktuellen NC-Zeile via ADS
Mit diesem ADS-Read-Befehl werden maximal 3 Zeilen des aktuellen Teileprogramms zurückgegeben. Dabei handelt es sich um die aktuelle Programmzeile und ggf. zwei zuvor abgearbeitete Zeilen.
Funktion | ADS-Read
Port | 500 (dez)
Index Group | 0x2300 + Kanal ID
Index Offset | 0x2000 0001
Daten | String (min. 30 byte)
Auslesen des aktuellen Programmnamens
Mit diesem ADS-Read-Befehl wird der Programmname des aktuellen NC-Hauptprogramms zurückgegeben (hier 1_1.nc).
Funktion | ADS-Read
Port | 500 (dez)
Index Group | 0x2100 + Kanal ID
Index Offset | 0x7
Daten | String, max. 100 Zeichen
Auslesen der aktuellen Datei-Information
ab TwinCAT V2.10 Build 1243
Im Gegensatz zu der Funktion 'Auslesen der aktuellen NC-Zeile' wird hier nicht die Zeile, sondern eine Zeileninformation ausgelesen. D.h. als Rückgabewert erhält man den aktuellen Programmnamen (z.B. Dateiname des Unterprogramms) und einen Dateioffset. Die Bedienoberfläche kann mit dieser Information die dazugehörige Datei öffnen und die entsprechende Zeile hervorheben. Damit ist man bei der Darstellung nicht mehr auf 3 Zeilen beschränkt, sondern kann beliebig viele Zeile zur Anzeige bringen.
Für den Fall, dass in der NCI ein Lade- bzw. Laufzeitfehler aufgetreten ist, können über diesen Weg Informationen zu der dazugehörigen Programmzeile erfragt werden.
Funktion | ADS-Read
Port | 500 (dez)
Index Group | 0x2100 + Kanal ID
Index Offset | 0x12
Daten | UINT32 | Aktuelle Anzeige von 1: SAF- 2: Interpreter 3: Fehleroffset
 | UINT32 | Dateioffset
 | char[260] | Pfad + Programmname


Anzeige von Technologiedaten

Anhang [image] Anzeige von Technologiedaten
Anzeige von Technologiedaten
ab TwinCAT V2.10 Build 1303
Die aktuell wirkenden Technologiedaten wie G-Funktionen, Nullpunktverschiebungen und Rotation können via ADS ausgelesen werden.
Aktivierung zum Auslesen der Technologiedaten
Um die oben genannten Parameter auszulesen, ist zuvor eine Aktivierung via ADS erforderlich.
Die Funktion muss spätestens vor dem Start des NC-Programms aktiviert werden. Sie bleibt solange aktiv, bis entweder ein TwinCAT Restart durchgeführt oder die Funktion explizit zurückgesetzt wird.
Funktion | ADS-Write
Port | 500 (dez)
Index Group | 0x2000 + Kanal ID
Index Offset | 0x0053
Daten | DWORD 0: disable (default) 1: enable
Auslesen der aktuell wirkenden Nullpunktverschiebung
Mit diesem Befehl wird die wirkende Nullpunktverschiebung (NPV) des aktuell in der Satzausführung (SAF) verfahrenen Segments ausgelesen. Wenn keine NPV aktiv ist (G53) so enthält die Struktur für die einzelnen Komponenten einen Null-Vektor. Diese Daten können z.B. für eine Umschaltung der Anzeige zwischen Maschinen-Koordinaten und Programmierten-Koordinaten verwendet werden.
Die Daten, die z.B. mit dem Funktionsbaustein 'ItpReadZeroShift' ausgelesen werden, können sich von diesen Werten unterscheiden, da mit dem FB die Interpreter-Daten ausgelesen werden und dieser ggf. schon neue Verschiebungen berücksichtigt.
Funktion | ADS-Read
Port | 500 (dez)
Index Group | 0x2100 + Kanal ID
Index Offset | 0x0014
Daten | { |
 | UINT32 | Satzzähler
 | UINT32 | dummy
 | LREAL[3] | Nullpunktverschiebung G54..G57
 | LREAL[3] | Nullpunktverschiebung G58
 | LREAL[3] | Nullpunktverschiebung G59
 | } |
Auslesen der aktuell wirkenden Rotation
Mit diesem Befehl wird die wirkende Rotation des aktuell in der SAF verfahrenen Segments ausgelesen.
Funktion | ADS-Read
Port | 500 (dez)
Index Group | 0x2100 + Kanal ID
Index Offset | 0x0015
Daten | { |
 | UINT32 | Satzzähler
 | UINT32 | dummy
 | LREAL[3] | Rotation in Grad von X, Y & Z
 | } |
Auslesen des aktuell wirkenden G-Codes
Der G-Code ist in Gruppen unterteilt. So bilden z.B. die modal wirkenden Geometrietypen (G01, G02...) und die Ebenenanwahl (G17..G19) eigene Gruppen. Mit dem Auslesen der G-Code Information wird der Enumerator für die Gruppen ausgelesen. Diese können dann applikationsspezifisch zur Anzeige gebracht werden.
Da mit dem Read-Befehl eine zu lesende Größe mitgegeben wird, müssen nicht alle Gruppen ausgelesen werden. Es wird immer von Gruppe 1 der mitgelieferte Speicher gefüllt. Werden z.B. 3x8 Byte als Speichergröße übertragen, so werden die Daten des Satzzählers, Gruppe 1 und 2 zurückgeliefert.
Funktion | ADS-Read
Port | 500 (dez)
Index Group | 0x2100 + Kanal ID
Index Offset | 0x0013
Daten | { |
 | UINT32 | Satzzähler
 | UINT32 | Gruppe 1: ModalGeoTypes
 | UINT32 | Gruppe 2: BlockwiseGeoTypes
 | UINT32 | Gruppe 3: ModalPlaneSelection
 | UINT32 | Gruppe 4: ModalToolCompensation
 | UINT32 | Gruppe 5: ModalToolFeedDirection
 | UINT32 | Gruppe 6: ModalZeroShift
 | UINT32 | Gruppe 7: ModalAccurateStop
 | UINT32 | Gruppe 8: BlockwiseAccurateStop
 | UINT32 | Gruppe 9: ModalDesignationAbsInc
 | UINT32 | Gruppe 10: ModalDesignationInchMetric
 | UINT32 | Gruppe 11: ModalFeedRateInCurve
 | UINT32 | Gruppe 12: ModalCenterpointCorr
 | UINT32 | Gruppe 13: ModalCircleCpAbsInc
 | UINT32 | Gruppe 14: ModalCollisionDetection
 | UINT32 | Gruppe 15: ModalRotation
 | UINT32 | Gruppe 16: ModalCalcExRot
 | UINT32 | Gruppe 17: ModalDiam
 | UINT32 | Gruppe 18: ModalFeedrateIpol
 | UINT32 | Gruppe 19: ModalMirror
 | } |
#define GCodeOffset 0x1000
#define CommonIdentOffset 0x2000 // used for non-g-code commands, like rot, cfc...
Gruppe 1: ModalGeoTypes
enum GCodeGroup_ModalGeoTypes
{
ModalGeoTypeUndefined = 0,
ModalGeoTypeG0 = 0 + GCodeOffset, // line - rapid traverse
ModalGeoTypeG01 = 1 + GCodeOffset, // straight line
ModalGeoTypeG02 = 2 + GCodeOffset, // circle clockwise
ModalGeoTypeG03 = 3 + GCodeOffset // circle anticlockwise
};
Gruppe 2: BlockwiseGeoTypes
enum GCodeGroup_BlockwiseGeoTypes
{
BlockwiseGeoTypeNone = 0,
BlockwiseGeoTypeG04 = 4 + GCodeOffset, // dwell time
BlockwiseGeoTypeG74 = 74 + GCodeOffset, // homing
BlockwiseGeoTypeCip = 1 + CommonIdentOffset // circle parametrized with 3 points
};
Gruppe 3: ModalPlaneSelection
enum GCodeGroup_ModalPlaneSelection
{
ModalPlaneSelectUndefined = 0,
ModalPlaneSelectG17 = 17 + GCodeOffset, // xy-plane
ModalPlaneSelectG18 = 18 + GCodeOffset, // zx-plane
ModalPlaneSelectG19 = 19 + GCodeOffset // yz-plane
};
Gruppe 4: ModalToolCompensation
enum GCodeGroup_ModalToolCompensation
{
ModalToolCompUndefined = 0,
ModalToolCompG40 = 40 + GCodeOffset, // tool compensation off
ModalToolCompG41 = 41 + GCodeOffset, // tool compensation left
ModalToolCompG42 = 42 + GCodeOffset // tool compensation right
};
Gruppe 5: ModalToolFeedDirection
enum GCodeGroup_ModalToolFeedDirection
{
ModalToolFeedDirUndefined = 0,
ModalToolFeedDirPos = 2 + CommonIdentOffset, // tool feed direction positive
ModalToolFeedDirNeg = 3 + CommonIdentOffset // tool feed direction negative
};
Gruppe 6: ModalZeroShift
enum GCodeGroup_ModalZeroShift
{
ModalZeroShiftUndefined = 0,
ModalZeroShiftG53 = 53 + GCodeOffset, // zero shift off
ModalZeroShiftG54G58G59 = 54 + GCodeOffset, // zero shift G54 + G58+ G59
ModalZeroShiftG55G58G59 = 55 + GCodeOffset, // zero shift G55 + G58+ G59
ModalZeroShiftG56G58G59 = 56 + GCodeOffset, // zero shift G56 + G58+ G59
ModalZeroShiftG57G58G59 = 57 + GCodeOffset // zero shift G57 + G58+ G59
};
Gruppe 7: ModalAccurateStop
enum GCodeGroup_ModalAccurateStop
{
ModalAccurateStopNone = 0,
ModalAccurateStopG60 = 60 + GCodeOffset // modal accurate stop
};
Gruppe 8: BlockwiseAccurateStop
enum GCodeGroup_BlockwiseAccurateStop
{
BlockwiseAccurateStopNone = 0,
BlockwiseAccurateStopG09 = 9 + GCodeOffset, // common accurate stop
BlockwiseAccurateStopTpm = 4 + CommonIdentOffset // target position monitoring
};
Gruppe 9: ModalDesignationAbsInc
enum GCodeGroup_ModalDesignationAbsInc
{
ModalDesignAbsIncUndefined = 0,
ModalDesignAbsIncG90 = 90 + GCodeOffset, // absolute designation
ModalDesignAbsIncG91 = 91 + GCodeOffset // incremental designation
};
Gruppe 10: ModalDesignationInchMetric
enum
GCodeGroup_ModalDesignationInchMetric
{
ModalDesignInchMetricUndefined = 0,
ModalDesignInchMetricG70 = 70 + GCodeOffset, // designation inch
ModalDesignInchMetricG71 = 71 + GCodeOffset, // designation metric
ModalDesignInchMetricG700 = 700 + GCodeOffset, // designation inch & feedrate recalculated
ModalDesignInchMetricG710 = 710 + GCodeOffset // designation metric & feedrate recalculated
};
Gruppe 11: ModalFeedRateInCurve
enum GCodeGroup_ModalFeedRateInCurve
{
ModalFeedRateInCurveUndefined = 0,
ModalFeedRateInCurveCfc = 5 + CommonIdentOffset, // constant feed contour
ModalFeedRateInCurveCfin = 6 + CommonIdentOffset, // constant feed inner contour
ModalFeedRateInCurveCftcp = 7 + CommonIdentOffset // constant feed tool center point
};
Gruppe 12: ModalCenterpointCorr
enum GCodeGroup_ModalCenterpointCorr
{
ModalCenterpointCorrUndefined = 0,
ModalCenterpointCorrOn = 8 + CommonIdentOffset, // circle centerpoint correction on
ModalCenterpointCorrOff = 9 + CommonIdentOffset // circle centerpoint correction off
};
Gruppe 13: ModalCircleCpAbsInc
enum GCodeGroup_ModalCircleCpAbsInc
{
ModalCircleCpUndefined = 0,
ModalCircleCpIncremental = 10 + CommonIdentOffset, // circle centerpoint incremental to start point
ModalCircleCpAbsolute = 11 + CommonIdentOffset // circle centerpoint absolute
};
Gruppe 14: ModalCollisionDetection
enum GCodeGroup_ModalCollisionDetection
{
ModalCollisionDetectionUndefined = 0,
ModalCollisionDetectionOn = 12 + CommonIdentOffset, //collision detection on
ModalCollisionDetectionOff = 13 + CommonIdentOffset //collision detection off
};
Gruppe 15: ModalRotation
enum GCodeGroup_ModalRotation
{
ModalRotationUndefined = 0,
ModalRotationOn = 14 + CommonIdentOffset, // rotation is turned on
ModalRotationOff = 15 + CommonIdentOffset // rotation is turned off
};
Gruppe 16: ModalCalcExRot
enum GCodeGroup_ModalCalcExRot
{
ModalCalcExRotUndefined = 0,
ModalCalcExRotOn = 16 + CommonIdentOffset, // extended calculation for rotation turned on
ModalCalcExRotOff = 17 + CommonIdentOffset // extended calculation for rotation turned off
};
Gruppe 17: ModalDiam
enum GCodeGroup_ModalDiam
{
ModalDiamUndefined = 0,
ModalDiamOn = 18 + CommonIdentOffset, // diameter programming on
ModalDiamOff = 19 + CommonIdentOffset // diameter programming off
};
Group 18: ModalFeedrateIpol
enum GCodeGroup_ModalFeedrateIpol
{
ModalFeedrateIpolUndefined = 0,
ModalFeedrateIpolConst = 20 + CommonIdentOffset, // federate interpolation constant (default)
ModalFeedrateIpolLinear = 21 + CommonIdentOffset // federate interpoaltion linear to remaining path
};
Group 19: ModalMirror
enum GCodeGroup_ModalMirror
{
// value - (32+CommonIdentOffset) shows the bitmask for mirrored axes
// that's why the sequence seems to be strange...
//
ModalMirrorUndefined = 0,
ModalMirrorOff = 32 + CommonIdentOffset,
ModalMirrorX = 33 + CommonIdentOffset,
ModalMirrorY = 34 + CommonIdentOffset,
ModalMirrorXY = 35 + CommonIdentOffset,
ModalMirrorZ = 36 + CommonIdentOffset,
ModalMirrorZX = 37 + CommonIdentOffset,
ModalMirrorYZ = 38 + CommonIdentOffset,
ModalMirrorXYZ = 39 + CommonIdentOffset
};


Anzeige der verbleibenden Bahnlänge

Anhang [image] Anzeige der verbleibenden Bahnlänge
Anzeige der verbleibenden Bahnlänge
ab TwinCAT 2.9 B945
Wenn die Berechnung der verbleibenden Bahnlänge aktiv geschaltet ist, wird diese bis zum nächsten Genauhalt bzw. bis zum letzten Geometriesegment im Speicher (Satzvorbereitung) berechnet. Ein Genauhalt wird z.B. mit G09 bzw. G60 generiert. Aber auch M-Funktionen vom Typ Handshake, Dekodierstopps und G04 erzeugen implizit ein Genauhalt.
Aktivierung:
Index Group: 0x3000 + Group ID
Index Offset: 0x0508
vergl. Index Offset Spezifikation für Gruppen-Parameter
Auslesen der verbleibenden Bahnlänge:
Das Auslesen erfolgt ebenfalls via ADS und kann auch mit dem TwinCAT Scope aufgezeichnet werden.
Index Group: 0x3100 + Group ID
Index Offset: 0x0522
Außerdem kann die verbleibende Bahnlänge durch ItpSetCyclicLrealOffsets mit dem zyklischen Kanalinterface in die SPS übertragen werden.
vergl. Index Offset Spezifikation für Gruppen-Zustand


Parametrierung

Anhang [image] Parametrierung
Parametrierung
Die Parametrierung der NCI umfasst die Standard-Dynamikparameter (Beschleunigung, Verzögerung, Ruck) und deren online Wechsel, sowie die Mindestgeschwindigkeit und die Parameter zur Reduktion der Bahngeschwindigkeit und deren online Wechsel.
Generelles Verhalten an Segmentübergängen
▪
Geschwindigkeit: Die Segmentsollgeschwindigkeit VS wechselt vom Segmentübergang von VS_in in VS_out. Am Segmentübergang wird die Geschwindigkeit immer auf den niedrigeren der beiden Werte reduziert.
▪
Beschleunigung: die aktuelle Bahnbeschleunigung wird am Segmentübergang immer auf a = 0 geführt.
▪
Ruck: der Ruckeinheit J wird in Abhängigkeit von der Geometrie am Segmentübergang gewechselt. Das kann einen merkbaren Dynamiksprung bedingen.
▪
Es gibt die Möglichkeit der Glättung von Segmentübergängen.
NCI-Gruppen-Parameter
Parameter | Bedeutung und Randbedingungen
Kurvengeschwindigkeitsreduktionsmodus | Coulomb, Cosinus oder VELOJUMP
Parametrierung | Bahngeschwindigkeit die (bis auf Spitzen mit Bewegungsumkehr) nicht unterschritten werden darf: V_min ≥ 0.0
Parametrierung | Reduktionsfaktor für C1-Übergänge: C1 ≥ 0.0
VELOJUMP: C0-Reduktionsfaktoren C0X, C0Y, C0Z | Reduktionsfaktoren für C0-Übergänge für X-, Y-, Z-Achse: C0X ≥ 0.0, C0Y ≥ 0.0, C0Z ≥ 0.0 (Achsparameter, Online-Änderung im Interpreter möglich).
DEVIATIONANGLE: -Reduktionsfaktor C0 C0 | Bahn-Reduktionsfaktor für C0-Übergänge: 1.0 ≥ C0 ≥ 0.0
DEVIATIONANGLE: Kritischer Winkel (tief) φ_l | Winkel ab dem eine Geschwindigkeitsreduktion am Segmentübergang einsetzt: 0 ≤ φ_l < φ_h ≤ π
DEVIATIONANGLE: Kritischer Winkel (hoch) φ_h | Winkel ab dem die Geschwindigkeit am Segmentübergang (v_link) auf 0.0 reduziert wird: 0 ≤ φ_l < φ_h ≤ π
Toleranzkugelradius TBR | Radius der Toleranzkugeln: 1000.0 mm ≥TBR ≥ 0.1 mm
C2-Reduktionsfaktor C2 | Reduktionsfaktor für geglättete Übergänge: C2 ≥ 0.0
Globale Software-Endlagen der Bahn | Schaltet die Überwachung der globalen Software-Endlagen für die Bahnachsen
Mindestgeschwindigkeit
Jede NCI-Gruppe hat eine Mindestbahngeschwindigkeit V_min≥ 0.0 die niemals unterschritten werden sollte. Vom Benutzer vorgegebene Ausnahmen sind: programmierter Halt am Segmentübergang, Bahnende und Overrideanforderungen die unter die Mindestgeschwindigkeit führen. Systembedingte Ausnahme ist eine Bewegungsumkehr. Bei der Reduktionsmethode DEVIATIONANGLE: gilt für den Ablenkungswinkel φ ≥ φ_h, dann wird die Mindestgeschwindigkeit nicht beachtet. V_min muss kleiner als die Bahnsollgeschwindigkeit (F-Wort) jedes Segments sein.
Die Mindestgeschwindigkeit kann jederzeit im NC-Programm auf einen neuen Wert V_min≥ 0.0 in Einheiten mm/sec gesetzt werden.
Klassifikation der Segmentübergänge
Im Allgemeinen ist der Übergang von einem Segment zum nächsten nicht beliebig glatt, so dass zur Vermeidung von dynamischen Instabilitäten die Geschwindigkeit im Übergangspunkt geeignet reduziert werden muss. Dazu werden die Übergänge geometrisch klassifiziert und in drei Schritten die effektive Übergangsgeschwindigkeit V_link festgelegt.
Segmente - als geometrische Objekte - werden hier als Kurven im Sinne der Differentialgeometrie aufgefasst, die mittels der Bogenlänge parametriert sind.
Ein Segmentübergang von einem Segment S_in zu einem Segment S_out heißt vom geometrischen Typ Ck, wobei k eine natürliche Zahl (inklusive 0) ist, wenn jedes Segment k mal stetig nach der Bogenlänge differenzierbar ist und die k-ten Ableitungen am Übergangspunkt übereinstimmen.
C0-Übergänge haben am Übergangspunkt einen Knick.
C1-Übergänge sehen glatt aus, sind aber dynamisch nicht glatt. Ein Beispiel ist der Übergang Gerade-Halbkreis im Stadion: am Übergangspunkt gibt es einen Sprung in der Beschleunigung.
C2-Übergänge (und natürlich Ck-Übergänge mit k > 2) sind dynamisch glatt (ruckbegrenzt).
Reduktionsmethode für C2-Übergänge
Wie an allen Übergängen wird an C2-Übergängen V_link gleich dem Minimum der beiden Segmentsollgeschwindigkeiten gesetzt: V_link = min(V_in,V_out). Weiter wird nicht reduziert.
Reduktionsmethode für C1-Übergänge
Zuerst wirdV_link gleich dem Minimum der beiden Segmentsollgeschwindigkeiten gesetzt: V_link = min(V_in,V_out). In Abhängigkeit von den Geometrietypen G_in und G_out auf den zu verbindenden Segmenten und den Ebenenanwahlen auf G_in und G_out wird der geometrisch induzierte absolute Beschleunigungssprung AccJump im Segmentübergang unter der Geschwindigkeit V_link berechnet. Ist dieser größer als C1 mal der für die Geometrien und Ebenen zulässigen Bahn-Beschleunigung /(absolute)Verzögerung AccPathReduced, dann wird die Geschwindigkeit V_link so reduziert, dass der sich ergebende Beschleunigungssprung gleich AccPathReduced ist. Ist dieser Wert kleiner als V_min, dann hat V_min Priorität.
Hinweis Bei Wechsel der Dynamikparameter ändert sich automatisch die für die Geometrien und Ebenen zulässigen Bahn-Beschleunigung und damit das das Verhalten der Reduktion.
Interface: System Manager und Interpreter
Reduktionsmodi für C0-Übergänge
Es gibt für C0-Übergänge mehrere Reduktionsmethoden. Die Reduktionsmethode VELOJUMP reduziert die Geschwindigkeit nach erlaubten Geschwindigkeitssprüngen pro Achse. Die Reduktionsmethode DEVIATIONANGLE reduziert die Geschwindigkeit in Abhängigkeit vom Ablenkungswinkel φ (Winkel zwischen der normierten End-Tangente T_in des einlaufenden Segments S_in und der normierten Anfangs-Tangente T_out des auslaufenden Segments S_out). Die Cosinus Reduktionsmethode ist ein rein geometrisches Verfahren (siehe Kurvengeschwindigkeitsreduktionsmethode).
Für mechanisch unabhängige Achsen empfiehlt sich die Methode VELOJUMP, während für mechanisch gekoppelte Achsen (z.B. ist die Y-Achse auf der X-Achse befestigt) in der Regel die Methode DEVIATIONANGLE empfehlenswert ist.
Reduktionsmethode für C0-Übergänge: VELOJUMP
SeiV_link = min(V_in,V_out) und für jede Achse V_jump[i] = C0[i] * min(A+[i],-A-[i]) * T der erlaubte absolute Geschwindigkeitssprung der Achse [i], wobei C0[i] der Reduktionsfaktor und A+[i], A-[i] dieBeschleunigungs-/Verzögerungsbegrenzungen der Achse [i], sowie T die Zykluszeit ist. Die Reduktionsmethode VELOJUMP sorgt dafür, dass die Bahngeschwindigkeit am Segmentübergang V_link soweit reduziert wird, dass der absolute Sprung in der Achssollgeschwindigkeit der Achse [i] höchstens V_jump[i] ist. Allerdings hat V_min Priorität: ist V_link kleiner als V_min, dann wird V_link = V_min gesetzt. Bei Bewegungsumkehr ohne programmierten Halt springt die Achsgeschwindigkeit.
Hinweis Bei Wechsel der Dynamikparameter werden die maximal erlaubten Achsgeschwindigkeitssprünge automatisch mitgewechselt.
Reduktionsmethode für C0-Übergänge: DEVIATIONANGLE
Hinweis Bei Wechsel der Dynamikparameter werden die Reduktionsfaktoren nicht automatisch mitgewechselt.
Wechsel der Parameter für C0-Übergänge: DEVIATIONANGLE
Parameter
Parameter | Bedeutung und Randbedingungen
DEVIATIONANGLE: -Reduktionsfaktor C0 C0 | Bahn-Reduktionsfaktor für C0-Übergänge: 1.0 ≥ C0 ≥ 0.0
DEVIATIONANGLE: Kritischer Winkel (tief) φ_l | Winkel ab dem die Reduktion einsetzt: 0 ≤ φ_l < φ_h ≤ π
DEVIATIONANGLE: Kritischer Winkel (hoch) φ_h | Winkel ab dem auf v_link = 0.0 reduziert wird: 0 ≤ φ_l < φ_h ≤ π
Interface: Interpreter
Reduktionsmethode Cosinus
Siehe hier.
Toleranzkugelradius und C2-Reduktionsfaktor
Diese Parameter werden unter dem Thema Glättung von Segmentübergängen beschrieben.
Globale Software-Endlagen der Bahn
ab TwinCAT V2.9 B946
Mit der Funktion 'Globale Software-Endlagenüberwachung der Bahn’ gibt es zwei verschiedene Arten der Endlagenüberwachung.
Endlagenüberwachung der SAF-Task
Diese Art der Endlagenüberwachung ist immer dann aktiv, wenn für die Achse die Endlagen aktiv geschaltet sind (Achsparameter). Die Überprüfung erfolgt Komponentenweise aus der SAF-Task. D.h. tritt eine Verletzung der Endlage auf, so wird die Bahngeschwindigkeit sofort auf 0 gesetzt und die gesamte Interpolationsgruppe hat einen Fehler.
Die Aktivierung dieser Überwachung erfolgt über die Achsparameter und nicht über den hier beschriebenen Gruppenparameter.
Software-Endlagen der Bahn
Um zu verhindern, dass bei einer Verletzung der Software-Endlagen die Bahngeschwindigkeit sofort auf 0 gesetzt wird, muss die Funktion 'Globale Software-Endlagenüberwachung der Bahn' aktiviert werden. Ist diese aktiv wird ausschließlich bis zu dem NC-Satz verfahren, in dem die Endlagen verletzt werden. Die Geschwindigkeit wird über eine Rampe abgebremst.
▪
Damit eine Überprüfung nur für die gewünschten Bahnachsen durchgeführt wird, müssen die Software-Endlagen der Achskomponenten angewählt sein (Achsparameter)
▪
Die Überprüfung wird für Standardgeometriesegmente durchgeführt. Dazu zählen
Gerade
Kreis
Helix
Hilfsachsen werden ab TwinCAT V2.10 B1258 überwacht
▪
Verschleifungen mit Splines werden nicht überwacht. Die Splines sind sollwertseitig immer innerhalb der Toleranzkugel. Ansonsten greift noch die Endlagenüberwachung der SAF-Task.
▪
Da eine sinnvolle und allgemeingültige Überprüfung der Endlagen erst zur Laufzeit des NC-Programms durchgeführt werden kann (vor dem Lookahead), ist es möglich, dass die Bahnachsen bis ausschließlich zu dem NC-Satz verfahren, wo die Endlagen verletzt werden.
▪
Befindet man sich aus irgendeinem Grund außerhalb der Software-Endlagen, so kann mit einer Geraden wieder in den gültigen Bereich hineingefahren werden.
Parametrierung:
System Manager: Gruppen Parameter
Weiterführende Informationen
•
Bahnoverride (Interpreter-Overridetypen)
Sehen Sie dazu auch
•
Glättung von Segmentübergängen


Bahnoverride (Interpreter-Overridetypen)

Anhang [image] Parametrierung [image] Bahnoverride (Interpreter-Overridetypen)
Bahnoverride (Interpreter-Overridetypen)
Beim Bahnoverride handelt es sich um einen Geschwindigkeitsoverride. D.h. eine Overrideänderung bewirkt eine neue Geschwindigkeit, lässt aber dabei die Rampen (Beschleunigung, Ruck) unangetastet. Die verwendeten Overridetypen unterscheiden sich lediglich in der Bezugsgeschwindigkeit.
Die Parametrierung erfolgt im Interpolationskanal unter den Gruppenparametern.
Auswahl 'Reduziert' - bezogen auf die reduzierte Geschwindigkeit (default)
Aufgrund der gegebenen Dynamik (Bremsweg, Beschleunigung etc.) kann nicht in jedem Segment die programmierte Geschwindigkeit (blaue Linie) erreicht werden. Deshalb wird für jedes Geometriesegment eine evtl. reduzierte Geschwindigkeit (rote Linie) errechnet. Im Standardfall bezieht der Override sich auf diese Segmentgeschwindigkeit.
Dieser Overridetyp hat den Vorteil, dass bei kleineren Overridewerten die Maschine näherungsweise linear langsamer fährt und ist deshalb die richtige Einstellung für die meisten Anwendungen.
v_res = v_max * Override
Auswahl 'Original' - bezogen auf die programmierte Bahngeschwindigkeit
Der Overridewert wird auf die vom Anwender programmierte Geschwindigkeit bezogen. Die maximale Segmentgeschwindigkeit hat nur eine begrenzende Wirkung.
Auswahl 'Reduziert [0 ... >100%]' - bezogen auf intern reduzierte Geschwindigkeit mit der Option, einen Wert größer 100% vorzugeben
ab TwinCAT V2.10 Build 1329
Der Overridetyp verhält sich wie 'Reduziert'. Mit diesem Overridetyp ist es möglich, die Bahn schneller abzufahren, als diese im G-Code programmiert wurde. Es gibt hier keine Limitierung auf z.B. 120%. Die maximal mögliche Bahngeschwindigkeit wird durch die maximalen Geschwindigkeiten der Achskomponenten (G0-Geschwindigkeit) und deren Dynamik begrenzt.
Wenn Sie eine Begrenzung auf z.B. 120% wünschen, können Sie dies im PLC-Projekt entsprechend limitieren.


Zyklisches Kanal-Interface

Anhang [image] Zyklisches Kanal-Interface
Zyklisches Kanal-Interface
Das Kanal-Interface ist für den zyklischen Datenaustausch zwischen der PLC und der NCI zuständig.
Hinweis Die Variablennamen unterscheiden sich teilweise bei den NC Ein- und Ausgängen von den SPS Ein- und Ausgängen. Dies ist aber nicht weiter von Bedeutung. Diese Beschreibung bezieht sich auf die Namensgebung in der SPS.
Von der NCI zur SPS (150 Bytes)
TYPE NciChannelToPlc :
STRUCT
nJobNo : DWORD;
nFastMFuncMask : ARRAY[1..5] OF DWORD; (* Mask to evaluate fast M-unctions *)
nHskMFuncNo : WORD; (* evaluate M-function with handshake *)
nHskMFuncReq : WORD;
nHFuncValue : DINT;
nSpindleRpm : WORD;
nTool : WORD;
nReserved1 : ARRAY[37..132] OF BYTE;
nLoadedProg : DWORD; (* loaded program number if exist *)
nItpMode : WORD; (* Interpreter mode *)
nItpState : WORD; (* Interpreter status *)
nItpErrCode : WORD; (* Interpreter-Channel Error Code *)
nReserved2 : ARRAY[143..150] OF BYTE;
END_STRUCT
END_TYPE
Variablenname | Datentyp | Beschreibung
nJobNo | DWORD | Job Nummer
nFastMFuncMask | ARRAY OF DWORD | Bitmaske zur Auswertung der schnellen M-Funktionen
nHskMFuncNo | WORD | Nummer der anliegenden synchronen M-Funktion (M-Funktion mit Handshake)
nHskMFuncReq | WORD | Flag, mit dem angezeigt wird, dass eine synchrone M-Funktion anliegt 0: es liegt keine synchrone M-Funktion an 1: es liegt eine synchrone M-Funktion an
nHFuncValue | DINT | Wert der Hilfsfunktion
nSpindleRpm | WORD | Spindeldrehzahl
nTool | WORD | Werkzeugnummer
nLoadedProg | DWORD | Name des z.Zt. abgearbeiteten NC-Programms. Falls der Name kein DWORD ist, so ist dieser Wert 0.
nItpOpMode | WORD | Bitmaske, die den Interpreter-Bearbeitungsmodus anzeigt.
nItpState | WORD | Status des Interpreters
nItpErrorCode | WORD | Error Code des Interpreterkanals
Die obige Struktur enthält einige reservierte Bereiche. In neueren TwinCAT Versionen werden diese Bereiche teilweise verwendet. Auf der SPS Seite wurde die Struktur nicht umbenannt, so dass relevante Daten mit der SPS Funktion ausgelesen werden können.
NCI zur SPS (Struktur aus der NC Sicht)
Variablenname | Datentyp | Beschreibung
mJobNr |  | s. Tabelle oben nJobNo
mDWORD |  | s. Tabelle oben nFastMFuncMask
sHandshake.nFunc |  | s. Tabelle oben nHskMFuncNo
sHandshake.nRequested |  | s. Tabelle oben nHskMFuncReq
sHandshake.nHFuncValue |  | s. Tabelle oben nHFuncValue
sHandshake.nSpindelRPM |  | s. Tabelle oben nSpindleRpm
sHandshake.nTool |  | s. Tabelle oben nTool
nChnState | DWORD |
nChnState.bIsEStopRequested | Bit 8 (zero based) | Zeigt an, dass ein ItpEStop aufgerufen wurde - ohne eine Prüfung, ob sich die Achsen bereits im Stillstand befinden.
nChnState.bIsFeedFromBackupList | Bit 10 (zero based) | Im Falle des Rückwärtsfahrens werden die aktuellen Einträge aus der Interpreter Backup Liste versendet
nChnState.bIsMovingBackward | Bit 11 (zero based) | Gibt an, dass die derzeitige Bewegung eine Rückwärtsbewegung ist (ab TC 2.11 Build 1550)
nParams | Array of DWORD | Daten des frei konfigurierbaren Kanalinterfaces (s. ItpSetCyclicUDintOffsets)
fParams | Array of LREAL | Daten des frei konfigurierbaren Kanalinterfaces (s. ItpSetCyclicLrealOffsets)
mProgNr |  | s. Tabelle oben nLoadedProg
mItpOpMode |  | s. Tabelle oben nItpOpMode
mItpOpState |  | s. Tabelle oben nItpState
mErrorCode |  | s. Tabelle oben nItpErrorCode
nChnId | WORD | Kanal ID
nGrpId | WORD | Gruppen ID
nItfVersion | WORD | Version dieses zyklischen Kanal Interfaces
Von der SPS zur NCI (150 Bytes)
TYPE NciChannelFromPlc :
STRUCT
nSkipLine : WORD; (* Mask to skip lines *)
nItpMode : WORD;
nMFuncGranted : WORD; (* granted signal of the M-function *)
nReserved1 : ARRAY[7..14] OF BYTE;
nChaAxesOvr : DWORD; (* Channel override in percent * 100 *)
nChaSpindleOvr : DWORD;
nReserved2 : ARRAY[23..150] OF BYTE;
END_STRUCT
END_TYPE
Variablenname | Datentyp | Beschreibung
nSkipLine | WORD | Bitmaske mit der aus der PLC die Satzunterdrückung der NCI parametriert wird.
nItpMode | WORD | Bitmaske mit der der Interpreter-Bearbeitungsmodus geändert werden kann. Dies wird z.B. dann benötigt, wenn der Interpreter im Einzelsatz arbeiten soll.
nMFuncGranted | WORD | Flag, mit dem eine M-Funktion vom Typ 'Handshake' bestätigt wird 0: nicht quittiert 1: Quittierung
nChaAxesOvr | DWORD | Kanal-Override für die Achsen von 0...1000000 (entspricht 0 - 100%)
nChaSpindleOvr | DWORD | Kanal-Override für die Spindel von 0...1000000 (entspricht 0 - 100%)


ADS Return Codes

Anhang [image] ADS Return Codes
ADS Return Codes
Fehlercode: 0x000..., 0x500..., 0x700..., 0x1000......
Globale Fehlercodes
Hex | Dec | Beschreibung
0x0 | 0 | Kein Fehler
0x1 | 1 | Interner Fehler
0x2 | 2 | Keine Echtzeit
0x3 | 3 | Zuweisung gesperrt-Speicherfehler
0x4 | 4 | Postfach voll
0x5 | 5 | Falsches HMSG
0x6 | 6 | Ziel-Port nicht gefunden
0x7 | 7 | Zielrechner nicht gefunden
0x8 | 8 | Unbekannte Befehl-ID
0x9 | 9 | Ungültige Task-ID
0xA | 10 | Kein IO
0xB | 11 | Unbekannter ADS-Befehl
0xC | 12 | Win32 Fehler
0xD | 13 | Port nicht angeschlossen
0xE | 14 | Ungültige ADS-Länge
0xF | 15 | Ungültige AMS Net ID
0x10 | 16 | niedrige Installationsebene
0x11 | 17 | Kein Debugging verfügbar
0x12 | 18 | Port deaktiviert
0x13 | 19 | Port bereits verbunden
0x14 | 20 | ADS Sync Win32 Fehler
0x15 | 21 | ADS Sync Timeout
0x16 | 22 | ADS Sync AMS Fehler
0x17 | 23 | Keine Index-Map für ADS Sync vorhanden
0x18 | 24 | Ungültiger ADS-Port
0x19 | 25 | Kein Speicher
0x1A | 26 | TCP Sendefehler
0x1B | 27 | Host nicht erreichbar
0x1C | 28 | Ungültiges AMS Fragment
Router Fehlercodes
Hex | Dec | Name | Beschreibung
0x500 | 1280 | ROUTERERR_NOLOCKEDMEMORY | Lockierter Speicher kann nicht zugewiesen werden.
0x501 | 1281 | ROUTERERR_RESIZEMEMORY | Die Größe des Routerspeichers konnte nicht geändert werden.
0x502 | 1282 | ROUTERERR_MAILBOXFULL | Das Postfach hat die maximale Anzahl der möglichen Meldungen erreicht. Die aktuell gesendete Nachricht wurde abgewiesen.
0x503 | 1283 | ROUTERERR_DEBUGBOXFULL | Das Postfach hat die maximale Anzahl der möglichen Meldungen erreicht. Die gesendete Nachricht wird nicht im ADS Monitor angezeigt.
0x504 | 1284 | ROUTERERR_UNKNOWNPORTTYPE | Der Porttyp ist unbekannt.
0x505 | 1285 | ROUTERERR_NOTINITIALIZED | Router ist nicht initialisiert.
0x506 | 1286 | ROUTERERR_PORTALREADYINUSE | Die gewünschte Portnummer ist bereits vergeben.
0x507 | 1287 | ROUTERERR_NOTREGISTERED | Der Port ist nicht registriert.
0x508 | 1288 | ROUTERERR_NOMOREQUEUES | Die maximale Anzahl von Ports ist erreicht.
0x509 | 1289 | ROUTERERR_INVALIDPORT | Der Port ist ungültig.
0x50A | 1290 | ROUTERERR_NOTACTIVATED | Der Router ist nicht aktiv.
Allgemeine ADS Fehlercodes
Hex | Dec | Name | Beschreibung
0x700 | 1792 | ADSERR_DEVICE_ERROR | Gerätefehler
0x701 | 1793 | ADSERR_DEVICE_SRVNOTSUPP | Service wird vom Server nicht unterstützt
0x702 | 1794 | ADSERR_DEVICE_INVALIDGRP | Ungültige Index-Gruppe
0x703 | 1795 | ADSERR_DEVICE_INVALIDOFFSET | Ungültiger Index-Offset
0x704 | 1796 | ADSERR_DEVICE_INVALIDACCESS | Lesen und schreiben nicht gestattet.
0x705 | 1797 | ADSERR_DEVICE_INVALIDSIZE | Parametergröße nicht korrekt
0x706 | 1798 | ADSERR_DEVICE_INVALIDDATA | Ungültige Parameter-Werte
0x707 | 1799 | ADSERR_DEVICE_NOTREADY | Gerät ist nicht betriebsbereit
0x708 | 1800 | ADSERR_DEVICE_BUSY | Gerät ist beschäftigt
0x709 | 1801 | ADSERR_DEVICE_INVALIDCONTEXT | Ungültiger Kontext (muss in Windows sein)
0x70A | 1802 | ADSERR_DEVICE_NOMEMORY | Nicht genügend Speicher
0x70B | 1803 | ADSERR_DEVICE_INVALIDPARM | Ungültige Parameter-Werte
0x70C | 1804 | ADSERR_DEVICE_NOTFOUND | Nicht gefunden (Dateien,...)
0x70D | 1805 | ADSERR_DEVICE_SYNTAX | Syntax-Fehler in Datei oder Befehl
0x70E | 1806 | ADSERR_DEVICE_INCOMPATIBLE | Objekte stimmen nicht überein
0x70F | 1807 | ADSERR_DEVICE_EXISTS | Objekt ist bereits vorhanden
0x710 | 1808 | ADSERR_DEVICE_SYMBOLNOTFOUND | Symbol nicht gefunden
0x711 | 1809 | ADSERR_DEVICE_SYMBOLVERSIONINVALID | Symbol-Version ungültig
0x712 | 1810 | ADSERR_DEVICE_INVALIDSTATE | Gerät im ungültigen Zustand
0x713 | 1811 | ADSERR_DEVICE_TRANSMODENOTSUPP | AdsTransMode nicht unterstützt
0x714 | 1812 | ADSERR_DEVICE_NOTIFYHNDINVALID | Notification Handle ist ungültig
0x715 | 1813 | ADSERR_DEVICE_CLIENTUNKNOWN | Notification-Client nicht registriert
0x716 | 1814 | ADSERR_DEVICE_NOMOREHDLS | Keine weitere Notification Handle
0x717 | 1815 | ADSERR_DEVICE_INVALIDWATCHSIZE | Größe der Notification zu groß
0x718 | 1816 | ADSERR_DEVICE_NOTINIT | Gerät nicht initialisiert
0x719 | 1817 | ADSERR_DEVICE_TIMEOUT | Gerät hat einen Timeout
0x71A | 1818 | ADSERR_DEVICE_NOINTERFACE | Interface Abfrage fehlgeschlagen
0x71B | 1819 | ADSERR_DEVICE_INVALIDINTERFACE | Falsches Interface angefordert
0x71C | 1820 | ADSERR_DEVICE_INVALIDCLSID | Class-ID ist ungültig
0x71D | 1821 | ADSERR_DEVICE_INVALIDOBJID | Object-ID ist ungültig
0x71E | 1822 | ADSERR_DEVICE_PENDING | Anforderung steht aus
0x71F | 1823 | ADSERR_DEVICE_ABORTED | Anforderung wird abgebrochen
0x720 | 1824 | ADSERR_DEVICE_WARNING | Signal-Warnung
0x721 | 1825 | ADSERR_DEVICE_INVALIDARRAYIDX | Ungültiger Array-Index
0x722 | 1826 | ADSERR_DEVICE_SYMBOLNOTACTIVE | Symbol nicht aktiv
0x723 | 1827 | ADSERR_DEVICE_ACCESSDENIED | Zugriff verweigert
0x724 | 1828 | ADSERR_DEVICE_LICENSENOTFOUND | Fehlende Lizenz
0x725 | 1829 | ADSERR_DEVICE_LICENSEEXPIRED | Lizenz abgelaufen
0x726 | 1830 | ADSERR_DEVICE_LICENSEEXCEEDED | Lizenz überschritten
0x727 | 1831 | ADSERR_DEVICE_LICENSEINVALID | Lizenz ungültig
0x728 | 1832 | ADSERR_DEVICE_LICENSESYSTEMID | Lizenz der System-ID ungültig
0x729 | 1833 | ADSERR_DEVICE_LICENSENOTIMELIMIT | Lizenz nicht zeitlich begrenzt
0x72A | 1834 | ADSERR_DEVICE_LICENSEFUTUREISSUE | Lizenzproblem: Zeitpunkt in der Zukunft
0x72B | 1835 | ADSERR_DEVICE_LICENSETIMETOLONG | Lizenz-Zeitraum zu lang
0x72c | 1836 | ADSERR_DEVICE_EXCEPTION | Exception beim Systemstart
0x72D | 1837 | ADSERR_DEVICE_LICENSEDUPLICATED | Lizenz-Datei zweimal gelesen
0x72E | 1838 | ADSERR_DEVICE_SIGNATUREINVALID | Ungültige Signatur
0x72F | 1839 | ADSERR_DEVICE_CERTIFICATEINVALID | öffentliches Zertifikat
0x740 | 1856 | ADSERR_CLIENT_ERROR | Clientfehler
0x741 | 1857 | ADSERR_CLIENT_INVALIDPARM | Dienst enthält einen ungültigen Parameter
0x742 | 1858 | ADSERR_CLIENT_LISTEMPTY | Polling-Liste ist leer
0x743 | 1859 | ADSERR_CLIENT_VARUSED | Var-Verbindung bereits im Einsatz
0x744 | 1860 | ADSERR_CLIENT_DUPLINVOKEID | Die aufgerufene ID ist bereits in Benutzung
0x745 | 1861 | ADSERR_CLIENT_SYNCTIMEOUT | Timeout ist aufgetreten
0x746 | 1862 | ADSERR_CLIENT_W32ERROR | Fehler im Win32 Subsystem
0x747 | 1863 | ADSERR_CLIENT_TIMEOUTINVALID | Ungültiger Client Timeout-Wert
0x748 | 1864 | ADSERR_CLIENT_PORTNOTOPEN | ADS-Port nicht geöffnet
0x750 | 1872 | ADSERR_CLIENT_NOAMSADDR | Interner Fehler in Ads-Sync
0x751 | 1873 | ADSERR_CLIENT_SYNCINTERNAL | Hash-Tabelle-Überlauf
0x752 | 1874 | ADSERR_CLIENT_ADDHASH | Schlüssel nicht gefunden im Hash
0x753 | 1875 | ADSERR_CLIENT_REMOVEHASH | Keine weitere Symbole im Cache
0x754 | 1876 | ADSERR_CLIENT_NOMORESYM | Ungültige Antwort empfangen
0x755 | 1877 | ADSERR_CLIENT_SYNCRESINVALID | Sync Port ist gesperrt
RTime Fehlercodes
Hex | Dec | Name | Beschreibung
0x1000 | 4096 | RTERR_INTERNAL | Interner Fehler im TwinCAT Echtzeit-System.
0x1001 | 4097 | RTERR_BADTIMERPERIODS | Timer-Wert ist nicht gültig.
0x1002 | 4098 | RTERR_INVALIDTASKPTR | Task-Pointer hat den ungültigen Wert 0 (null).
0x1003 | 4099 | RTERR_INVALIDSTACKPTR | Task Stackpointer hat den ungültigen Wert 0.
0x1004 | 4100 | RTERR_PRIOEXISTS | Die Request Task Priority ist bereits vergeben.
0x1005 | 4101 | RTERR_NOMORETCB | Kein freies TCB (Task Control Block) zur Verfügung. Maximale Anzahl von TCBs beträgt 64.
0x1006 | 4102 | RTERR_NOMORESEMAS | Keine freien Semaphoren zur Verfügung. Maximale Anzahl der Semaphoren beträgt 64.
0x1007 | 4103 | RTERR_NOMOREQUEUES | Kein freier Platz in der Warteschlange zur Verfügung. Maximale Anzahl der Plätze in der Warteschlange beträgt 64.
0x100D | 4109 | RTERR_EXTIRQALREADYDEF | Ein externer Synchronisations-Interrupt wird bereits angewandt.
0x100E | 4110 | RTERR_EXTIRQNOTDEF | Kein externer Synchronisations-Interrupt angewandt.
0x100F | 4111 | RTERR_EXTIRQINSTALLFAILED | Anwendung des externen Synchronisierungs- Interrupts ist fehlgeschlagen
0x1010 | 4112 | RTERR_IRQLNOTLESSOREQUAL | Aufruf einer Service-Funktion im falschen Kontext
0x1017 | 4119 | RTERR_VMXNOTSUPPORTED | Intel VT-x Erweiterung wird nicht unterstützt.
0x1018 | 4120 | RTERR_VMXDISABLED | Intel VT-x Erweiterung ist nicht aktiviert im BIOS.
0x1019 | 4121 | RTERR_VMXCONTROLSMISSING | Fehlende Funktion in Intel VT-x Erweiterung.
0x101A | 4122 | RTERR_VMXENABLEFAILS | Aktivieren von Intel VT-x schlägt fehl.
TCP Winsock-Fehlercodes
Hex | Dec | Name | Beschreibung
0x274c | 10060 | WSAETIMEDOUT | Verbindungs Timeout aufgetreten. Fehler beim Herstellen der Verbindung, da die Gegenstelle nach einer bestimmten Zeitspanne nicht ordnungsgemäß reagiert hat, oder die hergestellte Verbindung konnte nicht aufrecht erhalten werden, da der verbundene Host nicht reagiert hat.
0x274d | 10061 | WSAECONNREFUSED | Verbindung abgelehnt. Es konnte keine Verbindung hergestellt werden, da der Zielcomputer dies explizit abgelehnt hat. Dieser Fehler resultiert normalerweise aus dem Versuch, eine Verbindung mit einem Dienst herzustellen, der auf dem fremden Host inaktiv ist—das heißt, einem Dienst, für den keine Serveranwendung ausgeführt wird.
0x2751 | 10065 | WSAEHOSTUNREACH | Keine Route zum Host Ein Socketvorgang bezog sich auf einen nicht verfügbaren Host.
 |  |  | Weitere Winsock-Fehlercodes: Win32-Fehlercodes


Übersicht NC-Fehler

Anhang [image] Übersicht NC-Fehler
Übersicht NC-Fehler
Fehlercode ( Hex ) | Beschreibung
0x4000 – 0x4FFF: NC Fehlercodebereich
0x40nn | Allgemeine Fehler
0x41nn | Kanalfehler
0x42nn | Gruppenfehler
0x43nn | Achsfehler
0x44nn | Geberfehler
0x45nn | Reglerfehler
0x46nn | Antriebfehler
0x4Ann | Tabellenfehler
0x4Bnn | NC-SPS-Fehler
0x4Cnn | Kinematik Transformation
0x8000 – 0x8FFF: Erweiterter NC Fehlercodebereich
0x81nn – 0x811F | Bode Plot (Diagnose)
0x8120 – 0x8FFF | Weitere Fehler
Weiterführende Informationen
•
Allgemeine Fehler
•
Kanalfehler
•
Gruppenfehler
•
Achsfehler
•
Geberfehler
•
Reglerfehler
•
Antriebfehler
•
Tabellenfehler
•
NC-SPS-Fehler
•
Kinematische Transformation
•
Bode Return Codes
•
Weitere Fehler


Allgemeine Fehler

Anhang [image] Übersicht NC-Fehler [image] Allgemeine Fehler
Allgemeine Fehler
Fehler(Hex) | Fehler(Dez) | Fehlertyp | Beschreibung
4000 | 16384 | Intern | „Interner Fehler“ Interner Systemfehler der NC auf Ring 0, nicht näher spezifizierbar.
4001 | 16385 | Speicher | „Speicher-Fehler“ Die Ring-0-Speicherverwaltung stellt benötigten Speicher nicht bereit. In der Regel ist dies die Folge anderer Fehler und die Steuerung wird (spätestens jetzt) den regulären Betrieb einstellen.
4002 | 16386 | Intern | „Nc-Retain-Daten-Fehler (Daten-Persistenz)“ Beim Laden der Nc Retain Daten ist ein Fehler aufgetreten, so dass die betroffenen Achsen nicht mehr referenziert sind (Status-Bit „Homed" ist FALSE). Dieser Fehler kann folgende Gründe haben: - es wurden keine Nc Retain Daten gefunden - es wurden nur alte Nc Retain Daten gefunden (alter Backup Datensatz) - die Nc Retain Daten sind korrupt oder inkonsistent
4010 | 16400 | Parameter | „Kanal-Identifier unzulässig“ Es ist entweder ein unzulässiger Wert (nicht 1...255) verwendet worden oder es ist ein Kanal genannt, der im System nicht existiert.
4011 | 16401 | Parameter | „Gruppen-Identifier unzulässig“ Es ist entweder ein unzulässiger Wert (nicht 1...255) verwendet worden oder es ist eine Gruppe genannt, der im System nicht existiert.
4012 | 16402 | Parameter | „Achsen-Identifier unzulässig“ Es ist entweder ein unzulässiger Wert (nicht 1...255) verwendet worden oder es ist eine Achse genannt, der im System nicht existiert.
4013 | 16403 | Parameter | „Geber-Identifier unzulässig“ Es ist entweder ein unzulässiger Wert (nicht 1...255) verwendet worden oder es ist ein Geber genannt, der im System nicht existiert.
4014 | 16404 | Parameter | „Regler-Identifier unzulässig“ Es ist entweder ein unzulässiger Wert (nicht 1...255) verwendet worden oder es ist ein Regler genannt, der im System nicht existiert.
4015 | 16405 | Parameter | „Antriebs-Identifier unzulässig“ Es ist entweder ein unzulässiger Wert (nicht 1...255) verwendet worden oder es ist ein Antrieb genannt, der im System nicht existiert.
4016 | 16406 | Parameter | „Tabellen-Identifier unzulässig“ Es ist entweder ein unzulässiger Wert (nicht 1...255) verwendet worden oder es ist eine Tabelle genannt, der im System nicht existiert.
4020 | 16416 | Intern | „Fehlendes Prozessabbild“ Kein SPS-Achsen-Interface beim Erzeugen einer Achse
4021 | 16417 | Intern | „Fehlendes Prozessabbild“ Kein Achsen- SPS-Interface beim Erzeugen einer Achse
4022 | 16418 | Intern | „Fehlendes Prozessabbild“ Kein Geber-IO-Interface beim Erzeugen einer Achse
4023 | 16419 | Intern | „Fehlendes Prozessabbild“ Kein IO-Geber-Interface beim Erzeugen einer Achse
4024 | 16420 | Intern | „Fehlendes Prozessabbild“ Kein Antrieb-IO-Interface beim Erzeugen einer Achse
4025 | 16421 | Intern | „Fehlendes Prozessabbild“ Kein IO-Antrieb-Interface beim Erzeugen einer Achse
4030 | 16432 | Intern | „Koppeltyp unzulässig“ Unzulässiger Master/Slave-Koppeltyp
4031 | 16433 | Intern | „Achstyp unzulässig“ Unzulässige Typangabe bei der Achserzeugung
4040 | 16448 | Intern | „Achse ist inkompatibel“ Achse ist für den vorgesehenen Zweck nicht geeignet. Zum Beispiel kann eine Eil/Schleich-Achse nicht die Rolle des Slaves in einer Achs-Kopplung übernehmen.
4050 | 16464 | Intern | „Kanal nicht betriebsbereit“ Der Kanal ist unvollständig und somit nicht betriebsbereit. In der Regel ist dies eine Folge von Problemen beim System-Start.
4051 | 16465 | Intern | „Gruppe nicht betriebsbereit“ Die Gruppe ist unvollständig und somit nicht betriebsbereit. In der Regel ist dies eine Folge von Problemen beim System-Start.
4052 | 16466 | Intern | „Achse nicht betriebsbereit“ Die Achse ist unvollständig und somit nicht betriebsbereit. In der Regel ist dies eine Folge von Problemen beim System-Start.
4060 | 16480 | Intern | „Kanal existiert“ Der zu erzeugende Kanal existiert bereits.
4061 | 16481 | Intern | „Gruppe existiert“ Die zu erzeugende Gruppe existiert bereits.
4062 | 16482 | Intern | „Achse existiert“ Die zu erzeugende Achse existiert bereits.
4063 | 16483 | Intern | „Tabelle existiert“ Die zu erzeugende Tabelle existiert bereits bzw. es wird intern versucht eine schon verwendete Tabelle-ID zu benutzen (z.B. für die Universelle Fliegende Säge).
4070 | 16496 | Intern | „Achsen-Index unzulässig“ Der für eine Achse angegebene Platz innerhalb des Kanals ist unzulässig.
4071 | 16497 | Intern | „Achsen-Index unzulässig“ Der für eine Achse angegebene Platz innerhalb der Gruppe ist unzulässig.


Kanalfehler

Anhang [image] Übersicht NC-Fehler [image] Kanalfehler
Kanalfehler
Fehler(Hex) | Fehler(Dez) | Fehlertyp | Beschreibung
4101 | 16641 | Parameter | „Gruppen-Index unzulässig“ Der für eine Gruppe angegebene Platz innerhalb des Kanals ist unzulässig.
4102 | 16642 | Adresse | „Null-Zeiger“ Der Zeiger auf die Gruppe ist ungültig. In der Regel ist dies eine Folge eines Fehlers beim System-Start.
4103 | 16643 | Intern | „Fehlendes Prozess-Abbild“ Es ist kein Datenaustausch mit der SPS möglich. Mögliche Ursachen: n Der Kanal besitzt kein Interface (kein Interpreter vorhanden) n Die Verbindung zur SPS ist gestört
4104 | 16644 | Parameter | „M-Funktionsindex unzulässig“ Unzulässige M-Funktion (nicht 0...159) in der Ausführungsebene erkannt.
4105 | 16645 | Speicher | „Kein Speicher“ Es steht kein System-Speicher mehr zur Verfügung. In der Regel ist dies eine Folge anderer Fehler.
4106 | 16646 | Funktion | „Nicht bereit“ Die Funktion ist zur Zeit nicht verfügbar, weil bereits eine gleichartige Funktion in Bearbeitung ist. In der Regel ist dies eine Folge von Zugriffs-Konflikten: Mehr als eine Instanz will Befehle an den Kanal geben. Dies kann z.B. die Folge eines nicht korrekten SPS-Programms sein.
4107 | 16647 | Funktion | „Funktion/Kommando nicht unterstützt“ Eine angeforderte Funktion bzw. ein angefordertes Kommando wird vom Kanal nicht unterstützt.
4108 | 16648 | Parameter | „Unzulässiger Parameter beim Aufstarten“ Beim Aufstarten des Kanals (TwinCAT-Start), werden unzulässige Parameter verwendet. Typischerweise handelt es sich dabei um eine unzulässige Speichergröße des Kanals oder einen unzulässigen Kanaltyp.
4109 | 16649 | Funktion | „Kanal-Funktion (Kommando) nicht ausführbar“ Eine Kanalfunktion wie z.B. Interpreter Start, ist abgelehnt worden, da der Kanal entweder bereits aktiv ist, kein Programm geladen oder aber sich in einem Fehlerzustand befindet.
410A | 16650 | Funktion | "ItpGoAhead nicht ausführbar" Das Kommando ist nicht ausführbar, da der Interpreter nicht auf einem Dekodierstopp steht
4110 | 16656 | Parameter | „Fehler beim Öffnen einer Datei“ Die angegebene Datei ist nicht vorhanden. Beispiel: NC-Programm unbekannt.
4111 | 16657 | NC-Programmierung | „Syntax-Fehler beim Laden“ Die NC hat beim Laden eines NC-Programms einen Syntax-Fehler festgestellt.
4112 | 16658 | NC-Programmierung | „Syntax-Fehler beim Interpretieren“ Die NC hat beim Abarbeiten eines NC-Programms einen Syntax-Fehler festgestellt.
4113 | 16659 | NC-Programmierung | „Fehlendes Unterprogramm“ Die NC hat beim Laden ein fehlendes Unterprogramm festgestellt.
4114 | 16660 | Speicher | „Ladepuffer des Interpreters zu klein“ Die Ladepuffergröße des Interpreters ist überschritten worden.
4115 | 16661 | Intern | „Symbolik“ - reserviert
4116 | 16662 | Intern | „Symbolik“ - reserviert
4117 | 16663 | NC-Programmierung | „Unterprogramm nicht vollständig“ Kopf des Unterprogramms fehlt
4118 | 16664 | NC-Programmierung | „Fehler beim Laden des NC-Programms“ Die maximale Anzahl der ladbaren NC-Programme ist erreicht. Mögliche Ursache: Aus einem Hauptprogramm wurden zu viele Unterprogramme geladen.
4119 | 16665 | NC-Programmierung | „Fehler beim Laden des NC-Programms“ Der verwendete Programmname ist zu lang.
4120 | 16672 | NC-Programmierung | „Divide by Zero“ Die NC hat beim Abarbeiten einen Rechen-Fehler festgestellt: Teilen durch 0.
4121 | 16673 | NC-Programmierung | „Unzulässige Kreis-Parametrierung“ Die NC hat beim Abarbeiten einen Rechen-fehler festgestellt: Der angegebene Kreis ist nicht rechenbar.
4122 | 16674 | NC-Programmierung | „Unzulässige FPU-Operation“ Die NC hat beim Abarbeiten eine ungültige FPU-Operation festgestellt. Dieser Fehler tritt z.B. bei der Berechnung der Wurzel einer negativen Zahl auf
4130 | 16688 | NC-Programmierung | „Stack-Überlauf: Unterprogramme“ Die NC hat beim Abarbeiten einen Stack-Überlauf festgestellt: Zu viele Unterprogramm-Ebenen.
4131 | 16689 | NC-Programmierung | „Stack-Unterlauf: Unterprogramme“ Die NC hat beim Abarbeiten einen Stack-Unterlauf festgestellt: Zu viele Unterprogramm-Rückkehrbefehle. Hinweis: Ein Hauptprogramm darf nicht mit einem Rückkehrbefehle beendet werden.
4132 | 16690 | NC-Programmierung | „Stack-Überlauf: Rechenwerk“ Die NC hat beim Abarbeiten einen Stack-Überlauf festgestellt: Die Berechnung ist zu komplex oder ist nicht korrekt geschrieben.
4133 | 16691 | NC-Programmierung | „Stack-Unterlauf: Rechenwerk“ Die NC hat beim Abarbeiten einen Stack-Unterlauf festgestellt: Die Berechnung ist zu komplex oder ist nicht korrekt geschrieben.
4140 | 16704 | Parameter | „Register-Index unzulässig“ Die NC hat beim Abarbeiten einen unzulässigen Register-Index festgestellt: Das Programm enthält eine unzulässige Angabe (nicht R0...R999) oder ein Zeiger-Register enthält einen nicht zulässigen Wert.
4141 | 16705 | NC-Programmierung | „G-Funktions-Index unzulässig“ Die NC hat beim Abarbeiten eine unzulässige G-Funktion festgestellt (nicht 0...159).
4142 | 16706 | NC-Programmierung | „M-Funktions-Index unzulässig“ Die NC hat beim Abarbeiten eine unzulässige M-Funktion festgestellt (nicht 0...159).
4143 | 16707 | NC-Programmierung | „Erweiterte Adress-Angabe unzulässig“ Die NC hat beim Abarbeiten eine unzulässige erweiterte Adresse festgestellt (nicht 1...9).
4144 | 16708 | NC-Programmierung | „Index der internen H-Funktion unzulässig“ Die NC hat beim Abarbeiten eine unzulässige interne H-Funktion festgestellt. Dies ist in der Regel eine Folge eines Fehlers beim Laden.
4145 | 16709 | Parameter | „Wert für die Maschinendaten unzulässig“ Die NC hat beim Abarbeiten eine unzulässigen Wert für die Maschinendaten (MDB) festgestellt (nicht 0...7).
4150 | 16720 | Parameter | "Parameter für die Werkzeugkorrektur können hier nicht geändert werden" Die NC hat beim Abarbeiten einen unzulässigen Parameterwechsel für die Werkzeugkorrektur festgestellt. Dies kann z.B. ein veränderter Werkzeugradius sein, während ein Kreis programmiert wurde.
4151 | 16721 | Parameter | "Werkzeugkorrektur kann nicht berechnet werden" Die NC hat bei der Berechnung der Werkzeugkorrektur einen Fehler festgestellt.
4152 | 16722 | NC-Programmierung | Werkzeugkorrektur: Die Ebene für die Werkzeugkorrektur kann an dieser Stelle nicht geändert werden. Der Fehler tritt z.B. dann auf, wenn bei der Anwahl oder bei aktiver Werkzeugradiuskorrektur die Ebene geändert wird.
4153 | 16723 | NC-Programmierung | Werkzeugkorrektur: Bei der Anwahl der Werkzeugkorrektur wurde kein bzw. ein nicht gültiges D-Wort programmiert.
4154 | 16724 | NC-Programmierung | Werkzeugkorrektur: Der spezifizierte Werkzeugradius ist nicht zugelassen, da kleiner Null.
4155 | 16725 | NC-Programmierung | Werkzeugkorrektur: Der Werkzeugradius kann hier nicht geändert werden
4156 | 16726 | Intern | Werkzeugkorrektur: Collision Detection Table ist voll.
4157 | 16727 | Intern | Werkzeugkorrektur: Interner Fehler beim Einschalten der Flaschenhalserkennung
4158 | 16728 | Intern | Werkzeugkorrektur: Interner Fehler bei der Flaschenhalserkennung: Update Reversed Geo failed.
4159 | 16729 | NC-Programmierung | Werkzeugkorrektur: Unerwartete Kombination von Geometrietypen bei eingeschalteter Flaschenhalserkennung
415A | 16730 | NC-Programmierung | Werkzeugkorrektur: Programmierter Innenkreis ist kleiner als der Fräserradius
415B | 16731 | NC-Programmierung | Werkzeugkorrektur: Flaschenhalserkennung hat eine Konturverletzung erkannt
415C | 16732 | Speicher | Tabelle für korrigierte Einträge ist voll
415D | 16733 | Speicher | Eingangstabelle für die tangentiale Nachführung ist voll
415E | 16734 | Speicher | Ausführungstabelle für die tangentiale Nachführung ist voll
415F | 16735 | Intern | Geometrie für tangentiale Nachführung kann nicht berechnet werden
4160 | 16736 | Intern | reserviert
4161 | 16737 | Intern | reserviert
4162 | 16738 | Parameter | Die aktuell wirkenden Interpolationsregeln (G-Code), Nullpunktverschiebungen oder Rotation können nicht ermittelt werden
4170 | 16752 | NC-Programmierung | "Fehler beim Laden: Ungültiger Parameter" Die NC hat beim Laden eines NC-Programms einen ungültigen Parameter festgestellt.
4171 | 16753 | Intern | "Unzulässige Kontur-Startposition" Die NC hat beim Abarbeiten einen Rechenfehler festgestellt: Die angegebene Kontur ist nicht rechenbar, da die Startposition nicht auf der Kontur liegt.
4172 | 16754 | Intern | "Rückwärtsfahren: Invalid Tabellenindex" Die NC hat beim Abarbeiten des Rückwärtsfahrens einen ungültigen Tabellenindex festgestellt.


Gruppenfehler

Anhang [image] Übersicht NC-Fehler [image] Gruppenfehler
Gruppenfehler
Fehler(Hex)
Fehler(Dez)
Fehlertyp
Beschreibung
4200
16896
Parameter
„Gruppen-ID unzulässig“
Der Wert für die Gruppen-ID ist unzulässig, da er z. B. bereits vergeben ist, kleiner gleich Null ist oder größer 255 ist.
Wertebereich: [1 ... 255]
Einheit: 1
4201
16897
Parameter
„Gruppen-Typ unzulässig“
Der Wert für den Gruppen-Typ ist unzulässig, da er nicht definiert ist.
Typ 1: PTP-Gruppe mit Slaves (Servo)
Typ 4: DxD-Gruppe mit Slaves (3D-Gruppe)
Typ 5: Eil/Schleich-Gruppe
Typ 6: Schrittmotor-Gruppe
Typ 9: Encoder-Gruppe mit Slaves (Servo)
…
Wertebereich: [1 ... 12]
Einheit: 1
4202
16898
Initialisierung
„Masterachsen-Index unzulässig“ Der Wert für den Masterachs-Index innerhalb einer interpolierenden 3D-Gruppe ist unzulässig, da er z. B. den Wertebereich verlassen hat. Index 0: X-Achse (erste Masterachse) Index 1: Y-Achse (zweite Masterachse) Index 2: Z-Achse (dritte Masterachse)
Wertebereich: [0, 1, 2]
Einheit: 1
4203
16899
Initialisierung
„Slaveachsen-Index unzulässig“ (INTERNER FEHLER) Der Wert für den Slaveachs-Index innerhalb einer Gruppe ist unzulässig, da er z. B. den Wertebereich verlassen hat, der Slaveplatz beim Einfügen einer neuen Slaveverbindung schon besetzt ist oder beim Aufheben einer solchen Slaveverbindung keine Slaveachse vorhanden ist. Index 0: Erste Slaveachse Index 1: Zweite Slaveachse Index 2: etc.
Wertebereich: [0 ... 7]
Einheit: 1
4204
16900
Initialisierung
„INTERNER FEHLER“ (GROUPERR_INTERNAL)
4205
16901
Parameter
„Zykluszeit für Satzausführungstask (SAF) unzulässig“ Der Wert für die Zykluszeit der NC Satzausführungstask (SAF 1/2) ist unzulässig, da er den Wertebereich verlassen hat.
Wertebereich: [0.001 ... 0.1]
Einheit: s
4206
16902
Initialisierung
„GROUPERR_RANGE_MAXELEMENTSINAXIS “
4207
16903
Parameter
„Zykluszeit für Satzvorbereitungstask (SVB) unzulässig“ Der Wert für die Zykluszeit der NC Satzvorbereitungstask (SVB 1/2) ist unzulässig, da er den Wertebereich verlassen hat.
Wertebereich: [0.001 ... 1.0]
Einheit: s
4208
16904
Parameter
„Einzelsatzbetrieb (Single Step Mode) unzulässig“ Das Flag für die Aktivierung bzw. Deaktivierung der Einzelsatzbetriebsart ist unzulässig. Wert 0: Passiv (Pufferbetrieb) Wert 1: Aktiv (Einzelsatzbetrieb)
Wertebereich: [0, 1]
Einheit: 1
4209
16905
Parameter
„Deaktivierung Gruppe unzulässig“ (INTERNER FEHLER) Das Flag für die Deaktivierung bzw. Aktivierung der kompletten Gruppe ist unzulässig. Wert 0: Gruppe aktiv Wert 1: Gruppe passiv
Wertebereich: [0, 1]
Einheit: 1
420A
16906
Initialisierung
„Satzausführungszustand (SAF-State) unzulässig“ (INTERNER FEHLER) Der Wert für den Zustand der Satzausführungsstatemaschine (SAF-State) ist unzulässig. Dieser Fehler tritt auf, wenn der Wertebereich verlassen wird oder sich die Statemaschine im Fehlerzustand befindet.
Wertebereich: [0 ... 5]
Einheit: 1
420B
16907
Adresse
„Adresse Kanal“ Gruppe besitzt keinen Kanal (Channel) bzw. die Kanaladresse ist nicht initialisiert worden.
420C
16908
Adresse
„Adresse Achse (Masterachse)“ Die Gruppe besitzt keine Masterachse (Masterachsen) bzw. die Achsadresse (Achsadressen) ist nicht initialisiert worden.
420D
16909
Adresse
„Adresse Masterachse“ Eine neue Master/Slave-Kopplung soll in die Gruppe eingefügt werden, wobei eine gültige Adresse auf die führende Masterachse fehlt.
420E
16910
Adresse
„Adresse Slaveachse“ Es soll eine Master/Slave-Kopplung in die Gruppe eingefügt werden, der eine gültige Adresse auf die Slaveachse fehlt.
420F
16911
Adresse
„Adresse Slave-Sollwertgenerator“ Es soll eine Master/Slave-Kopplung in die Gruppe eingefügt werden, der eine gültige Adresse auf den Slave-Sollwertgenerator fehlt.
4210
16912
Adresse
„Adresse Geber“ Eine Achse der Gruppe besitzt keinen Geber (Encoder) bzw. die Geberadresse ist nicht initialisiert worden.
4211
16913
Adresse
„Adresse Regler“ Eine Achse der Gruppe besitzt keinen Regler (Controller) bzw. die Regleradresse ist nicht initialisiert worden.
4212
16914
Adresse
„Adresse Drive“ Eine Achse der Gruppe besitzt keinen Antrieb (Drive) bzw. die Driveadresse ist nicht initialisiert worden.
4213
16915
Adresse
„GROUPERR_ADDR_MASTERGENERATOR“
4214
16916
Adresse
„Adresse Achsinterface NC zur SPS“ Gruppe/Achse besitzt kein Achsinterface von der NC zur SPS (NC to PLC) bzw. ist die Achsinterfaceadresse nicht initialisiert worden.
4215
16917
Adresse
„Adresse Slaveachse“ Eine bestehende Master/Slave-Kopplung soll innerhalb der Gruppe aufgelöst werden, wobei eine gültige Adresse auf die Slaveachse fehlt.
4216
16918
Adresse
„Tabelle unbekannt“ Die Tabelle bzw. die Tabellen-ID ist im System unbekannt. Hierbei kann es sich um eine Tabelle für eine Master/Slave Kopplung oder um eine Kennlinien-Tabelle handeln.
4217
16919
Adresse
„Adresse NcControl“ Die NcControladresse ist nicht initialisiert worden.
4218
16920
Initialisierung
"Kommandosperre da persistente NC-Daten zur Übernahme anstehen" Achse sperrt sich gegen Kommandos während sie auf gültige IO Daten wartet um die gepufferten persistenten NC Daten zu übernehmen.
4219
16921
Funktion
"Der Skalierungsmode MASTER-AUTOOFFSET ist unzulässig, da keine Referenz-Tabelle gefunden werden kann". Der verwendete Skalierungsmode MASTER-AUTOOFFSET ist in diesem Zusammenhang unzulässig, da kein Bezug auf eine bestehende Referenz-Tabelle hergestellt werden kann.
Dieser Fehler kann beispielsweise bei der Addition von Tabellen auftreten, wenn kein eindeutiger Bezug zu einer bestehenden Referenz-Tabelle hergestellt werden kann (z.B. weil der Bezug nicht eindeutig ist etc.).
421A
16922
Parameter
„Startposition der Masterachse lässt keine Synchronisation zu“ Die Position der Masterachse bei Ankopplung der Slaveachse lässt keine Synchronisation mit den angegebenen Synchronpositionen zu.
421B
16923
Parameter
„Slave-Koppelfaktor (Getriebefaktor) gleich 0.0 unzulässig“ Es ist eine Master/Slave-Kopplung mit dem Getriebefaktor 0.0 erzeugt worden. Dieser Wert ist unzulässig, da er keiner Kopplung entspricht und bei einer Division eine Exception der FPU generieren würde.
421C
16924
Funktion
„Einfügen von Masterachse in Gruppe unzulässig“ Es sollte eine Masterachse auf einen Platz innerhalb der Gruppe eingefügt werden, der bereits durch eine andere Masterachse belegt ist. Möglicherweise kann die Umgruppierung auch nicht durchgeführt werden, weil mit dieser Achse eine Slaveverbindung besteht. Diese muss zuvor aufgehoben werden.
421D
16925
Funktion
„Löschen von Masterachse aus Gruppe unzulässig“ (INTERNER FEHLER) Es sollte eine Masterachse von einem Platz innerhalb der Gruppe herausgenommen worden, der gar nicht durch eine Masterachse belegt gewesen ist.
421E
16926
Funktion
„Funktion/Eigenschaft wird vom Sollwertgenerator nicht unterstützt Es ist eine Funktion aktiviert worden, die die Sollwertgenerierung (z.B. PTP Sollwertgenerator) generell oder aber in dieser bestimmten Situation nicht unterstützt.
421F
16927
Initialisierung
„Initialisierung Gruppe“ Gruppe ist nicht initialisiert worden. Gruppe wurde zwar erzeugt, allerdings nicht weiter initialisiert (1. Initialisierung Gruppe-IO, 2. Initialisierung Gruppe, 3. Reset Gruppe).
4220
16928
Überwachung
„Gruppe nicht fertig / Gruppe nicht bereit für neuen Auftrag“ Gruppe bekommt einen neuen Auftrag, während sie sich noch in der Ausführung eines vorhandenen Auftrages befindet. Diese Anforderung ist unzulässig, da hierdurch die Ausführung des bisherigen Auftrages unterbrochen würde. Bei den neuen Aufträgen kann es sich z. B. um einen Positionierbefehl oder um die Funktion „Setze Istposition“ handeln. Für die Funktion „Neue Endposition setzen“ gilt genau der umgekehrte Sachverhalt. Hierbei muss nämlich die Gruppe/Achse noch aktiv verfahren werden, um eine Änderung der Endposition Veranlassen zu können.
4221
16929
Überwachung
„Geforderte Sollgeschwindigkeit ist unzulässig“ Der Wert für die geforderte Sollgeschwindigkeit eines Positionierauftrages ist entweder kleiner gleich Null, größer als die "maximal erlaubte Geschwindigkeit" (s. Achsparameter) oder bei Servo-Antrieben größer als die "Bezugsgeschwindigkeit" der Achse (s. Driveparameter).
4222
16930
Überwachung
„Geforderte Zielposition ist unzulässig (Masterachse)“ Der Wert für die geforderte Zielposition eines Positionierauftrages befindet sich nicht innerhalb der Softwareendlagen, d. h. die Software Endlage Minimum bzw. die Software Endlage Maximum würde unterschritten bzw. überschritten. Diese Überprüfung wird nur dann durchgeführt, wenn die jeweilige Endlagenüberwachung aktiviert ist.
4223
16931
Überwachung
„Regler- und/oder Vorschubfreigabe nicht vorhanden (Masterachse)“ Die für eine Positionierung benötigten Achsfreigaben der Masterachse sind nicht vorhanden. Hierbei kann es sich entweder um die Reglerfreigabe und/oder um die jeweilige richtungsabhängige Vorschubfreigabe handeln (s. Achsinterface PlcToNc).
4224
16932
Überwachung
„Verfahrweg kleiner einem Geberinkrement“ (INTERNER FEHLER) Der Verfahrweg einer Gruppe/Achse ist kleiner der physikalischen Gewichtung eines Geberinkrementes, d. h. der Verfahrweg ist kleiner als der Skalierungsfaktor der Achse. Hierauf wird in der Art reagiert, dass die Achse logisch fertig gemeldet wird, ohne aber das sie aktiv verfahren worden ist. Somit wird auch für den Anwender kein externer Fehler generiert. Für Eil-/Schleichachsen wird dieser Fehler ebenfalls ausgegeben, wenn ein ungleich Null parametrierter Schleifenweg kleiner der Summe aus Schleich- und Bremsweg ist. In diesem Fall kann die Zielposition nicht sinnvoll über- bzw. unterfahren werden.
4225
16933
Überwachung
„Antriebshardware nicht betriebsbereit bei Achsstart“ Bei einem Achsstart ist festgestellt worden, dass die Antriebshardware (Drive) nicht betriebsbereit ist. Hierfür kann es folgende Ursachen geben: - der Antrieb ist im Fehlerzustand (Hardwarefehler) - der Antrieb befindet sich in der Aufstartphase (z. B. nach einem Achsreset dem ein Hardwarefehler voraus ging) - dem Antrieb fehlt die Reglerfreigabe (ENABLE) Anmerkung: Der Zeitbedarf für das „Hochfahren“ eines Antriebes nach einem Hardwarefehler kann sich im Bereich von mehreren Sekunden bewegen.
4226
16934
Überwachung
"Die Parameter des Not-Stops sind unzulässig." Entweder sind die Verzögerung und der Ruck kleiner gleich Null oder aber einer der beiden Werte ist schwächer als die originalen Startdaten der Positionierung.
4227
16935
Funktion
"Der Sollwertgenerator ist nicht aktiv, so dass keine Instruktion angenommen wird."
4228
16936
Überwachung
„Geforderte Verfahrweg/Schleifenweg ist unzulässig“ Der Verfahrweg bzw. der Schleifenweg der Achse ist kleiner als der positive oder negative Bremsweg der Eil-/Schleich-Achse.
4229
16937
Überwachung
„Geforderte Zielposition ist unzulässig (Slaveachse)“ Der auf die Slaveachse verrechnete Wert für die Zielposition eines Positionierauftrages befindet sich nicht innerhalb der Softwareendlagen, d. h. die Software Endlage Minimum bzw. die Software Endlage Maximum würde unterschritten bzw. überschritten. Diese Überprüfung wird nur dann durchgeführt, wenn die jeweilige Endlagenüberwachung aktiviert ist.
422A
16938
Überwachung
„Regler- und/oder Vorschubfreigabe nicht vorhanden (Slaveachse)“ Die für eine Positionierung benötigten Achsfreigaben einer oder mehrerer beteiligten Slaveachsen sind nicht vorhanden. Hierbei kann es sich entweder um die Reglerfreigabe und/oder um die jeweilige richtungsabhängige Vorschubfreigabe handeln (s. Achsinterface PlcToNc).
422B
16939
Parameter
„Aktivierungsposition (Schwelle) liegt außerhalb des Bereichs der aktuellen Positionierung“Die Aktivierungsposition (Schwelle) eines Kommandos (z.B. "neue Geschwindigkeit ab einer Positionsschwelle") liegt außerhalb des Bereichs der aktuellen Positionierung (z.B. in Fahrtrichtung betrachtet vor der aktuellen Position oder hinter der Zielposition der Achse).
422C
16940
Parameter
„Start/Aktivierungsdaten der externen Sollwertübernahme sind unzulässig“ Es können folgende Fehlersituationen vorliegen: 1. Wenn die externe Sollwertgenerierung/Übernahme bereits aktiv ist und diese wiederholt mit einem Starttyp (1: Absolut, 2: Realtiv) aktiviert wird, der dem ursprünglichen Anfangsstarttyp widerspricht.
2. Wenn die interne Sollwertgenerierung (z.B. PTP) bereits aktiv ist und zusätzlich die externe Sollwertgenerierung mit dem Starttyp "Absolut" aktiviert wird (2 mal absolut widerspricht sich).
422D
16941
Parameter
„Geschwindigkeit ist nicht konstant“ Zur Veränderung der Dynamikparameter 'Acceleration' und 'Deceleration' muss die Achse in einem kräftefreien Zustand sein.
422E
16942
Parameter
„Ruck kleiner gleich 0.0 unzulässig“ Ein Wert kleiner gleich 0.0 für den Ruck (PTP und CNC) ist unzulässig, da der Ruck definitionsgemäß positiv ist und bei Ruck 0.0 durch Divisonen eine Exception der FPU generiert wird.
422F
16943
Parameter
„Beschleunigung kleiner gleich 0.0 unzulässig“ Ein Wert kleiner gleich 0.0 für die Beschleunigung (PTP und CNC) ist unzulässig, da die Beschleunigung definitionsgemäß positiv ist und bei Beschleunigung 0.0 sich keine Bewegung generieren lässt.
4230
16944
Parameter
„Absolutwert Verzögerung kleiner gleich 0.0 unzulässig“ Ein Wert kleiner gleich 0.0 für den Absolutwert der Verzögerung (PTP und CNC) ist unzulässig, da der Absolutwert der Verzögerung definitionsgemäß positiv ist und bei Absolutwert der Verzögerung 0.0 sich keine Bewegung generieren lässt
4231
16945
Parameter
„Sollgeschwindigkeit kleiner gleich 0.0 unzulässig“ Ein Wert kleiner gleich 0.0 bzw. außerhalb des Bereiches von 10-3 bis 10+10 ist für die Sollgeschwindigkeit (PTP und CNC) unzulässig, da die Sollgeschwindigkeit definitionsgemäß strikt positiv ist und bei Sollgeschwindigkeit 0.0 durch Divisionen eine Exception der FPU generiert wird.
4232
16946
Überwachung
„Verlust der Auflösungsgenauigkeit für eine angeforderte Positionierung“ Die Positionierung ist räumlich oder zeitlich so lang, dass Nachkommastellen irrelevant werden und es zu Ungenauigkeiten während der Positionierung kommen kann (LOSS_OF_PRECISION).
4233
16947
Parameter
„Zykuszeit kleiner gleich 0.0 unzulässig“ Ein Wert kleiner gleich 0.0 für die Zykluszeit (PTP und CNC) ist unzulässig, da die Zykluszeit definitionsgemäß strikt positiv ist und bei Zykluszeit 0.0 durch Divisionen eine Exception der FPU generiert wird.
4234
16948
Intern
„PTP Datentyp <intasdouble> Bereichsüberschreitung “ Der Startauftrag oder der Override oder die neue Zielposition sind so extrem parametriert, dass der interne Datentyp seine Genauigkeit verliert.
4235
16949
Funktion
„PTP LHL-Geschwindigkeitsprofil nicht generierbar“ (INTERNER FEHLER) Der Startauftrag oder der Override oder die neue Zielposition sind so extrem parametriert, dass kein Geschwindigkeitsprofil des Typs LHL (Low-High-Low) generierbar ist.
4236
16950
Funktion
„PTP HML-Geschwindigkeitsprofil nicht generierbar“ (INTERNER FEHLER) Der Override oder die neue Zielposition sind so extrem parametriert, dass kein Geschwindigkeitsprofil des Typs HML (High-Middle-Low) generierbar ist.
4237
16951
Adresse
„Startdaten-Adresse ungültig“ Die Adresse der Startdaten ist ungültig.
4238
16952
Parameter
„Geschwindigkeits-Override (StartOverride) unzulässig“ Der Wert für den Geschwindigkeits-Override ist unzulässig, da er unter 0.0% oder über 100.0% ist (s. Achsinterface PlcToNc). Hierbei entsprechen 100.0 % dem ganzzahligen Wert 1000000 im Achsinterface. Wertebereich: [0 ... 1000000]
4239
16953
Parameter
„StartTyp unzulässig“ Der angegebene Starttyp existiert nicht
423A
16954
Überwachung
„Geschwindigkeitsüberhöhung (Überschwingen in der Geschwindigkeit)“ Die neue Dynamik ist mit dem parametrierten Ruck ist so schwach, dass unter vorgegebenen Randbedingungen eine Geschwindigkeitsüberhöhung (Überschwingen in der Geschwindigkeit) droht. Das Kommando wird deshalb nicht ausgeführt.
423B
16955
Parameter
„Startparameter der Achsstruktur ungültig“ Externe oder interne Parameter der Startstruktur für eine Positionierauftrag sind ungültig. So können z. B. unzulässigerweise der Skalierungsfaktor, die SAF-Zykluszeit oder die geforderte Geschwindigkeit kleiner gleich Null sein.
423C
16956
Parameter
„Initialisierungsparameter des Overridegenerators ungültig“ Einer der (Re)Initialisierungparameter des Overridegenerators ist ungültig
423D
16957
Überwachung
„Slaveachse besitzt keinen Sollwertgenerator“ (INTERNER FEHLER) Innerhalb der Gruppe ist festgestellt worden, dass eine Slaveachse keinen gültigen Slavegenerator (Sollwertgenerator) besitzt. Slaveachse und Slavesollwertgenerator müssen zwingend paarweise vorhanden sein. Hierbei handelt es sich um einen internen Fehler.
423E
16958
Funktion
„Tabelle ist leer“ Die SVBTabelle oder die SAF-Tabelle enthält keinen Eintrag.
423F
16959
Funktion
„Tabelle ist voll“ Die SVBTabelle oder die SAF-Tabelle hat keine freie Zeile mehr.
4240
16960
Speicher
„Kein Speicher verfügbar“ SVB-Speicherallozierung für dynamischen Eintrag in SAF-Tabelle misslungen .
4241
16961
Funktion
„Tabelle enthält schon einen Eintrag“ (INTERNER FEHLER) SAF-Tabelleneintrag abgebrochen, da fälschlicherweise schon ein Eintrag existiert.
4242
16962
Funktion
„Stop ist schon aktiv“ Stopauftrag wird nicht weitergeleitet, da der Stop schon aktiviert worden war.
4243
16963
Funktion
„Kompensation wird nicht um die volle Kompensationsstrecke durchgeführt“ Die Komponsations-Start-Parameter lassen eine Kompensation um die volle zu kompensierende Strecke nicht zu. Daher wird eine Kompensation um eine kleinere Strecke durchgeführt.
4244
16964
Parameter
„Interne-Parameter der Kompensation ungültig“ (INTERNER FEHLER) Ungültige interne Parameter bzw. Startparameter des unterlagerten Generators.
4245
16965
Funktion
„Kompensation aktiv“ Start der Kompensation verweigert, da die Kompensation schon aktiv ist oder aber die Master-/Slaveachse gar nicht aktiv verfahren wird, wodurch eine Ausführung der Kompensation unmöglich ist.
4246
16966
Funktion
„Kompensation nicht aktiv“ Stop der Kompensation verweigert, da die Kompensation nicht aktiv ist.
4247
16967
Funktion
„Kompensationstyp ungültig“ Der Typ für die Streckenkompensation ist ungültig. Erlaubt ist zum jetzigen Zeitpunkt nur der Kompensationstyp 1 (trapezförmiger Geschwindigkeitsverlauf).
4248
16968
Funktion
„Achsadresse für Kompensation ungültig“ (INTERNER FEHLER) Die Adresse der Master- oder Slaveachse, auf die die Streckenkompensation wirken soll, ist ungültig. Hierbei handelt es sich um einen internen Fehler.
4249
16969
Adresse
„Ungültige Slave-Adresse“ (INTERNER FEHLER) Die angegebene Slave-Adresse zum online Ab/Abkoppeln ist ungültig.
424A
16970
Funktion
„Koppel-Geschwindigkeiten unzulässig“ Die Geschwindigkeit der zukünftigen Masterachse ist 0, so dass ein online Ankoppeln nicht möglich ist.
424B
16971
Funktion
„Koppel-Geschwindigkeiten nicht konstant“ Die Geschwindigkeit der zukünftigen Masterachse und die Geschwindigkeit der zukünftigen Slaveachse sind nicht konstant, so dass ein online Ankoppeln nicht möglich ist.
424C
16972
Parameter
„Zykluszeit kleiner gleich 0.0 unzulässig“ Ein Wert kleiner gleich 0.0 für die Zykluszeit (Slave) ist unzulässig, da die Zykluszeit definitionsgemäß strikt positiv ist und bei Zykluszeit 0.0 durch Divisionen eine Exception der FPU generiert wird.
424D
16973
Funktion
„Entkoppel-Auftrag unzulässig“ Die Slaveachse ist von einem Typ (z.B. Tabellenslave), oder in einem Zustand (Mastergeschwindigkeit 0), der keine Online Entkopplung zulässt.
424E
16974
Funktion
„Funktion unzulässig“ Die Funktion ist logisch nicht ausführbar, z.B. Kommandos die für Slaveachsen nicht möglich bzw. nicht erlaubt sind.
424F
16975
Parameter
„Kein gültiges Tabellengewicht gesetzt“ Der Gewichtungsfaktor ist für jede Tabelle 0, so dass keine Tabelle gelesen werden kann.
4250
16976
Funktion
„Achsstarttyp, Istpositionstyp oder Endpositionstyp unzulässig“ Der Starttyp für einen Positionierauftrag ist ungültig. Gültige Starttypen sind ABSOLUT (1), RELATIV (2), ENDLOS POSITIV (3), ENDLOS NEGATIV (4), MODULO (5), etc. . Ferner ist es möglich, dass die Typen für das Setzen einer neue Istposition oder das Anfahren einer neuen Endposition ungültig sind.
4251
16977
Funktion
„Funktion wird nicht unterstützt“ Es ist eine NC-Funktionalität ausgelöst worden, die nicht zur Benutzung freigegeben ist bzw. die nicht implementiert ist. Hierbei kann es sich z.B. um Kommandos handeln, die für Masterachsen nicht möglich bzw. nicht erlaubt sind.
4252
16978
Überwachung
„Zustand für Statemaschine ungültig“ (INTERNER FEHLER) Der Zustand für eine der internen Statemaschines ist ungültig. Hierbei handelt es sich um einen internen Fehler.
4253
16979
Überwachung
„SPS-Referenziernocke ist vorzeitig freigeworden“ Beim Referenziervorgang einer Achse wird diese in Richtung des SPS-Referenziernockens gestartet und erst beim Erreichen des Nockensignals wieder gestoppt. Nachdem die Achse dann auch physikalisch zum Stillstand gekommen ist muss der Referenziernocken weiterhin belegt bleiben, bis die Achse im Anschluss daran wieder regulär vom Nocken herunter gestartet wird.
4254
16980
Überwachung
„Abstandsüberwachung zwischen Aktivierung des Hardwarelatch und Eintritt des IO-Syncimpuls“ Bei aktivierter Abstandsüberwachung wird überwacht, ob der Abstand in Inkrementen zwischen der Aktivierung des Hardwarelatch und Eintritt des Syncimpuls (Nullimpuls) kleiner eines voreingestellten Wertes geworden ist. Wenn dieser Fall eingetreten ist wird dieser Fehler generiert. (s. Parameter Inkremental-Geber)
4255
16981
Speicher
„Kein Speicher verfügbar“ Die dynamische Speicherallozierung für den Sollwertgenerator oder die SVB-Tabelle oder die SAF-Tabelle ist fehlgeschlagen.
4256
16982
Überwachung
„Die Tabellen-Slave-Achse hat keine aktive Tabelle“ Obwohl die Tabellen-Slave-Achse Tabellen hat ist keine der Tabellen als aktiv gekennzeichnet. Falls das zur Laufzeit auftritt wird die ganze Master/Slave Gruppe per Laufzeitfehler angehalten.
4257
16983
Funktion
„Funktion nicht zugelassen“ Die angeforderte Funktion bzw. der angeforderte Auftrag ist logisch nicht erlaubt. Ein Beispiel für eine solche Fehlermeldung ist das „Setzen einer Istposition“ für einen Absolut-Geber (M3000, KL5001, etc.).
4258
16984
Funktion
„Kompensation-Stop unzulässig“ Stop der Kompensation ist nicht möglich, da die Kompensation schon in der Stopphase ist.
4259
16985
Funktion
„Slave-Tabelle wird benutzt“ Die Slave-Tabelle kann nicht aktiviert werden, da sie momentan benutzt wird.
425A
16986
Funktion
„Master- oder Slaveachse führt zum Koppelzeitpunkt einen Auftrag aus (z.B. eine Positionierung)“ Eine Master/Slave-Kopplung eines bestimmten Slavetyps (z.B. Linear-Kopplung) kann nicht durchgeführt werden, da sich entweder die Masterachse oder aber die zukünftige Slaveachse nicht im Stillstand befindet, sondern zum Koppelzeitpunkt einen Auftrag ausführt (z.B. eine Positionierung). Dies ist für diesen konkreten Koppeltyp nicht erlaubt.
425B
16987
Parameter
„Slave (Start)-Parameter ist falsch“ Einer der Slave Start-/Koppelparameter ist unzulässig (Koppelfaktor ist Null, Master Positionsskalierung einer Kurvenscheibe ist Null, etc.).
425C
16988
Parameter
„Slave-Typ is falsch“ Der Slave-Typ passt nicht zum (SVB) Start-Typ.
425D
16989
Funktion
„Achs-Stop ist schon aktiv“ Die Achs-Stop/EStop wird nicht eingeleitet, da der Stop schon aktiv ist.
425E
16990
Funktion
„Maximalanzahl von Tabellen pro Slavegenerator erreicht“ Die Maximalanzahl von Tabellen pro Slavegenerator ist erreicht (z.B. 4 Tabellen bei Verwendung von "MC_MultiCamIn").
425F
16991
Funktion
"Der Skalierungsmode ist unzulässig". Der verwendete Skalierungsmode in diesem Zusammenhang nicht gültig. Entweder ist der Mode nicht definiert bzw. noch nicht implementiert oder aber er kann in dieser Konstellation nicht umgesetzt werden.
So kann beispielsweise der Mode MASTER-AUTOOFFSET nicht verwendet werden, wenn relativ gekoppelt wird, da es hier einen Widerspruch gibt.
Ferner kann der Mode MASTER-AUTOOFFSET nicht beim erstmaligen Koppeln verwendet werden, da hier kein Bezug auf eine bestehende Referenz-Tabellenkopplung (Referenz-Tabelle) hergestellt werden kann.
4260
16992
Überwachung
„Reglerfreigabe“ Reglerfreigabe für Achse oder zugehörige Slaveachse nicht vorhanden (s. Achsinterface PlcToNc). Dieser Fehler tritt auf, wenn bei aktiver Positionierung einer Achse bzw. einer Gruppe von Achsen (auch Master/Slave-Gruppen) die Reglerfreigabe entzogen wird. Ferner tritt dieser Fehler auf, wenn eine PTP-Achse oder eine zugehörige Slaveachse ohne Reglerfreigabe gestartet wird.
4261
16993
Funktion
„Tabelle nicht gefunden“ Eine Tabelle mit der angegebenen ID existiert nicht oder wurde nicht eindeutig spezifiziert.
4262
16994
Funktion
„Falscher Tabellentyp“ Die in der Funktion angesprochene Tabelle hat den falschen Typ.
4263
16995
Funktion
„Einzelsatz Betrieb (Single Step Mode)“ Dieser Fehler tritt auf, wenn für eine Gruppe/Achse die Einzelsatz-Betriebsart angewählt ist, und noch während der Abarbeitung eines einzelnen Auftrages schon ein neuer Auftrag angefordert wird.
4264
16996
Funktion
„Gruppenauftrag unbekannt (asynchroner Tabelleneintrag)“ Die Gruppe hat einen Auftrag bekommen, dessen Typ oder Untertyp unbekannt ist. Gültige Aufträge können ein ein- oder mehrdimensionaler Positionierauftrag (Geo 1D, Geo 3D) , ein Referenzierauftrag, etc. sein.
4265
16997
Funktion
„Gruppenfunktion unbekannt (synchrone Funktion)“ Die Gruppe hat einen Funktion bekommen, dessen Typ unbekannt ist. Gültige Funktionen sind „Reset“, „Stop“, “Neue Endposition“, „Start/Stop Streckenkompensation“ „Istposition setzen“, „Referenzierstatus setzen/rücksetzen“ etc. .
4266
16998
Funktion
„Gruppenauftrag für Slave unzulässig“ Gruppenaufträge sind üblicherweise nur für Masterachsen und nicht für Slaveachsen möglich. Eine Slaveachse wird nur indirekt durch einen Positionierauftrag ihrer zugehörigen Masterachse verfahren. Ein Slave kann also nicht direkt einen Auftrag bekommen.
Ausnahme: s. Achsparameter "Erlaube Bewegungskommandos für Slaveachsen"
4267
16999
Funktion
„Gruppenfunktion für Slave unzulässig“ Gruppenfunktionen sind grundsätzlich nur für Masterachsen und nicht für Slaveachsen möglich. Die einzige Ausnahme bildet die Funktion „Start/Stop Streckenkompensation“, die sowohl für Master als auch Slaves möglich ist. Hierüber hinaus kann ein Slave keine weiteren direkten Funktionen verarbeiten.
4268
17000
Funktion
"GROUPERR_GROUPFUNC_NOMOTION"
4269
17001
Parameter
„Startposition = Zielposition“ Ungültige Positionsparameter.
426A
17002
Parameter
„Parameter-des Delay-Generators ungültig“ Ungültige externe/interne Parameter des Delaygenerators (Verzögerungszeit, Zykluszeit, Tics).
426B
17003
Parameter
„Externe-Parameter- der Kompensation ungültig“ Ungültige externe Startparameter der Kompensation (Beschleunigung, Verzögerung, Geschwindigkeit, Prozessgeschwindigkeit, Kompensationslänge) .
426C
17004
Parameter
"Der angewählte Overridetyp ist unzulässig."
426D
17005
Funktion
„Aktivierungsposition über/unterfahren“ Die angestrebte Aktivierungsposition liegt in der Vergangenheit des Masters (z.B. bei Kurvenscheibenumschaltung).
426E
17006
Funktion
„Aktivierung unmöglich: Master im Stillstand“ Die angestrebte Aktivierung der Korrektur ist nicht möglich, da die Masterachse nicht fährt. Ein Aufsynchronisieren ist nicht möglich, da sich die Masterachse im Stillstand befindet und die Slaveachse noch unsynchronisiert ist.
426F
17007
Funktion
„Aktivierungsmode nicht möglich“ Der angeforderte Aktivierungsmode ist nicht möglich wenn sich die Slave-Achse bewegt. Anderenfalls würde die Slave-Dynamik abrupt zu Null gesetzt werden.
4270
17008
Parameter
„Startparameter der Kompensation ungültig“ Einer der Dynamikparameter der Kompensation ist ungültig (notwendige Bedingung): Beschleunigung (>0) Verzögerung (>0) Prozessgeschwindigkeit (>0)
4271
17009
Parameter
„Startparameter der Kompensation ungültig“ Die Geschwindigkeitsüberhöhung ist negativ.
4272
17010
Parameter
„Startparameter der Kompensation ungültig“ Die Strecke auf der die Kompensation stattfindet ist nicht positiv.
4273
17011
Überwachung
„Zielposition über/unterfahren“ (INTERNER FEHLER) Die für das Ende des orientierten Stopps vorgesehene Position (aus der Modulo-Zielposition errechnet) ist schon überfahren worden.
4274
17012
Überwachung
„Zielposition wird über/unterfahren werden“ (INTERNER FEHLER) Die für das Ende des orientierten Stopps vorgesehene Position (aus der Modulo-Zielposition errechnet) ist zu nah und wird überfahren werden.
4276
17014
Überwachung
"GROUPERR_GUIDERSTARTDATA"
4277
17015
Überwachung
„Dynamikparameter nicht zulässig“ (INTERNER FEHLER) Die sich durch interne Berechnungen ergebenden Dynamikparameter wie Beschleunigung, Verzögerung und Ruck sind nicht zulässig.
4279
17017
Überwachung
"GROUPERR_GUIDEROVERRUN"
427A
17018
Überwachung
"GROUPERR_GUIDERLOOKAHEAD"
427B
17019
Überwachung
"GROUPERR_GUIDERLOOKAHEADEND"
427C
17020
Überwachung
"GROUPERR_GUIDERLOOKAHEADREQU"
427D
17021
Überwachung
"GROUPERR_GUIDERMODE"
427E
17022
Überwachung
„Fahrbefehl kann mathematisch nicht umgesetzt werden (BISECTION)“ Es wurde ein Fahrbefehl angefordert, für den mit der Parametrierung keine Lösung gefunden werden konnte. Der Fahrbefehl wurde jedoch bestmöglich ausgeführt und die Meldung ist daher eher als Warnung zu verstehen. Beispiele:
Ein Achsstart wird in der Bewegung in einer ungünstigen Dynamiksituation (Beschleunigungsphase) angefordert, in der die Fahrstrecke zu kurz oder die Geschwindigkeit deutlich zu hoch ist. Eine andere Möglichkeit ist eine Slaveachse, die in der Bewegung in einer ungünstigen Dynamiksituation abgekoppelt wird und anschließend mit einem Startkommando wie im vorherigen Fall beauftragt wird.
427F
17023
Überwachung
„Neue Zielposition ist bzw. wird überfahren werden“ Die neue Zielposition ist entweder schon überfahren worden oder wird in Zukunft überfahren werden, da die Achse bis zu dieser Position nicht gestoppt werden kann. Es wird deshalb instantan ein interner Stop eingeleitet.
4280
17024
Überwachung
„Gruppe nicht fertig / Gruppe nicht bereit für neuen Auftrag“ (INTERNER FEHLER/HINWEIS) Gruppe bekommt einen neuen Auftrag, während sie sich noch in der Ausführung eines vorhandenen Auftrages befindet. Diese Anforderung ist unzulässig, da hierdurch die Ausführung des bisherigen Auftrages unterbrochen würde. Bei den neuen Aufträgen kann es sich z. B. um einen Positionierbefehl oder um die Funktion „Setze Istposition“ handeln. Für die Funktion „Neue Endposition setzen“ gilt genau der umgekehrte Sachverhalt. Hierbei muss nämlich die Gruppe/Achse noch aktiv verfahren werden, um eine Änderung der Endposition Veranlassen zu können.
4281
17025
Parameter
"Die Parameter des orientierten Stops (O-Stop) sind unzulässig." Die Modulo-Zielposition darf nicht kleiner als Null und nicht größer gleich der Encoder-Modulo-Periode sein (z. B. im Intervall [0.0,360.0) ).
Anmerkung: Auch im Fehlerfall wird die Achse sicher gestoppt, steht dann aber anschließend nicht an der gewünschten orientierten Position.
4282
17026
Überwachung
"Die Modulo-Zielposition des Modulo-Starts ist unzulässig." Die Modulo-Zielposition ist außerhalb des gültigen Parameterbereichs. Der Wert darf nicht kleiner als Null und nicht größer gleich der Encoder-Modulo-Periode sein (z. B. im Intervall [0.0,360.0) für den Modulo-Starttyp "SHORTEST_WAY (261)" ).
4283
17027
Parameter
"Der Aktivierungsmode ist unzulässig". Der Aktivierungsmode kann sowohl bei der Online Änderung der Skalierung als auch bei Online Änderung der Motion Function verwendet worden sein. Allerdings ist der verwendete Aktivierungsmode in diesem Zusammenhang nicht gültig. Entweder ist der Mode nicht definiert bzw. noch nicht implementiert oder aber er kann in dieser Konstellation nicht umgesetzt werden (z.B. wenn lineare Tabellen mit einem unerlaubten zyklischen Aktivierungsmode NEXTCYCLE oder NEXTCYCLEONCE verwendet werden).
In anderen Fällen ist der Mode zwar prinzipiell gültig, das Kommando kann aber nicht umgesetzt werden, weil die Funktion schon einen Auftrag ausführt.
4284
17028
Parameter
"Der parametrierte Ruck ist unzulässig". Der Ruck ist kleiner als der Minimalruck. Der Wert für den Minimalruck beträgt 1.0 (z.B. mm/s^3).
4285
17029
Parameter
"Die parametrierte Beschleunigung bzw. Verzögerung ist unzulässig". Die parametrierte Beschleunigung oder Verzögerung ist kleiner als die erlaubte Minimalbeschleunigung. Der Wert für die Minimalbeschleunigung berechnet sich aus dem Minimalruck und der NC Zykluszeit (Minimalruck multipliziert mit der NC Zykluszeit). Die Einheit ist z.B. mm/s^2.
4286
17030
Parameter
"Die parametrierte Geschwindigkeit ist unzulässig". Die parametrierte Sollgeschwindigkeit ist kleiner als die Minimalgeschwindigkeit (der Wert Null ist erlaubt). Der Wert für die Minimalgeschwindigkeit berechnet sich aus dem Minimalruck und der NC Zykluszeit (Minimalruck multipliziert mit dem Quadrat der NC Zykluszeit). Die Einheit ist z.B. mm/s.
4287
17031
Überwachung
"Aktivierung kann nicht ausgeführt werden da bereits eine Aktivierung aktiv ist" Eine Aktivierung wie z.B. "CamIn", "CamScaling" oder "WriteMotionFunction" kann nicht ausgeführt werden da bereits eine andere Aktivierung ansteht (z.B. "CamIn", "CamScaling", "WriteMotionFunction"). Es kann jeweils nur eine Aktivierung aktiv sein.
4288
17032
Überwachung
„Unerlaubte Kombination von unterschiedlichen Zykluszeiten innerhalb einer Achsgruppe“ Innerhalb einer logischen Achsgruppe sind unterschiedliche Zykluszeiten für die gemeinsame Sollwertgenerierung bzw. für IO-Berabeitung einer Achse erkannt worden. Diese Situation kann sowohl beim Herrstellen einer Master/Slave-Kopplung als auch beim Konfigurieren einer 3D- oder FIFO-Gruppe (Einfügen von Haupt-, Zusatz- oder Slave-Achsen) aufgetreten sein.
4289
17033
Überwachung
„Unzulässige Bewegungsumkehr der Achse“ Aufgrund des aktuellen dynamischen Zustandes (aktuelle Geschwindigkeit, Beschleunigung und Ruck) würde eine Bewegungsumkehr verursacht werden. Zur Vermeidung dieser Bewegungsumkehr wird das Kommando nicht ausgeführt und der aktuelle Systemzustand wiederhergestellt.
428A
17034
Überwachung
„Unerlaubter Kommandozeitpunkt da eine andere Instruktion mit zuküftigen Aktivierungsposition aktiv ist“ Ein Kommando kann nicht akzeptiert werden, da zu diesem Zeitpunkt bereits ein anderes Kommando mit zuküftiger Aktivierungsposition aktiv ist (z.B. "Anfahren einer neuen Geschwindigkeit ab einer Aktivierungsposition" oder "Erreichen einer neuen Geschwindigkeit an einer Aktivierungsposition").
428B
17035
Überwachung
„Interner Fehler in der Stop-Berechnungsroutine“ (INTERNER FEHLER) Aufgrund eines internen Fehlers in der Stop-Berechnungsroutine kann das aktuelle Kommando nicht durchgeführt werden. Der vorherige Systemzustand ist wiederhergestellt worden.
428C
17036
Überwachung
„Kommando kann nur teilweise durchgeführt werden da der verbleibende Weg bis zur vollständigen Umsetzung zu kurz ist“Ein Kommando mit Aktivierungsposition (Schwelle) wie z.B. das "Anfahren einer neuen Geschwindigkeit ab einer Positionsschwelle" kann nur teilweise durchgeführt werden (also nicht vollständig), da der verbleibende Weg von der aktuellen Position bis zur Aktivierungsposition zu kurz ist.
428D
17037
Überwachung
„Ungültiger Abkoppeltyp“ Das Kommando zum Auflösen einer Slavekopplung mit anschließendem Nachstartkommando ist mit einem ungültigen Abkoppel- bzw. Nachstart-Typ aufgerufen worden.
428E
17038
Überwachung
„Unerlaubte Ziel-Geschwindigkeit beim Abkoppeln einer Slaveachse“ Das Kommando zum Auflösen einer Slavekopplung mit anschließendem Nachstartkommando ist mit einer unerlaubten Zielgeschwindigkeit aufgerufen worden [1 < V <Vmax].
428F
17039
Überwachung
„Aktivierung neue Dynamikparameter kann nicht durchgeführt werden“Das Kommando zum Aktivieren neuer Dynamikparameter wie Beschleunigung, Verzögerung und Ruck kann nicht durchgeführt werden, da dies eine neue beauftragte Fahrgeschwindigkeit erfordern würde.
Diese Fehlersituation kann z.B. auftreten, wenn sich die Achse im beschleunigten Zustand nahe der Zielposition befindet und die Dynamikparameter verringert werden.
4290
17040
Überwachung
„Kommando kann nicht durchgeführt werden da sich die Achse bereits in der Bemsphase befindet“Ein Kommando mit Aktivierungsposition (Schwelle) wie z.B. das "Anfahren einer neuen Geschwindigkeit ab einer Positionsschwelle" kann nicht durchgeführt werden, da sich die Achse bereits in der Bremsphase befindet und der verbleibende Weg von der aktuellen Position bis zur Aktivierungsposition zu kurz ist.
4291
17041
Überwachung
„Ruckskalierung der Abkoppelroutine beim Abkoppeln einer Slaveachse kann keine gültige Lösung finden“Die interne Ruckskalierung der Abkoppelroutine ( Abkopplung einer Slaveachse und Wandlung zum Master) kann keine gültige Lösung finden. Andernfalls könnte es zu einer unerwarteten Geschwindigkeitsüberhöhung, Bewegungsumkehr oder einem Überfahren der Zielposition kommen.
4292
17042
Überwachung
„Kommando kann nicht durchgeführt werden da der Auftragspuffer voll ist“Das Kommando wird abgelehnt, da der Auftragspuffer voll ist.
4293
17043
Intern
„Kommando kann aufgrund eines internen Fehlers im "Look Ahead" nicht ausgeführt werden“ (INTERNER FEHLER)Das Kommando kann aufgrund eines internen Fehlers im Zukunftsplaner ("look ahead") nicht ausgeführt werden.
4294
17044
Überwachung
„Kommando wird abgelehnt, da die neue Fahrgeschwindigkeit nicht umsetzbar ist“Das Kommando wird abgelehnt, da eine Umsetzung der neuen Fahrgeschwindigkeit (Zielgeschwindigkeit) Vrequ unmöglich und eine interne Optimierung undurchführbar ist.
4295
17045
Überwachung
„Aufeinander folgende Kommandos haben dieselbe Endposition“Aufeinander folgende Kommandos haben dieselbe Endposition, so dass sich eine Verfahrstrecke von Null ergibt.
4296
17046
Überwachung
„Logische Fahrtrichtung der Achse und parametrierte Fahrtrichtung des Puffer-Kommandos widerspechen sich“Im erweiterten Puffer-Betriebszustand (BufferMode), wo die aktuelle Endposition im aktuellen Segment durch die neue Puffer-Startposition überschrieben wird, liegen die aktuelle logische Fahrtrichtung antiparallel zur logischen Richtung des Puffer-Kommandos (=> Widerspruch).Ein gepuffertes Kommando (BufferMode BlendingLow, BlendingPrevious, BlendingNext, BlendingHigh) wird mit Fehler 0x4296 abgewiesen, wenn das Kommando mit der Beckhoff spezifischen Erweiterung einer optionalen Blending-Position verwendet wird, aber diese BlendingPosition jenseits der Zielposition des vorhergehenden Kommandos liegt.
4297
17047
Überwachung
„Kommando wird abgelehnt, da der verbleibende Restweg im aktuellen Segment zu kurz ist“Der für die Positionierung verbleibende Restweg ist nicht ausreichend, daher kann das Kommando nicht ausgeführt werden.
Dies kann z.B. im BufferMode (BlendingMode) der Fall sein, wenn der verbleibende Restweg im aktuellen Segment nicht ausreicht um beschleunigungsfrei zu fahren und am Segmentwechsel eine vorgegebene Geschwindigkeit erreicht zu haben (je nach BufferMode).
429B
17051
Überwachung
„Sammelfehler für ungültige Startparameter“ Dieser Fehler bezieht sich auf eine Falschparametrierung des Anwenders (Sammelfehler).Z.B. könnten Dynamikparameter wie Velo, Acc oder Dec kleiner gleich Null sein.
Oder folgende Fehlerfälle:
- BaseFrequence < 0.0
- StartFrequence < 1.0
- StepCount < 1, StepCount > 200
- BaseAmplitude <= 0.0
- StepDuration <= 0.0
- StopFrequence >= 1/(2*CycleTime)
429C
17052
Überwachung
„SPS-Referenziernocke ist nicht gefunden worden“ Beim Referenziervorgang einer Achse wird diese in Richtung des SPS-Referenziernockens gestartet. Diese Referenziernocke ist allerdings nicht wie erwartet gefunden worden (=> führt zum Abbruch des Referenziervorgangs).
429D
17053
Überwachung
„SPS-Referenziernocke ist nicht wieder freigeworden“ Beim Referenziervorgang einer Achse wird diese in Richtung des SPS-Referenziernockens gestartet und erst beim Erreichen des Nockensignals wieder gestoppt. Nachdem die Achse dann auch physikalisch zum Stillstand gekommen ist wird die Achse im Anschluss daran wieder regulär vom Nocken herunter gestartet. Hierbei ist der Referenziernocken beim Herunterfahren nicht wie erwartet wieder frei geworden (=> führt zum Abbruch des Referenziervorgangs).
429E
17054
Überwachung
„IO-Syncimpuls ist nicht gefunden worden (nur bei Verwendung von Hardwarelatch)“ Bei Aktivierung des Hardwarelatch wird erwartet, dass nach Ablauf einer bestimmten Zeit bzw. eines bestimmten Weges ein Syncimpuls (Nullimpuls) gefunden wird und ein Syncereignis ausgelöst wird. Ist dies nicht der Fall, dann wird darauf mit einem Fehler und dem Abbruch des Referenziervorgangs reagiert.
42A0
17056
Intern
„Gruppen-/Achsfolgefehler“ Folgefehler, der durch einen anderen verursachenden Fehler einer weiteren Achse innerhalb der Gruppe veranlasst worden ist. Gruppen-/Achsfolgefehler können im Zusammenhang mit Master/Slave-Kopplung oder mit einer mehrachsigen interpolierenden DXD-Gruppe auftreten. Wird z. B. an einer Masterachse eine Schleppabstandsüberschreitung erkannt, so werden alle übrigen Masterachsen dieser Gruppe, so wie auch sämtliche Slaveachsen, mit diesem Folgefehler versehen.
42A1
17057
Parameter
„Geschwindigkeitsreduktionsfaktor für C0/C1-Übergang unzulässig“ Ein C0-Übergang beschreibt zwei Geometrien, die zwar einen stetigen Verlauf besitzen, allerdings weder einmal noch zweimal stetig differenzierbar sind. Für solcher Übergänge wirkt der Geschwindigkeitsreduktionsfaktor C0. Anmerkung: Ein C1-Übergang ist dadurch gekennzeichnet, dass die zwei Geometrien einen stetigen Verlauf besitzen, allerdings nur einmal stetig differenzierbar sind. Für solcher Übergänge wirkt der Geschwindigkeitsreduktionsfaktor C1.
Wertebereich: [0.0 ... 1.0]
Einheit: 1
42A2
17058
Parameter
„Kritischer Winkel am Segmentübergang unzulässig“
Wertebereich: (0.0 ... 180.0]
Einheit: Grad
42A3
17059
Parameter
„Radius der Toleranzkugel“ nicht im erlaubten Wertebereich
Wertebereich: [0.0 ... 100.0]
Einheit: z. B. mm
42A4
17060
Parameter
Nicht implementiert.
42A5
17061
Parameter
„Starttypus“
Wertebereich: [0,1]
Einheit: 1
42A6
17062
Parameter
Nicht implementiert.
42A7
17063
Parameter
"Verschleifung" bei gegebenen Parametern nicht möglich
42A8
17064
Parameter
Nicht implementiert.
42A9
17065
Parameter
„Kurvengeschwindigkeitsreduktionsmethode unzulässig“ (INTERNER FEHLER) Die Kurvengeschwindigkeitsreduktionsmethode existiert nicht.
42AA
17066
Parameter
„Mindestgeschwindigkeit unzulässig“ Die eingegebene Mindestgeschwindigkeit ist kleiner 0.0.
42AB
17067
Parameter
„Powerfunction input unzulässig“ (INTERNER FEHLER) Die Eingabeparameter in die power_() Funktion führen zu einer FPU-Exception.
42AC
17068
Parameter
„Dynamikänderungsparameter unzulässig“ Ein Parameter der die Änderung der Dynamik reguliert ist ungültig. Parameter: 1.Absolute Bahndynamikänderung: alle Parameter müssen strikt positiv sein. 2.Relative Reduktion c_f: 0.0 < c_f <= 1.0
42AD
17069
Speicher
“Speicherallozierungfehler” (INTERNER FEHLER)
42AE
17070
Funktion
"Die berechnete Endposition passt nicht zur Endposition des Nc-Satzes (interner Fehler)."
42AF
17071
Parameter
"Berechne verbleibende Bahnlänge"
unzulässiger Wert
Wertebereich: [0,1]
42B0
17072
Funktion
„Sollwertgenerator SVB aktiv“ Start des Sollwertgenerators (SVB, SAF) verweigert, da die SVB-Task schon/noch aktiv ist.
42B1
17073
Parameter
„SVB-Parameter unzulässig“ (INTERNER FEHLER) Ein Parameter der inneren Struktur des Sollwertgenerators (SVB) führt zu logischen Fehlern und/oder zur einer FPU Exception. Betrifft die Parameter: Minimalgeschwindigkeit (>0,0), TimeMode, ModeDyn, ModeGeo, StartType, DistanceToEnd, TBallRadius.
42B2
17074
Parameter
„Geschwindigkeitsreduktionsfaktor unzulässig“ Ein Parameter der die Reduktion der Geschwindigkeit an Segmentübergängen reguliert ist ungültig. Parameter: 1.Einmal stetig differenzierbare Übergänge: VeloVertexFactorC1 2.Keinmal stetig differenzierbare Übergänge: VeloVertexFactorC0 CriticalVertexAngleLow, CriticalVertexAngleHigh.
42B3
17075
Parameter
„Helix ist Kreis“ Die Helix ist zu einem Kreis degeneriert und muss als solcher eingegeben werden.
42B4
17076
Parameter
„Helix ist Gerade“ Die Helix ist zu einer Geraden degeneriert und muss als solche eingegeben werden.
42B5
17077
Parameter
„Guider Parameter unzulässig“ Ein Parameter des Guiders führt zu logischen Fehlern und/oder zur einer FPU Exception.
42B6
17078
Adresse
„Ungültige Segmentadresse“ (INTERNER FEHLER) Das Geometriesegment hat keine gültige Geometriestruktur-Adresse oder keine gültige Dynamikstruktur-Adresse.
42B7
17079
Parameter
„Unparametrierter Generator“ (INTERNER FEHLER) Der SVB-Generator ist noch nicht parametriert worden und kann deswegen nicht arbeiten.
42B8
17080
Adresse
„Unparametrierte Tabelle“ (INTERNER FEHLER) Die Tabelle hat keine Information über die Adresse des zugehörigen Dynamikgenerators.
42BA
17082
Intern
"Die Berechnung der Bogenlänge der Verschleifung ist fehlgeschlagen (interner Fehler)."
42BB
17083
Parameter
"Der Radius der Toleranzkugel ist zu klein (kleiner als 0.1 mm)."
42BC
17084
Intern
Fehler bei der Berechnung der DXD-Software-Endlagen (interner Fehler)
42BD
17085
Funktion
"NC-Satz verletzt Software-Endlagen der Gruppe" Mindestens eine Bahnachse mit aktivierte Software-Endlagenüberwachung verletzt die Endlagen. Das Geometriesegment wird deshalb mit diesem Fehler abgelehnt.
42BE
17086
Parameter
"GROUPERR_DXD_SOFTENDCHECK"
42BF
17087
Parameter
"GROUPERR_DXD_RTTG_VELOREFERENCE"
42C0
17088
Intern
„Interpolierende Gruppe beinhaltet Achsen vom falschen Achstyp“ Eine interpolierende 3D-Gruppe darf nur mit kontinuierlich geführten Achsen vom Achstyp 1 (SERVO) bestückt sein.
42C1
17089
Intern
„Skalarprodukt nicht durchführbar“ Die Länge eines der beteiligten Vektoren ist 0.0.
42C2
17090
Intern
„Arcuscosinus nicht durchführbar“ Die Länge eines der beteiligten Vektoren ist 0.0.
42C3
17091
Parameter
„Ungültiger Tabellen-Eintragstyp“ Der angegebene Tabellen-Eintragstyp ist unbekannt.
42C4
17092
Parameter
„Ungültiger DIN66025-Infotyp“ (INTERNER FEHLER) Der angegebene DIN66025-Infotyp ist unbekannt. Bekannte Typen: G0, G1, G2, G3, G17, G18, G19.
42C5
17093
Parameter
„Ungültige Dimension“ (INTERNER FEHLER) Die CNC-Dimension ist unbekannt. Bekannte Dimensionen: 1, 2, 3. Oder: Die CNC-Dimension ist für das angegebene geometrische Objekt ungültig. Für Kreise muss die Dimension 2 oder 3 sein, für eine Helix 3.
42C6
17094
Parameter
„Geometrisches Objekt ist keine Gerade“ Die angegebene Objekt hat, als Gerade interpretiert, die Länge 0.0.
42C7
17095
Parameter
„Geometrisches Objekt ist kein Kreis“ Das angegebene Objekt hat, als Kreis interpretiert, die Länge 0.0 oder den Drehwinkel 0.0 oder den Radius 0.0.
42C8
17096
Parameter
„Geometrisches Objekt ist keine Helix“ Das angegebene Objekt hat, als Kreis interpretiert, die Länge 0.0 oder den Drehwinkel 0.0 oder den Radius 0.0. oder die Höhe 0.0.
42C9
17097
Parameter
„Sollgeschwindigkeit kleiner gleich 0.0 ungültig“ Ein Wert kleiner gleich 0.0 für die Sollgeschwindigkeit (CNC) ist unzulässig, da die Sollgeschwindigkeit definitionsgemäß positiv ist und bei Sollgeschwindigkeit 0.0 keine Bewegung generiert werden kann.
42CA
17098
Adresse
„Adresse für Look-Ahead ungültig“ (INTERNER FEHLER) Die angegebene Adresse für den Look-Ahead ist nicht gültig.
42CB
17099
Funktion
„Sollwertgeneraor SAF aktiv“ Start des Sollwertgenerators (SAF) verweigert, da die SAF-Task schon/noch aktiv ist.
42CC
17100
Funktion
„CNC Sollwertgenerierung nicht aktiv“ Stop oder Overrideänderung verweigert, da die Sollwertgenerierung nicht aktiv ist.
42CD
17101
Funktion
„CNC Sollwertgenerierung in Stopphase“ Stop oder Overrideänderung verweigert, da die Sollwertgenerierung in der Stopphase ist.
42CE
17102
Parameter
„Override unzulässig“ Ein Override unter 0.0% oder über 100.0% ist ungültig.
42CF
17103
Adresse
„Ungültige Tabellen-Adresse“ (INTERNER FEHLER) Die angegebene Tabellen-Adresse zur Initialisierung des Sollwertgenerators ist ungültig oder aber es ist kein gültiger Logger-Anschluss (Report-Datei) vorhanden.
42D0
17104
Parameter
„Ungültiger Tabellen-Eintragstyp“ Der angegebene Tabellen-Eintragstyp ist unbekannt.
42D1
17105
Speicher
„Speicherallozierung misslungen“ Speicherallozierung für Tabelle misslungen.
42D2
17106
Speicher
„Speicherallozierung misslungen“ Speicherallozierung für Filter misslungen
42D3
17107
Parameter
„Ungültiger Parameter“ Der Parameter des Filters ist unzulässig.
42D4
17108
Funktion
"Restweglöschen nicht möglich." Das Restweglöschen (nur Interpolation) schlug fehl, weil z.B. 'DelDTG' im aktuellen Verfahrsatz im NC-Programm nicht programmiert wurde
42D5
17109
Intern
"Der Sollwertgenerator der fliegenden Säge liefert inkompatible Werte (interner Fehler)."
42D6
17110
Funktion
"Achse wird intern gestoppt da sie sonst die angeforderte Zielposition überfahren würde (alter PTP-Sollwertgenerator)" Wenn z.B. bei der Online-Wandlung vom Slave zum Master eine neue Zielposition angefordert wird, die die Achse aufgrund der aktuellen Fahrsituation überfahren würde, dann wird die Achse intern gestoppt um sicherzustellen dass das Fahrziel nicht überfahren wird (alter).
42D7
17111
Funktion
"Interner Fehler bei der On-Line Wandlung des Slaves zum Master."
42D8
17112
Funktion
"Falsche Richtung bei der On-Line Wandlung des Slaves zum Master."
42DA
17114
Parameter
"Parameter der Motion Function (MF) Tabelle sind ungültig" Die Parameter der Motion Function (MF) sind unzulässig. Dies kann sich auf den erstmalig angelegten Datensatz oder auf online geänderte Daten beziehen.
42DB
17115
Parameter
"Die Parameter der Motion Function (MF) Tabelle sind ungültig" Die Parameter der Motion Function (MF) sind unzulässig. Dies kann sich auf den erstmalig angelegten Datensatz oder auf online geänderte Daten beziehen.
Fehlerursache kann sein, dass z.B. ein aktiver MF-Punkt (also kein IGNORE-Punkt) auf einen passiven MF-Punkt (also IGNORE-Punkt) zeigt.
42DC
17116
Überwachung
"Interner Fehler bei Verwendung der Motion Function (MF)" Hier ist ein interner Fehler bei Verwendung der Motion Function (MF) aufgetreten, der nicht weiter vom Anwender zu lösen ist. Bitte wenden sie sich an den TwinCAT Support.
42DD
17117
Funktion
"Achskopplung mittels Synchronisierungsgenerators wegen unzulässiger Achsdynamikwerte abgelehnt" Die Achskopplung mittels des Synchronisierungsgenerators ist abgelehnt worden, da einer der Slavedynamikparameter (Maschinendaten) unzulässig ist. Entweder ist die Maximalgeschwindigkeit, die Beschleunigung, die Verzögerung oder der Ruck kleiner gleich Null oder die erwartete Synchrongeschwindigkeit der Slaveachse ist größer als die maximal erlaubte Slavegeschwindigkeit.
42DE
17118
Funktion
"Koppelbedingungen des Synchronisierungsgenerators sind unzulässig" Bei positiver Fahrtrichtung der Masterachse muss gelten, dass die Mastersynchronposition größer als die Masterkoppelposition ist ("also in der Zukunft liegt"). Bei negativer Master-Fahrrichtung muss die Mastersynchronposition kleiner als die Masterkoppelposition sein.
42DF
17119
Überwachung
"Bewegungsprofil des Synchronisierungsgenerators verletzt eine Dynamikgrenze der Slaveachse oder eine geforderte Eigenschaft des Profils" Eine der parametrierten Überprüfungen (Checks) hat eine Überschreitung der Dynamikgrenzen (max. Geschwindigkeit, max. Beschleunigung, max. Verzögerung oder max. Ruck) der Slaveachse erkannt oder eine Profileigenschaft (z.B. Über- oder Unterschwingen in der Position oder der Geschwindigkeit) ist unzulässig.
Siehe auch zusätzliche/weitere Meldungen in der Windows Ereignisanzeige und im Meldefenster des Systemmanagers.
42E0
17120
Parameter
„Ungültiger Parameter“ Der Parameter des Encodergenerators ist unzulässig.
42E1
17121
Parameter
„Ungültiger Parameter“ Der Parameter des externen (Fifo) Generators ist unzulässig.
42E2
17122
Funktion
„Externer Generator ist aktiv“ Der externe Generator kann nicht gestartet werden, da er schon aktiv ist.
42E3
17123
Funktion
„Externer Generator ist nicht aktiv“ Der externe Generator kann nicht gestoppt werden, da er nicht aktiv ist.
42E4
17124
Funktion
"NC-Satz mit Hilfsachse verletzt Software-Endlagen der Gruppe" Mindestens eine Hilfsachse mit aktivierte Software-Endlagenüberwachung verletzt die Endlagen. Das Geometriesegment wird deshalb mit diesem Fehler abgelehnt.
42E5
17125
Funktion
"NC Satz vom Typ Bezier Kurve (Bezier Spline) enthält eine Singularität" Die Bezier Kurve (Bezier Spline) hat eine Spitze, d.h. an einem inneren Punkt streben sowohl die Krümmung als auch der Betrag der Geschwindigkeit so gegen Null, daß der Krümmungsradius unendlich ist.
Hinweis: Die Bezier Kurze sollte an genau dieser Stelle gemäß dem "Casteljau Algorithmus" geteilt werden. Diese Maßnahme erhält die Geometrie und eliminiert die innere Singularität.
42E7
17127
Parameter
„Wert für die Totzeitkompensation unzulässig“ Der Wert für die Totzeitkompensation in Sekunden für eine Slavekopplung an eine Encoder-Achse (virtuelle Achse) ist unzulässig.
Wertebereich: [0.0 ... 60.0]
Einheit: s
42E8
17128
Parameter
"GROUPERR_RANGE_NOMOTIONWINDOW"
Wertebereich: [0.0 ... 1000.0]
Einheit: z.B. mm/s
42E9
17129
Parameter
"GROUPERR_RANGE_NOMOTIONFILTERTIME"
Wertebereich: [0.0 ... 60.0]
Einheit: s
42EA
17130
Parameter
"GROUPERR_RANGE_TIMEUNITFIFO"
Wertebereich: (0.0 ... 1000.0]
Einheit: s
42EB
17131
Parameter
"GROUPERR_RANGE_OVERRIDETYPE"
Wertebereich: [1, 2]
Einheit: 1
42EC
17132
Parameter
"GROUPERR_RANGE_OVERRIDECHANGETIME"
Wertebereich: (0.0 ... 1000.0]
Einheit: s
42ED
17133
Parameter
"GROUPERR_FIFO_INVALIDDIMENSION"
Hinweis: Die FIFO-Dimension (Anzahl von Achsen) ist ab TC 2.11 Build 1547 von 8 auf 16 erhöht worden.
Wertebereich: [1 ... 8] bzw. [1 ... 16]
Einheit: 1 (Anzahl von Achsen)
42EE
17134
Adresse
"GROUPERR_ADDR_FIFOTABLE"
42EF
17135
Überwachung
"Achse wegen aktivem Stopp für Bewegungskommandos gesperrt" Die Achse/Gruppe ist für Bewegungskommandos gesperrt, da ein Stopp aktiv ist. Diese Sperre kann durch Aufrufen des Stopp-Kommandos mit Execute=FALSE oder durch einen Achs-Reset aufgehoben werden (s.a. MC_Stop und MC_Reset in TcMC2.Lib).
42F0
17136
Parameter
„Ungültige Anzahl von Hilfsachsen“ Die lokale Anzahl von Hilfsachsen stimmt nicht mit der globalen Anzahl der Hilfsachsen überein.
42F1
17137
Parameter
„Ungültiger Reduktionsparameter für Hilfsachsen“ Die Geschwindigkeitsreduktionsparameter der Hilfsachsen sind inkonsistent.
42F2
17138
Parameter
„Ungültiger Dynamikparameter für Hilfsachsen“ Die Dynamikparameter der Hilfsachsen sind inkonsistent.
42F3
17139
Parameter
„Ungültiger Koppelparameter für Hilfsachsen“ Die Koppelparameter der Hilfsachsen sind inkonsistent.
42F4
17140
Parameter
„Ungültiger Hilfsachseneintrag“ Der Hilfsachseneintrag ist leer (keine Achsbewegung).
42F6
17142
Parameter
"Ungültiger Parameter" Der Parameter für den Grenzwert der Geschwindigkeitsreduktion bei Hilfsachsen ist ungültig. Er muss im Intervall 0..1.0 liegen.
42F8
17144
Parameter
„BlockSearch - Segment nicht gefunden“ Das als Parameter angegebene Segment konnte bis zum Ende des NC-Programms nicht gefunden werden.
Mögliche Ursache:
▪
nBlockId ist nicht im durch eBlockSearchMode beschriebenen Modus angegeben
42F9
17145
Parameter
„Blocksearch – Ungültige verbleibende Segmentlänge“ Der Restweg im Parameter fLength ist falsch parametriert
42FB
17147
Überwachung
„INTERNER FEHLER“ (GROUPERR_SLAVE_INTERNAL)
42FF
17151
Überwachung
„GROUPERR_WATCHDOG“ (Kundenspezifischer Fehlercode)


Achsfehler

Anhang [image] Übersicht NC-Fehler [image] Achsfehler
Achsfehler
Fehler(Hex) | Fehler(Dez) | Fehlertyp | Beschreibung
4300 | 17152 | Parameter | „Achs-ID unzulässig“ Der Wert für die Achs-ID ist unzulässig, da er z. B. bereits vergeben ist, kleiner gleich Null, größer 255 oder nicht in der Konfiguration vorhanden ist.
 |  |  | Wertebereich: [1 ... 255] | Einheit: 1
4301 | 17153 | Parameter | „Achs-Typ unzulässig“ Der Wert für den Achs-Typ ist unzulässig, da er nicht definiert ist. Typ 1: Servo Typ 2: Eil/Schleich Typ 3: Schrittmotor
 |  |  | Wertebereich: [1 ... 3] | Einheit: 1
4306 | 17158 | Parameter | „Handgeschwindigkeit langsam unzulässig“ Der Wert für die langsame Handgeschwindigkeit ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. m/min
4307 | 17159 | Parameter | „Handgeschwindigkeit schnell unzulässig“ Der Wert für die schnelle Handgeschwindigkeit ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. m/min
4308 | 17160 | Parameter | „Eilganggeschwindigkeit unzulässig“ Der Wert für die Eilganggeschwindigkeit ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. m/min
4309 | 17161 | Parameter | „Beschleunigung unzulässig“ Der Wert für die Achsbeschleunigung ist unzulässig.
 |  |  | Wertebereich: [0.0, 1000000.0] | Einheit: z. B. m/s/s
430A | 17162 | Parameter | „Verzögerung unzulässig“ Der Wert für die Achsverzögerung ist unzulässig.
 |  |  | Wertebereich: [0.0, 1000000.0] | Einheit: z. B. m/s/s
430B | 17163 | Parameter | „Ruck unzulässig“ Der Wert für die Achsruck ist unzulässig.
 |  |  | Wertebereich: [0.0, 1000000.0] | Einheit: z. B. m/s/s/s
430C | 17164 | Parameter | „Verzögerungszeit zwischen Position und Geschw. ist unzulässig (Totzeitkompensation)“ Der Wert für die Verzögerungszeit zwischen Position und Geschwindigkeit („Totzeitkompensation“) ist unzulässig.
 |  |  | Wertebereich: [0, 0.1] | Einheit: s
430D | 17165 | Parameter | „Override-Typ unzulässig“ Der Wert für den Geschwindigkeits Override-Typ ist unzulässig, da er nicht definiert ist. Typ 1: Bezogen auf interne reduzierte Geschwindigkeit (Defaultwert) Typ 2: Bezogen auf originale externe Startgeschwindigkeit
 |  |  | Wertebereich: [1 ... 4] | Einheit: 1
430E | 17166 | Parameter | "NCI: Geschwindigkeits-Sprung-Faktor ungültig" Es wurde versucht, einen ungültigen Wert für den Geschwindigkeits-Sprung-Faktor vorzugeben. Dieser Parameter wirkt nur für TwinCAT NCI.
 |  |  | Wertebereich: [0, 1000000] | Einheit: 1
430F | 17167 | Parameter | "NCI: Größe der Toleranzkugel für die Hilfsachse ungültig" Es wurde versucht, einen ungültigen Wert für die Größe der Toleranzkugel vorzugeben. Diese Kugel wirkt nur auf die Hilfsachsen!
 |  |  | Wertebereich: [0, 1000] | Einheit: z.B. mm
4310 | 17168 | Parameter | "NCI: Größe der erlaubten Abweichung für die Hilfsachse ungültig" Es wurde versucht, einen ungültigen Wert für die Größe der erlaubten Abweichung vorzugeben. Dieser Parameter wirkt nur auf die Hilfsachsen!
 |  |  | Wertebereich: [0, 10000] | Einheit: z.B. mm
4312 | 17170 | Parameter | „Referenziergeschwindigkeit in Richtung Nocken unzulässig“ Der Wert für die Referenziergeschwindigkeit in Richtung des Referenziernockens ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. m/min
4313 | 17171 | Parameter | „Referenziergeschwindigkeit in Richtung Sync unzulässig“ Der Wert für die Referenziergeschwindigkeit in Richtung des Syncimpulses (Nullspur) ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. m/min
4314 | 17172 | Parameter | „Pulsweite in positiver Richtung unzulässig“ Der Wert für die Pulsweite in positiver Richtung ist unzulässig (Pulsbetrieb). Die Nutzung der Pulsweite für eine Positionierung ist implizit über den Achsstarttyp auszuwählen. Der Pulsbetrieb entspricht einer Positionierung um einen relativen Verfahrweg, der genau der Pulsweite entspricht.
 |  |  | Wertebereich: [0.0, 1000000.0] | Einheit: z. B. mm
4315 | 17173 | Parameter | „Pulsweite in negativer Richtung unzulässig“ Der Wert für die Pulsweite in negativer Richtung ist unzulässig (Pulsbetrieb). Die Nutzung der Pulsweite für eine Positionierung ist implizit über den Achsstarttyp auszuwählen. Der Pulsbetrieb entspricht einer Positionierung um einen relativen Verfahrweg, der genau der Pulsweite entspricht.
 |  |  | Wertebereich: [0.0, 1000000.0 | Einheit: z. B. mm
4316 | 17174 | Parameter | „Pulszeit in positiver Richtung unzulässig“ Der Wert für die Pulsweite in positiver Richtung ist unzulässig (Pulsbetrieb).
 |  |  | Wertebereich: [0.0, 600.0] | Einheit: s
4317 | 17175 | Parameter | „Pulszeit in negativer Richtung unzulässig“ Der Wert für die Pulsweite in negativer Richtung ist unzulässig (Pulsbetrieb).
 |  |  | Wertebereich: [0.0, 600.0] | Einheit: s
4318 | 17176 | Parameter | „Schleichweg in positiver Richtung unzulässig“ Der Wert für den Schleichweg in positiver Richtung ist unzulässig.
 |  |  | Wertebereich: [0.0, 100000.0] | Einheit: z. B. mm
4319 | 17177 | Parameter | „Schleichweg in negativer Richtung unzulässig“ Der Wert für den Schleichweg in negativer Richtung ist unzulässig.
 |  |  | Wertebereich: [0.0, 100000.0] | Einheit: z. B. mm
431A | 17178 | Parameter | „Bremsweg in positiver Richtung unzulässig“ Der Wert für den Bremsweg in positiver Richtung ist unzulässig.
 |  |  | Wertebereich: [0.0, 100000.0] | Einheit: z. B. mm
431B | 17179 | Parameter | „Bremsweg in negativer Richtung unzulässig“ Der Wert für den Bremsweg in negativer Richtung ist unzulässig.
 |  |  | Wertebereich: [0.0, 100000.0] | Einheit: z. B. mm
431C | 17180 | Parameter | „Bremszeit in positiver Richtung unzulässig“ Der Wert für die Bremszeit in positiver Richtung ist unzulässig.
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
431D | 17181 | Parameter | „Bremszeit in negativer Richtung unzulässig“ Der Wert für die Bremszeit in negativer Richtung ist unzulässig.
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
431E | 17182 | Parameter | „Umschaltzeit von Eil- auf Schleichgang unzulässig“ Der Wert für die Umschaltzeit von Eil- auf Schleichgang ist unzulässig.
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
431F | 17183 | Parameter | „Schleichweg für Stopp unzulässig“ Der Wert für den Schleichweg für einem expliziten Stopp ist unzulässig.
 |  |  | Wertebereich: [0.0, 100000.0] | Einheit: z. B. mm
4320 | 17184 | Parameter | „Bewegungsüberwachung unzulässig“ Der Wert für die Aktivierung der Bewegungsüberwachung ist unzulässig.
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4321 | 17185 | Parameter | „Positionsfensterüberwachung unzulässig“ Der Wert für die Aktivierung der Positionsfensterüberwachung ist unzulässig.
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4322 | 17186 | Parameter | „Zielfensterüberwachung unzulässig“ Der Wert für die Aktivierung der Zielfensterüberwachung ist unzulässig.
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4323 | 17187 | Parameter | „Schleife unzulässig“ Der Wert für die Aktivierung des Schleifenweges ist unzulässig.
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4324 | 17188 | Parameter | „Bewegungsüberwachungszeit unzulässig“ Der Wert für die Bewegungsüberwachungszeit ist unzulässig.
 |  |  | Wertebereich: [0.0, 600.0] | Einheit: s
4325 | 17189 | Parameter | „Zielfensterbereich unzulässig“ Der Wert für das Zielfenster ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. mm
4326 | 17190 | Parameter | „Positionsfensterbereich unzulässig“ Der Wert für das Positionsfenster ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. mm
4327 | 17191 | Parameter | „Positionsfensterüberwachungszeit unzulässig“ Der Wert für die Positionsfensterüberwachungszeit ist unzulässig.
 |  |  | Wertebereich: [0.0, 600.0] | Einheit: s
4328 | 17192 | Parameter | „Schleifenweg unzulässig“ Der Wert für den Schleifenweg ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. mm
4329 | 17193 | Parameter | „Achszykluszeit unzulässig“ Der Wert für die Achszykluszeit ist unzulässig.
 |  |  | Wertebereich: [0.001, 0.1] | Einheit: s
432A | 17194 | Parameter | „Betriebsmodus Schrittmotor unzulässig“ Der Wert für den Schrittmotorbetriebsmodus ist unzulässig.
 |  |  | Wertebereich: [1, 2] | Einheit: 1
432B | 17195 | Parameter | „Weglänge pro Schrittmotorschritt unzulässig“ Der Wert für die Weglänge eines Schrittmotorschrittes ist unzulässig (Skalierung eines Schrittes).
 |  |  | Wertebereich: [0.000001, 1000.0] | Einheit: z. B. mm/STEP
432C | 17196 | Parameter | „Minimalgeschwindigkeit für Schrittmotorsollwertprofil unzulässig“ Der Wert für die Minimalgeschwindigkeit des Schrittmotorgeschwindigkeitsprofils ist unzulässig.
 |  |  | Wertebereich: [0.0, 1000.0] | Einheit: z. B. m/min
432D | 17197 | Parameter | „Schrittmotorstufen pro Geschwindigkeitsstufe unzulässig“ Der Wert für die Anzahl der Schritte pro Geschwindigkeitsstufe der Sollwertgenerierung ist unzulässig.
 |  |  | Wertebereich: [0, 100] | Einheit: 1
432E | 17198 | Parameter | „DWORD für die Interpretation der Achseinheiten unzulässig“ Der Wert, der Flags für die Interpretation der Positions- und Geschwindigkeitseinheiten enthält ist unzulässig.
 |  |  | Wertebereich: [0, 0xFFFFFFFF] | Einheit: 1
432F | 17199 | Parameter | „Maximalgeschwindigkeit unzulässig“ Der Wert für die maximale erlaubte Geschwindigkeit ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. m/min
4330 | 17200 | Parameter | „Bewegungsüberwachungsfenster unzulässig“ Der Wert für das Bewegungsüberwachungsfenster ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. mm
4331 | 17201 | Parameter | „PEH-Zeitüberwachung unzulässig“ Der Wert für die Aktivierung der PEH-Zeitüberwachung ist unzulässig (PEH: Positionierung Ende und Halt).
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4332 | 17202 | Parameter | „PEH-Überwachungszeit unzulässig“ Der Wert für die PEH-Überwachungszeit (Timeout) ist unzulässig (PEH: Positionierung Ende und Halt). Defaultwert: 5s
 |  |  | Wertebereich: [0.0, 600.0] | Einheit: s
4333 | 17203 | Parameter | „AXISERR_RANGE_DELAYBREAKRELEASE“
4334 | 17204 | Parameter | „AXISERR_RANGE_DATAPERSISTENCE“
433A | 17210 | Parameter | „AXISERR_RANGE_POSDIFF_FADING_ACCELERATION“
433B | 17211 | Parameter | "Signaltyp des 'Fast Axis Stop' unzulässig" Der Wert für den Signaltyp des 'Fast Axis Stop' ist unzulässig [0...5].
4340 | 17216 | Initialisierung | „Initialisierung Achse“ Achse ist nicht initialisiert worden. Achse wurde zwar erzeugt, allerdings nicht weiter initialisiert (1. Initialisierung Achs-IO, 2. Initialisierung Achse, 3. Reset Achse).
4341 | 17217 | Adresse | „Adresse Gruppe“ Achse besitzt keine Gruppe (Group) bzw. die Gruppenadresse ist nicht initialisiert worden (Gruppe beinhaltet die Sollwertgenerierung).
4342 | 17218 | Adresse | „Adresse Geber“ Achse besitzt keinen Geber (Encoder) bzw. die Geberadresse ist nicht initialisiert worden.
4343 | 17219 | Adresse | „Adresse Regler“ Achse besitzt keinen Regler (Controller) bzw. die Regleradresse ist nicht initialisiert worden.
4344 | 17220 | Adresse | „Adresse Antrieb“ Achse besitzt keinen Antrieb (Drive) bzw. die Antriebadresse ist nicht initialisiert worden.
4345 | 17221 | Adresse | „Adresse Achsinterface SPS zur NC“ Achse besitzt kein Achsinterface von der SPS zur NC (PLC to NC) bzw. ist die Achsinterfaceadresse nicht initialisiert worden.
4346 | 17222 | Adresse | „Adresse Achsinterface NC zur SPS“ Achse besitzt kein Achsinterface von der NC zur SPS (NC to PLC) bzw. ist die Achsinterfaceadresse nicht initialisiert worden.
4347 | 17223 | Adresse | „Größe Achsinterface NC zur SPS unzulässig“ (INTERNER FEHLER) Die Größe des Achsinterfaces von der NC zur SPS (NC to PLC) ist unzulässig.
4348 | 17224 | Adresse | „ Größe Achsinterface SPS zur NC unzulässig “(INTERNER FEHLER) Die Größe des Achsinterfaces von der SPS zur NC (PLC to NC) ist unzulässig.
4356 | 17238 | Überwachung | „Reglerfreigabe“ Reglerfreigabe für Achse nicht vorhanden (s. Achsinterface SPS®NC). Diese Freigabe wird z. B. für einen Positionierauftrag einer Achse überprüft.
4357 | 17239 | Überwachung | „Vorschubfreigabe Minus“ Vorschubfreigabe für negative Verfahrrichtung nicht vorhanden (s. Achsinterface SPS®NC) Diese Freigabe wird z. B. für einen Positionierauftrag einer Achse in negativer Richtung überprüft.
4358 | 17240 | Überwachung | „Vorschubfreigabe Plus“ Vorschubfreigabe für positive Verfahrrichtung nicht vorhanden (s. Achsinterface SPS®NC) Diese Freigabe wird z. B. für einen Positionierauftrag einer Achse in positiver Richtung überprüft.
4359 | 17241 | Überwachung | „Sollgeschwindigkeit unzulässig“ Die geforderte Sollgeschwindigkeit für einen Positionierauftrag ist nicht erlaubt. Dies kann der Fall sein, wenn die Geschwindigkeit kleiner gleich Null, größer als die maximal erlaubte Achsgeschwindigkeit oder bei Servo-Antrieben größer als die Bezugsgeschwindigkeit der Achse ist (s. Achs- und Driveparameter).
435A | 17242 | Überwachung | „Verfahrweg kleiner ein Geberinkrement“ (INTERNER FEHLER) Der Verfahrweg einer Achse ist bezogen auf einen Positionierauftrag kleiner einem Geberinkrement (s. Skalierungsfaktor). Diese Information wird allerdings intern so verwertet, dass ohne Rückgabe einer Fehlermeldung die Positionierung als beendet gilt.
435B | 17243 | Überwachung | „Überwachung Sollbeschleunigung“ (INTERNER FEHLER) Die Sollbeschleunigung hat die maximal zulässigen Beschleunigungs- bzw. Verzögerungsparameter der Achse überschritten
435C | 17244 | Überwachung | „PEH-Zeitüberwachung“ Die PEH-Zeitüberwachung hat nach einer Positionierung und nach Ablauf der daran anschließenden PEH-Überwachungszeit erkannt, dass das Zielpositionsfenster nicht erreicht worden ist. Folgende Überprüfungen müssen vorgenommen werden: Ist die PEH-Überwachungszeit im Sinne einer Timeout Überwachung genügend groß eingestellt (z.B. 1-5s) ? Die PEH-Überwachungszeit muss deutlich größer als die Zielpositionsüberwachungszeit gewählt werden. Sind die Kriterien für die Zielpositionsüberwachung (Bereichfenster und Zeit) zu streng eingestellt ? Anmerkung: Die PEH-Zeitüberwachung wirkt nur bei aktiver Zielpositionsüberwachung!
435D | 17245 | Überwachung | „Encoder-Existenz-Überwachung / Bewegungsüberwachung“ Der Encoderistwert hat sich bei aktiver Positionierung für eine vorgegebene Überwachungszeit von NC-Zyklus zu NC-Zyklus durchgehend um weniger als die vorgegebene Mindestbewegungungsschranke geändert. => Prüfen ob Achse mechanisch blockiert ist, oder das Encodersystem ausgefallen ist, etc..Anmerkung: Die Überwachung wird nicht im logischen Stillstand (Lageregelung) der Achse ausgewertet, sondern nur bei aktiver Positionierung (würde auch keinen Sinn machen, wenn es im Stillstand eine mechanische Haltebremse gibt)!
435E | 17246 | Überwachung | „Schleifenweg kleiner als Bremsweg“ Die angewählte Schleifenweg ist betragsmäßig kleiner gleich dem positiven bzw. negativen Bremsweg. Dies ist nicht erlaubt.
4361 | 17249 | Überwachung | „Zeitbereichsüberschreitung (Zukunft)“ Die berechnete Position liegt zu weit in der Zukunft (z.B. bei der Konvertierung von einer Position in eine zugehörige DC-Zeit ).
4362 | 17250 | Überwachung | „Zeitbereichsüberschreitung (Vergangenheit)“ Die berechnete Position liegt zu weit in der Vergangenheit (z.B. bei der Konvertierung von einer Position in eine zugehörige DC-Zeit).
4363 | 17251 | Überwachung | „Position nicht ermittelbar“ Die angefragte Position ist mathematisch nicht zu ermitteln, da sie a) in der Vergangenheit niemals erreicht wurde oder b) in Zukunft niemals erreicht werden wird (z.B. wenn die Achsgeschwindigkeit Null ist oder wenn aufgrund einer Beschleunigung eine Bewegungsumkehr stattfindet).
4364 | 17252 | Überwachung | „Position nicht ermittelbar (widersprüchliche Fahrtrichtung)“ Die vom Aufrufer der Funktion erwartete Fahrtrichtung weicht von der tatsächlichen Fahrtrichtung ab (Widerspruch zwischen SPS und NC Sicht bei z.B. der Konvertierung von einer Position in eine DC-Zeit).
43A0 | 17312 | Intern | „Achsfolgefehler“ Folgefehler, der durch einen anderen verursachenden Fehler einer weiteren Achse veranlasst worden ist. Achsfolgefehler können im Zusammenhang mit Master/Slave-Kopplung oder mit einer mehrachsigen interpolierenden DXD-Gruppe auftreten.


Geberfehler

Anhang [image] Übersicht NC-Fehler [image] Geberfehler
Geberfehler
Fehler(Hex) | Fehler(Dez) | Fehlertyp | Beschreibung
4400 | 17408 | Parameter | „Geber-ID unzulässig“ Der Wert für die Geber-ID ist unzulässig, da er z. B. bereits vergeben ist, kleiner gleich Null ist oder größer 255 ist.
 |  |  | Wertebereich: [1 ... 255] | Einheit: 1
4401 | 17409 | Parameter | „Geber-Typ unzulässig“ Der Wert für den Geber-Typ ist unzulässig, da er nicht definiert ist. Typ 1: Simulation (Inkremental) Typ 2: M3000 (24 Bit Absolut) Typ 3: M31x0 (24 Bit Inkremental) Typ 4: KL5101 (16 Bit Inkremental) Typ 5: KL5001 (24 Bit Absolut SSI) Typ 6: KL5051 (16 Bit BISSI)
 |  |  | Wertebereich: [1 ... 6] | Einheit: 1
4402 | 17410 | Parameter | „Gebermodus“ Der Wert für den Gebermodus (Betriebsart) ist unzulässig. Modus 1: Ermittlung der Istposition Modus 2: Ermittlung der Istposition und der Istgeschwindigkeit (Filter)
 |  |  | Wertebereich: [1, 2] | Einheit: 1
4403 | 17411 | Parameter | „Geberzählrichtung invers ?“ Das Flag für die Geberzählrichtung ist unzulässig. Flag 0: Positive Geberzählrichtung Flag 1: Negative Geberzählrichtung
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4404 | 17412 | Initialisierung | „Referenzierstatus“ Das Flag für den Referenzierstatus ist unzulässig. Flag 0: Achse ist nicht referenziert Flag 1: Achse ist referenziert
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4405 | 17413 | Parameter | „Geberinkremente pro physikalische Geberumdrehung“ Der Wert für die Anzahl der Geberinkremente pro physikalische Geberumdrehung ist unzulässig. Dieser Wert dient zur softwaretechnischen Geberüberlauf- und Geberunterlaufverrechnung.
 |  |  | Wertebereich: [255, 0xFFFFFFFF] | Einheit: INC
4406 | 17414 | Parameter | „Skalierungsfaktor“ Der Wert für den Skalierungsfaktor ist unzulässig. Dieser Skalierungsfaktor gewichtet ein Geberinkrement (INC) zu einer physikalischen Einheit wie z.B. Millimeter oder Grad.
 |  |  | Wertebereich: [0.000001, 100.0] | Einheit: z. B. mm/INC
4407 | 17415 | Parameter | „Positionsoffset (Nullpunktoffset)“ Der Wert für den Positionsoffset des Gebers ist unzulässig. Dieser Wert wirkt sich additiv zu der verrechneten Geberposition aus und wird in den physikalischen Einheit des Gebers interpretiert.
 |  |  | Wertebereich: [-1000000.0, 1000000.0] | Einheit: z. B. mm
4408 | 17416 | Parameter | „Modulofaktor“ Der Wert für den Modulofaktor des Gebers ist unzulässig.
 |  |  | Wertebereich: [1.0, 1.0E+9] | Einheit: z. B. mm oder Grad
4409 | 17417 | Parameter | „Positionsfilterzeit“ Der Wert für die Istpositionsfilterzeit ist unzulässig (P-T1-Filter).
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
440A | 17418 | Parameter | „Geschwindigkeitsfilterzeit“ Der Wert für die Istgeschwindigkeitsfilterzeit ist unzulässig (P-T1-Filter).
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
440B | 17419 | Parameter | „Beschleunigungsfilterzeit“ Der Wert für die Istbeschleunigungsfilterzeit ist unzulässig (P-T1-Filter).
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
440C | 17420 | Initialisierung | „Zykluszeit unzulässig“ (INTERNER FEHLER) Der Wert für die SAF-Zykluszeit der Istwertberechnung ist unzulässig (z. B. kleiner gleich Null).
440D | 17421 | Initialisierung | „ “ ENCERR_RANGE_UNITFLAGS
440E | 17422 | Parameter | „Istpositionskorrektur / Messsystemfehlerkorrektur“ Der Wert für die Aktivierung der Istpositionskorrektur („Meßsystemfehlerkorrektur“) ist unzulässig.
 |  |  | Wertebereich: [0, 1] |
440F | 17423 | Parameter | „Filterzeit Istpositionskorrektur “ Der Wert für die Istpositionskorrekturfilterzeit ist unzulässig (P-T1-Filter).
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: 1
4410 | 17424 | Parameter | „Suchrichtung für Referenziernocken invers“ Der Wert für die Suchrichtung des Referenziernockens bei einem Referenziervorgang ist unzulässig. Wert 0: Positive Richtung Wert 1: Negative Richtung
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4411 | 17425 | Parameter | „Suchrichtung für Syncimpuls (Nullimpuls) invers“ Der Wert für die Suchrichtung des Syncimpuls (Nullimpuls) bei einem Referenziervorgang ist unzulässig. Wert 0: Positive Richtung Wert 1: Negative Richtung
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4412 | 17426 | Parameter | „Referenzposition“ Der Wert für die Referenzposition bei einem Referenziervorgang ist unzulässig.
 |  |  | Wertebereich: [-1000000.0, 1000000.0] | Einheit: z. B. mm
4413 | 17427 | Parameter | „Abstandsüberwachung zwischen Aktivierung des Hardwarelatch und Eintritt des Syncimpuls“ (NICHT IMPLEMENTIERT) Das Flag für die Abstandsüberwachung zwischen Aktivierung des Hardwarelatch und Eintritt des Sync/Nullimpuls („latch valid“) ist unzulässig. Wert 0: Passiv Wert 1: Aktiv
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4414 | 17428 | Parameter | „Mindestabstand zwischen Aktivierung des Hardwarelatch und Eintritt des Syncimpuls“ (NICHT IMPLEMENTIERT) Der Wert für den Mindestabstand in Inkrementen zwischen der Aktivierung des Hardwarelatch und Eintritt des Sync/Nullimpuls („latch valid“) bei einem Referenziervorgang ist unzulässig.
 |  |  | Wertebereich: [0, 65536] | Einheit: INC
4415 | 17429 | Parameter | „Externer Syncimpuls“ (NICHT IMPLEMENTIERT) Der Wert für die Aktivierung bzw. Deaktivierung des externen Syncimpuls bei einem Referenziervorgang ist unzulässig. Wert 0: Passiv Wert 1: Aktiv
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4416 | 17430 | Parameter | „Skalierung Rauschanteil unzulässig“ Der Wert für die Skalierung (Gewichtung) des synthetischen Rauschanteils ist unzulässig. Dieser Parameter existiert nur beim Simulationsencoder und dient einer realistischen Simulation.
 |  |  | Wertebereich: [0, 1000000] | Einheit: 1
4417 | 17431 | Parameter | „Toleranzfenster für Modulo-Achs-Start“ Der Wert für das Tolerenzfenster beim Modulo-Achsstart ist unzulässig. Dieser Wert muss größer gleich Null und kleiner als die Hälfte der Encoder-Modulo-Periode sein (z. B. im Intervall [0.0,180.0) ).
 |  |  | Wertebereich: [0.0, 180.0], Max: 0.5*Modulo-Periode | Einheit: z. B. mm oder Grad
4418 | 17432 | Parameter | „Encoder-Referenziermodus“ Der Wert für den Encoder Referenziermodus ist unzulässig bzw. wird für diesen Encodertyp nicht unterstützt.
 |  |  | Wertebereich: [0, 5] | Einheit: 1
4419 | 17433 | Parameter | „Encoder-Auswerterichtung“ Der Wert für die Encoder-Auswerterichtung (log. Zählrichtung) ist unzulässig.
 |  |  | Wertebereich: [0, 3] | Einheit: 1
441A | 17434 | Parameter | „Encoder-Bezugsmaßsystem“ Der Wert für das Encoder-Bezugsmaßsystem (0: INKREMENTAL, 1: ABSOLUT, 2: ABSOLUT+MODULO) ist unzulässig.
 |  |  | Wertebereich: [0, 2] | Einheit: 1
441B | 17435 | Parameter | „Encoder-Positionsinitialisierungsmodus“ Der Wert für den Encoder-Positionsinitialisierungsmodus bei Systemstart ist unzulässig.
 |  |  | Wertebereich: [0, 1] | Einheit: 1
441C | 17436 | Parameter | „Encoder-Vorzeicheninterpretation (UNSIGNED/SIGNED-Datentyp)“ Der Wert für die Encoder-Vorzeicheninterpretation (Datentyp) der Encoder-Istinkremente (0: default/nicht definiert, 1: UNSIGNED, 2: SIGNED) ist unzulässig.
 |  |  | Wertebereich: [0, 2] | Einheit: 1
4420 | 17440 | Parameter | „Software Endlagenüberwachung Minimum unzulässig“ Der Wert für die Aktivierung der Software Endlagenüberwachung Minimum ist unzulässig.
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4421 | 17441 | Parameter | „Software Endlagenüberwachung Maximum unzulässig“ Der Wert für die Aktivierung der Software Endlagenüberwachung Maximum ist unzulässig.
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4422 | 17442 | Funktion | „Istwertsetzen liegt außerhalb des Wertebereiches“ Die Funktion „Istwertsetzen“ kann nicht ausgeführt werden, da die neue Istposition außerhalb des vorgesehenen Wertebereiches liegt.
 |  |  | Wertebereich: [-1000000.0, 1000000.0] | Einheit: z. B. mm
4423 | 17443 | Parameter | „Software Endlage Minimum unzulässig“ Der Wert für die Software Endlage Minimum ist unzulässig.
 |  |  | Wertebereich: [-1000000000.0, 1000000000.0] | Einheit: z. B. mm
4424 | 17444 | Parameter | „Software Endlage Maximum unzulässig“ Der Wert für die Software Endlage Maximum ist unzulässig.
 |  |  | Wertebereich: [-1000000000.0, 1000000000.0] | Einheit: z. B. mm
4425 | 17445 | Parameter | „Filtermaske für Encoder Rohwert unzulässig“ Der Wert für die Filtermaske des Encoder-Rohwertes in Inkrementen ist unzulässig.
 |  |  | Wertebereich: [0x0, 0xFFFFFFFF] | Einheit: 1
4426 | 17446 | Parameter | „Referenzmaske für Encoder Rohwert unzulässig“ Der Wert für die Referenzmaske (Inkremente pro Geberumdrehung, Absolut-Auflösung) des Encoder-Rohwertes in Inkrementen ist unzulässig. Dieser Wert dient z.B. für das Referenzieren einer Achse mit dem Referenziermode "Software Sync".
 |  |  | Wertebereich: [0x0000000F, 0xFFFFFFFF] | Einheit: 1
4430 | 17456 | Funktion | „Aktivierung Hardwarelatch (Geber)“ Die Aktivierung des Geber-Hardwarelatch wird implizit durch den Referenziervorgang ausgelöst. Falls bereits diese Funktion zuvor ausgelöst worden ist und ein Latchwert bisher nicht gültig geworden ist („latch valid“), wird ein erneuter Aufruf dieser Funktion mit diesem Fehler abgelehnt.
4431 | 17457 | Funktion | „Aktivierung externer Hardwarelatch / Meßtasterfunktion (Geber)“ Die Aktivierung des externen Hardwarelatch (nur für KL5101, SERCOS, AX2xxx verfügbar) wird explizit durch ein ADS-Kommando ausgelöst (Aufruf aus SPS-Programm oder Visual Basic Oberfläche). Falls bereits diese Funktion zuvor ausgelöst worden ist und der Latchwert bisher nicht durch ein externes Signal gültig geworden ist („extern latch valid“ oder "Meßtaster gelatcht" bzw. "Echtzeitstatusbit"), wird ein erneuter Aufruf dieser Funktion mit diesem Fehler abgelehnt. Ebenfalls ist es möglich, dass diese Funktion wegen einer anderen zeitgleichen Funktion, wie das Referenzieren einer Inkrementalencoderachse, nicht ausgeführt werden kann.
4432 | 17458 | Funktion | „Aktivierung externer Hardwarelatch (Geber)“ Falls zuvor ein Referenziervorgang ausgelöst worden ist und die Hardware noch einen gültigen Latchwert signalisiert („latch valid“), darf diese Funktion nicht ausgelöst werden. Allerdings kann dieser Fehler in der Praxis quasi niemals auftreten.
4433 | 17459 | Funktion | „Aktivierung externer Hardwarelatch / Messtasterfunktion (Geber)“ Diese Funktion ist zuvor aktiviert worden und seit dem noch nicht fertig geworden (die interne Handshake-Kommunikation zwischen NC und IO-Gerät ist noch aktiv). In der Zwischenzeit ist eine erneute Aktivierung nicht erlaubt und wird deshalb mit einem Fehler abgewiesen. (Falls bereits diese Funktion zuvor ausgelöst worden ist und die Hardware noch signalisiert, dass der externe Latchwert schon gültig ist („extern latch valid“ oder "Messtaster gelatcht" bzw. "Echtzeitstatusbit"), darf eine erneute Aktivierung nicht ausgeführt werden. In diesem Fall würde irrtümlich sofort die Gültigkeit des externen Hardwarelatch signalisiert werden, allerdings noch mit einem alten Latchwert.)
4434 | 17460 | Überwachung | „Encoder-Funktion wird nicht unterstützt“ Es ist eine Encoder-Funktionalität ausgelöst worden, die nicht zur Benutzung freigegeben ist bzw. die nicht implementiert ist.
4435 | 17461 | Überwachung | „Encoder-Funktion bereits aktiv“ Es ist eine Encoder-Funktionalität ausgelöst worden, die nicht aktiviert werden kann, da sie bereits aktiv ist.
4440 | 17472 | Initialisierung | „Initialisierung Geber“ Geber ist nicht initialisiert worden. Achse wurde zwar erzeugt, allerdings nicht weiter initialisiert (1. Initialisierung Achs-IO, 2. Initialisierung Achse, 3. Reset Achse).
4441 | 17473 | Adresse | „Adresse Achse“ Geber besitzt keine Achse bzw. die Achsadresse ist nicht initialisiert worden.
4442 | 17474 | Adresse | „Adresse IO-Eingangsstruktur“ Antrieb besitzt keine gültige IO-Eingangsadresse im Prozessabbild.
4443 | 17475 | Adresse | „Adresse IO-Ausgangsstruktur“ Geber besitzt keine gültige IO-Ausgangsadresse im Prozessabbild.
4450 | 17488 | Überwachung | „Unterlaufüberwachung von Geberzähler“ Der Geberinkrementalzähler ist unterlaufen worden („underflow“).
4451 | 17489 | Überwachung | „Überlaufüberwachung von Geberzähler“ Der Geberinkrementalzähler ist überlaufen worden („overflow“).
4460 | 17504 | Überwachung | „Software Endlage Minimum (Achsstart)“ Bei aktiver Software-Endlagenüberwachung für Minimum ist auf eine Position gestartet worden, die unterhalb der Softwareendlage Minimum liegt.
4461 | 17505 | Überwachung | „Software Endlage Maximum (Achsstart)“ Bei aktiver Software-Endlagenüberwachung für Maximum ist auf eine Position gestartet worden, die oberhalb der Softwareendlage Maximum liegt.
4462 | 17506 | Überwachung | „Software Endlage Minimum (Positioniervorgang)“ Bei aktiver Software-Endlagenüberwachung für Minimum hat die Istposition die Softwareendlage Minimum unterschritten. Bei Servo-Achsen (kontinuierlich geführte Achsen) ist diese Schranke um den Betrag des parametrierten Schleppabstandfensters (Position) erweitert worden.
4463 | 17507 | Überwachung | „Software Endlage Maximum (Positioniervorgang)“ Bei aktiver Software-Endlagenüberwachung für Maximum hat die Istposition die Softwareendlage Maximum überschritten. Bei Servo-Achsen (kontinuierlich geführte Achsen) ist diese Schranke um den Betrag des parametrierten Schleppabstandfensters (Position) erweitert worden.
4464 | 17508 | Überwachung | „Encoder Hardwarefehler“ Der Antrieb bzw. das Encodersystem meldet einen Hardwarefehler des Encoders. Ein optionaler Fehlercode ist voraussichtlich der Meldung in der Ereignisanzeige zu entnehmen.
4465 | 17509 | Überwachung | „Positionsinitialisierungsfehler bei Systemstart“ Beim erstmaligen Initialisieren der Istposition lag diese für alle drei Initialisierungsversuche (ohne Über-/Unterlauf, mit Unterlauf und mit Überlauf ) außerhalb der Positionsendlagen Minimum und Maximum.
4470 | 17520 | Überwachung | „SSI-Wandlung fehlerhaft bzw. nicht fertig geworden“ Die SSI-Wandlung des FOX 50 Moduls ist für mehrere NC-Zyklen fehlerhaft gewesen bzw. nicht fertig geworden.
44A2 | 17570 | Überwachung | „ENCERR_ADDR_CONTROLLER“
44A3 | 17571 | Überwachung | „ENCERR_INVALID_CONTROLLERTYPE“


Reglerfehler

Anhang [image] Übersicht NC-Fehler [image] Reglerfehler
Reglerfehler
Fehler(Hex) | Fehler(Dez) | Fehlertyp | Beschreibung
4500 | 17664 | Parameter | „Regler-ID unzulässig“ Der Wert für die Regler-ID ist unzulässig, da er z. B. bereits vergeben ist, kleiner gleich Null ist oder größer 255 ist.
 |  |  | Wertebereich: [1 ... 255] | Einheit: 1
4501 | 17665 | Parameter | „Regler-Typ unzulässig“ Der Wert für den Regler-Typ ist unzulässig, da er nicht definiert ist. Typ 1: P-Regler (Position) . . . Typ 7: Eil/Schleich-Regler Typ 8: Schrittmotor-Regler Typ 9: Sercos-Regler
 |  |  | Wertebereich: [1 ... 8] | Einheit: 1
4502 | 17666 | Parameter | „Betriebsmodus Regler unzulässig“ Der Wert für den Reglerbetriebsmodus ist unzulässig.
 |  |  | Wertebereich: [1] | Einheit: 1
4503 | 17667 | Parameter | „Gewichtung der Geschwindigkeitsvorsteuerung unzulässig“ Der Wert für die prozentuale Gewichtung der Geschwindigkeitsvorsteuerung ist unzulässig. Als Standard ist der Parameter mit 1.0 (100%) vorbesetzt.
 |  |  | Wertebereich: [0.0 ... 1.0] | Einheit: %
4504 | 17668 | Parameter | „Schleppabstandsüberwachung (Position) unzulässig“ Der Wert für die Aktivierung der Schleppabstandsüberwachung ist unzulässig.
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4505 | 17669 | Parameter | „Schleppüberwachung (Geschwindigkeit) unzulässig“ Der Wert für die Aktivierung der Schleppgeschwindigkeitsüberwachung (Geschwindigkeit) ist unzulässig.
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4506 | 17670 | Parameter | „Schleppabstandsfenster (Position) unzulässig“ Der Wert für das Schleppabstandsfenster (maximal zulässiger Schleppabstand) ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. mm
4507 | 17671 | Parameter | „Schleppfilterzeit (Position) unzulässig“ Der Wert für die Schleppfilterzeit (Position) ist unzulässig.
 |  |  | Wertebereich: [0.0, 600.0] | Einheit: s
4508 | 17672 | Parameter | „Schleppgeschwindigkeitsfenster (Geschwindigkeit) unzulässig“ Der Wert für das Schleppgeschwindigkeitsfenster (Geschwindigkeit) ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. m/min
4509 | 17673 | Parameter | „Schleppfilterzeit (Geschwindigkeit) unzulässig“ Der Wert für die Schleppfilterzeit (Geschwindigkeit) ist unzulässig.
 |  |  | Wertebereich: [0.0, 600.0] | Einheit: s
4510 | 17680 | Parameter | „Proportionalverstärkung Kv bzw. Kp (regler) unzulässig“ Positions Der Wert für die Proportionalverstärkung (Kv-Faktor bzw. Kp-Faktor) ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. mm/s/mm
4511 | 17681 | Parameter | „Nachstellzeit Tn (regler) unzulässig“ Positions Der Wert für die Nachstellzeit ist unzulässig (I-Anteil des PID-T1-Reglers).
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
4512 | 17682 | Parameter | „Vorhaltzeit Tv (regler) unzulässig“ Positions Der Wert für die Vorhaltzeit ist unzulässig (D-Anteil des PID-T1-Reglers).
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
4513 | 17683 | Parameter | „Dämpfungszeit Td (regler) unzulässig“ Positions Der Wert für die Dämpfungszeit ist unzulässig (D-Anteil des PID-T1-Reglers).
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
4514 | 17684 | Funktion | „Aktivieren des automatischen Offsetabgleichs unzulässig“ Das Aktivieren des automatischen Offsetabgleichs ist nur für bestimmte Reglertypen (ohne I-Anteil) möglich.
4515 | 17685 | Parameter | „Zusätzliche Proportionalverstärkung Kv bzw. Kp (regler) unzulässig“ Positions Der Wert für den zweiten Satz der Proportionalverstärkung (Kv-Faktor bzw. Kp-Faktor) ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. mm/s/mm
4516 | 17686 | Parameter | „Bezugsgeschwindigkeit für zusätzliche Proportionalverstärkung Kv bzw. Kp (regler) unzulässig“ Positions Der Wert für die prozentuale Angabe der Bezugsgeschwindigkeit, ab der die zusätzliche Proportionalverstärkung gilt ist unzulässig. Als Standard Einstellung ist der Parameter mit 0.5 (50%) vorbesetzt.
 |  |  | Wertebereich: [0.0 ... 1.0] | Einheit: %
4517 | 17687 | Parameter | „Proportionalverstärkung Pa (anteil) unzulässig“ Beschleunigungs Der Wert für die Proportionalverstärkung (Pa-Faktor) ist unzulässig.
 |  |  | Wertebereich: [0.0, 1000000.0] | Einheit: s
4518 | 17688 | Parameter | „Proportionalverstärkung Kv (regler) unzulässig“ Geschwindigkeits Der Wert für die Proportionalverstärkung (Kv-Faktor) ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: 1
4519 | 17689 | Parameter | „Nachstellzeit Tn (regler) unzulässig“ Geschwindigkeits Der Wert für die Nachstellzeit ist unzulässig (I-Anteil des PID-T1-Reglers).
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
451A | 17690 | Adresse | "CONTROLERR_RANGE_ACCJUMPLIMITINGMODE"
451B | 17691 | Adresse | "CONTROLERR_RANGE_ACCJUMPVALUE"
451C | 17692 | Adresse | "CONTROLERR_RANGE_FILTERTIME"
451D | 17693 | Parameter | „Totzone ist unzulässig“ Der Wert für die Totzone (neutrale Zone) des Positions- bzw. des Geschwindigkeitsfehlers (Regelabweichung) ist unzulässig (gilt für komplexere Regler mit Geschwindigkeits- oder Momenteninterface).
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: mm bzw. mm/s
4520 | 17696 | Parameter | „Vorhaltzeit Tv (regler) unzulässig“ Geschwindigkeits Der Wert für die Vorhaltzeit ist unzulässig (D-Anteil des PID-T1-Reglers).
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
4521 | 17697 | Parameter | „Dämpfungszeit Td (regler) unzulässig“ Geschwindigkeits Der Wert für die Dämpfungszeit ist unzulässig (D-Anteil des PID-T1-Reglers). Wertevorschlag: 0.1 * Tv
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
4522 | 17698 | Parameter | "CONTROLERR_RANGE_IOUTPUTLIMIT"
4523 | 17699 | Parameter | "CONTROLERR_RANGE_DOUTPUTLIMIT"
4524 | 17700 | Parameter | "CONTROLERR_RANGE_POSIDISABLEWHENMOVING"
4540 | 17728 | Initialisierung | „Initialisierung Regler“ Regler ist nicht initialisiert worden. Regler wurde zwar erzeugt, allerdings nicht weiter initialisiert (1. Initialisierung Regler, 2. Reset Regler).
4541 | 17729 | Adresse | „Adresse Achse“ Regler kennt seine Achse (Axis) nicht bzw. die Achsadresse ist nicht initialisiert worden.
4542 | 17730 | Adresse | „Adresse Antrieb“ Regler kennt seinen Antrieb (Drive) nicht bzw. die Antriebadresse ist nicht initialisiert worden.
4550 | 17744 | Überwachung | „Schleppabstandsüberwachung (Position)“ Bei aktiver Schleppabstandsüberwachung (Position) ist eine Schleppabstandsüberschreitung aufgetreten, die vom Betrag größer dem Schleppabstandsfenster gewesen ist und zeitlich länger andauerte, als die parametrierte Schleppfilterzeit.
4551 | 17745 | Überwachung | „Schleppüberwachung (Geschwindigkeit)“ Bei aktiver Schleppgeschwindigkeitsüberwachung (Geschwindigkeit) ist eine Schleppgeschwindigkeitsüberschreitung aufgetreten, die vom Betrag größer dem Schleppfenster gewesen ist und zeitlich länger andauerte, als die parametrierte Schleppfilterzeit.
45A0 | 17824 | Überwachung | "CONTROLERR_RANGE_AREA_ASIDE"
45A1 | 17825 | Überwachung | "CONTROLERR_RANGE_AREA_BSIDE"
45A2 | 17826 | Überwachung | "CONTROLERR_RANGE_QNENN"
45A3 | 17827 | Überwachung | "CONTROLERR_RANGE_PNENN"
45A4 | 17828 | Überwachung | "CONTROLERR_RANGE_AXISIDPRESP0"


Antriebfehler

Anhang [image] Übersicht NC-Fehler [image] Antriebfehler
Antriebfehler
Fehler(Hex) | Fehler(Dez) | Fehlertyp | Beschreibung
4600 | 17920 | Parameter | „Antrieb-ID unzulässig“ Der Wert für die Antrieb-ID ist unzulässig, da er z. B. bereits vergeben ist, kleiner gleich Null ist oder größer 255 ist.
 |  |  | Wertebereich: [1 ... 255] | Einheit: 1
4601 | 17921 | Parameter | „Antrieb-Typ unzulässig“ Der Wert für den Antriebs-Typ ist unzulässig, da er nicht definiert ist.
 |  |  | Wertebereich: [1, 20] | Einheit: 1
4602 | 17922 | Parameter | „Betriebsmodus Antrieb unzulässig“ Der Wert für den Antriebbetriebsmodus ist unzulässig (Modus 1: Standard).
 |  |  | Wertebereich: [1] | Einheit: 1
4603 | 17923 | Parameter | „Motorpolarität invers ?“ Das Flag für die Motorpolarität ist unzulässig. Flag 0: Positive Motorpolarität Flag 1: Negative Motorpolarität
 |  |  | Wertebereich: [0, 1] | Einheit: 1
4604 | 17924 | Parameter | „Driftkompensation/Geschwindigkeitsoffset (DAC-Offset)“ Der Wert für die Driftkompensation (DAC-Offset) ist unzulässig.
 |  |  | Wertebereich: [-100.0, 100.0] | Einheit: z. B. m/min
4605 | 17925 | Parameter | „Bezugsgeschwindigkeit (Geschwindigkeitsvorsteuerung)“ Der Wert für die Bezugsgeschwindigkeit (Geschwindigkeitsvorsteuerung oder auch Referenzgeschwindigkeit genannt) ist unzulässig.
 |  |  | Wertebereich: [0.0, 10000.0] | Einheit: z. B. m/min
4606 | 17926 | Parameter | „Referenzoutput in Prozent“ Der Wert für den Referenzoutput in Prozent ist unzulässig. Der Wert 1.0 (100 %) entspricht üblicherweise einer Spannung von 10.0 V.
 |  |  | Wertebereich: [0.0, 5.0] | Einheit: %
4607 | 17927 | Parameter | „Quadrantenausgleichsfaktor“ Der Wert für den Quadrantenausgleichsfaktor ist unzulässig.
 |  |  | Wertebereich: [0.0, 100.0] | Einheit: 1
4608 | 17928 | Parameter | „Geschwindigkeitsstützstelle in Prozent“ Der Wert für die Geschwindigkeitsstützstelle in Prozent ist unzulässig. Der Wert 1.0 entspricht 100 Prozent.
 |  |  | Wertebereich: [0.01, 1.0] | Einheit: %
4609 | 17929 | Parameter | „Ausgabestützstelle in Prozent“ Der Wert für die Ausgabestützstelle in Prozent ist unzulässig. Der Wert 1.0 entspricht 100 Prozent.
 |  |  | Wertebereich: [0.01, 1.0] | Einheit: %
460A | 17930 | Parameter | „Minimale bzw. maximale Ausgabeschranke (Ausgabelimitierung)“ Der Wert für die minimale und/oder maximale Ausgabeschranke ist unzulässig. Dies ist der Fall, wenn der Wertebereich überschritten wird, die maximale Schranke kleiner der minimalen Schranke ist oder der Bereich zwischen minimaler und maximaler Schranke gleich Null ist. Die Voreinstellung beträgt für die minimale Schranke –1.0 (-100 Prozent) und die maximale Schranke 1.0 (100 Prozent).
 |  |  | Wertebereich: [-1.0, 1.0] | Einheit: %
460B | 17931 | Parameter | „DRIVEERR_RANGE_MAXINCREMENT“
460C | 17932 | Parameter | „DRIVEERR_RANGE_ DRIVECONTROLDWORD“
460D | 17933 | Parameter | „DRIVEERR_RANGE_ RESETCYCLECOUNTER“
460F | 17935 | Parameter | „Drive Drehmoment-Ausgabeskalierung unzulässig“ Der Wert ist als Drive Drehmoment-Ausgabeskalierung (rot. Motor) bzw. als Kraft-Ausgabeskalierung (Linearmotor) unzulässig.
 |  |  | Wertebereich: [0, 1000000] | Einheit: 1
4610 | 17936 | Parameter | „Drive Geschwindigkeits-Ausgabeskalierung unzulässig“ Der Wert ist als Drive Geschwindigkeits-Ausgabeskalierung unzulässig.
 |  |  | Wertebereich: [0, 1000000] | Einheit: 1
4611 | 17937 | Parameter | „Profi Drive DSC Proportionalverstärkung Kpc (regler) unzulässig“ Positions Der Wert für die Profi Drive DSC Lageregelverstärkung (Kpc-Faktor) ist unzulässig.
 |  |  | Wertebereich: [0, 0xFFFFFF] | Einheit: 0.001 * 1/s
4612 | 17938 | Parameter | „Tabellen-ID ist unzulässig“ Der Wert für die Tabellen-ID ist unzulässig.
 |  |  | Wertebereich: [0, 255] | Einheit: 1
4613 | 17939 | Parameter | „Tabellen-Interpolationstyp ist unzulässig“ Der Wert als Tabellen-Interpolationstyp ist unzulässig.
 |  |  | Wertebereich: 0 (LINEAR), 2 (SPLINE) | Einheit: 1
4614 | 17940 | Parameter | „Ausgabeoffset in Prozent ist unzulässig“ Der Wert als Ausgabeoffset in Prozent (+/- 1.0) ist unzulässig.
 |  |  | Wertebereich: [-1.0, 1.0] | Einheit: %
4615 | 17941 | Parameter | „Profi Drive DSC Skalierung für Berechnung von 'Xerr' (regler) unzulässig“ Positions Der Wert ist als Profi Drive DSC Skalierung für die Berechnung von 'Xerr' unzulässig.
 |  |  | Wertebereich: [0, 1000000] | Einheit: 1
4616 | 17942 | Parameter | „Drive Beschleunigungs-Ausgabeskalierung unzulässig“ Der Wert ist als Drive Beschleunigungs-/Verzögerungs-Ausgabeskalierung unzulässig.
 |  |  | Wertebereich: [0, 1000000] | Einheit: 1
4617 | 17943 | Parameter | „Drive Positions-Ausgabeskalierung unzulässig“ Der Wert ist als Drive Positions-Ausgabeskalierung unzulässig.
 |  |  | Wertebereich: [0, 1000000] | Einheit: 1
461C | 17948 | Parameter | „Drive Filtertyp für Führungsgrößenfilter der Ausgabeposition unzulässig“ Der Wert ist als Drive Filtertyp zur Glättung der Ausgabeposition unzulässig (Führungsgrößenfilter der Soll-Position).
 |  |  | Wertebereich: [0, 2] | Einheit: 1
461D | 17949 | Parameter | „Drive Filterzeit für Führungsgrößenfilter der Ausgabeposition unzulässig“ Der Wert ist als Drive Filterzeit zur Glättung der Ausgabeposition unzulässig (Führungsgrößenfilter der Soll-Position).
 |  |  | Wertebereich: [0.0, 1.0] | Einheit: s
461E | 17950 | Parameter | „Drive Filterordnung für Führungsgrößenfilter der Ausgabeposition unzulässig“ Der Wert ist als Drive Filterordnung (P-Tn) zur Glättung der Ausgabeposition unzulässig (Führungsgrößenfilter der Soll-Position).
 |  |  | Wertebereich: [0, 10] | Einheit: 1
4620 | 17952 | Parameter | „Bit-Maske für Schrittmotorzyklus unzulässig“ Ein Wert der verschiedenen Schrittmotor Masken für den jeweiligen Zyklus ist unzulässig.
 |  |  | Wertebereich: [0, 255] | Einheit: 1
4621 | 17953 | Parameter | „Bit-Maske für Schrittmotorhaltestrom unzulässig“ Der Wert für die Schrittmotorhaltemaske ist unzulässig.
 |  |  | Wertebereich: [0, 255] | Einheit: 1
4622 | 17954 | Parameter | „Skalierungsfaktor für Ist-Moment (Ist-Strom) unzulässig“ Der Wert ist als Skalierungsfaktor für das Ist-Moment (bzw. Ist-Strom) unzulässig.
 |  |  | Wertebereich: [0, 1E+30] | Einheit:
4623 | 17955 | Parameter | „Filterzeit für Ist-Moment ist unzulässig“ Der Wert als Filterzeit für das Ist-Moment (bzw. den Ist-Strom) ist unzulässig (P-T1-Filter).
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
4624 | 17956 | Parameter | „Filterzeit für die zeitliche Ableitung des Ist-Momentes ist unzulässig“ Der Wert als Filterzeit für die zeitliche Ableitung des Ist-Momentes (bzw. des Ist-Stromes) ist unzulässig (P-T1-Filter).
 |  |  | Wertebereich: [0.0, 60.0] | Einheit: s
4627 | 17959 | Funktion | DRIVEOPERATIONMODEBUSY. Die Aktivierung der Antriebsbetriebsart ist fehlgeschlagen, weil ein anderes Objekt mit OID… dieses Interface schon benutzt.
0x4630 ... 0x463F: Fehlercodes sind reserviert für externe Antriebsfehler (z.B. Schrittmotor Klemme bzw. Funktionsbaustein "MC_PowerStepper")
4630 | 17968 | Überwachung | „Übertemperatur“ Am Drive bzw. an der Klemme ist eine Übertemperatur erkannt bzw. gemeldet worden.
4631 | 17969 | Überwachung | „Unterspannung“ Am Drive bzw. an der Klemme ist eine Unterspannung erkannt bzw. gemeldet worden.
4632 | 17970 | Überwachung | „Drahtbruch in Phase A“ Am Drive bzw. an der Klemme ist ein Drahtbruch der Phase A erkannt bzw. gemeldet worden.
4633 | 17971 | Überwachung | „Drahtbruch in Phase B“ Am Drive bzw. an der Klemme ist ein Drahtbruch der Phase B erkannt bzw. gemeldet worden.
4634 | 17972 | Überwachung | „Überstrom in Phase A“ Am Drive bzw. an der Klemme ist ein Überstrom der Phase A erkannt bzw. gemeldet worden.
4635 | 17973 | Überwachung | „Überstrom in Phase B“ Am Drive bzw. an der Klemme ist ein Überstrom der Phase B erkannt bzw. gemeldet worden.
4636 | 17974 | Überwachung | „Drehmomentüberlast (Stall)“ Am Drive bzw. an der Klemme ist eine Drehmomentüberlast (Stall) erkannt bzw. gemeldet worden.
4640 | 17984 | Initialisierung | „Initialisierung Antrieb“ Antrieb ist nicht initialisiert worden. Antrieb wurde zwar erzeugt, allerdings nicht weiter initialisiert (1. Initialisierung Antrieb-IO, 2. Initialisierung Antrieb, 3. Reset Antrieb).
4641 | 17985 | Adresse | „Adresse Achse“ Antrieb kennt seine Achse (Axis) nicht bzw. die Achsadresse ist nicht initialisiert worden.
4642 | 17986 | Adresse | „Adresse IO-Eingangsstruktur“ Antrieb besitzt keine gültige IO-Eingangsadresse im Prozessabbild.
4643 | 17987 | Adresse | „Adresse IO-Ausgangsstruktur“ Antrieb besitzt keine gültige IO-Ausgangsadresse im Prozessabbild.
4650 | 18000 | Überwachung | „Antriebshardware nicht betriebsbereit“ Die Antriebshardware (Drive) nicht betriebsbereit ist. Hierfür kann es folgende Ursachen geben: - der Antrieb ist im Fehlerzustand (Hardwarefehler) - der Antrieb befindet sich in der Aufstartphase (z. B. nach einem Achsreset dem ein Hardwarefehler voraus ging) - dem Antrieb fehlt die Reglerfreigabe (ENABLE) Anmerkung: Der Zeitbedarf für das „Hochfahren“ eines Antriebes nach einem Hardwarefehler kann sich im Bereich von mehreren Sekunden bewegen.
4651 | 18001 | Überwachung | „Fehler in der zyklischen Kommunikation des Antriebs (Lebenszeichenzähler) “.Gründe könnten hier ein unterbrochener Feldbus oder ein im Fehlerzustand befindlicher Antrieb sein.
4652 | 18002 | Überwachung | „Ändern der Tabellen-ID bei aktiver Reglerfreige unzulässig“.Das Ändern (Abwählen, Anwählen) der Kennlinien-Tabellen-ID ist bei aktiver Reglerfreigabe der Achse nicht zulässig.
4655 | 18005 | Überwachung | "Ungültige IO-Daten für mehr als 'n' durchgehende NC Zyklen"Die Achse (Encoder oder Drive) hat für mehr als 'n' durchgehende NC Zyklen (NC SAF-Task) ungültige IO-Daten erkannt (z.B. n=3). Als Konsequenz ist es möglich, dass das Encoder Referenzierungs-Flag auf FALSE zurückgesetzt wird (d.h. der Encoder bekommt den Status "unreferenziert").EtherCAT Feldbus: "working counter error ('WCState')" Lightbus Feldbus: "CDL state error ('CdlState')"


Tabellenfehler

Anhang [image] Übersicht NC-Fehler [image] Tabellenfehler
Tabellenfehler
Fehler(Hex) | Fehler(Dez) | Fehlertyp | Beschreibung
4A00 | 18944 | Parameter | „Tabellen-ID unzulässig“ Der Wert für die Tabellen-ID ist unzulässig, da er z. B. bereits vergeben ist, kleiner gleich Null ist oder größer 255 ist.
 |  |  | Wertebereich: [1 ... 255] | Einheit: 1
4A01 | 18945 | Parameter | „Tabellen-Typ unzulässig“ Der Wert für den Tabellen-Typ ist unzulässig, da er nicht definiert ist.
 |  |  | Wertebereich: [1] | Einheit: 1
4A02 | 18946 | Parameter | „Zeilenanzahl der Tabelle unzulässig“ Der Wert für die Zeilenanzahl der Tabelle ist unzulässig, da er z. B. bei Linearinterpolation kleiner Zwei und bei Splineinterpolation kleiner Vier ist.
 |  |  | Wertebereich: [2, 0xFFFF] | Einheit: 1
4A03 | 18947 | Parameter | „Spaltenanzahl der Tabelle unzulässig“ Der Wert für die Spaltenanzahl der Tabelle ist unzulässig, da er z. B. gleich Null bzw. kleiner gleich Eins ist (je nach Tabellen-/Slavetyp).
 |  |  | Wertebereich: [1, 0xFFFF] | Einheit: 1
4A04 | 18948 | Parameter | „Schrittweite (Positionsdelta) unzulässig“ Der Wert für die Schrittweite zwischen zwei Zeilen (Positionsdelta) ist unzulässig, da er z. B. kleiner gleich Null ist.
 |  |  | Wertebereich: [0.001, 1.0E+6] | Einheit: z. B mm
4A05 | 18949 | Parameter | „Periode unzulässig“ Der Wert für die Periode ist unzulässig, da er z. B. kleiner gleich Null ist.
 |  |  | Wertebereich: [0.001, 1.0E+9] | Einheit: z. B mm
4A06 | 18950 | Parameter | „Tabelle ist nicht monoton“ Der Wert für die Schrittweite ist unzulässig, da er z. B. kleiner gleich Null ist.
4A07 | 18951 | Initialisierung | „Tabellen-Untertyp unzulässig“ Der Wert für den Tabellen-Untertyp ist unzulässig, da er nicht definiert ist. Oder aber der Tabellen-Untertyp und die Tabellenklasse (Slave-Typ) passen nicht zusammen. Tabellen-Untertypen: (1) äquidistante lineare Positionstabelle, (2) äquidistante zyklische Positionstabelle, (3) nicht-äquidistante lineare Positionstabelle, (4) nicht-äquidistante zyklische Positionstabelle
 |  |  | Wertebereich: [1, 4] | Einheit: 1
4A08 | 18952 | Initialisierung | „Tabellen-Interpolationstyp unzulässig“ Der Wert für den Tabellen-Interpolationstyp ist unzulässig, da er nicht definiert ist. Tabellen-Interpolationstypen: (0) Linear-Interpolation, (1) 4-Punkt-Interpolation, (2) Spline-Interpolation
 |  |  | Wertebereich: [0, 2] | Einheit: 1
4A09 | 18953 | Initialisierung | „Falscher Tabellen-Haupttyp“ Der Tabellen-Haupttyp ist unzulässig, da er nicht definiert ist. Oder aber der Tabellen-Haupttyp und die Tabellenklasse (Slave-Typ) passen nicht zusammen. Tabellen-Haupttypen: (1) Kurvenscheiben-Tabelle (Camming), (10) Kennlinien-Tabelle, (16) "MotionFunction"-Tabelle (MF)
4A10 | 18960 | Initialisierung | „Initialisierung Tabelle“ Tabelle ist nicht initialisiert worden. Tabelle wurde zwar erzeugt, allerdings nicht weiter initialisiert. Z. B. ist die Anzahl der Zeilen oder Spalten kleiner gleich Null.
4A11 | 18961 | Initialisierung | „Nicht genügend Speicher vorhanden“ Tabelle konnte nicht erzeugt werden, da nicht genügend Speicher vorhanden ist.
4A12 | 18962 | Funktion | „Funktion wird nicht ausgeführt, Funktion nicht verfügbar“ Die Funktion ist für den aktuellen Tabellentyp nicht implementiert oder nicht ausführbar.
4A13 | 18963 | Funktion | „Zeilenindex unzulässig“ Der Startzeilenindex bzw. der Stoppzeilenindex, ab dem lesend oder schreibend auf die Tabelle zugegriffen werden soll, ist unzulässig. Z. B. ist der Zeilenindex größer als die Gesamtzeilenanzahl der Tabelle.
4A14 | 18964 | Funktion | „Spaltenindex unzulässig“ Der Startspaltenindex bzw. der Stoppspaltenindex, ab dem lesend oder schreibend auf die Tabelle zugegriffen werden soll, ist unzulässig. Z. B. ist der Spaltenindex größer als die Gesamtspaltenanzahl der Tabelle.
4A15 | 18965 | Funktion | „Zeilenanzahl unzulässig“ Die Anzahl der zu lesenden bzw. schreibenden Zeilen der Tabelle ist unzulässig. Die Zeilenanzahl muss genau einem ganzzahligen Vielfachen der Elemente einer Zeile entsprechen (n * Anzahl der Spalten).
4A16 | 18966 | Funktion | „Spaltenanzahl unzulässig“ Die Anzahl der zu lesenden bzw. schreibenden Spalten der Tabelle ist unzulässig. Die Spaltenanzahl muss genau einem ganzzahligen Vielfachen der Elemente einer Spalte entsprechen (n * Anzahl der Zeilen).
4A17 | 18967 | Funktion | „Fehler in der Skalierung oder in der Bereichsangabe“ Die Angaben im Tabellenheader sind inkonsistent, z.B. ist der Gültigkeitsbereich leer. Wenn der Fehler zur Laufzeit generiert wird ist er Laufzeitfehler und stoppt die Master/Slave Gruppe.
4A18 | 18968 | Funktion | „Multi-Tabellenslave außer Bereich“ Die Masterpositon des Slaves ist außerhalb der Tabellenwerte für den Master. Der Fehler ist Laufzeitfehler und stoppt die Master/Slave Gruppe.
4A19 | 18969 | Funktion | „Solo-Tabellen Underflow“ Die Masterpositon des Slaves ist außerhalb der Tabellenwerte für den Master. Der Masterwert der äquidistanten, linear abzuarbeitenden Tabelle liegt unter dem ersten Tabellenwert. Der Fehler ist Laufzeitfehler und stoppt die Master/Slave Gruppe.
4A1A | 18970 | Funktion | „Solo-Tabellen Overflow“ Die Masterpositon des Slaves ist außerhalb der Tabellenwerte für den Master. Der Masterwert der äquidistanten, linear abzuarbeitenden Tabelle liegt über dem ersten Tabellenwert. Der Fehler ist Laufzeitfehler und stoppt die Master/Slave Gruppe.
4A1B | 18971 | Parameter | „Falscher Abarbeitungmodus“ Der zyklische Abarbeitungsmodus kann nur „true“ oder „false“ sein.
4A1C | 18972 | Parameter | „Unzulässiger Parameter“ Der Parameter des Fifos ist unzulässig.
4A1D | 18973 | Parameter | „Fifo ist leer“ Das Fifo des Externen Generators ist leer. Das kann Bahnende oder Laufzeitfehler bedeuten.
4A1E | 18974 | Parameter | „Fifo ist voll“ Das Fifo des Externen Generators ist voll. Es ist Sache des Users immer wieder zu versuchen mit den abgelehnten Werten das Fifo zu füllen.
4A1F | 18975 | Parameter | „Punkt-Index der Motion Function ist ungültig“ Der Punkt-Index eines Motion Function Punktes einer Motion Function Tabelle ist unzulässig. Der Punkt-Index muss erstens größer Null sein und zweitens für eine Spalte einer Motion Function Tabelle numerisch fortlaufend sein (z.B. 1,2,3,... oder 10,11,12,...). Anmerkung: Der Punkt-Index darf nicht online geändert werden, sondern muss konstant gehalten werden.
4A20 | 18976 | Initialisierung | „Keine Diagonalisierung der Matrize“ Die Tabellenwerte des Masters lassen keine Berechnung des Splines zu.
4A21 | 18977 | Initialisierung | „Anzahl Splinepunkte zu klein“ Die Anzahl der Punkte eines kubischen Splines muss mindestens drei sein. Daher muss die Zeilenzahl mindestens drei sein.
4A22 | 18978 | Initialisierung | „Fifo darf nicht überschrieben werden“ Das Fifo des Externen Generators darf nicht überschrieben werden, da sonst über die aktive Abarbeitungszeile hinweg geschrieben würde. Es ist Sache des Users darauf zu achten, dass keine Änderungen oder Löschungen über die aktive Zeile hinweg angefordert werden.
4A23 | 18979 | Funktion | „Motion Function hat zuwenige Punkte “ Die Anzahl der gültigen Punkte, die eine Motion Function definieren, ist kleiner als zwei. Entweder ist die Gesamtzahl zu gering oder der Punkttyp vieler Punkte ist auf Ignore Point gesetzt.


NC-SPS-Fehler

Anhang [image] Übersicht NC-Fehler [image] NC-SPS-Fehler
NC-SPS-Fehler
Fehler(Hex)
Fehler(Dec)
Fehlertyp
Beschreibung
4B00
19200
Parameter
"Achse ist gestoppt worden" Die Achse ist gestoppt worden, während die Achse zur Zielposition fährt. Die Achse könnte mit einem SPS Kommando über ADS, mit einem Aufruf durch AXFNC oder durch den System Manager gestoppt worden sein.
4B01
19201
Parameter
"Achse kann nicht gestartet werden" Die Achse kann nicht gestartet werden, weil:
▪
die Achse befindet sich im Error Status,
▪
die Achse führt einen anderen Auftrag aus,
▪
die Achse befindet sich im geschützten Modus,
▪
die Achse ist nicht betriebsbereit.
4B02
19202
Parameter
"Kontrollmodus nicht zulässig" Keine Zielpositionskontrolle und keine Positionsbereich Kontrolle.
4B03
19203
Parameter
"Achse bewegt sich nicht" Ein Restart von Position und Geschwindigkeit ist nur bei physikalischer Bewegung der Achse möglich.
4B04
19204
Parameter
"Falscher Modus für RestartPosAndVelo" Falscher Modus.
4B05
19205
Parameter
"Befehl nicht zulässig"
▪
endlose Bewegung in eine nicht spezifizierte Richtung
▪
Read/Write Parameter: unpassender Typ
4B06
19206
Parameter
"Parameter nicht korrekt"
▪
Falscher Override: > 100% oder < 0%
▪
Falscher Getriebefaktor: RatioDenominator = 0
4B07
19207
Parameter
"Timeout Achs-Funktionsbaustein"
Alle "MC_Move..."-Bausteine prüfen am Ende der Positionierung, ob diese erfolgreich abgeschlossen wurde. Im einfachsten Fall wird das "AxisHasJob"-Flag der NC-Achse geprüft, das zunächst besagt, dass die Positionierung logisch beendet wurde. Abhängig von der Parametrierung der NC-Achse kommen aber noch weitere Prüfungen (Gütekriterien) hinzu:
▪
"Positionsbereichsüberwachung"
Bei eingeschalteter Positionsbereichsüberwachung wird die Rückmeldung von der NC abgewartet. Die Achse muss sich nach der Positionierung innerhalb des definierten Positionsbereichsfensters befinden. Der Lageregler sorgt ggf. dafür, dass die Achse ins Ziel gezogen wird. Bei abgeschaltetem (Kv=0) oder schwachem Lageregler, wird das Ziel evtl. nicht erreicht.
▪
"Zielpositionsüberwachung"
Bei eingeschalteter Zielpositionsüberwachung wird die Rückmeldung von der NC abgewartet. Die Achse muss sich nach der Positionierung mindestens für die definierte Zeit im definierten Zielpositionsfenster befinden. Der Lageregler sorgt ggf. dafür, dass die Achse ins Ziel gezogen wird. Bei abgeschaltetem (Kv=0) oder schwachem Lageregler, wird das Ziel evtl. nicht erreicht. Ebenfalls kann eine schwingende Lagereglung dafür sorgen, dass die Achse um das Fenster herumpendelt und nicht dauerhaft in diesem Fenster verbleibt.
Wenn sich nun die Achse logisch in der Zielposition befindet (logischer Stillstand), aber das parametrierte Positionsfester nicht erreicht wird, dann wird die Überwachung der oben genannten NC-Rückmeldungen nach einem konstanten Timeout von 6 Sekunden mit Fehler 19207 (0x4B07) abgebrochen.
4B08
19208
Parameter
"Achse ist im geschützten Modus" Die Achse befindet sich im geschützten Modus (z.B. gekoppelt) und kann nicht bewegt werden.
4B09
19209
Parameter
"Achse ist nicht bereit" Die Achse ist nicht bereit und kann nicht bewegt werden.
4B0A
19210
Parameter
"Fehler beim Referenzieren" Das Referenzieren (Homing) der Achse konnte nicht gestartet werden oder war nicht erfolgreich.
4B0B
19211
Parameter
"Fehlerhafte Definition des Triggereingangs" Die Definition des Trigger-Signals für den Baustein MC_TouchProbe ist fehlerhaft. Die definierte Encoder-ID, das TriggerSignal oder die Trigger-Flanke sind ungültig.
4B0C
19212
Funktion
"Positionslatch wurde deaktiviert" Der Baustein MC_TouchProbe hat festgestellt, dass ein von ihm gestarteter Messtasterzyklus deaktiviert wurde. Ursache kann beispielsweise ein Achs-Reset sein.
4B0D
19213
Funktion
"Timeout NC-Status-Rückmeldung" Eine Funktion wurde erfolgreich von der SPS zur NC abgesetzt. Eine erwartete Rückmeldung im Status-Wort der Achse kommt aber nicht.
4B0E
19214
Funktion
"Zusatzprodukt nicht installiert" Die Funktion ist als Zusatzprodukt verfügbar, ist aber auf dem System nicht installiert.
4B0F
19215
Funktion
"No NC Cycle Counter Update" – Das NcToPlc Interface bzw. ein darin enthaltener NC Cycle Counter wurde nicht aktualisiert.
Fehlernummern 0x4B10 .. 0x4B2F werden im TwinCAT NCI Kontext verwendet:
4B10
19216
Funktion
"M-Funktion Anfrage fehlt" Dieser Fehler tritt auf, wenn eine Bestätigung der M-Funktion gemacht worden ist, aber das Anfragebit (request bit) nicht gesetzt worden ist.
4B11
19217
Parameter
"Nullpunktverschiebungsindex liegt außerhalb des Bereichs" Der Index der Nullpunktverschiebung ist ungültig.
4B12
19218
Parameter
"R-Parameterindex oder -größe ist ungültig" Dieser Fehler tritt auf, wenn die R-Parameter geschrieben oder gelesen werden, und der Index oder die Größe außerhalb des Bereichs liegen.
4B13
19219
Parameter
"Index für Werkzeugbeschreibung ist ungültig"
4B14
19220
Funktion
"Version des zyklischen Kanalinterfaces passt nicht zu der angeforderten Funktion bzw. dem Funktionsbaustein" Dieser Fehler tritt auf, wenn mit einer älteren TwinCAT Version, neue Funktionalitäten einer neueren TcNci.lib aufgerufen werden.
4B15
19221
Funktion
"Kanal ist nicht bereit für die angeforderte Funktion" Die anforderte Funktion kann nicht ausgeführt werden, da der Kanal sich im falschen Zustand befindet. Dieser Fehler tritt z.B. beim Rückwärtsfahren auf, wenn die Achsen zuvor nicht mit dem ItpEStop angehalten werden.
4B16
19222
Funktion
"Angeforderte Funktion ist nicht aktiv geschaltet" Die angeforderte Funktion benötigt zuvor eine explizite Aktivierung.
4B17
19223
Funktion
"Achse ist bereits in einer anderen Gruppe" Die Achse wurde bereits zu einer anderen Gruppe hinzugefügt.
4B18
19224
Funktion
"Blocksearch konnte nicht erfolgreich ausgeführt werden" Der Blocksearch ist fehlgeschlagen.
Mögliche Ursachen:
▪
Ungültige Blocknummer
4B19
19225
Parameter
"Ungültiger Blocksearch Parameter" Dieser Fehler tritt auf, wenn der FB ItpBlocksearch mit ungültigen Parametern aufgerufen wird (z.B. E_ItpDryRunMode, E_ItpBlockSearchMode)
4B20
19232
Funktion
"Kann nicht alle Achsen zufügen" Dieser Fehler tritt auf, wenn eine Hilfsachse zu einer Interpolationsgruppe hinzugefügt werden soll, und die Funktion ausfällt. Vermutlich wurde eine vorhergehende Anweisung einer Hilfsachse übersprungen.
Fehlernummern 0x4B30 .. 0x4B3F werden in der TcMcCam-Lib verwendet (MC_NC_TableErrorCodes):
4B30
19248
Parameter
"Pointer ist ungültig" Ein Zeiger auf eine Datenstruktur ist ungültig, z. B. Null
▪
Datenstruktur MC_CAM_REF wurde nicht initialisiert
4B31
19249
Parameter
"Speichergröße ungültig" Die Angabe der Speichergröße (SIZE) einer Datenstruktur ist ungültig.
▪
Speichergröße ist 0 oder kleiner als ein Element der adressierten Datenstruktur.
▪
Speichergröße ist kleiner als die angeforderte Datenmenge.
▪
Speichergröße passt nicht zu anderen Parametern, wie Punktanzahl, Zeilenanzahl oder Spaltenanzahl.
4B32
19250
Parameter
"Kurvenscheiben-ID ist ungültig" Die ID einer Kurvenscheibe liegt nicht zwischen 1 und 255.
4B33
19251
Parameter
"Punkt-ID ist ungültig" Die ID eines Punktes (Stützstelle) einer Motion Function ist kleiner als 1.
4B34
19252
Parameter
"Anzahl der Punkte ist ungültig" Die Anzahl der zu lesenden oder zu schreibenden Punkte (Stützstellen) einer Kurvenscheibe ist kleiner als 1.
4B35
19253
Parameter
"MC-Tabellentyp ist ungültig" Der Typ einer Kurvenscheibe entspricht nicht der Definition MC_TableType.
4B36
19254
Parameter
"Anzahl der Zeilen ungültig" Die Anzahl der Zeilen (Stützstellen) einer Kurvenscheibe ist kleiner als 1.
4B37
19255
Parameter
"Anzahl der Spalten ungültig" Die Anzahl der Spalten einer Kurvenscheibe ist ungültig.
▪
Die Spaltenzahl einer Motion Function ist ungleich 1
▪
Die Spaltenzahl einer Standard-Kurvenscheibe ist ungleich 2
▪
Die Spaltenzahl passt nicht zu einem anderen Parameter (ValueSelectMask)
4B38
19256
Parameter
"Schrittweite ungültig". Die Schrittweite für die Interpolation ist ungültig, z. B. kleiner gleich Null.
Fehlernummern 0x4B0F, 0x4B40 .. 0x4B4F werden in der TcNc-Lib verwendet:
4B40
19264
Überwachung
"Klemmentyp nicht unterstützt" Die verwendete Klemme wird nicht von diesem Funktionsblock unterstützt.
4B41
19265
Überwachung
"Register Read/Write Fehler" Dieser Fehler impliziert einen Gültigkeitsfehler.
4B42
19266
Überwachung
"Achse ist Enabled" Die Achse ist enabled und darf für den Vorgang nicht enabled sein.
4B43
19267
Parameter
"Größe der Kompensationstabelle falsch" Die angegebene Tabellengröße in Byte entspricht nicht der tatsächlichen Größe
4B44
19268
Parameter
Die minimale/maximale Position in der Kompensationstabelle entspricht nicht der Position in der Tabellenbeschreibung (ST_CompensationDesc)
4B45
19269
Parameter
"Nicht implementiert" Die angeforderte Funktion ist in dieser Kombination nicht implementiert
Fehlernummern 0x4B50 .. 0x4B5F werden in der TcRemoteSync-Lib verwendet:
Fehlernummern 0x4B60 .. 0x4B6F werden in der TcMc2-Lib im buffered commands Kontext verwendet:
4B60
19296
Überwachung
"Fahrauftrag wurde nicht aktiv" Ein Fahrauftrag wurde ausgelöst und zunächst von der NC erfolgreich mit neuer Kommandonummer quittiert und gepuffert. Dennoch wird der Fahrauftrag nicht aktiv (möglicherweise wegen einer Abbruchbedingung oder eines internen NC Fehlers).
4B61
19297
Überwachung
"Fahrauftrag konnte von der SPS nicht verfolgt werden" Ein Fahrauftrag wurde ausgelöst und zunächst von der NC erfolgreich mit neuer Kommandonummer quittiert und gepuffert. Dennoch konnte die Kommandoausführung von der SPS nicht verfolgt werden, da die NC bereits ein nachfolgendes Kommando ausführt. Der Ausführungszustand ist unklar. Dieser Fehler darf nur bei sehr kurzen Fahraufträgen auftreten, die innerhalb eines SPS-Zyklus abgearbeitet sind.
4B62
19298
Überwachung
"Gepuffertes Kommando wurde mit Fehler beendet" Ein gepuffertes Kommando wurde mit Fehler beendet. Die Fehlernummer ist nicht verfügbar, weil bereits ein neues Kommando ausgeführt wird.
4B63
19299
Überwachung
"Gepuffertes Kommando wurde ohne Rückmeldung beendet" Ein gepuffertes Kommando wurde beendet, aber es gibt keine Rückmeldung über Erfolg oder Fehler.
4B64
19300
Überwachung
" 'BufferMode' wird vom Kommando nicht unterstützt" Der 'BufferMode' wird von diesem Kommando nicht unterstützt.
4B65
19301
Überwachung
"Kommandonummer ist Null" Die vom System verwaltete Kommandonummer für gepufferte Kommandos hat unerwartet den Wert 0.
4B66
19302
Überwachung
"Funktionsbaustein wurde nicht zyklisch aufgerufen" Der Funktionsbaustein wurde nicht zyklisch aufgerufen. Daher konnte die Kommandoausführung von der SPS nicht verfolgt werden, während die NC bereits ein nachfolgendes Kommando ausführt. Der Ausführungszustand ist unklar.
Fehlernummern 0x4B70 .. 0x4B8F werden in der TcPlcInterpolation-Lib verwendet:
4B71
19313
Parameter
"Ungültiger NCI Entry Typ". Der FB FB_NciFeedTablePreparation wurde mit einem unbekannten nEntryType aufgerufen.
4B72
19314
Funktion
"NCI Feed Table voll" Die Tabelle ist voll und daher wird der Eintrag nicht angenommen.
Abhilfe:
Mit dem FB FB_NciFeedTable den Inhalt an den NC-Kern übergeben. Wenn bFeedingDone = TRUE, kann bei FB_NciFeedTablePreparation mit bResetTable die Tabelle zurückgesetzt werden und anschließend mit neuen Einträgen gefüllt werden.
4B73
19315
Funktion
interner Fehler
4B74
19316
Parameter
"ST_NciTangentialFollowingDesc: Tangentialachse ist keine Hilfsachse" In dem Eintrag für die tangentiale Nachführung wurde eine Tangentialachse genannt, die keine Hilfsachse ist.
4B75
19317
Parameter
ST_NciTangentialFollowingDesc: nPathAxis1 bzw. nPathAxis2 ist keine Bahnachse. Somit kann die Ebene nicht bestimmt werden.
4B76
19318
Parameter
ST_NciTangentialFollwoingDesc: nPathAxis1 und nPathAxis2 sind gleich. Somit kann die Ebene nicht bestimmt werden.
4B77
19319
Parameter
ST_NciGeoCirclePlane: Kreis falsch parametriert
4B78
19320
Funktion
Interner Fehler bei der Berechnung der tangentialen Nachführung
4B79
19321
Überwachung
Tangentiale Nachführung: Beim Einschalten der tangentialen Nachführung wurde die Überwachung der Ablenkungswinkel eingeschaltet (E_TfErrorOnCritical1) und mit dem aktuellen Segment ist ein zu großer Ablenkungswinkel festgestellt worden.
4B7A
19322
Funktion
nicht implementiert
4B7B
19323
Parameter
Tangentiale Nachführung: Der Radius des aktuellen Kreissegements ist zu klein
4B7C
19324
Parameter
FB_NciFeedTablePreparation: pEntry ist NULL
4B7D
19325
Parameter
FB_NciFeedTablePreparation: Der angegebene nEntryType stimmt nicht mit dem Strukturtyp überein
4B7E
19326
Parameter
ST_NciMFuncFast und ST_NciMFuncHsk: Die angeforderte M-Funktion liegt nicht zwischen 0 und 159
4B7F
19327
Parameter
ST_NciDynOvr: Der angeforderte Wert für den Dynamik-Override liegt nicht zwischen 0.01 und 1
4B80
19328
Parameter
ST_NciVertexSmoothing: ungültiger Parameter. Dieser Fehler wird bei einem negativen Verschleifungsradius bzw. bei einem unbekannten Verschleifungstyp erzeugt.
4B81
19329
Parameter
FB_NciFeedTablePrepartion: Die angeforderte Geschwindigkeit ist nicht im gültigen Bereich
4B82
19330
Parameter
ST_Nci*: ungültiger Parameter
Fehlernummern 0x4BA0 .. 0x4BAF werden in der TcNcKinematicTransformation-Lib verwendet:
4BA0
19360
Funktion
KinGroup Fehler: Die Kinematikgruppe befindet sich im Fehlerzustand.
Dieser Fehler kann auftreten, wenn sich die Kinematikgruppe beim Aufruf im Fehlerzustand oder in einem unerwarteten Zustand befindet (z.B. gleichzeitiger Aufruf über mehrere FB-Instanzen).
4BA1
19361
Funktion
KinGroup Timeout: Timeout beim Aufruf eines Kinematik-Bausteins
Fehlernummern 0x4B90 .. 0x4B9F werden in der Tc3_MC2_AdvancedHoming-Lib (PLCopen Part 5: Homing Procedures) verwendet:
4B90
19344
Parameter
Ermittelter Drive-Typ wird nicht unterstützt
4B91
19345
Parameter
Direction ist unzulässig
4B92
19346
SwitchMode ist unzulässig
4B93
19347
Mode für das Parameter-Handling ist unzulässig
4B94
19348
Parametrierung der Drehmomentgrenzen ist inkonsistent
4B95
19349
Parametrierung der Schleppabstandgrenze ist unzulässig (<=0).
4B96
19350
Parametrierung des Distanzlimits ist unzulässig (<0)
4B97
19351
Es wurde versucht erneut Parameter zu sichern, obwohl diese bereits gesichert wurden.
4B98
19352
Es wurde versucht Parameter zu restaurieren, obwohl keine gesichert wurden.
Fehlernummern 0x4BB0 .. 0x4BBF werden in der Tc2_MC2_Drive-Lib verwendet:
4BB0
19376
Funktion
Die aktuelle Achs-Position oder die sich durch den neuen Positions-Offset ergebende Achs-Position überschreitet den gültigen Wertebereich.
4BB1
19377
Funktion
Der neue Positions-Offset überschreitet den gültigen Wertebereich [AX5000: 2^31]
4BB2
19378
Funktion
Die aktuelle Achs-Position oder die sich durch den neuen Positions-Offset ergebende Achs-Position unterschreitet den gültigen Wertebereich.
4BB3
19379
Funktion
Der neue Positions-Offset unterschreitet den gültigen Wertebereich [AX5000: -2^31]
4BB4
19380
Funktion
Das aktivierte Feedback und/oder der Speicherort (AX5000: P-0-0275) unterscheiden sich von der Parametrierung am Baustein.
4BB5
19381
Funktion
Reinitialisierung der Nc-Istposition ist fehlgeschlagen.
z.B. Referenzsystem = „ABSOLUTE (with single overflow)“ & Softwareendlagenüberwachung ist deaktiviert.


Kinematische Transformation

Anhang [image] Übersicht NC-Fehler [image] Kinematische Transformation
Kinematische Transformation
Fehler(Hex)
Fehler(Dez)
Fehlertyp
Beschreibung
4C00
19456
Transformation fehlgeschlagen.
4C01
19457
Mehrdeutige Lösung. Die Lösung für die Transformation ist nicht eindeutig.
4C02
19458
Ungültige Achsposition: Die Transformation kann mit den aktuellen Positionsdaten nicht gerechnet werden.
Mögliche Ursachen:
▪
Die Position befindet sich außerhalb des Arbeitsraums der Kinematik
4C03
19459
Konfiguration
Ungültige Dimension: Die Dimension der parametrierten Input-Parameter stimmt nicht mit der vom Kinematik-Objekt erwarteten Dimension überein.
Mögliche Ursachen:
▪
Es werden zu viele Positionswerte für diese Konfiguration mitgegeben. Überprüfen Sie die Anzahl der parametrierten Achsen.
4C04
19460
NCERR_KINTRAFO_REGISTRATION
4C05
19461
Intern
Newton Iteration fehlgeschlagen: Die Newton-Iteration konvergiert nicht.
4C06
19462
Intern
Jacobi-Matrix kann nicht invertiert werden
4C07
19463
Konfiguration
Ungültige Kaskade: Diese Konfiguration der Kinematik ist nicht zulässig.
4C08
19464
Programmierung
Singularität: Die Maschinenkonfiguration resultiert in singulären Achsgeschwindigkeiten.
4C0B
19467
Intern
Keine Metainfo: Metainfo-Pointer ist null.
4C20
19488
Intern
Transformation fehlgeschlagen: Aufruf des erweiterten Kinematik-Modells fehlgeschlagen.
4C30
19504
Programmierung
Ungültiger Inputframe: Programmierte kartesische Position kann in ACS-Konfiguration nicht angefahren werden.
4C50
19536
Intern
Ungültiger Offset: Zugriffsverletzung im Observer festgestellt.


Bode Return Codes

Anhang [image] Übersicht NC-Fehler [image] Bode Return Codes
Bode Return Codes
Folgende Bode Plot spezifischen Fehlercodes werden im Bode Plot Server verwendet:
Code Hex | Code Dec | Symbol | Beschreibung
0x8100 | 33024 | INTERNAL | Internal error
0x8101 | 33025 | NOTINITIALIZED | Not initialized (e.g. no nc axis)
0x8102 | 33026 | INVALIDPARAM | Invalid parameter
0x8103 | 33027 | INVALIDOFFSET | Invalid index offset
0x8104 | 33028 | INVALIDSIZE | Invalid parameter size
0x8105 | 33029 | INVALIDSTARTPARAM | Invalid start parameter (set point generator)
0x8106 | 33030 | NOTSUPPORTED | Not supported
0x8107 | 33031 | AXISNOTENABLED | Nc axis not enabled
0x8108 | 33032 | AXISINERRORSTATE | Nc axis in error state
0x8109 | 33033 | DRIVEINERRORSTATE | IO drive in error state
0x810A | 33034 | AXISANDDRIVEINERROR-STATE | Nc axis AND IO drive in error state
0x810B | 33035 | INVALIDDRIVEOPMODE | Invalid drive operation mode active or requested (no bode plot mode)
0x810C | 33036 | INVALIDCONTEXT | Invalid context for this command (mandatory task or windows context needed)
0x810D | 33037 | NOAXISINTERFACE | Missing TCom axis interface (axis null pointer). Es fehlt eine Verbindung zur NC Achse. Entweder ist keine Achse (bzw. Achs-ID) parametriert worden oder die parametrierte Achse existiert nicht.
0x810E | 33038 | INPUTCYCLECOUNTER | Invalid input cycle counter from IO drive (e.g. frozen). Während der BodePlot Aufzeichnung werden die zyklischen Antriebsdaten durch einen „InputCycleCounter“ gesichert. Hierdurch kann zum einen ein unerwarteter Kommunikationsverlust erkannt (Stichwort LifeCounter) und zum anderen auf zeitliche Datenkonsistenz geprüft werden. Beispiel 1: Dieser Fehler kann auftreten wenn die Zykluszeit der aufrufenden Task grösser ist als die angenommene Antriebszykluszeit (dann kommt der Fehler allerdings gleich beim Start der Aufzeichnung). Beispiel 2: Dieser Fehler kann auftreten wenn die aufrufende Task Echtzeitstörungen hat (z.B. der "Exceed Counter" der Task hochzählt oder die Task niederprior ist wie z.B. oft bei der PLC). Hier könnte der Fehler jederzeit auch während der Aufnahme auftreten. Beispiel 3: Dieser Fehler kann vermehrt auftreten wenn die Echtzeitauslastung auf der Rechner recht groß ist (> 50%). Anmerkung: Siehe auch korrespondierenden AX5000 Drive Fehlercode F440.
0x810F | 33039 | POSITIONMONITORING (=> NC Runtime Error) | Position monitoring: Axis position is outside of the maximum allowed moving range. Die Achse hat das parametrierte Positions-bereichs-fenster verlassen woraufhin die Aufnahme abgebrochen und die NC Achse in den Fehlerzustand 0x810F versetzt wird (mit Standard NC Fehlerhandling). Das Positionsbereichsfenster wirkt symmetrisch um die Startposition der Achse (s.a. Parameterbeschreibung Position Monitoring Window). Typische Fehlermeldung im Logger: "BodePlot: 'Position Monitoring' error 0x%x because the actual position %f is above the maximum limit %f of the allowed position range (StartPos=%f, Window=%f)"
0x8110 | 33040 | DRIVELIMITATIONDETECTED | Driver limitations detected (current or velocity limitations) which causes a nonlinear behavior and invalid results of the bode plot. Eine BodePlot Aufzeichnung setzt eine näherungsweise lineare Übertragungsstrecke voraus. Wenn es im Antriebsgerät allerdings zu Limitierungen (Begrenzungen) der Geschwindigkeit oder des Stromes kommt, dann wird dieses nichtlineare Verhalten erkannt und eine Bodeplot Aufzeichnung wird abgebrochen. Gründe für diese Limitierungen kann eine für das Positions-, Geschwindigkeits- oder Torque-Interface zu groß gewählte Amplitude sein oder eine ungeeignete Wahl des Amplituden Skalierungsmode (s.a. Parameterbeschreibung Amplitude Scaling Mode, Base Amplitude, Signal Amplitude). Typische Fehlermeldung im Logger: "BodePlot: Sequence aborted with error 0x%x because the current limit of the drive has been exceeded (%d times) which causes a nonlinear behavior and invalid results of the bode plot"
0x8111 | 33041 | LIFECOUNTERMONITORING (=> NC Runtime Error) | Life counter monitoring (heartbeat): Lost of communication to GUI detected after watchdog timeout is elapsed. Das grafische Benutzerinface, aus dem die Bodeplot Aufzeichnung gestartet wurde, kommuniziert nicht mehr im erwarteten Rhythmus mit dem BodePlot Treiber (Stichwort „Life Counter“). Deshalb wird die Aufzeichnung sofort beendet und die NC Achse in den Fehlerzustand 0x8111 versetzt (mit Standard NC Fehlerhandling). Mögliche Gründe hierfür können ein Absturz der Bedienoberfläche oder eine erhebliche Störung des Windows Kontextes sein. Typische Fehlermeldung im Logger: "BodePlot: Sequence aborted with GUI Life Counter error 0x%x because the WatchDog timeout of %f s elapsed ('%s')"
0x8112 | 33042 | NCERR_BODEPLOT_WCSTATE | WC state error (IO data working counter) IO working counter Fehler (WC state) durch z.B. Echtzeitstörungen, EtherCAT CRC-Fehler oder Telegrammausfälle, EtherCAT Teilnehmer nicht in Kommunikation (OP-state), etc.
0x8113- 0x811F | 33043- 33055 | RESERVED | Reservierter Bereich


Weitere Fehler

Anhang [image] Übersicht NC-Fehler [image] Weitere Fehler
Weitere Fehler
Error(Hex) | Error(Dec) | ErrorType | Description
0x8120 | 33056 | Environment | Invalid configuration for Object (e.g. in System Manager)
0x8121 | 33057 | Environment | Invalid environment for Object (e.g. TcCom-Object's Hierarchy or missing/faulty Objects)
0x8122 | 33058 | Environment | Incompatible Driver or Object
0x8135 | 33077 | Internal | Function Block Inputs are inconsitent.Some Inputs of the Function Block are inconsistent during. Probably Communicator and its IID, which both have to be set or unset.
0x813b | 33083 | Parameter | Transition Mode is invalid
0x813c | 33084 | Parameter | BufferMode is invalid
0x813d | 33085 | FunctionBlock | Only one active Instance of Function Block per Group is allowed.
0x813e | 33086 | State | Command is not allowed in current group state.
0x813f | 33087 | FunctionBlock | Slave cannot synchronize.The slave cannot reach the SlaveSyncPosition by the time the master has reached the MasterSyncPos.
0x8140 | 33088 | Parameter | Invalid value for one or more of the dynamic parameters (A, D, J).
0x8141 | 33089 | Parameter | IdentInGroup is invalid.
0x8142 | 33090 | Parameter | The number of axes in the group is incompatible with the axes convention.
0x8143 | 33091 | Communication | Function Block or respective Command is not supported by Target.
0x8145 | 33093 | FunctionBlock | Mapping of Cyclic Interface between Nc and Plc missing (e.g. AXIS_REF, AXES_GROUP_REF, ...).
0x8146 | 33094 | FunctionBlock | Invalid Velocity ValueThe velocity was not set or the entered value is invalid
0x8148 | 33096 | FunctionBlock | Invalid Input Value
0x8149 | 33097 | Parameter | Unsupported Dynamics for selected Group Kernel
0x814a | 33098 | Parameter | The programmed position dimension incompatible with the axes convention.
0x814b | 33099 | FunctionBlock | Path buffer is invalid. E.g. because provided buffer has invalid address or is not big enough
0x814c | 33100 | FunctionBlock | Path does not contain any element
0x814d | 33101 | FunctionBlock | Provided Path buffer is too small to store more Path Elements
0x814e | 33102 | Parameter | Dimension or at least one Value of Transition Parameters is invalid
0x814f | 33103 | FunctionBlock | Invalid or Incomplete Input Array
0x8150 | 33104 | FunctionBlock | Path length is zero
0x8151 | 33105 | State | Command is not allowed in current axis state.
0x8152 | 33106 | State | TwinCAT System is shutting down and cannot complete request.
0x8160 | 33120 | NC Programming | Circle Specification in Path is invalid.The specification of a circle segment in the programmed interpolated path (e.g. via MC_MovePath) has an invalid or ambiguous descripition. Probably its center cannot be determined reliably.
0x8161 | 33121 | NC Programming | Maximum stream lines reached.The maximum number of stream lines is limited. Please refer to function block documentation for details.
0x8163 | 33123 | FunctionBlock | Invalid First Segment.The corresponding element can only be analyzed with a well-defined start point.
0x8164 | 33124 | FunctionBlock | Invalid auxiliary point.The auxiliary point is not well-defined.
0x8166 | 33126 | FunctionBlock | Invalid parameter for GapControlModeInvalid parameter for GapControlMode, most likely in combination with the group parameter GapControlDirection
0x8167 | 33127 | External | Group got unsupported Axis Event (e.g. State Change)Group got unsupported Axis Event (e.g. State Change e.g. triggered by a Single Axis Reset)
0x8f76 - 0x8ff9 | 36726 - 36857 | Internal | Unexpected Internal Error
0x8ffb - 0x8ffe | 36859 - 36862 | Internal | Unexpected Internal Error


Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] )

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] )
Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] )
Index-Group ( Hex ) | Beschreibung |  | Anmerkung
0x1000 | Ring-0-Manager: Parameter |  | Optional!
0x1100 | Ring-0-Manager: Zustand |  | Optional!
0x1200 | Ring-0-Manager: Funktionen |  | Optional!
0x1300 | Ring-0-Manager: zyklische Prozessdaten |  | Nicht implementiert!
0x2000 + ID | Kanal mit entspr. ID: Parameter |  |
0x2100 + ID | Kanal mit entspr. ID: Zustand |  |
0x2200 + ID | Kanal mit entspr. ID: Funktionen |  |
0x2300 + ID | Kanal mit entspr. ID: zyklische Prozessdaten |  |
0x3000 + ID | Gruppe mit entspr. ID: Parameter |  | Optional!
0x3100 + ID | Gruppe mit entspr. ID: Zustand |  | Optional!
0x3200 + ID | Gruppe mit entspr. ID: Funktionen |  | Optional!
0x3300 + ID | Gruppe mit entspr. ID: zyklische Prozessdaten |  | Nicht implementiert!
0x4000 + ID | Achse mit entspr. ID: Parameter |  |
0x4100 + ID | Achse mit entspr. ID: Zustand |  |
0x4200 + ID | Achse mit entspr. ID: Funktionen |  |
0x4300 + ID | Achse mit entspr. ID: zyklische Prozessdaten |  |
0x5000 + ID | Encoder mit entspr. ID: Parameter |  | Optional!
0x5100 + ID | Encoder mit entspr. ID: Zustand |  | Optional!
0x5200 + ID | Encoder mit entspr. ID: Funktionen |  | Optional!
0x5300 + ID | Encoder mit entspr. ID: zyklische Prozessdaten |  | Optional!
0x6000 + ID | Regler mit entspr. ID: Parameter |  | Optional!
0x6100 + ID | Regler mit entspr. ID: Zustand |  | Optional!
0x6200 + ID | Regler mit entspr. ID: Funktionen |  | Optional!
0x6300 + ID | Regler mit entspr. ID: zyklische Prozessdaten |  | Nicht implementiert!
0x7000 + ID | Drive mit entspr. ID: Parameter |  | Optional!
0x7100 + ID | Drive mit entspr. ID: Zustand |  | Optional!
0x7200 + ID | Drive mit entspr. ID: Funktionen |  | Optional!
0x7300 + ID | Drive mit entspr. ID: zyklische Prozessdaten |  | Optional!
0xA000 + ID | Tabellen (n x m) mit entspr. ID: Parameter |  |
0xA100 + ID | Tabellen (n x m) mit entspr. ID: Zustand |  |
0xA200 + ID | Tabellen (n x m) mit entspr. ID: Funktionen |  |
0xA300 + ID | Tabellen (n x m) mit entspr. ID: zyklische Prozessdaten |  | Nicht implementiert!
0xF000 ... 0xFFFF | Reservierter Bereich (TwinCAT Systembereich) |  |
IndexGroup: | IndexOffset: |  |
0xF081 | 0x00000000 ... 0xFFFFFFFF (n Elemente) | ADSIGRP_SUMUP_WRITE Das Read-Write-Kommando ist ein Sammelkommando und enthält in den Write-Daten eine Liste von mehreren ADS-Write-Kommandos. Aufbau der Write-Daten: [ IdxGrp(1), IdxOff(1), WriteLen(1), ..., IdxGrp(n), IdxOff(n), WriteLen(n), WriteData(1), ..., WriteData(n) ] Aufbau der Read-Daten: [ Error(1), ..., Error(n) ] |
0xF082 | 0x00000000 ... 0xFFFFFFFF (n Elemente) | ADSIGRP_SUMUP_READWRITE Das Read-Write-Kommando ist ein Sammelkommando und enthält in den Write-Daten eine Liste von mehreren ADS-Read-Write-Kommandos. Aufbau der Write-Daten: [ IdxGrp(1), IdxOff(1),ReadLen(1), WriteLen(1), ..., IdxGrp(n), IdxGrp(n), ReadLen(n), WriteLen(n), WriteData(1), ..., WriteData(n) ] Aufbau der Read-Daten: [ Error(1), ReadLen(1), ..., Error(n), ReadLen(n), ReadData(1), ..., ReadData(n) ] |
0xF084 | 0x00000000 ... 0xFFFFFFFF (n Elemente) | ADSIGRP_SUMUP_READ (READEX2) Das Read-Write-Kommando ist ein Sammelkommando und enthält in den Write-Daten eine Liste von mehreren ADS-Read-Kommandos. Aufbau der Write-Daten: [ IdxGrp(1), IdxOff(1), ReadLen(1), ..., IdxGrp(n), IdxGrp(n), ReadLen(n) ] Aufbau der Read-Daten: [ Error(1), ReadLen(1), ..., Error(n), ReadLen(n), ReadData(1), ..., ReadData(n) ] |
Weiterführende Informationen
•
Spezifikation Ring-0-Manager
•
Spezifikation Kanäle
•
Spezifikation Gruppen
•
Spezifikation Achsen
•
Spezifikation Encoder
•
Spezifikation Regler
•
Spezifikation Drive
•
Spezifikation Tabellen
•
Anhang


Spezifikation Ring-0-Manager

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Ring-0-Manager
Spezifikation Ring-0-Manager
Weiterführende Informationen
•
"Index-Offset" Spezifikation für Ring-0-Parameter (Index-Group 0x1000)
•
"Index-Offset" Spezifikation für Ring-0-Zustand (Index-Group 0x1100)
•
"Index-Offset" Spezifikation für Ring-0-Funktionen (Index-Group 0x1200)


"Index-Offset" Spezifikation für Ring-0-Parameter (Index-Group 0x1000)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Ring-0-Manager [image] "Index-Offset" Spezifikation für Ring-0-Parameter (Index-Group 0x1000)
"Index-Offset" Spezifikation für Ring-0-Parameter (Index-Group 0x1000)
Index-Offset (Hex) | Zugriff | Ring 0 Manager | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000010 | Read | every | UINT32 | 100 ns |  | Zykluszeit SAF Task |
0x00000012 | Read | every | UINT32 | 100 ns |  | Zykluszeit SVB Task |
0x00000014 | Read | every | INT32 | ns |  | Global Time Compensation Shift (SAF Task) | ab TC 2.11R3 Build 2234
0x00000020 | Read/Write | every | UINT16 | 1 | 0/1 | zyklische Überwachung und Korrektur der NC-Sollwerte auf Datenkonsistenz | ab TC 2.11 B1550


"Index-Offset" Spezifikation für Ring-0-Zustand (Index-Group 0x1100)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Ring-0-Manager [image] "Index-Offset" Spezifikation für Ring-0-Zustand (Index-Group 0x1100)
"Index-Offset" Spezifikation für Ring-0-Zustand (Index-Group 0x1100)
Index-Offset (Hex) | Zugriff | Ring 0 Manager | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | every | UINT32 | 1 | 0, 1...255 | Anzahl der Kanäle |
0x00000002 | Read | every | UINT32 | 1 | 0, 1...255 | Anzahl der Gruppen |
0x00000003 | Read | every | UINT32 | 1 | 0, 1...255 | Anzahl der Achsen |
0x00000004 | Read | every | UINT32 | 1 | 0, 1...255 | Anzahl der Encoder |
0x00000005 | Read | every | UINT32 | 1 | 0, 1...255 | Anzahl der Regler |
0x00000006 | Read | every | UINT32 | 1 | 0, 1...255 | Anzahl der Drives |
0x0000000A | Read | every | UINT32 | 1 | 0, 1...255 | Anzahl der Tabellen (n x m) |
0x00000010 | Read | every | UINT32 | 1 |  | Zykluszeitfehlerzähler SAF Task (nicht scopebar) | Reserviert !
0x00000014 | Read | every | UINT32 | 1 |  | IO-Zykluszeitfehlerzähler SAF Task (nicht scopebar) | Reserviert !
0x00000020 | Read | every | UINT32 | µs |  | Rechenzeit SAF Task (nicht scopebar) | Reserviert !
0x00000031 | Read | every | UINT32[Anzahl] | 1 | 0, 1...255 | Liefert die Kanal-IDs für sämtliche Kanäle im System |
0x00000032 | Read | every | UINT32[Anzahl] | 1 | 0, 1...255 | Liefert die Gruppen-IDs für sämtliche Gruppen im System |
0x00000033 | Read | every | UINT32[Anzahl] | 1 | 0, 1...255 | Liefert die Achs-IDs für sämtliche Achsen im System |
0x00000034 | Read | every | UINT32[Anzahl] | 1 | 0, 1...255 | Liefert die Encoder-IDs für sämtliche Encoder im System |
0x00000035 | Read | every | UINT32[Anzahl] | 1 | 0, 1...255 | Liefert die Regler-IDs für sämtliche Regler im System |
0x00000036 | Read | every | UINT32[Anzahl] | 1 | 0, 1...255 | Liefert die Drive-IDs für sämtliche Drives im System |
0x0000003A | Read | every | UINT32[Anzahl] | 1 | 0, 1...255 | Liefert die Tabellen-IDs für sämtliche Tabellen im System |
0x000001nn | Read | every | UINT32 | 1 | 0, 1...255 | Liefert für die Encoder-ID die zugehörige Achs-ID nn = Encoder-ID | Reserviert !
0x000002nn | Read | every | UINT32 | 1 | 0, 1...255 | Liefert für die Controller-ID die zugehörige Achs-ID nn = Controller-ID | Reserviert !
0x000003nn | Read | every | UINT32 | 1 | 0, 1...255 | Liefert für die Drive-ID die zugehörige Achs-ID nn = Drive-ID | Reserviert !


"Index-Offset" Spezifikation für Ring-0-Funktionen (Index-Group 0x1200)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Ring-0-Manager [image] "Index-Offset" Spezifikation für Ring-0-Funktionen (Index-Group 0x1200)
"Index-Offset" Spezifikation für Ring-0-Funktionen (Index-Group 0x1200)
Index-Offset (Hex) | Zugriff | Ring 0 Manager | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000020 | Write | every | VOID | 1 |  | Clear Zykluszeitfehlerzähler SAF & SVB | Reserviert !


Spezifikation Kanäle

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Kanäle
Spezifikation Kanäle
Weiterführende Informationen
•
"Index-Offset" Spezifikation für Kanal-Parameter (Index-Group 0x2000 + ID)
•
"Index-Offset" Spezifikation für Kanal-Zustand (Index-Group 0x2100 + ID)
•
"Index-Offset" Spezifikation für Kanal-Funktionen (Index-Group 0x2200 + ID)
•
"Index-Offset" Spezifikation für zyklische Kanal-Prozessdaten (Index-Group 0x2300 + ID)


"Index-Offset" Spezifikation für Kanal-Parameter (Index-Group 0x2000 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Kanäle [image] "Index-Offset" Spezifikation für Kanal-Parameter (Index-Group 0x2000 + ID)
"Index-Offset" Spezifikation für Kanal-Parameter (Index-Group 0x2000 + ID)
Index-Offset (Hex) | Zugriff | Kanal- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | every | UINT32 | 1 |  | Kanal-ID |
0x00000002 | Read | every | UINT8[30+1] | 1 |  | Kanal-Name |
0x00000003 | Read | every | UINT32 | 1 | ENUM | Kanal-Typ |
0x00000004 | Read | every | UINT32 | 1 | ENUM | Interpreter-Typ |
0x00000005 | Read | every | UINT32 | 1 |  | Programmladepuffergröße in Byte |
0x00000006 | Read | every | UINT32 | 1 |  | Programm-Nr laut Job-Liste |
0x00000007 | Read / Write | every | UINT32 | 1 | ENUM | Setze Lade-Logmodus |
0x00000008 | Read / Write | every | UINT32 | 1 | ENUM | Setze Trace-Modus |
0x00000009 | Read / Write | every | UINT32 | 1 |  | RESERVIERT |
0x0000000A | Read / Write | every | UINT32 | 1 | 0/1 | Protokolliert alle Feeder-Einträge in einer Log-Datei mit dem Namen "TcNci.log" |
0x0000000B | Read / Write | every | UINT32 | 1 | 0/1 | kanalspezifischer Level für NC Logger Messages 0: nur Fehler 1: alle NC-Meldungen | ab TwinCAT V2.8 B747 V2.9 B948
0x00000010 | ReadWrite | every | Write |  |  |  |
 |  |  | { |  |  |
 |  |  | UINT32 | 1 | 0..159 | Start Index der M-Fkt.
 |  |  | UINT32 | 1 | 1..160 | Anzahl der zu lesenden M-Fkt.
 |  |  | } |  |  |
 |  |  | Read[Anzahl] |  |  |
 |  |  | { |  |  |
 |  |  | UINT8 | 1 | 0..159 | Regelbit Maske der M-Fkt.
 |  |  | INT32[10] | 1 | -1..159 | Nr. der abzulöschenden M-Fkt.
 |  |  | } |  |  |
0x00000011 | Write | Interpolation |  |  |  | Schreibe M-Funktionsbeschreibung | ab TC V2.9 B803 internal use only!
0x00000012 | Read / Write | Interpolation | LREAL64 | 1 |  | Faktor für G70 | ab TC V2.9 Build 803
0x00000013 | Read / Write | Interpolation | LREAL64 | 1 |  | Faktor für G71 | ab TC V2.9 Build 803
0x00000014 | Write | Interpolation | { |  |  | Benutzersymbole für Achsen | noch nicht freigegeben
 |  |  | char[32] |  |  | Benutzersymbol (nullterminiert)
 |  |  | char[10] |  |  | Systemsymbol (nullterminiert)
 |  |  | } |  |  |
0x00000015 | Read / Write | Interpolation | UINT16 bzw. UINT32 | 1 | 0/1 Default: FALSE | Aktivierung von Default G-Code | ab TC 2.11R3 B2241
0x00000021 | Read | every | UINT32 | 1 |  | Gruppen-ID (nur eindeutig für 3D- und FIFO-Kanal |
0x00000031 | Read / Write | Interpolation | UINT16 | 1 |  | Standard Output Port des Interpreters | Reservierte Funktion, kein Standard!
0x00000032 | Read / Write | Interpolation | UINT16 | 1 | 0/1 | cartesian tool offset entry | Reservierte Funktion, kein Standard!
0x00000040 | Read / Write | Interpolation | { |  |  | Ziel-Adresse des Interpreter Hooks | Reservierte Funktion, kein Standard!
 |  |  | char[6] |  |  | Ams Net ID
 |  |  | UINT16 |  |  | Port
 |  |  | UINT32 |  |  | Index Group
 |  |  | UINT32 |  |  | Index Offset
 |  |  | } |  |  |
0x00000050 | Read / Write | Interpolation | UINT32 | 1 | ENUM | Reaktion wenn bei der Radiuskorrektur ein Flaschenhals erkannt wird 0: Fehler und Abbruch 1: Hinweis & Behebung 2: Nur Hinweis, ohne Konturanpassung | ab TwinCAT Version 2.8
0x00000051 | Read / Write | Interpolation | UINT32 | 1 | 1..24 | Look Ahead für die Flaschenhalserkennung | ab TwinCAT Version 2.8
0x00000052 | Read / Write | Interpolation | UINT32 | 1 | 0/1 | Fase an/aus | Reservierte Funktion, kein Standard!
0x00000053 | Read / Write | Interpolation | UINT32 | 1 |  | Aktivierung zum Lesen der aktuell wirkenden Interpolationsregeln, Nullpunktverschiebungen & Rotation 0: aus 1: ein | ab TC V2.10 B1303
0x00000054 | Read / Write | Interpolation | UINT32 | 1 | 0/1 | Retrace an/aus | Reservierte Funktion, kein Standard!
0x00000055 | Read / Write | Interpolation | UINT32[4] | 1 |  | Konfiguration des zyklischen Kanalinterface für UINT32 max. 4 Index Offsets können konfiguriert werden. | ab TC V2.10 B1320
0x00000056 | Read / Write | Interpolation | UINT32[4] | 1 |  | Konfiguration des zyklischen Kanalinterface für LREAL max. 4 Index Offsets können konfiguriert werden. | ab TC V2.10 B1320
0x00010K0L | Read / Write | every | REAL64 | z.B. mm | ±MAX REAL64 | Wert für Nullpunktverschiebung (NPV) |
 |  |  |  |  | [1..3] | Index der Achse: K=1 → X K=2 → Y K=3 → Z
 |  |  |  |  | [1..0xA] | L=1 → G54F L=2 → G54G L=3 → G55F ...
0x0002ww00 | Read / Write | every | UINT16 |  |  | Tool-Nummer: Werte für Werkzeugkorrektur |
0x0003ww00 | Read / Write | every | UINT16 |  | [1...50] | Tool-Typ: ww = Werkzeug 1...50 |
0x0004wwnn | Read / Write | every | REAL64 |  | [1...14] | Parameter: nn = Index 1...14 |
0x000500gg | Read / Write | every | REAL64 | z.B. mm | ≥ 0 (Wert) [1...9] (g) | Radius der Toleranzkugel gg = Gruppe des Kanals (Default: 1) |


"Index-Offset" Spezifikation für Kanal-Zustand (Index-Group 0x2100 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Kanäle [image] "Index-Offset" Spezifikation für Kanal-Zustand (Index-Group 0x2100 + ID)
"Index-Offset" Spezifikation für Kanal-Zustand (Index-Group 0x2100 + ID)
Index-Offset (Hex) | Zugriff | Kanal- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | every | INT32 | 1 | ENUM | Fehlercode Kanal |
0x00000002 | Read | every | UINT32 | 1 |  | Anzahl Gruppen im Kanal |
0x00000003 | Read | every | UINT32 | 1 | ENUM | Interpreterstatus | Nicht oszilloskopierbar!
0x00000004 | Read | every | UINT32 | 1 |  | Interpreter Betriebsart (interpreter/channel operation mode) |
0x00000005 | Read | every | UINT32 | 1 |  | Aktuell geladenes Programm |
0x00000007 | Read | every | UINT8[...] | 1 |  | Programmname des aktuell geladenen Programms (100 Zeichen, Null-Terminiert) | max. 100 Zeichen, Null-Terminiert
0x00000008 | Read | Interpreter | UINT32 | 1 | [0,1] | Interpreter Simulationsmode 0: off (default) 1: on | ab V2.9 B946 Nicht oszilloskopierbar!
0x00000010 | Read | Interpreter | UINT32 | 1 |  | Text Index Falls sich der Interpreter im Aborted Status befindet, kann hiermit der aktuelle Text Index ausgelesen werden | Nicht oszilloskopierbar!
0x00000011 | ReadWrite | Interpreter | Write |  |  |  | Nicht oszilloskopierbar!
 |  |  | UINT32 | 1 |  | Text Index
 |  |  | Read |  |  |
 |  |  | UINT8[..] | 1 |  | Zeile des NC-Teileporgramms ab dem Textindex
0x00000012 | Read | Interpreter | { |  |  |  | ab TC V2.10 B1243
 |  |  | UINT32 | 1 |  | Aktuelle Anzeige für 1: SAF 2: Interpreter 3: Fehleroffset
 |  |  | UINT32 | 1 |  | Fileoffset
 |  |  | UINT8[260] | 1 |  | Pfad + Programmname
 |  |  | } |  |  |
0x00000013 | Read | Interpreter | UINT32[18] |  |  | Anzeige für aktuell wirkenden G-Code | ab TC V2.10 B1303
0x00000014 | Read | Interpreter | { |  |  | Ermittelt die aktuell wirkende Nullpunktverschiebung | ab TC V2.10 B1303
 |  |  | UINT32 | 1 |  | Satzzähler
 |  |  | UINT32 |  |  | dummy
 |  |  | LREAL[3] | 1 |  | Nullpunktverschiebung G54..G57
 |  |  | LREAL[3] | 1 |  | Nullpunktverschiebung G58
 |  |  | LREAL[3] | 1 |  | Nullpunktverschiebung G59
 |  |  | } |  |  |
0x00000015 | Read | Interpreter | { |  |  | Ermittelt die aktuell wirkende Rotation | ab TC V2.10 B1303
 |  |  | UINT32 | 1 |  | Satzzähler
 |  |  | UINT32 | 1 |  | dummy
 |  |  | LREAL[3] | 1 |  | Rotation in Grad von X, Y & Z
 |  |  | } |  |  |
0x00000016 | Read | Interpreter | UINT32 | 1 | [0,1] | Feeder Info | internal usage kein Standard
0x00000100 | Read | every | UINT32[Anzahl] | 1 | [0, 1...255] | Liefert die jeweiligen Achs-IDs im Kanal | Anzahl: [1...255] Achs-ID's: [0, 1...255] Nicht oszilloskopierbar!


"Index-Offset" Spezifikation für Kanal-Funktionen (Index-Group 0x2200 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Kanäle [image] "Index-Offset" Spezifikation für Kanal-Funktionen (Index-Group 0x2200 + ID)
"Index-Offset" Spezifikation für Kanal-Funktionen (Index-Group 0x2200 + ID)
Index-Offset (Hex) | Zugriff | Kanal- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Write | every | UINT32 | 1 |  | Lade NC-Programm per Programmnummer |
0x00000002 | Write | every | VOID |  |  | Starte Interpreter |
0x00000003 | Write | every | VOID |  |  | RESERVIERT |
0x00000004 | Write | every | UINT8[...] |  |  | Lade NC-Programm per Programmnamen. Der Standard NC-Pfad muss nicht (darf aber) mit angegeben werden. Auch andere Pfade sind zulässig. |
0x00000005 | Write | every | UINT16 | ENUM | s. Anhang Interpreter Betriebsarten | Setze Interpreter Betriebsart (interpreter/channel operation mode) | ab TwinCAT V2.9 Buld 901
0x00000006 | Write | Interpreter | UINT8[...] |  |  | Setze Pfad für Unterprogramme | ab TwinCAT V2.9 Build 1001
0x00000008 | Write | Interpreter | UINT32 | 1 |  | Interpreter Simulationsmode: 0: off (default) 1: on | noch nicht freigegeben
0x0000000F | Write | every | VOID |  |  | RESERVIERT |
0x00000010 | Write | every | VOID |  |  | "Reset" Kanal |
0x00000011 | Write | every | VOID |  |  | "Stopp" Kanal |
0x00000012 | Write | every | VOID |  |  | "Retry" Kanal (Wiederanlauf Kanal) | nicht implementiert!
0x00000013 | Write | every | VOID |  |  | "Skip" Kanal (Überspringe Auftrag/Satz) | nicht implementiert!
0x00000014/ 0x00000015 | Write | every | { |  |  | "Enable Retrace" / "Disable Retrace" | Reservierte Funktion, kein Standard!
 |  |  | UINT32 | 1 | >0 | Feeder Abarbeitungsrichtung: 1: vorwärts, 2: rückwärts
 |  |  | UINT32 | 1 | ≥ 0 | Entry-Index
 |  |  | REAL64[3] | mm | ±∞ | Pos. der Hauptachsen X, Y, Z
 |  |  | REAL64[5] | mm | ±∞ | Pos. der Hilfsachsen Q1, ..., Q5
 |  |  | } |  |  |
0x00000018 | Write | Interpreter | _ST_ItpBlockSearchParams |  |  | Enable Blocksearch |
0x00000019 | Write | Interpreter | VOID |  |  | StepOnAfterBlockSearch |
0x00000020 | Write | every | VOID |  |  | "Save" Nullpunktverschiebung (NPV) |
0x00000021 | Write | every | VOID |  |  | "Load" Nullpunktverschiebung (NPV) |
0x00000022 | Write | every | VOID |  |  | "Save" Werkzeugkorrekturen |
0x00000023 | Write | every | VOID |  |  | "Load" Werkzeugkorrekturen |
0x00000024 | Write | Inter- polation | { |  |  | Speichert Snapshot des Interpreters in eine angegebene Datei | ab TwinCAT V2.9 Build 1002
 |  |  | char[32] |  |  | Dateiname im TwinCAT\CNC-Verzeichnis
 |  |  | UINT32 | 1 | 0..1 | Maske: 0x1: R-Parameter 0x2: Nullpunktverschiebungen (ab Build 1235) 0x4: Werkzeugbeschreibungen (ab Build 1235)
 |  |  | } |  |  |
0x00000025 | Write | Inter- polation | { |  |  | Liest Snapshot aus einer angegebenen Datei in den Interpreter ein | ab TwinCAT V2.9 Build 1002
 |  |  | char[32] |  |  | Dateiname im TwinCAT\CNC-Verzeichnis
 |  |  | UINT32 | 1 | 0..1 | Maske: 0x1: R-Parameter 0x2: Nullpunktverschiebungen (ab Build 1235) 0x4: Werkzeugbeschreibung (ab Build1235)
 |  |  | } |  |  |
0x00000026 | Write | Inter- polation | VOID |  |  | Setzt alle Werkzeugparameter (inkl. Type und Nummer) auf Null | ab TwinCAT V2.9 Build 1031
0x00000027 | Write | Inter- polation | VOID |  |  | Setzt alle Nullpunktverschiebungen auf Null | ab TwinCAT V2.9 Build 1031
0x00000030 | Write | every | VOID |  |  | Wiederanlauf (Go Ahead) des Interpreters nach programmierten Interpreterstopp |
0x00000040 | Write | every | VOID |  |  | Triggerevent zum Restweglöschen in der NCI |
0x00000041 | Write | every |  |  |  | RESERVIERT für Messereignis |
0x00000050 | Write | Inter- polation | VOID | 1 |  | Setzt ExecIdleInfo im Interpreter | Reservierte Funktion, kein Standard!
0x00000051 | Write | Inter- polation | UINT32 | 1 |  | Setzt Satzunterdrückungsmaske im Interpreter Parameter: SkippingMask | Reservierte Funktion, kein Standard!
0x00000052 | Write | Inter- polation | UINT32 | 1 |  | Setzt ItpOperationMode im Interpreter Parameter: Maske des OperationsModes | Reservierte Funktion, kein Standard!
0x00000053 | Write | Inter- polation | VOID |  |  | Setzt ScanningFlag im NC Device | Reservierte Funktion, kein Standard!
0x00000054 | Write | Inter- polation |  |  |  | ScanPosition | Reservierte Funktion, kein Standard!
 |  |  | double[8] |  |  | Position
0x00000055 | Write | Inter- polation |  |  |  | Reserviert |
0x00000056 | Write | Inter- polation | VOID |  |  | Setzt Interpreter in Aborted Status | Reservierte Funktion, kein Standard!
0x00000060 | Write | Interp- polation | UINT16 | 1 | 0..159 | Manuelles Zurücksetzen einer schnellen M-Funktion |


"Index-Offset" Spezifikation für zyklische Kanal-Prozessdaten (Index-Group 0x2300 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Kanäle [image] "Index-Offset" Spezifikation für zyklische Kanal-Prozessdaten (Index-Group 0x2300 + ID)
"Index-Offset" Spezifikation für zyklische Kanal-Prozessdaten (Index-Group 0x2300 + ID)
Index-Offset (Hex) | Zugriff | Kanal- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000000 | Read | every (PLC→NC) | {150 Byte} |  | STRUCT s. Kanal-Interface | KANAL-STRUKTUR (PLC→NC) | Die zugehörige PLC Struktur ist: NciChannelFromPlc Alte Struktur: PLCTONC_CHANNELSTRUCT
0x00000001 | Read | every | UINT8[...] min. 30 Byte | 1 |  | Interpreter Programmanzeige | Nicht oszilloskopierbar!
0x00000002 | Read / Write | every (PLC→NC) | UINT32 | % | [0...1000000] | Geschwindigkeitsoverride Kanal (Achsen im Kanal) | 1000000 = 100%
0x00000003 | Read / Write | every (PLC→NC) | UINT32 | % | [0...1000000] | Geschwindigkeitsoverride Spindel | 1000000 = 100%
0x00000080 | Read | every (NC→PLC) | {150 Byte} |  | STRUCT s. Kanal-Interface | KANAL-STRUKTUR (NC→PLC) | Die aktuelle zugehörige PLC Struktur ist: NciChannelToPlc alte Struktur: NCTOPLC_CHANNELSTRUCT
0x10000000 + Registerindex | Read / Write | every | REAL64 | 1 | [0...999] | R-Parameter des Interpreters | Nicht oszilloskopierbar!
0x20000001 | Read | every | UINT8[...] min. 30 Byte | 1 | [1...9] | Programmanzeige der Gruppenabarbeitung (SAF) | Nicht oszilloskopierbar!


Spezifikation Gruppen

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Gruppen
Spezifikation Gruppen
Weiterführende Informationen
•
"Index-Offset" Spezifikation für Gruppen-Parameter (Index-Group 0x3000 + ID)
•
"Index-Offset" Spezifikation für Gruppen-Zustand (Index-Group 0x3100 + ID)
•
"Index-Offset" Spezifikation für Gruppen-Funktionen (Index-Group 0x3200 + ID)


"Index-Offset" Spezifikation für Gruppen-Parameter (Index-Group 0x3000 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Gruppen [image] "Index-Offset" Spezifikation für Gruppen-Parameter (Index-Group 0x3000 + ID)
"Index-Offset" Spezifikation für Gruppen-Parameter (Index-Group 0x3000 + ID)
Index-Offset (Hex) | Zugriff | Gruppen- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | every | UINT32 | 1 |  | Gruppen ID |
0x00000002 | Read | every | UINT8[30+1] | 1 |  | Gruppen-Name |
0x00000003 | Read | every | UINT32 | 1 |  | Gruppen-Typ |
0x00000004 | Read | every | UINT32 | µs |  | SAF-Zykluszeit Gruppe |
0x00000005 | Read | every | UINT32 | µs |  | SVB-Zykluszeit Gruppe |
0x00000006 | Read / Write | every | UINT16 | 1 | 0/1 | Einzelsatz-Betriebsart? |
0x0000000B | Read | every | UINT32 | 1 |  | Größe der SVB-Tabelle (max. Anzahl von SVB-Einträgen |
0x0000000C | Read | every | UINT32 | 1 |  | Größe der SAF-Tabelle (max. Anzahl von SAF-Einträgen |
0x00000010 | Read / Write | every | UINT32 | 1 | [1,2...32] | Interner SAF-Zykluszeit Divisor (dividiert die interne SAF-Zykluszeit um diesen Faktor) | Default: 1
0x00000021 | Read | Kanal: every | UINT32 | 1 |  | Kanal-ID |
0x00000022 | Read | Kanal: every | UINT8[30+1] | 1 |  | Kanal-Name |
0x00000023 | Read | Kanal: every | UINT32 | 1 |  | Kanal-Typ |
0x00000024 | Read | Kanal: every | UINT32 | 1 | >0 | Nummer im Kanal |
0x00000500 | Read / Write | DXD-Gruppe | INT32 | ENUM | [0, 1] | Kurvengeschwindigkeitsreduktionsmethode 0: Coulomb-Scattering 1: Cosinus-Gesetz 2: VeloJump |
0x00000501 | Read / Write | DXD-Gruppe | REAL64 | 1 | [0.0...1.0] | Geschwindigkeitsreduktionsfaktor C0-Übergang (stetiger Verlauf, aber weder einmal noch zweimal stetig differenzierbar) |
0x00000502 | Read / Write | DXD-Gruppe | REAL64 | 1 | [0.0...1.0] | Geschwindigkeitsreduktionsfaktor C1-Übergang (stetiger Verlauf und einmal stetig differenzierbar) |
0x00000503 | Read / Write | DXD-Gruppe | REAL64 | Grad | [0.0...180.0] | Kritischer Winkel am Segmentübergang "Low" (muss echt kleiner gleich dem Geschwindigkeitsreduktionswinkel C0 sein) |
0x00000504 | Read / Write | DXD-Gruppe | REAL64 | Grad | [0.0...180.0] | Kritischer Winkel am Segmentübergang "High" (muss echt kleiner gleich dem Geschwindigkeitsreduktionswinkel C0 sein) |
0x00000505 | Read / Write | DXD-Gruppe | REAL64 | mm/s | ≥ 0 | Mindestgeschwindigkeit, die an Segmentübergängen trotz möglicher Geschwindigkeitsreduktion nicht unterschritten werden darf. |
0x00000506 | Read / Write | DXD-Gruppe | REAL64 | z.B. mm | [0.0...1000.0] | Radius der Toleranzkugel für Verschleifungen | nicht implementiert!
0x00000507 | Read / Write | DXD-Gruppe | REAL64 | 1 |  | Geschwindigkeitsreduktionsfaktor C2-Übergang |
0x00000508 | Read / Write | DXD- Gruppe | UINT32 | 1 | 0/1 | aktiviert Berechnung der totalen verbleibenden Bahnlänge |
0x00000509 | Read / Write | DXD- Gruppe | UINT16 | 1 | 0/1 | Allgemeine Aktivierung der Software Endlagenüberwachung für die Hauptachsen (X, Y, Z) (s. Encoderparameter) | ab TwinCAT V2.9 B959
0x0000050A | Read / Write | DXD- Gruppe | UINT32 | 1 | 0/1 | NCI Overridetype 0: Bezogen auf interne reduzierte Geschwindigkeit (ohne Iteration) 1: Bezogen auf originale externe (programmierte) Geschwindigkeit | ab TwinCAT V2.9 B948
0x0000050B | Read / Write | DXD- Gruppe | UINT16 | 1 | 0/1 | NCI Override 0: Override begrenzt auf 100% 1: Override >100% möglich | ab TwinCAT V2.10 B1226
0x00000510 | Read / Write | DXD-Gruppe | REAL64 | 1 | ≥ 0 | Für Reduktionsmethode VeloJump Reduktionsfaktor für C0-Übergänge: X-Achse | nicht implementiert!
0x00000511 | Read / Write | DXD-Gruppe | REAL64 | 1 | ≥ 0 | Für Reduktionsmethode VeloJump Reduktionsfaktor für C0-Übergänge: Y-Achse | nicht implementiert!
0x00000512 | Read / Write | DXD-Gruppe | REAL64 | 1 | ≥ 0 | Für Reduktionsmethode VeloJump Reduktionsfaktor für C0-Übergänge: Z-Achse | nicht implementiert!
0x00000513 | Read / Write | DXD-Gruppe | LREAL64 | 1 | ]0.0..1.0[ | Verschleifung für Hilfsachen: Ist die resultierende Bahngeschwindigkeit kleiner als die prog. mal diesem Faktor, so wird ein Genauhalt eingefügt | ab TwinCAT V2.11 B1552
0x00000604 | Read / Write | Encoder-Gruppe | REAL64 | z.B.mm/s | [0.0...1000.0] | Geschwindigkeitsfenster bzw. Stillstandsfenster | Base Unit / s
0x00000605 | Read / Write | Encoder-Gruppe | REAL64 | s | [0.0...60.0] | Filterzeit für Stillstandsfenster in Sekunden |
0x00000606 | Read / Write | Encoder-Gruppe | REAL64 | s | [0.0...60.0] | Totzeitkompensation Master/Slave- Kopplung ("Winkelvorsteuerung") |
0x00000701 | Read | FIFO-Gruppe | UINT32 | 1 | [1...8] bzw. [1...16] | FIFO-Dimension (m = Anzahl der Achsen) (ab TC 2.11 Build 1547 ist die FIFO-Dimension von 8 auf 16 erhöht worden) | (n x m)-FIFO Boot-Daten !
0x00000702 | Read | FIFO-Gruppe | UINT32 | 1 | [1...10000] | FIFO-Größe (Länge) (n = Anzahl der FIFO-Einträge) | (n x m)-FIFO Boot-Daten !
0x00000703 | Read | FIFO-Gruppe | UINT32 | 1 | [0, 1, 4] | Interpolationstyp für FIFO-Sollwertgenerator 0: INTERPOLATIONTYPE_LINEAR (Default) 1: INTERPOLATIONTYPE_4POINT 4: INTERPOLATIONTYPE_CUBICSPLINE (with 6 points) | ab TwinCAT 211R3 Build 2257
0x00000704 | Read / Write | FIFO-Gruppe | UINT32 | 1 | [1, 2] | Overridetyp für FIFO-Sollwertgenerator Typ 1: OVERRIDETYPE_INSTANTANEOUS (Default) Typ 2: OVERRIDETYPE_PT2 |
0x00000705 | Read / Write | FIFO-Gruppe | REAL64 | s | > 0.0 | P-T2-Zeit für Overrideänderung (T1=T2=T0) |
0x00000706 | Read / Write | FIFO-Gruppe | REAL64 | s | ≥ 0.0 | Zeitdelta für zwei aufeinanderfolgende FIFO-Einträge (Zeitbasis der FIFO-Einträge) |
0x00000801 | ReadWrite | Kinematik-Gruppe | Write |  |  | Berechnung der kinematischen Hintransformation für die Positionen (ACS -> MCS) |
 |  |  | { |  |  |
 |  |  | REAL64[8] | z.B. Grad | ±∞ | Positionen der ACS-Achsen (Axis Coordinate System), max. Dimension: 8
 |  |  | UINT32 | 1 | ≥ 0 | Reserve
 |  |  | UINT32 | 1 | ≥ 0 | Reserve
 |  |  | } |  |  |
 |  |  | Read |  |  |
 |  |  | { |  |  |
 |  |  | REAL64[8] | z.B. mm | ±∞ | Positionen der MCS-Achsen (Machine Coordinate System), max. Dimension: 8
 |  |  | UINT32 | 1 | ≥ 0 | Reserve
 |  |  | UINT32 | 1 | ≥ 0 | Reserve
 |  |  | } |  |  |
0x00000802 | ReadWrite | Kinematik-Gruppe | Write |  |  | Berechnung der kinematischen Rücktransformation für die Positionen (MCS -> ACS) |
 |  |  | { |  |  |
 |  |  | REAL64[8] | z.B. mm | ±∞ | Positionen der MCS-Achsen (Machine Coordinate System), max. Dimension: 8
 |  |  | UINT32 | 1 | ≥ 0 | Reserve
 |  |  | UINT32 | 1 | ≥ 0 | Reserve
 |  |  | } |  |  |
 |  |  | Read |  |  |
 |  |  | { |  |  |
 |  |  | REAL64[8] | z.B. Grad | ±∞ | Positionen der ACS-Achsen (Axis Coordinate System), max. Dimension: 8
 |  |  | UINT32 | 1 | ≥ 0 | Reserve
 |  |  | UINT32 | 1 | ≥ 0 | Reserve
 |  |  | } |  |  |


"Index-Offset" Spezifikation für Gruppen-Zustand (Index-Group 0x3100 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Gruppen [image] "Index-Offset" Spezifikation für Gruppen-Zustand (Index-Group 0x3100 + ID)
"Index-Offset" Spezifikation für Gruppen-Zustand (Index-Group 0x3100 + ID)
Index-Offset (Hex) | Zugriff | Gruppen- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | every | INT32 | 1 | ENUM | Fehlercode Gruppe |
0x00000002 | Read | every | UINT32 | 1 |  | Anzahl Masterachsen |
0x00000003 | Read | every | UINT32 | 1 |  | Anzahl Slaveachsen |
0x00000004 | Read | every | UINT32 | 1 | s. ENUM | SVB-Gruppenstatus (Zustand) |
0x00000005 | Read | every | UINT32 | 1 | s. ENUM | SAF-Gruppenstatus (main state) |
0x00000006 | Read | every | UINT32 | 1 | s. ENUM | Bewegungszustand (Zustand) |
0x00000007 | Read | every | UINT32 | 1 | s. ENUM | SAF-Sub-Gruppenstatus (sub state) |
0x00000008 | Read | every | UINT32 | 1 | s. ENUM | Referenzierstatus (Zustand) |
0x00000009 | Read | every | UINT32 | 1 | s. ENUM | Koppelstatus (Zustand) | Nicht oszilloskopierbar!
0x0000000A | Read | every | UINT32 | 1 | ≥0 | Koppeltabellen-Index | Nicht oszilloskopierbar!
0x0000000B | Read | every | UINT32 | 1 | ≥0 | Aktuelle Anzahl SVB-Einträge/Aufträge | Symbolischer Zugriff: 'SvbEntries' (DXD)
0x0000000C | Read | every | UINT32 | 1 | ≥0 | Aktuelle Anzahl SAF-Einträge/Aufträge | Symbolischer Zugriff: 'SafEntries' (DXD)
0x0000000D | Read | every | UINT32 | 1 |  | Aktuelle Satznummer (nur für Interpolationsgruppe aktiv) | Symbolischer Zugriff: 'BlockNumber' (DXD)
0x0000000E | Read | every | UINT32 | 1 | ≥0 | Aktuelle Anzahl freier SVB-Einträge/Aufträge | ab TwinCAT V2.9 B903 Nicht oszilloskopierbar!
0x0000000F | Read | every | UINT32 | 1 | ≥0 | Aktuelle Anzahl freier SAF-Einträge/Aufträge | ab TwinCAT V2.9 B903 Nicht oszilloskopierbar!
0x00000011 | Read | every | UINT16 | 1 | 0/1 | Emergency Stop (E-Stop) aktiv ? | Nicht oszilloskopierbar!
0x00000110 | Read | PTP-Gruppe | { |  |  | Interne NC-Informationen (Auflösungen) | Reserviert !
 |  |  | REAL64 | z.B. mm | ± ∞ | ExternalEndPosition
 |  |  | REAL64 | z.B. mm/s | >0 | ExternalTargetVelocity
 |  |  | REAL64 | z.B. mm/s^2 | >0 | ExternalAcceleration
 |  |  | REAL64 | z.B. mm/s^2 | >0 | ExternalDeceleration
 |  |  | REAL64 | z.B. mm/s^3 | >0 | ExternalJerk
 |  |  | UINT32 | 1 | >0 | ExternalOverrideType
 |  |  | REAL64 | z.B. mm | ± ∞ | InternalEndPosition
 |  |  | REAL64 | z.B. mm/s | >0 | InternalTargetVelocity (refers to 100 %)
 |  |  | REAL64 | % | [0 ... 100] | InternalActualOverride
 |  |  | REAL64 | z.B. mm/s^2 | >0 | InternalAcceleration
 |  |  | REAL64 | z.B. mm/s^2 | >0 | InternalDeceleration
 |  |  | REAL64 | z.B. mm/s^3 | >0 | InternalJerk
 |  |  | REAL64 | z.B. mm | >0 | PositionResolution
 |  |  | REAL64 | z.B. mm/s | ≥0 | VelocityResolution
 |  |  | REAL64 | z.B. mm/s^2 | ≥0 | AccelerationResolution
 |  |  | REAL64 | z.B. mm/s | ≥0 | VelocityResolutionAtAccelerationZero
 |  |  | } |  |  |
0x00000500 | Read | DXD-Gruppe | REAL64 | z.B. mm | ≥ 0 | Bahnrestweg (verbleibende Bogenlänge) auf dem aktuellen Bahnsegment | Symbolischer Zugriff: 'SetPathRemLength'
0x00000501 | Read | DXD-Gruppe | REAL64 | z.B. mm | ≥ 0 | abgefahrene Bogenlänge auf dem aktuellen Bahnsegment | Symbolischer Zugriff: 'SetPathLength'
0x00000502 | Read | DXD-Gruppe | REAL64 | z.B. mm/s | ≥ 0 | aktuelle Bahnsollgeschwindigkeit | Symbolischer Zugriff: 'SetPathVelo'
0x00000503 | Read | DXD-Gruppe | REAL64 | z.B. mm/s^2 | ± ∞ | aktuelle Bahnsollbeschleunigung | Symbolischer Zugriff: 'SetPathAcc'
0x00000504 | Read | DXD-Gruppe | REAL64 | z.B. mm/s^2 | ≥ 0 | Betrag der aktuellen vektoriellen Sollbeschleuniging | Symbolischer Zugriff: 'SetPathAbsAcc'
0x00000505 | Read | DXD-Gruppe | REAL64 | z.B. mm/s | ≥ 0 | maximale Segmentendbahnsollgeschwindigkeit | Symbolischer Zugriff: 'SetPathVeloEnd'
0x00000506 | Read | DXD-Gruppe | REAL64 | z.B. mm/s | ≥ 0 | Segmentmaximalbahnsollgeschwindigkeit | Symbolischer Zugriff: 'SetPathVeloMax'
0x00000507 | Read | DXD-Gruppe | REAL64 | z.B. mm | ≥ 0 | aktueller relativer Bremsweg bezogen auf die aktuelle Bogenlänge | Symbolischer Zugriff: 'SetPathStopDist'
0x00000508 | Read | DXD-Gruppe | REAL64 | z.B. mm | ± ∞ | Sicherheitsabstand = Segmentbogenlänge - aktuelle Bogenlänge - relativer Bremsweg | Symbolischer Zugriff: 'SetPathSecurityDist'
0x00000509 | Read | DXD-Gruppe | REAL64 | 1 | 0/1 | Segmentübergang | Symbolischer Zugriff: 'SetPathSegmentChange'
0x0000050A | Read | DXD-Gruppe | REAL64 | % | [0 ... 100] | Bahngeschwindigkeitsoverride | Symbolischer Zugriff: 'SetPathOverride'
0x00000511 | Read | DXD-Gruppe | REAL64 | z.B. mm/s | ≥ 0 | Betrag der Bahnistgeschwindigkeit | Symbolischer Zugriff: 'ActPathAbsVelo'
0x00000512 | Read | DXD-Gruppe | REAL64 | z.B. mm/s^2 | ± ∞ | Bahnistbeschleunigung auf aktuellem Segment | Symbolischer Zugriff: 'ActPathAcc'
0x00000513 | Read | DXD-Gruppe | REAL64 | z.B. mm/s^2 | ≥ 0 | Betrag der Bahnistbeschleunigung auf aktuellem Segment | Symbolischer Zugriff: 'ActPathAbsAcc'
0x00000514 | Read | DXD-Gruppe | REAL64 | z.B. mm | ± ∞ | Positionsfehler auf der Bahn in tangentialer Richtung (mit Vorzeichen für Vor- und Nacheilen) | Symbolischer Zugriff: 'PathDiffTangential'
0x00000515 | Read | DXD-Gruppe | REAL64 | z.B. mm | ≥ 0 | Positionsfehler auf der Bahn in orthogonaler Richtung | Symbolischer Zugriff: 'PathDiffOrthogonal'
0x00000520 | Read | DXD-group | REAL64 | 1 | ≥ 0 | Abgefahrene Bogenlänge des aktuellen Segmentes (normiert auf 1.0) |
0x00000521 | Read | DXD-group | REAL64 | 1 | 0/1 | Teilsegmentwechsel (Radius der Toleranzkugel) |
0x00000522 | Read | DXD- group | REAL64 | 1 | ≥ 0 | gesamter Bahnrestweg bis zum letzten Geometrieeintrag oder zum nächsten Genauhalt. Bezieht sich auf Gruppenparameter 0x508. |
0x00000523 | Read | DXD- group | REAL64 | 1 | ≥ 0 | programmierte Geschwindigkeit des aktuellen Segments | ab TC V2.9 B1031
0x00000530 | Read | DXD-Gruppe | { |  |  | Aktuelle bzw. letzte Zielposition der Hauptachsen X, Y und Z |
 |  |  | REAL64 | z.B. mm | ± ∞ | Zielposition X-Achse
 |  |  | REAL64 | z.B. mm | ± ∞ | Zielposition Y-Achse
 |  |  | REAL64 | z.B. mm | ± ∞ | Zielposition Z-Achse
 |  |  | } |  |  |
0x00000531 | Read | DXD-Gruppe | { |  |  | Aktuelle bzw. letzte Zielposition der Hilfsachsen Q1 bis Q5 |
 |  |  | REAL64[5] | z.B. mm | ± ∞ | Zielposition der Q1- bis Q5-Achse
 |  |  | } |  |  |
0x00000532 | Read | DXD-Gruppe | { |  |  | Lesen der Bahnlänge, H-Parameter und Entry ID der nächsten 11 Segmente bezogen auf die aktuelle DC-Time | ab TC 2.11 B2226
 |  |  | UINT32 |  |  | DC Time
 |  |  | UINT32 |  |  | reserved
 |  |  | PreViewTab[11] |  |  | 11*24 Bytes
 |  |  | } |  |  |
 |  |  | PreViewTab |  |  |
 |  |  | { |  |  |
 |  |  | REAL64 | z.B. mm |  | Segmentlänge
 |  |  | UINT32 | 1 |  | Blocknummer
 |  |  | UINT32 | 1 |  | H-Parmeter
 |  |  | UINT32 | 1 |  | Entry ID
 |  |  | UINT32 | 1 |  | reserved
 |  |  | } |  |  |
0x0000054n | Read | DXD-Gruppe | REAL64 | 1 | 0/1 | Innerhalb der Toleranzkugel der Hilfsachse n = 1..5 Nummer der Hilfsachse (nicht Achs-ID) | ab TC V2.9 B932
0x00000550 | Read | DXD-Gruppe | { |  |  | Lesen der Achs-ID's innerhalb der 3D-Gruppe: |
 |  |  | UINT32 | 1 | [0, 1...255] | X-Achsen ID
 |  |  | UINT32 | 1 | [0, 1...255] | Y-Achsen ID
 |  |  | UINT32 | 1 | [0, 1...255] | Z-Achsen ID
 |  |  | } |  |  |
0x00000552 | Read | DXD-Gruppe FIFO-Gruppe Kinematik-Gruppe | { UINT32[m] } | 1 | [0, 1...255] | Achsbelegung der Gruppe: 1. Achs-ID. ..., m.-Achs-ID m: Dimension der 3D-Gruppe mit Haupt- und Zusatzachsen (X, Y, Z, Q1, Q2, Q3, Q4, Q5) bzw. der FIFO-Gruppe bzw. die ACS-Achsen der Kinematik-Gruppe |
0x00000553 | Read | Kinematik-Gruppe | { |  |  | Lesen der Achsbelegung (ID's) innerhalb der Kinematik-Gruppe: |
 |  |  | UINT32[8] | 1 | [0, 1...255] | MCS-Achsen ID's (Machine Coordinate System)
 |  |  | UINT32[8] | 1 | [0, 1...255] | ACS-Achsen ID's (Axis Coordinate System)
 |  |  | UINT32 | 1 | ≥ 0 | Reserve
 |  |  | UINT32 | 1 | ≥ 0 | Reserve (NEW)
 |  |  | } |  |  |
0x00000556 | Read | DXD-Gruppe | ST_ItpBlockSearchData |  |  | Lesen der Blocksearchdaten |
0x0000056n | Read | DXD- Gruppe | REAL64 | 1 | ± ∞ | aktueller Positionsfehler der Hilfsachse innerhalb der Toleranzkugel (nur sollwertseitig) Nur für Hilfsachsen n = 1..5 Nummer der Hilfsachse (nicht Achs-ID) | ab TC V2.9 B932


"Index-Offset" Spezifikation für Gruppen-Funktionen (Index-Group 0x3200 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Gruppen [image] "Index-Offset" Spezifikation für Gruppen-Funktionen (Index-Group 0x3200 + ID)
"Index-Offset" Spezifikation für Gruppen-Funktionen (Index-Group 0x3200 + ID)
Index-Offset (Hex) | Zugriff | Gruppen- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Write | every | VOID |  |  | Reset Gruppe |
0x00000002 | Write | every | VOID |  |  | Stop Gruppe |
0x00000003 | Write | every | VOID |  |  | Clear Gruppe (Buffer/Auftrag) |
0x00000004 | Write | PTP-Gruppe, 3D-Gruppe | { |  |  | Emergency Stop (E-Stop) (Notstop mit geregelter Rampe) |
 |  |  | REAL64 | z.B. mm/s^2 | ≥ 0.0 | Verzögerung (muss größer gleich der Originalverzögerung sein)
 |  |  | REAL64 | z.B. mm/s^3 | ≥ 0.0 | Ruck (muss größer gleich dem Originalruck sein)
 |  |  | } |  |  |
0x00000005 | Write | PTP-Gruppe | { |  |  | Parametrierbarer Stop (mit geregelter Rampe) | Reservierte Funktion, kein Standard!
 |  |  | REAL64 | z.B. mm/s^2 | ≥ 0.0 | Verzögerung
 |  |  | REAL64 | z.B. mm/s^3 | ≥ 0.0 | Ruck
 |  |  | } |  |  |
0x00000006 | Write | PTP-Gruppe, 3D-Gruppe | VOID |  |  | Weiterfahren ("Step on") nach Emergency-Stop (E-Stop) |
0x00000050 | Write | PTP-Gruppe 3D-Gruppe | { |  |  | Achsbelegung der Gruppe: |
 |  |  | UINT32 | 1 | [0, 1...255] | X-Achsen ID
 |  |  | UINT32 | 1 | [0, 1...255] | Y-Achsen ID
 |  |  | UINT32 | 1 | [0, 1...255] | Z-Achsen ID
 |  |  | } |  |  |
0x00000051 | Write | PTP-Gruppe 3D-Gruppe FIFO-Gruppe | { |  |  | Achsbelegung der Gruppe: |
 |  |  | UINT32 | 1 | [1...255] | Achsen ID
 |  |  | UINT32 | 1 | [0 ... (m-1)] | Platz-Index der Achse in der Gruppe m: Gruppen-Dimension (PTP: 1;DXD: 3, FIFO: 8 bzw. 16) (ab TC 2.11 Build 1547 ist die FIFO-Dimension von 8 auf 16 erhöht worden)
 |  |  | } |  |  |
0x00000052 | Write | 3D-Gruppe FIFO-Gruppe | { UINT32[m] } | 1 | [0, 1...255] | Achsbelegung der Gruppe: 1. Achs-ID. ..., m.-Achs-ID m: Dimension der 3D-Gruppe (X, Y, Z, Q1, Q2, Q3, Q4, Q5) bzw. FIFO-Gruppe |
0x00000053 | Write | 3D-Gruppe FIFO-Gruppe Kinematik-Gruppe | VOID |  |  | Auflösen der 3D-, FIFO- oder Kinematik-Achsbelegung und Rückführung der Achsen in ihre persönlichen PTP-Gruppen |
0x00000054 | Write | Kinematik-Gruppe | { |  |  | Achsbelegung der Kinematik-Gruppe: |
 |  |  | UINT32[8] | 1 | [0, 1...255] | MCS-Achsen ID's (Machine Coordinate System)
 |  |  | UINT32[8] | 1 | [0, 1...255] | ACS-Achsen ID's (Axis Coordinate System)
 |  |  | UINT32 | 1 | ≥ 0 | Reserviert
 |  |  | UINT32 | 1 | ≥ 0 | Reserviert (NEU)
 |  |  | } |  |  |
0x00000060 | ReadWrite | 3D-Gruppe |  | 1 |  | Internes "Feed Group" Kommando ("Feeder") | Internes Kommando!
0x00000061 | ReadWrite | 3D-Gruppe |  | 1 |  | Internes "Feed Group" Kommando ("Feeder") | Internes Kommando!
0x00000110 | Write | 1D-Gruppe | VOID |  |  | Referenziere 1D-Gruppe ("Eichen") |
0x00000111 | Write | 1D-Gruppe | { |  |  | Neue Endposition 1D-Gruppe |
 |  |  | UINT32 | ENUM | s. Anhang | Endpositionstyp (s.Anhang)
 |  |  | REAL64 | z.B. mm | ±∞ | Neue Endposition (Zielposition)
 |  |  | } |  |  |
0x0000011A | Write | 1D-Gruppe | { |  |  | Setze Istposition 1D-Gruppe | Vorsicht bei Benutzung! Immer an SAF-Port 501!
 |  |  | UINT32 | ENUM | s. Anhang | Istpositionstyp (s.Anhang)
 |  |  | REAL64 | z.B. mm | ±∞ | Istposition für Achse
 |  |  | } |  |  |
0x0000011B | Write | 1D-Gruppe | UINT32 | 1 | 0/1 | Setze Referenzierflag ("Eichflag") | Vorsicht bei Benutzung!
0x00000120 | Write | 1D-Gruppe | { |  |  | Start 1D-Gruppe (Standard Start): |
 |  |  | UINT32 | ENUM | s. Anhang | Starttyp (s.Anhang)
 |  |  | REAL64 | z.B. mm | ±∞ | Endposition (Zielposition)
 |  |  | REAL64 | mm/s | ≥ 0.0 | Geforderte Geschwindigkeit
 |  |  | } |  |  |
0x00000121 | Write | 1D-Gruppe (SERVO) | { |  |  | Start 1D-Gruppe (Erweiteter Start): |
 |  |  | UINT32 | ENUM | s. Anhang | Starttyp (s.Anhang)
 |  |  | REAL64 | z.B.mm | ±∞ | Endposition (Zielposition)
 |  |  | REAL64 | mm/s | ≥0.0 | Geforderte Geschwindigkeit
 |  |  | UINT32 | 1 | 0/1 | Standard Beschleunigung?
 |  |  | REAL64 | mm/s^2 | ≥ 0.0 | Beschleunigung
 |  |  | UINT32 | 1 | 0/1 | Standard Verzögerung?
 |  |  | REAL64 | mm/s^2 | ≥ 0.0 | Verzögerung
 |  |  | UINT32 | 1 | 0/1 | Standard Ruck?
 |  |  | REAL64 | mm/s^3 | ≥ 0.0 | Ruck
 |  |  | } |  |  |
0x00000122 | Write | 1D-Gruppe (MW-SERVO) | { |  |  | Start 1D-Gruppe (Spezieller Start): | Reservierte Startfunktion, kein Standard!
 |  |  | UINT32 | ENUM | s. Anhang | Starttyp (s.Anhang)
 |  |  | REAL64 | z.B. mm | ±∞ | Endposition (Zielposition)
 |  |  | REAL64 | mm/s | ≥0.0 | Geforderte Anfangsgeschwindigkeit
 |  |  | REAL64 | z.B. mm | ±∞ | Position, fuer neues Geschwindigkeitsniveau
 |  |  | REAL64 | mm/s | ≥0.0 | Neues Endgeschwindigkeitsniveau
 |  |  | UINT32 | 1 | 0/1 | Standard Beschleunigung?
 |  |  | REAL64 | mm/s^2 | ≥0.0 | Beschleunigung
 |  |  | UINT32 | 1 | 0/1 | Standard Verzögerung?
 |  |  | REAL64 | mm/s^2 | ≥0.0 | Verzögerung
 |  |  | UINT32 | 1 | 0/1 | Standard Ruck?
 |  |  | REAL64 | mm/s^3 | ≥0.0 | Ruck
 |  |  | } |  |  |
0x00000126 | Write | 1D-Gruppe | { |  |  | Start Drive-Output: |
 |  |  | UINT32 | ENUM | s. Anhang | Ausgabetyp (s.Anhang)
 |  |  | REAL64 | z.B. % | ±∞ | Geforderter Ausgabewert (z.B. %)
 |  |  | } |  |  |
0x00000127 | Write | 1D-Gruppe | VOID |  |  | Stop Drive-Output |
0x00000128 | Write | 1D-Gruppe | { |  |  | Änderung/Wechsel des Drive-Outputs: |
 |  |  | UINT32 | ENUM | s. Anhang | Ausgabetyp (s.Anhang)
 |  |  | REAL64 | z.B. % | ±∞ | Geforderter Ausgabewert (z.B. %)
 |  |  | } |  |  |
0x00000130 | Write | 1D-Gruppe (SERVO) | { |  |  | 1D-Streckenkompensation (SERVO): |
 |  |  | UINT32 | ENUM | s. Anhang | Kompensations-Typ (s.Anhang)
 |  |  | REAL64 | mm/s/s | ≥ 0.0 | Max. Beschleunigungserhöhung
 |  |  | REAL64 | mm/s/s | ≥ 0.0 | Max. Verzögerungserhöhung
 |  |  | REAL64 | mm/s | ≥ 0.0 | Max. Erhöhungsgeschwindigkeit
 |  |  | REAL64 | mm/s | ≥ 0.0 | Grundgeschwindigkeit des Prozesses
 |  |  | REAL64 | z.B. mm | ±∞ | Auszugleichende Wegdifferenz
 |  |  | REAL64 | z.B. mm | ≥ 0.0 | Weglänge für Kompensation
 |  |  | } |  |  |
0x00000131 | Write | 1D-Gruppe SERVO | VOID |  |  | Stop Streckenkompensation (SERVO) |
0x00000140 (0x00n00140) | Write | Master / Slave-Kopplung: 1D-Gruppe (SERVO) | { |  |  | Master/Slave Kopplung (SERVO): | Erweiterung für "Fliegende Säge"! Winkel >0.0 und £ 90.0 Grad (Parallelsäge: 90.0 Grad)
 |  |  | UINT32 | ENUM | s. Anhang | Slavetyp/Kopplungstyp (s.Anhang)
 |  |  | UINT32 | 1 | [1...255] | Achs-ID der Masterachse / Gruppe
 |  |  | UINT32 | 1 | [0...8] | Subindex n der Masterachse (Default: -Wert: 0)
 |  |  | UINT32 | 1 | [0...8] | Subindex n der Slaveachse (Default: -Wert: 0)
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 1: Linear: Getriebefaktor FlySawVelo: Reserve FlySaw: Abs. Synchronposition Master [mm]
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 2: Linear: Reserve FlySawVelo: Reserve FlySawPos: Abs. Synchronposition Slave [mm]
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 3: Linear: Reserve FlySawVelo: Neigungswinkel in [GRAD] FlySawPos: Neigungswinkel in [GRAD]
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 4: Linear: Reserve FlySawVelo: Getriebefaktor FlySawPos: Getriebefaktor
 |  |  | } |  |  |
0x00000141 | Write | Master / Slave-Entkopplung: 1D-Gruppe (SERVO) | VOID |  |  | Master / Slave Entkopplung (SERVO) |
0x00000142 | Write | Master / Slave-Parameter 1D-Gruppe (SERVO) | { |  |  | Änderung der Kopplungsparameter (SERVO): |
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 1: Linear: Getriebefaktor
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 2: Linear: Reserve
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 3: Linear: Reserve
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 4: Linear: Reserve
 |  |  | } |  |  |
0x00000144 | Write | Slave-Stop 1D-Gruppe (SERVO) | VOID |  |  | Stop der "Fliegende Säge" (SERVO) | Nur für "Fliegende Säge"
0x00000149 | Write | Slave-Tabellen 1D-Gruppe (SERVO) | REAL64 | 1 | ±∞ | Setzen der Slave-Tabellenskalierung einer Solo-Tabellenkopplung (SERVO) | Nur für Solo-Tabellenslave
0x00000150 | Write | 1D-Gruppe | VOID |  |  | Deaktiviere komplette 1D-Gruppe/Achse (Disable) |
0x00000151 | Write | 1D-Gruppe | VOID |  |  | Aktiviere komplette 1D-Gruppe / Achse (Enable) |
0x00000160 | Write | 1D-Gruppe | VOID |  |  | Deaktiviere Drive-Output der 1D-Gruppe (Disable) |
0x00000161 | Write | 1D-Gruppe | VOID |  |  | Aktiviere Drive-Output der 1D-Gruppe (Enable) |
0x00000362 | Write | Eil/Schleich-Gruppe | UINT16 | 1 | 0/1 | Feststellbremse lösen ? 0: automatische Ansteuerung (Default) 1: zwingend immer gelöst ! |
0x00000701 | Write | FIFO-Gruppe | VOID |  |  | Start FIFO-Gruppe (FIFO-Tabelle muss zuvor gefüllt worden sein) | (n*m)-FIFO
0x00000710 | Write | FIFO-Gruppe | { REAL64[x*m] } | z.B. mm | ±∞ | Schreiben von x FIFO Einträgen (Zeilen): (x*m)-Werte (eine oder mehrere Zeilen) n: FIFO-Länge (Zeilenanzahl) m: FIFO-Dimension (Spaltenanzahl) Wertebereich x: [1 ... n] | Nur zeilenweise möglich! (ganzzahliges vielfaches)
0x00000711 | Write | FIFO-Gruppe | { REAL64[x*m] } | z.B. mm | ±∞ | Überschreiben der letzten x FIFO Einträge (Zeilen): (x*m)-Werte (eine oder mehrere Zeilen) n: FIFO-Länge (Zeilenanzahl) m: FIFO-Dimension (Spaltenanzahl) Wertebereich x: [1 ... n] | Nur zeilenweise möglich! (ganzzahliges vielfaches)
0x00000801 | Write | Kinematik-Gruppe | VOID |  |  | Start Kinematik-Gruppe | Reservierte Funktion, kein Standard!


Spezifikation Achsen

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Achsen
Spezifikation Achsen
Weiterführende Informationen
•
"Index-Offset" Spezifikation für Achs-Parameter (Index-Group 0x4000 + ID)
•
"Index-Offset" Spezifikation für Achsen-Zustand (Index-Group 0x4100 + ID)
•
"Index-Offset" Spezifikation für Achs-Funktionen (Index-Group 0x4200 + ID)
•
"Index-Offset" Spezifikation für zyklische Achs-Prozessdaten (Index-Group 0x4300 + ID)


"Index-Offset" Spezifikation für Achs-Parameter (Index-Group 0x4000 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Achsen [image] "Index-Offset" Spezifikation für Achs-Parameter (Index-Group 0x4000 + ID)
"Index-Offset" Spezifikation für Achs-Parameter (Index-Group 0x4000 + ID)
Index-Offset
(Hex)
Zugriff
Achs-
typ
Daten-
typ
Phys.
Einheit
Definitions-
bereich
Beschreibung
Anmerkung
0x00n00000
Read
every
(Struktur für alle Achsparameter)
{
Allgemeine ACHS-PARAMETER-STRUKTUR (NC/CNC),
beinhaltet auch die Unterelemente wie Encoder, Regler und Drive
(s. MC_ReadParameterSet in TcMc.lib)
UINT32
1
Achs-ID
UINT8[30+1+1]
z.B. mm
Achs-Name
UINT32
1
Achs-Typ
. . .
. . .
. . .
. . .
}
512 Byte
0x00000001
Read
every
UINT32
1
Achs-ID
0x00000002
Read
every
UINT8[30+1]
1
Achs-Name
0x00000003
Read
every
UINT32
ENUM
Achs-Typ
0x00000004
Read
every
UINT32
µs
Zykluszeit Achse (SAF)
0x00000005
Read
every
UINT8[10+1]
1
Physikalische Einheit
0x00000006
Read / Write
every
REAL64
z.B. mm/s
Ref. Geschw. in Nockenrichtung
0x00000007
Read / Write
every
REAL64
z.B. mm/s
Ref. Geschw. in Syncrichtung
0x00000008
Read / Write
every
REAL64
z.B. mm/s
Geschwindigkeit Hand Slow
0x00000009
Read / Write
every
REAL64
z.B. mm/s
Geschwindigkeit Hand Fast
0x0000000A
Read / Write
every
REAL64
z.B. mm/s
Geschwindigkeit Eilgang
0x0000000F
Read / Write
every
UINT16
1
0/1
Positionsbereichsüberwachung?
0x00000010
Read / Write
every
REAL64
z.B. mm
Positionsbereichsfenster
0x00000011
Read / Write
every
UINT16
1
0/1
Bewegungsüberwachung?
0x00000012
Read / Write
every
REAL64
s
Bewegungsüberwachungszeit
0x00000013
Read / Write
every
UINT16
1
0/1
Schleife?
0x00000014
Read / Write
every
REAL64
z.B. mm
Schleifenweg (±)
0x00000015
Read / Write
every
UINT16
1
0/1
Zielpositionsüberwachung?
0x00000016
Read / Write
every
REAL64
z.B. mm
Zielpostionsfenster
0x00000017
Read / Write
every
REAL64
s
Zielpositionsüberwachungszeit
0x00000018
Read / Write
every
REAL64
z.B. mm
Pulsweg in pos. Richtung
0x00000019
Read / Write
every
REAL64
z.B. mm
Pulsweg in neg. Richtung
0x0000001A
Read / Write
every
UINT32
ENUM (≥0)
Fehlersignalisierung/Fehlerreaktion:
0: sofort (Default)
1: verzögert
(z.B. für Master/Slave-Kopplung)
ab TC 2.11
0x0000001B
Read / Write
every
REAL64
s
[0...1000]
Fehlerverzögerungszeit
(wenn verzögerte Fehlerreaktion angewählt ist)
ab TC 2.11
0x0000001C
Read / Write
every
UINT16
1
0/1
Slaves über Ist-Werte koppeln wenn nicht betriebsbereit?
ab TC 2.11
0x0000001D
Read / Write
every
REAL64
z.B. mm/s^2
[0, 0.01...1.0E10]
Beschleunigung für Übergangsprofil für die Umschaltung von SOLL- auf IST-Werte (Fading der Position):
Default: 0 (hier wird das Minimum der Achsbeschleunigungen verwendet, also MIN(Acc, Dec) )
ab TC 2.11 R2
0x0000001E
Read / Write
every
UINT32
ENUM (≥0)
Fast Axis Stop Signal Type:
Auswahl des Signaltypes durch den ein Fast Axis Stop ausgelöst wird (s. Bit 7 im Drive->nStatus4)"0 (SignalType_OFF)","1 (SignalType_RisingEdge)","2 (SignalType_FallingEdge)","3 (SignalType_BothEdges)","4 (SignalType_HighActive)","5 (SignalType_LowActive)"
ab TC 2.11 R3
0x00000020
Read / Write
every
UINT16
1
0/1
Bewegungskommandos für Slaveachse erlauben?
Default: FALSE
ab TC 2.11
0x00000021
Read / Write
every
UINT16
1
0/1
Bewegungskommandos für Achsen mit aktiver externer Sollwertgenerierung erlauben?
Default: FALSE
ab TC 2.11 R2
0x00000026
Read / Write
every
UINT32
1
Interpretation der Einheiten (Position, Geschwindigkeit, Zeit)
Bit 0: Geschwindigkeit in x/min statt x/s
Bit 1: Position in tausendstel der Basiseinheit
Bit 2: Modulopositionsanzeige
siehe Encoder!
Bitarray
0x00000027
Read / Write
every
REAL64
z.B. mm/s
Maximal erlaubte Fahrgeschwindigkeit
0x00000028
Read / Write
every
REAL64
z.B. mm
Bewegungsüberwachungsfenster
0x00000029
Read / Write
every
UINT16
1
0/1
PEH-Zeitüberwachung ?
Posi. Ende und Genauhalt
0x0000002A
Read / Write
every
REAL64
s
PEH Überwachungszeit
0x0000002B
Read / Write
every
UINT16
1
0/1
Losekompensation?
0x0000002C
Read / Write
every
REAL64
z.B. mm
Lose
0x00000030
Read
every
UINT16
1
[0,1]
Persistente (dauernd anhaltende) Daten für z.B. Istposition und Referenzierstatus des Encoders?
Boot-Parameter
0x00000031
Read
every
{
UINT8[6]
UINT16
}
AmsAddr
1
Lesen der Hardware AMS-Adresse (AMS Net ID und Geräte Port)
ALT !
0x00000031
Read
every
{
UINT8[6]
UINT16
UINT16
}

AmsAddr

ChannelNo
1
Lesen der Hardware AMS-Adresse (AMS Net ID und Geräte Port) und der Kanalnummer (0=Channel A, 1= Channel B)
0x00000033
Read
every
{
UINT16 ApplRequestBit
UINT16 ApplRequestType
UINT32 ApplCmdNo
UINT32 ApplCmdVersion
. . .
} 1024 Byte

1
1
1
1

0/1
≥0
>0
≥0
Allgemeine APPLICATION REQUEST-STRUKTUR (NC/NCI),
z.B. für ApplicationHoming-Request
(s. MC_ReadApplicationRequest in TcMc2.lib)
ab TC 2.11 R2
0x00000051
Read
Kanal: every
UINT32
Kanal-ID
0x00000052
Read
Kanal: every
UINT8[30+1]
Kanal-Name
0x00000053
Read
Kanal: every
UINT32
Kanal-Typ
0x00000054
Read
Gruppe: every
UINT32
Gruppen-ID
0x00000055
Read
Gruppe: every
UINT8[30+1]
Gruppen-Name
0x00000056
Read
Gruppe: every
UINT32
Gruppen-Typ
0x00000057
Read
every
UINT32
Anzahl der Encoder
0x00000058
Read
every
UINT32
Anzahl der Regler
0x00000059
Read
every
UINT32
Anzahl der Drives
0x0000005A
Read
every
{
Lesen der sämtlicher Unterelemente einer Achse:
UINT32[ 9 ]
1
[0, 1...255]
Encoder ID's der Achse
UINT32[ 9 ]
1
[0, 1...255]
Regler ID's der Achse
UINT32[ 9 ]
1
[0, 1...255]
Drive ID's der Achse
} 108 bytes
0x00000101
Read / Write
Servo
REAL64
z.B. mm/s^2
Beschleunigung
0x00000102
Read / Write
Servo
REAL64
z.B. mm/s^2
Verzögerung
0x00000103
Read / Write
Servo
REAL64
z.B. mm/s^3
Ruck
0x00000104
Read / Write
Servo
REAL64
s
[0.0 ... 1.0]
Verzögerungszeit zwischen Geschwindigkeits- und Positionswerten des Sollwertgenerators in Sekunden
Defaultwert: 0.0 s
0x00000105
Read / Write
Servo
UINT32
ENUM
Override Typ für Geschwindigkeit:
1: Bezogen auf interne reduzierte Geschwindigkeit (ohne Iteration)
2: Bezogen auf originale externe Startgeschwindigkeit (ohne Iteration)
3: Bezogen auf interne reduzierte Geschwindigkeit (Optimierung mittels Iteration)
4: Bezogen auf originale externe Startgeschwindigkeit (Optimierung mittels Iteration)
Defaultwert: Typ 1
0x00000106
Read / Write
Servo
REAL64
1
[0.0 ... 1.0E6]
Maximal erlaubter Geschwindig- keitssprung für Dynamikreduktion
D V = Faktor * min(A+, A-) * DT
Defaultwert: 0.0
0x00000107
Read / Write
Servo
UINT16
1
[0,1]
Aktiviert Beschleunigungs- und Ruckbegrenzung für die Hilfsachse (Q1 bis Q5)
Defaultwert: 1
0x00000108
Read / Write
Servo
REAL64
z.B. mm
[0.0..1000.0]
Größe des Toleranzballs für die Hilfsachsen
ab TC V2.9 B932
0x00000109
Read / Write
Servo
REAL64
z.B. mm
[0.0..10000.0]
maximal erlaubte Positionsabweichung bei verkleinertem Toleranzball
Nur für Hilfsachsen
ab TC V2.9 B1013
0x0000010A
Read / Write
Servo
REAL64
z.B. mm/s^2
[0.01 ... 1.0E20]
Fast Axis Stop: Beschleunigung
(s.a. Fast Axis Stop Signal Type)
ab TC 2.11 R3
0x0000010B
Read / Write
Servo
REAL64
z.B. mm/s^2
[0.01 ... 1.0E20]
Fast Axis Stop: Verzögerung
(s.a. Fast Axis Stop Signal Type)
ab TC 2.11 R3
0x0000010C
Read / Write
Servo
REAL64
z.B. mm/s^3
[0.1 ... 1.0E30]
Fast Axis Stop: Ruck
(s.a. Fast Axis Stop Signal Type)
ab TC 2.11 R3
0x00000201
Read / Write
Schrittmotor
UINT32
ENUM
Betriebsmodus Schrittmotor
0x00000202
Read / Write
Schrittmotor
REAL64
z.B. mm/STEP
[1.0E-6 ... 1000.0]
Wegskalierung eines Motorschrittes
0x00000203
Read / Write
Schrittmotor
REAL64
z.B. mm/s
[0.0 ... 1000.0]
Mindestgeschwindigkeit für Geschwindigkeitsprofil
0x00000204
Read / Write
Schrittmotor
UINT32
1
[0 ... 100]
Anzahl der Schritte pro Frequenz-/Geschwindigkeitsstufe
0x00000205
Read / Write
Schrittmotor
UINT32
1
Motormaske als Syncimpuls
Nicht implementiert !
0x00000301
Read / Write
Eil/Schleich
REAL64
z.B. mm
[0.0 ... 100000.0]
Schleichweg in pos.Richtung
0x00000302
Read / Write
Eil/Schleich
REAL64
z.B. mm
[0.0 ... 100000.0]
Schleichweg in neg. Richtung
0x00000303
Read / Write
Eil/Schleich
REAL64
z.B. mm
[0.0 ... 100000.0]
Bremsweg in pos. Richtung
0x00000304
Read / Write
Eil/Schleich
REAL64
z.B. mm
[0.0 ... 100000.0]
Bremsweg in neg. Richtung
0x00000305
Read / Write
Eil/Schleich
REAL64
s
[0.0 ... 60.0]
Bremsverzög. in pos. Richtung
0x00000306
Read / Write
Eil/Schleich
REAL64
s
[0.0 ... 60.0]
Bremsverzög. in neg. Richtung
0x00000307
Read / Write
Eil/Schleich
REAL64
s
[0.0 ... 60.0]
Umschaltzeit Eil auf Schleich
0x00000308
Read / Write
Eil/Schleich
REAL64
z.B. mm
[0.0 ... 100000.0]
Schleichweg Stop
0x00000309
Read / Write
Eil/Schleich
REAL64
s
[0.0 ... 60.0]
Verzögerungszeit um Bremse zu lösen
0x0000030A
Read / Write
Eil/Schleich
REAL64
s
[0.0 ... 60.0]
Pulszeit in pos. Richtung
0x0000030B
Read / Write
Eil/Schleich
REAL64
s
[0.0 ... 60.0]
Pulszeit in neg. Richtung
ENCODER:
0x00n10001
Read
Encoder: every
UINT32
1
[1 ... 255]
Encoder-ID
n = 0: Standardencoder der Achse
n > 0: n-ter Encoder der Achse (optional)
0x00n10002
Read
Encoder: every
UINT8[30+1]
1
30 Zeichen
Encoder-Name
0x00n10003
Read
Encoder: every
UINT32
1
s. ENUM (>0)
Encoder-Typ
0x00n10004
Read / Write
Encoder: every
UINT32
1
Byteoffset
Input-Adress-Offset (IO-Input-Image)
Änderung der IO-Adresse
0x00n10005
Read / Write
Encoder: every
UINT32
1
Byteoffset
Output-Adresse-Offset (IO-Output-Image)
Änderung der IO-Adresse
0x00n10006
Read / Write
Encoder: every
REAL64
z.B. mm/INC
[1.0E-12 ... 1.0E+30]
Resultierender Skalierungsfaktor (Zähler / Nenner)

Anm.: ab TC 3.0 besteht der Skalierungsfaktor aus zwei Komponenten, Zähler und Nenner (Default: 1.0).
0x00n10007
Read / Write
Encoder: every
REAL64
z.B. mm
[±1.0E+9]
Positionsoffset
0x00n10008
Read / Write
Encoder: every
UINT16
1
[0,1]
Geberzählrichtung
0x00n10009
Read / Write
Encoder: every
REAL64
z.B. mm
[0.001 ... 1.0E+9]
Modulo-Faktor
0x00n1000A
Read / Write
Encoder: every
UINT32
1
s. ENUM (>0)
Encoder-Modus
0x00n1000B
Read / Write
Encoder: every
UINT16
1
0/1
Softend-Min-Überwachung ?
0x00n1000C
Read / Write
Encoder: every
UINT16
1
0/1
Softend-Max-Überwachung ?
0x00n1000D
Read / Write
Encoder: every
REAL64
mm
Softendlage Min
0x00n1000E
Read / Write
Encoder: every
REAL64
mm
Softendlage Max
0x00n1000F
Read / Write
Encoder: every
UINT32
1
s. ENUM (≥0)
Encoder Auswerterichtung (Freigabe log. Zählrichtung)
s. Anhang
0x00n10010
Read / Write
Encoder: every
REAL64
s
[0.0...60.0]
Filterzeit für Positionsistwert in Sekunden(P-T1)
0x00n10011
Read / Write
Encoder: every
REAL64
s
[0.0...60.0]
Filterzeit für Geschwindigkeitsistwert in Sekunden (P-T1)
0x00n10012
Read / Write
Encoder: every
REAL64
s
[0.0...60.0]
Filterzeit frr Beschleunigungsistwert in Sekunden (P-T1)
0x00n10013
Read / Write
Encoder: every
UINT8[10+1]
1
Physikalische Einheit
Nicht implementiert!
0x00n10014
Read / Write
Encoder: every
UINT32
1
Interpretation der Einheiten (Position, Geschwindigkeit, Zeit)
Bit 0: Geschwindigkeit in x/min statt x/s
Bit 1: Position in tausendstel der Basiseinheit
Nicht implementiert!
Bitarray
0x00n10015
Read
Encoder: every
UINT32
INC
[0x0...
0xFFFFFFFF]
Geber-Maske (Maximalwert des Geber-Istwertes in Inkrementen)

Anm.: Ab TwinCAT 2.11 R2 darf die Geber-Maske ein beliebiger Zahlenwert sein (z.B. 3600000) und muss nicht mehr wie bisher einer durchgehende Folge von binären Einsen entsprechen (2n-1).
ReadOnly-Parameter

s.a. Param. "Geber-Sub-Maske"
0x00n10016
Read / Write
Encoder: every
UINT16
1
0/1
Istpositionskorrektur (Meßsystemfehlerkorrektur)?
0x00n10017
Read / Write
Encoder: every
REAL64
s
[0.0...60.0]
Filterzeit für Istpositionskorrektur in Sekunden (P-T1)
0x00n10019
Read / Write
Encoder: every
UINT32
1
s. ENUM (≥0)
Encoder Bezugsmaßsystem
s. Anhang
0x00n1001A
Read / Write
Encoder: every
UINT32
1
s. ENUM (≥0)
EncoderPositionsinitialisierung
Nicht implementiert !
0x00n1001B
Read / Write
Encoder: every
REAL64
z.B. mm
[≥0, Modulo-Faktor/2]
Toleranzfenster für Modulo-Start
0x00n1001C
Read
Encoder: every
UINT32
1
s. ENUM (≥0)
Encoder Vorzeichen-Interpretation (Datentyp)
0x00n1001D
Read
Encoder: every
UINT16
1
0/1
Inkremental- oder Absolut-Encoder ?
0: Inkrementaler Encoder-Typ
1: Absoluter Encoder-Typ
0x00n10023
Read / Write
Encoder: every
REAL64
z.B. mm/INC
[1.0E-12 ... 1.0E+30]
Komponente des Skalierungsfaktors: Zähler
(=> Skalierungsfaktor Zähler / Skalierungsfaktor Nenner)
ab TC 3.0
0x00n10024
Read / Write
Encoder: every
REAL64
1
[1.0E-12 ... 1.0E+30]
Komponente des Skalierungsfaktors: Nenner
(=> Skalierungsfaktor Zähler / Skalierungsfaktor Nenner)
Default: 1.0
ab TC 3.0
0x00n10025
Read / Write
Encoder: every
{
REAL64
REAL64
}

z.B. mm/INC
1

[1.0E-12 ... 1.0E+30]
[1.0E-12 ... 1.0E+30]

Komponente des Skalierungsfaktors: Zähler
Komponente des Skalierungsfaktors: Nenner
(=> Skalierungsfaktor Zähler / Skalierungsfaktor Nenner)
ab TC 3.0
0x00n10030
Read / Write
Encoder: every
UINT32
1
Internes Encoder Control DWORD zur Festlegung der Betriebsarten und Eigenschaften
ab 211R3 B2227
0x00n10101
Read / Write
E: INC
UINT16
1
[0,1]
Suchrichtung für Ref.nocken invers?
0x00n10102
Read / Write
E: INC
UINT16
1
[0,1]
Suchrichtung für Syncimpuls invers?
0x00n10103
Read / Write
E: INC
REAL64
z.B. mm
[±1000000.0]
Referenzposition
0x00n10104
Read / Write
E: INC
UINT16
1
[0,1]
Abstandsüberwachung zwischen Ref.nocken und Syncimpuls aktiv?
Nicht implementiert !
0x00n10105
Read / Write
E: INC
UINT32
INC
[0 ... 65536]
Mindestabstand Ref.nocken zum Syncimpuls in Inkrementen
Nicht implementiert !
0x00n10106
Read / Write
E: INC
UINT16
1
[0,1]
Externer Syncimpuls?
0x00n10107
Read / Write
E: INC
UINT32
1
s. ENUM (>0)
Referenzier Modus
s. Anhang
0x00n10108
Read / Write
E: INC
UINT32
1
[0x0000000F...
0xFFFFFFFF]
Binärmaske: (2n - 1)
Geber-Sub-Maske (Maximalwert des Absolutbereichs des Geber-Istwertes in Inkrementen)
Wird z.B. verwendet als Referenzmarke für den Referenzier Mode "Software Sync" und für die NC Retain Daten("ABSOLUTE (MODULO)", "INCREMENTAL (SINGLETURN ABSOLUTE)" ).

Anm.1: Die Geber-Sub-Maske muss kleiner gleich der Geber-Maske sein.
Anm.2: Die Geber-Maske muss ein ganzzahliges Vielfaches der Geber-Sub-Maske sein.
Anm.3: Die Geber-Sub-Maske muss einer durchgehenden Folge von binären Einsen entsprechen (2n-1), z.B. 0x000FFFFF.
NEU

s.a. Param. "Geber-Maske"
0x00n10110
Read / Write
E: INC (Encoder-Simulation)
REAL64
1
[0.0 ... 1000000.0]
Skalierung/Gewichtung des Rauschanteils fuer Simulationsencoder
CONTROLLER:
0x00n20001
Read
Regler: every
UINT32
1
[1 ... 255]
Regler ID
n = 0: Standardregler der Achse
n > 0: n-ter Regler der Achse (optional)
0x00n20002
Read
Regler: every
UINT8[30+1]
1
30 Zeichen
Regler-Name
0x00n20003
Read
Regler: every
UINT32
1
s. ENUM (>0)
Regler-Typ
0x00n2000A
Read / Write
Regler: every
1
s. ENUM (>0)
Regler-Modus
0x00n2000B
Read / Write
Regler: every
REAL64
%
[0.0 ... 1.0]
Gewichtung der Geschwindigkeitsvorsteuerung (Standardwert: 1.0 = 100 %)
0x00n20010
Read / Write
Regler: every
UINT16
1
0/1
Schleppabstandüberw. Pos.?
0x00n20011
Read / Write
Regler: every
UINT16
1
0/1
Schleppabstandüberw. Geschw.?
0x00n20012
Read / Write
Regler: every
REAL64
z.B. mm
Max. Schleppabstand Position
0x00n20013
Read / Write
Regler: every
REAL64
s
Max. Schleppfilterzeit Position
0x00n20014
Read / Write
Regler: every
REAL64
z.B. mm/s
Max. Schleppabstand Geschw.
0x00n20015
Read / Write
Regler: every
REAL64
s
Max. Schleppfilterzeit Geschw.
0x00n20100
Read / Write
P/PID (Pos.,
(Geschw.)
REAL64
1
[0.0...1.0]
Maximale Ausgabebegrenzung (±) für Regler-Gesamtausgabe
(Standardwert:
0.5 == 50%)
0x00n20102
Read / Write
P/PID (Pos.)
REAL64
z.B. mm/s/ mm
[0.0...1000.0]
Proportionalverstärkung kp bzw. kv
Einheit: Base Unit / s / Base Unit
Positionsregelung
0x00n20103
Read / Write
PID (Pos.)
REAL64
s
[0.0 ... 60.0]
Nachstellzeit Tn
Positionsregelung
0x00n20104
Read / Write
PID (Pos.)
REAL64
s
[0.0 ... 60.0]
Vorhaltzeit Tv
Positionsregelung
0x00n20105
Read / Write
PID (Pos.)
REAL64
s
[0.0 ... 60.0]
Verzögerungszeit Td
Positionsregelung
0x00n20106
Read / Write
PP (Pos.)
REAL64
z.B. mm/s/ mm
[0.0...1000.0]
Zusätzliche Proportionalverstärkung kp bzw. kv, die oberhalb einer Genzgeschwindigkeit in Prozent gilt.
Einheit: Base Unit / s / Base Unit
Positionsregelung
0x00n20107
Read / Write
PP (Pos.)
REAL64
%
[0.0...1.0]
Schwellgeschwindigkeit in Prozent, oberhalb derer die zusätzliche Proportionalverstärkung kp bzw. kv gilt
0x00n20108
Read / Write
P/PID (Acc.)
REAL64
s
[0.0 ... 100.0]
Proportionalverstärkung ka
Beschleunigungs- vorsteuerung
0x00n2010D
Read / Write
P/PID
REAL64
mm
[0.0 ... 10000.0]
Totzone ("dead band") für Positionsfehler (Regelabweichung)
(für P/PID-Regler mit Geschwindigkeits- oder Momenteninterface)
Reservierte Funktion
0x00n2010F
Read / Write
P/PP/PID (Pos.)
Slave-Regelung
REAL64
(mm/s) / mm
[0.0...1000.0]
Slave-Koppeldifferenzregelung:
Proportionalverstärkung kcp
Slave-Koppeldifferenzregelung
0x00n20110
Read / Write
P (Pos.)
UINT16
1
0/1
Automatischer Offsetabgleich: aktiv/passiv
0x00n20111
Read / Write
P (Pos.)
UINT16
1
0/1
Automatischer Offsetabgleich: Halte-Modus
0x00n20112
Read / Write
P (Pos.)
UINT16
1
0/1
Automatischer Offsetabgleich: Fading-Modus
0x00n20114
Read / Write
P (Pos.)
REAL64
%
[0.0 ... 1.0]
Automatischer Offsetabgleich: Vorsteuer-Grenze
0x00n20115
Read / Write
P (Pos.)
REAL64
s
[0.1 ... 60.0]
Automatischer Offsetabgleich: Zeitkonstante
0x00n20116
Read / Write
PID (Pos.)
REAL64
%
[0.0...1.0]
Maximale Ausgabebeschränkung (±) für I-Anteil in Prozent (Defaulteinstellung: 0.1 = 10 %)
0x00n20117
Read / Write
PID (Pos.)
REAL64
%
[0.0...1.0]
Maximale Ausgabebeschränkung (±) für D-Anteil in Prozent (Defaulteinstellung: 0.1 = 10 %)
0x00n20118
Read / Write
PID (Pos.)
UINT16
1
0/1
Abschalten des I-Anteils während eines aktiven Positioniervorganges (sofern I-Anteil aktiv)?
(Defaulteinstellung: 0 = FALSE)
0x00n20120
Read / Write
P/PID (Pos.)
REAL64
s
≥0
PT-1 Filterwert für Positionsfehler (Pos.-Regeldifferenz)
Reservierte Funktion,
kein Standard!
0x00n20202
Read / Write
P/PID (Geschw.)
REAL64
1
[0.0...1000.0]
Proportionalverstärkung kp bzw. kv
Geschwindigkeits-
regelung
0x00n20203
Read / Write
PID (Geschw.)
REAL64
s
[0.0 ... 60.0]
Nachstellzeit Tn
Geschwindigkeits-
regelung
0x00n20204
Read / Write
PID (Geschw.)
REAL64
s
[0.0 ... 60.0]
Vorhaltzeit Tv
Geschwindigkeits-
regelung
0x00n20205
Read / Write
PID (Geschw.)
REAL64
s
[0.0 ... 60.0]
Verzögerungszeit Td
Geschwindigkeits-
regelung
0x00n20206
Read / Write
PID (Geschw.)
REAL64
%
[0.0...1.0]
Maximale Ausgabebeschränkung (±) fuer I-Anteil in Prozent (Defaulteinstellung: 0.1 = 10 %)
Geschwindigkeits-
regelung
0x00n20207
Read / Write
PID (Geschw.)
REAL64
%
[0.0...1.0]
Maximale Ausgabebeschränkung (±) fuer D-Anteil in Prozent (Defaulteinstellung: 0.1 = 10 %)
Geschwindigkeits-
regelung
0x00n2020D
Read / Write
P/PID (Geschw.)
REAL64
mm/s
[0.0 ... 10000.0]
Totzone ("dead band") für Geschwindigkeitsfehler (Regelabweichung)
(für P/PID-Regler mit Geschwindigkeits- oder Momenteninterface)
Reservierte Funktion
0x00n20220
Read / Write
P/PID (Geschw.)
REAL64
s
≥0
PT-2 Filterwert für Geschwindigkeitsfehler (Geschw.-Regeldifferenz)
Geschwindigkeits-
regelung, kein Standard!
0x00n20221
Read / Write
P/PID (Geschw.)
REAL64
s
≥0
PT-1 Filterwert für Geschwindigkeitsfehler (Geschw.-Regeldifferenz)
Reservierte Funktion,
kein Standard!
0x00n20250
Read / Write
P/PI (Beobachter)
UINT32
1
s. ENUM (≥0)
Beobachter-Modus für Regelung im Momenten-Interface
0: OFF (default)
1: LUENBERGER
ab TC 2.10 Build 1320
0x00n20251
Read / Write
P/PI (Beobachter)
REAL64
Nm / A
>0.0
Motor:
Drehmomentkonstante KT
0x00n20252
Read / Write
P/PI (Beobachter)
REAL64
kg m2
>0.0
Motor:
Trägheitsmoment JM
0x00n20253
Read / Write
P/PI (Beobachter)
REAL64
Hz
[100.0 ... 2000.0]
Default: 500
Bandbreite f0
0x00n20254
Read / Write
P/PI (Beobachter)
REAL64
1
[0.0 ... 2.0]
Default: 1.0
Korrekturfaktor kc
0x00n20255
Read / Write
P/PI (Beobachter)
REAL64
s
[0.0 ... 0.01]
Default: 0.001
Geschwindkeits-Filter (1. Ordnung):
Zeitkonstante T
0x00n20A03
Read / Write
P/PID (MW)
REAL64
cm^2
[0.0 ... 1000000]
Zylinderfläche AAder A-Seite in cm^2
Reservierte Parameter !
0x00n20A04
Read / Write
P/PID (MW)
REAL64
cm^2
[0.0 ... 1000000]
Zylinderfläche AB der B-Seite in cm^2
Reservierte Parameter !
0x00n20A05
Read / Write
P/PID (MW)
REAL64
cm^3/s
[0.0 ... 1000000]
Nennvolumenstrom Qnennin cm^3/s
Reservierte Parameter !
0x00n20A06
Read / Write
P/PID (MW)
REAL64
bar
[0.0 ... 1000000]
Nenndruck bzw. Ventildruckabfall Pnennin bar
Reservierte Parameter !
0x00n20A07
Read / Write
P/PID (MW)
UINT32
1
[1 ... 255]
Achs-ID für den Systemdruck Po
Reservierte Parameter !
DRIVE:
0x00n30001
Read
Drive: every
UINT32
1
[1 ... 255]
Drive ID
0x00n30002
Read
Drive: every
UINT8[30+1]
1
30 Zeichen
Drive-Name
0x00n30003
Read
Drive: every
UINT32
1
s. ENUM (>0)
Drive-Typ
0x00n30004
Read / Write
Drive: every
UINT32
1
Byteoffset
Input-Adress-Offset (IO-Input-Image)
Änderung der IO-Adresse
0x00n30005
Read / Write
Drive: every
UINT32
1
Byteoffset
Output-Adresse-Offset (IO-Output-Image)
Änderung der IO-Adresse
0x00n30006
Read / Write
Drive: every
UINT16
1
[0,1]
Motorpolarität
0x00n3000A
Read / Write
Drive: every
UINT32
1
s. ENUM (>0)
Drive-Modus
0x00n3000B
Read / Write
Drive: every
REAL64
%
[-1.0 ... 1.0]
Minimale Ausgabeschranke (Ausgabelimitierung)
(Defaulteinstellung: -1.0 = -100%)
0x00n3000C
Read / Write
Drive: every
REAL64
%
[-1.0 ... 1.0]
Maximale Ausgabeschranke (Ausgabelimitierung) (Defaulteinstellung: 1.0 = 100%)
0x00n3000D
Read
Drive: every
UINT32
INC
Maximale Anzahl von Ausgabeinkrementen (Ausgabemaske)
0x00n30010
Read / Write
Drive: every
UINT32
1
Internes Drive Control DWord zur Festlegung der Antriebs-Betriebsarten
Reserviert !
0x00n30011
Read / Write
every
UINT32
1
≥ 5
Interner Drive Reset Zähler
(Zeit in NC-Zyklen für Enable und Reset)
Reserviert !
0x00n30101
Read / Write
D: Servo
REAL64
z.B. mm/s
>0.0
Bezugsgeschwindigkeit bei Bezugs- bzw. Referenzoutput (Geschwindigkeitsvorsteuerung)
0x00n30102
Read / Write
D: Servo
REAL64
%
[0.0 ... 5.0]
Bezugs- bzw. Referenzoutput in Prozent
(Defaulteinstellung: 1.0 = 100%)
0x00n30103
Read
D: Servo
REAL64
z.B. mm/s
>0.0
Resultierende Geschwindigkeit bei 100% Output
0x00n30104
Read / Write
D: Servo
REAL64
z.B. mm/s
±∞
Geschwindigkeitsoffset (DAC-Offset) für Driftabgleich (Offsetabgleich) der Achse
0x00n30105
Read / Write
D: Servo (Sercos, Profi Drive, AX200x, CANopen)
REAL64
1
[0.0 ... 100000000.0]
Geschwindigkeitsskalierung (Skalierungsfaktor um auf Wichtung im Antrieb zu reagieren)
Für Sercos, Profi Drive, AX200x, CANopen
0x00n30106
Read / Write
D: Profi Drive DSC
UINT32
0.001 * 1/s
≥ 0
Profibus/Profi Drive DSC: Lageregelverstärung Kpc
Nur für Profi Drive DSC
0x00n30107
Read / Write
D: Profi Drive DSC
REAL64
1
≥ 0.0
Profibus/Profi Drive DSC: Skalierung für Berechnung von 'XERR' (Default: 1.0)
Nur für Profi Drive DSC
0x00n30109
Read / Write
D: Servo (Sercos, CANopen)
REAL64
1
[0.0 ... 100000000.0]
Positionsskalierung (Skalierungsfaktor um auf Wichtung im Antrieb zu reagieren)
Für Sercos, CANopen
0x00n3010A
Read / Write
D: Servo (Sercos, Profi Drive, AX200x, CANopen)
REAL64
1
[0.0 ... 100000000.0]
Beschleunigungsskalierung (Skalierungsfaktor um auf Wichtung im Antrieb zu reagieren)
Für Sercos, Profi Drive, AX200x, CANopen
0x00n30120
Read / Write
D: Servo/
Hydraulik/
UINT32
1
≥ 0
Tabellen-ID
(0: keine Tabelle)
Nur für KL4xxx, M2400, Universal
0x00n30121
Read / Write
D: Servo/
Hydraulik
UINT32
1
≥ 0
Interpolation-Type
0: Linear
2: Spline
Nur für KL4xxx, M2400, Universal
0x00n30122
Read / Write
Servo/
Hydraulik
REAL64
%
[-1.0 ... 1.0]
Ausgabeoffset in Prozent
Anmerkung:
Wirkt nach der Kennlinienauswertung !
Nur für KL4xxx, M2400, Universal
0x00n30151
Read / Write
D: Servo / Nichtlinear
REAL64
1
[0.0 ... 100.0]
Quadrantenausgleichsfaktor
(Verhältnis zwischen I und III Quadr.)
0x00n30152
Read / Write
D: Servo / Nichtlinear
REAL64
1
[0.01 ... 1.0]
Geschwindigkeits-Stützstelle in Prozent (1.0 = 100 %)
0x00n30153
Read / Write
D: Servo / Nichtlinear
REAL64
1
[0.01 ... 1.0]
Ausgabe-Stützstelle in Prozent (1.0 = 100 %)
0x00030301
Read / Write
D: Schrittmotor
UINT8
1
Bit-Maske: Zyklus 1
0x00030302
Read / Write
D: Schrittmotor
UINT8
1
Bit-Maske: Zyklus 2
0x00030303
Read / Write
D: Schrittmotor
UINT8
1
Bit-Maske: Zyklus 3
0x00030304
Read / Write
D: Schrittmotor
UINT8
1
Bit-Maske: Zyklus 4
0x00030305
Read / Write
D: Schrittmotor
UINT8
1
Bit-Maske: Zyklus 5
0x00030306
Read / Write
D: Schrittmotor
UINT8
1
Bit-Maske: Zyklus 6
0x00030307
Read / Write
D: Schrittmotor
UINT8
1
Bit-Maske: Zyklus 7
0x00030308
Read / Write
D: Schrittmotor
UINT8
1
Bit-Maske: Zyklus 8
0x00030310
Read / Write
D: Schrittmotor
UINT8
1
Bit-Maske: Haltestrom


"Index-Offset" Spezifikation für Achsen-Zustand (Index-Group 0x4100 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Achsen [image] "Index-Offset" Spezifikation für Achsen-Zustand (Index-Group 0x4100 + ID)
"Index-Offset" Spezifikation für Achsen-Zustand (Index-Group 0x4100 + ID)
Index-Offset (Hex) | Zugriff | Achsen- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00n00000 | Read | every (Online Struktur für Achsdaten) | { |  |  | ACHS-ONLINE-STRUKTUR (NC/CNC) | Nicht oszilloskopierbar! (NCAXISSTATE_ ONLINESTRUCT)
 |  |  | INT32 | 1 |  | Fehlerstatus
 |  |  | REAL64 | z.B. mm |  | Istposition
 |  |  | REAL64 | z.B. Grad |  | Modulo-Istposition
 |  |  | REAL64 | z.B. mm |  | Sollposition
 |  |  | REAL64 | z.B. Grad |  | Modulo-Sollposition
 |  |  | REAL64 | z.B. mm/s |  | Optional: Istgeschwindigkeit
 |  |  | REAL64 | z.B. mm/s |  | Sollgeschwindigkeit
 |  |  | UINT32 | % | 0...1000000 | Geschwindigkeitsoverride (1000000 == 100%)
 |  |  | REAL64 | z.B. mm |  | Schleppabstand Position
 |  |  | REAL64 | z.B. mm |  | PeakHold-Wert für max. neg. Schleppabst. (Pos.)
 |  |  | REAL64 | z.B. mm |  | PeakHold-Wert für max. pos. Schleppabst. (Pos.)
 |  |  | REAL64 | % |  | Reglerausgabe in Prozent
 |  |  | REAL64 | % |  | Gesamtausgabe in Prozent
 |  |  | UINT32 | 1 | ≥ 0 | Achs-Status-DWord
 |  |  | UINT32 | 1 | ≥ 0 | Achs-Control-DWord
 |  |  | UINT32 | 1 | ≥ 0 | Slave Koppelstatus (Zustand)
 |  |  | UINT32 | 1 | 0; 1,2,3... | Achs Regelkreis Index
 |  |  | } |  |  | 112 Byte
0x00000001 | Read | every | UINT32 | 1 |  | Fehlercode Achs-Status | Symbolischer Zugriff: 'ErrState''
0x00n00009 | Read | every | UINT32 | 1 | ≥ 0 | Soll-Zykluszähler (SAF-Timestamp) |
0x00n0000A | Read | every | REAL64 | z.B. mm |  | Sollposition | Symbolischer Zugriff: 'SetPos''
0x00n0000B | Read | every | REAL64 | z.B. GRAD |  | Modulo-Sollposition | Symbolischer Zugriff: 'SetPosModulo''
0x00n0000C | Read | every | INT32 | 1 |  | Modulo-Sollumdrehung |
0x00n0000D | Read | every | REAL64 | 1 | [-1.0, 0.0, 1.0] | Sollfahrrichtung |
0x00n0000E | Read | every | REAL64 | z.B. mm/s |  | Sollgeschwindigkeit | Symbolischer Zugriff: 'SetVelo''
0x00n0000F | Read | every | REAL64 | z.B. mm/s^2 |  | Sollbeschleunigung | Symbolischer Zugriff: 'SetAcc''
0x00n00010 | Read | every | REAL64 | z.B. mm/s^3 |  | Soll-Ruck (zeitliche Ableitung der Soll-Beschleunigung) |
0x00n00011 | Read | every | REAL64 | Nm bzw. N |  | Soll-Moment (rot. Motor) bzw. Soll-Kraft (Linearmotor) |
0x00n00012 | Read | every | REAL64 | 1 |  | Soll-Koppelfaktor (Soll-Getriebeverhältnis) |
0x00n00013 | Read | every | REAL64 | z.B. mm |  | Voraussichtliche Zielposition (Target Position) |
0x00n00014 | Read | Servo | { |  |  | Verbleibende Fahrzeit und Restweg (SERVO): | Immer an SAF-Port 501!
 |  |  | REAL64 | s | ≥ 0 | Verbleibende Fahrzeit
 |  |  | REAL64 | z.B. mm | ≥ 0 | Verbleibender Restweg
 |  |  | } |  |  |
0x00n00015 | Read | every | UINT32 | 1 | ≥ 0 | Soll-Kommandonummer |
0x00n00016 | Read | Servo | REAL64 | s | ≥ 0 | Positionierzeit des letzten Fahrauftrags (Start → Zielpositionsfenster) |
0x00000018 | ReadWrite | Servo | Write |  |  | Lesen der "Stopp Informationen" (Stopp-Weg, Stopp-Zeit) | ab TC 2.11 R2 Nur Port 500 !
 |  |  | REAL64 | z.B. mm/s^2 | ≥ 0 | Verzögerung für Achs-Stopp
 |  |  | REAL64 | z.B. mm/s^3 | ≥ 0 | Ruck für Achs-Stopp
 |  |  | Read |  |  |
 |  |  | REAL64 | z.B. mm | ≥ 0 | Stopp-Weg
 |  |  | REAL64 | s | ≥ 0 | Stopp-Zeit
0x00n0001A | Read | every | REAL64 | z.B. mm |  | Unkorrigierte Sollposition |
0x00n0001D | Read | every | REAL64 | 1 | [-1.0, 0.0, 1.0] | Unkorrigierte Sollfahrrichtung |
0x00n0001E | Read | every | REAL64 | z.B. mm/s |  | Unkorrigierte Sollgeschwindigkeit |
0x00n0001F | Read | every | REAL64 | z.B. mm/s^2 |  | Unkorrigierte Sollbeschleunigung |
0x00000020 | Read | every | UINT32 | 1 | s. ENUM | Koppelstatus (Zustand) |
0x00000021 | Read | every | UINT32 | 1 | ≥ 0 | Koppeltabellen-Index |
0x00000022 | Read | Servo Master / Slave- Kopplung Typ: LINEAR, (&SPECIAL) | { |  |  | Lesen der Kopplungsparameter (SERVO): |
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 1: Linear: Getriebefaktor
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 2: Linear: Reserve
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 3: Linear: Reserve
 |  |  | REAL64 | 1 | [±1000000.0] | Parameter 4: Linear: Reserve
 |  |  | } |  |  |
0x00000023 | Read | Servo Master / Slave- Kopplung Typ: LINEAR, (&SPECIAL) | REAL64 | 1 | [±1000000.0] | Lesen des Getriebefaktors (SERVO) Typ: LINEAR, |
0x00000024 | Read | Servo | UINT32 | 1 | ≥ 0 | Nummer / Index des aktiven Achsregelkreises (Trippel aus Encoder, Regler und Achsinterfaces) |
0x00000025 | Read | Servo | UINT16 | 1 | 0/1 | Externe Sollwertvorgabe über Achsinterface PLCtoNC aktiv ? |
0x00000026 | Read | Servo Master / Slave- Kopplung Typ: SYNCHRONIZING | REAL64 [64] | 1 | ±∞ | Lesen dercharakteristischen Kennwerte des Slave Aufsynchronisierungsprofils Typ: SYNCHRONIZING |
0x00000027 | ReadWrite | Servo Master / Slave- Kopplung Typ: TABULAR, MF | Write |  |  | Lesen der "Tabellen Kopplungs Informationen" | Nur Port 500 !
 |  |  | VOID oder REAL64 | z.B. mm | ±∞ | - Keine Daten für die "aktuelle Information", - Optional für eine bestimmte "Master Achspostion"
 |  |  | Read |  |  |
 |  |  | REAL64 [32] |  | ±∞ | Lesen der Struktur für die Tabellen Kopplungs Informationen
0x00000028 | ReadWrite | Servo Master / Slave- Kopplung Typ: MULTICAM (CamAddition) | Write |  |  | Lesen der "Multi-Tabellen Kopplungs Informationen" (CamAddition) | Nur Port 500 !
 |  |  | UINT32 | 1 | ≥ 0 | Tabellen-ID auf die sich die Anfrage bezieht
 |  |  | Read |  |  |
 |  |  | 96 Byte |  |  | Lesen der Struktur für die Multi-Tabellen Kopplungs Informationen
0x00000029 | Read | Servo | UINT32 | 1 |  | verzögerter Fehlercode (Fehlervorwarnung) im Falle einer verzögerten Fehlerreaktion (s. Bit ErrorPropagationDelayed) | ab TC 2.11 R3 B2229
0x0000002A | Read | Servo | REAL64 | z.B. mm | ±∞ | Positionsdifferenz beim Überblenden von Sollpositionen auf Istpositionen (Fading Anteil) | ab TC 2.11 R2
0x0000002B | Read | Servo | REAL64 | z.B. mm/s | ±∞ | Relative Geschwindigkeit beim Überblenden von Sollpositionen auf Istpositionen (Fading Anteil) | ab TC 2.11 R2
0x0000002C | Read | Servo | REAL64 | z.B. mm/s ^2 | ±∞ | Relative Beschleunigung beim Überblenden von Sollpositionen auf Istpositionen (Fading Anteil) | ab TC 2.11 R2
0x0000002D | Read | Servo | UINT32 | 1 | ≥ 0 | Zähler für Initialisierungs-Kommando (InitializeCommandCounter) |
0x0000002E | Read | Servo | UINT32 | 1 | ≥ 0 | Zähler für Reset-Kommando (ResetCommandCounter) |
0x00000050 | Read | every | UINT32 | 1 |  | SollFahrphase (SWGenerator) | Nicht oszilloskopierbar!
0x00000051 | Read | every | UINT16 | 1 |  | Ist Achse deaktiviert ? | Nicht oszilloskopierbar!
0x00n00060 | Read / Write | every (Online Sollwert - Struktur) | { |  |  | ACHS-SOLLWERT-STRUKTUR (NC/CNC) | Nicht oszilloskopierbar!
 |  |  | REAL64 | z.B. mm |  | Sollposition
 |  |  | REAL64 | z.B. mm/s |  | Sollgeschwindigkeit
 |  |  | REAL64 | z.B. mm/s^2 |  | Sollbeschleunigung / Sollverzögerung
 |  |  | REAL64 | 1 | [-1.0, 0.0, 1.0] | Sollfahrtrichtung
 |  |  | REAL64 | z.B. mm/s^3 |  | Sollruck
 |  |  | REAL64 | Nm bzw. N |  | Soll-Moment bzw. Soll-Kraft (neu ab TC V2.11 B1514)
 |  |  | } |  |  |
0x00n00061 | Read / Write | every (Online Dynamik Sollwert-Struktur) | { |  |  | ACHS-DYNAMIK-SOLLWERT STRUKTUR (NC/CNC) |
 |  |  | REAL64 | z.B. mm/s |  | Sollgeschwindigkeit
 |  |  | REAL64 | z.B. mm/s^2 |  | Sollbeschleunigung / Sollverzögerung
 |  |  | REAL64 | 1 | [-1.0, 0.0, 1.0] | Sollfahrtrichtung
 |  |  | REAL64 | z.B. mm/s^3 |  | Sollruck
 |  |  | REAL64 | Nm bzw. N |  | Soll-Moment bzw. Soll-Kraft (neu ab TC V2.11 B1514)
 |  |  | } |  |  |
0x00n10002 | Read | every (Encoder) | REAL64 | z.B. mm |  | Istposition (verrechnet mit Istpositionskorrekturwert) n = 0: Standardencoder der Achse n > 0: n-ter Encoder der Achse (optional) | Symbolischer Zugriff: 'ActPos''
0x00n10003 | Read | every (Encoder) | REAL64 | z.B. GRAD |  | Modulo-Istposition | Symbolischer Zugriff: 'ActPosModulo'
0x00n10004 | Read | every (Encoder) | INT32 | 1 |  | Modulo-Istumdrehung |
0x00n10005 | Read | every (Encoder) | REAL64 | z.B. mm/s |  | Optional: Istgeschwindigkeit | Symbolischer Zugriff: 'ActVelo''
0x00n10006 | Read | every (Encoder) | REAL64 | z.B. mm/s^2 |  | Optional: Istbeschleunigung | Symbolischer Zugriff: 'ActAcc''
0x00n10007 | Read | every (Encoder) | INT32 | INC |  | Geber-Istinkremente |
0x00n10008 | Read | every (Encoder) | INT64 | INC |  | Software - Istinkrementalzähler |
0x00n10009 | Read | every (Encoder) | UINT16 | 1 | 0/1 | Referenzierflag ("Eichflag") |
0x00n1000A | Read | every (Encoder) | REAL64 | z.B. mm |  | Istpositionskorrekturwert (Meßsystemfehlerkorrektur) |
0x00n1000B | Read | every (Encoder) | REAL64 | z.B. mm |  | Istposition ohne Istpositionskorrekturwert | Nicht oszilloskopierbar!
0x00n10010 | Read | every (Encoder) | REAL64 | z.B. mm/s |  | Istgeschwindigkeitohne Istpositionskorrekturwert |
0x00n10012 | Read | every (Encoder) | REAL64 | z.B. mm |  | Ungefilterte Istposition (verrechnet mit Istpositionskorrekturwert) |
0x00n10015 | Read | every (Encoder) | REAL64 | z.B. mm/s |  | Optional: Ungefilterte Istgeschwindigkeit | Base Unit / s
0x00n10101 | Read | INC (Encoder) | REAL64 | z.B. mm |  | Rücklesen der Positionsdifferenz zwischen Aktivieren und Gültig werden des internen Hardwarelatches | Nicht oszilloskopierbar!
0x00n20001 | Read | R: every | INT32 | 1 |  | Fehlerstatus des Reglers n = 0: Standardregler der Achse n > 0: n-ter Regler der Achse (optional) |
0x00n20002 | Read | R: every | REAL64 | z.B. mm/s |  | Reglerausgabe in absoluten Einheiten | Symbolischer Zugriff: 'CtrlOutput''
0x00n20003 | Read | R: every | REAL64 | % |  | Reglerausgabe in Prozent | Nicht oszilloskopierbar!
0x00n20004 | Read | R: every | REAL64 | V |  | Reglerausgabe in Volt | Nicht oszilloskopierbar!
0x00n2000D | Read | R: every | REAL64 | z.B. mm |  | Schleppabstand Position (ohne Totzeitkompensation) | Base Unit
0x00n2000F | Read | R: every | REAL64 | z.B. mm |  | Schleppabstand Position (mit Totzeitkompensation) | Symbolischer Zugriff: 'PosDiff''
0x00n20010 | Read | R: every | REAL64 | z.B. mm |  | PeakHold-Wert für maximalen negativen Schleppabstand der Position |
0x00n20011 | Read | R: every | REAL64 | z.B. mm |  | PeakHold-Wert für minimalen positiven Schleppabstand der Position |
0x00n20012 | Read | R: every | REAL64 | z.B. mm/s |  | Schleppabstand Geschwindigkeit | Nicht implementiert !
0x00n20021 | Read | R: every | REAL64 | z.B. mm |  | Differenz (Abweichung) der Positions-Schleppabstände zwischen Master- und Slaveachse (Master- minus Slaveschleppabstand) | Symbolischer Zugriff: 'PosDiffCouple'
0x00n20022 | Read | R: every | REAL64 | z.B. mm |  | PeakHold-Wert für maximale negative Differenz der Schleppabstände (Position) zwischen Master- und Slaveachse | Base Unit
0x00n20023 | Read | R: every | REAL64 | z.B. mm |  | PeakHold-Wert für maximale positive Differenz der Schleppabstände (Position) zwischen Master- und Slaveachse | Base Unit
0x00n20101 | Read | R: P/PID (Pos.) | REAL64 | z.B. mm/s |  | P-Anteil des Reglers in absoluten Einheiten |
0x00n20102 | Read | R: PID (Pos.) | REAL64 | z.B. mm/s |  | I-Anteil des Reglers in absoluten Einheiten |
0x00n20103 | Read | R: PID (Pos.) | REAL64 | z.B. mm/s |  | D-Anteil des Reglers in absoluten Einheiten |
0x00n20104 | Read | R: PID (Pos.) | UINT16 | 1 | 0/1 | Begrenzung des I-Anteils aktiv? |
0x00n20105 | Read | R: PID (Pos.) | UINT16 | 1 | 0/1 | Begrenzung des D-Anteils aktiv? |
0x00n20106 | Read | R: PID (Pos.) | UINT16 | 1 | 0/1 | ARW-Massnahmen des I-Anteils aktiv? ARW: Anti Reset Windup | Nicht implementiert!
0x00n20110 | Read | R: PID (Pos.) | REAL64 | z.B. mm/s |  | Beschleunigungsvorsteuerung Yacc des Reglers in absoluten Einheiten Anmerkung: Funktion abhängig vom Reglertyp! | Beschleunigungsvorsteuerung
0x00n20111 | Read | R: PP (Pos.) | REAL64 | mm/s/ mm | ≥0 | Interne interpolierte Proportionalverstärkung kp bzw. kv | PP-Regler
0x00n20201 | Read | R: P,PID (Geschw.) | REAL64 | z.B. mm/s |  | Geschwindigkeitsanteil des Reglers | Base Unit / s
0x00n20202 | Read | R: P,PID (Geschw.) | REAL64 | % |  | Geschwindigkeitsanteil des Reglers in Prozent | Nicht oszilloskopierbar!
0x00n20203 | Read | R: P,PID (Geschw.) | REAL64 | V |  | Geschwindigkeitsanteil des Reglers in Volt | Nicht oszilloskopierbar!
0x00n20201 | Read | R: P/PID (Geschw.) | REAL64 | z.B. mm/s |  | P-Anteil des Reglers in absoluten Einheiten |
0x00n20202 | Read | R: P/ PID (Geschw.) | REAL64 | z.B. mm/s |  | I-Anteil des Reglers in absoluten Einheiten |
0x00n20203 | Read | R: P/ PID (Geschw.) | REAL64 | z.B. mm/s |  | D-Anteil des Reglers in absoluten Einheiten |
0x00n20204 | Read | R: P/ PID (Geschw.) | UINT16 | 1 | 0/1 | Begrenzung des I-Anteils aktiv? |
0x00n20205 | Read | R: P/ PID (Geschw.) | UINT16 | 1 | 0/1 | Begrenzung des D-Anteils aktiv? |
0x00n20206 | Read | R: P/ PID (Geschw.) | UINT16 | 1 | 0/1 | ARW-Massnahmen des I-Anteils aktiv? | ARW: Anti Reset Windup
0x00n2020A | Read | R: P/ PID (Geschw.) | REAL64 | z.B. mm/s |  | Gesamteingangsgröße des Geschwindigkeits-Reglers |
0x00n20A00 | Read | R: PID (MW) | REAL64 | % | [-1.0...1.0] | Verrechnung der Sollgeschwindigkeit (Vorsteuerung) | Reservierte Parameter !
0x00n20A01 | Read | R: PID (MW) | REAL64 | z.B. mm/s |  | P-Anteil des Reglers in absoluten Einheiten oder Prozent (je nach Ausgabegewichtung) | Reservierte Parameter !
0x00n20A02 | Read | R: PID (MW) | REAL64 | z.B. mm/s |  | I-Anteil des Reglers in absoluten Einheiten oder Prozent (je nach Ausgabegewichtung) | Reservierte Parameter !
0x00n20A03 | Read | R: PID (MW) | REAL64 | z.B. mm/s |  | D-Anteil des Reglers in absoluten Einheiten oder Prozent (je nach Ausgabegewichtung) | Reservierte Parameter !
0x00n20A04 | Read | R: PID (MW) | UINT16 | 1 | 0/1 | Begrenzung des I-Anteils aktiv? | Reservierte Parameter !
0x00n20A05 | Read | R: PID (MW) | UINT16 | 1 | 0/1 | Begrenzung des D-Anteils aktiv? | Reservierte Parameter !
0x00n20A06 | Read | R: PID (MW) | UINT16 | 1 | 0/1 | ARW-Massnahmen des I-Anteils aktiv? ARW: Anti Reset Windup | Reservierte Parameter !
0x00n20A10 | Read | R: PID (MW) | REAL64 | z.B. mm/s |  | Beschleunigungsvorsteuerung Yacc des Reglers in absoluten Einheiten | Reservierte Parameter !
0x00n30001 | Read | D: every | INT32 | 1 |  | Fehlerstatus des Drives |
0x00n30002 | Read | D: every | REAL64 | z.B. mm/s |  | Gesamtausgabe in absoluten Einheiten | Symbolischer Zugriff: 'DriveOutput'
0x00n30003 | Read | D: every | REAL64 | % |  | Gesamtausgabe in Prozent |
0x00n30004 | Read | D: every | REAL64 | V |  | Gesamtausgabe in Volt | Nicht oszilloskopierbar!
0x00n30005 | Read | D: every | REAL64 | z. B. mm/s |  | PeakHold-Wert für maximale negative Gesamtausgabe | Base Unit / s
0x00n30006 | Read | D: every | REAL64 | z. B. mm/s |  | PeakHold-Wert für maximale positive Gesamtausgabe | Base Unit / s
0x00n30013 | Read | D: every | REAL64 | % |  | Gesamtausgabe in Prozent (nach nichtlinearer Kennlinie !) |
0x00n30014 | Read | D: every | REAL64 | V |  | Gesamtausgabe in Volt (nach nichtlinearer Kennlinie !) | Nicht oszilloskopierbar!


"Index-Offset" Spezifikation für Achs-Funktionen (Index-Group 0x4200 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Achsen [image] "Index-Offset" Spezifikation für Achs-Funktionen (Index-Group 0x4200 + ID)
"Index-Offset" Spezifikation für Achs-Funktionen (Index-Group 0x4200 + ID)
Index-Offset
(Hex)
Zugriff
Achs-
typ
Daten-
typ
Phys.
Einheit
Definitions-
bereich
Beschreibung
Anmerkung
0x00000001
Write
every
VOID
Reset Achse
Auch für FIFO-Achsen!
0x00000002
Write
every
VOID
Stop Achse
Auch für FIFO-Achsen!
0x00000003
Write
every
VOID
Clear Achse (Auftrag)
Auch für FIFO-Achsen!
0x00000004
Write
every
{
Emergency Stop
(Notstop mit geregelter Rampe)
Nur für PTP-Achsen!
REAL64
z.B. mm/s^2
> 0.0
Verzögerung
(muss größer gleich der Originalverzögerung sein!)
REAL64
z.B. mm/s^3
> 0.0
Ruck
(muss größer gleich dem Originalruck sein!)
}
0x00000005
Write
PTP-Achse
{
Parametrierbarer Stop
(mit geregelter Rampe)
Nur für PTP-Achsen!
Reservierte Funktion,
kein Standard!
REAL64
z.B. mm/s^2
> 0.0
Verzögerung
REAL64
z.B. mm/s^3
> 0.0
Ruck
}
0x00000009
Write
PTP-Achse
{
Orientierter Stop
(orientierte Endposition)
Nur für PTP-Achsen!
REAL64
z.B. Grad
≥ 0.0
Modulo-Endposition (Modulo-Zielposition)
REAL64
z.B. mm/s^2
> 0.0
Verzögerung
(momentan nicht wirksam)
REAL64
z.B. mm/s^3
> 0.0
Ruck
(momentan nicht wirksam)
}
0x00000010
Write
every
VOID
Referenziere Achse ("Eichen")
0x00000011
Write
every
{
Neue Endposition Achse
UINT32
ENUM
s. Anhang
Endpositionstyp (s. Anhang)
REAL64
z.B. mm
±∞
Neue Endposition (Zielposition)
}
0x00000012
Write
every
{
Neue Endposition und neue Geschwindigkeit Achse
UINT32
ENUM
s. Anhang
Kommandotyp (s.Anhang)
UINT32
ENUM
s. Anhang
Endpositionstyp (s.Anhang)
REAL64
z.B. mm
±∞
Neue Endposition (Zielposition)
REAL64
z.B. mm/s
≥ 0.0
Neue Endgeschwindigkeit (angeforderte Fahrgeschw.)
REAL64
z.B. mm
±∞
Optional:
Umschaltposition ab der neues Fahrprofil aktiviert wird
}
0x00000015
Write
every
{
Neue Dynamikparameter für aktive Positionierung
REAL64
z.B. mm/s^2
> 0.0
Beschleunigung
REAL64
z.B. mm/s^2
> 0.0
Verzögerung
REAL64
z.B. mm/s^3
> 0.0
Optional: Ruck (momentan nicht wirksam)
}
0x00000016
ReadWrite
every
SERVO
Write
(76 byte)
Universeller Achsstart (UAS):
Verschmelzung von Einzelkommandos wie z.B. Achsstart, und Online-Änderungen in Kombination mit "Buffer-Mode" (s. TcMc2.lib)
Immer an SAF-Port 501!
{
UINT32
ENUM
s. Anhang
Starttyp (s.Anhang)
UINT32
1
≥ 0
Bitmaske für Überprüfungen und Betriebsarten
(Default-Wert: 0)
REAL64
z.B. mm
±∞
Endposition (Zielposition)
REAL64
z.B. mm/s
≥ 0.0
Geforderte Geschwindigkeit Vrequ
REAL64
z.B. mm/s^2
≥ 0.0
Optional: Beschleunigung
REAL64
z.B. mm/s^2
≥ 0.0
Optional: Verzögerung
REAL64
z.B. mm/s^3
≥ 0.0
Optional: Ruck
UINT32
ENUM
s. Anhang
Buffer-Mode (Kommandozwischenspeicher)
REAL64
z.B. mm
±∞
Optional: Blending-Position (Kommandoüberblendungsposition)
REAL64
z.B. mm/s
≥ 0.0
Optional: Segment Anfangsgeschwindigkeit Vi
(0 ≤ Vi ≤ Vrequ)
REAL64
z.B. mm/s
≥ 0.0
Optional: Segment Endgeschwindigkeit Vf
(0 ≤ Vf ≤ Vrequ)
}
Read
{
UINT16
1
≥ 0
Kommando Nummer (Job Nummer)
UINT16
1
≥ 0
Kommando Status
}
0x00000017
ReadWrite
SERVO
Write
(76 byte)
"Master/Slave Entkopplung" und "Universeller Achsstart (UAS)":
Verschmelzung vom Abkoppelkommando einer Slaveachse (IdxOffset: 0x00000041) und nachfolgendem Universellen Achsstart (UAS) (IdxOffset: 0x00000016)
noch nicht freigegeben!
{
UINT32
ENUM
s. Anhang
Starttyp (s.Anhang)
UINT32
1
≥ 0
Bitmaske für Überprüfungen und Betriebsarten
(Default-Wert: 0)
REAL64
z.B. mm
±∞
Endposition (Zielposition)
REAL64
z.B. mm/s
≥ 0.0
Geforderte Geschwindigkeit Vrequ
REAL64
z.B. mm/s^2
≥ 0.0
Beschleunigung
REAL64
z.B. mm/s^2
≥ 0.0
Verzögerung
REAL64
z.B. mm/s^3
≥ 0.0
Ruck
UINT32
ENUM
s. Anhang
Buffer-Mode (Kommandozwischenspeicher)
REAL64
z.B. mm
±∞
Optional: Blending-Position (Kommandoüberblendungsposition)
REAL64
z.B. mm/s
≥ 0.0
Optional: Segment Anfangsgeschwindigkeit Vi
(0 ≤ Vi ≤ Vrequ)
REAL64
z.B. mm/s
≥ 0.0
Optional: Segment Endgeschwindigkeit Vf
(0 ≤ Vf ≤ Vrequ)
}
Read
{
UINT16
1
≥ 0
Kommando Nummer (Job Nummer)
UINT16
1
≥ 0
Kommando Status
}
0x00000018
Write
every
VOID
Aufhebung der Achssperre für Bewegungskommandos (TcMc2)
0x00000019
Write
every
UINT32
1
> 0
Setze externen Achsfehler (Laufzeitfehler)
Vorsicht bei Benutzung !
0x00n0001A
Write
every
{
Setze Istposition Achse
Vorsicht bei Benutzung !
Auch für FIFO-Achsen!
Immer an SAF-Port 501!
UINT32
ENUM
s. Anhang
Istpositionstyp (s.Anhang)
REAL64
z.B. mm
±∞
Istposition für Achse

n = 0: Standardencoder der Achse
n > 0: n-ter Encoder der Achse (optional)
}
0x00n0001B
Write
every
UINT32
1
0/1
Setze Referenzierflag ("Eichflag")
n = 0: Standardencoder der Achse
n > 0: n-ter Encoder der Achse (optional)
Vorsicht bei Benutzung !
Auch für FIFO-Achsen!
0x00n0001C
Write
SERVO
{
Setze nur Istposition Achse, ohne Manipulation der Sollposition (auch für Slave und bei aktivem Verfahren)
Vorsicht bei Benutzung !
UINT32
ENUM
s. Anhang
Istpositionstyp (s.Anhang)
REAL64
z.B. mm
±∞
Istposition für Achse
n = 0: Standardencoder der Achse
n > 0: n-ter Encoder der Achse (optional)
Vorsicht bei Benutzung!!!
}
0x00n0001D
Write
every
{
Antriebseitiges Istwertsetzen der Achse
(Positionsinterface und Encoder-Offset von Null vorausgesetzt !)
n = 0: Standardencoder der Achse
n > 0: n-ter Encoder der Achse (optional)
Vorsicht bei Benutzung !
Nur für CANopen
UINT32
ENUM
s. Anhang
Istpositionstyp (s.Anhang)
REAL64
z.B. mm
±∞
Istposition für Achse
}
0x00n0001E
Write
every
{
Fliegendes Setzen eines neuen Encoder-Skalierungsfaktors
(in Bewegung der Achse)
Vorsicht bei Benutzung !
Immer an SAF-Port 501!
UINT32
ENUM
1
Encoder-Skalierungsfaktortyp
1: Absolut
2: Relativ
REAL64
z.B. mm/INC
[1.0E-8 ... 100.0]
Neuer Encoder-Skalierungsfaktor
n = 0: Standardencoder der Achse
n > 0: n-ter Encoder der Achse (optional)
}
0x00n0001F
Write
every
{
Fliegendes Istwertsetzen der Achse
(in Bewegung der Achse)
Vorsicht bei Benutzung !
Immer an SAF-Port 501!
UINT32
ENUM
Positionstyp für Fliegendes Istwertsetzen
1: Absolut
2: Relativ
UINT32
1
Control-DWord für z.B. "Ablöschen des Schleppabstandes"
REAL64
Reserve
REAL64
z.B. mm
±∞
Neue Istposition der Achse
UINT32
Reserve
UINT32
Reserve
}
0x00000020
Write
every
1D-Start
{
Standard Achsstart:
UINT32
ENUM
s. Anhang
Starttyp (s.Anhang)
REAL64
z.B. mm
±∞
Endposition (Zielposition)
REAL64
z.B. mm/s
≥0.0
Geforderte Geschwindigkeit
}
0x00000021
Write
every
1D-Start
{
Erweiteter Achsstart (SERVO):
UINT32
ENUM
s. Anhang
Starttyp (s.Anhang)
REAL64
z.B. mm
±∞
Endposition (Zielposition)
REAL64
z.B. mm/s
≥ 0.0
Geforderte Geschwindigkeit
UINT32
0/1
0/1
Standard Beschleunigung?
REAL64
z.B. mm/s^2
≥ 0.0
Beschleunigung
UINT32
0/1
0/1
Standard Verzögerung?
REAL64
z.B. mm/s^2
≥ 0.0
Verzögerung
UINT32
0/1
0/1
Standard Ruck?
REAL64
z.B. mm/s^3
≥ 0.0
Ruck
}
0x00000022
Write
SERVO(MW)
{
Spezieller Achsstart (SERVO):
Reservierte Startfunktion, kein Standard !
UINT32
ENUM
s. Anhang
Starttyp (s.Anhang)
REAL64
z.B. mm
±∞
Endposition (Zielposition)
REAL64
mm/s
≥ 0.0
Geforderte Anfangsgeschwindigkeit
REAL64
z.B. mm
±∞
Position, fuer neues Geschwindigkeitsniveau
REAL64
z.B. mm/s
≥ 0.0
Neues Endgeschwindigkeitsniveau
UINT32
0/1
0/1
Standard Beschleunigung?
REAL64
z.B. mm/s^2
≥ 0.0
Beschleunigung
UINT32
0/1
0/1
Standard Verzögerung?
REAL64
z.B. mm/s^2
≥ 0.0
Verzögerung
UINT32
0/1
0/1
Standard Ruck?
REAL64
z.B. mm/s^3
≥ 0.0
Ruck
}
0x00000023
Write
SERVO

{
Start externe Sollwertvorgabe (Vorgabe durch zyklisches Achsinterface PLCtoNC)
UINT32
ENUM
1: Absolut
2: Relativ
Starttyp
REAL64
z.B. mm
±∞
Neue Endposition (Zielposition) optional !
}
0x00000024
Write
SERVO
VOID
Stop/Disable externe Sollwertvorgabe
(zykl. Achsinterface PLCtoNC)
0x00000025
Write
SERVO
{
Start Reversierbetrieb für Positionierung (SERVO):
UINT32
ENUM
1
Starttyp (default: 1)
REAL64
z.B. mm
±∞
Endposition 1 (Zielposition)
REAL64
z.B. mm
±∞
Endposition 2 (Zielposition)
REAL64
0/1
0/1
Geforderte Geschwindigkeit
REAL64
s
≥ 0.0
Pausenzeit (idle time)
}
0x00000026
Write
every
{
Start Drive-Output:
UINT32
ENUM
s. Anhang
Ausgabetyp (s.Anhang)
REAL64
z.B. %
±∞
Geforderter Ausgabewert (z.B. %)
}
0x00000027
Write
every
VOID
Stop Drive-Output
0x00000028
Write
every
{
Änderung/Wechsel des Drive-Outputs:
UINT32
ENUM
s. Anhang
Ausgabetyp (s.Anhang)
REAL64
z.B. %
±∞
Geforderter Ausgabewert (z.B. %)
}
0x00000029
Write
every
VOID
Aktuellen Override-Wert instantan übernehmen und einfrieren bis zur nächsten Overrideänderung!
Reservierte Funktion, kein Standard !
0x0000002A
Write
every
{
32 bytes
}
calculate and set encoder offset
Reservierte Funktion, kein Standard !
0x0000002B
ReadWrite
every
WriteData: s. 'UAS'
ReadData: s. 'UAS'
stop external setpoint generator and continuous endless motion ('UAS': Universal axis start)
Reservierte Funktion, kein Standard !
0x00000030
Write
SERVO
{
Start Streckenkompensation (SERVO)
UINT32
ENUM
s. Anhang
Kompensations-Typ (s.Anhang)
REAL64
z.B. mm/s^2
≥ 0.0
Max. Beschleunigungserhöhung
REAL64
z.B. mm/s^2
≥ 0.0
Max. Verzögerungserhöhung
REAL64
z.B. mm/s
> 0.0
Max. Erhöhungsgeschwindigkeit
REAL64
z.B. mm/s
> 0.0
Grundgeschwindigkeit des Prozesses
REAL64
z.B. mm
±∞
Auszugleichende Wegdifferenz
REAL64
z.B. mm
> 0.0
Weglänge für Kompensation
}
0x00000030
ReadWrite
SERVO
liefert die wirklich wirkenden Größen als Rückgabewerte zurück
{
READ+WRITE:
Start Streckenkompensation (SERVO)
Anmerkung: nur in 'TcMc2.lib' enthalten
UINT32
ENUM
s. Anhang
Kompensations-Typ (s.Anhang)
REAL64
z.B. mm/s^2
≥ 0.0
=> Max. Beschleunigungserhöhung
<= liefert umgesetzte Beschleunigungserhöhung zurück (neu in 'TcMc2.lib')
REAL64
z.B. mm/s^2
≥ 0.0
=> Max. Verzögerungserhöhung
<= liefert umgesetzte Verzögerungserhöhung zurück (neu in 'TcMc2.lib')
REAL64
z.B. mm/s
> 0.0
=> angeforderte max. Erhöhungsgeschwindigkeit
<= liefert umgesetzte Erhöhungsgeschwind. zurück
REAL64
z.B. mm/s
> 0.0
Grundgeschwindigkeit des Prozesses
REAL64
z.B. mm
±∞
=> angeforderte auszugleichende Wegdifferenz
<= liefert umgesetzte Wegdifferenz zurück
REAL64
z.B. mm
> 0.0
=> angeforderte max. Weglänge für Kompensation
<= liefert umgesetzte Weglänge zurück
UINT32
1
≥ 0
<= liefert Warnungs-ID (z.B. 0x4243) zurück
}
0x00000031
Write
SERVO
VOID
Stop Streckenkompensation (SERVO)
0x00000032
Write
SERVO
{
Start Reversierbetrieb mit Geschwindigkeitssprüngen (SERVO):
(kann zur Ermittlung der Geschwindigkeits- Sprungantwort verwendet werden)
UINT32
ENUM
1
Starttyp (default: 1)
REAL64
z.B. mm/s
±∞
Geforderte Geschwindigkeit 1
(auch negative Werte erlaubt)
REAL64
z.B. mm/s
±∞
Geforderte Geschwindigkeit 2
(auch negative Werte erlaubt)
REAL64
s
> 0.0
Fahrzeit für Geschwindigkeit 1 und 2
REAL64
s
≥ 0.0
Pausenzeit (idle time)
UINT32
1
0, 1,2,3...
Optional: Anzahl der Wiederholungen,
Default "0": zeitlich unbegrenzt
}
0x00000033
Write
SERVO
{
Sinus Oscillation Sequence
- used as single sinus oscillation (sinus generator)
- used as sinus oscillation sequence (e.g. for bode plot)
UINT32
ENUM
1
start type (fixed to start type 1 yet)
REAL64
e.g. mm/s
> 0.0
base amplitude (e.g. 2.5 mm/s)
REAL64
Hz
[0.0 .... 10.0]
base frequency (e.g. 1.953125 Hz)
REAL64
e.g. mm/s
≥ 0.0
start amplitude at begin (e.g. 0.0 mm/s)
REAL64
e.g. mm/REV
> 0.0
feed constant motor (per motor turn) (e.g. 10.0 mm/REV)
REAL64
Hz
≥ 1.0
frequency range: start frequency (e.g. 20.0 Hz)
REAL64
Hz
≤ 1/(2*dT)
frequency range: stop frequency (e.g. 500.0 Hz)
REAL64
s
> 0.0
step duration (e.g. 2.048s)
UINT32
1
[1 ... 200]
number of measurements (step cycles) (e.g. 20)
UINT32
1
number of parallel measurements (e.g. 1) not used yet!
}
0x00000040
(0x00n00040)
Write
Master / Slave- Kopplung:
(SERVO)
{
Master/Slave Kopplung (SERVO):
Erweiterung für "Fliegende Säge" !
UINT32
ENUM
s. Anhang
Slavetyp/Kopplungstyp (s. Anhang)
UINT32
1
[1...255]
Achs-ID der Masterachse/Gruppe
UINT32
1
[0...8]
Subindex n der Masterachse (Default:-Wert: 0)
UINT32
1
[0...8]
Subindex n der Slaveachse (Default:-Wert: 0)
REAL64
1
[±1000000.0]
Parameter 1:
Linear: Getriebefaktor
FlySawVelo: Reserve
FlySaw: Abs. Synchronposition Master [mm]
REAL64
1
[±1000000.0]
Parameter 2:
Linear: Reserve
FlySawVelo: Reserve
FlySawPos: Abs. Synchronposition Slave [mm]
REAL64
1
[±1000000.0]
Parameter 3:
Linear: Reserve
FlySawVelo: Neigungswinkel in [GRAD]
FlySawPos: Neigungswinkel in [GRAD]
Winkel >0.0 und £ 90.0 Grad
(Parallelsäge: 90.0 Grad)
REAL64
1
[±1000000.0]
Parameter 4:
Linear: Reserve
FlySawVelo: Getriebefaktor
FlySawPos: Getriebefaktor
}
0x00000041
Write
Master / Slave- Entkopplung (SERVO)
VOID
Master/Slave Entkopplung (SERVO)
0x00000041
Write
Master / Slave- Entkopplung mit konfigurierbarer Folgefunktion (SERVO)
{
Master/Slave Entkopplung mit konfigurierbarer Folgefunktion (z.B. neue Endposition, neue Geschwindigkeit, Stop, E-Stop) (SERVO)
noch nicht freigegeben !
UINT32
ENUM
s. Anhang
Entkopplungs-Typ (s. Anhang)
REAL64
z.B. mm
±∞
Optional: Neue Endpostion
REAL64
z.B. mm/s
> 0.0
Optional: Neue geforderte Geschwindigkeit
REAL64
z.B. mm/s^2
≥ 0.0
(0: Default)
Optional: Beschleunigung für neue Endposition, neue Geschwindigkeit und Emergency Stop (E-Stop)
REAL64
z.B. mm/s^2
≥ 0.0
(0: Default)
Optional: Verzögerung für neue Endposition, neue Geschwindigkeit und Emergency Stop (E-Stop)
REAL64
z.B. mm/s^3
≥ 0.0
(0: Default)
Optional: Ruck für neue Endposition, neue Geschwindigkeit und Emergency Stop (E-Stop)
}
0x00000042
Write
Master / Slave- Kopplung
Typ: LINEAR (&SPECIAL)
{
Änderung der Kopplungsparameter (SERVO):
REAL64
1
[±1000000.0]
Parameter 1:
Linear: Getriebefaktor
REAL64
1
[±1000000.0]
Parameter 2:
Linear: Reserve
REAL64
1
[±1000000.0]
Parameter 3:
Linear: Reserve
REAL64
1
[±1000000.0]
Parameter 4:
Linear: Reserve
}
0x00000043
Write
Master / Slave- Tabellen- Kopplung
Typ: TABULAR
{
Änderung der Tabellen- Kopplungsparameter (SERVO):
REAL64
mm
±∞
Slave Positions-Offset
REAL64
mm
±∞
Master Positions-Offset
}
0x00000043
Write
Master / Slave- Tabellen- Kopplung
Typ: TABULAR
und
"Motion Function"
{
Änderung der Tabellen- Kopplungsparameter (SERVO):
Auch für "Motion Function"
REAL64
mm
±∞
Slave Positions-Offset
REAL64
mm
±∞
Master Positions-Offset
REAL64
1
±∞ (<> 0.0)
Slave Positions-Skalierung
REAL64
1
±∞ (<> 0.0)
Master Positions-Skalierung
}
0x00000043
Write
Master / Slave- Tabellen- Kopplung
Typ: TABULAR
{
Änderung der Tabellen- Kopplungsparameter (SERVO):
REAL64
mm
±∞
Slave Positions-Offset
REAL64
mm
±∞
Master Positions-Offset
REAL64
1
±∞ (<> 0.0)
Slave Positions-Skalierung
REAL64
1
±∞ (<> 0.0)
Master Positions-Skalierung
REAL64
z.B. mm
±∞
Absolute Master Aktivierungsposition
}
0x00000044
Write
Slave-Stop (SERVO)
VOID
Stop der "Fliegende Säge" (SERVO)
Nur für "Fliegende Säge"
0x00000045
(0x00n00045)
Write
Master / Slave- Tabellen- Kopplung (SERVO)
{
Master / Slave Tabellen-Kopplung (SERVO):
UINT32
ENUM
s. Anhang
Slavetyp / Kopplungstyp (s.Anhang)
UINT32
1
[1...255]
Achs-ID der Masterachse
UINT32
1
[0...8]
Subindex n der Masterachse (Default:-Wert:: 0)
UINT32
1
[0...8]
Subindex n der Slaveachse (Default:-Wert: 0)
SOLO-TABELLEN ABSCHNITT:
REAL64
mm
±∞
Slave Positions-Offset (Typ: TABULAR)
REAL64
mm
±∞
Master Positions-Offset (Typ: TABULAR)
UINT32
1
[0,1]
Slave Positionen absolut (Typ: TABULAR)
UINT32
1
[0,1]
Master Positionen absolut (Typ: TABULAR)
UINT32
1
[1...255]
Tabellen-ID der Koppeltabelle (Typ: TABULAR)
MULTI-TABELLEN ABSCHNITT:
UINT16
1
[0...8]
Anzahl der Tabellen (Typ: MULTITAB)
Anmerkung: Missbraucht als Interpolations-Typ für Solo-Tabellen
UNIT16
1
[0...8]
Anzahl der Profil-Tabellen (Typ: MULTITAB)
UNIT32[8]
1
[1...255]
Tabellen-IDs der Koppeltabellen (Typ: MULTITAB)
}
0x00000046
Write
Master / Slave Multitabellen
UINT32
1
[1...255]
Aktivierung Korrekturtabelle
Korrektur-Tabellen-ID
0x00000046
Write
Master / Slave Multitabellen
{
Aktivierung Korrekturtabelle
UINT32
1
[1...255]
Korrektur-Tabellen-ID
REAL64
z.B. mm
±∞
Absolute Master Aktivierungsposition
}
0x00000047
Write
Master / Slave
Multitabellen
UINT32
1
[1..255]
Deaktivierung Profiltabelle am Zyklusende
Tabellen-ID der aktuellen monozyklischen Profiltabelle
0x00000048
ReadWrite
Master / Slave
Multitabellen
Write: UINT32
1
[1..255]
Lesen des letzten Korrekturoffsets:
Tabellen-ID der Korrekturtabelle
Read: REAL32
z.B. mm
±∞
Offset durch Abfahren der Korrekturtabelle mit der entsprechenden Tabellen-ID
0x00000049
Write
Master / Slave- Tabellen- Kopplung
Typ: TABULAR
REAL64
1
±∞
Ändern der Slave-Tabellenskalierung
Skalierungsfaktor der Slave-Tabellenspalte
(Default-Wert: 1.0)
0x0000004A
(0x00n0004A)
Write
Master / Slave- Universelle- Tabellen- Kopplung (SERVO)
{
Master / Slave Solo-Tabellen-Kopplung (SERVO):
UINT32
ENUM
s. Anhang
Slavetyp / Kopplungstyp (s. Anhang)
UINT32
1
[1...255]
Achs-ID der Masterachse
UINT32
1
[0...8]
Subindex n der Masterachse (Default:-Wert:: 0)
UINT32
1
[0...8]
Subindex n der Slaveachse (Default:-Wert: 0)
UINT32
1
1...255]
Tabellen-ID der Koppeltabelle (Typ: TABULAR)
UINT32
1
Tabellen-Interpolations-Typ
REAL64
mm
±∞
Slave Positions-Offset (Typ: TABULAR)
REAL64
mm
±∞
Master Positions-Offset (Typ: TABULAR)
REAL64
mm
±∞
Slave Positions-Skalierung (Typ: TABULAR)
REAL64
mm
±∞
Master Positions-Skalierung (Typ: TABULAR)
UINT32
1
[0,1]
Slave Positionen absolut ?
(Typ: TABULAR)
UINT32
1
[0,1]
Master Positionen absolut ?
(Typ: TABULAR)
UINT32
ENUM
s. Anhang
Aktivierungstyp der Änderung (NEU)
0: 'instantaneous' (default)
1: 'at master cam position'
2: 'at master axis position'
3: 'next cycle'
REAL64
mm
±∞
Aktivierungsposition (NEU)
UINT32
ENUM
s. Anhang
Master Skalierungstyp (NEU)
0: user defined (default)
1: scaling with auto offset
2: off
UINT32
ENUM
s. Anhang
Slave Skalierungstyp (NEU)
0: user defined (default)
1: scaling with auto offset
2: off
}
0x0000004B
(0x00n0004B)
Write
Master / Slave-Universelle Fliegende Säge (SERVO)
{
Master / Slave Sychronisierungs- Kopplung (SERVO):
UINT32
ENUM
s. Anhang
Slavetyp / Kopplungstyp (s.Anhang)
UINT32
1
[1...255]
Achs-ID der Masterachse
UINT32
1
[0...8]
Subindex n der Masterachse (Default:-Wert:: 0)
UINT32
1
[0...8]
Subindex n der Slaveachse (Default:-Wert: 0)
REAL64
1
±∞ (<> 0.0)
Getriebefaktor
REAL64
mm
±∞
Master Synchronposition
REAL64
mm
±∞
Slave Synchronposition
REAL64
mm/s
≥ 0.0
Slave Geschwindigkeit
(optional)
REAL64
mm/s^2
≥ 0.0
Slave Beschleunigung
(optional)
REAL64
mm/s^2
≥ 0.0
Slave Verzögerung
(optional)
REAL64
mm/s^3
≥ 0.0
Slave Ruck
(optional)
UINT32
1
≥ 0
Bitmaske für Überprüfung und Betriebsarten
(Default-Wert: 0)
}
0x0000004D
(0x00n0004D)
Write
Master / Slave- Tabellen- Kopplung
Typ: TABULAR
und MF
{
Änderung der Tabellen- Skalierung (SERVO):
Auch für MF
Reservierte Funktion,
kein Standard!
UINT32
ENUM
s. Anhang
Aktivierungstyp der Änderung
0: 'instantaneous' (default)
1: 'at master cam position'
2: 'at master axis position'
3: 'next cycle'
REAL64
z.B. mm
±∞
Aktivierungsposition
UINT32
ENUM
s. Anhang
Master Skalierungstyp
0: user defined (default)
1: scaling with auto offset
2: off
UINT32
ENUM
s. Anhang
Slave Skalierungstyp
0: user defined (default)
1: scaling with auto offset
2: off
REAL64
z.B. mm
±∞
Master Positions-Offset
REAL64
z.B. mm
±∞
Slave Positions-Offset
REAL64
1
±∞ (<> 0.0)
Master Positions-Skalierung
REAL64
1
±∞
Slave Positions-Skalierung
}
0x00000050
Write
every
VOID
Deaktiviere komplette Achse (Disable)
0x00000051
Write
every
VOID
Aktiviere komplette Achse (Enable)
0x00000052
Write
SERVO
{
Änderung des aktiven Achsregelkreises (Trippel aus Encoder, Regler und Achsinterfaces) mit/ohne externe Sollwertvorgabe:
UINT32
1
≥ 0
Nummer/Index des Achsregelkreises
(Default -Wert: 0)
UINT32
ENUM
s. Anhang (>0)
Umschalttyp für Auf-
synchronisierungsverhalten
1: 'Standard'
REAL64
1
±∞
Synchronisierungswert für Umschaltung (optional)
UINT32
0/ 1
0/1
Externe Sollwertvorgabe mittels Achsinterface ?
Anmerkung: Wird bisher nicht verwendet!
}
0x00000060
Write
every
VOID
Deaktiviere Drive-Output (Disable)
0x00000061
Write
every
VOID
Aktiviere Drive-Output (Enable)
0x00000062
Write
Eil/Schleich
UINT16
1
0/1
Feststellbremse lösen?
0: automatische Ansteuerung (Default)
1: zwingend immer gelöst!
Anmerkung:
Wird beim Achsreset auf '0' zurückgesetzt!
0x00000070
Write
every
VOID
Rückführung der Achse aus z. B. einer 3D-Gruppe in ihre persönliche PTP-Gruppe


"Index-Offset" Spezifikation für zyklische Achs-Prozessdaten (Index-Group 0x4300 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Achsen [image] "Index-Offset" Spezifikation für zyklische Achs-Prozessdaten (Index-Group 0x4300 + ID)
"Index-Offset" Spezifikation für zyklische Achs-Prozessdaten (Index-Group 0x4300 + ID)
Index-Offset (Hex) | Zugriff | Achs- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00n00000 | Read / Write | every (PLC→NC) | { 128 Byte } |  | STRUCT s. Achs- interface | ACHS-STRUKTUR (PLC→NC) n = 0: Standardinterface der Achse n > 0: n-tes Interface der Achse (optional) | Write-Befehl nur Optional! Sicherheitsaspekte beachten!
0x00n00001 | Read / Write | every (PLC→NC) | UINT32 | 1 | >0 | Steuer - Doppelwort | Write-Befehl nur Optional!
0x00n00002 | Read / Write | every (PLC→NC) | UINT16 | 1 | 0/1 | Reglerfreigabe | Nicht oszilloskopierbar!
0x00n00003 | Read / Write | every (PLC→NC) | UINT16 | 1 | 0/1 | Vorschubfreigabe Plus | Nicht oszilloskopierbar!
0x00n00004 | Read / Write | every (PLC→NC) | UINT16 | 1 | 0/1 | Vorschubfreigabe Minus | Nicht oszilloskopierbar!
0x00n00007 | Read / Write | every (PLC→NC) | UINT16 | 1 | 0/1 | Referenziernocke | Nicht oszilloskopierbar!
0x00n00021 | Read / Write | every (PLC→NC) | UINT32 | % | 0...1000000 | Geschwindigkeitsoverride (1000000 == 100%) | Write-Befehl nur Optional!
0x00n00022 | Read / Write | every (PLC→NC) | UINT32 | 1 | ENUM | Betriebsart Achse | Write-Befehl nur Optional!
0x00n00025 | Read / Write | every (PLC→NC) | REAL64 | z.B. mm |  | Istpositionskorrekturwert (Meßsystemfehlerkorrektur) | Write-Befehl nur Optional!
0x00n00026 | Read / Write | every (PLC→NC) | REAL64 | z.B. mm/s |  | Externer Regleranteil (Lageregleranteil) | Write-Befehl nur Optional!
0x00n00027 | Read / Write | every (PLC→NC) | { |  |  | Externe Sollwertgenerierung | Write-Befehl nur Optional!
 |  |  | REAL64 | z.B. mm | ±∞ | Externe Sollposition
 |  |  | REAL64 | z.B. mm/s | ±∞ | Externe Sollgeschwindigkeit
 |  |  | REAL64 | z.B. mm/s^2 | ±∞ | Externe Sollbeschleuinigung
 |  |  | INT32 | 1 | +1, 0, -1 | Externe Sollfahrrichtung
 |  |  | } |  |  |
0x00n00080 | Read | every (PLC→NC) | { 128 Byte } |  | STRUCT s. Achs- interface | ACHS-STRUKTUR (NC→PLC) n = 0: Standardinterface der Achse n > 0: n-tes Interface der Achse (optional) | NCTOPLC_AXLESTRUCT
0x00n00071 | Read | every (PLC→NC) | UINT8 | 1 | >0 | Status-Doppelwort: Byte 1 |
0x00n00072 | Read | every (PLC→NC) | UINT8 | 1 | >0 | Status-Doppelwort: Byte 2 |
0x00n00073 | Read | every (PLC→NC) | UINT8 | 1 | >0 | Status-Doppelwort: Byte 3 |
0x00n00074 | Read | every (PLC→NC) | UINT8 | 1 | >0 | Status-Doppelwort: Byte 4 |
0x00n00081 | Read | every (PLC→NC) | UINT32 | 1 | >0 | Status-Doppelwort (komplett) |
0x00n00082 | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse ist betriebsbereit | Nicht oszilloskopierbar!
0x00n00083 | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse ist referenziert | Nicht oszilloskopierbar!
0x00n00084 | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse in geschützter Betriebsart (z.B. Slave-Achse) | Nicht oszilloskopierbar!
0x00n00085 | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse in Eilgangsbetriebsart | Nicht oszilloskopierbar!
0x00n00088 | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse hat ungültige IO Daten | Nicht oszilloskopierbar!
0x00n00089 | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse ist im Fehlerzustand | Nicht oszilloskopierbar!
0x00n0008A | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse fährt größer | Nicht oszilloskopierbar!
0x00n0008B | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse fährt kleiner | Nicht oszilloskopierbar!
0x00n0008C | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse ist im logischen Stillstand (es werden nur Sollwerte betrachtet) (Lageregler?) | Nicht oszilloskopierbar!
0x00n0008D | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse ist am Referenzieren | Nicht oszilloskopierbar!
0x00n0008E | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse ist im Positionsbereichsfenster | Nicht oszilloskopierbar!
0x00n0008F | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse ist in Zielposition (Zielposition erreicht) | Nicht oszilloskopierbar!
0x00n00090 | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse hat V-Konst oder Drehzahl | Nicht oszilloskopierbar!
0x00n0009A | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Betriebsart nicht ausgeführt (Busy) | Nicht oszilloskopierbar!
0x00n0009B | Read | every (PLC→NC) | UINT16 | 1 | 0/1 | Achse hat Auftrag / Führt Auftrag aus | Nicht oszilloskopierbar!
0x00n000B1 | Read | every (PLC→NC) | UINT32 | 1 | ≥0 | Fehlercode Achse |
0x00n000B2 | Read | every (PLC→NC) | UINT32 | 1 | ENUM | Bewegungszustand der Achse |
0x00n000B3 | Read | every (PLC→NC) | UINT32 | 1 | ENUM | Betriebsart der Achse (Rück. NC) |
0x00n000B4 | Read | every (PLC→NC) | UINT32 | 1 | ENUM | Referenzierstatus der Achse |
0x00n000B5 | Read | every (PLC→NC) | UINT32 | 1 | ENUM | Koppelstatus der Achse |
0x00n000B6 | Read | every (PLC→NC) | UINT32 | 1 | ≥0 | SVB-Einträge/Aufträge der Achse (PRE-Tabelle) |
0x00n000B7 | Read | every (PLC→NC) | UINT32 | 1 | ≥0 | SAF-Einträge/Aufträge der Achse (EXE-Tabelle) |
0x00n000B8 | Read | every (PLC→NC) | UINT32 | 1 | ≥0 | Achs-ID |
0x00n000B9 | Read | every (PLC→NC) | UINT32 | 1 | ≥0 | Betriebsarten Status-Doppelwort: Bit 0: Positionsbereichsüberwachung aktiv? Bit 1: Zielpositionsfensterüberwachung aktiv? Bit 2: Schleifenweg aktiv? Bit 3: Physikalische Bewegungsüberwachung aktiv? Bit 4: PEH-Zeitüberwachung aktiv? Bit 5: Losekompensation aktiv? Bit 6: NEU: Verzögerte Fehlerreaktion aktiv? Bit 7: NEU: Modulo Betriebsart aktiv (Modulo-Achse)? Bit 16: Schleppabstandüberwachung Pos. aktiv? Bit 17: Schleppabstandüberwachung Gesch. aktiv? Bit 18: Endlagenüberwachung Min. aktiv? Bit 19: Endlagenüberwachung Max. aktiv? Bit 20: Istpositionskorrektur aktiv? |
0x00n000BA | Read | every (PLC→NC) | REAL64 | z.B. mm |  | Istposition (verrechneter Absolutwert) |
0x00n000BB | Read | every (PLC→NC) | REAL64 | z.B. mm |  | Modulo-Istposition |
0x00n000BC | Read | every (PLC→NC) | INT32 | 1 |  | Modulo-Umdrehungen |
0x00n000BD | Read | every (PLC→NC) | REAL64 | z.B. mm/s |  | Istgeschwindigkeit (optional) |
0x00n000BE | Read | every (PLC→NC) | REAL64 | z.B. mm |  | Schleppabstand Position |
0x00n000BF | Read | every (PLC→NC) | REAL64 | z.B. mm |  | Sollposition |
0x00n000C0 | Read | every (PLC→NC) | REAL64 | z.B. mm/s |  | Sollgeschwindigkeit |
0x00n000C1 | Read | every (PLC→NC) | REAL64 | z.B. mm/s^2 |  | Sollbeschleunigung |
0x00n000C2 | Read | every (PLC→NC) | REAL64 |  |  | Reserve 2 |
0x00n000C3 | Read | every (PLC→NC) | REAL64 |  |  | Reserve 3 |
0x00n000C4 | Read | every (PLC→NC) | REAL64 |  |  | Reserve 4 |
0x00n10000 | Read / Write | Encoder: every (NC→IO) | { 12 Byte } |  | STRUCT s. Encoder-interface | ENCODER-OUTPUT-STRUKTUR (NC→IO, 12 Byte) | Write-Befehl nur Optional! Sicherheitsaspekte beachten!
0x00n10000 | Read / Write | Encoder: every (NC→IO) | { 40 Byte } |  | STRUCT s. new Encoder-interface | ENCODER-EXTENDED-OUTPUT-STRUKTUR (new) (NC→IO, 40 Byte) | Write-Befehl nur Optional! Sicherheitsaspekte beachten!
0x00n10080 | Read | Encoder: every (IO→NC) | { 12 Byte } |  | STRUCT s. Encoder-interface | ENCODER-INPUT-STRUKTUR (IO→NC, 12 Byte) |
0x00n10080 | Read | Encoder: every (IO→NC) | { 40 Byte } |  | STRUCT s. new Encoder-interface | ENCODER-EXTENDED-INPUT-STRUKTUR (new) (IO→NC, 40 Byte) |
0x00n30000 | Read / Write | Drive: every (NC→IO) | { 12 Byte } |  | STRUCT s. Drive- interface | DRIVE-OUTPUT-STRUKTUR (NC→IO, 12 Byte) | Write-Befehl nur Optional! Sicherheitsaspekte beachten!
0x00n30000 | Read / Write | Drive: every (NC→IO) | { 40 Byte } |  | STRUCT s. new Drive-interface | DRIVE-EXTENDED-OUTPUT-STRUKTUR (new) (NC→IO, 40 Byte) | Write-Befehl nur Optional! Sicherheitsaspekte beachten!
0x00n30080 | Read | Drive: every (IO→NC) | { 12 Byte } |  | STRUCT s. Drive-interface | DRIVE-INPUT-STRUKTUR (NC→IO, 12 Byte) |
0x00n30080 | Read | Drive: every (IO→NC) | { 40 Byte } |  | STRUCT s. new Drive-interface | DRIVE-EXTENDED-INPUT-STRUKTUR (new) (NC→IO, 40 Byte) |


Spezifikation Encoder

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Encoder
Spezifikation Encoder
Weiterführende Informationen
•
"Index-Offset" Spezifikation für Encoder-Parameter (Index-Group 0x5000 + ID)
•
"Index-Offset" Spezifikation für Encoder-Zustand (Index-Group 0x5100 + ID)
•
"Index-Offset" Spezifikation für Encoder-Funktionen (Index-Group 0x5200 + ID)
•
"Index-Offset" Spezifikation für zyklische Encoder-Prozessdaten (Index-Group 0x5300 + ID)


"Index-Offset" Spezifikation für Encoder-Parameter (Index-Group 0x5000 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Encoder [image] "Index-Offset" Spezifikation für Encoder-Parameter (Index-Group 0x5000 + ID)
"Index-Offset" Spezifikation für Encoder-Parameter (Index-Group 0x5000 + ID)
Index-Offset
(Hex)
Zugriff
Gruppen-
typ
Daten-
typ
Phys.
Einheit
Definitions-
bereich
Beschreibung
Anmerkung
0x00000001
Read
every
UINT32
1
[1 ... 255]
Encoder-ID
0x00000002
Read
every
UINT8[30+1]
1
30 Zeichen
Encoder-Name
0x00000003
Read
every
UINT32
1
s. ENUM (>0)
Encoder-Typ
0x00000004
Read / Write
every
UINT32
1
Byteoffset
Input-Adress-Offset (IO-Input-Image)
Änderung der IO-Adresse
0x00000005
Read / Write
every
UINT32
1
Byteoffset
Output-Adresse-Offset (IO-Output-Image)
Änderung der IO-Adresse
0x00000006
Read / Write
every
REAL64
z.B. mm/INC
[1.0E-12 ... 1.0E+30]
Resultierender Skalierungsfaktor (Zähler / Nenner)

Anm.: ab TC 3.0 besteht der Skalierungsfaktor aus zwei Komponenten, Zähler und Nenner (Default: 1.0).
0x00000007
Read / Write
every
REAL64
z.B. mm
[±1.0E+9]
Positionsoffset
0x00000008
Read / Write
every
UINT16
1
[0,1]
Geberzählrichtung
0x00000009
Read / Write
every
REAL64
z.B. mm
[0.001 ... 1.0E+9]
Modulo-Faktor
0x0000000A
Read / Write
every
UINT32
1
s. ENUM (>0)
Encoder Modus
s. Anhang
0x0000000B
Read / Write
every
UINT16
1
0/1
Softend-Min-Überwachung?
0x0000000C
Read / Write
every
UINT16
1
0/1
Softend-Max-Überwachung?
0x0000000D
Read / Write
every
REAL64
mm
Softendlage Min
0x0000000E
Read / Write
every
REAL64
mm
Softendlage Max
0x0000000F
Read / Write
every
UINT32
1
s. ENUM (≥0)
Encoder Auswerterichtung (Freigabe log. Zählrichtung)
s. Anhang
0x00000010
Read / Write
every
REAL64
s
[0.0...60.0]
Filterzeit fuer Positionsistwert in Sekunden(P-T1)
0x00000011
Read / Write
every
REAL64
s
[0.0...60.0]
Filterzeit fuer Geschwindigkeitsistwert in Sekunden (P-T1)
0x00000012
Read / Write
every
REAL64
s
[0.0...60.0]
Filterzeit fuer Beschleunigungsistwert in Sekunden (P-T1)
0x00000013
Read / Write
every
UINT8[10+1]
1
Physikalische Einheit
Nicht implementiert!
0x00000014
Read / Write
every
UINT32
1
Interpretation der Einheiten (Position, Geschwindigkeit, Zeit)
Bit 0: Geschwindigkeit in x/min statt x/s
Bit 1: Position in tausendstel der Basiseinheit
Nicht implementiert!
Bitarray
0x00000015
Read
every
UINT32
INC
[0x0...
0xFFFFFFFF]
Geber-Maske (Maximalwert des Geber-Istwertes in Inkrementen)

Anm.: Ab TwinCAT 2.11 R2 darf die Geber-Maske ein beliebiger Zahlenwert sein (z.B. 3600000) und muss nicht mehr wie bisher einer durchgehende Folge von binären Einsen entsprechen (2n-1).
ReadOnly-Parameter

s.a. Param. "Geber-Sub-Maske"
0x00000016
Read / Write
every
UINT16
1
0/1
Istpositionskorrektur (Meßsystemfehlerkorrektur)?
0x00000017
Read / Write
every
REAL64
s
[0.0...60.0]
Filterzeit für Istpositionskorrektur in Sekunden (P-T1)
0x00000018
Read / Write
every
UINT32
1
[0x0...
0xFFFFFFFF]
Filtermaske für rohen Inkrementalwert
(0x0: voller Durchlass )
0x00000019
Read / Write
every
UINT32
1
s. ENUM (≥0)
Encoder Bezugsmaßsystem
s. Anhang
0x0000001A
Read / Write
every
UINT32
1
s. ENUM (≥0)
EncoderPositionsinitialisierung
Nicht implementiert!
0x0000001B
Read / Write
every
REAL64
z.B. mm
[≥0, Modulo-Faktor/2]
Toleranzfenster für Modulo-Start
0x0000001C
Read
every
UINT32
1
s. ENUM (≥0)
Encoder Vorzeichen-Interpretation (Datentyp)
0x0000001D
Read
every
UINT16
1
0/1
Inkremental- oder Absolut-Encoder ?
0: Inkrementaler Encoder-Typ
1: Absoluter Encoder-Typ
0x00000020
Read / Write
every
UINT32
1
s. ENUM (≥0)
Encoder Totzeitkompensations Modus
0: Aus (Default)
1: Ein (mittels Geschwindigkeit)
2: Ein (mittels Geschwindigkeit und Beschleunigung)
0x00000021
Read / Write
every
UINT32
1
Steuerdoppelwort (32 Bits) für die Encoder Totzeitkompensation:
Bit 0 = 0: relative IO Zeiten (Default)
Bit 0 = 1: absolute IO Zeiten
0x00000022
Read / Write
every
INT32
ns
[±1.0E+9]
Summe der parametrierten zeitlichen Verschiebung für die Encoder Totzeitkompensation (typischerweise positive Zahlenwerte)
0x00000023
Read / Write
every
REAL64
z.B. mm/INC
[1.0E-12 ... 1.0E+30]
Komponente des Skalierungsfaktors: Zähler
(=> Skalierungsfaktor Zähler / Skalierungsfaktor Nenner)
ab
TC 3.0
0x00000024
Read / Write
every
REAL64
1
[1.0E-12 ... 1.0E+30]
Komponente des Skalierungsfaktors: Nenner
(=> Skalierungsfaktor Zähler / Skalierungsfaktor Nenner)
Default: 1.0
ab
TC 3.0
0x00000025
Read / Write
every
{
REAL64
REAL64
} 16 bytes

z.B. mm/INC
1

[1.0E-12 ... 1.0E+30]
[1.0E-12 ... 1.0E+30]

Komponente des Skalierungsfaktors: Zähler
Komponente des Skalierungsfaktors: Nenner
(=> Skalierungsfaktor Zähler / Skalierungsfaktor Nenner)
ab
TC 3.0
0x00000030
Read / Write
every
UINT32
1
Internes Encoder Control Doppelwort zur Festlegung der Betriebsarten und Eigenschaften
ab 211R3 B2227
0x00000101
Read / Write
INC
UINT16
1
[0,1]
Suchrichtung für Ref.nocken invers?
0x00000102
Read / Write
INC
1
[0,1]
Suchrichtung für Syncimpuls invers?
0x00000103
Read / Write
INC
REAL64
z.B. mm
[±1.0E+9]
Referenzposition
0x00000104
Read / Write
INC
UINT16
1
[0,1]
Abstandsüberwachung zwischen Ref.nocken und Syncimpuls aktiv?
Nicht implementiert!
0x00000105
Read / Write
INC
UINT32
INC
[0 ...65536]
Mindestabstand Ref.nocken zum Syncimpuls in Inkrementen
Nicht implementiert!
0x00000106
Read / Write
INC
UINT16
1
[0,1]
Externer Syncimpuls?
0x00000107
Read / Write
INC
UINT32
1
s. ENUM (>0)
Referenzier Modus
s. Anhang
0x00000108
Read / Write
INC
UINT32
1
[0x0000000F...
0xFFFFFFFF]
Binärmaske: (2n - 1)
Geber-Sub-Maske (Maximalwert des Absolutbereichs des Geber-Istwertes in Inkrementen)
Wird z.B. verwendet als Referenzmarke für den Referenzier Mode "Software Sync" und für die NC Retain Daten("ABSOLUTE (MODULO)", "INCREMENTAL (SINGLETURN ABSOLUTE)" ).

Anm.1: Die Geber-Sub-Maske muss kleiner gleich der Geber-Maske sein.
Anm.2: Die Geber-Maske muss ein ganzzahliges Vielfaches der Geber-Sub-Maske sein.
Anm.3: Die Geber-Sub-Maske muss einer durchgehenden Folge von binären Einsen entsprechen (2n-1), z.B. 0x000FFFFF.
s.a. Param. "Geber-Maske"
0x00000110
Read / Write
INC (Encoder- Simulation)
REAL64
1
[0.0 ... 1000000.0]
Skalierung/Gewichtung des Rauschanteils für Simulationsencoder


"Index-Offset" Spezifikation für Encoder-Zustand (Index-Group 0x5100 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Encoder [image] "Index-Offset" Spezifikation für Encoder-Zustand (Index-Group 0x5100 + ID)
"Index-Offset" Spezifikation für Encoder-Zustand (Index-Group 0x5100 + ID)
Index-Offset (Hex) | Zugriff | Gruppen- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | every | INT32 |  |  | Fehlerstatus Encoder |
0x00000002 | Read | every | REAL64 |  |  | Istposition (verrechnet mit Istpositionskorrekturwert) | Symbolischer Zugriff möglich! 'fPosIst'
0x00000003 | Read | every | REAL64 |  |  | Modulo-Istposition | Symbolischer Zugriff möglich! 'FModuloPosIst'
0x00000004 | Read | every | INT32 |  |  | Modulo-Istumdrehung | Symbolischer Zugriff möglich! 'nModuloTurns'
0x00000005 | Read | every | REAL64 |  |  | Optional: Istgeschwindigkeit | Base Unit / s Symbolischer Zugriff möglich! 'fVeloIst'
0x00000006 | Read | every | REAL64 |  |  | Optional: Istbeschleunigung | Base Unit / s^2 Symbolischer Zugriff möglich! 'fAccIst'
0x00000007 | Read | every | INT32 |  |  | Geber-Istinkremente | Symbolischer Zugriff möglich! 'nHardIncs'
0x00000008 | Read | every | INT64 |  |  | Software-Istinkrementalzähler | Symbolischer Zugriff möglich! 'nSoftIncs'
0x00000009 | Read / Write | every | UINT16 |  |  | Referenzierflag ("Eichflag") |
0x0000000A | Read | every | REAL64 |  |  | Istpositionskorrekturwert (Meßsystemfehlerkorrektur) |
0x0000000B | Read | every | REAL64 |  |  | Istposition ohne Istpositionskorrekturwert |
0x0000000C | Read | every | REAL64 | z.B. mm |  | Istpositionskorrekturwert aufgrund der Totzeitkompensation |
0x0000000D | Read | every | REAL64 | s |  | Summe der zeitlichen Verschiebung für Encoder Totzeitkompensation (parametrierte und variable Totzeit) Anm.: Eine Totzeit wird im System als positiver Wert angegeben. |
0x0000000E | Read | every | REAL64 | z.B. mm |  | Interner Positionsoffset als Korrekturwert für eine Wertereduktion auf die Grundperiode (Modulobereich) |
0x00000010 | Read | every | REAL64 | z.B. mm/s |  | Istgeschwindigkeitohne Istpositionskorrekturwert |
0x00000012 | Read | every | REAL64 | z.B. mm |  | Ungefilterte Istposition (verrechnet mit Istpositionskorrekturwert) |
0x00000015 | Read | every | REAL64 | z.B. mm/s |  | Optional: Ungefilterte Istgeschwindigkeit | Base Unit / s
0x00000016 | Read | every | READ (16 byte * N) |  |  | Lesen des Istpositions-Puffer | ab TC 2.11 R3
 |  |  | { |  |  |
 |  |  | UINT32 | ns | ≥0 | Zeitstempel (DcTimeStamp mit 32 Bit)
 |  |  | UINT32 |  |  | Reserve
 |  |  | REAL64 | z.B. mm | ±∞ | Istposition zum zugehörigen DC-Zeitstempel
 |  |  | } [N] |  |  |
0x00000101 | Read | INC | REAL64 | z.B. mm |  | Rücklesen der Positionsdifferenz zwischen Aktivieren und Gültig werden des Hardwarelatches | Nicht oszilloskopierbar!
0x00000200 | Read Write | function group "TouchProbeV2": - SERCOS (SoE), - EtherCAT (CANopen DS402) - SoftDrive (TCom) | WRITE (24 byte) |  |  | read "Touch Probe" state (state of external latch) | TC 2.11 Build 1547 only for SAF-port 501
 |  |  | { |  |  |
 |  |  | UINT32 | 1 | [1,2,3,4] | probe unit (probe 1, 2, 3, 4)
 |  |  | UINT32[5] |  |  | reserved
 |  |  | } |  |  |
 |  |  | READ (64 byte) |  |  |
 |  |  | { |  |  |
 |  |  | UINT32 | 1 | [0/1] | touch probe rising edge active?
 |  |  | UINT32 | 1 | [0/1] | touch probe rising edge became valid?
 |  |  | REAL64 | e.g. mm |  | touch probe rising edge position value
 |  |  | UINT32 | 1 | ≥0 | touch probe rising edge counter (continuous mode)
 |  |  | UINT32 |  |  | reserved
 |  |  | UINT32 | 1 | [0/1] | touch probe falling edge active?
 |  |  | UINT32 | 1 | [0/1] | touch probe falling edge became valid?
 |  |  | REAL64 | e.g. mm |  | touch probe falling edge position value
 |  |  | UINT32 | 1 | ≥0 | touch probe falling edge counter (continuous mode)
 |  |  | UINT32[5] |  |  | reserved
 |  |  | } |  |  |
0x00000201 | Read | KL5101, SERCOS, AX2xxx, ProviDrive | UINT16 | 1 | [0,1] | "Externe Latch Funktion" aktiv ? bzw. "Messtasterfunktion" aktiv ? (flankenunabhängig) | Nicht oszilloskopierbar!
0x00000201 | Read | CANopen | UINT32[4] | 1 | [0,1] | "Externe Latch Funktionen 1 bis 4" aktiv ? bzw. "Messtasterfunktionen 1 bis 4" aktiv ? | Nicht oszilloskopierbar!
0x00000202 | Read | KL5101, SERCOS, AX2xxx, ProviDrive | UINT16 | 1 | [0,1] | Externer Latchwert gültig geworden? bzw. Messtaster gelatcht ? (flankenunabhängig) | s. a. Achsinterface NcToPlc (Statusdoppelwort)
0x00000202 | Read | CANopen | UINT32[4] | 1 | [0,1] | Externe Latchwerte 1 bis 4 gültig geworden? bzw. Messtaster 1 bis 4 gelatcht ? | s. a. Achsinterface NcToPlc (Statusdoppelwort)
0x00000203 | Read | KL5101, SERCOS, AX2xxx, ProviDrive | UINT32 | INC |  | Externer / Messtaster Hardwareinkrementallatchwert |
0x00000204 | Read | KL5101, SERCOS, AX2xxx, ProviDrive | UINT64 | INC |  | Externer / Messtaster Softwareinkrementallatchwert |
0x00000205 | Read | KL5101, SERCOS, AX2xxx, ProviDrive | REAL64 | z.B. mm |  | Externer / Messtaster Positionslatchwert | Base Unit
0x00000205 | Read | CANopen | REAL64[4] | z.B. mm |  | Externe Messtasterwerte / Positionslatchwerte | Base Unit
0x00000206 | Read | KL5101, SERCOS, AX2xxx, ProviDrive | UINT32 | INC |  | Differenz Hardwareinkrementallatchwerte (NewLatch - LastLatch) | Nicht oszilloskopierbar!
0x00000207 | Read | KL5101, SERCOS, AX2xxx, ProviDrive | UINT64 | INC |  | Differenz Softwareinkrementallatchwerte (NewLatch - LastLatch) | Nicht oszilloskopierbar!
0x00000208 | Read | KL5101, SERCOS, AX2xxx, ProviDrive | REAL64 | z.B. mm |  | Differenz Positionslatchwerte (NewLatch - LastLatch) | Nicht oszilloskopierbar! Base Unit
0x00000210 | Read | KL5101, AX2xxx, ProviDrive | UINT16 | 1 | [0,1] | "Externe Latch Funktion" für steigende Flanke aktiv ? bzw. "Meßtasterfunktion" für steigende Flanke aktiv ? | Erweiterung für KL5101 (3E), AX2xxx (3.51) und ProviDrive (3.1) Nicht oszilloskopierbar!
0x00000210 | Read | CANopen | UINT16[4] | 1 | [0,1] | "Externe Latch Funktion" für steigende Flanke aktiv ? bzw. "Meßtasterfunktion" für steigende Flanke aktiv ? | Nicht oszilloskopierbar!
0x00000211 | Read | KL5101, AX2xxx, ProviDrive | UINT16 | 1 | [0,1] | "Externe Latch Funktion" für fallende Flanke aktiv ? bzw. "Meßtasterfunktion" für fallende Flanke aktiv ? | Erweiterung für KL5101 (3E), AX2xxx (3.51) und ProviDrive (3.1) Nicht oszilloskopierbar!
0x00000211 | Read | CANopen | UINT16[4] | 1 | [0,1] | "Externe Latch Funktion" für fallende Flanke aktiv ? bzw. "Messtasterfunktion" für fallende Flanke aktiv ? | Nicht oszilloskopierbar!


"Index-Offset" Spezifikation für Encoder-Funktionen (Index-Group 0x5200 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Encoder [image] "Index-Offset" Spezifikation für Encoder-Funktionen (Index-Group 0x5200 + ID)
"Index-Offset" Spezifikation für Encoder-Funktionen (Index-Group 0x5200 + ID)
Index-Offset (Hex) | Zugriff | Gruppen- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x0000001A | Write | every | { |  |  | Setze Istposition Encoder/Achse | Base Unit
 |  |  | UINT32 | ENUM | s. Anhang | Istpositionstyp (s.Anhang)
 |  |  | REAL64 | mm | ±∞ | Istposition für Encoder/Achse Vorsicht bei Benutzung !
 |  |  | } |  |  |
0x00000200 | Write | function group "TouchProbeV2": - SERCOS (SoE), - EtherCAT (CANopen DS402) - SoftDrive (TCom) | { |  |  | activate "Touch Probe" (external latch) | ab TC 2.11 Build 1547 only for SAF-port 501
 |  |  | UINT32 | 1 | [1,2,3,4] | probe unit (probe 1, 2, 3, 4)
 |  |  | UINT32 | 1 | [0,1] | signal edge (0=rising edge, 1=falling edge)
 |  |  | UINT32 | 1 | [1,2] | probe mode (1=single, 2=continuous, ...)
 |  |  | UINT32 |  |  | reserved (e.g. signal source)
 |  |  | UINT32 |  |  | reserved
 |  |  | UINT32 |  |  | reserved
 |  |  | } 24 bytes |  |  |
0x00000201 | Write | KL5101, SERCOS, AX2xxx, PROFIDrive | VOID |  |  | Aktiviere "Externes Latch" bzw. Aktiviere "Messtasterfunktion" (typischerweise steigende Flanke) |
0x00000201 | Write | CANopen | UINT32[4] |  |  | Aktiviere "Externes Latch" 1 bis 4 bzw. Aktiviere "Messtasterfunktion" 1 bis 4 (typischerweise steigende Flanke) |
0x00000202 | Write | KL5101, AX2xxx, PROFIDrive | VOID |  |  | Aktiviere "Externes Latch" bzw. Aktiviere "Messtasterfunktion" (fallende Flanke) |
0x00000202 | Write | CANopen | UINT32[4] |  |  | Aktiviere "Externes Latch" 1 bis 4 bzw. Aktiviere "Messtasterfunktion" 1 bis 4 (fallende Flanke) |
0x00000205 | Write | function group "TouchProbeV2": - SERCOS (SoE), - EtherCAT (CANopen DS402) - SoftDrive (TCom) | { |  |  | deactivate "Touch Probe" (external latch) | ab TC 2.11 Build 1547 only for SAF-port 501
 |  |  | UINT32 | 1 | [1,2,3,4] | probe unit (probe 1, 2, 3, 4)
 |  |  | UINT32 | 1 | [0,1] | signal edge (0=rising edge, 1=falling edge)
 |  |  | UINT32 |  |  | reserved
 |  |  | UINT32 |  |  | reserved
 |  |  | UINT32 |  |  | reserved
 |  |  | UINT32 |  |  | reserved
 |  |  | } 24 byte |  |  |
0x00000205 | Write | KL5101, SERCOS, AX2xxx, PROFIDrive | VOID |  |  | Deaktiviere "Externes Latch" bzw. Deaktiviere "Messtasterfunktion" |
0x00000205 | Write | CANopen | UINT32[4] |  |  | Deaktiviere "Externes Latch" bzw. Deaktiviere "Messtasterfunktion" |
0x00000210 | Write | KL5101, SERCOS, AX2xxx, PROFIDrive | REAL64 | z.B. mm | ±∞ | Setze "Externes Latch Ereignis" und "Externe Latchposition" | Nur für Simulation !


"Index-Offset" Spezifikation für zyklische Encoder-Prozessdaten (Index-Group 0x5300 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Encoder [image] "Index-Offset" Spezifikation für zyklische Encoder-Prozessdaten (Index-Group 0x5300 + ID)
"Index-Offset" Spezifikation für zyklische Encoder-Prozessdaten (Index-Group 0x5300 + ID)
Index-Offset (Hex) | Zugriff | Gruppen- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000000 | Read / Write | every (NC→IO) | { |  | STRUCT s. Encoder-Interface bzw. s. erweitertes Encoder-Interface | ENCODER-OUTPUT-STRUKTUR (NC→IO, 12 Byte) bzw. optional ENCODER-OUTPUT-STRUKTUR (NC→IO, 40 Byte) | Write-Befehl nur Optional! Sicherheitsaspekte beachten!
 |  |  | INT32 | INC | ≥ 0 | nOutData1
 |  |  | INT32 | INC | ≥ 0 | nOutData2
 |  |  | UINT8 | 1 | ≥ 0 | nControl1
 |  |  | UINT8 | 1 | ≥ 0 | nControl2
 |  |  | UINT8 | 1 | ≥ 0 | nControl3
 |  |  | UINT8 | 1 | ≥ 0 | nControl4
 |  |  | Optional: |  |  |
 |  |  | INT32 | INC | ≥ 0 | nOutData3
 |  |  | INT32 | INC | ≥ 0 | nOutData4
 |  |  | INT32 | INC | ≥ 0 | nOutData5
 |  |  | INT32 | INC | ≥ 0 | nOutData6
 |  |  | UINT8 | 1 | ≥ 0 | nControl5
 |  |  | UINT8 | 1 | ≥ 0 | nControl6
 |  |  | UINT8 | 1 | ≥ 0 | nControl7
 |  |  | UINT8 | 1 | ≥ 0 | nControl8
 |  |  | INT32 |  | ≥ 0 | reserviert
 |  |  | INT32 |  | ≥ 0 | reserviert
 |  |  | } |  |  |
0x00000080 | Write | every (IO→NC) | { |  | STRUCT s. Encoder-Interface bzw. s. erweitertes Encoder-Interface | ENCODER-INPUT-STRUKTUR (IO→NC, 12 Byte) bzw.optional ENCODER-INPUT-STRUKTUR (IO→NC, 40 Byte) |
 |  |  | INT32 | INC | ≥ 0 | nInData1
 |  |  | INT32 | INC | ≥ 0 | nInData2
 |  |  | UINT8 | 1 | ≥ 0 | nStatus1
 |  |  | UINT8 | 1 | ≥ 0 | nStatus2
 |  |  | UINT8 | 1 | ≥ 0 | nStatus3
 |  |  | UINT8 | 1 | ≥ 0 | nStatus4
 |  |  | Optional: |  |  |
 |  |  | INT32 | INC | ≥ 0 | nInData3
 |  |  | INT32 | INC | ≥ 0 | nInData4
 |  |  | INT32 | INC | ≥ 0 | nInData5
 |  |  | INT32 | INC | ≥ 0 | nInData6
 |  |  | UINT8 | 1 | ≥ 0 | nStatus5
 |  |  | UINT8 | 1 | ≥ 0 | nStatus6
 |  |  | UINT8 | 1 | ≥ 0 | nStatus7
 |  |  | UINT8 | 1 | ≥ 0 | nStatus8
 |  |  | INT32 |  | ≥ 0 | reserviert
 |  |  | INT32 |  | ≥ 0 | reserviert
 |  |  | } |  |  |


Spezifikation Regler

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Regler
Spezifikation Regler
Weiterführende Informationen
•
"Index-Offset" Spezifikation für Regler-Parameter (Index-Group 0x6000 + ID)
•
"Index-Offset" Spezifikation für Regler-Zustand (Index-Group 0x6100 + ID)
•
"Index-Offset" Spezifikation für Regler-Funktionen (Index-Group 0x6200+ ID)


"Index-Offset" Spezifikation für Regler-Parameter (Index-Group 0x6000 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Regler [image] "Index-Offset" Spezifikation für Regler-Parameter (Index-Group 0x6000 + ID)
"Index-Offset" Spezifikation für Regler-Parameter (Index-Group 0x6000 + ID)
Index-Offset (Hex) | Zugriff | Regler- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | every | UINT32 | 1 | [1 ... 255] | Regler ID |
0x00000002 | Read | every | UINT8[30+1] | 1 | 30 Zeichen | Regler-Name |
0x00000003 | Read | every | UINT32 | 1 | s. ENUM (>0) | Regler-Typ |
0x0000000A | Read / Write | every | UINT32 | 1 | s. ENUM (>0) | Regler-Modus |
0x0000000B | Read / Write | every | REAL64 | % | [0.0 ... 1.0] | Gewichtung der Geschwindigkeitsvorsteuerung (Standardwert: 1.0 == 100%) |
0x00000010 | Read / Write | every | UINT16 | 1 | 0/1 | Schleppabstandüberw. Pos.? |
0x00000011 | Read / Write | every | UINT16 | 1 | 0/1 | Schleppabstandüberw. Geschw.? |
0x00000012 | Read / Write | every | REAL64 | mm |  | Max. Schleppabstand Position |
0x00000013 | Read / Write | every | REAL64 | s |  | Max. Schleppfilterzeit Position |
0x00000014 | Read / Write | every | REAL64 | mm/s |  | Max. Schleppabstand Geschw. |
0x00000015 | Read / Write | every | REAL64 | s |  | Max. Schleppfilterzeit Geschw. |
0x00000021 | Read / Write | every | REAL64 | 1 | [0.0...1000000.0] | Skalierungsfaktor (Multiplikator) für Differenz der Schleppabstände zwischen Master und Slaveachse (Umrechnung in das selbe Koordinatensytem des Masters) | Reservierte Funktion, kein Standard!
0x00000100 | Read / Write | P/PID (Pos., (Geschw.) | REAL64 | 1 | [0.0...1.0] | Maximale Ausgabebegrenzung (±) für Regler-Gesamtausgabe | (Standardwert: 0.5 == 50%)
0x00000102 | Read / Write | P/PID (Pos.) | REAL64 | (mm/s) / mm | [0.0...1000.0] | Proportionalverstärkung kp bzw. kv | Base Unit / s / Base Unit Positionsregelung
0x00000103 | Read / Write | PID (Pos.) | REAL64 | s | [0.0 ... 60.0] | Nachstellzeit Tn | Positionsregelung
0x00000104 | Read / Write | PID (Pos.) | REAL64 | s | [0.0 ... 60.0] | Vorhaltzeit Tv | Positionsregelung
0x00000105 | Read / Write | PID (Pos.) | REAL64 | s | [0.0 ... 60.0] | Verzögerungszeit Td | Positionsregelung
0x00000106 | Read / Write | PP (Pos.) | REAL64 | (mm/s) / mm | [0.0...1000.0] | Zusätzlicher Proportionalverstärkung kp bzw. kv, die oberhalb einer Grenzgeschwindigkeit in Prozent gilt. | Base Unit / s / Base Unit Positionsregelung
0x00000107 | Read / Write | PP (Pos.) | REAL64 | % | [0.0...1.0] | Schwellgeschwindigkeit in Prozent, oberhalb derer die zusätzliche Proportionalverstärkung kp bzw. kv gilt | (Standardwert: 0.01 == 1%)
0x00000108 | Read / Write | P/PID (Acc.) | REAL64 | s | [0.0 ... 100.0] | Proportionalverstärkung ka | Beschleunigungs- vorsteuerung
0x0000010A | Read / Write | every | UINT32 | 1 | ENUM | Filter für Maximalsteigung der Sollgeschwindigkeit (beschleunigungsbegrenzt): 0: Off, 1: Velo, 2: Pos+Velo | Reservierte Funktion, kein Standard!
0x0000010B | Read / Write | every | REAL64 | mm/s^2 |  | Filterwert für die Maximalsteigung der Sollgeschwindigkeit (Maximalbeschleunigung) | Reservierte Funktion, kein Standard!
0x0000010D | Read / Write | P/PID | REAL64 | mm | [0.0 ... 10000.0] | Totzone ("dead band") für Positionsfehler (Regelabweichung) (für P/PID-Regler mit Geschwindigkeits- oder Momenteninterface) | Reservierte Funktion
0x0000010F | Read / Write | P/PP/PID (Pos.) Slave-Regelung | REAL64 | (mm/s) / mm | [0.0...1000.0] | Slave-Koppeldifferenzregelung: Proportionalverstärkung kcp | Slave-Koppeldifferenzregelung
0x00000110 | Read / Write | P (Pos.) | UINT16 | 1 | 0/1 | Automatischer Offsetabgleich: aktiv/passiv |
0x00000111 | Read / Write | P (Pos.) | UINT16 | 1 | 0/1 | Automatischer Offsetabgleich: Halte-Modus |
0x00000112 | Read / Write | P (Pos.) | UINT16 | 1 | 0/1 | Automatischer Offsetabgleich: Fading-Modus |
0x00000114 | Read / Write | P (Pos.) | REAL64 | % | [0.0 ... 1.0] | Automatischer Offsetabgleich: Vorsteuer-Grenze | (Standardwert: 0.05 == 5%)
0x00000115 | Read / Write | P (Pos.) | REAL64 | s | [0.1 ... 60.0] | Automatischer Offsetabgleich: Zeitkonstante |
0x00000116 | Read / Write | PID (Pos.) | REAL64 | % | [0.0...1.0] | Maximale Ausgabebeschränkung (±) für I-Anteil in Prozent (Defaulteinstellung: 0.1 == 10%) |
0x00000117 | Read / Write | PID (Pos.) | REAL64 | % | [0.0...1.0] | Maximale Ausgabebeschränkung (±) für D-Anteil in Prozent (Defaulteinstellung: 0.1 == 10%) |
0x00000118 | Read / Write | PID (Pos.) | UINT16 | 1 | 0/1 | Abschalten des I-Anteils während eines aktiven Positioniervorganges (sofern I-Anteil aktiv)? (Defaulteinstellung: 0 = FALSE) |
0x00000120 | Read / Write | PID (Pos.) | REAL64 | s | ≥0 | PT-1 Filterwert für Positionsfehler (Pos.-Regeldifferenz) | Reservierte Funktion, kein Standard!
0x00000202 | Read / Write | P/PID (Geschw.) | REAL64 | 1 | [0.0...1000.0] | Proportionalverstärkung kp bzw. kv | Geschwindigkeits- regelung
0x00000203 | Read / Write | PID (Geschw.) | REAL64 | s | [0.0 ... 60.0] | Nachstellzeit Tn | Geschwindigkeits- regelung
0x00000204 | Read / Write | PID (Geschw.) | REAL64 | s | [0.0 ... 60.0] | Vorhaltzeit Tv | Geschwindigkeits- regelung
0x00000205 | Read / Write | PID (Geschw.) | REAL64 | s | [0.0 ... 60.0] | Verzögerungszeit Td | Geschwindigkeits- regelung
0x00000206 | Read / Write | PID (Geschw.) | REAL64 | % | [0.0...1.0] | Maximale Ausgabebeschränkung (±) fuer I-Anteil in Prozent (Defaulteinstellung: 0.1 == 10%) | Geschwindigkeits- regelung
0x00000207 | Read / Write | PID (Geschw.) | REAL64 | % | [0.0...1.0] | Maximale Ausgabebeschränkung (±) fuer D-Anteil in Prozent (Defaulteinstellung: 0.1 == 10%) | Geschwindigkeits- regelung
0x0000020D | Read / Write | P/PID (Geschw.) | REAL64 | mm/s | [0.0 ... 10000.0] | Totzone ("dead band") für Geschwindigkeitsfehler (Regelabweichung) (für P/PID-Regler mit Geschwindigkeits- oder Momenteninterface) | Reservierte Funktion
0x00000220 | Read / Write | P/PID (Geschw.) | REAL64 | s | ≥0 | PT-2 Filterwert für Geschwindigkeitsfehler (Geschw.-Regeldifferenz) | Geschwindigkeits- regelung, kein Standard!
0x00000221 | Read / Write | P/PID (Geschw.) | REAL64 | s | ≥0 | PT-1 Filterwert für Geschwindigkeitsfehler (Geschw.-Regeldifferenz) | Reservierte Funktion, kein Standard!
0x00000250 | Read / Write | P/PI (Beobachter) | UINT32 | 1 | s. ENUM (≥0) | Beobachter-Modus für Regelung im Momenten-Interface 0: OFF (default) 1: LUENBERGER | ab TC 2.10 Build 1320
0x00000251 | Read / Write | P/PI (Beobachter) | REAL64 | Nm / A | >0.0 | Motor: Drehmomentkonstante KT |
0x00000252 | Read / Write | P/PI (Beobachter) | REAL64 | kg m2 | >0.0 | Motor: Trägheitsmoment JM |
0x00000253 | Read / Write | P/PI (Beobachter) | REAL64 | Hz | [100.0 ... 2000.0] Default: 500 | Bandbreite f0 |
0x00000254 | Read / Write | P/PI (Beobachter) | REAL64 | 1 | [0.0 ... 2.0] Default: 1.0 | Korrekturfaktor kc |
0x00000255 | Read / Write | P/PI (Beobachter) | REAL64 | s | [0.0 ... 0.01] Default: 0.001 | Geschwindkeits-Filter (1. Ordnung): Zeitkonstante T |
0x00000A03 | Read / Write | PID (MW) | REAL64 | cm^2 | [0.0 ...1000000] | Zylinderfläche AA der A-Seite in cm^2 |
0x00000A04 | Read / Write | PID (MW) | REAL64 | cm^2 | [0.0 ...1000000] | Zylinderfläche AB der B-Seite in cm^2 |
0x00000A05 | Read / Write | PID (MW) | REAL64 | cm^3/s | [0.0 ...1000000] | Nennvolumenstrom Qnenn in cm^3/s |
0x00000A06 | Read / Write | PID (MW) | REAL64 | bar | [0.0 ...1000000] | Nenndruck bzw. Ventildruckabfall Pnenn in bar |
0x00000A07 | Read / Write | PID (MW) | UINT32 | 1 | [1 ... 255] | Achs-ID für den Systemdruck Po |


"Index-Offset" Spezifikation für Regler-Zustand (Index-Group 0x6100 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Regler [image] "Index-Offset" Spezifikation für Regler-Zustand (Index-Group 0x6100 + ID)
"Index-Offset" Spezifikation für Regler-Zustand (Index-Group 0x6100 + ID)
Index-Offset (Hex) | Zugriff | Regler- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | every | INT32 |  |  | Fehlerstatus Regler | Symbolischer Zugriff möglich! 'nErrState'
0x00000002 | Read | every | REAL64 | z.B. mm/s |  | Reglerausgabe in absoluten Einheiten | Base Unit / s Symbolischer Zugriff möglich! 'fOutput'
0x00000003 | Read | every | REAL64 | % |  | Reglerausgabe in Prozent | Nicht oszilloskopierbar!
0x00000004 | Read | every | REAL64 | V |  | Reglerausgabe in Volt | Nicht oszilloskopierbar!
0x0000000D | Read | every | REAL64 | mm |  | Schleppabstand Position (ohne Totzeitkompensation) | Base Unit
0x0000000E | Read | every | REAL64 | mm |  | Schleppabstand Position (ohne Sollpositionskorrektur) | Base Unit
0x0000000F | Read | every | REAL64 | mm |  | Schleppabstand Position (mit Sollpositionskorrektur und mit Totzeitkompensation) | Base Unit Symbolischer Zugriff möglich! 'fPosDiff'
0x00000010 | Read | every | REAL64 | mm |  | PeakHold-Wert für maximalen negativen Schleppabstand der Position | Base Unit
0x00000011 | Read | every | REAL64 | mm |  | PeakHold-Wert für minimalen positiven Schleppabstand der Position | Base Unit
0x00000012 | Read | every | REAL64 | mm/s |  | Schleppabstand Geschwindigkeit | Base Unit / s
0x00000021 | Read | every | REAL64 | mm |  | Differenz (Abweichung) der Positions-Schleppabstände zwischen Master- und Slaveachse (Master- minus Slaveschleppabstand) | Base Unit Symbolischer Zugriff über Achse möglich! 'fPosDiffCouple'
0x00000022 | Read | every | REAL64 | mm |  | PeakHold-Wert für maximale negative Differenz der Schleppabstände (Position) zwischen Master- und Slaveachse | Base Unit
0x00000023 | Read | every | REAL64 | mm |  | PeakHold-Wert für maximale positive Differenz der Schleppabstände (Position) zwischen Master- und Slaveachse | Base Unit
0x00000101 | Read | P/PID (Pos.) | REAL64 | z.B. mm/s |  | P-Anteil des Reglers in absoluten Einheiten |
0x00000102 | Read | PID (Pos.) | REAL64 | z.B. mm/s |  | I-Anteil des Reglers in absoluten Einheiten |
0x00000103 | Read | PID (Pos.) | REAL64 | z.B. mm/s |  | D-Anteil des Reglers in absoluten Einheiten |
0x00000104 | Read | PID (Pos.) | UINT16 | 1 | 0/1 | Begrenzung des I-Anteils aktiv? |
0x00000105 | Read | PID (Pos.) | UINT16 | 1 | 0/1 | Begrenzung des D-Anteils aktiv? |
0x00000106 | Read | PID (Pos.) | UINT16 | 1 | 0/1 | ARW-Maßnahmen des I-Anteils aktiv? | ARW: Anti Reset Windup
0x00000110 | Read | PID (Pos.) | REAL64 | z.B. mm/s |  | Beschleunigungsvorsteuerung Yacc des Reglers in absoluten Einheiten Anmerkung: Funktion abhängig vom Reglertyp! | Beschleunigungs-vorsteuerung
0x00000111 | Read | PP (Pos.) | REAL64 | mm/s/ mm | ≥0 | Interne interpolierte Proportionalverstärkung kp bzw. kv | PP-Regler
0x0000011A 0x0000011B 0x0000011C 0x0000011D 0x0000011E 0x0000011F 0x00000120 0x00000121 0x00000122 0x00000123 0x00000124 | Read | P (Pos.) | UINT32 REAL64 REAL64 REAL64 REAL64 REAL64 REAL64 REAL64 REAL64 REAL64 REAL64 | 1 mm mm/s mm/s mm/s^2 mm mm mm/s mm/s^2 mm/s mm/s^2 |  | Sollgeschwindigkeitsfilter: InternalPhase InternalPosSollError ! TestVeloSoll InternalLimitedVeloSoll InternalAccSollRel InternalPosSollRel PosSollCorrected ! VeloSollCorrected ! AccSollCorrected ! TestVeloSollCorrected TestAccSollCorrected | Reservierte Funktion, kein Standard!
0x00000201 | Read | P,PID (Geschw.) | REAL64 | z.B. mm/s |  | Geschwindigkeitsanteil des Reglers | Base Unit / s
0x00000202 | Read | P,PID (Geschw.) | REAL64 | % |  | Geschwindigkeitsanteil des Reglers in Prozent | Nicht oszilloskopierbar!
0x00000203 | Read | P,PID (Geschw.) | REAL64 | V |  | Geschwindigkeitsanteil des Reglers in Volt | Nicht oszilloskopierbar!
0x00000201 | Read | P/PID (Geschw.) | REAL64 | z.B. mm/s |  | P-Anteil des Reglers in absoluten Einheiten |
0x00000202 | Read | P/PID (Geschw.) | REAL64 | z.B. mm/s |  | I-Anteil des Reglers in absoluten Einheiten |
0x00000203 | Read | P/PID (Geschw.) | REAL64 | z.B. mm/s |  | D-Anteil des Reglers in absoluten Einheiten |
0x00000204 | Read | P/PID (Geschw.) | UINT16 | 1 | 0/1 | Begrenzung des I-Anteils aktiv? |
0x00000205 | Read | P/PID (Geschw.) | UINT16 | 1 | 0/1 | Begrenzung des D-Anteils aktiv? |
0x00000206 | Read | P/PID (Geschw.) | UINT16 | 1 | 0/1 | ARW-Massnahmen des I-Anteils aktiv? | ARW: Anti Reset Windup
0x0000020A | Read | P/PID (Geschw.) | REAL64 | z.B. mm/s |  | Gesamteingangsgröße des Geschwindigkeits-Reglers |
0x00000250 | Read | P/PI (Beobachter) | REAL64 | z.B. mm |  | Beobachter: Positionsdifferenz (Ist-Position - Beobachter-Position |
0x00000251 | Read | P/PI (Beobachter) | REAL64 | z.B. mm |  | Beobachter: Position |
0x00000252 | Read | P/PI (Beobachter) | REAL64 | z.B. mm/s |  | Beobachter: Geschwindigkeit 2 (für P-Anteil) |
0x00000253 | Read | P/PI (Beobachter) | REAL64 | z.B. mm/s |  | Beobachter: Geschwindigkeit 1 (für I-Anteil) |
0x00000254 | Read | P/PI (Beobachter) | REAL64 | z.B. mm/s^2 |  | Beobachter: Beschleunigung |
0x00000255 | Read | P/PI (Beobachter) | REAL64 | A |  | Beobachter: Motor-Ist-Strom |
0x00000256 | Read | P/PI (Beobachter) | UINT16 | 1 | 0/1 | Beobachter: Begrenzung des I-Anteils aktiv? |
0x00000A00 | Read | PID (MW) | REAL64 | % | [-1.0...1.0] | Verrechnung der Sollgeschwindigkeit (Vorsteuerung) in Prozent |
0x00000A01 | Read | PID (MW) | REAL64 | z.B. mm/s |  | P-Anteil des Reglers in absoluten Einheiten oder Prozent (je nach Ausgabegewichtung) |
0x00000A02 | Read | PID (MW) | REAL64 | z.B. mm/s |  | I-Anteil des Reglers in absoluten Einheiten oder Prozent (je nach Ausgabegewichtung) |
0x00000A03 | Read | PID (MW) | REAL64 | z.B. mm/s |  | D-Anteil des Reglers in absoluten Einheiten oder Prozent (je nach Ausgabegewichtung) |
0x00000A04 | Read | PID (MW) | UINT16 | 1 | 0/1 | Begrenzung des I-Anteils aktiv? |
0x00000A05 | Read | PID (MW) | UINT16 | 1 | 0/1 | Begrenzung des D-Anteils aktiv? |
0x00000A10 | Read | PID (Pos.) | REAL64 | z.B. mm/s |  | Beschleunigungsvorsteuerung Yacc des Reglers in absoluten Einheiten | Beschleunigungs- vorsteuerung


"Index-Offset" Spezifikation für Regler-Funktionen (Index-Group 0x6200+ ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Regler [image] "Index-Offset" Spezifikation für Regler-Funktionen (Index-Group 0x6200+ ID)
"Index-Offset" Spezifikation für Regler-Funktionen (Index-Group 0x6200+ ID)
Index-Offset (Hex) | Zugriff | Regler- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung


Spezifikation Drive

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Drive
Spezifikation Drive
Weiterführende Informationen
•
"Index-Offset" Spezifikation für Drive-Parameter (Index-Group 0x7000 + ID)
•
"Index-Offset" Spezifikation für Drive-Zustand (Index-Group 0x7100 + ID)
•
"Index-Offset" Spezifikation für Drive-Funktionen (Index-Group 0x7200 + ID)
•
"Index-Offset" Spezifikation für zyklische Drive-Prozessdaten (Index-Group 0x7300 + ID)


"Index-Offset" Spezifikation für Drive-Parameter (Index-Group 0x7000 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Drive [image] "Index-Offset" Spezifikation für Drive-Parameter (Index-Group 0x7000 + ID)
"Index-Offset" Spezifikation für Drive-Parameter (Index-Group 0x7000 + ID)
Index-Offset (Hex) | Zugriff | Drive- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | every | UINT32 | 1 | [1 ... 255] | Drive ID |
0x00000002 | Read | every | UINT8[30+1] | 1 | 30 Zeichen | Drive-Name |
0x00000003 | Read | every | UINT32 | 1 | s. ENUM (>0) | Drive-Typ |
0x00000004 | Read / Write | every | UINT32 | 1 | Byteoffset | Input-Adress-Offset (IO-Input-Image) | Änderung der IO-Adresse
0x00000005 | Read / Write | every | UINT32 | 1 | Byteoffset | Output-Adresse-Offset (IO-Output-Image) | Änderung der IO-Adresse
0x00000006 | Read / Write | every | UINT16 | 1 | [0,1] | Motorpolarität |
0x0000000A | Read / Write | every | UINT32 | 1 | s. ENUM (>0) | Drive-Modus |
0x0000000B | Read / Write | every | REAL64 | % | [-1.0 ... 1.0] | Minimale Ausgabeschranke (Ausgabelimitierung) (Defaulteinstellung: -1.0 == -100%) |
0x0000000C | Read / Write | every | REAL64 | % | [-1.0 ... 1.0] | Maximale Ausgabeschranke (Ausgabelimitierung) (Defaulteinstellung: 1.0 == 100%) |
0x0000000D | Read | every | UINT32 | INC |  | Maximale Anzahl von Ausgabeinkrementen (Ausgabemaske) |
0x00000010 | Read / Write | every | UINT32 | 1 |  | Internes Drive Control Doppelwort zur Festlegung der Antriebs-Betriebsarten | Reserviert !
0x00000011 | Read / Write | every | UINT32 | 1 | ≥ 5 | Interner Drive Reset Zähler (Zeit in NC-Zyklen für Enable und Reset) | Reserviert !
0x00000020 | Read / Write | every | UINT32 | 1 | s. ENUM (≥0) | Drive Totzeitkompensations Modus 0: Aus (Default) 1: Ein (mittels Geschwindigkeit) 2: Ein (mittels Geschwindigkeit und Beschleunigung) | s. Anhang
0x00000021 | Read / Write | every | UINT32 | 1 |  | Steuerdoppelwort (32 Bits) für die Drive Totzeitkompensation: Bit 0 = 0: relative IO Zeiten (Default) Bit 0 = 1: absolute IO Zeiten |
0x00000022 | Read / Write | every | INT32 | ns | [±1.0E+9] | Summe der parametrierten zeitlichen Verschiebung für die Drive Totzeitkompensation (typischerweise positive Zahlenwerte) |
0x00000101 | Read / Write | Servo | REAL64 | z.B. mm/s | >0.0 | Bezugsgeschwindigkeit bei Bezugs- bzw. Referenzoutput (Geschwindigkeitsvorsteuerung) | Base Unit / s
0x00000102 | Read / Write | Servo | REAL64 | % | [0.0 ... 5.0] | Bezugs- bzw. Referenzoutput in Prozent |
0x00000103 | Read | Servo | REAL64 | z.B. mm/s | >0.0 | Resultierende Geschwindigkeit bei 100% Output | Base Unit / s
0x00000104 | Read / Write | Servo | REAL64 | z.B. mm/s | ±∞ | Geschwindigkeitsoffset (DAC-Offset) für Driftabgleich (Offsetabgleich) der Achse | Base Unit / s
0x00000105 | Read / Write | Servo (Sercos, Profi Drive, AX200x, CANopen) | REAL64 | 1 | [0.0 ... 100000000.0] | Geschwindigkeitsskalierung (Skalierungsfaktor um auf Wichtung im Antrieb zu reagieren) | Für Sercos, Profi Drive, AX200x, CANopen
0x00000106 | Read / Write | Profi Drive DSC | UINT32 | 0.001 * 1/s | ≥ 0 | Profibus/Profi Drive DSC: Lageregelverstärung Kpc | Nur für Profi Drive DSC
0x00000107 | Read / Write | Profi Drive DSC | REAL64 | 1 | ≥ 0.0 | Profibus/Profi Drive DSC: Skalierung für Berechnung von 'XERR' (Default: 1.0) | Nur für Profi Drive DSC
0x00000109 | Read / Write | Servo | REAL64 | 1 | [0.0 ... 100000000.0] | Positionsskalierung (Skalierungsfaktor um auf Wichtung im Antrieb zu reagieren) | Für Sercos, CANopen
0x0000010A | Read / Write | Servo | REAL64 | 1 | [0.0 ... 100000000.0] | Beschleunigungsskalierung (Skalierungsfaktor um auf Wichtung im Antrieb zu reagieren) | Für Sercos, Profi Drive, AX200x, CANopen
0x0000010B | Read / Write | Servo | REAL64 | 1 | [0.0 ... 100000000.0] | Drehmomentskalierung (rot. Motor) bzw. Kraftskalierung (Linearmotor) (Skalierungsfaktor um auf Wichtung im Antrieb zu reagieren) | Für Sercos, Profi Drive, AX200x, CANopen
0x0000010D | Read / Write | Servo (Sercos, CANopen) | REAL64 | s | [0.0 ... 1.0] | Verzögerungszeit für Drive-Geschwindigkeitsausgabe | Für Sercos, CANopen
0x0000010E | Read / Write | Servo (Sercos, CANopen) | REAL64 | s | [0.0 ... 1.0] | Verzögerungszeit für Drive-Beschleunigungsausgabe | Für Sercos, CANopen
0x0000010F | Read / Write | Servo (Sercos, CANopen) | REAL64 | s | [0.0 ... 1.0] | Verzögerungszeit für Drive-Drehmomentausgabe bzw. Kraftausgabe | Für Sercos, CANopen
0x00000110 | Read / Write | Servo (Sercos, CANopen) | UINT32 | 1 | s. ENUM (≥0) | Optionale Ausgabefilterung des Positionsollwertes: Filter Typ 0: OFF (Default) 1: Moving Average 2: P-Tn | Für Sercos, CANopen
0x00000111 | Read / Write | Servo (Sercos, CANopen) | REAL64 | s | [0.0 ... 1.0] | Optionale Ausgabefilterung des Positionsollwertes: Filterzeit Anmerkung: Die maximale Filterzeit ist von der NC Zykluszeit abhängig und wird auf folgenden Maximalwert limitiert: 1 ms => 64 ms 2 ms => 128 ms 3 ms => 192 ms | Für Sercos, CANopen
0x00000112 | Read / Write | Servo (Sercos, CANopen) | UINT32 | 1 | [0 ... 10] | Optionale Ausgabefilterung des Positionsollwertes: Filter Ordnung 'n' (nur für P-Tn Typ) | Für Sercos, CANopen
0x00000120 | Read / Write | Servo/ Hydraulik/ | UINT32 | 1 | ≥ 0 | Tabellen-ID (0: keine Tabelle) | Nur für KL4xxx, M2400, Universal
0x00000121 | Read / Write | Servo/ Hydraulik | UINT32 | 1 | ≥ 0 | Interpolation-Type 0: Linear 2: Spline | Nur für KL4xxx, M2400, Universal
0x00000122 | Read / Write | Servo/ Hydraulik | REAL64 | % | [-1.0 ... 1.0] | Ausgabeoffset in Prozent Anmerkung: Wirkt nach der Kennlinienauswertung! | Nur für KL4xxx, M2400, Universal
0x00000151 | Read / Write | Servo / Nichtlinear | REAL64 | 1 | [0.0 ... 100.0] | Quadrantenausgleichsfaktor (Verhältnis zwischen I und III Quadr.) |
0x00000152 | Read / Write | Servo / Nichtlinear | REAL64 | 1 | [0.01 ... 1.0] | Geschwindigkeits-Stützstelle in Prozent (1.0 == 100%) |
0x00000153 | Read / Write | Servo / Nichtlinear | REAL64 | 1 | [0.01 ... 1.0] | Ausgabe-Stützstelle in Prozent(1.0 == 100%) |
0x00000301 | Read / Write | Schrittmotor | UINT8 |  |  | Bit-Maske: Zyklus 1 |
0x00000302 | Read / Write | Schrittmotor | UINT8 |  |  | Bit-Maske: Zyklus 2 |
0x00000303 | Read / Write | Schrittmotor | UINT8 |  |  | Bit-Maske: Zyklus 3 |
0x00000304 | Read / Write | Schrittmotor | UINT8 |  |  | Bit-Maske: Zyklus 4 |
0x00000305 | Read / Write | Schrittmotor | UINT8 |  |  | Bit-Maske: Zyklus 5 |
0x00000306 | Read / Write | Schrittmotor | UINT8 |  |  | Bit-Maske: Zyklus 6 |
0x00000307 | Read / Write | Schrittmotor | UINT8 |  |  | Bit-Maske: Zyklus 7 |
0x00000308 | Read / Write | Schrittmotor | UINT8 |  |  | Bit-Maske: Zyklus 8 |
0x00000310 | Read / Write | Schrittmotor | UINT8 |  |  | Bit-Maske: Haltestrom |


"Index-Offset" Spezifikation für Drive-Zustand (Index-Group 0x7100 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Drive [image] "Index-Offset" Spezifikation für Drive-Zustand (Index-Group 0x7100 + ID)
"Index-Offset" Spezifikation für Drive-Zustand (Index-Group 0x7100 + ID)
Index-Offset (Hex) | Zugriff | Drive- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | every | INT32 |  |  | Fehlerstatus Drive | Symbolischer Zugriff möglich! 'nErrState'
0x00000002 | Read | every | REAL64 | z. B. mm/s |  | Gesamtausgabe in absoluten Einheiten | Base Unit / s Symbolischer Zugriff möglich! 'fOutput'
0x00000003 | Read | every | REAL64 | % |  | Gesamtausgabe in Prozent |
0x00000004 | Read | every | REAL64 | V |  | Gesamtausgabe in Volt | Nicht oszilloskopierbar!
0x00000005 | Read | every | REAL64 | z. B. mm/s |  | PeakHold-Wert für maximale negative Gesamtausgabe | Base Unit / s
0x00000006 | Read | every | REAL64 | z. B. mm/s |  | PeakHold-Wert für maximale positive Gesamtausgabe | Base Unit / s
0x0000000C | Read | every | REAL64 | z.B. mm |  | Soll-Positionskorrekturwert für Drive Ausgabe aufgrund der Totzeitkompensation |
0x0000000D | Read | every | REAL64 | s |  | Summe der zeitlichen Verschiebung für Drive Totzeitkompensation (parametrierte und variable Totzeit) Anm.: Eine Totzeit wird im System als positiver Wert angegeben. |
0x00000013 | Read | every | REAL64 | % |  | Gesamtausgabe in Prozent (nach nichtlinearer Kennlinie !) |
0x00000014 | Read | every | REAL64 | V |  | Gesamtausgabe in Volt (nach nichtlinearer Kennlinie !) | Nicht oszilloskopierbar!


"Index-Offset" Spezifikation für Drive-Funktionen (Index-Group 0x7200 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Drive [image] "Index-Offset" Spezifikation für Drive-Funktionen (Index-Group 0x7200 + ID)
"Index-Offset" Spezifikation für Drive-Funktionen (Index-Group 0x7200 + ID)
Index-Offset (Hex) | Zugriff | Drive- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000102 | Write | SERVO | { |  |  | Austragen und Löschen der Kennlinien-Tabelle im Drive | nur für SAF-Port 501!
 |  |  | ULONG | 1 | >0 | s. Achs-Funktion mit Index-Offset 0x00000012
 |  |  | } |  |  |


"Index-Offset" Spezifikation für zyklische Drive-Prozessdaten (Index-Group 0x7300 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Drive [image] "Index-Offset" Spezifikation für zyklische Drive-Prozessdaten (Index-Group 0x7300 + ID)
"Index-Offset" Spezifikation für zyklische Drive-Prozessdaten (Index-Group 0x7300 + ID)
Index-Offset (Hex) | Zugriff | Drive- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000000 | Read / Write | every (NC→IO) | { |  | STRUCT s. Drive-Interface bzw. s. erweitertes Drive-Interface | DRIVE-OUTPUT-STRUKTUR (NC→IO, 12 Byte) bzw. optional DRIVE-OUTPUT-STRUKTUR (NC→IO, 40 Byte) | Write-Befehl nur Optional! Sicherheitsaspekte beachten!
 |  |  | INT32 | INC | ≥ 0 | nOutData1
 |  |  | INT32 | INC | ±2^31 | nOutData2
 |  |  | UINT8 | 1 | ≥ 0 | nControl1
 |  |  | UINT8 | 1 | ≥ 0 | nControl2
 |  |  | UINT8 | 1 | ≥ 0 | nControl3
 |  |  | UINT8 | 1 | ≥ 0 | nControl4
 |  |  | O ptional: |  |  |
 |  |  | INT32 | INC | ≥ 0 | nOutData3
 |  |  | INT32 | INC | ≥ 0 | nOutData4
 |  |  | INT32 | INC | ≥ 0 | nOutData5
 |  |  | INT32 | INC | ≥ 0 | nOutData6
 |  |  | UINT8 | 1 | ≥ 0 | nControl5
 |  |  | UINT8 | 1 | ≥ 0 | nControl6
 |  |  | UINT8 | 1 | ≥ 0 | nControl7
 |  |  | UINT8 | 1 | ≥ 0 | nControl8
 |  |  | INT32 | 1 | ≥ 0 | reserviert
 |  |  | INT32 | 1 | ≥ 0 | reserviert
 |  |  | } |  |  |
0x00000080 | Write | every (IO→NC) | { |  | STRUCT s. Drive-Interface bzw. s. erweitertes Drive-Interface | DRIVE-INPUT-STRUKTUR (IO→NC, 12 Byte) bzw. optional DRIVE-INPUT-STRUKTUR (IO→NC, 40 Byte) |
 |  |  | INT32 | INC | ≥ 0 | nInData1
 |  |  | INT32 | INC | ±2^31 | nInData2
 |  |  | UINT8 | 1 | ≥ 0 | nStatus1
 |  |  | UINT8 | 1 | ≥ 0 | nStatus2
 |  |  | UINT8 | 1 | ≥ 0 | nStatus3
 |  |  | UINT8 | 1 | ≥ 0 | nStatus4
 |  |  | O ptional: |  |  |
 |  |  | INT32 | INC | ≥ 0 | nInData3
 |  |  | INT32 | INC | ≥ 0 | nInData4
 |  |  | INT32 | INC | ≥ 0 | nInData5
 |  |  | INT32 | INC | ≥ 0 | nInData6
 |  |  | UINT8 | 1 | ≥ 0 | nStatus5
 |  |  | UINT8 | 1 | ≥ 0 | nStatus6
 |  |  | UINT8 | 1 | ≥ 0 | nStatus7
 |  |  | UINT8 | 1 | ≥ 0 | nStatus8
 |  |  | INT32 | 1 | ≥ 0 | reserviert
 |  |  | INT32 | 1 | ≥ 0 | reserviert
 |  |  | } |  |  |


Spezifikation Tabellen

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Tabellen
Spezifikation Tabellen
Weiterführende Informationen
•
"Index-Offset" Spezifikation für Tabellen-Parameter (Index-Group 0xA000 + ID)
•
"Index-Offset" Spezifikation für Tabellen-Zustand (Index-Group 0xA100 + ID)
•
"Index-Offset" Spezifikation für Tabellen-Funktionen (Index-Group 0xA200 + ID)


"Index-Offset" Spezifikation für Tabellen-Parameter (Index-Group 0xA000 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Tabellen [image] "Index-Offset" Spezifikation für Tabellen-Parameter (Index-Group 0xA000 + ID)
"Index-Offset" Spezifikation für Tabellen-Parameter (Index-Group 0xA000 + ID)
Index-Offset ( Hex ) | Zugriff | Tabellen- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | every | UINT32 | 1 | [1 ... 255] | Tabellen ID |
0x00000002 | Read | every | UINT8[30+1] | 1 | 30 Zeichen | Tabellen-Name |
0x00000003 | Read | every | UINT32 | 1 | s. ENUM (>0) | Tabellen-Untertypen |
0x00000004 | Read | every | UINT32 | 1 | s. ENUM (>0) | Tabellen-Haupttypen |
0x00000010 | Read | every | UINT32 | 1 | [0... 16777216] | Anzahl von Zeilen (n) |
0x00000011 | Read | every | UINT32 | 1 | [0... 16777216] | Anzahl von Spalten (m) |
0x00000012 | Read | every | UINT32 | 1 | ≥0 | Anzahl von Gesamtelementen (n*m) |
0x00000013 | Read | äquidistante Tab. | REAL64 | z.B. mm | ≥0.0 | Schrittweite (Positions-Delta) (äquidistante Tabellen) | Base Unit
0x00000014 | Read | zyklische Tab. | REAL64 | z.B. Grad | ≥0.0 | Masterperiode (zyklische Tabellen) | Base Unit
0x00000015 | Read | zyklische Tab. | REAL64 | z.B. Grad | ≥0.0 | Slavedifferenz pro Masterperiode (zyklische Tabellen) | Base Unit
0x0000001A | Read / Write | "Motion Function" (Bewegungs-gesetze) | { |  |  | Aktivierungstyp für Online-Änderungen von Tabellendaten (nur MF) |
 |  |  | UINT32 | ENUM | s. Anhang | Aktivierungstyp 0: 'instantaneous' (default) 1: 'master cam pos.' 2: 'master' axis pos.' 3: 'next cycle' 4: 'next cycle once' 5: 'as soon as possible' 6: 'off' 7: 'delete queued data'
 |  |  | REAL64 | z.B. mm | ±∞ | Aktivierungsposition
 |  |  | UINT32 | ENUM | s. Anhang | Master Skalierungstyp 0: user defined (default) 1: scaling with auto offset 2: off
 |  |  | UINT32 | ENUM | s. Anhang | Slave Skalierungstyp 0: user defined (default) 1: scaling with auto offset 2: off
 |  |  | } |  |  |
0x00000020 | Read / Write | every | { |  |  | Schreiben Einzelwert [n,m]: |
 |  |  | UINT32 | 1 | [0 ... 16777216] | n-te Zeile
 |  |  | UINT32 | 1 | [0 ... 16777216] | m-te Spalte
 |  |  | REAL64 | z.B. mm | ±∞ | Einzelwert
 |  |  | } |  |  |
0x00000021 | ReadWrite | every | *REAL64 | z.B. mm | ±∞ | Slaveposition zur vorgegebenen Masterposition lesen (bezieht sich auf "Rohwerte" der Tabelle) |
0x00000022 | ReadWrite | "Motion Function" (Bewegungs-gesetze) | Write |  |  | Lesen der "Motion Function" als "Punktewolke" | Nur zeilenweise möglich! (ganzzahliges vielfaches)
 |  |  | { |  |  |
 |  |  | UINT16 | 1 | 0/1 | Konsistente Datenübernahme veranlassen ?
 |  |  | UINT16 | 1 | Bitmask (≥0) | Auswahl-Bitmaske (Spaltenanzahl m ist Masterposition plus Anzahl Bits): Bit 0: Pos (Slave) Bit 1: Velo (Slave) Bit 2: Acc (Slave) Bit 3: Jerk (Slave)
 |  |  | REAL64 | z.B. mm | ±∞ | Startposition (Master)
 |  |  | REAL64 | z.B. mm | > 0.0 | Schrittweite
 |  |  | } |  |  |
 |  |  | Read |  |  |
 |  |  | { |  |  |
 |  |  | REAL64[x*m] | z.B. mm | ±∞ | Lesen von x Zeilen ab der Master-Startposition: (x*m)-Werte (eine oder mehrere Zeilen)
 |  |  | } |  |  |
0x00000023 | ReadWrite | every | Write |  |  | Slavewerte zur vorgegebenen Masterposition lesen (bezieht sich auf "Rohwerte" der Tabelle) |
 |  |  | REAL64 | z.B. mm | ±∞ | Masterposition
 |  |  | Read |  |  |
 |  |  | { |  |  |
 |  |  | REAL64 | z.B. mm | ±∞ | Slaveposition
 |  |  | REAL64 | mm/s | ±∞ | Slavegeschwindigkeit
 |  |  | REAL64 | mm/s^2 | ±∞ | Slavebeschleunigung
 |  |  | } |  |  |
0x00000050 | Read / Write | every | REAL64 [64] | 1 | ±∞ | Charakteristische Kennwerte der Tabelle |
0x00000050 | ReadWrite | every | Write |  |  | Lesen der Charakteristischen Kennwerte einer Tabelle in Abhängigkeit der nominalen Mastergeschwindigkeit |
 |  |  | REAL64 [64] | ... | ±∞ | Optionale nominale Masterbezugsgeschwindigkeit "fMasterVeloNom" (normiert => 1.0 mm/s), die restlichen Element werden nicht ausgewertet
 |  |  | Read |  |  |
 |  |  | REAL64 [64] | ... | ±∞ | Lesen der Charakteristische Kennwerte einer Tabelle
0x00000115 | Write | monoton linear, monoton zykl., | { |  |  | Setzen/Ändern der Tabellen-Skalierung: |
 |  |  | REAL64 | 1 | [±1000000.0] | Originalgewichtung der Tabelle
 |  |  | REAL64 | z.B. mm | [±1000000.0] | Positionsoffset der Masterspalte
 |  |  | REAL64 | 1 | [±1000000.0] | Skalierung der Masterspalte
 |  |  | REAL64 | z.B. mm | [±1000000.0] | Positionsoffset der Slavespalte
 |  |  | REAL64 | 1 | [±1000000.0] | Skalierung der Slavespalte
 |  |  | REAL64 | z.B. mm | [±1000000.0] | Untere Bereichsgrenze (Anfangsposition)
 |  |  | REAL64 | z.B. mm | [±1000000.0] | Obere Bereichsgrenze (Endposition)
 |  |  | } |  |  |
0x01000000 +n-te Startzeile | Read / Write[<=16777216] | every | { REAL64[x*m] } | z.B. mm | ±∞ | Lesen/Schreiben von x Zeilen ab der n-ten Zeile: (x*m)-Werte (eine oder mehrere Zeilen) Wertebereich n: [0 ... 16777216] | Nur zeilenweise möglich! (ganzzahliges vielfaches)
0x02000000 +m-te Startspalte | Read / Write[<=16777216] | every | { REAL64[x*n] } | z.B. mm | ±∞ | Lesen/Schreiben x Spalten ab der m-ten Spalte: (x*n)-Werte (eine oder mehrere Spalten) Wertebereich m: [0 ... 16777216] | Nur spaltenweise möglich! (ganzzahliges vielfaches)
0x05000000 +n-te Startzeile | Read / Write[<=16777216] | "Motion Function" (Bewegungs-gesetze) Daten: STRUCT[x*m] | { |  |  | Lesen/Schreiben von x Zeilen ab der n-ten Zeile: (x*m)-Strukturen (eine oder mehrere Zeilen) Wertebereich n: [0 ... 16777216] | Nur zeilenweise möglich! (ganzzahliges vielfaches)
 |  |  | UINT32 | 1 |  | Abs. Punkt Index (nicht ausgewertet)
 |  |  | UINT16 | ENUM |  | Funktions Typ 1: Polynom 1 15: Polynom 5
 |  |  | UINT16 | ENUM |  | Punkt Typ 0: default 1: ignore
 |  |  | INT32 | 1 |  | rel. Adressindex auf Zielpunkt (Default: 1)
 |  |  | REAL64 | mm |  | Master Position
 |  |  | REAL64 | mm |  | Slave Position
 |  |  | REAL64 | mm/s |  | Slave Geschwind.
 |  |  | REAL64 | mm/s^2 |  | Slave Beschleun.
 |  |  | REAL64 | mm/s^3 |  | Slave Ruck
 |  |  | } |  |  |
0x06000000 +m-te Startspalte | Read / Write[<=16777216] | "Motion Function" (Bewegungs-gesetze) Daten: STRUCT[x*n] | { |  |  | Lesen/Schreiben x Spalten ab der m-ten Spalte: (x*n)-Strukturen (eine oder mehrere Spalten) Wertebereich m: [0 ... 16777216] | Nur spaltenweise möglich! (ganzzahliges vielfaches)
 |  |  | UINT32 | 1 |  | Abs. Punkt Index (nicht ausgewertet)
 |  |  | UINT16 | ENUM |  | Funktions Typ 1: Polynom 1 15: Polynom 5
 |  |  | UINT16 | ENUM |  | Punkt Typ 0: default 1: ignore
 |  |  | INT32 | 1 |  | rel. Adressindex auf Zielpunkt (Default: 1)
 |  |  | REAL64 | mm |  | Master Position
 |  |  | REAL64 | mm |  | Slave Position
 |  |  | REAL64 | mm/s |  | Slave Geschwind.
 |  |  | REAL64 | mm/s^2 |  | Slave Beschleun.
 |  |  | REAL64 | mm/s^3 |  | Slave Ruck
 |  |  | } |  |  |


"Index-Offset" Spezifikation für Tabellen-Zustand (Index-Group 0xA100 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Tabellen [image] "Index-Offset" Spezifikation für Tabellen-Zustand (Index-Group 0xA100 + ID)
"Index-Offset" Spezifikation für Tabellen-Zustand (Index-Group 0xA100 + ID)
Index-Offset ( Hex ) | Zugriff | Tabellen- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x0000000A | Read | every | INT32 | 1 | ≥ 0 | 'User Counter' (Anzahl der Nutzer dieser Tabelle) | Nicht oszilloskopierbar!


"Index-Offset" Spezifikation für Tabellen-Funktionen (Index-Group 0xA200 + ID)

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Spezifikation Tabellen [image] "Index-Offset" Spezifikation für Tabellen-Funktionen (Index-Group 0xA200 + ID)
"Index-Offset" Spezifikation für Tabellen-Funktionen (Index-Group 0xA200 + ID)
Index-Offset (Hex) | Zugriff | Tabellen- typ | Daten- typ | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00010000 | Write | Kurvenscheibe | { |  |  | Erzeugt Kurvenscheiben- Tabelle mit Dimension (n*m): | Tabellentypen: 1,2,3,4 Dimension: mind. 2x1
 |  |  | UINT32 | 1 | s. ENUM (>0) | Tabellen-Typ (s. Anhang)
 |  |  | UINT32 | 1 | [2...16777216] | Anzahl der Zeilen
 |  |  | UINT32 | 1 | [1...16777216] | Anzahl der Spalten
 |  |  | } |  |  |
0x00010001 | Write | Kennlinie | { |  |  | Erzeugt Kennlinien-Tabelle mit Dimension (n*m): | Tabellentypen: 1,3 Dimension: mind. 2x1
 |  |  | UINT32 | 1 | s. ENUM (>0) | Tabellen-Typ (s. Anhang)
 |  |  | UINT32 | 1 | [2...16777216] | Anzahl der Zeilen
 |  |  | UINT32 | 1 | [1...16777216] | Anzahl der Spalten
 |  |  | } |  |  |
0x00010010 | Write | "Motion Function" (Bewegungs-gesetze) | { |  |  | Erzeugt "Motion Function"-Tabelle mit Dimension (n*m): | Tabellentypen: 3,4 Dimension: mind. 2x1
 |  |  | UINT32 | 1 | s. ENUM (>0) | Tabellen-Typ (s. Anhang)
 |  |  | UINT32 | 1 | [2...16777216] | Anzahl der Zeilen
 |  |  | UINT32 | 1 | [1...16777216] | Anzahl der Spalten
 |  |  | } |  |  |
0x00020000 | Write | every | VOID |  |  | Löscht Tabelle mit Dimension (n*m) | Tabellentypen: 1,2,3,4
0x00030000 | Write | every | VOID |  |  | Initialisiert Tabelle Initialisierung ist nicht mehr nötig, da dies jetzt automatisch in folgenden Fällen passiert: a) beim Ankoppeln mittels Tabelle b) beim Auslesen der Slaveposition (s. Tabellenpara.) |


Anhang

Anhang [image] Spezifikation "Index-Group" für NC ( ID [0x01...0xFF] ) [image] Anhang
Anhang
Enum Kanaltypen
Define | Kanaltypen
1 | Standard
2 | Interpreter
3 | FIFO
4 | Kinematische Transformation
Enum Interpretertypen
Define | Interpretertypen
0 | NICHT DEFINIERT
1 | reserviert
2 | DIN 66025 (Siemensdialekt)
Enum Interpreter Betriebsarten (Operation-Mode)
Define | Interpreter Betriebsart
0x0 | Default-Belegung (Abwahl der übrigen Betriebsarten)
0x1 | Einzelsatzbetrieb im NC-Kern (Satzausführungstask/SAF)
0x1000 | reserviert
0x2000 | reserviert
0x4000 | Einzelsatzbetrieb im Interpreter
Enum Interpolations Lade-Logmodus
Define | Lade-Logmodus
0 | Loaderlog aus
1 | nur Source
2 | Source & Compiled
Enum Interpolations Trace-Modus
Define | Trace-Modus
0 | Trace aus
1 | Trace Zeilennummern
2 | Trace Source
Enum Interpreter-Status
Siehe Interpreter-Status
Enum Gruppentypen
Define | Gruppentypen
0 | NICHT DEFINIERT
1 | PTP-Gruppe + x Slave
2 | 1D-Gruppe + x Slave
3 | 2D-Gruppe + x Slave
4 | 3D-Gruppe + x Slave
5 | Eil/Schleich + x Slave
6 | Low Cost Schrittmotor (dig. IO) + x Slave
7 | Tabellen-Gruppe + x Slave
9 | Encoder-Gruppe + x Slave
11 | FIFO-Gruppe + x Slave
12 | Kinematik-Transformations-Gruppe + x Slave
Enum Kurvengeschwindigkeitsreduktionsmethode
Siehe Kurvengeschwindigkeitsreduktionsmethode
Enum Achstypen
Define | Achstypen
0 | NICHT DEFINIERT
1 | Kontinuierliche Achse (Servo)
2 | Diskrete Achse (Eil/Schleich)
3 | Kontinuierliche Achse (Schrittmotor)
Enum Schrittmotorbetriebsart
Define | Schrittmotorbetriebsart
0 | NICHT DEFINIERT
1 | 2-Phasige Erregung (4 Zyklen)
2 | 1-2-Phasige Erregung (6 Zyklen)
3 | Leistungsteil
Enum Override-Typen für PTP-Achsen (Geschwindigkeitsoverride)
Define | Override-Typen
1 | Reduziert Alte Variante, abgelöst durch "(3) Reduziert (iteriert)"
2 | Original Alte Variante, abgelöst durch "(4) Original (iteriert)"
3 | Reduziert (iteriert) Default-Wert: Der Overridewert wird auf die im Sonderfall intern reduzierte Geschwindigkeit bezogen. Somit ergibt sich für den gesamten Overridebereich von 0...100% eine direkt proportionale Geschwindigkeit (=> linearer Zusammenhang).
4 | Original (iteriert) Der Overridewert wird immer auf die durch den Anwender programmierte Geschwindigkeit bezogen. Wenn allerdings diese Geschwindigkeit nicht gefahren werden kann, dann ergibt sich ein maximaler Overridewert, ab dem keine höhere Geschwindigkeit erreicht wird (=> Limitierung).
Enum Gruppen/Achs-Starttypen
Define | Gruppen/Achs-Starttypen
0 | NICHT DEFINIERT
1 | Absolutstart
2 | Relativstart
3 | Endlosstart positiv
4 | Endlosstart negativ
5 | Modulostart (ALT)
261 | Modulostart auf kürzestem Weg
517 | Modulostart in positiver Fahrtrichtung (mit Modulo-Toleranzfenster)
773 | Modulostart in negativer Fahrtrichtung (mit Modulo-Toleranzfenster)
4096 | Stopp und Sperre (Achse wird für Bewegungskommandos gesperrt)
8192 | Halt (ohne Bewegungs-Sperre)
Enum Kommandospeichertypen (buffer mode) für Universellen Achs-Start (UAS)
Define | Kommandospeichertypen (buffer mode)
0 | ABORTING (Default) (instantan, löst eine aktuelle Bewegung ab und löscht gepufferte Kommandos)
1 | BUFFERED (Auftrag wird im Kommandozwischenspeicher gepuffert um ihn im Anschluss an eine aktive Bewegung auszuführen)
18 | BLENDING LOW (gepuffert, kein Stopp, Zwischenziel wird mit der niedrigsten Geschwindigkeit zweier Kommandos durchlaufen)
19 | BLENDING PREVIOUS (gepuffert, kein Stopp, Zwischenziel wird mit der Geschwindigkeit des aktiven Kommandos durchlaufen)
20 | BLENDING NEXT (gepuffert, kein Stopp, Zwischenziel wird mit der Geschwindigkeit des gepufferten Kommandos durchlaufen)
21 | BLENDING HIGH (gepuffert, kein Stopp, Zwischenziel wird mit der höheren Geschwindigkeit zweier Kommandos durchlaufen)
Enum Endpositionstypen (Neue Endposition)
Define | Endpositionstypen
0 | NICHT DEFINIERT
1 | Absolutposition
2 | Relativposition
3 | Endlosposition positiv
4 | Endlosposition negativ
5 | Moduloposition
Enum Kommandotypen für neue Endposition mit neuer Geschwindigkeit (Neue Endposition und/oder neue Geschwindigkeit)
Define | Kommandotypen für neue Endposition mit neuer Geschwindigkeit
0 | NICHT DEFINIERT
1 | Position (instantan)
2 | Geschwindigkeit (instantan)
3 | Position und Geschwindigkeit (instantan)
9 | Position (Umschaltposition)
10 | Geschwindigkeit (Umschaltposition)
11 | Position und Geschwindigkeit (Umschaltposition)
Enum Istpositionstypen (Setze Istposition)
Define | Istpositionstypen
0 | NICHT DEFINIERT
1 | Absolutposition
2 | Relativposition
5 | Moduloposition
Enum Kompensationstypen (Streckenkompensation bzw. Superimposed)
Define | Kompensationstypen
0 | NICHT DEFINIERT
1 | VELOREDUCTION_ADDITIVEMOTION Die max. Geschwindigkeit VelocityDiff wird reduziert. Die Strecke, auf der die Ausgleichsfahrt wirkt, setzt sich additiv aus Length+Distance zusammen.
2 | VELOREDUCTION_LIMITEDMOTION Die max. Geschwindigkeit VelocityDiff wird reduziert. Die Strecke, auf der die Ausgleichsfahrt wirkt, ist durch den Parameter Length festgelegt.
3 | LENGTHREDUCTION_ADDITIVEMOTION Die max. zur Verfügung stehende Strecke wird reduziert und setzt sich maximal aus Length+Distance zusammen. Es wird versucht, die max. Geschwind. VelocityDiff zu nutzen.
4 | LENGTHREDUCTION_LIMITEDMOTION Die max. zur Verfügung stehende Strecke wird reduziert und ist durch den Parameter Length begrenzt. Es wird versucht, die max. Geschwind. VelocityDiff zu nutzen.
Enum Slavetypen
Define | Slavetypen
0 | NICHT DEFINIERT
1 | Linear
2 | Fliegende Säge (Geschwindigkeit, ruckbegrenztes Profil)
3 | Fliegende Säge (Position und Geschwindigkeit, ruckbegrenztes Profil)
5 | Synchronisierungsgenerator (Geschwindigkeit, ruckbegrenztes Profil)
6 | Synchronisierungsgenerator (Position und Geschwindigkeit, ruckbegrenztes Profil)
10 | Tabular
11 | Multitabular
13 | 'Motion Function' (MF)
15 | Linear mit zyklischer Getriebefaktoränderung (Rampenfilter zur Beschleunigungsbegrenzung)
100 | Specific
Enum Slave-Entkopplungstypen (für nachfolgendes Achs-Kommando)
Define | Slave Entkopplungstypen (für nachfolgendes Achs-Kommando)
0 | Stopp, E-Stopp oder P-Stopp (Default) (STOP)
1 | Orientierter Stopp (O-Stopp) (ORIENTEDSTOP)
2 | Beschleunigungsfrei fahren (force-free) und weiterfahren auf endlose Zielposition (ENDLESS)
3 | Weiterfahren auf endlose Zielposition mit neuer geforderter Geschwindigkeit (ENDLESS_NEWVELO)
4 | neue Endposition (NEWPOS)
5 | neue Endposition und neue geforderte Geschwindigkeit (NEWPOSANDVELO)
6 | logisch Abkoppeln und Achse sofort ohne Geschwindigkeitsrampe stillsetzen (INSTANTANEOUSSTOP)
Enum Reglertypen
Define | Reglerypen
0 | NICHT DEFINIERT
1 | P-Regler (Standard) (Position)
2 | PP-Regler (mit ka) (Position)
3 | PID-Regler (mit ka) (Position)
5 | P-Regler (Geschwindigkeit)
6 | PI-Regler (Geschwindigkeit)
7 | Eil/Schleich-Regler (Position)
8 | Schrittmotor-Regler (Position)
9 | SERCOS-Regler (Position im Antrieb)
10 | RESERVIERT
11 | RESERVIERT
12 | RESERVIERT
13 | RESERVIERT
14 | TCom Controller (Soft Drive) (Position im Antrieb)
Enum Regler Beobachter-Modus
Define | Regler Beobachter-Modus
0 | Kein Beobachter aktiv (Default)
1 | "Luenberger"-Beobachter (klassischer Beobachter-Entwurf)
Hinweis Setzt Regelkreis mit Momenteninterface voraus
Enum Encodertypen
Define | Encodertypen
0 | NICHT DEFINIERT
1 | Simulation Encoder (Inkremental)
2 | M3000 Encoder (Multi/Single-Turn) (Absolut)
3 | M31x0 / M2000 Encoder (Inkremental)
4 | MDP 511 Encoder: EL7041, EL7342, EL5101, EL5151, EL2521, EL5021, IP5101 (Inkremental)
5 | MDP 500/501 Enc.: EL5001, IP5009, KL5001 (SSI) (Absolut)
6 | MDP 510 Encoder: KL5051, KL2502-30K Encoder (BiSSI) (Inkremental)
7 | KL30xx Encoder (Analog) (Absolut)
8 | SERCOS und EtherCAT SoE (Position) (Inkremental)
9 | SERCOS und EtherCAT SoE (Position und Geschwindigkeit) (Inkremental)
10 | Binärer Encoder (0/1) (Inkremental)
11 | M2510 Encoder (Absolut)
12 | FOX50 Encoder (Absolut)
14 | AX2000 (Lightbus) (Inkremental)
15 | Provi-Drive MC (Simodrive 611U) (Inkremental)
16 | Universal Encoder (variable Bitmaske) (Inkremental)
17 | NC Rückwand (Inkremental)
18 | spezieller CANopen Typ (z.B. Lenze Drive 9300) (Inkremental)
19 | MDP 513 (DS402): CANopen und EtherCAT CoE (AX2xx-B1x0/B510, EL7201) (Inkremental)
20 | AX2xx-B900 (Ethernet) (Inkremental)
21 | KL5151 Encoder (Inkremental)
24 | IP5209 Encoder (Inkremental)
25 | KL2531/KL2541 Encoder (Stepper Motor) (Inkremental)
26 | KL2532/KL2542 Encoder (DC Motor), KL2535/KL2545 (PWM Stromklemme) (Inkremental)
27 | Time Base Encoder (Zeitgeber) (Inkremental)
28 | TCom Encoder (Soft Drive) (Inkremental)
Enum Encodermodus
Define | Encodermodus
0 | NICHT DEFINIERT
1 | Ermittlung Position
2 | Ermittlung Position und Geschwindigkeit
3 | Ermittlung Position, Geschwindigkeit und Beschleunigung
Enum Encoder-Auswerterichtung (log. Zählrichtung)
Define | Encoder-Auswerterichtung (log. Zählrichtung)
0 | Auswertung in positive und negative Zählrichtung (Defaultbelegung, d.h. kompatibel zum bisherigen Zustand)
1 | Auswertung nur in positive Zählrichtung
2 | Auswertung nur in negative Zählrichtung
3 | Auswertung weder in positive noch in negativer Zählrichtung (Auswertung gesperrt)
Hinweis Nicht für alle Encoder-Typen, sondern nur für KL5101, KL5151, KL2531, KL2541, IP5209, Universal-Encoder, ...
 | Encoder Typen
Enc.-Auswerterichtung (Log. Zählrichtung) | KL5101, ... | Universal-Encoder | übrige Typen
0: positiv und negativ | √ | √ | —
1: nur positiv | √ | √ | —
2: nur negativ | √ | √ | —
3: gesperrt | √ | √ | —
Enum Vorzeichen-Interpretation (Datentyp) des Encoders
Define | Vorzeichen-Interpretation (Datentyp) der Encoder-Istinkremente
0 | NICHT DEFINIERT (Defaultbelegung, d.h. kompatibel zum bisherigen Stand)
1 | UNSIGNED: Vorzeichenlose Interpretation der Encoder-Istinkremente
2 | SIGNED: Vorzeichenbehaftete Interpretation der Encoder-Istinkremente
Hinweis Vorerst nur für KL30xx/KL31xx
Enum Encoder Bezugsmaßsystem
Define | Encoder Bezugsmaßsystem
0 | INC: Inkrementelles Bezugsmaßsystem mit Unter- und Überlaufverrechnung (Default, d.h. kompatibel zum bisherigen Stand)
1 | ABS: Absolutes Bezugsmaßsystem ohne Unter- und Überlaufverrechnung (keine Unter- oder Überläufe des Gebers erlaubt)
2 | ABS MODULO: Bedingt absolutes Bezugsmaßsystem da mit Unter- und Überlaufverrechnung (Absolutwert, der sich modulo (endlos) fortsetzt)
Hinweis Nicht für alle Encoder-Typen, sondern nur für Profi Drive MC, M3000, KL5001/EL5001, IP5009, SERCOS, UNIVERSAL, ...
Enum Encoder Positionsinitialisierung
Define | Encoder Positionsinitialisierung
0 | Direkte Übernahme der Positionsinkremente ohne weitere Logik (Defaultbelegung, d.h. kompatibel zum bisherigen Stand)
1 | Mit Unter- und Überlaufverrechnungslogik (direkte Übernahme oder Unterlauf- oder Überlaufverrechnung)
Hinweis vorerst nur für SERCOS
Enum Referenziermodus für Inkrementalencoder
Define | Referenziermodus für Inkrementalencoder
0 | NICHT DEFINIERT (Defaultbelegung, d.h. kompatibel zum bisherigen Stand)
1 | Latchereignis: Herunterfahren von der SPS Nocke (negative Flanke)
2 | Latchereignis: Hardware Syncimpuls (Nullspur)
3 | Latchereignis: Externes Hardware Latch mit positiver Flanke (Messtaster bzw. Fliegendes Messen mit pos. Flanke)
4 | Latchereignis: Externes Hardware Latch mit negativer Flanke (Messtaster bzw. Fliegendes Messen mit neg. Flanke)
5 | Latchereignis: Synthetisch nachgebildeter Software Syncimpuls (Software Nullspur); VORAUSSETZUMG: absolut pro Motorumdreh., z.B. Resolver!
6 | Latchereignis: im Antrieb definiertes Hardware Latch Ereignis mit positiver Flanke (z.B. für SoftDrive)(NEU)
7 | Latchereignis: im Antrieb definiertes Hardware Latch Ereignis mit negativer Flanke (z.B. für SoftDrive)(NEU)
20 | Anwenderspezifische Implementierung der Referenzierung (SPS Code): Anwender Anforderung wird der SPS mittels des ApplicationRequest-Bits signalisiert (NEU)
 | Referenziermodus: Latchereignis
Encoder Typen | 0: nicht definiert | 1: SPS Nocke (neg. Flanke) | 2: Hardware Syncimpuls (Null-/C-Spur) | 3: Externes Hardware Latch mit pos. Flanke | 4: Externes Hardware Latch mit neg. Flanke | 5: Software Syncimpuls (Software Nullspur)
AX2xxx-B200 (Lightbus) | — | √ | √ | √ | √ | √ (nur Resolver)
AX2xxx-B510 (CANopen) | — | √ | — | — | — | √ (nur Resolver) (s. Param. "Referenz Maske")
AX2xxx-B1x0 (EtherCAT) | — | √ | √ | √ | √ | √ (nur Resolver) (fest 20 Bit)
AX2xxx-B900 (Ethernet) | — | √ | √ | √ | √ | √ (nur Resolver)
Sercos | — | √ | √ | √ (AX5xxx spezifisch implementiert) | √ | √ (s. Param. "Referenz Maske")
Profi Drive | — | √ | √ | √ | √ | √
KL5101 IP5109 | — | √ | √ | √ | √ | √
KL5111 | — | √ | √ | — | — | √
KL5151 | — | √ | √ | √ | √ | √ (nicht sinnvoll)
IP5209 | — | √ | √ | — | — | √ (nicht sinnvoll)
CANopen (z.B. Lenze) | — | √ | — | √ (Eingang In1) | √ (Eingang In2) | √ (nur Resolver) (fest 16 Bit)
übrige Typen | — | — | — | — | — | —
Enum Drivetypen
Define | Drivetypen
0 | NICHT DEFINIERT
1 | Analog Servo Drive: M2400 DAC 1 (Analog)
2 | Analog Servo Drive: M2400 DAC 2 (Analog)
3 | Analog Servo Drive: M2400 DAC 3 (Analog)
4 | Analog Servo Drive: M2400 DAC 4 (Analog)
5 | MDP 252 Drive: Analog Servo Drive: KL4xxx, KL2502-30K (Analog)
6 | MDP 252 Drive: Analog Servo Drive (Nichtlinear): KL4xxx, KL2502-30K (Analog)
7 | Eil/Schleich-Drive (Digital)
8 | Schrittmotor-Drive (Digital)
9 | SERCOS-Drive (Digital)
10 | MDP 510 Drive: KL5051 (BiSSI-Interface) (Digital)
11 | AX2000 (Lightbus) (Digital)
12 | Provi-Drive MC (Simodrive 611U) (Digital)
13 | Universal Drive (Analog)
14 | NC Rückwand (Analog)
15 | spezieller CANopen Typ (z.B. Lenze Drive 9300) (Digital)
16 | MDP 742 (DS402): CANopen und EtherCAT CoE (AX2xx-B1x0/B510) (Digital)
17 | AX2xx-B900 Drive (Ethernet) (Digital)
20 | KL2531/KL2541 Encoder (Stepper Motor) (Digital)
21 | KL2532/KL2542 Encoder (DC Motor), KL2535/KL2545 Encoder (PWM Stromklemme) (Digital)
22 | TCom Drive (Soft Drive) (Digital)
23 | MDP 733 Drive: Profile MDP 733 (EL7332, EL7342, EP7342) (Digital)
24 | MDP 703 Drive: Profile MDP 703 (EL7031, EL7041, EP7041) (Digital)
Enum Drive-Output-Starttypen
Define | Drive-Output-Starttypen
0 | NICHT DEFINIERT
1 | Ausgabe als Prozentwert
2 | Ausgabe als Geschwindigkeit z.B. m/min
Enum Fahrphasen / Bewegungszustand für Masterachsen
Define | Fahrphasen / Bewegungszustand (unterschieden nach interner und externer Sollwertgenerierung)
Interne Sollwertgenerierung:
0 | Sollwertgenerator nicht aktiv (INACTIVE)
1 | Sollwertgenerator aktiv (RUNNING)
2 | Geschwindigkeitsoverride ist Null (OVERRIDE_ZERO)
3 | Konstante Geschwindigkeit (PHASE_VELOCONST)
4 | Beschleunigungsphase (PHASE_ACCPOS)
5 | Verzögerungsphase (PHASE_ACCNEG)
Externe Sollwertgenerierung:
41 | Externe Sollwertgenerierung aktiv (EXTSETGEN_MODE1)
42 | Interne und externe Sollwertgenerierung aktiv (EXTSETGEN_MODE2)
Enum Fahrphasen / Bewegungszustand für Slaveachsen
Define | Fahrphasen / Bewegungszustand
0 | Slavegenerator nicht aktiv (INACTIVE)
11 | Slave befindet sich in einer Bewegungs-Vorphase (PREPHASE)
12 | Slave ist am Aufsynchronisieren (SYNCHRONIZING)
13 | Slave ist aufsynchronisiert und fährt synchron (SYNCHRON)
Hinweis Vorerst nur für Slaves vom Typ Synchronisierungsgenerator
Enum Tabellen-Haupttypen
Define | Tabellen-Haupttypen
1 | (n*m) Kurvenscheiben Tabellen (Camming)
10 | n*m) Kennlinien Tabellen (Characteristics) (z.B. Hydraulik Ventilkennlinien) es werden nur nichtzyklische Tabellen-Untertypen (1, 3) unterstützt!
16 | n*m) 'Motion Function' Tabellen (MF) es werden nur nichtäquidistante Tabellen-Untertypen (3, 4) unterstützt!
Enum Tabellen-Untertypen
Define | Tabellen-Untertypen
1 | n*m) Tabelle mit äquidistanten Masterpositionen und keiner zyklischen Fortsetzung des Masterprofils (äquidistant linear)
2 | (n*m) Tabelle mit äquidistanten Masterpositionen und einer zyklischen Fortsetzung des Masterprofils (äquidistant zyklisch)
3 | n*m) Tabelle mit nicht äquidistanten aber streng monoton steigenden Masterpositionen und einer nicht zyklischen Fortsetzung des Masterprofils (monoton linear)
4 | (n*m) Tabelle mit nicht äquidistanten aber streng monoton steigenden Masterpositionen und einer zyklischen Fortsetzung des Masterprofils (monoton zyklisch)
Enum Tabellen Interpolationstypen
Define | Tabellen Interpolationstyp zwischen den Stützstellen
0 | Linear-Interpolation (NC_INTERPOLATIONTYPE_LINEAR) (Standard)
1 | 4-Punkt-Interpolation (NC_INTERPOLATIONTYPE_4POINT) (nur für äquidistante Tabellentypen)
2 | kubische Spline-Interpolation über alle Stützstellen ("globaler Spline") (NC_INTERPOLATIONTYPE_SPLINE
3 | gleitende kubische Spline-Interpolation über n Stützstellen ("lokaler Spline") (NC_INTERPOLATIONTYPE_SLIDINGSPLINE)(ab TC V2.11 B1514)
Struktur der Tabellen (CAM) Kopplungs Informationen
Tabellen |  | (CAM) Kopplungs Informationen
nTableID; | 1. | cam table ID
nTableMainType; | 2. | e.g. CAMMING, CHARACTERISTIC, MOTIONFUNCTION
nTableSubType; | 3. | e.g. EQUIDIST_LINEAR, EQUIDIST_CYCLE, NONEQUIDIST_LINEAR, NONEQUIDIST_CYCLE
nInterpolationType; | 4. | e.g. LINEAR, 4POINT, SPLINE
nNumberOfRows; | 5. | number of rows/elements
nNumberOfColumns; | 6. | number of columns
fRawMasterPeriod; | 7. | master period/cycle (raw value, not scaled)
fRawSlaveStroke; | 8. | slave difference per master period/cycle (raw value, not scaled)
fMasterOffset; | 9. | total master offset
fSlaveOffset; | 10. | total slave offset
fMasterScaling; | 11. | total master scaling
fSlaveScaling; | 12. | total slave scaling
fActualMasterAxisPos; | 13. | actual master axis setpos (absolute)
fActualSlaveAxisPos; | 14. | actual slave axis setpos (absolute)
fActualMasterCamPos; | 15. | actual master cam setpos
fActualSlaveCamPos; | 16. | actual master cam setpos
Struktur der charakteristischen Kennwerte
Charakteristische Kennwerte
fMasterVeloNom; | 1. | master nominal velocity (normed: => 1.0)
fMasterPosStart; | 2. | master start position
fSlavePosStart; | 3. | slave start position
fSlaveVeloStart; | 4. | slave start velocity
fSlaveAccStart; | 5. | slave start acceleration
fSlaveJerkStart; | 6. | slave start jerk
fMasterPosEnd; | 7. | master end position
fSlavePosEnd; | 8. | slave end position
fSlaveVeloEnd; | 9. | slave end velocity
fSlaveAccEnd; | 10. | slave end acceleration
fSlaveJerkEnd; | 11. | slave end jerk
fMPosAtSPosMin; | 12. | master pos. at slave min. position
fSlavePosMin; | 13. | slave minimum position
fMPosAtSVeloMin; | 14. | master pos. at slave min. velocity
fSlaveVeloMin; | 15. | slave minimum velocity
fMPosAtSAccMin; | 16. | master pos. at slave min. acceleration
fSlaveAccMin; | 17. | slave minimum acceleration
fSVeloAtSAccMin; | 18. | slave velocity at slave min. acceleration
fSlaveJerkMin; | 19. | slave minimum jerk
fSlaveDynMomMin; | 20. | slave minimum dynamic momentum (NOT SUPPORTED YET !)
fMPosAtSPosMax; | 21. | master pos. at slave max. position
fSlavePosMax; | 22. | slave maximum position
fMPosAtSVeloMax; | 23. | master pos. at slave max. velocity
fSlaveVeloMax; | 24. | slave maximum velocity
fMPosAtSAccMax; | 25. | master pos. at slave max. acceleration
fSlaveAccMax; | 26. | slave maximum acceleration
fSVeloAtSAccMax; | 27. | slave velocity at slave max. acceleration
fSlaveJerkMax; | 28. | slave maximum jerk
fSlaveDynMomMax; | 29. | slave maximum dynamic momentum (NOT SUPPORTED YET !)
fSlaveVeloMean; | 30. | slave mean absolute velocity
fSlaveAccEff; | 31. | slave effective acceleration
Enum Achsregelkreis-Umschalttypen
Define | Achsregelkreis-Umschalttypen
0 | NICHT DEFINIERT
1 | Einfaches Umschalten (ähnlich einem Achsreset) (STANDARD)
2 | Umschalten/Aufsynchronisieren mittels I/D-Anteil des Reglers auf einen internen Initialwert (ruckfrei/stoßfrei)
3 | Umschalten/Aufsynchronisieren mittels I/D-Anteil des Reglers auf einen parametrierbaren Initialwert