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.


Kurvenscheiben - Übersicht

TwinCAT NC: Kurvenscheiben

Übersicht

Die nichtlineare Kopplung von elektrischen Master- und Slave-Achsen wird traditionell Kurvenscheibe genannt. TwinCAT bietet verschiedene Möglichkeiten für diese Art der Achskopplung. Zum einen gibt es die klassischen Positionstabellen, bei denen eine größere Anzahl von Punkten, d. h. eine Master-Position mit korrespondierender Slave-Position eine Kurve beschreibt. Zwischen diesen Punkten wird interpoliert. Diese Art der Kurvenscheibe hat sich in der Vergangenheit bewährt, hat aber den Nachteil, dass sie zur Laufzeit nur schwer zu verändern ist.

Als nächsten Schritt in diese Richtung bietet TwinCAT die so genannten Motion Functions (MF) an, die eine Kurvenscheibe auf andere Art beschreiben. Eine Motion Function hat eine üblicherweise geringe Anzahl von Stützstellen, zwischen denen eine mathematische Funktion, beispielsweise ein Polynom, den Verlauf der Kurve beschreibt. Die Slave-Positionen werden zur Laufzeit aus der mathematischen Beschreibung der Kurvenscheibe berechnet. Mit Motion Functions ist es sehr viel einfacher, den Funktionsverlauf auch zur Laufzeit zu ändern, da bereits die Manipulation einer Stützstelle den Verlauf verändert.

TwinCAT bietet einen Kurvenscheibeneditor, mit dem sich beide Arten von Kurvenscheiben, also Positionstabellen und Motion Functions erstellen lassen. Weiterhin gibt es eine SPS-Bibliothek, durch die Kurvenscheiben einfach programmierbar werden.

Kurvenscheiben mit Motion Functions

Kurvenscheiben mit Positionstabellen

SPS-Bibliothek Kurvenscheiben

Beispielprogramm Kurvenscheiben mit Positionstabellen

Beispielprogramm Kurvenscheiben mit Motion Functions

Kurvenscheibeneditor


Motion Functions - Übersicht

TwinCAT Slaves: Kurvenscheiben mit Motion Functions

Übersicht

Eine Motion Function (MF) ist eine Beschreibung einer Kurvenscheibe mittels mathematischer Funktionen. Sie unterteilt den gesamten Kurvenverlauf in entsprechende Segmente (Abschnitte), auf denen unterschiedlichste Bewegungsgesetze – spezielle mathematische Funktionen - verwendet werden können (für Beispiele von Kurvenscheiben siehe: Beispiele des Cam Design Tools) Die Bewegungsgesetze für mechanische Kurvenscheiben sind insbesondere in der VDI-Richtlinie 2143 definiert. Die elektronischen Kurvenscheiben in TwinCAT verwenden unter anderem diese Funktionen. Die Motion Functions realisieren diese Bewegungsfunktionen direkt in dem Echtzeit Treiber der NC. Im Gegensatz zu den klassischen Tabellenkopplungen, die nur diskrete Schritte (Punktewolken) mittels größerer Datenmengen in die NC übertragen, liegen hier die vollständigen Informationen sehr kompakt in der NC vor. Probleme, die ihren Ursprung in der Diskretisierung der Daten (Positionsstützstellen) in der Tabelle haben, sind damit prinzipiell nicht mehr vorhanden.

Die Realisierung der Bewegungsgesetze in der NC hat aber unter anderem noch einen weiteren entscheidenden Vorteil: Ein Bewegungsdiagramm – die komplette Beschreibung der Bewegung einer Slave-Achse – lässt sich jetzt auch einfach und übersichtlich von der PLC aus definieren und modifizieren. Durch entsprechende Funktionsbausteine der PLC kann diese Funktionalität einfach verwendet werden. Hierbei hat man nicht nur auf die komplette Beschreibung der Bewegung sondern auch auf einzelne Segmente oder Teilbereiche Einfluss.

Um sicherzustellen, dass eine konstruierte Kurvenscheibe auch durch das Antriebssystem abgefahren werden kann, werden durch das System charakteristische Werte (Kennwerte wie Maximal- und Minimalwerte der Position, Geschwindigkeit und Beschleunigung etc.) berechnet, die vom Anwender auszuwerten sind. Die letztlich resultierenden Dynamikgrenzwerte sind dabei von der Bewegung des Masters abhängig und beziehen sich auf eine konstante Master-Geschwindigkeit. Somit sind die charakteristischen Werte unter der Annahme einer konstanten Mastergeschwindigkeit idealisiert errechnet worden.
Zusätzlich wird auch die mittlere Geschwindigkeit und die effektive Beschleunigung berechnet. Diese können zum Beispiel für die Berechnung des effektiven Moments oder des Arbeitspunktes PA (nm ; MEff) im Drehmoment- Drehzahl – Diagramm des Motors verwendet werden. Die PLC kann auf die aktuellen charakteristischen Werte der NC mittels Funktionsbausteine zugreifen.

Im Kurvenscheibeneditor TwinCAT Cam Design Tool ist die Entscheidung, ob klassische Tabellenkopplungen (Punktewolke) oder Motion Functions verwendet werden sollen, durch eine Auswahl konfigurierbar. Danach werden beim Aktivieren der Konfiguration entweder die Positionstabellen oder die Punkte der Motion Functions generiert. Im Falle der Motion Functions können diese Punkte einzeln nachträglich von der PLC modifiziert werden.

In Zukunft wird man die Einzelwerte oder ganze Bereiche der Motion Functions nach entsprechenden Regeln auch Online, d. h. während die Kurvenscheibe aktiv ist, ändern können. Somit können sehr flexible Kurvenscheiben realisiert werden.


Motion Functions - Definition eines Punktes

Für die Definition der Bewegung in der NC reichen genau die Informationen aus, die in dem Cam Design Tool in der Tabelle enthalten sind. Wenn man sich diese MF-Tabelle aber genauer ansieht, so sind dort auch redundante Daten vorhanden. Durch die Beschreibung der Bewegung in Segmenten (Abschnitten) ist bei einfach zusammenhängenden Bewegungsdiagrammen, der Endpunkt eines Abschnittes mit dem Anfangspunkt des nächsten Segmentes identisch. Die komplexeren Punkttypen des Cam Design Tools wie zum Beispiel der Slidepunkt (Gleitpunkt) sind im Moment noch nicht realisiert . Zusätzlich will man die Möglichkeit haben, in einem gegebenen Bewegungsdiagramm nachträglich einzelne Punkte inaktiv (MOTIONPOINTTYPE_IGNORE, im Folgenden als IGNORE bezeichnet) zu schalten. Diese Vorgaben führen zu einer Beschreibung, in der neben dem Startpunkt eines Segmentes inklusiv der Informationen des Punktes (Geschwindigkeit, Beschleunigung, Punkttyp) auch die des Segmentes (Funktionstyp, Symmetriewert) enthalten sind.

Punktstruktur

PointIndex | UINT32 | Index des Punktes
FunctionType | UINT16 | Funktionstyp
PointType | UINT16 | Punkttyp
RelIndexNextPoint | INT32 | relativer Index des Endpunktes (default: 0, entspricht dann der 1)
MasterPos | REAL64 | Master Position
SlavePos | REAL64 | Slave Position an dieser Stützstelle
SlaveVelo | REAL64 | Slave Geschwindigkeit an dieser Stützstelle
SlaveAcc | REAL64 | Slave Beschleunigung an dieser Stützstelle
SlaveJerk/Symmetry | REAL64 | Slave Ruck an dieser Stützstelle bzw. Symmetriewert des Segmentes für Rast in Rast Bewegungsgesetze

Durch einen relativen Index wird in dieser Struktur auf den Punktindex des Endpunktes dieses Segmentes gezeigt. Damit für die einfach zusammenhängenden Bewegungsdiagramme die Definition einfach bleibt, werden die IGNORE Punkte wirklich komplett ignoriert. Also wird der relative Punktindex intern automatisch angepasst.

Der Defaultwert des relativen Punktindex darf also Null sein, obwohl er bei einer üblichen einfach verketten Liste der Wert Eins sein sollte. Diese Information muss der Anwender also nicht aktualisieren. Zu den möglichen Punkttypen des Cam Design Tools kommt also der IGNORE Punkt hinzu.

