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 nachfolgenden Hinweise und Erklärungen unbedingt notwendig.

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.
Deshalb ist die Dokumentation nicht in jedem Fall vollständig auf die Übereinstimmung mit den beschriebenen Leistungsdaten, Normen oder sonstigen Merkmalen geprüft.
Falls sie technische oder redaktionelle Fehler enthält, behalten wir uns das Recht vor, Änderungen jederzeit und ohne Ankündigung vorzunehmen.
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®, Safety over EtherCAT®, TwinSAFE®, XFC® und XTS® 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, DE102004044764, DE102007017835
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

Die TwinCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP0851348, US6167425 mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

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.


NC

TwinCAT NC

Übersicht

Die TwinCAT NC ist die Zusammenfassung der Funktionsgruppen, die der Steuerung und Regelung von Achsen oder synchronisierten Achsgruppen dienen. Eine NC-Task besteht aus einem oder mehreren Kanälen vom Typ PTP-Kanal, Fifo-Kanal oder NCI-Kanal und deren Unterbestandteilen. Nach dem Aufstarten befinden sich die NC-Achsen im Allgemeinen in einem oder mehreren PTP-Kanälen und werden dann, wenn nötig, durch Umkonfiguration in einen anderen Kanal versetzt.

Sicherheitsfunktionalitäten

Informieren Sie sich vor der Inbetriebnahme von Achsen über die TwinCAT Sicherheitsfunktionalitäten.

Interfaces: System Manager und SPS

Das Einfügen einer NC-Task, die Konfiguration der NC-Kanäle und der Achsen sowie die Bedienung der meisten Funktionalitäten ist im System Manager im NC Teil und in den Bibliotheken: NC-Configuration Library, NC-Library, NCI Interpreter Library beschrieben.

Hardware I/O

Input/Output-Verbindungen gibt es für Kanäle, Achsen, Encoder und Drives.

NC-SPS Interface

Das NC-SPS Interface ist eine zyklische Schnittstelle, mit der einerseits die SPS Kanal- und Achsdaten liest und andererseits die NC Kanal- und Achsparameter gesetzt bekommt..

Achsen

TwinCAT unterstützt diverse Achstypen. Das sind Servo-Achsen, Eil-Schleich-Achsen, Schrittmotor-Achsen, 'Low-Cost' Schrittmotor-Achsen, Encoder-Achsen und Simulationsachsen.

Achsbestandteile

Jede Achse besteht, je nach Achs-Typ, aus diversen Bestandteilen. Dazu gehören der Encoder (Geber), der Drive (Antrieb), der Regler (Controller) und der Sollwertgenerator sowie das SPS-Interface. Es gibt auch komplexere Achsen, die aus mehreren Encodern, umschaltbaren Reglern oder wechselnden Sollwertgeneratoren bestehen.

Achsinbetriebnahme

Zur Achsinbetriebnahme gehören insbesondere die Kenntnis und Nutzung der Sicherheitsfunktionalitäten der NC sowie das Ergreifen der notwendigen Sicherheitsvorkehrungen und die Einhaltung einer bestimmten Reihenfolge der Inbetriebnahmeschritte der Achsbestandteile (Encoder, Antrieb und Regler) sowie die Einstellung der Achsparameter.

PTP

Die PTP (Point To Point (Punkt zu Punkt)) Achsfunktionalität ist eine Steuerung zur eindimensionalen Positionierung von Achsen, speziell Servo-Achsen. Eindimensional heißt nicht unbedingt linear, sondern in einem vorgegebenen Koordinatensystem (kartesische Koordinaten, Kreiskoordinaten) wird eine Komponente interpoliert.

Die PTP ist die Grundlage der gesamten TwinCAT NC, da sich die Achsen bei Systemstart im Normalfall im PTP-Modus befinden und somit lagegeregelt sind. Die erweiterten TwinCAT NC Funktionalitäten werden von den PTP-Modi durch Umkonfiguration (FIFO, NCI) oder Kopplung (alle Slavetypen) erreicht.

Slave-Achsen

Achsen deren Sollwerte (Position, Geschwindigkeit, Beschleunigung) in funktionaler Abhängigkeit von den Sollwerten anderer Achsen (Master-Achsen, virtuellen Achsen, Slave-Achsen, Simulationsachsen) - insbesondere von deren Positions-Sollwerten - generiert werden heißen Slave-Achsen. Diese Achsen sind i.A. – bis auf An- und Abkoppeln - ohne eigene Funktionalität (speziell ohne Start und ohne Stop) und laufen über eine Streckensteuerung synchron zur Master-Achse (die selber wieder eine Slave-Achse sein kann).

Bei der Ankopplung einer Master-Achse (zukünftige Slave-Achse) an eine Master-Achse behält die Slave-Achse ihre eigene Lagereglung.

FIFO

Die TwinCAT NC FIFO-GRUPPE bietet die Möglichkeit, extern generierte Sollwerte einer Gruppe von Achsen über die NC auszugeben und die Achsgruppe somit synchron zu verfahren. Dabei liegen die Positionssollwerte der Achsen in Abhängigkeit von einer festen aber beliebigen Zykluszeit (FIFO-Zykluszeit) in Form eines FIFO vor, das seinerseits über die SPS nachgefüllt wird. Das FIFO dient der zeitgesteuerten synchronen Abarbeitung der Position einer Gruppe von Achsen. Das FIFO enthält eine fest eingestellte Anzahl von vorgegebenen Stützstellen, zwischen denen die NC Position interpoliert und daraus die Geschwindigkeit ermittelt. Die Achspositionen des FIFO werden

  • entweder aus einer in der SPS liegenden, off-line berechneten, großen Tabelle ausgelesen oder
  • durch eine Funktion in der SPS erzeugt

und im SPS Zyklus permanent durch ein SPS-Programm an das Fifo der NC durchgereicht.

NCI

Die TwinCAT NCI ist die Funktionsgruppe (bestehend aus Interpreter/SPS-Bausteine, Satzvorbereitungstask, Look Ahead, Satzausführungstask, zyklisches Kanalinterface, zyklisches Achsinterface) zur Steuerung vorgegebener synchronisierter Achsbewegungen in drei Dimensionen gemäß den DIN 66025 Konventionen und diversen Erweiterungen. On-line Eingriffe auf allen Ebenen (Interpreter-Stopp, programmierter Halt, Override) sind möglich.


Sicherheitsfunktionalitäten

Zur Überwachung der Existenz und des regelmäßigen Updates des zyklischen Interfaces zwischen SPS und NC gibt es eine Überwachungsfunktion (Watchdog). Des weiteren gibt es für jede Task eine Tasklaufzeitüberschreitungsüberwachung. Für die Achsen gibt es eine Schleppabstandsüberwachung und eine Endlagenüberwachung. Schließlich gibt es auch auf der Hardwareseite Überwachungsmöglichkeiten.

Informieren Sie sich über weitere Sicherheitsmaßnahmen bei der Achsinbetriebnahme.

Watchdog für zyklisches Achsinterface zwischen SPS und NC

Grundsätzlich sollte die Watchdog (Funktionsüberwachungs-) Funktionalität zwischen dem zyklischen Achsinterface der SPS und NC aktiviert werden. Dies ist der Fall, wenn ein Wert ungleich Null für den Watchdog eingetragen wird. Dieser Wert ist die Anzahl aufeinanderfolgender Taskzyklen ab der der Watchdog anschlägt, wenn keine neue Information zwischen NC und SPS transportiert worden ist. Wenn dieser Watchdog ausgelöst wird, wird das jeweilige Achsinterface (PlcToNc oder NcToPlc) gelöscht, d.h. genullt.

Beispiel: Wenn die SPS gestoppt wird, oder innerhalb der SPS eine Endlosschleife programmiert worden ist oder eine FPU Exception auftritt, ist bei aktivem Watchdog sichergestellt, dass die NC Achsen mittels der durch den Watchdog verursachten Wegnahme der Regler- und Vorschubfreigabe gestoppt werden.

Überwachung bei Tasklaufzeitüberschreitung

Zu Diagnose- und Analysezwecken sollte die Überwachung der Tasklaufzeitüberschreitung aktiviert sein. Dies gilt sowohl für die SAF-Task (I/O Task der NC) als auch für die SVB-Task der NC. Inhaltlich hat diese Überwachung keinen Einfluss, aber falls es einmal zu einer unerwarteten Tasklaufzeitüberschreitung kommen sollte, wird hierauf mit einer Meldebox und einem zusätzlichen Eintrag in der Ereignisanzeige reagiert.

Schleppabstandsüberwachung, Endlagenüberwachung, Zielpositionskontrolle

Jede Achse sollte schon zu Beginn einer Achsinbetriebnahme mit aktiver "Schleppabstandsüberwachung" und aktiver "Positions-Endlagenübewachung" gefahren werden. Auch wenn eine noch nicht optimierte Achse mit teilweise sehr großen Schleppfehlern fährt, sollte man diese elementaren Überwachungsmechanismen nicht abschalten, sondern entsprechend großzügig parametrieren. Weiterhin gibt es die Möglichkeit, die Zielposition automatisch zu kontrollieren.

Richtungsinversion, Richtungsüberwachung

Es gibt Funktionalitäten, z.B. die Positionskompensation auf einer Masterachse, die eine Inversion der Bewegungsrichtung verursachen können. Zur Vermeidung einer ungewollten Fahrtrichtung gibt es eine richtungsabhängige Vorschubfreigabe, die die Achse instantan stoppt, wenn sie in die falsche Richtung fährt.

Maximalgeschwindigkeit

Ferner gibt es noch die Möglichkeit, die maximal erlaubte Fahrgeschwindigkeit einer Achse in den Achsparametern festzulegen, oder die Ausgabe des Drives prozentual zu begrenzen.
Beispiel: Es kann vorkommen, dass versehentlich durch Änderung der Drive- oder Encoderpolarität der Wirkungssinn des Achsregelkreises (Mitkopplung) geändert wird, und die Achse in aller Konsequenz mit maximalem Ausgabewert gegen die mechanische Endlage rast.

Achtung: es gibt Situationen, in denen die Maximalgeschwindigkeit überschritten werden kann:

  1. Durch Positionskompensation von Master- oder Slave-Achsen.
  2. Durch Einstellung oder Änderung des Koppelfaktors einer Slave-Achse oder (indirekt) der fliegenden Säge.
  3. Durch extern generierte Daten im FIFO oder den Tabellen-Slave-Achsen.

Stopp

Alle Masterachsen sind jederzeit zu stoppen.

Achtung: Die fliegende Säge ist die einzige Slaveachse die über eine Stopp-Funktion verfügt. Es gibt aber Situationen, in denen eine fliegende Säge nicht gestoppt werden kann.

Slaveachsen sind zu stoppen indem sie on-line in Masterachsen umgewandelt werden, die dann stoppbar sind. Die FIFO-Achsen sind stoppbar und die NCI Gruppe ist stoppbar.

Hardwareüberwachung

Falls es für eine Anlage in einer Notfall-Situation (Notaus, Watchdog, etc.) aus mechanischen oder sonstigen Gründen auf keinen Fall erlaubt ist, die Achsen im nächsten I/O Zyklus abrupt stillzusetzen (z. B. schlagartig 0 V auszugeben), kann dies nur sicher durch die vorhandene Antriebshardware geschehen. Hierzu bieten die meisten Hersteller einfache digitale Beschaltungsmöglichkeiten, die sicherstellen, dass ein Achse in einer definierten Art und Weise (Bremsrampe, Stillstandfenster für elektrische Abschalten der Regelung und Zuschalten der Bremse, etc.) stillgesetzt wird.


Übersicht

TwinCAT unterstützt diverse Achstypen. Das sind Servo-Achsen, Eil-Schleich-Achsen, Schrittmotor-Achsen, Encoder-Achsen und Simulationsachsen.

Allgemeines

Interfaces, Components (ECDSetpointGenerator), Sicherheitsfunktionalitäten, Vorsteuerung und Steuerung, Betriebszustände, Inbetriebnahme

Achs-Regelkreis

Der Achsregelkreis besteht aus der Geschwindigkeitsvorsteuerung, dem Positions-Regler und einer Reglerlimitierung.

Servo Achsen

Slave-Achsen

Achsen deren Sollwerte (Position, Geschwindigkeit, Beschleunigung) in funktionaler Abhängigkeit von den Sollwerten anderer Achsen (Master-Achsen, virtuellen Achsen, Slave-Achsen, Simulationsachsen) - insbesondere von deren Positions-Sollwerten - generiert werden heißen Slave-Achsen. Diese Achsen sind i.A. – bis auf An- und Abkoppeln - ohne eigene Funktionalität (speziell ohne Start und ohne Stop) und laufen über eine Streckensteuerung synchron zur Master-Achse (die selber wieder eine Slave-Achse sein kann).

Bei der Ankopplung einer Master-Achse (zukünftige Slave-Achse) an eine Master-Achse behält die Slave-Achse ihre eigene Lagereglung.

Eine besondere Klasse bilden die Slave-Achsen von NCI-Gruppen.

Eil-Schleich Achsen

Der TwinCAT-Achstyp Eil-/Schleich-Achse (Two-Speed) ermöglich die Positionierung einer Eil-/Schleich-Achse. Eine solche Eil-/Schleich-Achse kann physikalisch aus einem Motor mit zwei Geschwindigkeiten (Umschaltung der Polpaarzahl) bestehen, oder alternativ aus einem Motor, der mit Hilfe eines Frequenzumrichters in zwei Geschwindigkeitsstufen betrieben werden kann.

Schrittmotor Achsen

"Low Cost" Schrittmotorachse mit digitaler Ansteuerung (24V / 2A)

Die 'Low Cost Schrittmotorachse' wird in der Basisversion ohne physikalischen Encoder betrieben (daher Simulations-Encoder). Dies bedeutet, dass es keine wirkliche physikalische Rückkopplung zwischen Soll- und Istwerten gibt, und somit die Achse nicht geregelt, sondern nur gesteuert betrieben wird. Hierbei wird davon ausgegangen, dass im Antrieb kein Schlupf auftritt und dass die Achse exakt dem vorgegeben Schrittmuster (Sollwertprofil) folgen kann. Trotz dieser aus Kostengründen gegebenen Einschränkung, kann die Schrittmotorachse physikalisch referenziert werden, da der Simulations-Encoder als Inkremental-Encoder implementiert ist und praktisch alle Eigenschaften unterstützt.

Encoder Achsen

Simulationsachsen

Funktionsübersicht der einzelnen Achstypen

Funktionalität | Kontinuierliche Achse (Servo-Achse) | Encoder-Achse (Virtuelle-Achse) | Eil-/Schleichachse (Two Speed) | Low Cost Schrittmotorachse (digitale E/A's)
TwinCAT PTP (Standard) | √ |  | √ | √
TwinCAT PTP (Online Change of Position, Endpos, etc.) | √ |  |  |
TwinCAT Master (möglicher Master für eine Slave-Achse) | √ | √ |  |
TwinCAT Slave | √ |  |  |
TwinCAT Camming | √ |  |  |
TwinCAT Flying Saw | √ |  |  |
TwinCAT NCI | √ |  |  |


Allgemeines

Überblick

Interfaces, Komponenten, Sicherheitsfunktionalitäten, Vorsteuerung und Regelung, Betriebszustände

Interfaces

System Manager, SPS-Bausteine, Achs-Interface, Kanal-Interface

Komponenten

Encoder (Geber), Regler (Controller), Sollwertgenerator, Drive (Motor und Leistungsteil)

Sicherheitsfunktionalitäten

Zykluszeitüberwachung Saf-Task, Watchdog im zyklischen NC-SPS-Interface, Softwareendlagenüberwachung, Schleppabstandsüberwachung, Vorschub-Freigabe, Regler-Freigabe, Maximal-Geschwindigkeit (Achtung: kompensation & - slave - koppelfaktor)

Vorsteuerung und Reglung

Regler (Controller), Sollwertgenerator, Referenzgeschwindigkeit, Anteilige Wertung

Betriebszustände

Hat Auftrag, Ist betriebsbereit &&&

Inbetriebnahme

Not-Aus, Freigaben, Skalierung, Offsetabgleich, Referenzgeschwindigkeit &&&&


Achs-Regelkreis

Standard Achs-Regelkreis (Servo drive)

Erweiterter Achs-Regelkreis (Servo drive)

Vereinfachter Positions- und Geschwindigkeitsregelkreis mit Strom- / Momentenschnittstelle (Servo drive)

Erweiterter Positions- und Geschwindigkeitsregelkreis mit Strom- / Momentenschnittstelle (Servo drive)


Servo-Achsen

Überblick

Normal

Interfaces

Normal

Komponenten

Normal

Spannungsausgabe

Normal

Betriebszustände

Normal


Eil-Schleich-Achsen

TwinCAT NC Achsen

Eil-/Schleich-Achsen

Der TwinCAT-Achstyp Eil-/Schleich-Achse (Two-Speed) ermöglich die Positionierung einer Eil-/Schleich-Achse. Eine solche Eil-/Schleich-Achse kann physikalisch aus einem Motor mit zwei Geschwindigkeiten (Umschaltung der Polpaarzahl) bestehen, oder alternativ aus einem Motor, der mit Hilfe eines Frequenzumrichters in zwei Geschwindigkeitsstufen betrieben werden kann.

Die typische Positionierung einer solchen Achse erfolgt zunächst im Eilgang bis auf einen parametrierbaren Abstand von der Zielposition entfernt (Schleichweg in pos. oder neg. Richtung) . Ab dieser Position wird in den Schleichgang geschaltet, damit die physikalische Geschwindigkeit (Ist-Geschwindigkeit) auf eine langsamere konstante Geschwindigkeit abklingt. In noch kürzerer Entfernung zum Ziel (Bremsweg) wird dann auch der Schleichgang abgeschaltet und nach einer parametrierbaren Zeit (Verzögerungszeit für Bremseinfall) schließlich die Haltebremse aktiviert.

Dieser besondere Ablauf der Positionierung dient ausschließlich dem Zweck, dass die Achse möglichst exakt und reproduzierbar die Zielposition erreicht.

Falls sich in Abhängigkeit von der zuletzt gefahrenen physikalischen Fahrtrichtung eine Positionierungenauigkeit ergibt (typischer Effekt einer Lose), so kann ein Schleifenweg aktiviert werden. Dieser Schleifenweg bewirkt, dass die Zielposition immer aus der gleichen Richtung angefahren wird und somit der Einfluss der Lose reduziert wird. Bei einem Achsstopp wird prinzipiell der gleiche Ablauf wie bei einer Positionierung ohne Schleifenweg durchlaufen. Allerdings liegt die Priorität bei einem Achsstopp auf einem kurzen Anhalteweg bzw. auf einer kurzen Anhaltezeit und nicht auf der Positioniergenauigkeit. Um bei einem Stopp einen möglichst kurzen Anhalteweg zu erreichen, gibt es den separaten Parameter (Schleifenweg für Stopp).

Allgemein

  • Für die physikalische Ansteuerung der Achse stehen 2 gleichwertige Möglichkeiten zur Verfügung, die in Form von diskreten Fahrsignalen vorliegen.
    • Nutzung der 6 Bits im ControlByte
      bMinusHigh | Eilgang, Richtung negativ
      bMinusLow | Schleichgang, Richtung negativ
      bPlusHigh | Eilgang, Richtung positiv
      bPlusLow | Schleichgang, Richtung positiv
      bBreak | Bremsbit
      bBreakInv | invertiertes Bremsbit
    • Nutzung der 6 Bits im ExtControlByte
      bDirectionMinus | Richtung negativ
      bDirectionPlus | Richtung positiv
      bVeloLow | Schleichgang
      bVeloHigh | Eilgang
      bBreak | Bremsbit
      bBreakInv | invertiertes Bremsbit
  • Eine Master-Slave-Kopplung ist mit Eil-/Schleich-Achsen nicht möglich.
  • Ein Achsstart wird nur innerhalb einer Entfernung zum Zielpunkt ausgeführt, die echt größer als der parametrierte Bremsweg ist.

Geschwindigkeit und Override

IO-Konfiguration: Drive-Interface für Eil-/Schleichachsen NC->IO (12 Byte)

Parameter der Eil-/Schleichachsen

Parameter | Beschreibung
Schleichweg pos. Richtung | Der Schleichweg in positiver Richtung gibt die Wegdistanz zur Zielposition an, bei dessen Unterschreitung von der Eilgeschwindigkeit auf die Schleichgeschwindigkeit gewechselt wird, wenn die Fahrrichtung positiv ist. Wenn ein Schleifenweg angewählt ist, wird diese Distanz auf den Umkehrpunkt der Bewegung bezogen. Diese Distanz ist mit Δp1 in der Beispielpositionierung 1 bezeichnet.
Schleichweg neg. Richtung | Der Schleichweg in negativer Richtung gibt die Distanz zur Zielposition an, bei dessen Unterschreitung von der Eilgeschwindigkeit auf die Schleichgeschwindigkeit gewechselt wird, wenn die Fahrrichtung negativ ist. Wenn ein Schleifenweg angewählt ist, wird diese Distanz auf den Umkehrpunkt der Bewegung bezogen.
Bremsweg pos. Richtung | Der Bremsweg in positiver Richtung gibt die Wegdistanz zur Zielposition an, bei dessen Unterschreitung die Schleichgeschwindigkeit abgeschaltet wird, wenn die Fahrrichtung positiv ist. Diese Distanz ist mit Δp2 in der Beispielpositionierung 1 bezeichnet.
Bremsweg neg. Richtung | Der Bremsweg in negativer Richtung gibt die Wegdistanz zur Zielposition an, bei dessen Unterschreitung die Schleichgeschwindigkeit abgeschaltet wird, wenn die Fahrrichtung negativ ist.
Verzögerungszeit für Bremseinfall in pos. Richtung | Diese Wartezeit gibt die Einschaltverzögerung der Bremse nach dem Abschalten der Schleichgeschwindigkeit an, wenn die Fahrtrichtung positiv ist. In der Beispielpositionierung 1 liegt diese Zeit wischen den Zeitpunkten T4 und T5.
Verzögerungszeit für Bremseinfall in neg. Richtung | Diese Wartezeit gibt die Einschaltverzögerung der Bremse nach dem Abschalten der Schleichgeschwindigkeit an, wenn die Fahrtrichtung negativ ist.
Verzögerungszeit Eil- auf Schleichgeschwindigkeit | Diese Wartezeit liegt zwischen dem Abschalten der Eilgeschwindigkeit und dem Einschalten der Schleichgeschwindigkeit. In der Beispielpositionierung 1 liegt diese Zeit wischen den Zeitpunkten T2 und T3.
Schleichweg für Stopp | Der Schleichweg für den Stopp gibt die Distanz an, die nach dem Aufruf des Stopps mit Schleichgeschwindigkeit zurück gelegt wird. Dieser Schleichweg wir im Normalfall kürzer gewählt als die Schleichwege in positiver und negativer Richtung, da die Achse möglichst schnell zum Stillstand kommen sollte und nicht die exakte Positionierung im Vordergrund steht. Diese Distanz ist mit Δp1 in der Beispielpositionierung 3 bezeichnet.
Bremsfreigabeverzögerung | Bei dem Start der Achse wird die Bremse sofort gelöst und nach Ablauf der Bremsfreigabeverzögerung wird je nach Weglänge die Eil- oder Schleichgeschwindigkeit aktiviert. In der Beispielpositionierung 1 liegt diese Zeit wischen den Zeitpunkten T0 und T1.
Pulszeit in positiver Richtung | Dieser Parameter wird nicht ausgewertet und hat somit keine Wirkung.
Pulszeit in negativer Richtung | Dieser Parameter wird nicht ausgewertet und hat somit keine Wirkung.

Parameter | Beschreibung
BETRIEBSART: Schleifenweg | Mit diesem Flag kann der Schleifenweg aktiviert werden. Der Schleifenweg dient dazu, die Zielposition immer aus der gleichen Richtung anzufahren. Bei einem positiven (negativen) Schleifenweg wird eine Zielposition in positiver (negativer) Richtung um diesen Schleifenweg verlängert und das Ziel dann aus der entgegen gesetzten Richtung angefahren. Folglich wird bei einem positiven Schleifenweg die Zielposition immer mit negativer Geschwindigkeit angefahren und bei einem negativen Schleifenweg mit positiver Geschwindigkeit.
Schleifenweg (+ / -) | Der Betrag des Schleifenwegs gibt die Distanz an, um die die Zielposition bei Bedarf überfahren wird, damit es möglich ist aus der gewünschten Richtung auf die Zielposition zu fahren. Diese Distanz ist mit creep distance (Schleifenweg) in der Beispielpositionierung 2 bezeichnet.

Bewegungszustand der Achse (nAxisState im zyklischen Interface):

nAxisState | Beschreibung
0 | Sollwertgenerator nicht aktiv
20 | Achse im Stillstand
21 | Hauptfahrphase: Eil- oder Schleichfahrt in Abhängigkeit der Startgeschwindigkeit und des Overrides
22 | Bremsphase: Verzögerungszeit von Eil- auf Schleichgeschwindigkeit aktiv
23 | Bremsphase: Schleichfahrt
24 | Bremsphase: Verzögerungszeit für Bremseinfall aktiv

1) ohne Schleifenweg

