Querschneider
Diese Bibliothek kommt zum Einsatz, wenn sich eine rotative Achsen zu einer Masterposition synchronisieren soll.
Dabei wird beispielsweise eine sich in Rast befindende Slave-Achse so beschleunigt, dass sich diese an einer vorgegebenen Position synchron zum Master bewegt.
TB_SyncRot
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.
Beschreibungallgemein
Der Baustein eignet sich für die Ansteuerung von rotativen Achsen, die sich synchron zu einer Masterposition bewegen sollen. Diese Bewegungsart kann immer dann verwendet werden, wenn kontinuierlich bewegte Produkte bearbeitet werden sollen. Die Mechanik kann z.B. eine Rundachse oder ein Zahnriemen sein. Es werden drei charakteristische Parameter benötigt; der SEP, die MAP und die FAP.
Der SEP ist ein digitales Ereignis und zeigt das Ende der Bearbeitung an. Ab diesem Punkt bewegt sich die Achse auf den nächsten Synchronpunkt zu. Die MAP ist der Abstand zur nächsten Synchronposition des Masters, die FAP der Abstand zur nächsten Synchronposition der Achse.
Der Bewegungsablauf teilt sich immer in die vier Phasen Aufsynchronisieren, Synchronfahrt, Absynchronisieren und Ausgleich. Ein Zyklus beginnt hierbei immer am SEP, also am Ende der Synchronfahrt (Ausnahme ist der Starttakt). An diesem Punkt wird die Bewegung für den folgenden Takt bestimmt. Deshalb muss am Ende der Synchronfahrt die nächste MAP und die FAP bekannt sein.
Im folgenden Bild ist der Weg der Achse und des Masters über der Zeit aufgetragen. Die Achse steht (1) und startet so (2), dass sie genau dann ihren Synchronpunkt (Y_SYNC) erreicht, wenn der Master an der Position X_SYNC ist (3).
Ab diesem Punkt bewegt sich die Achse synchron zum Master bis das Signal SEP erkannt wird (4). In diesem Moment wird von der Masterposition die MAP und von der Achsposition die FAP abgezogen (5). Abhängig der neuen Positionen wird nun die Ausgleichsbewegung ausgeführt. Ist die Leitachse weiter von X_SYNC entfernt als die Folgeachse von Y_SYNC so verzögert die Achse (6). Ist die Leitachse näher an X_SYNC als die Folgeachse an Y_SYNC so beschleunigt sie (7). In jedem Fall erreicht die Achse ihre Synchronposition (Y_SYNC) dann, wenn der Master die Position X_SYNC erreicht. Wenn die Achse gestoppt werden soll, werden am SEP nochmals die Positionen manipuliert. Nun stoppt die Achse (8) und hält an der gegebenen Stop-Position (9).
Achtung:
Der FB TB_SyncRot kann nur in einer synchronisierten Sollwert-Event Task verwendet werden.
Empfohlene Task: EVENT
Verwendete Bibliotheken: ARITHMETIC_xxbd00 oder höher TECH_TYPES_xxbd05 oder höher TECH_TOOLS_xxbd01 oder höher
Eingänge
| 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. |
Ausgänge
| 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. |
Ein-/Ausgänge
| 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. |