PunktTypen

MOTIONPOINTTYPE_IGNORE | 0x0000 | Ignore point | Ignorierter Punkt
MOTIONPOINTTYPE_REST | 0x0001 | Restpoint | Rastpunkt
MOTIONPOINTTYPE_VELOCITY | 0x0002 | Velocitypoint | Geschwindigkeitspunkt
MOTIONPOINTTYPE_TURN | 0x0004 | Turnpoint | Umkehrpunkt
MOTIONPOINTTYPE_MOTION | 0x0008 | Motionpoint | Bewegungspunkt

Da man während die MF aktiv ist keine Punkte hinzufügen kann, ist es durch den Punkttyp IGNORE möglich, entsprechende Punkte vorzusehen. Diese können später online durch Vorgabe der entsprechenden Werte (Punkttyp ungleich IGNORE) eingeschaltet werden.

Achtung:
Die Masterposition müssen entweder streng monoton steigend oder fallend sein. Andernfalls wird dies mit einer Fehlermeldung abgelehnt.


Motion Functions - Funktions-Typen

TwinCAT Slaves: Kurvenscheiben mit Motion Functions - Funktions Typen

Funktions Typen

Von den Funktionstypen des TwinCAT Cam Design Tools ist bisher nur eine Teilmenge realisiert:

Funktionstyp

Nr.

Beschreibung

Randbedingungen

POLYNOM1

1

Polynom 1ter Potenz, Gerade oder synchrone Bewegung

VV

POLYNOM3

3

Polynom 3ter Potenz

RR

POLYNOM5

5

Polynom 5ter Potenz

RR

POLYNOM8

8

Polynom 8ter Potenz

RR

SINELINE

10

Sinus Gerade

RR

MODSINELINE

11

Modifizierte Sinuslinie

RR

BESTEHORN

12

Bestehorn

RR

ACCTRAPEZ

13

Beschleunigungstrapez

RR

POLYNOM5_MM

15

Polynom 5ter Potenz mit Randwertanpassung

MM

SINE_LINE_COMBI

16

Sinus Geraden Kombination

RR

HARMONIC_COMBI_RT

17

Harmonische Kombination

RT

HARMONIC_COMBI_TR

18

Harmonische Kombination

TR

HARMONIC_COMBI_VT

19

Harmonische Kombination

VT

HARMONIC_COMBI_TV

20

Harmonische Kombination

TV

ACCTRAPEZ_RT

21

Beschleunigungstrapez

RT

ACCTRAPEZ_TR

22

Beschleunigungstrapez

TR

MODSINELINE_VV

23

Modifizierte Sinuslinie

VV

STEPFUNCTION

99

Schrittfunktion

RR

Bei den Randbedingungen der Motion Functions steht das

R (Rest) für Rast (Geschwindigkeit = Null, Beschleunigung = Null),

V (Velocity) für Geschwindigkeit (Beschleunigung = Null),

T (Turn) für Umkehr (Geschwindigkeit = Null) und

M (Motion) für Bewegung (keine Bedingungen an die Geschwindigkeit oder die Beschleunigung) .

Die Randbedingung RT steht also zum Beispiel dafür, das der Anfangspunkt des Segments die Bedingung R eine Rast (Geschwindigkeit = Null, Beschleunigung = Null) und der Endpunkt die Bedingung T eine Umkehr (Geschwindigkeit = Null) erfüllt.

Das POLYNOM1 realisiert eine Gerade oder auch eine synchrone Bewegung. Da bei dem POLYNOM1 durch die Master- und Slavewerte an den Segmentgrenzen die Geschwindigkeit eindeutig bestimmt ist, muss diese nicht mit übergeben werden bzw. der vorgegebene Wert (z.B. eine Null) wird durch den intern berechneten Wert überschrieben. Das einzige Bewegungsgesetz, das beliebige Randbedingungen berücksichtigt, ist im Moment das POLYNOM5_MM. Allerdings sollte man dafür auch die entsprechenden Randparameter zur Verfügung stellen. Wenn die benachbarten Segmente eines POLYNOM5_MM Segmentes vom Funktionstyp POLYNOM1 oder die Randbedingung R für Rast erfüllen, werden die Randparameter von den internen Werten der Geschwindigkeit des POLYNOM1 bzw. den Werten der Rast (Geschwindigkeit = Null, Beschleunigung = Null) überschrieben. Die Beispiele des Cam Design Tools geben einen Eindruck von den Möglichkeiten und zu verwendenden Bewegungsgesetzen für den Entwurf von Kurvenscheiben.

Achtung:
Bei den nicht Rast in Rast Typen werden die Randwerte benötigt. Eine Ausnahme ist die synchrone Bewegung (Polynom1) bei der aus den aktuellen Positionen der Punkte die aktuellen Geschwindigkeiten automatisch berechnet werden. Die direkt benachbarten Segmente aktualisieren entsprechend ihre internen Koeffizienten für die Berechnung.

Wenn im Cam Design Tool auf die Motion Function umgeschaltet wird, sind alle Funktionstypen, die nicht in der NC realisiert sind, in der Tabelle rot hinterlegt. Diese werden als Polynom 5ter Potenz mit Randwertanpassung vom Cam Design Tool der NC zur Verfügung gestellt.


Motion Functions - Programmierung durch die SPS

In dem TwinCAT Cam Design Tool wird eine Basis Kurvenscheibe mit der maximal nötigen Anzahl von Punkten entworfen. Diese steht dann beim TwinCAT Systemstart automatisch zur Verfügung oder sie wird per Knopfdruck (Download) in die NC geladen. Mit Funktionsbausteinen der PLC können jetzt zum einen die einzelnen Punkte komplett ignoriert oder deren Werte manipuliert werden. Die aktuell in der NC vorhanden Daten lassen sich im Online Modus des Cam Design Tools visualisieren oder per Upload in das Tool laden. So lassen sich die Daten graphisch und numerisch überprüfen. Zusätzlich gibt es die Möglichkeit die Daten von der NC als Tabelle zu diskreten Masterpositionen inklusive der Ableitungen aufbereiten zu lassen. Diese Daten können dann von der PLC verwendet oder an eine Visualisierungssoftware weitergereicht werden. Die Visualisierung kann dann die Punktdaten inklusive der Ableitungen darstellen, ohne diese selbst berechnen zu müssen.

Achtung:
Da die Daten der Kurvenscheibe exakt so gefahren werden, wie sie in den Motion Functions definiert sind, muss man sich in der Konzeptphase genau überlegen, welche Funktionalität dem Endanwender (Maschinenbediener) zur Verfügung gestellt werden soll. Beziehungsweise wie man die Eingaben der Bedieneroberfläche so überprüft, dass nur sinnvolle Kurvenscheiben entstehen können. Die Berechnung der Charakteristischen Werte ist dafür ein zusätzliches effizientes Hilfsmittel. Zur grafischen Kontrolle der Motion Functions in der Bedieneroberfläche kann die NC die Werte der Position, Geschwindigkeit und Beschleunigung in einer Tabelle (Punktewolke) zur Verfügung stellen.

Beispiel einer Anwendung:

Bei einer Transfereinrichtung einer Pressenanlage wird die Bewegung des Transfers durch die Hubwinkel der Presse vorgegeben. Eine an diesen Hubwinkel gekoppelte Bewegung wird in der Bedieneroberfläche der Transfereinrichtung eingegeben. Diese Informationen werden von der PLC zusammen mit den intern gespeicherten Kenndaten der Mechanik verarbeitet. Die PLC überträgt die Kurvenscheibendaten an die NC für die Bewegung der Achsen. Für die Visualisierung holt die PLC die Kurvenscheibendaten (Position, Geschwindigkeit und Beschleunigung) in Tabellenform von der NC und stellt diese der Bedieneroberfläche zur Verfügung.

Für eine Optimierungsrechnung liest die PLC die Charakteristischen Werte (insbesondere die mittlere Drehzahl und die effektive Beschleunigung) der aktuellen Kurvenscheibe für die Berechnung des Arbeitspunktes PA (nm ; MEff) im Drehmoment- Drehzahl – Diagramm des jeweiligen Motors. So kann iterativ die maximal zulässige Drehzahl der Transfereinrichtung ermittelt werden.

