Der Baustein erzeugt Sollpositionen für eine rotative Achse, die sich synchron zu einem Master bewegen soll. Die Bewegung startet aus der Rast. Es wird so beschleunigt, dass sich die Achse an der vorgegebenen Position synchron zum Master bewegt. Mit dem Signal x_SEP beendet die Achse die
Synchronbewegung. Es wird die Masterposition um di_MAP und die Achsposition um di_FAP verringert. Abhängig der neuen Positionen wird die Ausgleichsbewegung berechnet.
Steht die Achse nicht auf Y_STOP, so wird von der aktuellen Position aus gestartet. Das kann zur Folge haben, dass sich die Achse beim ersten Startvorgang anders verhält. Beim Stoppen wird dann aber auf die parametrierte Y_STOP positioniert.
Mit dem Eingang x_Enable=TRUE wird der Baustein aktiviert. Die erfolgreiche Aktivierung wird mit x_Active=TRUE angezeigt.
Mit x_Start erfolgt das erste Aufsynchronisieren. Mit x_Start=TRUE wird die Position der Leitachse (di_xPos) auf di_X_Sensor gesetzt. Abhängig der vorgegebenen Parameter synchronisiert die Achse auf. Wird im laufenden Betrieb x_Start=FALSE, so stoppt die Achse auf Y_STOP. Solange sich die Leitachse bewegt werden weiter MAPs abgezogen. Damit wird beim nächsten Starten (x_Start wird wieder TRUE) direkt auf die nächstmögliche Leitposition aufsynchronisiert. So können Leertakte realisiert werden.
Hinweis:
Bevor der Baustein ausgeführt werden kann, müssen alle relevanten Parameter mit dem Baustein TB_SyncRot_Init initialisiert werden.
Hinweis:
Wird di_SX_MinStart verwendet, muss vorher eine gültige MAP angelegt werden.
Hinweis:
Die Achse verfährt so lange synchron, bis x_SEP=TRUE wird. Nun wird die Rückfahrt berechnet. Dieser Vorgang dauert zwei Zyklen, während der die Achse weiter synchron verfährt. Danach wird die Synchronbewegung beendet und es wird so zurück gefahren dass auf den nächsten Synchronpunkt aufsynchronisiert werden kann.
Empfohlene Task: | EVENT |
Verwendete Bibliotheken: | ARITHMETIC_xxbd00 oder höher TECH_TYPES_xxbd05 oder höher TECH_TOOLS_xxbd01 oder höher |
Bezeichnung: | Datentyp: | Beschreibung: |
---|---|---|
di_xPos | DINT | Aktuelle Leitposition in Anwendereinheiten. Wird auf die Position di_X_Sensor (siehe TB_SyncRot_Init) gesetzt, wenn x_Start nach Freigabe das erste Mal TRUE wird. |
di_yPos | DINT | Aktuelle mechanische Achsposition in Anwendereinheiten. Muss vor Verwendung des Bausteins einmalig auf die tatsächliche mechanische Position gesetzt werden. |
_SyncDat | TB_SYNC_TYPE | Initialisierungsparameter des Bausteins TB_SyncRot_Init. |
Bezeichnung: | Datentyp: | Beschreibung: |
---|---|---|
x_Enable | BOOL | TRUE: Freigabe des Bausteins. |
x_Start | BOOL | Wenn x_Start das erste Mal (nach Freigabe) TRUE ist, wird die Masterposition di_xPos auf die Position di_X_Sensor (siehe TB_SyncRot_Init) gesetzt und es werden die Sollwerte berechnet und an di_yPos ausgegeben. Wird x_Start=FALSE, so beendet die Achse den aktuellen Zyklus und stoppt auf der parametrierten Rastposition. Die Leitposition wird um eine MAP subtrahiert sobald sie größer als di_X_Sync (siehe TB_SyncRot_Init) wird. Wird x_Start wieder TRUE, so wird direkt auf die nächstmögliche Synchronposition di_X_Sync aufsynchronisiert. |
x_SEP | BOOL | Beenden der Synchronfahrt. Ist x_Start=TRUE, dann Ausgleichsbewegung und auf den nächsten Synchronpunkt des Masters aufsynchronisieren. Ist x_Start=FALSE, dann absynchronisieren und auf Rastposition fahren. |
di_MAP | DINT | Master-Achs-Periode. Weg des Masters, der bei der positiven Flanke an x_SEP von di_xPos abgezogen wird. Die kürzest mögliche MAP lässt sich über die Formel "di_MAP > di_SEP - di_Y_Sync" näherungsweise berechnen. Bedeutet die Produktlänge(MAP) muss länger sein, wie der Synchronbereich. Die Produktlänge über einen Zyklus wird aus Synchronfahrt + Ausgleichsbewegung dargestellt. Bei der Wahl der kürzestet möglichen MAP muss also auch darauf geachtet werden, das noch genug Zeit für die Ausgleichsbewegung bleibt. |
di_FAP | DINT | Folge-Achs-Periode. Weg der Achse, der bei der positiven Flanke an x_SEP von di_yPos abgezogen wird. |
di_yPosAdd | DINT | Hier kann der Sollwert eines zusätzlicher Sollwertgenerators (z.B. TB_PosAdd) angeschlossen werden. So kann z.B. die Funktion „Lücke ziehen" realisiert werden. |
Bezeichnung: | Datentyp: | Beschreibung: |
---|---|---|
x_Active | BOOL | TRUE: Baustein ist aktiv, die angegebene Sollgeschwindigkeit wird umgerechnet und an di_Vel ausgegeben. |
x_Motion | BOOL | TRUE: Die Bewegungsausführung ist gestartet. Die Achse ist an den Leitwert gekoppelt. |
x_Sync | BOOL | TRUE: Die Achse bewegt sich synchron zum Master. Mit diesem Signal kann z.B. die Bearbeitung des Produkts gestartet werden. |
x_Stop | BOOL | TRUE: Achse steht. |
x_Error | BOOL | TRUE: Technologiebaustein hat einen Fehler erkannt. |
di_vel | DINT | Soll-Geschwindigkeit der Achse in 1/100 Anwendereinheiten/Ts. Ts ist die Zykluszeit der Sollwert-Eventtask. |
di_Acc | DINT | Soll-Beschleunigung der Achse in 1/100 Anwendereinheiten/Ts². Ts ist die Zykluszeit der Sollwert-Eventtask. |
i_Result | INT | Meldungsnummer des Bausteins. |
s_ResTxt | STRING | Meldungstext des Bausteins. |
i_Results | _ResTxt | Beschreibung: |
---|---|---|
999 | No Technology License | Keine Technologie-Lizenz. PLC mit Technologie-Lizenz verwenden. |
-110 | FAP required! | Für die Berechnung des Startverhaltens wird eine gültige FAP benötigt. |
-100 | Axis position > SyncPos! | Aktuelle Position größer als die parametrierte Synchronposition. Lösung: FAP angeben oder Achse vor Synchronposition bringen. |
-100 | SX_Start oversized or FAP required! | Für die Berechnung des Startverhaltens wird eine gültige FAP benötigt. |
-90 | invalid FAP! | Keine gültige FAP vorhanden. Die FAP muss zwischen 0 und 21474835 sein. |
-80 | FAP undersized! | FAP zu klein. |
-70 | invalid MAP! | Keine gültige MAP vorhanden. Die MAP muss zwischen 0 und 21474835 sein. |
-60 | no SEP detected! | Achse hat Verfahrbereichsende erreicht ohne dass ein SEP erkannt wurde. |
-50 | Axis not in start position! | Die Achse befindet sich nicht in Rastposition. |
-40 | MAP undersized! | Die MAP ist zu klein. |
-30 | SEP before sync. detected! | Es wurde ein SEP erkannt bevor die Achse synchron ist. |
-20 | Sensor to close to sync position | Der Startweg zum aufsynchronisieren ist zu kurz. Abhilfe:Sensorposition ändern oder Start verkürzen (di_SX_Start am TB_SyncRot_Init). |
-1 | No valid Init-Parameters! | Die Initialisierungsdaten sind ungültig. Abhilfe: TB_SyncRot_Init mit gültigen Parametern ausführen. |
0 | TB_SyncRot disabled | Baustein ist nicht aktiv. |
10 | TB_SyncRot enabled | Baustein ist frei gegeben und wartet auf Start. |
15 | TB_SyncRot restart | Baustein ist frei gegeben und wartet auf Start zum wiederanstarten. |
21 | TB_SyncRot start cycle | Erstes Aufsynchronisieren aus der Rastposition. |
31 | TB_SyncRot continuous cycle | Baustein im zyklischen Betrieb. |
31 | TB_SyncRot continuous cycle with stop | Baustein im zyklischen Betrieb. Es wird auf halbem Ausgleichsweg gestoppt. |
41 | TB_SyncRot stop cycle | Stoppen in der Rastposition. |