2) mit Schleifenweg

Beispielpositionierungen:

1) Positionierung A → B, ohne Schleifenweg

2) Positionierung A → B, mit einem Schleifenweg > 0.0

3) Stopp-Aufruf bei aktiver Positionierung


Schrittmotor-Achsen

Die 'Schrittmotorachse' wird in der Basisversion ohne physikalischen Encoder betrieben. Dies bedeutet, dass es keine wirkliche physikalische Rückkopplung der Ist-Position gibt. Durch das Arbeitsprinzip des Schrittmotors ist die Anzahl der ausgeführten Schritte exakt gleich der Anzahl der ausgegebenen Pulse und somit kann der Schrittzähler als Pseudo-Encoder benutzt werden. Dabei ist zu beachten, dass dieser Zusammenhang bei Überlastung des Motors verloren geht. Das nachstehende Diagram zeigt den Zusammenhang zwischen Drehmoment und Abdrängwinkel.

Diagram 1: Abhängigkeit des relativen Drehmoments (M/Mmax) vom Abdrängwinkel.

Hinweis: Die Winkelangaben beziehen sich auf einen vollständigen Impulszyklus. Bei einem Motor mit 200 Pulsen bei Vollschritt-Betrieb entspricht der dargestellt Bereich also 3.6 Grad an der Motorwelle.

Wenn der Motor im Stillstand oder in Bewegung ein Drehmoment aufbringen muss wird der Rotor gegenüber der drehmomentfreien Idealstellung um einen entsprechenden Winkel abgedrängt werden. Dies entspricht dem Verhalten einer nichtlinearen Feder im Antriebsstrang. Abgesehen von der daraus resultierenden Positionsabweichung des angetriebenen Maschinenteils ist dies unproblematisch, solange nicht der obere oder untere Scheitelpunkt erreicht wird. In diesem Fall sinkt das Drehmoment des Motors ab und das weiterhin anstehende Lastmoment wird den Motor immer weiter abdrängen. Der Motor ist dann nicht in der Lage, zum korrekten Winkel zurückzukehren und durchläuft einen vollständigen Polzyklus. Erst dann besteht die Chance, dass die Magnetfelder von Rotor und Stator stabil ineinander einrasten. Dies wird jedoch nur dann zu einem stabilen Verhalten führen, wenn das Lastmoment zu diesem Zeitpunkt deutlich unter dem Drehmoment des Motors liegt. In diesem Fall hat sich der Motor dann um einen vollständigen Zyklus versetzt und muss neu referenziert werden. Allerdings ist diese Situation ohne eine entsprechende Sensorik nicht erkennbar.

Eine völlig andere Situation tritt ein, wenn das Lastmoment durch das Versetzen um einen Polzyklus nicht praktisch unmittelbar nachlässt. Dies ist vor allem dann der Fall, wenn das Lastmoment aus der Beschleunigung entsteht. Jetzt wird der Motor nicht am nächsten stabilen Punkt mit einem Versatz von einem Polzyklus einrasten, sondern diesen Punkt ebenfalls durchlaufen. Er verliert jetzt gegenüber dem aufgeprägten Statorfeld immer mehr an Geschwindigkeit und durchläuft jeden weiteren Impulszyklus ohne dabei ein Netto-Drehmoment zu erzeugen. Dies führt dazu, dass der Motor unter erheblicher Geräuschentwicklung austrudelt. Am Ende durchläuft das Fahrprofil einen Bereich absinkender Impulsfrequenzen. Abhängig vom Lastmoment wird der Motor mehr oder weniger kurz vor dem Ende des Profils ruckartig beschleunigen und dem Rest des Profils folgen. Letztlich hat er dann jedoch einen mehr oder weniger großen Teil des Profils und somit des Weges nicht ausgeführt. Auch dies ist ohne eine entsprechende Sensorik nicht festzustellen.

Bei der Auslegung eines Schrittmotors ist besonders darauf zu achten, dass die Drehzahl einen starken Einfluss auf das verfügbare Drehmoment besitzt. Das nachstehende Diagramm zeigt den Zusammenhang für eine typischen Motor.

Diagramm2: Abhängigkeit des Drehmoments (Nm) von der Drehzahl (RPM) für einen typischen Schrittmotor.

Der Motor hat neben dem Lastmoment aus dem Prozess auch die Momente aufzubringen, die durch die Dynamik des Fahrprofils entstehen. Wenn das Gesamt-Moment wie im rot eingezeichneten Beispiel 0.3 Nm beträgt darf dieser Motor also maximal mit einer Drehzahl von 1200 RPM betrieben werden. In der Praxis sollte jedoch unbedingt eine angemessene Momentenreserve eingeplant werden.

Konfiguration der Schrittmotorachse

Achs-Typ: 'Kontinuierliche Achse (inkl. SERCOS)'

Encoder-Typ: 'Encoder an KL5051/KL2502-30K/KL2521'

Controller-Typ: z. B. 'Positionsregler P'

Drive-Typ: 'Antrieb an KL4XXX/KL2502-30K/KL2521'

Referenzieren

Wie üblich muss das digitale Referenziernockensignal mittels der SPS in das Achsinterface zur NC (PlcToNc-Achsstruktur) gespiegelt werden. Hierbei gilt der übliche Ablauf für das Referenzieren einer Achse, wobei eben auf die Hardwareeigenschaft "Latchen einer Position", veranlasst durch einen Syncimpuls, verzichtet werden muss. Statt dessen dient beim Herunterfahren vom Referenziernocken die fallende Flanke als örtliches Ereignis um eine Referenzposition zu ermitteln. Die Genauigkeit des Referenziervorganges kann durch Reduzierung der Geschwindigkeit beim Herunterfahren vom Nocken beliebig erhöht werden (maximal mögliche Genauigkeit beträgt ein Motorschritt).

Inbetriebnahmehinweise

Im Unterschied zu einer Achse mit Analog-Sollwertausgabe z.B. über eine KL4032 muss beim Betrieb eines Schrittmotorleistungsteils an einer KL2502-0010 oder -3020 oder KL2521 die Klemme entsprechend dem Einsatzfall parametriert werden.

Parametrierung der KL2502-0010 oder -3020

Hinweis: Diese Varianten der KL2502 unterscheiden sich in der Hardware von der Basis-Version. Die dadurch erzielte Erhöhung aller internen Arbeitsfrequenzen macht einen erweiterten Arbeitsbereich zugänglich, wird jedoch derzeit in der KS2000 Software nicht berücksichtigt.

Beispiel: Typische Einstellung einer KL2502-0010 oder -3020.

Parametrierung der KL2521

Die 'Grund-Frequenz 1' ist so einzustellen, dass die Klemme bei Vollaussteuerung die im jeweiligen Einsatzfall maximal nutzbare Frequenz erzeugt. Wird hier ein zu kleiner Wert eingetragen erreicht die Achse nicht die vorgesehene Geschwindigkeit. Bei einer zu hohen Einstellung wird die Auflösung schlechter sein als es mit dieser hoch auflösenden Klemme möglich wäre. Ist dies akzeptabel, dann muss zumindest durch entsprechend eingestellte Begrenzungen sicher gestellt werden, dass die Achse nicht mit einer zu hohen Geschwindigkeit verfahren wird.

Die Betriebsart der Klemme ist entsprechend der Signaldefinition des Leistungsteils einzustellen. In diesem Beispiel wird ein Richtungssignal und ein Puls erwartet.

Die Bezugsfrequenz für das in Diagram 2 eingezeichnete Beispiel wurde mit der Formel BF = N * S / 60 berechnet. Dabei ist BF die Frequenz in Hertz, N die Drehzahl in RPM und S die Schrittzahl des Motors in der gewählten Betriebsart.

Rechenbeispiel:

BF = 1200 [RPM] * 200 [1/R] / 60 [s/min] = 4000 Hz

Das nachfolgende Beispiel zeigt die korrekte Einstellung für dieses Beispiel.

Beispiel: Typische Einstellung einer KL2521.

Einstellungen in der TwinCAT NC

Der Skalierungsfaktor des Encoders (Sf) ist aus dem Vorschub pro Motorumdrehung (VU) und der Schrittzahl (S) des Motors in der gewählten Betriebsart zu errechnen:

Sf = VU / S

Beim Einsatz einer KL2521 ist die Bezugsgeschwindigkeit (Vref) des Antriebs aus der Bezugsfrequenz (BF) und dem Skalierungsfaktor (Sf) des Encoders zu errechnen, die Bezugsausgabe ist hierzu auf 1.0 einzustellen. Wenn die Bezugsfrequenz der Klemme entsprechend der maximal nutzbaren Frequenz eingestellt ist kann in den Globalen Achsdaten die 'Maximal erlaubte Geschwindigkeit' und die 'Eilganggeschwindigkeit (G0)' auf maximal etwa 90% der Bezugsgeschwindigkeit eingestellt werden. Wurde die Bezugsfrequenz höher gewählt darf maximal etwa 90% der Geschwindigkeit eingetragen werden, die sich bei exakter Einstellung der Bezugsfrequenz ergeben würde.

Vref = BF * Sf

Kommt eine KL2502-0010 oder -3020 zum Einsatz kann die Bezugsgeschwindigkeit des Antriebs in zwei alternativen Darstellungen eingegeben werden. Die erste Möglichkeit benutzt eine Hochrechnung der Ausgabefrequenz auf den vollen Werteumfang des Sollwertes, auch wenn diese Frequenz von der Klemme nicht dargestellt werden kann. Dabei stellt S die Schrittzahl des Motors in der gewählten Betriebsart dar. Die dabei Bezugsfrequenz (BF) ist das Produkt des maximalen Ausgabewertes und der Frequenzskalierung und ergibt sich zu 32768*8=262144.

Vref = BF * S = 262144 * S

Alternativ kann die Bezugsgeschwindigkeit des Antriebs bei der gewählten Maximaldrehzahl vorgegeben werden. Dazu ist die entsprechende Maximalfrequenz (Fmax) und die Schrittzahl (S) des Motors in der gewählten Betriebsart zu verrechnen.

Vref = Fmax * S

Als Bezugsausgabe ist dann der zugehörige relative Aussteuerungsfaktor (A) anzugeben.

A = Fmax / BF = Fmax / 262144

Alle anderen Parameter der Achse sind in der selben Weise einzustellen wie bei einer Servo-Achse. Dabei ist insbesondere bei der Einstellung der Beschleunigung, Verzögerung und Maximal-Ruck durch empirische Tests mit der maximalen im Betrieb zu erwartenden bewegten Masse zu testen. Es darf auch hierbei nicht dazu kommen, dass die Achse wegen Überlastung einen Teil der Bewegung ausläst.

Hinweis: Schrittmotoren weisen eine mehr oder weniger ausgeprägte Eigenresonanz auf. Dies kann bei sehr flachen Rampen oder ungünstig gewählten Sollgeschwindigkeiten zu Problemen führen. Die Achse wird dann ein erhebliches Geräusch erzeugen und kann wegen der Überlagerung der Fahrbewegung mit einer niederfrequenten Zitterbewegungen durch kurzzeitige Überlastung um einen oder mehrere Polzyklen in beliebiger Richtung versetzen und die korrekte Referenzierung verlieren.


"Low Cost" Schrittmotor-Achsen mit digitaler Ansteuerung (24V / 2A)

Die 'Low Cost Schrittmotorachse' wird in der Basisversion ohne physikalischen Encoder betrieben (daher Simulations-Encoder). Dies bedeutet, dass es keine wirkliche physikalische Rückkopplung zwischen Soll- und Istwerten gibt, und somit die Achse nicht geregelt, sondern nur gesteuert betrieben wird. Hierbei wird davon ausgegangen, dass im Antrieb kein Schlupf auftritt und dass die Achse exakt dem vorgegeben Schrittmuster (Sollwertprofil) folgen kann. Trotz dieser aus Kostengründen gegebenen Einschränkung, kann die Schrittmotorachse physikalisch referenziert werden, da der Simulationsencoder als Inkremental-Encoder implementiert ist, und praktisch alle Eigenschaften unterstützt.

Konfiguration der "Low Cost" Schrittmotorachse

Achs-Typ: 'Low Cost Schrittmotorachse (dig. E/A)'

Encoder-Typ: 'Simulations-Encoder'

Controller-Typ: 'Schrittmotor-Regler'

Drive-Typ: 'Schrittmotor-Antrieb'

Referenzieren

Wie üblich muss das digitale Referenziernockensignal mittels der SPS in das Achsinterface zur NC (PlcToNc-Achsstruktur) gespiegelt werden. Hierbei gilt der übliche Ablauf für das Referenzieren einer Achse, wobei eben auf die Hardwareeigenschaft "Latchen einer Position", veranlasst durch einen Syncimpuls, verzichtet werden muss. Statt dessen dient beim Herunterfahren vom Referenziernocken die fallende Flanke als örtliches Ereignis, um eine Referenzposition zu ermitteln. Die Genauigkeit des Referenziervorganges kann durch Reduzierung der Geschwindigkeit beim Herunterfahren vom Nocken beliebig erhöht werden (maximal mögliche Genauigkeit beträgt ein Motorschritt).

Inbetriebnahmehinweise

An dieser Stelle sei auf einige technische Beschränkungen eines Schrittmotors hingewiesen, wobei die alle empfohlenen Tests unter Last gemacht werden müssen.

  1. Die maximal erlaubte Grenzfrequenz f_v_max [kHz] des Schrittmotors in Bewegung darf nicht überschritten werden, da man sonst den linearen Bereich der Ansteuerung verlässt und in die Antriebsbegrenzung gerät.
  2. Die maximale Start- und Stoppfrequenz f_start_stop_max [kHz] beim Starten und Stoppen der Achse darf nicht überschritten werden, da sonst der Schrittmotor in dieser Anfangs- und Endphase der Positionierung "Schritte verlieren" kann.
  3. Die maximale Beschleunigung und Verzögerung a_max / d_max [kHz/s] darf in der Start- und Stoppphase der Bewegung nicht überschritten werden, da sonst auch hier "Schritte verloren" gehen können.
  4. Wenn der Schrittmotor überfordert ist, dann reißt der Kontakt zum antreibenden elektromagnetische Feld ab und der Motor bleibt (chaotisch zitternd) stehen. Zur Inbetriebnahme sollte der Motor daher in einer ersten Testserie mit schwachen Rampen (niedrige Beschleunigung und Verzögerung) langsam monoton steigend auf die gewünschte Sollgeschwindigkeit (1. Testparameter) gefahren werden, um sicher zu stellen, dass der Motor auch folgen kann. In einer zweiten Testserie sollten - bei fester Sollgeschwindigkeit - die Rampen langsam monoton steigend auf die gewünschte Beschleunigung/Verzögerung (2. Testparameter) gefahren werden.

IO-Konfiguration des Drives

Die Verbindung (Mapping) der logischen NC-Achsausgänge (Drive-Outputstruktur, 'nCtrl'-Byte bzw. 'nExtCtrl'-Byte) mit den physikalischen digitalen IO-Ausgängen (24V / 2A) muss im TwinCAT-Systemmanager noch manuell durchgefuert werden. Hierbei werden einzelne Bits aus dem 'nCtrl-Byte' bzw. 'nExtCtrl-Byte' mit den jeweiligen digitalen Ausgängen verknüpft. Um ein einzelnes Bit aus einem Byte (8 Bit) auszuwählen, muss ein Byteoffset im Wertebereich von 0 bis 7 eingetragen werden. Möchte man beispielsweise das zweite Bit aus einem Byte adressieren, so muss als Byteoffset der Wert 1 eingetragen werden.

Konfigurationsparameter

Daten-typ Byte Bit