Beispiel einer Kurvenscheibe:

Die obige Kurvenscheibe soll als Motion Function realisiert werden:

Point Index | Function Type | Point Type | RelIndex NextPoint | Master Pos | Slave Pos | Slave Velo | Slave Acc | Slave Jerk
1 | POLYNOM1 | REST | 1 bzw. 0 | 0 | 0 | 0 | 0 | 0
2 | POLYNOM5_MM | REST | 1 bzw. 0 | 30 | 0 | 0 | 0 | 0
3 | POLYNOM1 | VELOCITY | 1 bzw. 0 | 150 | 20 | 0 | 0 | 0
4 | POLYNOM5_MM | VELOCITY | 1 bzw. 0 | 240 | 40 | 0 | 0 | 0
5 | POLYNOM1 | REST | 1 bzw. 0 | 340 | 0 | 0 | 0 | 0
6 | POLYNOM1 | REST | 0 | 360 | 0 | 0 | 0 | 0

Die Geschwindigkeit muss in diesem Fall nicht vorgeben werden, da sie intern gerechnet wird (siehe Funktions Typen). Auch der relative Index kann für alle Werte zu Null gesetzt werden, da das Diagramm nur aus einfach zusammenhängenden Punkten besteht. Nur bei komplexen Punktdefinitionen wie zum Beispiel dem Slidepunkt muss der Index zwingend ungleich Null gesetzt werden. Die Masterposition muss monoton steigend sein.

Änderung 1:

Durch das Schreiben eines einzigen Punktes kann jetzt die komplette Kurvenscheibe verändert werden:

4 POLYNOM5_MM VELOCITY 1 240 60 0 0 0

Änderung 2:

oder durch das Ignorieren der zwei relevanten Punkt kann die komplette Kurvenscheibe auf Null gesetzt werden, dass heißt alle Slavewerte sind gleich Null.

3 | POLYNOM1 | IGNORE | 1 | 150 | 20 | 0 | 0 | 0
4 | POLYNOM5_MM | IGNORE | 1 | 240 | 40 | 0 | 0 | 0

Die Aktivierung dieser Änderungen erfolgt im Moment noch erst nach der Kopplung, wird aber in Zukunft online nach entsprechenden Regeln möglich sein.

Weitere Beispiele von Kurvenscheiben sind in: Beispiele des Cam Design Tools (wobei das Beispiel 4 noch nicht mit Motion Functions realisiert werden kann.)


Motion Functions - Charakteristische Werte

Durch die interne Berechnung der Charakteristischen Werte (Characteristic Values) kann das Risiko, durch falsche Eingabe von Werten bestimmte physikalische Grenzen der Achse zu verletzen, eliminiert werden.

Die in der Tabelle beschriebenen Größen, werden von der NC berechnet und können mit einem PLC FB oder per ADS gelesen werden. Die dynamischen Größen können nur für einen Master berechnet werden, der sich mit einer konstanten Geschwindigkeit bewegt. Die Geschwindigkeit des Masters ist ebenfalls in der Struktur enthalten. Standardmäßig werden die Werte für eine Geschwindigkeit von 1.0 berechnet, diese Werte bezeichnet man auch als normierte Werte. Eine Umrechnung in eine andere konstante Mastergeschwindigkeit ist in der NC implementiert und lässt sich über einen FB der PLC aufrufen. Die umskalierten Werte sind in der gleichen Struktur gespeichert. Der Bezug, auf welche Mastergeschwindigkeit sich die charakteristischen Kennwerte beziehen, ist in der ersten Variable namens Mastergeschwindigkeit zu erkennen.

Für eine Bewegungsfunktion mit konstanter maximaler Beschleunigung, ist die Position des Masters der maximale Beschleunigung (fMPosAtSAccMax) mehrdeutig. Das gleiche gilt auch für die anderen Masterpositionen von Maximal- oder Minimalwerten, diese sind also mit der notwendigen Vorsicht zu behandeln. Entsprechendes gilt für die von den Masterpositionen abgeleitete Größen (fSVeloAtSAccMin, fSVeloAtSAccMax).

Achtung: Die letztlich resultierenden Dynamikgrenzwerte sind von der Bewegung des Masters abhängig, daher sind diese berechneten Werte nur für eine Bewegung mit konstanter Mastergeschwindigkeit exakt.

Nr. Namen Beschreibung Datentyp

Master

1.

fMasterVeloNom

master nominal velocity

(normed = 1.0)

1

REAL64

Start Point

2.

fMasterPosStart

master start position

2

REAL64

3.

fSlavePosStart

slave start position

3

REAL64

4.

fSlaveVeloStart

slave start velocity

4

REAL64

5.

fSlaveAccStart

slave start acceleration

5

REAL64

6.

fSlaveJerkStart

slave start jerk

6

REAL64

End Point

7.

fMasterPosEnd

master end position

7

REAL64

8.

fSlavePosEnd

slave end position

8

REAL64

9.

fSlaveVeloEnd

slave end velocity

9

REAL64

10.

fSlaveAccEnd

slave end acceleration

10

REAL64

11.

fSlaveJerkEnd

slave end jerk

11

REAL64

Minimal Slave Position

12.

fMPosAtSPosMin

master position at slave minimum position

12

REAL64

13.

fSlavePosMin

slave minimum position

13

REAL64

Minimal Slave Velocity

14.

fMPosAtSVeloMin

master position at slave minimum velocity

14

REAL64

15.

fSlaveVeloMin

slave minimum velocity

15

REAL64

Minimal Slave Acceleration

16.

fMPosAtSAccMin

master pos. at slave minimum acceleration

16

REAL64

17.

fSlaveAccMin

slave minimum acceleration

17

REAL64

18.

fSVeloAtSAccMin

slave velocity at slave min. acceleration

18

REAL64

Minimal Slave Jerk/Dyn.Mom

19.

fSlaveJerkMin

slave minimum jerk

19

REAL64

20.

fSlaveDynMomMin

slave minimum dynamic momentum

20

REAL64
NOT SUPPORTED

Maximal Slave Position

21.

fMPosAtSPosMax

master position at slave maximum position

21

REAL64

22.

fSlavePosMax

slave maximum position

22

REAL64

Maximal Slave Velocity

23.

fMPosAtSVeloMax

master position at slave maximum velocity

23

REAL64

24.

fSlaveVeloMax

slave maximum velocity

24

REAL64

Maximal Slave Acceleration

25.

fMPosAtSAccMax

master pos. at slave maximum acceleration

25

REAL64

26.

fSlaveAccMax

slave maximum acceleration

26

REAL64

27.

fSVeloAtSAccMax

slave velocity at slave max. acceleration

27

REAL64

Maximal Slave Jerk/Dyn.Mom

28.

fSlaveJerkMax

slave maximum jerk

28

REAL64

29.

fSlaveDynMomMax

slave maximum dynamic momentum

29

REAL64
NOT SUPPORTED

Mean Effective Values

30.

fSlaveVeloMean

slave mean absolute velocity

30

REAL64

31.

fSlaveAccEff

slave effective acceleration

31

REAL64


Motion Functions - Online Modify

TwinCAT Slaves: Online Modifikation der Motion Functions

Online Modifikation

Die Motion Function haben nicht nur den Vorteil, daß sie von der PLC per Funktionsbaustein definiert werden können, sondern auch zur Laufzeit modifiziert werden können. Das kann zum Beispiel die Veränderung des Slavewertes eines Umkehrpunktes sein, um den Hub zu verstellen,. Das können aber auch umfangreichere Änderungen für die Anfahrkurve einer komplexen zyklischen Bewegung (ohne Rast und konstante Geschwindigkeit) sein.

Die Online Änderung der Motion Function (MF) folgt dabei bestimmten Regeln. So kann die Aktivierung ab einer bestimmten Position der Achse (AtMasterAxisPos), sofort (Instantaneous) oder ab dem nächsten Zyklus erfolgen. Die Aktivierungsregel gilt dabei so lange, bis eine neue Regel übertragen wird. Mit dem Befehl zur Online-Änderungen von MF-Punkten können dann sowohl Einzelpunkte als auch zusammenhängende Bereiche von mehreren Punkten geändert werden. Für die Synchronisation ist in dem zyklischen Interface ein entsprechendes Bit vorgesehen. Also muss in einem Programm zum einen die Aktivierungsregel definiert werden (per Funktionsbaustein) und zum anderen die geänderten Werte der Motion Function Punkte übertragen werden. Diese Übertragung erfolgt mit den gleichen ADS-Befehlen oder Funktionsbausteinen der PLC mit denen bei Start des Systems die Motion Function Punkte definiert werden.