TB_SyncRot_Init
Es werden die angelegten Parameter für den Technologiebaustein TB_SyncRot geprüft, gewandelt und in der Strukturvariablen _SyncDat abgelegt.
Hinweis:
Beim ersten Aufruf des Bausteins werden die Stützpunkte der Bewegungsgesetze geladen. Dadurch ist die Abarbeitungszeit für den ersten Aufruf höher.
Es ist jederzeit möglich, die Parameter während des Betriebs, d.h. auch während der TB_SyncRot aktiv ist und Sollwerte erzeugt, zu ändern. Die neuen Parameter werden zu Beginn eines neuen Zyklus (bei steigender Flanke an x_SEP) übernommen.
Empfohlene Task: zyklisch
Verwendete Bibliotheken: ARITHMETIC_xxbd00 oder höher TECH_TYPES_xxbd05 oder höher TECH_TOOLS_xxbd01 oder höher
Eingänge
| Bezeichnung: | Datentyp: | Beschreibung: |
|---|---|---|
| x_Enable | BOOL | TRUE: Freigabe des Bausteins. |
| di_X_Sync | DINT | TRUE: Freigabe des Bausteins. |
| di_Y_Sync | DINT | Position der Achse in Anwendereinheiten, an der die sie winkel- und geschwindigkeitssynchron zur Leitachse ist. |
| di_Y_Stop | DINT | Position der Achse in Anwendereinheiten, die nach dem letzten Zyklus (x_Start=FALSE) angefahren wird. |
| di_X_Sensor | DINT | Position eines (optionalen) Sensors in Anwender-Leiteinheiten. Mit der ersten positiven Flanke am Eingang x_Start wird die Masterposition di_xPos auf di_X_Sensor gesetzt. Ist kein Sensor vorhanden, so wird die Position di_xPos so bestimmt, dass die Achse sofort aufsynchronisiert. Hierzu muss der Parameter mit dem Wert: DINT#16#8000_0000 beschrieben werden. Der Baustein berechnet dann abhängig von den relevanten Parametern die kürzest mögliche Sensordistanz.Die kürzest mögliche Sensordistanz ist abhängig von mehreren Variablen: x_Sync, y_Sync und y_Stop (nach Restart des Bausteins ist das die Startposition) sowie y_Pos und x_Pos Positionsistwert des TB_SyncRot beim Starten. |
| di_SX_MinStart | DINT | Minimaler Weg der Leitachse in Anwender-Leiteinheiten, bevor aufsynchronisiert werden darf. >=0: Es wird die Position X_SENSOR so oft um MAP in Richtung X_SYNC verschoben, bis der Abstand kleiner als SX_MinStart+MAP ist. -1: Funktion inaktiv. Diese Funktion dient der Reduzierung von Ausschuss. Kann man sicherstellen, dass bereits Material in der Maschine ist und die Produktlängen konstant sind, ist die Verwendung sinnvoll. Ist X_SENSOR z.B. 1,5m vom Messer entfernt, wird ohne diese Funktion 1,5m des Materials verfahren bis dann genau auf die Marke synchronisiert wird. Um diesen Ausschuss zu vermindern, kann di_SX_MinStart verwendet werden. |
| di_SX_Start | DINT | Weg der Leitachse in Anwender-Leiteinheiten während dem die Achse aufsynchronisiert. Bleibt der Eingang offen, so wird mit minimaler Beschleunigung aufsynchronisiert. Je größer der Abstand der Achse zur Synchronposition di_Y_Sync ist, desto länger ist der Leitweg. |
| di_SX_Stop | DINT | Weg der Leitachse in Anwender-Leiteinheiten während dem die Achse auf die Rastposition di_Y_Stop verfährt. Bleibt der Eingang offen, so wird der Weg vom Baustein vorgegeben. |
| ui_SX_Sync | UINT | Synchronweg Leitachse in Anwender-Leiteinheiten. Wenn die Achse synchron ist legt sie ui_SY_Sync zurück, während die Leitachse ui_SX_Sync zurücklegt. |
| ui_SY_Sync | UINT | Synchronweg Achse in Anwendereinheiten. Wenn die Achse synchron ist legt sie ui_SY_Sync zurück, während die Leitachse ui_SX_Sync zurücklegt. |
| us_k_Sync | USINT | Synchronkorrektur in Prozent. 100%=synchron (ui_SY_Sync/ui_SX_Sync), >100%: Achse bewegt sich schneller, <100% Achse bewegt sich langsamer. Hinweis: Änderungen werden am Synchron-Ende-Punkt (SEP) übernommen und wirken sofort. Dadurch kann ein Stoß entstehen. |
| i_T_Cycle | INT | Zykluszeit der Sollwert-Eventtask in ms. Hier sind 1, 2, 4 und 8 ms möglich. |
Ausgänge
| Bezeichnung: | Datentyp: | Beschreibung: |
|---|---|---|
| x_Ok | BOOL | TRUE: Gültige Initialisierungswerte in _SyncDat vorhanden. |
| x_Error | BOOL | TRUE: Der Baustein hat einen Fehler festgestellt. Siehe i_Result und s_ResTxt. |
| i_Result | INT | Meldungsnummer des Bausteins. Werte <0 sind Fehler (x_Error=TRUE). |
| s_ResTxt | STRING | Klartextausgabe der Meldungsnummer. |
Ein-/Ausgänge
| Bezeichnung: | Datentyp: | Beschreibung: |
|---|---|---|
| _SyncDat | TB_SYNC_TYPE | Interne Parameter für den Technologiebaustein TB_SyncRot. |