Def.-Bereich Variable-Name Beschreibung
1 INT32 0 – 3 __ __ nOutData1 Drive-Output Ausgabedaten 1 (NC®IO)
2 INT32 4 – 7 __ __ nOutData2 Drive-Output Ausgabedaten 2 (NC®IO)
3 UINT8 8 __ __ nControlByte Control-Byte
3.0 | BOOL | 8 | 0 | 0 / 1 | bPhaseA | Phase A
3.1 | BOOL | 8 | 1 | 0 / 1 | bPhaseAInv | Phase A Invers
3.2 | BOOL | 8 | 2 | 0 / 1 | bPhaseB | Phase B
3.3 | BOOL | 8 | 3 | 0 / 1 | bPhaseBInv | Phase B Invers
3.4 BOOL 8 4 0 / 1 __ RESERVE
3.5 BOOL 8 5 0 / 1 __ RESERVE
3.6 | BOOL | 8 | 6 | 0 / 1 | bBreakInv | Inverses Bremsbit: (0 º AKTIV, 1 º PASSIV)
3.7 | BOOL | 8 | 7 | 0 / 1 | bBreak | Bremsbit (0 º PASSIV, 1 º AKTIV)
4 UINT8 9 __ __ nExtControlByte Extended Control Byte
4.0 | BOOL | 9 | 0 | 0 / 1 | bFrequency | Frequenz (Rechtecksignal)
4.1 | BOOL | 9 | 1 | 0 / 1 | bDirectionPlus | Richtung Positiv
4.2 BOOL 9 2 0 / 1 __ RESERVE
4.3 BOOL 9 3 0 / 1 __ RESERVE
4.4 BOOL 9 4 0 / 1 __ RESERVE
4.5 BOOL 9 5 0 / 1 __ RESERVE
4.6 BOOL 9 6 0 / 1 __ RESERVE
4.7 BOOL 9 7 0 / 1 __ RESERVE
5 UINT16 10 -11 __ __ nReserved Reserve-Bytes

Schrittmotorparameter

Motorparameter

Parameter | Beschreibung
Schrittmotor Betriebsmodus | Der Schrittmotor kann durch die Art der Ansteuerung in verschiedenen Betriebsmodi betrieben werden. Somit lassen sich die Periode einstellen, mit der verschiedene Schrittmusterkombinationen ausgegeben werden. Hierdurch kann man Einfluss auf die Schrittweite (Vollschritt oder Halbschritt) und auf das Motordrehmoment nehmen. Die Auswahl der Betriebsarten entnimmt man der nachstehenden "Schrittmotor-Betriebsmodus"-Tabelle.
Weglänge pro Schritt dSStep | Physikalische Skalierung eines Motorschrittes (Schrittwechsel) entsprechend den mechanischen Gegebenheiten wie Getriebe, etc. Einheit: [mm/INC]
Mindestgeschwindigkeit für Geschwindigkeitsprofil Vmin | Für die Geschwindigkeitsprofilgenerierung wird, soweit die geforderte Sollgeschwindigkeit auf dem Verfahrweg erreicht werden kann, diese Mindestgeschwindigkeit Vmin als Start- und Endgeschwindigkeit des errechneten Geschwindigkeitsprofils genommen Natürlich kann auf Grund der Zeitdiskretisierung (Zykluszeit) nicht jedes Geschwindigkeitsniveau erreicht werden, sondern es ergibt sich eine bestimmte Auswahl von diskreten Geschwindigkeitsstufen (proportional zu 1/(n*dT) mit n=1,2,3... und dT Achszykluszeit in Sekunden). Hierbei wird mittels Rundung das nächst mögliche Geschwindigkeitsniveau genommen. Einheit: [mm/s]
Anzahl Schritte pro Geschwindigkeitsstufe >Nlevel | Es wird entsprechend der Randbedingungen (Mindestgeschwindigkeit, Zielgeschwindigkeit, Verfahrweg) ein Geschwindigkeitsprofil mit diskreten Geschwindigkeitsstufen (proportional zur Schrittfrequenz) errechnet. Das Verweilen auf einer Geschwindigkeitsstufe kann durch diesen Parameter im Bereich von 0 bis 100 bezogen auf die Motorschritte eingestellt werden. Mit diesem Parameter Nlevel kann also eine Skalierung (Streckung bzw. Stauchung) der Geschwindigkeitsrampe vorgenommen werden. Für den Grenzfall von Nlevel = 0 wird kein verramptes Geschwindigkeitsprofil erzeugt, sondern für den gesamten Verfahrweg die geforderten Sollgeschwindigkeit konstant beibehalten. Einheit: 1

Schrittmotor-Betriebsmodi

Motormodi

Schrittmotor Modus | Beschreibung
1 PHASE | 1 phasige Erregung (Schrittmusterperiodizität: Modulo 4) (STANDARD)
2 PHASE | 2 phasige Erregung (Schrittmusterperiodizität: Modulo 4)
12 PHASE | 1-2 phasige Erregung (Schrittmusterperiodizität: Modulo 8)
DRIVER | Ansteuerung per Leistungsteil (Vorgabe von Richtung und Frequenz)

Formel zur Berechnung der diskreten Fahrfrequenzen

Formel zur Berechnung der diskreten Geschwindigkeitsstufen

Schrittmotorparameter des Drives

Je nach Typ und Betriebsart des Schrittmotors können im System Manager in dem Drive-Reiter "Schrittmotor" bis zu 8 Bytemasken für das Drive-Ausgabemuster parametriert werden. Diese Muster werden je nach Betriebsart der Achse beim aktiven Positionieren zyklisch ausgegeben und wiederholen sich periodisch. Im Stillstand der Achse (kein aktives Verfahren) wird das jeweils zuletzt ausgegebene Bitmuster mit der Haltestrommaske als logische UND-Operation verknüpft. Diese Haltestrommaske soll zur Reduzierung des Motorstromes und somit zur Reduzierung der Motortemperatur im Stillstand der Achse dienen.

Beispiel für Geschwindigkeits- und Positionsprofil

In der Darstellung ist ein typisches Geschwindigkeits- und Positionsprofil für eine 'Low Cost' Schrittmotorachse über der Zeit [s] dargestellt. Die blaue Kurve stellt die Geschwindigkeit [mm/s] und die grüne Kurve den Positionsverlauf [mm] dar. Die Soll- und Istwerte sind identisch, da kein realer Encoder, sondern ein Simulationsencoder verwendet wird. Interessant sind die diskreten Geschwindigkeitsstufen, deren Höhe sich beginnend von der Startgeschwindigkeit auf die geforderte Sollgeschwindigkeit erhöht, und gegen Ende der Zielposition wieder auf das Stoppniveau reduziert wird.


Encoder-Achsen

Überblick

Normal

Interfaces

Normal

Komponenten

Normal

Encoder-Filter

Normal

Betriebszustände

Normal


Simulations-Achsen

Überblick

Normal

Interfaces

Normal

Encoder

Normal

Drive

Normal

Controller

Normal

Sollwerte und Istwerte

Normal


Übersicht

Jede Achse besteht, je nach Achs-Typ, aus diversen Bestandteilen. Dazu gehören der Encoder (Geber), der Drive (Antrieb), der Regler (Controller) und der Sollwertgenerator sowie das SPS-Interface. Es gibt auch komplexere Achsen, die aus mehreren Encodern, umschaltbaren Reglern oder wechselnden Sollwertgeneratoren gehören.

Encoder (Geber)

Je nach Betriebsart ermitteln der Encoder die Istposition, die Istgeschwindigkeit und die Istbeschleunigung. Um eine vernünftige Auflösung der oft stark fluktuierenden Istwerte zu gewährleisten ist jeder Modus mit einem parametrierbaren Filter ausgestattet. Es gibt ein Vielzahl von unterstützten Encoder- Varianten. Dabei stehen sowohl Absolut- als auch Inkremental-Encoder zur Verfügung. Zusätzlich gibt es Simulationsencoder sowie Spezialencoder zur Kraftermittlung. Zu den Encoderparametern gehören die Skalierung, die Nullpunktverschiebung und der Modulofaktor. Weiterhin gehören die Parameter der Software-Endlagen sowie die der Referenzfahrt zu den Encoder-Daten.

Drive (Antrieb)

Der Drive (Antrieb) überträgt die Ausgangsspannung auf das Leistungsteil des Motors. Es gibt ein Vielzahl von unterstützten Drive-Varianten. Dabei stehen sowohl Servo-, Eil/Schleich- als auch Schrittmotoren-Antriebe zur Verfügung. Zusätzlich gibt es Simulationsencoder sowie Spezialencoder zur Kraftermittlung. Zu den Driveparametern gehören die Motor-Polarität und die Referenzgeschwindigkeit.

Controller (Regler)

Die Regler dienen dazu auf die gestellte Sollgeschwindigkeit Differenzen (Schleppabstand) oder weitere Sollgrößen (Beschleunigung) so aufzuschalten, dass der Schleppabstand möglichst gering wird und die Achse kein Überschwingen in Position und Geschwindigkeit zeigt. Es gibt ein Vielzahl von unterstützten Controller-Varianten. Dabei stehen sowohl Servo-Positionsregler als auch Spezialregler für spezielle Achstypen zur Verfügung.

Sollwertgenerator

Jeder Achse ist ein Sollwertgenerator zugeordnet, der seinerseits aus drei Komponenten besteht:

  • Satzvorbereitungsgenerator (in der Satzvorbereitungstask): Überprüfung der Startparameter und - bei Masterachsen - Berechnung des Dynamikprofils.
  • Satzausführungsgenerator (in der Satzausführungstask): Berechnung der lokalen Sollwerte.
  • Asynchroner Generator zur Reaktion auf asynchrone Anforderungen (Override, Neue Endposition, Positionskompensation etc.).

Input/Output

Input/Output-Verbindungen gibt es für Kanäle, Achsen, Encoder und Drives.


Encoder

Je nach Betriebsart ermitteln der Encoder die Istposition, die Istgeschwindigkeit und die Istbeschleunigung. Um eine vernünftige Auflösung der oft stark fluktuierenden Istwerte zu gewährleisten ist jeder Modus mit einem parametrierbaren Filter ausgestattet. Es gibt ein Vielzahl von von unterstützten Encoder-Varianten. Dabei stehen sowohl Absolut- als auch Inkremental-Encoder zur Verfügung. Zusätzlich gibt es Simulationsencoder sowie Spezialencoder zur Kraftermittlung. Zu den Encoderparametern gehören die Skalierung, die Nullpunktverschiebung und der Modulofaktor. Weiterhin gehören die Parameter der Software-Endlagen sowie die der Referenzfahrt zu den Encoder-Daten.

Interface

Jeder Encoder, der nicht vom Typ "Simulation" ist muss mit einer Istwert-Erfassungsbaugruppe verbunden werden.

Encodertypen

  1. Simulationsencoder
  2. Absolut mit 24 und 25 Bit sowie 12 und 13 Bit Single Turn Encoder (M3000)
  3. Inkremental mit 24 Bit (M31x0, M3100, M2000)
  4. Inkremental mit 16 Bit (KL5101)
  5. Absolut SSI mit 24 Bit (KL5001)
  6. Absolut/Inkremental BISSI mit 16 Bit (KL5051 und PWM Klemme KL2502_30K (Frq-Cnt-Impuls-Modus) )
  7. Absolut Analog Eingang mit 16 Bit (KL30xx)
  8. SERCOS "Encoder" POS
  9. SERCOS "Encoder" POS und VELO
  10. Binaerer Inkremental Encoder (0/1)
  11. Absolut Analog Eingang mit 12 Bit (M2510)
  12. T&R Fox 50 Modul (24 Bit Absolut (SSI))
  13. Kraftermittlung aus Pa, Pb, Aa, Ab
  14. Inkremental mit 16/20 Bit (AX2000)
  15. Inkremental mit 32 Bit
  16. Inkremental mit variabler Bitmaske (max. 32 Bit)
  17. Inkremental NC Rückwand

Encoderparameter

Parameter | Datentyp | Einheit | Beschreibung
ENCODER-Modus | ENUM |  | Betriebsart des Encoders: POS = Die Istposition wird ermittelt POSVELO = Die Istposition und die Istgeschwindigkeit werden ermittelt. POSVELOACC = Die Istposition, die Istgeschwindigkeit und die Istbeschleunigung werden ermittelt.
Geberzählrichtung invers | BOOL |  | Umkehr der Zählrichtung: FALSE = Polarität der Achsenbewegung stimmt mit Zählrichtung der Erfassungshardware überein. TRUE = Polarität der Achsenbewegung ist invers zur Zählrichtung der Erfassungshardware.
Skalierungsfaktor | FLOAT | mm/INC | Inkrementbewertung: Mit diesem Faktor werden die Weginkremente in Achsenpositionen umgerechnet.
Nullpunktverschiebung | FLOAT | mm | Bei Absolut-Encodern: Dieser Wert wird zur Encoder-Position addiert, um die Achsenposition zu ermitteln. Er dient zur Festlegung des maschinenbezogenen Nullpunkts.
Modulofaktor | FLOAT | mm | Bei Rundachsen: Dies ist die “Wegstrecke”, die eine Umdrehung bildet. Erfolgt die Istwerterfassung z.B. in Grad, sollte hier 360,0 eingetragen werden.
BETRIEBSART; Min-Endlagenüberwachung | BOOL |  | De-/Aktivierung der Endlagenüberwachung Min
Software Endlage Min | FLOAT | mm | Lage der Endlage Min
BETRIEBSART; Max-Endlagenüberwachung | BOOL |  | De-/Aktivierung der Endlagenüberwachung Max
Software Endlage Max | FLOAT | mm | Lage der Endlage Max
Filterzeit Istposition | FLOAT>0 | sec | Filterzeit für das PT1-Filter der Istposition.
Filterzeit Istgeschwindigkeit | FLOAT>0 | sec | Filterzeit für das PT1-Filter der Istgeschwindigkeit.
Filterzeit Istbeschleunigung | FLOAT>0 | sec | Filterzeit für das PT1-Filter der Istbeschleunigung.

PT1-Filter

Ein PT1-Filter ist eine Übertragungsfunktion, die zwischen einem neuen Wert x_n und einem alten Wert (der eine Zykluszeit zurückliegt) x_a konvex interpoliert. Eingebbarer Parameter ist die Filterzeit (>= 0.0) in sec. Mit l = Saf-Zykluszeit/( Saf-Zykluszeit+Filterzeit) gilt x = l x_n + (1-l) x_a, l Î [0.0,1.0].Liegt die Filterzeit nahe bei 0.0, dann wird der neue Wert hoch gewichtet. Ist die Filterzeit groß, dann wird der alte Wert hoch gewichtet.

Referenzierparameter

Parameter Datentyp Einheit Beschreibung

Suchrichtung für Referenziernocken invers

BOOL Umkehr der Suchrichtung:

FALSE = Nocken wird in positiver Fahrtrichtung gesucht.

TRUE = Nocken wird in negativer Fahrtrichtung gesucht.
Suchrichtung für Syncpuls invers BOOL Umkehr der Suchrichtung:

FALSE = Synchronpuls wird in positiver Fahrtrichtung gesucht.

TRUE = Synchronpuls wird in negativer Fahrtrichtung gesucht.
Referenzposition FLOAT

mm Die Achsenposition, die dem bei der Referenzfahrt wirksamen Synchronpuls zugeordnet wird. Erfolgt die Istwertermittlung der Achse in einer anderen Einheit als mm, wird die Einheit hier ebenfalls vorausgesetzt.
Externer Syncpuls BOOL

Reserviert

SERCOS-Achsen

Die Moduloskalierung (nur bei Moduloanzeige in der Wichtung der Lagedaten (S-0-0076 Bit 7)) bestimmt den Modulowert, bei dem die Positionsdaten wieder bei 0 beginnen. Dieser Wert muss mit dem im Antrieb eingestellten Wert (S-0-0103) übereinstimmen um eine korrekte Darstellung / Regelung der Position zu ermöglichen.

Über "Berechnen" kann der Wert bei aktivem TwinCAT und SERCOS mindestens in Phase 2 ausgelesen werden. Über Download und Upload kann der Wert in das laufende TwinCAT System geschrieben bzw. gelesen werden.


Drive

Der Drive (Antrieb) überträgt die Ausgangsspannung auf das Leistungsteil des Motors. Es gibt ein Vielzahl von unterstützten Drive-Varianten. Dabei stehen sowohl Servo-, Eil/Schleich- als auch Schrittmotoren-Antriebe zur Verfügung. Zusätzlich gibt es Simulationsencoder sowie Spezialencoder zur Kraftermittlung. Zu den Driveparametern gehören die Motor-Polarität und die Referenzgeschwindigkeit.

Interface

Jeder Antrieb, der nicht zu einer simulierten Achse gehört muss mit einer Sollwert-Ausgabebaugruppe verbunden werden.

Drivetypen

  • M2400-DAC1,
  • M2400-DAC2,
  • M2400-DAC3,
  • M2400-Dac4,
  • KL4XXX sowie PWM Klemme KL2502_30K (Frq-Cnt-Impuls-Modus) und KL4132 (16 Bit) (siehe KL5051),
  • KL4XXX-NONLINEAR, neuer Analog-Typ für nichtlineare Kennlinie,
  • TWOSPEED,
  • STEPPER,
  • SERCOS,
  • KL5051, BISSI Drive KL5051 mit 32 Bit (siehe KL4XXX),
  • AX2000, Inkremental mit 32 Bit (AX2000),
  • SIMO611U, Inkremental mit 32 Bit ,
  • UNIVERSAL, Variable Bitmaske (max. 32 Bit, signed value),
  • CBACKPLANE, Variable Bitmaske (max. 32 Bit, signed value).

Driveparameter

Parameter | Datentyp | Beschreibung
DRIVE-Mode | ENUM | reserviert.
Invert Motor Polarity | BOOL | Motor-Drehsinn ist invers. FALSE = Achse fährt bei positiver Ansteuerung des Antriebs in Richtung größere Positionen. TRUE = Achse fährt bei positiver Ansteuerung des Antriebs in Richtung kleinere Positionen.
Minimum Drive Output Limitation | FLOAT | Untere Austeuerungsbegrenzung. Die Ausgabe an den Antrieb wird auf diesen Minimalwert begrenzt.
Maximum Drive Output Limitation | FLOAT | Obere Austeuerungsbegrenzung. Die Ausgabe an den Antrieb wird auf diesen Maximalwert begrenzt.

Analogdrive

Unter Analog ist nicht zu verstehen, dass die Geschwindigkeit als Spannung (z.B. ±10V) oder Strom (z.B. ±20mA) dargestellt wird, sondern das die Achse ein quasi kontinuierliches Einstellen von beliebigen Werten erlaubt. Dies ist natürlich auch bei Antrieben mit Digital-Interfaces wie z.B. den BISSI-Klemmen vom Typ KL5051 möglich. Hier wird eine analog verstellbare Geschwindigkeit als digitale Information transportiert.

Analogparameter

Parameter | Datentyp | Beschreibung
Referenz-Geschwindigkeit | FLOAT | Bezugsgeschwindigkeit der Achse. Die Sollwertgenerierung der Achse wird bei der Vorsteuerung davon ausgehen, dass die Achse bei Ansteuerung mit dem Referenz-Ausgabewert mit dieser Geschwindigkeit reagieren wird.
Referenz-Ausgabe | FLOAT | Siehe oben.
Drift-Ausgleich | FLOAT | Dieser Wert wird zur Antriebs-Ansteuerung addiert. Auf diesem Wege kann ein konstanter Offset zur Ausgabe aufgeschaltet werden, um z.B. Nullpunktsfehler von Analog-Antrieben auszugleichen.

Schrittmotoren

Siehe: "Low Cost" Schrittmotorachse mit digitaler Ansteuerung (24V / 2A)

Eil/Schleich-Motoren

Siehe: Eil-/Schleich-Motoren.

SERCOS

Die Ausgabeskalierung (nur in der Betriebsart Geschwindigkeitsregelung von Bedeutung) bestimmt das Verhältnis zwischen der internen Geschwindigkeitsdarstellung und der im Antrieb eingestellten Wichtung der Geschwindigkeitsdaten. Da die Berechnung von mehreren antriebsinternen Parametern abhängig ist, besteht die Möglichkeit den richtigen Wert berechnen zu lassen (Button "Berechnen"). Hierzu werden die nötigen Parameter aus dem Antrieb ausgelesen und der richtige Wert errechnet (Voraussetzung ist ein laufendes System und SERCOS mindestens in Phase 2). Über Download und Upload können die Daten in das laufende TwinCAT System geschrieben bzw. gelesen werden.


Controller

Die Regler dienen dazu auf die gestellte Sollgeschwindigkeit Differenzen (Schleppabstand) oder weitere Sollgrößen (Beschleunigung) so aufzuschalten, daß der Schleppabstand möglichst gering wird und die Achse kein Überschwingen in Position und Geschwindigkeit zeigt. Es gibt ein Vielzahl von von unterstützten Controller-Varianten. Dabei stehen sowohl Servo-Positionsregler als auch Spezialregler für spezielle Achstypen zur Verfügung.