ActivationMode |
Instantaneous (Default) | 0
AtMasterCamPos | 1
AtMasterAxisPos | 2
NextCycle | 3
AsSoonAsPossible (ehemaliger Default) | 5
Off | 6
DeleteQueuedData | 7

Der ActivationMode Instantaneous aktiviert im nächsten Tick die übertragenen Werte der Motion Function Punkte. Diese Funktionalität sollte man natürlich nur dann einsetzen, wenn die neuen Werte sich nicht direkt auf die aktuellen Werte der Slaveachse auswirken. So betrifft eine Änderung zum Beispiel ein anderes Segment ohne eine Rückwirkung auf das aktuelle Segment. Mit der Option AsSoonAsPossible wird überprüft welche Segment nicht geändert wurden und die Änderung wird erst dann realisiert, wenn der Slave sich in so einem Segment befindet. Die beiden Modi AtMasterAxisPos und AtMasterCamPos unterscheiden sich darin, dass AtMasterAxisPos die Achsposition als Referenz nimmt, während AtMasterCamPos sich auf die Position im Bewegungsdiagramm bezieht. Bei einer zyklischen Bewegung von 0 bis 360 wird die Achsposition 180 nur einmalig überfahren, die Position im Bewegungsdiagramm 180 aber in jedem Zyklus überschritten. Wenn die Achsposition schon überschritten wurde führt der Aktivierungsbefehl mit dem Modi AtMasterAxisPos zu einem Fehler. In dem Modus AtMasterCamPos wird der Aktivierungsbefehl in dem nächsten Zyklus ab der gegebenen Position ausgeführt. Mit NextCycle wird die Aktivierungsposition auf das Ende bzw. den Anfang des Zyklus gesetzt. Mit dem Mode Off werden die Änderungsbefehle nicht ausgeführt. Mit DeleteQueuedData werden die bereits übermittelten aber noch nicht aktivierten Punktedaten gelöscht. Die aktuell gefahrene Kurvenscheibe ist davon natürlich nicht betroffen.

Für eine komfortable Änderung gibt es die Möglichkeit den SlaveScalingMode auf AutoOffset zu setzen. Dabei werden der Offset des Slaves automatisch so korrigiert, daß in der Slaveposition kein Sprung entsteht. In der Geschwindigkeit oder der Beschleunigung sind hier Sprünge möglich. Wenn zum Beispiel die Aktivierungsposition in einem Segment konstanter Geschwindigkeit liegt und das geänderte Segment die gleiche Geschwindigkeit hat, kann hier ohne Probleme die Änderung vollzogen werden.

SlaveScalingMode |
UserDefined (Default) | 0
AutoOffset | 1
Off | 2

Die Speicherverwaltung der Motion Function Punkte erlaubt nicht nachträglich noch Punkte hinzuzufügen, daher gibt es die Möglichkeit Punkte zu ignorieren (IGNORE). Für eine effiziente Suche des aktuellen Segmentes war es erforderlich, die Masterpositionen in einer monoton steigend Reihenfolge abzuspeichern. Also auch die Punkte die später eingeschaltet werden sollen, müssen sich schon von der Masterposition an der richtigen Stelle befinden. Beim Starten des System sollte man sich also darüber klar sein, welche maximale Menge an Punkten benötigt wird.

Achtung!

Die Online Modifikation bietet viele Möglichkeiten der Änderung. Damit ergeben sich aber auch Situationen, die zu Fehlern in den Achsen oder größeren Probleme führen können. Dieses mächtige Werkzeug sollte man also nur mit Vorsicht und nach entsprechenden Simulationstests an einer Maschine zum Einsatz bringen.


Übersicht

Eine Slave-Achse, deren Positions-Sollwerte aus den Positions-Sollwerten einer anderen Achse mittels einer vorausberechneten Tabelle ermittelt werden heißt Kurvenscheiben-Achse (Tabellen-Slave-Achse).

Die Tabelle enthält die zur jeweiligen Masterposition gehörige Slaveposition und wird linear interpoliert. Die Tabellen können in der Masterposition äquidistant monoton steigend oder nur monoton steigend sein. Die Tabellen können linear oder zyklisch abgearbeitet werden. Es ist möglich die Masterposition und/oder die Slaveposition mit einem Offset zu versehen. Diese Offsets sind on-line änderbar. Die Tabellen können absolut oder relativ in Bezug auf die Koppelpositionen (von Master und /oder Slave) abgearbeitet werden.

Interfaces

Die Interfaces bestehen aus dem System Manager, SPS-Bausteinen und dem zyklischen NC-SPS-Achs-Interface.

Tabellentypen

Es gibt vier Tabellentypen die nach Tabelleninhalt und Abarbeitungsmodus unterschieden werden.

  • Äquidistante Tabellen bei denen die Masterposition in äquidistanten Schritten ansteigt:
    • Äquidistante lineare Tabellen, d.h. Tabellen die am Tabellenrand gemäß dem Tabelleninhalt abgearbeitet werden.
    • Äquidistante zyklische Tabellen, d.h. Tabellen die am Tabellenrand periodisch fortgesetzt abgearbeitet werden.
  • Nicht-Äquidistante Tabellen bei denen die Masterposition in nicht notwendigerweise äqudistanten Schritten streng monoton ansteigt:
    • Nicht-Äquidistante lineare Tabellen, d.h. Tabellen die am Tabellenrand gemäß dem Tabelleninhalt abgearbeitet werden.
    • Nicht-Äquidistante zyklische Tabellen, d.h. Tabellen die am Tabellenrand periodisch fortgesetzt abgearbeitet werden.

Abarbeitungsmodi

Es gilt Master-Offsets und/oder Slave-Offsets, unterschiedliche Bezugssysteme (relativ/absolut - in Bezug auf die Koppelposition), und die Möglichkeit der linearen oder zyklischen Abarbeitung.

Ablauf

Der Ablauf besteht aus den Koppelvorbereitungen (Verfahren der Achsen auf Koppelposition), Koppeln, Starten der Master-Achse, eventuellen on-line Änderungen des/der Offsets, Bremsen der Slave-Achse (direkt über den Master oder indirekt über die Tabelle) und dem Abkoppeln.


Interfaces

Der Benutzer kann die Kurvenscheiben-Achse über den System Manager oder SPS-Bausteine bedienen. Außerdem steht ihm (im System Manager und über die SPS) ein zyklisches NC-SPS Interface zur Verfügung, das das Achs-Prozessabbild beinhaltet und Zugriff auf diverse Variablen ermöglicht.

System Manager

Der System Manager bietet den Zugriff auf alle Funktionalitäten der Kurvenscheiben-Achse:

  • Logisches Koppeln mit Angabe der Masterachse und Setzen der Koppeltabelle.
  • Abkoppeln.

SPS-Bausteine

Die SPS Library bietet den Zugriff auf alle Slave-Achs Funktionalitäten :

  • Logisches Koppeln mit Angabe der Masterachse und Setzen der Koppeltabelle.
  • Stopp.

NC-SPS-Interface

Das zyklische NC-SPS Achs-Interface beinhaltet das Achs-Prozessabbild und insbesondere Zugriff auf die Koppelinformation (Koppelflag).


Tabellentypen

Es gibt vier Tabellentypen die nach Tabelleninhalt und Abarbeitungsmodus unterschieden werden.

  • Äquidistante Tabellen bei denen die Masterposition in äquidistanten Schritten ansteigt:
    • Äquidistante lineare Tabellen, d.h. Tabellen die am Tabellenrand gemäß dem Tabelleninhalt abgearbeitet werden.
    • Äquidistante zyklische Tabellen, d.h. Tabellen die am Tabellenrand periodisch fortgesetzt abgearbeitet werden.
  • Nicht-Äquidistante Tabellen bei denen die Masterposition in nicht notwendigerweise äqudistanten Schritten streng monoton ansteigt:
    • Nicht-Äquidistante lineare Tabellen, d.h. Tabellen die am Tabellenrand gemäß dem Tabelleninhalt abgearbeitet werden.
    • Nicht-Äquidistante zyklische Tabellen, d.h. Tabellen die am Tabellenrand periodisch fortgesetzt abgearbeitet werden.

Die Multitabellen-Slaves arbeiten nur mit Nicht-Äquidistante Tabellen.

Generelle Hinweise:

Nicht-Äquidistante Tabellen basieren auf einem linearen Suchalgorithmus, der per Bisektion gestartet und reinitialisiert wird.

Selbstverständlich sind Äquidistante Tabellen auch Nicht-Äquidistante Tabellen

Selbstverständlich kann jede Tabelle lineare oder zyklisch abgearbeitet werden.

Generelle Tabellen-Konventionen

  • Die Tabellen enthalten nur Binärdaten.
  • Die Tabelle besteht aus einem Kopf (erste Zeile) und den Tabellendaten (restliche Zeilen).
  • Der Kopf enthält zwei Zahlen des Typs unsigned short. In der ersten Spalte steht die Anzahl der Zeilen (ohne Kopf), in der zweiten Spalte die Anzahl der Spalten (für Tabellen von Tabellen-Slaves: immer 2). Es gibt keine Trennzeichen zwischen den Daten.
  • Bis auf den Kopf enthält die Tabelle nur Daten des Typs double.
  • Die erste Spalte (abgesehen von der Kopfzeile) enthält die Masterposition, die zweite Spalte die zugehörige Slaveposition (jeweils in mm). Es gibt keine Trennzeichen zwischen den Daten.

Generelle Bemerkungen

Die Tabelle(n) muss der angestrebten Dynamik angepasst sein. An dynamisch kritischen Stellen, wo die Master-Achse langsam fährt muss die Tabelle genug Daten enthalten, um präzise auflösen zu können.

Tabellen-Bezeichnungen

Die Tabelle T enthält N Zeilen und pro Zeile zwei Daten, die Masterposition T[k][0] und die zugehörige Slaveposition.T[k][1], 0 ≤ k < N. Bezeichnungen:
T[k,0] Masterwert, 0 ≤ k < N,
T[k,1] Slavewert, 0 ≤ k < N,
T(y) interpolierter Slave-Positionswert aus dem Intervall T[k,1] und T[k+1,1], wobei T[k,0] < y ≤ T[k+1,0] für nicht-äquidistante Tabellen und T[k,0] ≤ y < T[k+1,0] für äquidistante Tabellen gilt.

Zyklische Tabellen (Zyklische Abarbeitung)

Zyklische Tabellen sind durch folgende zusätzliche Parameter charakterisiert:

  • Eine Master-Periode: es wird unterstellt, dass die Periode nicht-negativ ist und bei 0.0 anfängt. Die Tabellen erstrecken sich vereinbarungsgemäß von T[0][0] = 0.0 bis T[N-1][0] = Periode.
  • Eine Slave-Differenz pro Master-Periode (mit beliebigem Vorzeichen) die angibt, um wie viel mm sich die Slave-Position pro Periode ändert. Ist der Slave selber periodisch, dann ist diese Differenz 0.0. Es gilt: T[N-1][1] - T[0][1] = Slave-Differenz pro Master-Periode.

Auswertung Linearer Tabellen

  • Wenn ein Tabellenüberlauf/Tabellenunterlauf in der Masterposition vorliegt, wird als Slave-Positionswert der Tabellenwert am jeweiligen Rand der Tabelle ausgegeben.
  • Insbesondere gilt: liegt die Masterposition bei Kopplung außerhalb der Tabelle, dann springt die Slave-Achse im ersten Schritt auf den jeweiligen Tabellenrandwert was im Allgemeinen einen Schleppabstand bewirkt.
  • Die aktuelle Slaveposition wird durch lineare Interpolation ermittelt.
  • Die aktuelle Slavegeschwindigkeit wird, falls das möglich ist, per Tabelle und Kettenregel aus der Master-Sollgeschwindigkeit berechnet (das setzt voraus, dass die Master-Sollgeschwindigkeit hinreichend glatt ist). Ansonsten wird die Slavegeschwindigkeit per numerischer Differentiation berechnet (und ist dementsprechend grob, wenn mehrfach innerhalb eines Zeilenpaars interpoliert wird).
  • Die aktuelle Slavebeschleunigung wird immer per numerischer Differentiation berechnet und ist dementsprechend grob.

Auswertung Zyklischer Tabellen

  • Die Tabelle verfügt über einen Zykluszähler, der bei Tabellenüberlauf inkrementiert und bei Tabellenunterlauf dekrementiert wird.
  • Bei Tabellenüberlauf/Tabellenunterlauf wird die Slavedifferenz pro Masterperiode mal Zykluszähler auf die Slaveposition addiert.
  • Die aktuelle Slaveposition wird durch lineare Interpolation ermittelt.
  • Die aktuelle Slavegeschwindigkeit wird, falls das möglich ist, per Tabelle und Kettenregel aus der Master-Sollgeschwindigkeit berechnet (das setzt voraus, dass die Master-Sollgeschwindigkeit hinreichend glatt ist). Ansonsten wird die Slavegeschwindigkeit numerischer Differentiation berechnet (und ist dementsprechend grob, wenn mehrfach innerhalb eines Zeilenpaars interpoliert wird).
  • Die aktuelle Slavebeschleunigung wird immer per numerischer Differentiation berechnet und ist dementsprechend grob.


Abarbeitungsmodi

Kurvenscheiben können mit gekoppelten Master/Slave-Achsen linear oder zyklisch abgearbeitet werden. Sie lassen sich sowohl Master- als auch Slave-seitig skalieren und mit einem Positions-Offset versehen. Das Bezugssystem einer Kurvenscheibe kann dabei absolut oder relativ zur Koppelposition der Achsen interpretiert werden.

Lineare Abarbeitung

Offsets

Es kann sowohl ein Slave-Offset, als auch ein Master-Offset angegeben werden:

  • Der Master-Offset (MO) wird vor allen anderen Operationen auf die Masterposition addiert.
  • Der Slave-Offset (SO) wird nach allen anderen Operationen auf die Slave-Position addiert.

Skalierung

Es gibt eine Slave-Skalierung, mit der alle Slave-Positionen multiplikativ skaliert werden. Ferner gibt es eine Master-Skalierung, mit der alle Master-Positionen dividiert werden. Die Skalierungen sind üblicherweise durch die Kopplung des Slaves mit 1.0 vorbesetzt, man kann aber von diesen Werten beliebig abweichen (Master-Skalierung darf nicht 0.0 sein). Eine Änderung der Skalierung ist auch online möglich, sollte dann aber nur in Maßen vorgenommen werden, da - auch im dynamischen Stillstand der Achsen - ein Schleppabstand erzeugt wird. Bei zyklischer Abarbeitung (s.u.) wird die Slave-Differenz (Slavehub) pro Masterperiode ebenfalls mit der Slave-Skalierung multipliziert.

  • Die Master-Skalierung (MS) wird als Divisor verwendet.
  • Die Slave-Skalierung (SS) wird als Multiplikator verwendet.

Zyklische Abarbeitung

Für zyklische Abarbeitung gilt: die Modulo-Operation erfolgt auf tiefster Ebene, d.h. unmittelbar vor Auswertung der Tabelle.

  • Die Tabelle verfügt über einen Zykluszähler (Zm), der bei Tabellenüberlauf inkrementiert und bei Tabellenunterlauf dekrementiert wird.
  • Die Masterposition wird absolut übergeben, nicht Modulo.
  • Bei Tabellenüberlauf/Tabellenunterlauf wird die Slave-Differenz (Slavehub) pro Masterperiode (SH) mal Zykluszähler auf die Slave-Position addiert.

Zyklische Abarbeitung