Controllertypen

Es sind zwei verschiedene Reglertypen anwählbar: Positionsregler (Regler deren Aufgabe es ist, die Ist-Positionon so zu Regeln, daß sie der Soll-Position so exakt wie möglich folgt) und Regler für spezielle Achsen (Eil-/Schleich, Schrittmotor, SERCOS). Die Wirkungsweise der Regler ist unter dem Thema Lageregelkreis beschrieben. Positionsreglertypen: Positionsregler P:Schleppabstands-Proportionalregler. Positionsregler mit zwei P-Konstanten: Schleppabstands-Proportionalregler mit verschiedenen Konstanten für Stillstand und Bewegung. Positionregler PID :Positions PID-T1-Regler mit proportionaler Beschleunigungsvorsteuerung

Automatischer DAC-Offsetabgleich

Jeder Regler ohne I-Anteil hat als Option einen automatischen DAC-Offsetabgleich. Dieser Abgleich wird nur dann aktiv, wenn die Geschwindigkeits-Vorsteuerung der Achse unter einem einstellbaren Anteil liegt. Dadurch wird eine Beeinflussung durch das dynamische Verhalten der Achse verhindert. Ist die Achse in Lageregelung (oder fährt mit entsprechend niedriger Geschwindigkeit), wird durch Integrieren der Regelgeschwindigkeit eine Offsetgeschwindigkeit gebildet. Diese wird zur Ausgabe addiert. Durch die negative Rückkopplung des Lageregelkreises kommt dabei ein PT1-Verhalten, also eine Exponential-Funktion zustande.

Offsetabgleichparameter

Parameter | Datentyp | Einheit | Beschreibung
Offsetfilterzeit | Double | sec | Zeitkonstante des Offsetabgleichs
Offsetlimit | Double |  | Relative Aussteuerung, oberhalb der der Offset konstant gehalten wird.

Falls erforderlich kann das Verhalten des Offsetabgleichs zur Laufzeit beeinflusst werden. Dazu sind eine Reihe von "Schaltern" vorhanden. Diese sowie die Parameter für die Zeitkonstante und das Vorsteuer-Limit sind zur Laufzeit von z.B. der PLC oder einem anderen ADS-Gerät verstellbar.

Falls erforderlich, kann der Offsetabgleich vollständig abgeschaltet werden. Dabei ist eine sprungartige Änderung der Ausgangsspannung nicht immer vermeidbar. Ein weiches Deaktivieren ist mit „FadeOut“ zu erreichen. Dabei wird der Abgleich mit dem ihm eigenen Zeitverhalten bis auf Null reduziert. Soll der Abgleich zeitweilig festgehalten werden, kann der „Hold“-Modus aktiviert werden. Dies ist zum Beispiel nützlich, wenn das Leistungsteil des Antriebs zeitweilig stillgesetzt wird. Falls der Abgleich aktiv bleiben würde, wäre ein Weglaufen des Offsets unvermeidlich.

Beschleunigungsvorsteuerung

Fast alle Positions-Regler enthalten neben der proportionalen Rückführung des Schleppabstandes eine proportionale Beschleunigungsvorsteuerung (Ka -Faktor). Diese sollte i. A. nur in Zusammenhang mit dem Positionsreglerproportionalanteil (Kv-Faktor) benutzt werden. Voraussetzung ist eine streng symmetrische Einstellung der Achse:

  • Im Stillstand ist der Schleppabstand symmetrisch um 0 (DAC-Offset).
  • Bei konstanter Fahrt ist der Schleppabstand symmetrisch um 0 (Referenzgeschwindigkeit).
  • Kv einstellen.
  • In der Mitte der Beschleunigungsphase/Bremsphase die extreme Beschleunigung (Verzögerung) a+max (a-max), sowie die dazu gehörigen Schleppabstände d+max (d-max) messen.
  • Ka+ = Kv · d+max / a+max
    Ka- = Kv · d-max / a-max
    Ka     = (Ka+ + Ka-) / 2 setzen und optimieren.

Globale Parameter eines Reglers

Reglerparameter

Parameter | Datentyp | Einheit | Beschreibung
CONTROLLER-Modus | ENUM |  | Reglermodus: Nur STANDARD möglich.
Gewichtung der Vorsteuerung | FLOAT >=0 |  | Relative Gewichtung der Vorsteuerung.
BETRIEBSART: Schleppabstandüberwachung Position | BOOL |  | Defaultwert 1.0 entsprechend 100 % Gewichtung der Vorsteuerung.
Maximaler Positionsschleppabstand | FLOAT >=0 | mm | Maximal zulässiger Positionsschleppabstand.
Maximale Schleppfilterzeit Position | FLOAT >=0 | sec | Überschreitet der Positionsschleppabstand den maximal zulässigen Positionsschleppabstand länger als die maximale Schleppfilterzeit, dann wird bei aktiver Überwachung die Achse instantan per Spannungsausgabe 0 V gestoppt und in den logischen Zustand “Fehler” gesetzt.

Positions P Regler

Reglerparameter

Parameter | Datentyp | Einheit | Beschreibung
Positionsreglung: Proportionalfaktor Kv | FLOAT >=0 | [mm/s]/mm | Proportionalverstärkung des P-Anteils. Ausgabegeschwindigkeit = Vorsteuergeschwindigkeit + Kv · Schleppabstand.
BETRIEBSART: Automatischer Offsetabgleich | BOOL |  | De-/Aktivierung des automatischen Offsetabgleichs. Der automatische Offsetabgleich ist nur im Bereich [-Offsetlimit,+Offsetlimit] der relativen Vorsteuergeschwindigkeit aktiv und berechnet und aktiviert einen DAC-Offset, der in Lageregelung den Schleppabstand minimiert.
Offsetfilterzeit | FLOAT >=0 | sec | Zeitkonstante des Integrators.
Offsetlimit | FLOAT >=0 |  | Obere Grenze des aktiven Bereichs des Offsetabgleichs in relativen Anteilen der Ausgabegröße.

Positions PP Regler

Reglerparameter

Parameter | Datentyp | Einheit | Beschreibung
Stillstand: Proportionalfaktor Kvs | FLOAT >=0 | [mm/s]/mm | Proportionalverstärkung des P-Anteils im Stillstand. Ausgabegeschwindigkeit im Stillstand = Vorsteuergeschwindigkeit + Kvs · Schleppabstand
Positionsreglung Fahren: Proportionalfaktor Kvf | FLOAT >=0 | [mm/sec]/min | Proportionalverstärkung des P-Anteils bei Fahrt.
Positionsreglung: Geschwindigkeitsschwellwert V dyn | FLOAT >=0 |  | Ausgabegeschwindigkeit in Fahrt = Vorsteuergeschwindigkeit + Kvf · Schleppabstand.
BETRIEBSART: Automatischer Offsetabgleich | BOOL |  | De-/Aktivierung des automatischen Offsetabgleichs. Der automatische Offsetabgleich ist nur im Bereich [-Offsetlimit,+Offsetlimit] der relativen Vorsteuergeschwindigkeit aktiv und berechnet und aktiviert einen DAC-Offset, der in Lageregelung den Schleppabstand minimiert.
Offsetfilterzeit | FLOAT >=0 | sec | Zeitkonstante des Integrators.
Offsetlimit | FLOAT >=0 |  | Obere Grenze des aktiven Bereichs des Offsetabgleichs in relativen Anteilen der Ausgabegröße.
Beschleunigungsvorsteuerung Proportionalfaktor Ka | FLOAT >=0 | sec | Ausgabegeschwindigkeitsanteil = Ka · Sollbeschleunigung.

Beispiel

Beim PP Regler definieren zwei P-Konstanten Kvs und Kvf und ein Geschwindigkeitsschwellwert Vdyn eine Funktion für einen geschwindigkeitsabhängigen Regelfaktor kv. Der Schwellwert Vdyn ist ein relativer Wert der sich aus Sollgeschwindigkeit / Bezugsgeschwindigkeit berechnet.

Dieser Zusammenhang wird im folgenden Bild dargestellt.

Das Beispiel wurde mit den Werten Kvs = 50, Kvf = 10 und Vdyn = 0,2 parametriert.

Positions PID Regler

Reglerparameter

Parameter | Datentyp | Einheit | Beschreibung
Positionsreglung: Proportionalfaktor Kv | FLOAT >=0 | [mm/s]/mm | Proportionalverstärkung des P-Anteils. Ausgabegeschwindigkeit = Vorsteuergeschwindigkeit + Kv · Schleppabstand.
Positionsreglung: Nachstellzeit Tn | FLOAT >=0 | sec | Nachstellzeit des I-Anteiles (Integrationszeit)
Positionsreglung: Vorhaltezeit Tv | FLOAT >=0 | sec | Vorhaltezeit des realen D-Anteiles (D-T1-Glied).
Positionsreglung: Dämpfungszeit Td | FLOAT >=0 | sec | Dämpfungszeit des realen D-Anteils (D-T1-Glied).
BETRIEBSART: Automatischer Offsetabgleich | BOOL |  | De-/Aktivierung des automatischen Offsetabgleichs. Der automatische Offsetabgleich ist nur im Bereich [-Offsetlimit,+Offsetlimit] der relativen Vorsteuergeschwindigkeit aktiv und berechnet und aktiviert einen DAC-Offset, der in Lageregelung den Schleppabstand minimiert.
Offsetfilterzeit | FLOAT >=0 | sec | Zeitkonstante des Integrators.
Offsetlimit | FLOAT >=0 |  | Obere Grenze des aktiven Bereichs des Offsetabgleichs in relativen Anteilen der Ausgabegröße.
Positionsreglung: Beschleunigungsvorsteuerung Ka | FLOAT >=0 | sec | Ausgabegeschwindigkeitsanteil = Ka · Sollbeschleunigung.

Regler für spezielle Achstypen (Eil/Schleich, Schrittmotoren, SERCOS)

Reglerparameter

Parameter | Datentyp | Einheit | Beschreibung
CONTROLLER-Modus | ENUM |  | Reglermodus: Nur STANDARD möglich.
Gewichtung der Vorsteuerung | FLOAT >=0 |  | Relative Gewichtung der Vorsteuerung.
BETRIEBSART: Schleppabstandüberwachung Position | BOOL |  | Defaultwert 1.0 entsprechend 100 % Gewichtung der Vorsteuerung.
Maximaler Positionsschleppabstand | FLOAT >=0 | mm | Maximal zulässiger Positionsschleppabstand.
Maximale Schleppfilterzeit Position | FLOAT >=0 | sec | Überschreitet der Positionsschleppabstand den maximal zulässigen Positionsschleppabstand länger als die maximale Schleppfilterzeit, dann wird bei aktiver Überwachung die Achse instantan per Spannungsausgabe 0 V gestoppt und in den logischen Zustand “Fehler” gesetzt.

Totzeitkompensation

Jeder Regler hat eine optionale Kompensation der Totzeit zwischen Sollwertausgabe und Wirkung dieser Ausgabe. Hierbei wird die Sollposition gegenüber der Sollgeschwindigkeit um eine einstellbare Zeit verzögert. Die Totzeitkompensation ist Bestandteil des Sollwertgenerators einer Achse.


Sollwertgenerator

Jeder Achse ist ein Sollwertgenerator zugeordnet, der seinerseits aus drei Komponenten besteht:

  • Satzvorbereitungsgenerator (in der Satzvorbereiitungstask): Überprüfung der Startparameter und - bei Masterachsen - Berechnung des Dynamikprofils.
  • Satzausführungsgenerator (in der Satzausführungstask): Berechnung der lokalen Sollwerte.
  • Asynchroner Generator zur Reaktion auf asynchrone Anforderungen (Override, Neue Endposition, Positionskompensation etc.).

Mastergenerator: SVB

Der SVB-Mastergenerator prüft die Zulässigkeit des Starts im aktuellen Betriebszustand der Achse, überprüft die Startparameter allgemein und in Bezug auf die Achsparameter und berechnet aus den globalen Sollwerten ein Dynamikprofil, das in komprimierter Form (Laufzeittabelle) für die Generierung der lokalen Sollwerte hinterlegt wird. Sind diese Aktionen erfolgreich abgeschlossen, dann startet der SVB-Mastergenerator automatisch den SAF-Mastergenerator.

Mastergenerator: SAF

Der SAF-Mastergenerator berechnet in jedem Aufruf der Task aus der Laufzeittabelle die lokalen Sollwerte für
  • Position (für den Lageregler),
  • Geschwindigkeit mit Vorzeichen (für die Geschwindigkeitsvorsteuerung),
  • Beschleunigung (für einen Regler mit Beschleunigungsaufschaltung),
  • Richtung (für die richtungsabhängige Vorschubfreigabe).

Mastergenerator: Asynchron

Der Generator zur Reaktion auf asynchrone Instruktionen (Override, Neue Endposition, Positionskompensation etc.) überprüft die Parameter der Instruktion sowie die Zulässigkeit der Instruktion im momentanen Betriebszustand und veranlasst die Ausführung der Instruktion im nächsten Aufruf der SAF. Das impliziert, dass endgütige Gewissheit, ob die Instruktion wirklich eingleitet worden ist, erst nach diesem SAF Aufruf besteht.

Slavegenerator: SVB

Der SVB-Slavegenerator prüft die Zulässigkeit der Kopplung und des Starts im aktuellen Betriebszustand der Achse, überprüft die Koppelparameter setzt globale Startparameter und koppelt, wenn diese Aktionen erfolgreich abgeschlossen sind den Slave logisch an den Master..

Slavegenerator: SAF

Der SAF-Mastergenerator berechnet in jedem Aufruf der Task aus den lokalen Sollwerten der Masterachse (die ihrerseits eine Slaveachse sein kann) und dem Koppelfaktor die lokalen Sollwerte für
  • Position (für den Lageregler),
  • Geschwindigkeit mit Vorzeichen (für die Geschwindigkeitsvorsteuerung),
  • Beschleunigung (für einen Regler mit Beschleunigungsaufschaltung),
  • Richtung (für die richtungsabhängige Vorschubfreigabe).

Slavegenerator: Asynchron

Der Generator zur Reaktion auf asynchrone Instruktionen (Positionskompensation, On-line Abkoppeln etc.) überprüft die Parameter der Instruktion sowie die Zulässigkeit der Instruktion

im momentanen Betriebszustand und veranlasst die Ausführung der Instruktion im nächsten Aufruf der SAF. Das impliziert, dass endgütige Gewissheit, ob die Instruktion wirklich eingleitet worden ist, erst nach diesem SAF Aufruf besteht.

Slavegenerator: fliegende Säge

Aufgrund der funktionellen Vielfalt hat die fliegende Säge einen eigenen Sollwertgeneratortyp, der aus einem SVB-Mastergenerator in Zusammenspiel mit einem SAF-Mastergenerator in der Warte- und Synchronisierungsphase besteht. In der Synchronphase hat die fliegende Säge einen SAF-Slavegenerator, der entweder (in der Stoppphase) in einen initialisierten SAF-Bremsgenerator verwandelt wird oder (Abkoppeln) on-line in einen geeignet initialisierten SAF-Mastergenerator verwandelt werden kann.


Input/Output

Zyklische Input/Output-Verbindungen gibt es für Kanäle, Achsen, Encoder (Positionserfassungssystem) und Drives (Antrieb, Verstärker).

Input/Output für NC-Kanäle

Standard-Kanäle, also Kanäle für PTP-Achsen benötigen keinerlei Input/Output-Verbindungen. Diese werden nur bei Interpreter-Kanälen benötigt.

In der PLC ist pro Kanal eine Variable vom Typ PLCTONC_CHANNEL anzulegen. Diese Variable(n) müssen mit den NC-Kanalvariablen Channelx_FromPlc (zu finden unter Kanal-Inputs) verbunden werden. In der PLC ist pro Kanal eine Variable vom Typ NCTOPLC_CHANNEL anzulegen. Diese Variable(n) müssen mit den NC-Kanalvariablen Channelx_ToPlc (zu finden unter Kanal-Outputs) verbunden werden. Diese Variablen werden benötigt, um einen Signalaustausch zwischen NC und PLC zu ermöglichen. Hier werden die folgenden Daten ausgetauscht:

  • NC-Satzunterdrückungen
  • Interpreter-Arbeitsmodus
  • Interpreter-Status und Fehler-Codes
  • Kanal-Overrides· Programm-Nummern
  • M-Funktionen als fliegende Signal-Bits und als Handshake

Normalerweise ist es nicht nötig, die Einzelvariablen zu verbinden

Die Beschreibung des zyklischen Kanal-Interfaces ist im Anhang der NC I zu finden.

Input/Output für Achsen

In der PLC ist pro Achse eine Variable vom Typ NCTOPLC_AXLESTRUCT anzulegen. Diese Variablen müssen mit den NC-Achsenvariablen Axis_FromPlc (zu finden unter Achse-Inputs) verbunden werden. Ebenfalls ist in der PLC ist pro Achse eine Variable vom Typ PLCTONC_AXLESTRUCT anzulegen. Diese Variablen müssen mit den NC-Achsenvariablen Axis_ToPlc (zu finden unter Achse-Outputs) verbunden werden. Diese Variablen werden benötigt, um einen zyklischen Signalaustausch zwischen NC und PLC zu ermöglichen. Hier werden unter anderem die folgenden Daten ausgetauscht:

  • Regler- und richtungsbezogene Vorschub-Freigaben
  • Kalibrier-Nocken
  • Kalibrierstatus
  • Positioniermodus
  • Fehler-Codes und diverse Achsen-Statusinformationen
  • Achsen-Overrides
  • Koppelstatus

Normalerweise ist es nicht nötig, die Einzelvariablen zu verbinden, sondern üblicherweise wird die gesamte Struktur verbunden.

Die Beschreibung der Interfaces befindet sich unter

  • zyklisches Achs-Interface von der SPS zur NC
  • zyklisches Achs-Interface von der NC zur SPS
  • zyklisches Interface von der NC zu Encoder und Drive

Input/Output für Encoder

Jeder Encoder, der nicht vom Typ Simulation ist muss mit einer Istwert-Erfassungsbaugruppe verbunden werden. Dabei ist darauf zu achten, dass die benutzten Typen zueinander kompatibel sind. Beim Encoder ist ein geeigneter Typ zu wählen.

zyklisches Interface von der NC zum Encoder

Input/Output für Drives

Jeder Drive, der nicht zu einer simulierten Achse gehört muss mit einer Sollwert-Ausgabebaugruppe verbunden werden. Dabei ist darauf zu achten, dass die benutzten Typen zueinander kompatibel sind. Beim Drive ist ein geeigneter Typ zu wählen.

zyklisches Interface von der NC zum Drive


NC

TwinCAT NC Process Image

Prozessabbild einer NC-Achse

Über das Prozessabbild einer Achse wird diese mit unterschiedlichen Antriebs-Komponenten verbunden. Im einfachsten Fall wird ein Link von der Achse zu einem Antrieb hergestellt und notwendige Verknüpfungen der Prozessabbilder werden automatisch durchgeführt. Im Einzelfall, insbesondere wenn dem System unbekannte Hardwarekomponenten eingebunden werden, müssen solche Verknüpfungen von Hand hergestellt werden. Im Folgenden ist dafür das Prozessabbild einer NC-Achse beschrieben.

Hinweis: Die hier beschriebenen Datenstrukturen sind eine interne Schnittstelle zwischen NC-Treiber und angeschlossener Antriebshardware. Diese Schnittstelle wird stetig weiterentwickelt und kann sich in Zukunft ändern.

Encoder-Prozessabbild einer Achse

Über das Encoder-Prozessabbild (zyklischer Datenaustausch) werden unterschiedliche Geber-Hardware bzw. entsprechende Busklemmen zur Positionserfassung einer Achse angebunden. Soweit diese Hardware direkt vom System unterstützt wird, ist keine manuelle Konfiguration einzelner Variablen notwendig.

Eingangsdaten des Encoder-Prozessabbildes einer Achse

I/O-Variable | Beschreibung | Anmerkung
nInData1 | Aktuelle Istposition des Encoders bzw. des Drives in Inkrementen. Der Inkrementalwert wird durch die NC aufbereitet und mathematisch zur Istposition in physikalischen Einheiten, wie z.B. mm oder Grad, verarbeitet. Überläufe des Inkrementalwertes werden durch die NC mitgezählt. Das System macht üblicherweise keinen Unterschied zwischen Inkremental- und Absolutgebern (siehe auch Encoder-Parameter Referenzsystem INC/ABS. | Einheit: Inkremente [INC] Datentyp: DINT (32 bit). teilweise auch INT (16 bit)
nInData2 | Optionale Latch-Istposition des Encoders bzw. des Drives in Inkrementen. Der Inkrementalwert wird durch die NC aufbereitet und mathematisch zur Istposition in physikalischen Einheiten, wie z.B. mm oder Grad, verarbeitet. (siehe auch Funktionsbaustein MC_TouchProbe aus der Motion Control Libary TcMc.lib). | Einheit: Inkremente [INC] Datentyp: DINT (32 bit). teilweise auch INT (16 bit)
nStatus1 | Optionale Statusinformationen Z. B.: Teilnehmer im Datenaustausch, Encoder Fehler, Kommunikation zum Positions-Latch oder Registerkommunikation. | Diese Information ist abhängig vom Typ des Encoders oder Antriebs.
nStatus2 | Zusätzliche optionale Statusinformationen Z. B.: Kommunikation zum Positions-Latch, Kommunikation Encoder-Reset, Kommunikation zum Lesen einer Absolut-Position | Diese Information ist abhängig vom Typ des Encoders oder Antriebs.
nStatus3 | reserviert |
nStatus4 | Optionaler feldbusabhängiger IO-Status wie WcState (Working Counter) bei EtherCAT oder CdlState bei Beckhoff Lightbus. | Bedeutung: 0 = I/O data valid 1 = I/O data invalid

Ausgangsdaten des Encoder-Prozessabbildes einer Achse

I/O-Variable | Beschreibung | Anmerkung
nOutData1 | Aktuelle Istposition des Encoders bzw. des Drives in Inkrementen, die die NC direkt von der Eingangsvariable nInData1 auf die Ausgangsvariable nOutData1 kopiert wird. | Einheit: Inkremente [INC] Datentyp: DINT
nOutData2 | reserviert |
nCtrl1 | Optionale Control-Informationen Z. B.: Kommunikation zum Positions-Latch, Kommunikation Encoder Reset, Registerkommunikation | Diese Information ist abhängig vom Typ des Encoders oder Antriebs.
nCtrl2 | Zusätzliche optionale Control-Informationen Z. B.: Kommunikation zum Positions-Latch, Kommunikation Encoder-Reset, Kommunikation zum Lesen einer Absolut-Position | Diese Information ist abhängig vom Typ des Encoders oder Antriebs.
nCtrl3 | reserviert |
nCtrl4 | reserviert |

Drive-Prozessabbild einer Achse

Über das Drive-Prozessabbild werden unterschiedliche Antriebs-Hardware oder auch entsprechende Busklemmen (+/-10V, PWM etc.) angebunden. Soweit diese Hardware direkt vom System unterstützt wird, ist keine manuelle Konfiguration notwendig.

Eingangsdaten des Drive-Prozessabbildes einer Achse

I/O-Variable | Beschreibung | Anmerkung
nInData1 | reserviert |
nInData2 | reserviert |
nStatus1 | Optionale Status-Informationen Z. B. Drive-Fehler, Drive Enabled/Disabled, Kommunikation Antriebs-State-Machine (z.B. EtherCAT, SERCOS, CANopen, Profibus), Registerkommunikation. | Diese Information ist abhängig vom Typ des Antriebs.
nStatus2 | Zusätzliche optionale Status-Informationen Z. B. Drive-Fehler, Drive Enabled/Disabled, Kommunikation Antriebs-State-Machine (z.B. EtherCAT, SERCOS, CANopen, Profibus), Registerkommunikation. | Diese Information ist abhängig vom Typ des Antriebs.
nStatus3 | reserviert |
nStatus4 | Optionaler feldbusabhängiger IO-Status wie WcState (Working Counter) bei EtherCAT oder CdlState bei Beckhoff Lightbus. | Bedeutung: 0 = I/O data valid 1 = I/O data invalid

Ausgangsdaten des Drive-Prozessabbildes einer Achse

I/O-Variable | Beschreibung | Anmerkung
nOutData1

Aktuelle Sollgeschwindigkeit oder aktuelle Sollposition in Inkrementen.

Die Sollgeschwindigkeit bzw. die Sollposition der NC in physikalischen Einheiten, wie z.B. mm oder Grad, wird von der NC mathematisch in einen Inkrementalwert zurückgerechnet und zum Antrieb übertragen. Hierbei werden Überläufe des Inkrementalwertes in der Sollposition von der NC berücksichtigt.

Je nach Drive-Typ wird eine Normierung der Sollgeschwindigkeit bzw. der Sollposition in Inkrementen vorgenommen.

Wenn der Drive-Typ Universal-Drive gewählt wurde, enthält nOutData1 die Gesamtgeschwindigkeit (inkl. Lageregelanteil) mit Vorzeichen. 		Diese Information ist abhängig vom Typ des Antriebs
nOutData2

Aktuelle Sollgeschwindigkeit oder aktuelle Sollposition in Inkrementen.

Die Sollgeschwindigkeit bzw. die Sollposition der NC in physikalischen Einheiten, wie z.B. mm oder Grad, wird von der NC mathematisch in einen Inkrementalwert zurückgerechnet und zum Antrieb übertragen. Hierbei werden Überläufe des Inkrementalwertes in der Sollposition von der NC berücksichtigt.

Je nach Drive-Typ wird eine Normierung der Sollgeschwindigkeit bzw. der Sollposition in Inkrementen vorgenommen.

Wenn der Drive-Typ Universal-Drive gewählt wurde, enthält nOutData2 den Betrag der Gesamtgeschwindigkeit (inkl. Lageregelanteil, ohne Vorzeichen). 		Diese Information ist abhängig vom Typ des Antriebs
nCtrl1

Optionale Control-Information:

Z. B.: Drive-Reset, Drive Enable/Disable, Kommunikation Antriebs-State-Machine (z.B. EtherCAT, SERCOS, CANopen, Profibus), Registerkommunikation. 		Diese Information ist abhängig vom Typ des Antriebs
nCtrl2

Zusätzliche optionale Control-Information:

Digitale Richtungsausgabe der Sollwertgenerierung (entspricht dem Vorzeichen der Sollgeschwindigkeit, also ohne Lageregler)

Digital Outputs Setpoint Generator:
0x41 (0100 0001) = Minus
0x42 (0100 0010) = Plus
0x80 (1000 0000) = Stop

Die einzige Ausnahme stellt der Antrieb AX2xxx-B200/B900 dar. Hier wird mit der Antriebs-State-Machine kommuniziert. 		Diese Information ist abhängig vom Typ des Antriebs (Ausnahme AX2xxx B200 und B900)
nCtrl3

Zusätzliche optionale Control-Information:

Digitale Richtungsausgabe bzw. Fahrstufen der Gesamtausgabe (Summe aus Sollwertgenerierung und Lageregler)

Digital Outputs (Setpoint Generator + Position Controller):
0x41 (0100 0001) = Minus
0x42 (0100 0010) = Plus
0x80 (1000 0000) = Stop
nCtrl4 | reserviert


Achs-Interface NC->SPS (128 Byte)

TYPE NCTOPLC_AXLESTRUCT

TYPE NCTOPLC_AXLESTRUCT
STRUCT
    nStateDWord 		: DWORD; (* Status double word *)
    nErrorCode 		: DWORD; (* Axis error code *)
    nAxisState 		: DWORD; (* Axis moving status *)
    nAxisModeCon 		: DWORD; (* Axis mode confirmation (feedback from NC) *)
    nCalibrationState		: DWORD; (* State of axis calibration (homing) *)
    nCoupleState 		: DWORD; (* Axis coupling state *)
    nSvbEntries 		: DWORD; (* SVB entries/orders (SVB = Set preparation task) *)
    nSafEntries 		: DWORD; (* SAF entries/orders (SAF = Set execution task *)
    nAxisId 			: DWORD; (* Axis ID *)
    nOpModeDWord 		: DWORD; (* Current operation mode *)
    nReserved2_HIDDEN 		: DWORD; (* reserved *)
    fPosIst 			: LREAL; (* Actual position (absolut value from NC) *)
    fModuloPosIst 		: LREAL; (* Actual position as modulo value (e.g. in degrees) *)
    nModuloTurns 		: DINT; 	(* Actual modulo turns *)
    fVeloIst 			: LREAL; (* Actual velocity (optional) *)
    fPosDiff 			: LREAL; (* Position difference (lag distance) *)
    fPosSoll 			: LREAL; (* Setpoint position *)
    fVeloSoll 		: LREAL; (* Setpoint velocity *)
    fAccSoll			: LREAL; (* Setpoint acceleration, OLD: "fReserve1_HIDDEN" *)
    fReserve2_HIDDEN 		: LREAL; (* reserved *)
    fReserve3_HIDDEN 		: LREAL; (* reserved *)
    fReserve4_HIDDEN 		: LREAL; (* reserved *)
END_STRUCT
END_TYPE

TYPE NCTOPLC_AXLESTRUCT2

TYPE NCTOPLC_AXLESTRUCT2
STRUCT
    nStateDWord 		: DWORD; (* Status double word *)
    nErrorCode 		: DWORD; (* Axis error code *)
    nAxisState 		: DWORD; (* Axis moving status *)
    nAxisModeCon 		: DWORD; (* Axis mode confirmation (feedback from NC) *)
    nCalibrationState		: DWORD; (* State of axis calibration (homing) *)
    nCoupleState 		: DWORD; (* Axis coupling state *)
    nSvbEntries 		: DWORD; (* SVB entries/orders (SVB = Set preparation task) *)
    nSafEntries 		: DWORD; (* SAF entries/orders (SAF = Set execution task *)
    nAxisId 			: DWORD; (* Axis ID *)
    nOpModeDWord 		: DWORD; (* Current operation mode *)
    nActiveControlLoopIndex	: WORD;	(* Active control loop index (equivalent to old variable "nCtrlLoopIndex") *)
    nControlLoopIndex 		: WORD;	(* Axis control loop index (0, 1, 2, … when multiple control loops are used) *)
    fPosIst 			: LREAL; (* Actual position (absolut value from NC) *)
    fModuloPosIst 		: LREAL; (* Actual position as modulo value (e.g. in degrees) *)
    nModuloTurns 		: DINT; 	(* Actual modulo turns *)
    fVeloIst 			: LREAL; (* Actual velocity (optional) *)
    fPosDiff 			: LREAL; (* Position difference (lag distance) *)
    fPosSoll 			: LREAL; (* Setpoint position *)
    fVeloSoll 		: LREAL; (* Setpoint velocity *)
    fAccSoll			: LREAL; (* Setpoint acceleration, OLD: "fReserve1_HIDDEN" *)
    fPosTarget 		: LREAL; (* Estimated target position *)
    fModuloPosSoll 		: LREAL; (* Setpoint modulo position (e.g. in degrees) *)
    nModuloTurnsSoll 		: DINT; 	(* Setpoint modulo turns *)
    nCmdNo	 		: WORD;	(* Continuous actual command number *)
    nCmdState 		: WORD;	(* Command state *)
END_STRUCT
END_TYPE

Nr. | Datentyp | Byte | Bit | Def.Bereich | Variable-Name | Variable-Name (ab 2.11 bzw. TcMc2) | Beschreibung
1 | UINT32 | 0-3 | - | - | nStateDWord | StateDWord | Status-Doppelwort. Siehe auch detaillierte Beschreibung des StateDWord
 |  |  | 0 | 0/1 | Operational | Operational | Achse ist betriebsbereit
 |  |  | 1 | 0/1 | Homed | Homed | Achse ist referenziert ("Achse geeicht")
 |  |  | 2 | 0/1 | NotMoving | NotMoving | Achse ist im logischen Stillstand ("Achse fährt nicht")
 |  |  | 3 | 0/1 | InPositionArea | InPositionArea | Achse ist im Positionsbereichsfenster (physikalische Rückmeldung)
 |  |  | 4 | 0/1 | InTargetPosition | InTargetPosition | Achse ist in Zielposition (PEH) (physikalische Rückmeldung)
 |  |  | 5 | 0/1 | Protected | Protected | Achse ist in geschützter Betriebsart (z.B. Slave-Achse)
 |  |  | 6 | 0/1 | ErrorPropagationDelayed | ErrorPropagationDelayed | Achse signalisiert eine Fehlervorwarnung (ab TC 2.11)
 |  |  | 7 | 0/1 | HasBeenStopped | HasBeenStopped | Achse ist gestoppt worden bzw. führt einen Stopp aus
 |  |  | 8 | 0/1 | HasJob | HasJob | Achse hat Auftrag, führt Auftrag aus
 |  |  | 9 | 0/1 | PositiveDirection | PositiveDirection | Achse fährt logisch größer
 |  |  | 10 | 0/1 | NegativeDirection | NegativeDirection | Achse fährt logisch kleiner
 |  |  | 11 | 0/1 | HomingBusy | HomingBusy | Achse referenziert ("Achse wird geeicht")
 |  |  | 12 | 0/1 | ConstantVelocity | ConstantVelocity | Achse hat V-Konst bzw. Drehzahl erreicht
 |  |  | 13 | 0/1 | Compensating | Compensating | Streckenkompensation passiv[0]/aktiv[1] (s. "MC_MoveSuperImposed")
 |  |  | 14 | 0/1 | ExtSetPointGenEnabled | ExtSetPointGenEnabled | Externe Sollwertgenerierung freigegeben
 |  |  | 15 | 0/1 |  |  | Betriebsart noch nicht ausgeführt ( Busy). Noch nicht freigegeben!
 |  |  | 16 | 0/1 | ExternalLatchValid | ExternalLatchValid | Externer Latchwert bzw. Messtaster gültig geworden
 |  |  | 17 | 0/1 | NewTargetPos | NewTargetPos | Achse hat neue Endposition bzw. neue Geschwindigkeit erhalten
 |  |  | 18 | 0/1 |  |  | Achse nicht in Zielposition bzw. kann/wird diese nicht erreichen (z.B. Achs-Stopp). Noch nicht freigegeben!
 |  |  | 19 | 0/1 | ContinuousMotion | ContinuousMotion | Achse führt Endlos-Positionierauftrag aus
 |  |  | 20 | 0/1 | ControlLoopClosed | ControlLoopClosed | Achse betriebsbereit und Achsregelkreis geschlossen (z.B. Lageregelung)
 |  |  | 21 | 0/1 | CamTableQueued | CamTableQueued | Neue Tabelle steht für "Online Change" bereit und wartet auf Aktivierung
 |  |  | 22 | 0/1 | CamDataQueued | CamDataQueued | Tabellendaten (MF) stehen für "Online Change" bereit und warten auf Aktivierung
 |  |  | 23 | 0/1 | CamScalingPending | CamScalingPending | Tabellenskalierungen stehen für "Online Change" bereit und warten auf Aktivierung
 |  |  | 24 | 0/1 | CmdBuffered | CmdBuffered | Nachfolgekommando liegt im Auftragspuffer bereit (s. Buffer Mode) (ab TwinCAT V2.10 Build 1311)
 |  |  | 25 | 0/1 | PTPmode | PTPmode | Achse in PTP Betriebsart (kein Slave, keine NCI-Achse, keine FIFO-Achse) (ab TC 2.10 Build 1326)
 |  |  | 26 | 0/1 | SoftLimitMinExceeded | SoftLimitMinExceeded | Software Endlage Minimum ist aktiv/belegt (ab TC 2.10 Build 1327)
 |  |  | 27 | 0/1 | SoftLimitMaxExceeded | SoftLimitMaxExceeded | Software Endlage Maximum ist aktiv/belegt (ab TC 2.10 Build 1327)
 |  |  | 28 | 0/1 | DriveDeviceError | DriveDeviceError | Antriebshardware hat einen Fehler (keine Warnung), Interpretation nur möglich wenn Antrieb im IO-Datenaustausch, z.B. EtherCAT "OP"-State (ab TC 2.10 Build 1326)
 |  |  | 29 | 0/1 | MotionCommandsLocked | MotionCommandsLocked | Achse ist gesperrt für Bewegungskommandos (TcMc2)
 |  |  | 30 | 0/1 | IoDataInvalid | IoDataInvalid | IO Daten ungültig (z.B. 'WcState' oder 'CdlState' des Feldbusses)
 |  |  | 31 | 0/1 | Error | Error | Achse ist im Fehlerzustand
2 | UINT32 | 4-7 | - | ³0 | nErrorCode | ErrorCode | Fehlercode Achse
3 | UINT32 | 8-11 | - | ENUM | nAxisState | AxisState | Bewegungszustand der Achse
4 | UINT32 | 12-15 | - | ENUM | nAxisModeCon | AxisModeConfirmation | Betriebsart der Achse (Rückmeldung der NC)
5 | UINT32 | 16-19 | - | ENUM | nCalibrationState | HomingState | Referenzierstatus der Achse ("Eichstatus")
6 | UINT32 | 20-23 | - | ENUM | nCoupleState | CoupleState | Koppelstatus der Achse
7 | UINT32 | 24-27 | - | ³0 | nSvbEntries | SvbEntries | SVB-Einträge/Aufträge
8 | UINT32 | 28-31 | - | ³0 | nSafEntries | SafEntries | SAF-Einträge/Aufträge (NC-Interpreter, Fifo-Gruppe)
9 | UINT32 | 32-35 | - | >0 | nAxisId | AxisId | Achs-ID
10 | UINT32 | 36-39 | - | - | nOpModeDWord, bOpMode... | OpModeDWord, OpMode... | Achs-Betriebsart-Doppelwort
 |  |  | 0 | 0/1 | ...PosAreaMonitoring | ...PosAreaMonitoring | Positionsbereichsüberwachung
 |  |  | 1 | 0/1 | ...TargetPosMonitoring | ...TargetPosMonitoring | Zielpositionsfensterüberwachung
 |  |  | 2 | 0/1 | ...Loop | ...Loop | Schleifenweg
 |  |  | 3 | 0/1 | ...MotionMonitoring | ...MotionMonitoring | Physikalische Bewegungsüberwachung
 |  |  | 4 | 0/1 | ...PEHTimeMonitoring | ...PEHTimeMonitoring | PEH-Zeitüberwachung
 |  |  | 5 | 0/1 | ...BacklashComp | ...BacklashComp | Losekompensation
 |  |  | 6 | 0/1 | ...DelayedErrorReaction | ...DelayedErrorReaction | Verzögerte Fehlerreaktion der NC
 |  |  | 7 | 0/1 | ...Modulo | ...Modulo | Modulo-Achse (Modulo-Anzeige)
 |  |  | 8-15 | 0/1 |  |  | RESERVE
 |  |  | 16 | 0/1 | ...PosLagMonitoring | ...PosLagMonitoring | Schleppabstandsüberwachung Position
 |  |  | 17 | 0/1 | ...VeloLagMonitoring | ...VeloLagMonitoring | Schleppabstandsüberwachung Geschwindigkeit
 |  |  | 18 | 0/1 | ...SoftLimitMinMonitoring | ...SoftLimitMinMonitoring | Endlagenüberwachung Min.
 |  |  | 19 | 0/1 | ...SoftLimitMaxMonitoring | ...SoftLimitMaxMonitoring | Endlagenüberwachung Max.
 |  |  | 20 | 0/1 | ...PosCorrection | ...PosCorrection | Positionskorrektur ("Messsystemfehlerkompensation")
 |  |  | 21 | 0/1 | ...AllowSlaveCommands | ...AllowSlaveCommands | Erlaube Bewegungskommandos an Slave-Achsen
 |  |  | 22 | 0/1 |  |  | RESERVE
 |  |  | 23 | 0/1 | ApplicationRequest | ApplicationRequest | Anforderungs-Bit für die Anwendersoftware (SPS Code) für z.B. einen "ApplicationHomingRequest" ab TwinCAT V2.11 Build 1546
 |  |  | 24-31 | 0/1 |  |  | RESERVE
11 | UINT16 | 40-41 | - | ≥0 | nActiveControlLoopIndex | ActiveControlLoopIndex | Aktiver Achsregelkreis Index (identisch mit alter Variable "nCtrlLoopIndex") ab TwinCAT V2.10 Build 1311
12 | UINT16 | 42-43 | - | ≥0 | nControlLoopIndex | ControlLoopIndex | Achsregelkreis Index (0, 1, 2, … wenn mehrere Achsregelkreise verwendet werden) ab TwinCAT V2.10 Build 1311
13 | REAL64 | 44-51 | - | ±¥ | fPosIst | ActPos | Istposition (verrechneter Absolutwert)
14 | REAL64 | 52-59 | - | >¥ | fModuloPosIst | ModuloActPos | Modulo-Istposition (verrechneter Wert z.B. in Grad)
15 | INT32 | 60-63 | - | ±¥ | nModuloTurns | ModuloActTurns | Modulo-Ist-Umdrehungen
16 | REAL64 | 64-71 | - | ±¥ | fVeloIst | ActVelo | Istgeschwindigkeit (optional)
17 | REAL64 | 72-79 | - | ±¥ | fPosDiff | PosDiff | Schleppabstand (Position)
18 | REAL64 | 80-87 | - | ±¥ | fPosSoll | SetPos | Sollposition (verrechneter Absolutwert)
19 | REAL64 | 88-95 | - | ±¥ | fVeloSoll | SetVelo | Sollgeschwindigkeit
20 | REAL64 | 96-103 | - | ±¥ | fAccSoll | SetAcc | Sollbeschleunigung
21 | REAL64 | 104-111 | - | ±¥ | fPosTarget | TargetPos | Voraussichtliche Zielposition der Achse ab TwinCAT V2.10 Build 1311
22 | REAL64 | 112-119 | - | >¥ | fModuloPosSoll | ModuloSetPos | Modulo Sollposition (verrechneter Wert z.B. in Grad) ab TwinCAT V2.10 Build 1311
23 | INT32 | 120-123 | - | ±¥ | nModuloTurnsSoll | ModuloSetTurns | Modulo Soll-Umdrehungen ab TwinCAT V2.10 Build 1311
24 | UINT16 | 124-125 | - | ≥0 | nCmdNo | CmdNo | Kommandonummer des aktiven Auftrags der Achse (s. Buffer Mode) ab TwinCAT V2.10 Build 1311
25 | UINT16 | 126-127 | - | ≥0 | nCmdState | CmdState | Kommando Statusinformation (s. Buffer Mode) ab TwinCAT V2.10 Build 1311

Beschreibung der Inhalte der einzelnen Felder:

Define | Referenzierstatus der Achse (nCalibrationState bzw. HomingState)
0 | Referenziervorgang fertig (READY)
1 | Endlosstart in Richtung der Referenziernocke (Hinweis: wenn Nocke zu Beginn belegt ist, dann wird direkt mit Referenzierstatus 3 begonnen)
2 | Warten auf positive Flanke der Referenziernocke und Achsstopp einleiten
3 | Warten bis Achse im Stillstand (Prüfung ob Nocke noch belegt ist) und dann Endlosstart vom Referenziernocken in Richtung Syncimpuls
4 | Warten auf fallende Flanke der Referenziernocke
5 | Latch aktivieren, warten bis Latch gültig geworden ist und dann den Achsstopp einleiten
6 | Wenn Achse im Stillstand dann Istposition setzen (Istposition = Referenzposition + Bremsweg)

Siehe auch Anmerkungen zu MC_Home

Define | Koppelstatus der Achse (nCoupleState bzw. CoupleState)
0 | Singleachse, die weder Master noch Slave ist (SINGLE)
1 | Masterachse mit beliebiger Anzahl Slaves (MASTER)
2 | Slaveachse, die Master eines anderen Slaves ist (MASTER-SLAVE)
3 | Nur Slaveachse (SLAVE)

Define | Master: Bewegungszustand / Fahrphase der kontinuierlichen Masterachse (Servo) (nAxisState bzw. AxisState)
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)

Define | Master: Bewegungszustand / Fahrphase der diskreten Masterachse (Eil/Schleich) (nAxisState bzw. AxisState)
0 | Sollwertgenerator nicht aktiv
1 | Fahrphase (Eilgang bzw. Schleichgang)
2 | Umschaltverzögerung von Eil- auf Schleichgang
3 | Schleichfahrt (innerhalb vom Schleichweg)
4 | Bremszeit (beginnend ab Bremsweg vor dem Ziel)

Define | Slave: Bewegungszustand / Fahrphase der kontinuierlichen Slaveachse (Servo) (nAxisState bzw. AxisState) Anmerkung: vorerst nur für Slaves vom Typ Synchronisierungsgenerator !
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)

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | PlcNc.Lib
TwinCAT v2.8.0 | PC (i386) | TcNC.Lib


StateDWord

TwinCAT PLC Libraries: NC

Beschreibung des StateDWord

Das StateDWord ist in 32 Bit Datenwort im zyklischen Achsinterface NC->SPS. Die detaillierte Funktion jedes Status-Bits in diesem Datenwort wird in der folgenden Tabelle beschrieben.

Bit | Variable-Name | Beschreibung
0 | Operational | Achse ist betriebsbereit
1 | Homed | Achse ist referenziert ("Achse geeicht")
2 | NotMoving | Achse ist im logischen Stillstand ("Achse fährt nicht")
3 | InPositionArea | Achse ist im Positionsbereichsfenster (physikalische Rückmeldung)
4 | InTargetPosition | Achse ist in Zielposition (PEH) (physikalische Rückmeldung)
5 | Protected | Achse ist in geschützter Betriebsart (z.B. Slave-Achse)
6 | ErrorPropagationDelayed | Achse signalisiert eine Fehlervorwarnung (ab TC 2.11)
7 | HasBeenStopped | Achse ist gestoppt worden bzw. führt einen Stopp aus
8 | HasJob | Achse hat Auftrag, führt Auftrag aus
9 | PositiveDirection | Achse fährt logisch größer
10 | NegativeDirection | Achse fährt logisch kleiner
11 | HomingBusy | Achse referenziert ("Achse wird geeicht")
12 | ConstantVelocity | Achse hat V-Konst bzw. Drehzahl erreicht
13 | Compensating | Streckenkompensation passiv[0]/aktiv[1] (s. "MC_MoveSuperImposed")
14 | ExtSetPointGenEnabled | Externe Sollwertgenerierung freigegeben
15 |  | Betriebsart noch nicht ausgeführt ( Busy). Noch nicht freigegeben!
16 | ExternalLatchValid | Externer Latchwert bzw. Messtaster gültig geworden
17 | NewTargetPos | Achse hat neue Endposition bzw. neue Geschwindigkeit erhalten
18 |  | Achse nicht in Zielposition bzw. kann/wird diese nicht erreichen (z.B. Achs-Stopp). Noch nicht freigegeben!
19 | ContinuousMotion | Achse führt Endlos-Positionierauftrag aus
20 | ControlLoopClosed | Achse betriebsbereit und Achsregelkreis geschlossen (z.B. Lageregelung)
21 | CamTableQueued | Neue Tabelle steht für "Online Change" bereit und wartet auf Aktivierung
22 | CamDataQueued | Tabellendaten (MF) stehen für "Online Change" bereit und warten auf Aktivierung
23 | CamScalingPending | Tabellenskalierungen stehen für "Online Change" bereit und warten auf Aktivierung
24 | CmdBuffered | Nachfolgekommando liegt im Auftragspuffer bereit (s. Buffer Mode) (ab TwinCAT V2.10 Build 1311)
25 | PTPmode | Achse in PTP Betriebsart (kein Slave, keine NCI-Achse, keine FIFO-Achse) (ab TC 2.10 Build 1326)
26 | SoftLimitMinExceeded | Software Endlage Minimum ist aktiv/belegt (ab TC 2.10 Build 1327)
27 | SoftLimitMaxExceeded | Software Endlage Maximum ist aktiv/belegt (ab TC 2.10 Build 1327)
28 | DriveDeviceError | Antriebshardware hat einen Fehler (keine Warnung), Interpretation nur möglich wenn Antrieb im IO-Datenaustausch, z.B. EtherCAT "OP"-State (ab TC 2.10 Build 1326)
29 | MotionCommandsLocked | Achse ist gesperrt für Bewegungskommandos (TcMc2)
30 | IoDataInvalid | IO Daten ungültig (z.B. 'WcState' oder 'CdlState' des Feldbusses)
31 | Error | Achse ist im Fehlerzustand


Achs-Interface SPS->NC (128 Byte)

TYPE PLCTONC_AXLESTRUCT

TYPE PLCTONC_AXLESTRUCT
STRUCT
    nDeCtrlDWord 	: DWORD; (* control double word *)
    nOverride 	: DWORD; (* velocity override *)
    nAxisModeReq 	: DWORD; (* axis operating mode (PLC request) *)
    nAxisModeDWord 	: DWORD; (* *)
    fAxisModeLReal 	: LREAL; (* *)
    fActPosCorrection 	: LREAL; (* correction value for current position *)
    fExtSetPos 	: LREAL; (* external position setpoint *)
    fExtSetVelo 	: LREAL; (* external velocity setpoint *)
    fExtSetAcc 	: LREAL; (* external acceleration setpoint *)
    nExtSetDirection 	: DINT; 	(* external direction setpoint *)
    nReserved1 	: DWORD; (* reserved *)
    fExtCtrlOutput 	: LREAL; (* external controller output *)
    nReserved_HIDDEN 	: ARRAY [72..127] OF BYTE;
END_STRUCT
END_TYPE

Für jede NC-Achse steht ein Datenblock von 128 Byte für den Datentransport NC -> SPS und ein ebenfalls 128 Byte großer Datenblock für den Datentransport SPS -> NC zur Verfügung. Der SPS-Programmierer muss für jede Richtung und jede Achse eine Variable erzeugen und sie im E/A-Bereich mit der AT-Anweisung auf den Input- und Outputbereich fixieren. Die Zuordnung zwischen den NC-Variablen und den SPS-Variablen geschieht mittels des TwinCAT System Managers.

Nr. | Datentyp | Byte | Bit | Def.Bereich | Variable-Name | Variable-Name (ab 2.11 bzw. TcMc2) | Beschreibung
1 | UINT32 | 0-3 | - | 0/1 | nDeCtrlDWord | ControlDWord | Kontroll-Doppelwort:
 |  |  | 0 | 0/1 | Enable | Enable | Reglerfreigabe
 |  |  | 1 | 0/1 | FeedEnablePlus | FeedEnablePlus | Vorschubfreigabe Plus
 |  |  | 2 | 0/1 | FeedEnableMinus | FeedEnableMinus | Vorschubfreigabe Minus
 |  |  | 3 | 0/1 | - | - | RESERVE
 |  |  | 4 | 0/1 | - | - | RESERVE
 |  |  | 5 | 0/1 | HomingSensor | HomingSensor | Referenziernocke bzw. Referenziersensor
 |  |  | 6 | 0/1 | - | - | RESERVE
 |  |  | 7 | 0/1 | - | - | RESERVE
 |  |  | 8 | 0/1 | AcceptBlockedDrive | AcceptBlockedDrive | Akzeptiere Sperre der Sollwertübernahme des Drives (z.B. Hardware Endlagen) ab TwinCAT V2.10 Build 1311
 |  |  | 9 | 0/1 | BlockedDriveDetected | BlockedDriveDetected | Anwendersignal Achse ist blockiert (z.B. mechanischer Festanschlag). Noch nicht freigegeben!
 |  |  | 10-29 | 0/1 | - | - | RESERVE
 |  |  | 30 | 0/1 | PlcDebugFlag | PlcDebugFlag | Debug-Funktion PLC. Nur für internen Gebrauch!
 |  |  | 31 | 0/1 | NcDebugFlag | NcDebugFlag | Debug-Funktion NC. Nur für internen Gebrauch!
2 | UINT32 | 4-7 | - | 0...1000000 | nOverride | Override | Geschwindigkeits-Override (0% bis 100%)
3 | UINT32 | 8-11 | - |  | nAxisModeReq | AxisModeRequest | Betriebsart der Achse. Nur für interne Verwendung vorgesehen !
4 | UINT32 | 12-15 | - |  | nAxisModeDWord | AxisModeDWord | Nur für interne Verwendung vorgesehen !
5 | REAL64 | 16-23 | - |  | fAxisModeLReal | AxisModeLReal | Nur für interne Verwendung vorgesehen !
6 | REAL64 | 24-31 | - |  | fActPosCorrection | PositionCorrection | Istpositionskorrekturwert
7 | REAL64 | 32-39 | - |  | fExtSetPos | ExtSetPos | Externe Sollposition
8 | REAL64 | 40-47 | - |  | fExtSetVelo | ExtSetVelo | Externe Sollgeschwindigkeit
9 | REAL64 | 48-55 | - |  | fExtSetAcc | ExtSetAcc | Externe Sollbeschleunigung
10 | INT32 | 56-59 | - |  | nExtSetDirection | ExtSetDirection | Externe Sollfahrrichtung [-1,0,1]
11 | UINT32 | 60-63 | - |  | nReserved1 | - | RESERVE
12 | REAL64 | 64-71 | - |  | fExtCtrlOutput | ExtControllerOutput | Externe Regler Ausgabe. Noch nicht freigegeben!
13 | REAL64 | 72-79 | - | ±¥ | - | GearRatio1 | Getriebefaktor (Koppelfaktor) 1
14 | REAL64 | 80-87 | - | ±¥ | - | GearRatio2 | Getriebefaktor (Koppelfaktor) 2
15 | REAL64 | 88-95 | - | ±¥ | - | GearRatio3 | Getriebefaktor (Koppelfaktor) 3
16 | REAL64 | 96-103 | - | ±¥ | - | GearRatio4 | Getriebefaktor (Koppelfaktor) 4
17 | - | 104-127 | - | - | nReserved | - | RESERVE

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.7.0 | PC (i386) | PlcNc.Lib
TwinCAT v2.8.0 | PC (i386) | TcNC.Lib


Diskrete Eil-/Schleichachse (Two Speed)

Wertebereich Startgeschwindigkeit V | Interpretation der Startgeschwindigkeit bei Override 100% (geforderte Fahrgeschwindigkeit /Fahrstufe)
V > 50 | Eilgang
0 < V £ 50 | Schleichgang
V £ 0 | FEHLER

Wertebereich Override X | Interpretation des Overridewertes ( 100% º 1.000.000 )
X > 50% (500000) | Eilgang
0% < X £ 50% (500000) | Schleichgang
X = 0% | Stillstand (Toleranzfenster: <100 º <0.01% )

Achtung!

Eine Overrideänderung (auch Override = 0) wird nur innerhalb der Hauptfahrphase wirksam. Wenn der Override innerhalb einer der Bremsphasen auf 0 gesetzt wird, wird die eingeleitete Bremsphase unbeeinflusst beendet.


Drive-Interface für Eil/Schleichachsen NC->IO (12 Byte)

Nr. | Datentyp | Byte | Bit | Def. Bereich | Variable-Name | Beschreibung
1 | UINT32 | 0-3 | - | - | nOutData1 | Drive-Output Ausgabedaten 1 (NC->IO)
2 | UINT32 | 4-7 | - | - | nOutData2 | Drive-Output Ausgabedaten 2 (NC->IO)
3 | UINT8 | 8 | - | - | nControlByte | Control-Byte
 |  |  | 0 | 0/1 | bMinusHigh | Richtung: Negativ Geschwind.: Schnell
 |  |  | 1 | 0/1 | bMinusLow | Richtung: Negativ Geschwind.: Langsam
 |  |  | 2 | 0/1 | bPlusLow | Richtung: Positiv Geschwind.: Langsam
 |  |  | 3 | 0/1 | bPlusHigh | Richtung: Positiv Geschwind.: Schnell
 |  |  | 4 | 0/1 | - | RESERVE
 |  |  | 5 | 0/1 | - | RESERVE
 |  |  | 6 | 0/1 | bBreakInv | Inverses Bremsbit (0 º AKTIV, 1 º PASSIV)
 |  |  | 7 | 0/1 | bBreak | Bremsbit (0 º PASSIV, 1 º AKTIV)
4 | UINT8 | 9 | - | - | nExtControlByte | Extended Control Byte
 |  |  | 0 | 0/1 | bDirectionMinus | Richtung: Negativ
 |  |  | 1 | 0/1 | bDirectionPlus | Richtung: Positiv
 |  |  | 2 | 0/1 | bVeloLow | Geschwindigkeit: Langsam
 |  |  | 3 | 0/1 | bVeloHigh | Geschwindigkeit: Schnell
 |  |  | 4 | 0/1 | - | RESERVE
 |  |  | 5 | 0/1 | - | RESERVE
 |  |  | 6 | 0/1 | bBreakInv | Inverses Bremsbit (0 º AKTIV, 1 º PASSIV)
 |  |  | 7 | 0/1 | bBreak | Bremsbit (0 º PASSIV, 1 º AKTIV)
5 | UINT16 | 10-11 | - | - | nReserved | Reserve-Bytes

app_interface.gif (1102 Byte)

Anmerkung:

Ein Achsstart wird nur innerhalb einer Entfernung zum Zielpunkt ausgeführt, die echt größer als der parametrierte Bremsweg ist.


"Low Cost" Schrittmotorachse mit digitaler Ansteuerung (Stepper)

Drive-Interface für "Low Cost" Schrittmotorachse NC->IO (12 Byte)

Nr. | Datentyp | Byte | Bit | Def. Bereich | Variable-Name | Beschreibung
1 | INT32 | 0-3 | - | - | nOutData1 | Drive-Output Ausgabedaten 1 (NC->IO)
2 | INT32 | 4-7 | - | - | nOutData2 | Drive-Output Ausgabedaten 2 (NC->IO)
3 | UINT8 | 8 | - | - | nControlByte | Control-Byte
3.0 | ... | 8 | 0 | 0/1 | bPhaseA | Phase A
3.1 | ... | 8 | 1 | 0/1 | bPhaseAInv | Phase A Invers
3.2 | ... | 8 | 2 | 0/1 | bPhaseB | Phase B
3.3 | ... | 8 | 3 | 0/1 | bPhaseBInv | Phase B Invers
3.4 | ... | 8 | 4 | 0/1 | - | RESERVE
3.5 | ... | 8 | 5 | 0/1 | - | RESERVE
3.6 | ... | 8 | 6 | 0/1 | bBreakInv | Inverses Bremsbit (0 º AKTIV, 1 º PASSIV)
3.7 | ... | 8 | 7 |  | bBreak | Bremsbit (1 º AKTIV, 0 º PASSIV)
4 | UINT8 | 9 | - | - | nExtControlByte | Extended Control Byte
4.0 | ... | 9 | 0 | 0/1 | bFrequency | Frequenz (Rechtecksignal)
4.1 | ... | 9 | 1 | 0/1 | bDirectionPlus | Richtung: Positiv
4.2 | ... | 9 | 2 | 0/1 | - | RESERVE
4.3 | ... | 9 | 3 | 0/1 | - | RESERVE
4.4 | ... | 9 | 4 | 0/1 | - | RESERVE
4.5 | ... | 9 | 5 | 0/1 | - | RESERVE
4.6 | ... | 9 | 6 | 0/1 | - | RESERVE
4.7 | ... | 9 | 7 | 0/1 | - | RESERVE
5 | UINT16 | 10-11 | - | - | nReserved | Reserve-Bytes


Übersicht

Allgemeines

Zur Achsinbetriebnahme gehören insbesondere die Kenntnis und Nutzung der Sicherheitsfunktionalitäten der NC sowie das Ergreifen der notwendigen Sicherheitsvorkehrungen und die Einhaltung einer bestimmten Reihenfolge der Inbetriebnahmeschritte der Achsbestandteile (Encoder, Antrieb und Regler) sowie die Einstellung der Achsparameter.

Encoder und Istwerte

Ermittlung und Einstellung der wichtigsten Encoder-Parameter: Encoder-Polarität, Skalierung (Inkremente pro mm), Positionsoffset (Nullpunktverschiebung).

Antrieb und Spannungsausgabe

Ermittlung und Einstellung der wichtigsten Antrieb-Parameter: Antrieb-Polarität, Referenzausgabe (Bezugsausgabe), Referenzgeschwindigkeit (Bezugsgeschwindigkeit), Driftkompensation.

Lagereglung und Schleppabstandsreduzierung

Ermittlung und Einstellung der wichtigsten Lageregler-Parameter: Kv-Faktor und Parameter zur Schleppabstandsreduzierung.

Achs-Parameter, Achsüberwachung und Achs-Kalibrierung

Ermittlung und Einstellung der wichtigsten Achs-Parameter: Maximal-Geschwindigkeit, Schleppabstandsüberwachung, Endlagenüberwachung sowie der Parameter zur Dynamik und Kalibrierung.


Allgemeines

Zur Achsinbetriebnahme gehören insbesondere die Kenntnis und Nutzung der Sicherheitsfunktionalitäten der NC sowie das Ergreifen der notwendigen Sicherheitsvorkehrungen sowie die Einhaltung einer bestimmten Reihenfolge der Inbetriebnahmeschritte.

Allgemeine Sicherheitsvorkehrungen

Informieren Sie sich über die Sicherheitsfunktionalitäten der NC und nutzen Sie diese.

Die Behandlung des NOT-AUS Falls gehört zu den wichtigsten und sicherheitsrelevantesten Situation an einer Maschine. Aus diesem Grund wird üblicherweise nach allen logischen (logische Achsfreigaben) und softwaretechnischen Freigaben (SPS: Regler- und Vorschubfreigaben) ein weiterer Sicherheitskreis in Form von Hardware aufgebaut. Für die Reaktion und hardwaretechnische Implementation des NOT-Aus existieren umfangreiche gesetzliche Vorschriften, auf die hier nur verwiesen werden soll.
Oftmals gibt es über diesen gesetzlichen Vorgaben noch Freiräume, wie z. B. NC-Achsen im NOT-Aus Fall in den Stillstand versetzt werden. Hierbei ist es teilweise auf Grund der mechanischen Eigenschaften einer Maschine nicht immer möglich, Achsen aus einer Bewegung heraus abrupt still zu setzen (z.B. bei einem Analog-Interface abrupt 0.0 Volt). Somit werden häufig NC-Achsen in einer NOT-Aus Situation noch auf speziellen Bremsrampen heruntergefahren, bevor sie dann elektrisch und mechanisch festgesetzt werden.
Eine der ersten Maßnahmen bei der Inbetriebnahme einer Maschine ist es, den NOT-Aus Kreis zu testen. Natürlich beginnt man zuerst mit harmlosen Standardsituationen (Achsen befinden sich im NOT-Aus Fall im Stillstand, allerdings muss hier besondere Aufmerksamkeit auf vertikal verfahrende Achsen verwendet werden) und steigert sich dann weiter zu komplizierteren Fällen (Achsen in langsamer dann schneller Fahrt).

Zu schnellen Test- und Inbetriebnahmezwecken ist es möglich, die logischen Achsfreigaben (Regler- und Vorschubfreigaben) sowie den Geschwindigkeitsoverride der Achsen aus dem TwinCAT System Manager "Achse-Online" für die jeweilige Achse zu setzen. Dies ist allerdings nur möglich, wenn sich das Achsinterface nicht im zyklischen Austausch mit der SPS befindet (Mapping zwischen NC- und SPS-Task). Andernfalls würde das einmalige Schreiben diese Information aus dem System Manager sofort wieder durch den zyklischen Datenaustausch überschrieben. Es sei aber an dieser Stelle darauf hingewiesen, dass diese Vorgehensweise sehr gefährlich sein kann, weil hierdurch die üblichen Sicherheitsüberwachungs- und Eingriffmöglichkeiten der SPS außer Kraft gesetzt werden. Deshalb kann diese Eigenschaft gefahrlos an einem Achsenteststand mit Endlosachsen benutzt werden. Für eine reale Maschine ist von diese Möglichkeit dringend abzuraten.
System Manager: Achse: Online: Set

Notwendige Voraussetzungen

Die nachfolgende Beschreibung gibt die Inbetriebnahme einer Achse in allen Schritten wieder. Es werden mehrere Achs-Typen und eine Reihe von unterschiedlichen Situationen abgedeckt. Jeder Schritt nennt alle vorzunehmenden Einstellungen, auch wenn diese mit den Einstellungen des vorhergehenden Schrittes identisch sind. In der Praxis werden Sie bei einer Achse nur einen Teil der aufgelisteten Teilschritte tatsächlich ausführen.
Falls Sie bereits Erfahrung mit der Achs-Inbetriebnahme unter TwinCAT besitzen, ist es nicht immer nötig, jeden der Schritte durchzuführen. In diesem Fall sollten Sie diese Beschreibung als Gedächtnisstütze und als Hilfe bei Problemen benutzen.
Notwendige Voraussetzungen:
Bevor die eigentliche Inbetriebnahme beginnen kann, sind einige Vorarbeiten zu leisten.

  • Überprüfen Sie die Vollständigkeit und Richtigkeit aller elektrischen Verbindungen.
  • Alle Bestandteile der Achse (Encoder, Antrieb, Regler, SPS-Interface) müssen typenrichtig angelegt und mit den richtigen Ressourcen (SPS-Variablen, E/A-Hardware im Feldbus usw.) verbunden sein.
  • Die NC-Architektur muss nicht nur erzeugt, sondern auch in die Registry geschrieben und TwinCAT muss damit gestartet worden sein.

Empfohlene Sicherheitsvorkehrungen

Die folgenden Sicherheitsvorkehrungen sollten wenn irgend möglich getroffen werden.

  • Sichern der Anlage gegen Betreten oder Hineingreifen: Die Maschine kann während der Inbetriebnahme unvorhersehbares Verhalten zeigen.
  • Isolieren Sie den Teil der Anlage, den Sie gerade bearbeiten. Was gerade nicht benötigt wird sollte sicher stillgesetzt werden, da es nur stören oder ablenken kann.
  • Weisen Sie alle Personen in der Umgebung darauf hin, dass erhöhte Unfallgefahr besteht.
  • Sorgen Sie dafür, dass Sie ungestört sind: Wer nicht in der Nähe sein muss, sollte es nicht sein.

Reihenfolge

Da die einzelnen Schritte der Achs-Inbetriebnahme logisch auf einander aufbauen, ist eine bestimmte Reihenfolge einzuhalten. Diese Reihenfolge ist jedoch abhängig von der jeweiligen Achs-Zusammensetzung, also von der Kombination von Encoder-, Regler- und Antrieb-Typ.

Schrittmotor-Antriebe

Dieser Punkt betrifft ausschließlich Schrittmotoren.
Die Ansteuerung eines Schrittmotors erfolgt mit Hilfe von Masken. Dabei handelt es sich um Pakete aus acht Bits, die den Steuersignalen des Motors entsprechen. Diese Signale werden in jeweils einer Phase ausgegeben und schalten die zugehörige Wicklung des Motors ein. Eine besondere Maske wird im Stillstand ausgegeben und dient dazu, den sogenannten Haltestrom einzuschalten. Die Masken sind abhängig von der eingesetzten Motor-Ansteuerung und der Schaltschrank-Verdrahtung und können nicht allgemeingültig angegeben werden.
Entnehmen Sie die Bit-Kombinationen den Unterlagen des Antriebs-Herstellers bzw. der Elektro-Konstruktion und geben Sie sie auf dem Schrittmotor-Reiter des Antriebs ein. Sollte die Achse bei den weiteren Inbetriebnahme-Schritten unkorrektes Verhalten zeigen, sind vorrangig diese Masken zu überprüfen.
Die Eingabe erfolgt als Dezimal-Zahl. Um ein Bit-Muster in den einzugebenden Wert umzurechnen ist für jedes Bit mit dem Wert "1" das Gewicht zu ermitteln.

Bitmuster

Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
Gewicht | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128

Beispiel: Beim Bitmuster 00101011 sind die Bits 0, 1, 3 und 5 auf "1". Die zugehörigen Gewichte sind 1, 2, 4 und 32. Die einzugebende Summe ist also 39.


Encoder und Istwerte

Ermittlung und Einstellung der wichtigsten Encoder-Parameter: Encoder-Polarität, Skalierung (Inkremente pro mm), Positionsoffset (Nullpunktverschiebung).

Interface

Zugang zu den Parametern des Encoders hat man über den System Manager.

Die Istwert-Erfassung: Richtungsermittlung (Encoder-Polarität)

Ohne korrekte Istwert-Erfassung ist eine Achse "blind" und kann sich nicht koordiniert verhalten. Also muss die Inbetriebnahme hier beginnen. Dazu sind zwei Informationen zu ermitteln bzw. zu überprüfen: Die Zählrichtung und die Inkrement-Bewertung.

  1. Stellen oder legen Sie fest, welche Bewegungsrichtung der Achse als "positiv" oder "steigend" oder "aufwärts" gelten soll. Bei einer Fahrt in diese Richtung wird die Istwert-Erfassung steigende Werte melden müssen.
  2. Wenn Sie die Möglichkeit haben, den Antrieb elektrisch zu blockieren und die Achse manuell zu bewegen drehen Sie den Antrieb so, dass sich die Maschine in z.B. "positive" Richtung bewegt und beobachten Sie dabei die Istwert-Anzeige im Online-Bild der Achse.
  3. Besteht diese Möglichkeit nicht, müssen Sie die Achse notgedrungen mit dem Antrieb drehen. Das bedeutet, dass Sie eine unparametrierte Achse in Betrieb setzen. Besondere Vorsicht ist geboten, denn Sie werden dabei alle Regelungen und Überwachungen außer Kraft setzen. Die Achse wird mit reiner Vorsteuerung und mit fiktiven Daten gefahren. Gehen Sie wie folgt vor:
    1. Wenn Sie die Last (z.B. durch Entfernen von Riemen oder anderen Übertragungsmitteln) vom Antrieb trennen können, ohne den Encoder mit abzutrennen, sollten Sie das unbedingt tun!
    2. Stellen Sie auf dem Global-Reiter des Reglers für die Vorsteuer-Gewichtung einen Wert von 1.0 ein.
    3. Wenn der Regler einen PID-Reiter besitzt, stellen Sie den Lageregelfaktor Kp (und alle anderen Regelfaktoren) auf Null. Deaktivieren Sie den Automatischen Offsetabgleich.
    4. Im Global-Reiter des Antriebs stellen Sie die Ausgabebegrenzungen auf +0.1 bzw. -0.1 ein.
    5. Wenn der Antrieb einen Analog-Reiter besitzt, stellen Sie die Referenzgeschwindigkeit auf einen fiktiven (nicht zu kleinen) Wert und die Referenzausgabe auf 1.0 ein. Stellen Sie die Drift-Kompensation auf Null
    6. Im Global-Reiter der Achse stellen Sie bei Maximal erlaubte Geschwindigkeit den gleichen Wert wie bei der Referenzgeschwindigkeit des Antriebs ein. Unter Geschwindigkeit Hand Max und Geschwindigkeit Hand Min stellen Sie ein Zehntel des selben Wertes ein. Deaktivieren Sie alle Endlagen-, Schleppabstands- und sonstige Überwachungen.
    7. Vergewissern Sie sich, dass sich niemand im Gefahrenbereich aufhält.
    8. Mit größter Vorsicht (Hand am Notaus) schalten Sie die Achse elektrisch ein. Sie darf von einer eventuellen Drift keine Bewegung zeigen.
    9. Nun starten Sie im Online-Bild die Achse mit den Tasten <F2> bzw. <F3> in Richtung "kleiner" bzw. "größer" und beobachten dabei die Maschine. Sollte die Maschine bei <F2> in Richtung "größer" und bei <F3> in Richtung "kleiner" fahren ändern Sie im Global-Reiter des Antriebs die Motor-Polarität und wiederholen diesen Schritt.
    10. Vergleichen Sie jetzt die Bewegungsrichtung der Maschine mit der Zählrichtung der Istwert-Anzeige im Online-Bild.
  4. Ist die Zählrichtung der festgelegten Bewegungsrichtung entgegengesetzt, ändern Sie den Parameter Geberzählrichtung invers (Polarität) im Global-Reiter des Encoders. Dabei sollten Sie den Antrieb stromlos machen und die Achse im Online-Bild resetten <F8>.

Die Istwert-Erfassung: Inkrement-Bewertung (Skalierung)

Nachdem die Zählrichtung des Antriebs ermittelt ist, muss die Inkrementbewertung eingestellt werden. Dieser Wert ist im Skalierungsfaktor auf dem Global-Reiter des Encoders einzustellen.

  1. Wenn der Vorschub pro Umdrehung und die Anzahl der Inkremente (nicht die der Pulse !!!) bekannt sind, kann der Wert errechnet werden. Überprüfen Sie den Wert jedoch auf die nachstehende Weise.
  2. Wenn Sie noch keinen Wert für die Inkrement-Bewertung kennen, stellen Sie zumindest einen Schätzwert ein. Wenn Sie keinerlei Information über den einzustellenden Wert besitzen wählen Sie einen fiktiven Wert wie z.B. 0.01 mm.
  3. Bei einer nachträglichen Überprüfung gehen Sie selbstverständlich vom früher ermittelten Wert aus.
  4. Jetzt muss durch eine Probebewegung (wie bei der Richtungsermittlung) eine bekannte Strecke "gefahren" werden. Der korrekte Wert errechnet sich dann aus dem aktuell eingestellten Skalierungsfaktor multipliziert mit der tatsächlichen Strecke dividiert durch die angezeigte Strecke.

Die Istwert-Erfassung: Nullpunkt-Verschiebung

Dieser Punkt ist nur bei Absolut-Encodern durchzuführen.
Bei Inkremental-Systemen sollten Sie zu diesem Zeitpunkt (bei abgeschaltetem Antrieb und mit anschließendem Reset <F8> im Online-Bild der Achse) den Istwert auf einen leidlich sinnvollen Wert. Die Eingabefelder und Funktions-Tasten dazu finden Sie auf dem Funktionen-Reiter der Achse. Als Wert für die Nullpunkt-Korrektur sollten Sie den Wert 0 eingeben. Um das Maß-System der Achse an die Maschine anzupassen wird bei diesen Encodern die Kalibrier-Funktion benutzt, deren Parameter in einem späteren Schritt ermittelt werden.

  1. Stellen Sie die Position der Achse innerhalb der Maschine fest. Die Regeln dafür sind nicht allgemein angebbar und können nur vom Maschinenbauer festgelegt werden. In vielen Fällen wird dabei der Abstand eines Bezugspunktes auf dem bewegten Maschinenteil zu einem Bezugspunkt auf dem feststehenden Maschinenkörper gewählt.
  2. Sollte diese Positionsfeststellung nicht mit der erforderlichen Genauigkeit möglich sein, nehmen Sie eine vorläufige Einstellung vor und wiederholen Sie diesen Schritt später.
  3. Stellen Sie die Differenz zwischen der ermittelten Position und der angezeigten Position mit umgekehrtem Vorzeichen im Nullpunktversatz auf dem Global-Reiter des Encoders ein. Ist dort bereits ein Wert eingetragen, verändern Sie den vorhandenen Wert um den neuen Wert durch aufaddieren. Falls die Lageregelung (bei einem späteren Wiederholen dieses Schrittes) bereits aktiv sein, sollten Sie dabei den Antrieb elektrisch stillsetzen und die Achse vor dem wieder einschalten resetten <F8>.
  4. Beispiel: Die ermittelte Position ist 752.0 mm, die angezeigte Position ist 1983.52 mm. Die Differenz beträgt also 1231.52 mm. Wenn im Nullpunktversatz noch kein Wert eingetragen ist können Sie direkt -1231.52 eintragen. Sollte bereits ein Nullpunktversatz eingetragen sein addieren Sie den neuen Wert. In diesem Beispiel würde also aus +150.0 der neue Wert -1081.52 mm.

Weitere Encoder-Parameter

Die Encoder bieten als optionale Einstellung eine Reihe von Arbeits-Modi an. Dazu gehören z.B. die Ermittlung des Ist-Geschwindigkeit bzw. der Ist-Beschleunigung. Bei Bedarf können diese Messungen auf dem Global-Reiter des Encoders aktiviert werden. Sind diese Werte nicht von Interesse, sollten sie jedoch abgewählt werden, da die Ermittlung der Werte die Echtzeit-Auslastung etwas erhöht.
Als weitere Möglichkeit kann ein Modulo-Faktor eingestellt werden. Dies ist besonders bei Rund-Achsen interessant, weil dadurch die relative Position innerhalb einer Umdrehung und die Anzahl der Umdrehungen automatisch ermittelt werden kann.

Schließlich können die Encoder Werte (Position, Geschwindigkeit, Beschleunigung) gefiltert werden, was besonders für Encoder-Achsen von Bedeutung ist.

Achtung:

Das Filtern der Position, auch mit kleinen Werten, kann zu einem fatalen Fehlverhalten der Steuerung führen.


Antrieb und Spannungsausgabe

Achtung: Informieren Sie sich über das Verhalten des Antriebs bei Überlastung (es gibt Antriebe, die sich dann automatisch abstellen, so dass die Achse dann kräftefrei, voller Energie und nicht mehr zu bremsen ist).

Ermittlung und Einstellung der wichtigsten Antrieb-Parameter: Antrieb-Polarität, Referenzausgabe (Bezugsausgabe), Referenzgeschwindigkeit (Bezugsgeschwindigkeit), Driftkompensation.

Interface

Zugang zu den Parametern des Antriebs hat man über den System Manager.

Der Antrieb-Parameter: Richtungs-Ermittlung

  1. Nutzen Sie den Encoder! Begrenzen Sie den Fahrweg mit Hilfe der Software Endlage Min / Max auf dem Global-Reiter der Achse.

  2. Im Global-Reiter des Antriebs stellen Sie die Ausgabebegrenzungen auf +1.0 bzw. –1.0 ein.

  3. Stellen Sie auf dem Global-Reiter des Reglers für die Vorsteuer-Gewichtung einen Wert von 1.0 ein.

  4. Wenn der Regler einen PID-Reiter besitzt, stellen Sie den Lageregelfaktor Kv (und alle anderen Regelfaktoren) auf Null. Deaktivieren Sie den Automatischen Offsetabgleich.

  5. Wenn der Antrieb einen Analog-Reiter besitzt, stellen Sie Referenzgeschwindigkeit entsprechend den Angaben des Maschinenbauers auf einen in etwa richtigen Wert und die Referenzausgabe auf 1.0 ein. Stellen Sie die Drift-Kompensation auf Null.

  6. Im Global-Reiter der Achse stellen Sie bei Maximal erlaubte Geschwindigkeit den gleichen Wert wie bei Referenzgeschwindigkeit des Antriebs ein. Unter Geschwindigkeit Hand Max und Geschwindigkeit Hand Min stellen Sie ein Zehntel des Wertes ein.

  7. Wenn der Regler einen PID-Reiter besitzt, stellen Sie den Lageregelfaktor Kv (und alle anderen Regelfaktoren) auf Null. Deaktivieren Sie den Automatischen Offsetabgleich.

  8. Nun starten Sie im Online-Bild die Achse mit den Tasten <F2> bzw. <F3> in Richtung „kleiner“ bzw. „größer“ und beobachten dabei die Maschine. Sollte die Maschine bei <F2> in Richtung „größer“ und bei <F3> in Richtung „kleiner“ fahren ändern Sie im Global-Reiter des Antriebs die Motor-Polarität und wiederholen diesen Schritt.

Der Antrieb-Parameter: Vorsteuerung

Dieser Punkt ist nur erforderlich, wenn der Antrieb einen Analog-Reiter besitzt.

  1. Stellen Sie auf dem Global-Reiter des Reglers für die Vorsteuer-Gewichtung einen Wert von 1.0 ein.

  2. Im Global-Reiter des Antriebs stellen Sie die Ausgabebegrenzungen auf +1.0 bzw. –1.0 ein.

  3. Auf dem PID-Reiter des Reglers stellen Sie den Lageregelfaktor Kv auf einen kleinen Wert ein. Bei korrekter Einstellung wird bei den durchzuführenden Probefahrten der Schleppabstand deutlich erkennbar, aber konstant sein. Beispiel: 1 (mm/sek)/mm oder 60 (mm/min)/mm.

  4. Auf dem Analog-Reiter des Antriebs stellen Sie die Referenzgeschwindigkeit entsprechend den Angaben des Maschinenbauers auf einen in etwa richtigen Wert ein. Stellen Sie die Drift-Kompensation auf Null. Entsprechend den Angaben des Maschinenbauers stellen Sie die Referenzausgabe auf 1.0, wenn er sich auf 100% (oder 10 Volt) bezieht. Bei einer Angabe für z.B. auf 90% (oder 9 Volt) ist entsprechend 0.9 einzustellen.

  5. Im Global-Reiter der Achse stellen Sie bei Maximal erlaubte Geschwindigkeit etwa 90% des Wertes der Referenzgeschwindigkeit des Antriebs ein. Unter Geschwindigkeit Hand Max und Geschwindigkeit Hand Min stellen Sie ein Zehntel des Wertes ein.

  6. Auf dem Dynamik-Reiter der Achse stellen Sie für Beschleunigung und Verzögerung einen provisorischen Wert von etwa 200 mm/s² sowie einen Ruck von 500 mm/s³ ein. Sollte mit diesen Werten auf der verfügbaren Fahrstrecke die Konstant-Geschwindigkeit nicht erreicht werden, erhöhen Sie die Werte unter Beibehaltung des Verhältnisses.

  7. Nun starten Sie im Online-Bild die Achse mit den Tasten <F2> bzw. <F3> in Richtung „kleiner“ bzw. „größer“ und beobachten dabei die Vorzeichen der Gesamt- und der Reglerausgabe.

  8. Sind beide Werte vorzeichengleich, reagiert die Achse mit einer geringeren Geschwindigkeit, als die Vorsteuerung berücksichtigt. In diesem Fall ist die Referenzgeschwindigkeit verringern. Bei entgegengesetztem Vorzeichen ist die Achse schneller als von der Vorsteuerung eingeplant. Dann ist die Referenzgeschwindigkeit zu erhöhen.

  9. Wenn die Reglerausgabe deutlich kleiner als 10% der Gesamtausgabe ist, kann die Geschwindigkeit Hand Max stufenweise auf höhere Werte bis etwa 50% der Maximal-Geschwindigkeit eingestellt werden. Die Probefahrten sind mit den Tasten <F1> und <F4> fortzusetzen.

  10. Bei guter Vorsteuerungseinstellung sollte die Reglerausgabe weniger als 1% der Gesamtausgabe darstellen. Schwierige mechanische Verhältnisse lassen einen so genauen Abgleich jedoch nicht immer zu.

Antrieb-Parameter: Drift-Ausgleich

Diese Einstellung ist nur möglich, wenn der Antrieb einen Analog-Reiter besitzt.

Bei analoger Sollwert-Vorgabe kommt es oft zu einem Spannungsversatz zwischen der Steuerung und dem Leistungsteil. Dabei kann es sich um einen realen Spannungsabfall handeln. Fast immer jedoch ist die Ursache, dass der Nullpunkt-Abgleich der beiden Seiten nicht übereinstimmt. In diesem Fall wird die Achse bei abgeschalteter Lageregelung langsam ihre Position verlassen: Sie driftet. Ein aktiver Lageregler wird sie in einiger Entfernung von der Sollposition stoppen. Allerdings steht dann ein mehr oder weniger großer Schleppabstand an.

In diesem Fall besteht die Möglichkeit, mit einem konstanten Geschwindigkeits-Offset den Versatz auszugleichen. Dabei wirkt sich jedoch die DAC-Auflösung von einigen mV störend aus.

Alternativ bieten einige Regler die Möglichkeit zur automatischen Offset-Korrektur an.

Der Antrieb-Parameter: Ausgabe-Begrenzung

In einigen Fällen ist es erforderlich, die mit einem Antrieb ausgegebene Ansteuerung des Leistungsteils zu begrenzen. Entsprechende Eingabemöglichkeiten finden Sie auf dem Global-Reiter des Antriebs. Allerdings sollten Sie diese Einstellung erst am Ende der Achs-Inbetriebnahme vornehmen. Bis zu diesem Zeitpunkt sollten dort die Werte –1.0 bzw. +1.0 für die Minimum- und Maximum-Begrenzung eingegeben werden. Andernfalls würden die hier beschriebenen Messungen manipuliert.


Lagereglung und Schleppabstandsreduzierung

Ermittlung und Einstellung der wichtigsten Lageregler-Parameter: Kv-Faktor und Parameter zur Schleppabstandsreduzierung.

Interface

Zugang zu den Parametern des Lagereglers hat man über den System Manager.

Gewichtung der Vorsteuerung

In der Regel werden Achsen unter TwinCAT mit einer Vorsteuer-Gewichtung von 1.0 betrieben. In seltenen Fällen kann es nötig sein, von dieser Einstellung abzuweichen. Dies ist dann der Fall, wenn die Achse einen stark nichtlinearen Zusammenhang zwischen Ansteuerung und Geschwindigkeit zeigt. Ein Beispiel sind Hydraulik-Ventile mit geknickten Kennlinien. In diesem Fall ist die Gewichtung so lange zu verringern, bis die Achse kein voreilendes Verhalten mehr zeigt. Es ist hier in der Regel nötig, komplexere Regler-Typen mit I-Anteil einzusetzen, um ein akzeptables Positionier-Verhalten zu erreichen.

Die Lageregelung

Die Lageregelung dient dazu, kleine Restfehler der Positionierung auszugleichen. Als Ursache dieser Restfehler kommen Laständerungen, reibungsbedingte und andere Nichtlinearitäten, kleine Ungenauigkeiten bei einer Reihe von Achsparametern, Offsets, Temperatur-Abhängigkeiten usw. in Frage.

Positions-P-Regler

Bei diesem Regler ist ein Kompromiss zu finden zwischen dem Wunsch nach einer möglichst vollständigen Ausregelung (also großer Kv) und einer geringen Schwingneigung des Systems (also kleiner Kv). In der Praxis hat es sich gezeigt, dass durch schrittweises Erhöhen des Kv-Wertes dieser Kompromiss schnell gefunden werden kann.

Die Vorgehensweise ist denkbar einfach: Es werden Probefahrten in beide Richtungen unternommen. Dabei ist in der Konstant-Fahrt auf ein ruhiges Fahren der Achse ohne erkennbare Lageregel-Schwingung zu achten. Dabei ist ein kleiner Rausch-Anteil in der Regler-Ausgabe nicht von Bedeutung. In der Zielanfahrt ist darauf zu achten, dass die Achse auf keinen Fall eine Schwingneigung (Zurückfedern) zeigt. Der Kv-Faktor kann so lange in kleinen Stufen (Faktor 1.2 bis 1.5) erhöht werden, bis die Achse die ersten Zeichen von Schwingneigung aufweißt. Dann sollte der Kv-Faktor um etwa 20% reduziert werden, um einen Sicherheitsabstand von der Stabilitätsgrenze zu erhalten.

Wie bereits erwähnt bieten einige Regler die Möglichkeit eines automatischen Offset-Abgleichs an. Diese Funktion kann auf dem PID-Reiter des Reglers aktiviert werden. Dann sind als Parameter die Filterzeit und das Vorsteuer-Limit anzugeben. Für die Filterzeit ist in der Regel ein Wert im Bereich von Sekunden zu empfehlen. Auf jeden Fall ist zu bedenken, dass die Filterzeit sehr groß im Vergleich zum Ansprechverhalten der Achse sein. Ist sie zu klein, entsteht ein sogenannter Phasenschieber-Oszillator: Die Achse schwingt dann auf einer sehr niedrigen Frequenz. Mit dem Vorsteuer-Limit kann erreicht werden, dass der automatische Abgleich beim aktiven Positionieren nicht durch dynamisches Verhalten der Achse beeinflusst wird. Eine Sollgeschwindigkeit oberhalb dieses Wertes bewirkt ein "einfrieren" des Offsets.

Positions-2P-Regler

Dieser Regler unterscheidet sich vom vorgenannten Regler nur dadurch, dass es möglich ist beim aktiven Fahren einen anderen Kv-Wert anzuwenden als bei der Lageregelung um Stillstand.
Als zusätzliche Parameter sind hier ein zweiter Kv-Wert und ein Geschwindigkeitsschwellwert einstellbar. Die Wirkung ist ein gleitender Übergang zwischen den Kv-Werten im Geschwindigkeitsbereich zwischen 0.0 (Stillstand) und dem Schwellwert.

Schleppabstandsreduzierung

Zur Schleppabstandsminimierung sollten Sie unbedingt das TwinCAT Scope benutzen.

  1. Schleppabstand in Lagereglung minimieren. Mittleren Schleppabstand d [mm] im Stillstand bei Lagereglung (mit Vorzeichen) feststellen (Online-Menü). Den DAC-Offset auf Offset = d · Kv [mm/s] Einstellen (Ist der Schleppabstand positiv, dann hinkt der Istwert dem Sollwert hinterher und braucht etwas mehr Spannung um aufzuholen). Diese Formel gilt nur dann, wenn Motorpolarität und Geberpolarität übereinstimmen, andernfalls muss man den vorzeicheninvertierten Wert nehmen. Damit sollte sich der Schleppabstand auf ein Inkrement genau symmetrisch um 0.0 einstellen lassen.
  2. Schleppabstand bei konstanter Sollgeschwindigkeit minimieren. Gegeben seien die Sollgeschwindigkeit V_S, Referenzgeschwindigkeit V_ref, Proportionalitätskonstante Kv und festgestellter Schleppabstand d [mm]. Dann wird als spannungsproportionale Ausgabegeschwindigkeit V = (V_S + Kv × d) / V_ref ausgegeben. Um den Schleppabstand zu vermeiden sollte dieselbe Geschwindigkeit mit der neuen Referenzgeschwindigkeit V_r ausgegeben werden, dass also V = V_S / V_r gilt. Damit erhält man für die neue Referenzgeschwindigkeit V_r=V_ref/(1.0+1.0/(Kv×d)).

Positions-PP-Regler

Ist ein Positions-P-Regler richtig eingestellt, dann ist der Schleppabstand theoretisch proportional zur Beschleunigung. Um die Schleppabstände in der Beschleunigungs- und Verzögerungsphase zu Minimieren kann man die Sollbeschleunigung mit einem zweiten Proportionalitätsfaktor Ka aufschalten mit dem der Schleppabstand bei idealen Verhältnissen nur noch aus Rauschen besteht. Der Faktor Ka ist ungefähr gleich der Systemübertragungszeit, liegt also im Bereich kleiner 10 × T_saf sec (T_saf Satzausführungstask-Zykluszeit).


Achs-Parameter, Achsüberwachung und Achs-Kalibrierung

Ermittlung und Einstellung der wichtigsten Achs-Parameter: Maximal-Geschwindigkeit, Schleppabstandsüberwachung, Endlagenüberwachung sowie zur Dynamik und Kalibrierung.

Interface

Zugang zu den Parametern der Achse hat man über den System Manager.

Generelle Achsparameter

Auf dem Global-Reiter der Achse sind eine Reihe weiterer Parameter einstellbar, die das Verhalten der Achse bestimmen sowie eine Reihe von Überwachungs-Funktionen und Status-Signale steuern.

Mit der Maximal-Geschwindigkeit können Sie festlegen, auf welchen Wert alle Vorgaben an die Achse begrenzt werden. Hier sollten Sie einen Wert von etwa 90 bis 95% der Maximal-Geschwindigkeit des Antriebs einstellen. Die restliche Aussteuerung wird für den Regler benötigt, um ein korrektes Positionieren sicher zu stellen.

Beim Einsatz eines NC-Interpreters wird bei bestimmten Befehlen die Achse mit einer Eilganggeschwindigkeit einstellbaren Ansteuerung positioniert. Hier sollte etwa nicht mehr als 90% der Maximal-Geschwindigkeit der Achse gewählt werden.

Die Handfahrtgeschwindigkeiten Min und Max sind frei wählbar und hängen mehr oder weniger vom "Mut" des Bedieners ab. In der Praxis hat es sich als sinnvoll erwiesen, diese Geschwindigkeiten etwa im Verhältnis 1 zu 5 einzustellen. Selbstverständlich müssen die Werte kleiner als die Maximal-Geschwindigkeit sein.

Die Geschwindigkeit Referenzierfahrt in positiver Richtung wirkt nur bei Achsen mit Inkremental-Encoder. Mit dieser Geschwindigkeit fährt die Achse bei der Suche nach dem Kalibrier-Nocken. Die Richtung wird auf dem Inkremental-Reiter des Encoders eingestellt.

Die Geschwindigkeit Referenzierfahrt in negativer Richtung wirkt nur bei Achsen mit Inkremental-Encoder. Mit dieser Geschwindigkeit fährt die Achse beim verlassen des Kalibrier-Nocken und beim Suchen des Synchron-Pulses. Die Richtung wird auf dem Inkremental-Reiter des Encoders eingestellt.

Die Pulsweite positive / negative Richtung legen die zu fahrende Strecke fest, die beim Achsstart durch die SPS in den entsprechenden Fahr-Modi zurückgelegt wird. Näheres dazu finden Sie in den Baustein-Beschreibungen der SPS.

Sowohl nach unten als auch nach oben können Sie eine Fahrbereichsbegrenzung (Softwareendschalter) aktivieren und die Position einstellen.

Bei Achsen mit einem Analog-Reiter (also nicht bei Eil/Schleich- oder Schrittmotor-Achsen) wird ständig der Schleppabstand (Differenz zwischen Soll- und Ist-Position) ermittelt. Eine Überwachung dieses Wertes mit einstellbarer Schwelle ist aktivierbar. Dabei ist eine Filterzeit vorgebbar, die eine Alarmbildung bei kurzzeitiger Überschreitung der Schwelle z.B. beim Beschleunigen oder Abbremsen verhindert.

Um die Zielposition einer Bewegung können zwei unabhängige Fenster gelegt werden (Zielpositionsfenster). Die Fensterbreite ist frei wählbar. Damit ist es möglich, in einer beliebigen Entfernung zum Ziel ein Signal an die SPS zu erzeugen. Eines dieser Fenster bietet zusätzlich eine Filterzeit. Erst wenn die Achse für die dort eingestellte Dauer ununterbrochen im Fenster war, wird das Signal gebildet.

Bei Eil/Schleich-Achsen besteht die Möglichkeit, jedes Ziel immer aus der gleichen Richtung und mit einer Mindest-Fahrtstrecke anzufahren. Dadurch ist bei unsymmetrischem Achs-Verhalten oder mechanischer Lose eine größere Genauigkeit zu erreichen. Dieses Verhalten kann aktiviert und die Strecke kann vorgegeben werden. Das Vorzeichen der eingestellten Strecke legt dabei die Richtung fest.

Bei Servo-Achsen kann mit der Betriebsart "Umkehrlosekompensation" ein mechanisches Spiel in der Achse ausgeglichen werden. Dabei legt der als "Umkehrlose" eingetragene Wert die Strecke fest, um die ein Fahrtziel überfahren wird. Mit dem Vorzeichen des Wertes legt man fest, in welcher Richtung überfahren wird. Bei positivem Umkehrlose wird das Ziel nur bei Fahrt in positiver Richtung überfahren. Eine Fahrt in Richtung kleinerer Positionen wird nicht beeinflusst. Bei negativem Umkehrlose kehrt sich dieses Verhalten um.

Achs-Dynamik

Auf dem Dynamik-Reiter der Achse sind die Werte für die Beschleunigung, die Verzögerung und den Ruck einzustellen. Dabei werden zwei Möglichkeiten angeboten: Direkte Eingabe als Zahlenwerte oder Indirekte Festlegung über die Hochlaufzeit und die Beschleunigungskennlinie.

Bei den hier einzustellenden Werten handelt es sich um die vom Sollwert-Generator einzuhaltenden Parameter. Oft werden Werte vom Antriebs-Hersteller genannt, die zu einem sehr harten Positionier-Verhalten der Achse führen, wenn sie hier eingestellt werden. Der Grund hierfür ist, dass die genannten Werte die Grenzwerte des Leistungsteils oder des Motors darstellen. In der Regel ist das Verhalten der Maschine dann jedoch schon stark lastabhängig. Die Folge sind erhebliche Schleppabstands-Schwankungen, die ein Eingreifen des Lagereglers auslösen. Auf die Regler-Ausgabe kann die Achse jedoch kaum noch reagieren, da sie bereits an der Stromgrenze fährt.

Die "korrekten" Werte für eine Achse hängen stark vom angestrebten Verhalten und den Eigenschaften der Antriebstechnik und der Maschine ab. Sie sind nur durch Testfahrten zu ermittelt. Dabei sollten schrittweise erhöhte Werte geprüft werden, indem der Schleppabstand beim Starten und Stoppen beobachtet wird. In der Praxis hat es sich gezeigt, dass der Zahlenwert des Rucks in etwa das zweifache (bei Bearbeitungs-Achsen) bis zehnfache (bei Transfer-Achsen) betragen sollte. Bei indirekter Einstellung entspricht das einer weichen bzw. einer harten Einstellung.

Benutzen Sie zur Einstellung der Werte für die Beschleunigung, die Verzögerung und den Ruck das TwinCAT Scope. Ob die eingetragenen Werte für die Beschleunigung A+ oder Verzögerung A- wirklich erreicht werden, hängt vom kritischen Ruck J± ab, dem Verhältnis (A+)²/V bzw. (A-)²/V, wobei V die Sollgeschwindigkeit bezeichnet. Überprüfen Sie speziell, ob die Beschleunigungs-Istwerte den Beschleunigungs-Sollwerten folgen können (genauso für die Verzögerung).

Auswirkungen von Zykluszeitfehleinstellungen

Zykluszeitfehleinstellungen, d.h. eine Differenz zwischen der eingestellten Zykluszeit (NC Task: SAF Task: online: Zyklusticks im msec) und der realen Zykluszeit der SAF-Task führen zu zwei Fehlern:

  • Die Informationen des Sollwertgenerators (Position, Geschwindigkeit, Beschleunigung) passen nicht zur realen Zykluszeit, d.h. die Geschwindigkeitsvorsteuerung ist falsch..
  • Die Positionssollwerte des Lagereglers und die Geschwindigkeitssollwerte der Geschwindigkeitsvorsteuerung sind nicht konsistent.

Geschwindigkeitsvorsteuerung: Wenn die reale Zykluszeit TC_eff größer ist als die eingestellte Zykluszeit TC_saf ergibt sich eine lineare Dehnung der Zeitachse (Skalierung TC_eff/TC_saf) die eine nichtlineare Transformation der Sollwerte impliziert. Jede berechnete Sollgeschwindigkeit steht (TC_eff/TC_saf) mal länger an als vorausberechnet. Die integrierte effektiv ausgegebene Sollgeschwindigkeit erreicht insgesamt eine Zielposition die um (TC_eff/TC_saf) mal größer als die berechnete ist.
Lagereglung: Da die Sollgeschwindigkeit und die Sollposition nicht zueinander passen (v(t) ≠ dp(t)/dt) muss der Lageregler gegen die Vorsteuerung arbeiten. Das daraus resultierende Verhalten hängt vom Proportionalitätsfaktor, der Größe der Zykluszeitfehleinstellung und den Reglerresourcen (Referenzgeschwindigkeit) ab. Auf jeden Fall ergibt sich in den nicht kräftefreien Phasen ein Schleppabstand und große Überschwinger.

Delay zwischen Vorsteuerung und Lagereglung

Der Delay Generator dient dazu Auswirkungen einer System-(Hardware/Kommunikations)-Totzeit im P-Anteil eines Positions-Lagereglers zwischen Ausgabe des Geschwindigkeitssollwertes und seiner Wirkung auf die Positionierung zu kompensieren. Anstelle der Ausgabegeschwindigkeit v_o(t) als Funktion der Geschwindigkeitsvorsteuerung v_g(t) und des P-Anteils K_v (p_g(t) - p_i(t)), wobei p_g(t) der Positionssollwert und p_i(t) der Positionsistwert ist,
v_o(t) = v_g(t) + K_v ( p_g(t) - p_i(t)) + ...
wird der Positionssollwert um die Zeitspanne delta verspätet ausgegeben
v_o(t) = v_g(t) + K_v ( p_g(t-delta) - p_i(t))+ ...

Parameter: delta Nacheilzeit in sec >= 0.0

Parameter der Achs-Kalibrierung

Diese Einstellungen sind nur bei Achsen mit Inkremental-Encodern erforderlich. Um bei diesen Achsen das Istwert-System an das Bezugs-System der Maschine anzupassen wird eine Kalibrierfahrt gestartet. Dabei werden eine Reihe von Parametern und Signalen benötigt.

Wenn die Kalibrierfahrt einer Achse gestartet wird, startet sie mit der oben genannten Geschwindigkeit Referenzierfahrt in positiver Richtung (Global-Reiter der Achse). Die tatsächliche Richtung wird auf dem Inkremental-Reiter des Encoders festgelegt. Die Achse stoppt, wenn in ihrem NC-SPS-Interface das Signal-Bit für den Kalibriernocken gesetzt wird. Mit diesem Nocken kann bei einem rotierenden Gebersystem mit einem Synchronpuls pro Umdrehung ein bestimmter Puls ausgewählt werden.

Nun startet die Achse erneut, um den Nocken zu verlassen. Sie fährt dazu mit Geschwindigkeit Referenzierfahrt in negativer Richtung (Global-Reiter der Achse), bis da Signal-Bit gelöscht wird. Ohne die Geschwindigkeit zu wechseln fährt die Achse jetzt weiter, bis das Synchron-Latch des Encoders angesprochen hat. Erst jetzt stoppt die Achse.

Die Strecke zwischen dem Ansprechen des Latch und dem Ort, an dem die Achse zum stehen kommt wird ermittelt. Die Summe aus dieser Strecke und der Referenz-Position (Inkremental-Reiter des Encoders) wird als neue Achsen-Istposition gesetzt. Durch diese Vorgehensweise kann dem Synchron-Puls einer ausgewählten Umdrehung der Achse eine absolute Position in der Maschine zugeordnet werden.

Im System Manager Achse Online wird die Kalibrierung über <F9> gestartet.