Bezeichnungen

  1. Pm absolute Masterposition
  2. Pmc Master-Koppelposition (Masterstartposition), nur für relatives Bezugssystem wirksam !
  3. MO Master-Offset
  4. MS Master-Skalierung
  5. Ps absolute Slave-Position
  6. Psc Slave-Koppelposition (Slave-Startposition), nur für relatives Bezugssystem wirksam !
  7. SO Slave-Offset
  8. SS Slave-Skalierung
  9. T(•) Tabelle
  10. mod[•] Modulorechnung mit Masterperiode (Beispiele für eine Masterperiode von 360 Grad: mod[ 40 ] = 40, mod[ 400 ] = 40, mod[ -20 ] = 340 )
  11. Zm Zykluszähler des Masters
  12. SH Slave-Differenz (Slavehub) pro Masterperiode

Bezugssysteme

Die Position einer Slave-Achse ergibt sich nach einer Berechnungsvorschrift aus den Daten der Kurvenscheibentabelle und der aktuellen Master-Position. Wenn ein relatives Bezugssystem für Master oder Slave gewählt wird, dann sollte die zugehörige Positionsspalte der Tabelle mit 0.0 beginnen. "Relativ" bezieht sich immer auf die Koppelposition der jeweiligen Achse. Im Folgenden werden die Berechnungsvorschriften für Kombinationen aus relativem und absolutem Bezug erläutert.
Oftmals ergibt sich für den konkreten Anwendungsfall die Notwendigkeit die nachfolgenden Formeln so umzustellen, dass sich der Slave-Offset (SO) bzw. der Master-Offset (MO) ergibt.

Bezugssystem für Lineare Tabellen

Allgemeiner Fall: Offsets ungleich 0.0 und Skalierungen ungleich 1.0

  • Master absolut und Slave absolut: Ps = SO + T( (MO + Pm ) / MS ) · SS
  • Master relativ und Slave absolut: Ps = SO + T( (MO + Pm - Pmc ) / MS ) · SS
  • Master absolut und Slave relativ: Ps = Psc + SO + T( (MO + Pm ) / MS ) · SS
  • Master relativ und Slave relativ: Ps = Psc + SO + T( (MO + Pm - Pmc ) / MS ) · SS

Vereinfachter Sonderfall 1: Offsets ungleich 0.0 und Skalierungen sind 1.0

  • Master absolut und Slave absolut: Ps = SO + T( (MO + Pm ) )
  • Master relativ und Slave absolut: Ps = SO + T( (MO + Pm - Pmc ) )
  • Master absolut und Slave relativ: Ps = Psc + SO + T( (MO + Pm ) )
  • Master relativ und Slave relativ: Ps = Psc + SO + T( (MO + Pm - Pmc ) )

Vereinfachter Sonderfall 2: Offsets sind 0.0 und Skalierungen sind 1.0

  • Master absolut und Slave absolut: Ps = T( Pm )
  • Master relativ und Slave absolut: Ps = T( Pm - Pmc )
  • Master absolut und Slave relativ: Ps = Psc + T( Pm )
  • Master relativ und Slave relativ: Ps = Psc + T( Pm - Pmc )

Bezugssystem für Zyklische Tabellen

Bei Tabellenüberlauf bzw. Tabellenunterlauf wird die Slavedifferenz (Slavehub) pro Masterperiode multipliziert mit dem Zykluszähler auf die Slaveposition addiert.

Allgemeiner Fall: Offsets und Slavehub sind ungleich 0.0 und Skalierungen ungleich 1.0

  • Master absolut und Slave absolut: Ps = SO + T( mod[ (MO + Pm ) / MS ] ) · SS + SH · ZM
  • Master relativ und Slave absolut: Ps = SO + T( mod[ (MO + Pm - Pmc ) / MS ] ) · SS + SH · ZM
  • Master absolut und Slave relativ: Ps = Psc + SO + T( mod[ (MO + Pm ) / MS ] ) · SS + SH · ZM
  • Master relativ und Slave relativ: Ps = Psc + SO + T( mod[ (MO + Pm - Pmc ) / MS ] ) · SS + SH · ZM

Vereinfachter Sonderfall 1: Offsets und Slavehub sind ungleich 0.0, Skalierungen sind 1.0

  • Master absolut und Slave absolut: Ps = SO + T( mod[ (MO + Pm ) ] )+ SH · ZM
  • Master relativ und Slave absolut: Ps = SO + T( mod[ (MO + Pm - Pmc ) ] ) + SH · ZM
  • Master absolut und Slave relativ: Ps = Psc + SO + T( mod[ (MO + Pm ) ] ) + SH · ZM
  • Master relativ und Slave relativ: Ps = Psc + SO + T( mod[ (MO + Pm - Pmc ) ] ) + SH · ZM

Vereinfachter Sonderfall 2: Offsets und Slavehub sind 0.0, Skalierungen sind 1.0

  • Master absolut und Slave absolut: Ps = T( mod[ Pm ] )
  • Master relativ und Slave absolut: Ps = T( mod[ Pm - Pmc ] )
  • Master absolut und Slave relativ: Ps = Psc + T( mod[ Pm ] )
  • Master relativ und Slave relativ: Ps = Psc + T( mod[ Pm - Pmc ] )

Interfaces


Ablauf

Der Ablauf besteht aus den Koppelvorbereitungen (Verfahren der Achsen auf Koppelposition), Koppeln, Starten der Master-Achse, eventuellen on-line Änderungen des/der Offsets, Bremsen der Slave-Achse (direkt über den Master oder indirekt über die Tabelle) und dem Abkoppeln.

Vorbereitung

  1. Die Master-Achse wird im PTP-Betriebszustand auf Koppelposition = Startposition gefahren.
  2. Die zur Masterposition gehörige Slaveposition wird aus der Tabelle ermittelt. Das Lesen der Tabelle ergibt nur den Tabellenwert, dieser muß vom Benutzer noch mit den, bei Kopplung eventuell anvisierten Offsets und Abarbeitungsmodi (relativ/absolut) verrechnet werden.
  3. Die Slave-Achse wird PTP-Modus auf Koppelposition = Startposition gefahren.

Koppeln/Start

Das Ankoppeln erfolgt off-line (Slave und Master stehen).

Der Slave startet dann, wenn der Master startet und der Tabelleninhalt es bedingt (die Slaveposition ist nicht konstant).

On-Line

Die Tabellen-Master-Slave-Kopplung ist eine Streckensteuerung.

Die Offsets können on-line geändert werden. Ändern des/der Offsets sollte bei Fahrt nur mit Maßen durchgeführt werden, da ein Schleppabstand erzeugt wird..

Bei Tabellenüberlauf/Tabellenunterlauf zyklischer Tabellen wird die Slavedifferenz pro Masterperiode mal Zykluszähler auf die Slaveposition addiert.

Es gibt keinen separaten Stop der Slave-Achse.

On-line Offsetänderungen

Errorhandling

Es gibt kein explizites Errorhandling, wenn ein Tabellenüberlauf/Tabellenunterlauf linearer Tabellen passiert. Die Slave-Achse bleibt am jeweiligen Tabellenrand instantan stehen und erzeugt (je nach dynamischem Zustand) einen Schleppabstand.

Stop/Abkoppeln

Die Slave-Achse stoppt entweder, wenn der Master stoppt (Streckensteuerung) oder wenn der Tabelleninhalt es bedingt (die Slaveposition ist über einen weiten Bereich der Masterposition konstant).

Das Abkoppeln kann off-line (Master und Slave stehen) oder semi-off-line (nur der Slave steht) durchgeführt werden.

Interfaces

  • Tabelle Lesen
    1. SPS-Bausteine
  • Ankoppeln
    1. System Manager
    2. SPS-Bausteine
  • Abkoppeln
    1. System Manager
    2. SPS-Bausteine


Camming Slave - Online Scaling

TwinCAT Slaves: Online Sacling

Online Modifikation der Skalierung oder des Offsets

Die Online Änderung der Skalierung oder des Offset von Kurvenscheiben (Positionstabellen und Motion Function) folgt bestimmten Regeln. So kann die Aktivierung ab einer bestimmten Position der Achse (AtMasterAxisPos), sofort (Instantaneous) oder ab dem nächsten Zyklus erfolgen. Mit dem Befehl zur Online-Änderung oder dem Funktionsbaustein (MC_CamScaling) werden die Aktivierungsregel (ActvivationMode, ActivationPosition, MasterScalingMode und SlaveScalingMode) und die Parameter MasterOffset, SlaveOffset, MasterScaling und SlaveScaling übertragen.

ActivationMode |
Instantaneous (Default) | 0
AtMasterCamPos | 1
AtMasterAxisPos | 2
NextCycle | 3

Der ActivationMode Instantaneous aktiviert im nächsten Tick die übertragenen Werte. Die beiden Modi AtMasterAxisPos und AtMasterCamPos unterscheiden sich darin, dass AtMasterAxisPos die Achsposition als Referenz nimmt, während AtMasterCamPos sich auf die Position im Bewegungsdiagramm bezieht. Bei einer zyklischen Bewegung von 0 bis 360 wird die Achsposition 180 nur einmalig überfahren, die Position im Bewegungsdiagramm 180 aber in jedem Zyklus überschritten. Wenn die Achsposition schon überschritten wurde führt der Aktivierungsbefehl mit dem Modi AtMasterAxisPos zu einem Fehler. In dem Modus AtMasterCamPos wird der Aktivierungsbefehl in dem nächsten Zyklus ab der gegebenen Position ausgeführt. Mit NextCycle wird die Aktivierungsposition auf das Ende bzw. den Anfang des Zyklus gesetzt.

Für eine komfortable Änderung gibt es die Möglichkeit den SlaveScalingMode oder den Master ScalingMode auf AutoOffset zu setzen. Dabei werden der Offset des Slaves bzw. des Masters automatisch so korrigiert, daß in der Slaveposition kein Sprung entsteht. In der Geschwindigkeit oder der Beschleunigung sind hier Sprünge möglich.

MasterScalingMode / SlaveScalingMode |
UserDefined (Default) | 0
AutoOffset | 1
Off | 2

Beispiele:

Die Kurvenscheibe hat am Zyklusanfang eine Rast (Geschwindigkeit und Beschleunigung sind gleich Null). Mit den Werten:

MasterOffset = 0, SlaveOffset =0, MasterScaling=1, SlaveScaling =0 , MasterScalingMode = Off, SlaveScalingMode = UserDefined , ActivationMode = NextCycle

kann die Bewegung des Slaves still gesetzt werden. Die Kopplung bleibt dabei erhalten. Mit dem entsprechenden Befehl mit SlaveScaling =1.0 kann die Bewegung später wieder eingeschaltet werden.

Die Kurvenscheibe hat eine Bereich konstanter Geschwindigkeit von 200 bis 250 Grad. Mit den Werten:

MasterOffset = 10, SlaveOffset =0, MasterScaling=1, SlaveScaling =1 , MasterScalingMode = UserDefined , SlaveScalingMode = AutoOffset, ActivationMode = AtMasterCamPos, ActivationPosition = 200

wird der MasterOffset absolut um 10 verändert. Durch SlaveScalingMode = AutoOffset wir der Slave automatisch so korrigiert, dass kein Sprung in der Position entsteht. Das Ergebnis entspricht einem instantanem Phasing.

Achtung!

Die Online Modifikation bietet viele Möglichkeiten der Änderung. Damit ergeben sich aber auch Situationen, die zu Fehlern in den Achsen oder größeren Probleme führen können. Dieses mächtige Werkzeug sollte man also nur mit Vorsicht und nach entsprechenden Simulationstests an einer Maschine zum Einsatz bringen.


Übersicht

Eine Slave-Achse, deren Positions-Sollwerte aus den Positions-Sollwerten einer anderen Achse mittels mehrerer vorausberechneter Tabellen (seriell und/oder parallel) ermittelt werden heißt Multitabellen-Slave-Achse.

Die Tabellen enthalten die zur jeweiligen Masterposition gehörige Slaveposition, sowie eine Skalierung - bestehend aus Masteroffset, Slaveoffset, Mastersteigung und Slavesteigung - die eine beliebige Skalierung der Tabelle ermöglichen. Im Normalfall hat man es mit einer normierten Starttabelle, normierten Arbeitstabellen und einer normierten Stopptabelle zu tun (Profiltabellen), die seriell hintereinander abgearbeitet werden. Dazu kommen Korrekturtabellen, die parallel zu den Profiltabellen abgearbeitet werden und die es ermöglichen, on-line Positionskorrekturen der Slave-Achse vorzunehmen.

Interfaces und Konfiguration

Die Interfaces bestehen aus dem System Manager, SPS-Bausteinen und dem zyklischen NC-SPS-Achs-Interface.

Tabellentypen

Es gibt zwei Tabellentypen die nach Abarbeitungsmodus unterschieden werden. Es handelt sich dabei um Nicht-Äquidistante Tabellen bei denen die Masterposition in nicht notwendigerweise äqudistanten Schritten streng monoton ansteigt:

  • Nicht-Äquidistante lineare Tabellen, d.h. Tabellen die am Tabellenrand gemäß dem Tabelleninhalt abgearbeitet werden.
  • Nicht-Äquidistante zyklische Tabellen, d.h. Tabellen die am Tabellenrand periodisch fortgesetzt abgearbeitet werden.

Abarbeitungsmodi

Es gibt für jede Tabelle einer Multi-Tabellen-Achse seine Skalierung bestehend aus Master-Offset, Master-Steigung, Slave-Offset, Slave-Steigung und Tabellengewicht, mit der die Tabelle beliebig affin in beiden Koordinaten skaliert werden kann. Damit besteht die Möglichkeit, sich auf eine geringe Anzahl von normierten Tabellen zu beschränken. Es gibt die Möglichkeit der linearen oder zyklische Abarbeitung.

Ablauf

Der Ablauf besteht aus den Koppelvorbereitungen (Verfahren der Achsen auf Koppelposition), Koppeln, Starten der Master-Achse, parallelen Tabellenwechseln, eventuellen seriellen on-line Aktivierungen von Korrekturtabellen, Bremsen der Slave-Achse (direkt über den Master oder indirekt über die Tabelle(n)) und dem Abkoppeln.


Interfaces und Konfiguration

Der Benutzer kann die Multi-Tabellen-Slave-Achse über den System Manager oder SPS-Bausteine bedienen. Außerdem steht ihm (im System Manager und über die SPS) ein zyklisches NC-SPS Interface zur Verfügung, das das Achs-Prozessabbild beinhaltet und Zugriff auf diverse Variablen ermöglicht.

System Manager

Der System Manager bietet den Zugriff auf alle Funktionalitäten der Multi-Tabellen-Slave-Achse:

  • Logisches Koppeln mit Angabe der Masterachse und der Koppel-Tabellen.
  • Stopp.

SPS-Bausteine

Die SPS Library bietet den Zugriff auf alle Slave-Achs Funktionalitäten :

  • Logisches Koppeln mit Angabe der Masterachse und der Koppel-Tabellen.
  • Stopp.

NC-SPS-Interface

Das zyklische NC-SPS Achs-Interface beinhaltet das Achs-Prozessabbild und insbesondere Zugriff auf die Koppelinformation (Koppelflag).


Abarbeitungsmodi

Es gibt für jede Tabelle einer Multi-Tabellen-Slave-Achse eine Skalierung bestehend aus Master-Offset, Master-Steigung, Slave-Offset, Slave-Steigung und Tabellengewicht, mit der die Tabelle beliebig affin in beiden Koordinaten skaliert werden kann. Damit besteht die Möglichkeit, sich auf eine geringe Anzahl von normierten Tabellen zu beschränken. Es gibt die Möglichkeit der linearen oder zyklische Abarbeitung

Bezugssystem

Die skalierten Achspositionen sind immer absolute Angaben.

Zyklische Abarbeitung

Für zyklische Abarbeitung gilt: die Modulo-Operation erfolgt auf tiefster Ebene, d.h. unmittelbar vor Auswertung der Tabelle.

  • Die Tabelle verfügt über einen Zykluszähler, der bei Tabellenüberlauf inkrementiert und bei Tabellenunterlauf dekrementiert wird.
  • Die Masterposition wird absolut übergeben, nicht Modulo.
  • Bei Tabellenüberlauf/Tabellenunterlauf wird die Slavedifferenz pro Masterperiode mal Zykluszähler auf die Slaveposition addiert.

Tabellentypen

Bei einer Multitabellen-Slave-Achse ist die Gesamtstrecke üblicherweise in mehrere Segmente geteilt, denen eigene (normierte) Tabellen zugeordnet sind (Profiltabellen): Starttabelle, Arbeitstabelle(n), Stopptabelle. Diese Tabellen werden seriell hintereinander abgefahren. Hinzu kommen Korrekturtabellen, die nur in eingeschränkten Bereichen gültig sind, und die parallel zu den Profiltabellen abgearbeitet werden. Die Profiltabellen können linear oder zyklisch abgearbeitet werden; die Korrekturtabellen werden immer linear abgearbeitet.

Skalierung

Skalierungsparameter einer Tabelle

Skalierungsparameter | Bedeutung und Randbedingungen
RangeLow RL | Untere Grenze des Gültigkeitsbereis der Tabelle (RL < RH)
RangeLow RH | Obere Grenze des Gültigkeitsbereis der Tabelle (RH > RL)
Tabellengewicht W | Gewicht mit dem die Tabelle in eine parallele konvexe Kombination von Tabellen eingeht (W > 0.0)
Master-Offset MO | Offset auf die Masterposition T[0][0]
Master-Steigung MS | Skalierungfaktor der Masterposition der Tabelle: T[k][0] <- MS × T[k][0]
Slave-Offset SO | Offset auf die Slaveposition T[0][1]
Slave-Steigung SS | Skalierungfaktor der Slaveposition der Tabelle: T[k][1] <- SS × T[k][1]

Das on-line setzen der Skalierung dient nicht dazu die Parameter zu ändern, während die Tabelle aktiv ist, sondern die Parameter zu setzen, bevor die Tabelle aktiv wird. Zur Korrektur einer aktiven Tabelle dienen alleine die Korrekturtabellen (deren Parameter auch nicht geändert werden dürfen, während die Tabelle aktiv ist).

Bemerkung zur Skalierung von Korrekturtabellen:

  • RangeLow = -DBL_MAX wird automatisch durch die NC-gesetzt..
  • RangeHigh = DBK_MAX wird automatisch durch die NC-gesetzt..
  • Tabellengewicht wird vom Benutzer gesetzt (üblicherweise 1.0).
  • Der Master-Offset wird automatisch durch die NC-gesetzt..
  • Master-Steigung, Slave-Offset unf Slave-Steigung werden vom Benutzer gesetzt.

Interfaces


Ablauf

Der Ablauf besteht aus den Koppelvorbereitungen (Verfahren der Achsen auf Koppelposition), Koppeln, Starten der Master-Achse, parallelen Tabellenwechseln, eventuellen seriellen on-line Aktivierungen von Korrekturtabellen, Bremsen der Slave-Achse (direkt über den Master oder indirekt über die Tabelle(n)) und dem Abkoppeln.

Vorbereitung

  1. Die Master-Achse wird im PTP-Betriebszustand auf Koppelposition = Startposition gefahren.
  2. Die zur Masterposition gehörige Slaveposition wird aus der/den Tabelle(n) ermittelt. Das Lesen einer Tabelle ergibt nur den Tabellenwert, dieser muss vom Benutzer noch mit den, bei Kopplung eventuell anvisierten Offsets, Steigungen und Gewichten sowie der geplanten Tabellenzusammensatzung verrechnet werden.
  3. Die Slave-Achse wird PTP-Modus auf Koppelposition = Startposition gefahren.

Koppeln/Start

Das Ankoppeln erfolgt off-line (Slave und Master stehen).

Der Slave startet dann, wenn der Master startet und der/die Tabelleninhalt(e) es bedingt/bedingen (die Slaveposition ist nicht konstant).

On-Line: Generell

Die Tabellen-Master-Slave-Kopplung ist eine Streckensteuerung.

Bei Tabellenüberlauf/Tabellenunterlauf zyklischer Tabellen wird die Slavedifferenz pro Masterperiode mal Zykluszähler auf die Slaveposition addiert.

Es gibt keinen separaten Stop der Slave-Achse.

On-Line: Tabellenwechsel und Tabellenzusammensatzung

Der Wechsel der Korrekturtabellen wird durch die SPS in dem Sinne vorbereitet, dass die Tabellenskalierung jeder Tabelle früh genug durch die SPS gesetzt wird. Zu den Skalierungsparametern gehört die Festlegung des (positionsmäßigen absoluten) Gültigkeitsintervalls jeder Tabelle. Der eigentliche Tabellenwechsel wird durch die NC vorgenommen.

Sind gleichzeitig mehrere Tabellen (mehrere Profiltabellen oder Profiltabellen und Korrekturtabellen) aktiv, dann wird die Slaveposition folgendermaßen berechnet (der Index i bezieht sich jeweils auf die i-te aktive Tabelle):

P_mi aktuelle absolute Masterposition,

SO_i Slave-Offset der i-ten Tabelle,

SS_i Slave-Steigung der i-ten Tabelle,

MO_i Master-Offset der i-ten Tabelle,

MS_i Master-Steigung der i-ten Tabelle,

W_i Gewicht der i-ten Tabelle.

Ermittlung der Slaveposition über mehrere parallele Tabellen

Skalierungsparameter | Bedeutung und Randbedingungen
eine lineare Tabelle | P_si(P_m) = SO_i + SS_i × T_i(MO_i + MS_i × P_m)
eine zyklische Tabelle | P_si(P_m) = SO_i + SS_i × T_i([MO_i + MS_i × P_m]mod(•))
alle Profiltabellen | P_s = Σ_i W_i × P_si(P_m)

Lineare serielle Abarbeitung

Lineare/zyklische/lineare serielle Abarbeitung

Lineare/zyklische'lineare serielle Abarbeitung mit paralleler Korrektur

On-Line: Deaktivierung Zyklischer Tabellen

Das Ende einer zyklischen Abarbeitung einer Tabelle wird durch den Benutzer per SPS angefordert, und findet am Ende der jeweiligen Zyklischen Tabelle statt.

On-Line: Aktivierung von Korrekturtabellen

Es gibt zwei Möglichkeiten der Aktivierung von Korrekturtabellen:

  • Instantane Aktivierung: Die Korrekturtabellen werden durch den Benutzer skaliert und aktiviert und nach Aufruf durch den Benutzer instantan in der NC aktiviert.
  • Aktivierung bei Unter/Überschreiten einer Aktivierungsposition: Die Korrekturtabellen werden durch den Benutzer skaliert und vor Unter/Überschreiten der Aktivierungsposition mit Angabe der Aktivierungsposition logisch aktiviert. Bei Unter/Überschreiten der Aktivierungsposition wird die Korrektur automatisch in der NC aktiviert.

Die Korrekturtabellen werden parallel zu den Profiltabellen abgefahren. Die Korrekturtabellen deaktivieren sich automatisch nach Abfahren der Korrektur.

Bemerkung zur Skalierung von Korrekturtabellen:

  • RangeLow = -DBL_MAX wird automatisch durch die NC-gesetzt..
  • RangeHigh = DBK_MAX wird automatisch durch die NC-gesetzt..
  • Tabellengewicht wird vom Benutzer gesetzt (üblicherweise 1.0).
  • Der Master-Offset wird automatisch durch die NC-gesetzt..
  • Master-Steigung, Slave-Offset und Slave-Steigung werden vom Benutzer gesetzt.

Errorhandling

Es gibt kein explizites Errorhandling, wenn ein Tabellenüberlauf/Tabellenunterlauf linearer Tabellen passiert. Der Slave-Achsen-Positionswert bleibt am jeweiligen Tabellenrand instantan stehen und erzeugt (je nach dynamischem Zustand und Tabellenzusammensetzung) einen Schleppabstand.

Stop/Abkoppeln

Die Slave-Achse stoppt entweder, wenn der Master stoppt (Streckensteuerung) oder wenn der/die Tabelleninhalt(e) es bedingt/bedingen (die Slaveposition ist über einen weiten Bereich der Masterposition(en) konstant).

Das Abkoppeln kann off-line (Master und Slave stehen) oder semi-off-line (nur der Slave steht) durchgeführt werden.

Interfaces

  • Tabelle Lesen
    1. SPS-Bausteine
  • Skalierung setzen
    1. SPS-Bausteine
  • Ankoppeln
    1. System Manager
    2. SPS-Bausteine
  • Abkoppeln
    1. System Manager
    2. SPS-Bausteine