Der Datentyp Axis_Ref ist ein Alias der Schnittstelle IF_Axis der MotionInterface-Bibliothek. Detaillierte Informationen finden Sie im MotionInterface-Bibliothekshandbuch.
Der Datentyp MC_AxisDirection ist ein Alias der Enumeration ET_AxisDirection der Bibliothek MotionInterface. Detaillierte Informationen finden Sie im MotionInterface-Bibliothekshandbuch.
Der Datentyp definiert die Methode für den Start einer neuen/gepufferten Bewegung im Hinblick auf die laufende Bewegung.
Name |
Wert |
Beschreibung |
---|---|---|
Aborting |
0 |
Die laufende Bewegung wird abgebrochen, und die neue Bewegung wird sofort im nächstmöglichen Echtzeitzyklus ausgeführt. |
Buffered |
1 |
Die neue/gepufferte Bewegung wird ausgeführt, sobald die laufende Bewegung ihren stabilen Zustand erreicht hat. Je nach laufender Bewegung entspricht dies dem Funktionsbausteinausgang Done, InVelocity, InSync oder EndOfProfile. Der gepufferte Auftrag wird sofort im Echtzeitzyklus aktiv, sobald der vorherige Auftrag seinen stabilen Zustand erreicht hat. Es wird nicht gewartet, bis die Ausgänge anschließend im nächsten Anwendungstaskzyklus TRUE werden. |
BlendingLow(1) |
2 |
Die neue/gepufferte Bewegung wird ausgeführt, sobald die laufende Bewegung beendet wurde, jedoch ohne dazwischen eingetretenen Stillstand. Der Übergang erfolgt mit dem niedrigeren der beiden Geschwindigkeitswerte der laufenden Bewegung und der neuen/gepufferten Bewegung. |
BlendingPrevious(1) |
3 |
Die neue/gepufferte Bewegung wird ausgeführt, sobald die laufende Bewegung beendet wurde, jedoch ohne dazwischen eingetretenen Stillstand. Der Übergang erfolgt mit dem Geschwindigkeitswert der laufenden Bewegung. |
BlendingNext(1) |
4 |
Die neue/gepufferte Bewegung wird ausgeführt, sobald die laufende Bewegung beendet wurde, jedoch ohne dazwischen eingetretenen Stillstand. Der Übergang erfolgt mit dem Geschwindigkeitswert der neuen/gepufferten Bewegung. |
BlendingHigh(1) |
5 |
Die neue/gepufferte Bewegung wird ausgeführt, sobald die laufende Bewegung beendet wurde, jedoch ohne dazwischen eingetretenen Stillstand. Der Übergang erfolgt mit dem höheren der beiden Geschwindigkeitswerte der laufenden Bewegung und der neuen/gepufferten Bewegung. |
StartAtMasterposition(1) |
6 |
Bereitgestellt für die Pufferung einer Kurve, die an einer bestimmten Master-Position über MC_CamIn gestartet werden soll. |
(1) Nur die Funktionsbausteine MC_MoveVelocity, MC_MoveAbsolute, MC_MoveAdditive und MC_MoveRelative |
Die folgende Tabelle enthält nähere Informationen dazu, wie die Pufferung (MC_BufferMode.Buffered) für verschiedene Funktionsbausteine funktioniert:
Funktionsbaustein |
Die Bewegung des Funktionsbausteins kann als gepufferte Bewegung angegeben werden. |
Auf die Bewegung des Funktionsbausteins kann eine gepufferte Bewegung folgen. |
Bedingung, damit der gepufferte Befehl aktiv wird. |
---|---|---|---|
MC_Power |
Nein |
Nein (1) |
- MC_Power ist kein Bewegungsfunktionsbaustein. |
MC_MoveVelocity |
Ja |
Ja |
InVelocity |
MC_MoveAbsolute |
Ja |
Ja |
Done |
MC_MoveAdditive |
Ja |
Ja |
Done |
MC_MoveRelative |
Ja |
Ja |
Done |
MC_Home |
Nein |
Nein |
Keine |
MC_Stop |
Nein |
Ja |
Done und Eingang Execute auf FALSE gesetzt. |
MC_Halt |
Ja |
Ja |
Done |
MC_CamIn |
Ja |
Ja(1) |
EndOfProfile unabhängig davon, ob der Eingang Periodic auf TRUE oder auf FALSE gesetzt ist. |
MC_GearIn |
Nein |
Ja |
InGear |
MC_PhasingAbsolute |
Nein |
Nein |
- |
MC_MoveSuperImposed |
Nein |
Nein |
- |
MC_CustomJob |
Ja |
Ja |
InSteadyState |
(1) Abweichend von den Spezifikationen nach PLCopen Motion Control Part 1, Version 2.0. |
Die Steuerung führt die Benutzeranwendungstask (in der Funktionsbausteine der Bewegungssteuerung aufgerufen werden) in einer Task aus, die vom Echtzeit-Bewegungsprozess getrennt ist (bei der beispielsweise zyklische Referenz- und Zielwerte berechnet werden). Um einen Funktionsbaustein im selben Sercos-Zyklus zu starten, in dem der aktive Funktionsbaustein seinen stabilen Zustand erreicht (Done, inVelocity, EndOfProfile, InGear), muss der Funktionsbaustein vorzeitig gepuffert werden. Wenn Sie den Start (Execute) des nachfolgenden Funktionsbausteins z. B. über das EndOfProfile-Signal des vorhergehenden Funktionsbausteins auslösen, statt ihn zu puffern, ergeben sich ein oder mehrere Verzögerungszyklen, in denen kein Funktionsbaustein aktiv ist und die Achse im Stillstand bleibt. Nähere Informationen finden Sie unter Task-Konzept.
Der Datentyp MC_CamSwitch ist ein Alias der Struktur ST_CamSwitch der MotionInterface-Bibliothek. Detaillierte Informationen finden Sie im MotionInterface-Bibliothekshandbuch.
Der Datentyp MC_CamSwitchMode ist ein Alias der Enumeration ET_CamSwitchMode der MotionInterface-Bibliothek. Detaillierte Informationen finden Sie im MotionInterface-Bibliothekshandbuch.
Der Datentyp MC_CamSwitch_Ref ist ein Alias der Struktur ST_CamSwitch_Ref der MotionInterface-Bibliothek. Detaillierte Informationen finden Sie im MotionInterface-Bibliothekshandbuch.
Der Datentyp MC_CAM_ID ist ein Alias der Struktur ST_MultiCam der CommonMotionTypes-Bibliothek. Detaillierte Informationen finden Sie im CommonMotionTypes-Bibliothekshandbuch.
Der Datentyp bestimmt die Richtung der Bewegung.
Bei MC_MoveVelocity und MC_MoveRelative kehrt die Richtung die Bewegungsrichtung um (durch Umkehren des Vorzeichens der Geschwindigkeit oder Distanz). Dies ist unabhängig von Achstyp (Modulo oder linear).
Für MC_MoveAbsolute und die Rampenfunktionalität (Ramp-in) von MC_CamIn gibt der Richtungseingang die Richtung an, in der die absolute Zielposition angefahren wird. Bei diesen Funktionsbausteinen wird die Richtung nur für Modulo-Achsen berücksichtigt. Sie wird für lineare Achsen ignoriert (da absolute Positionen auf Linearachsen in der einzig mathematisch möglichen Richtung angefahren werden).
Name |
Wert |
Beschreibung |
---|---|---|
PositiveDirection |
0 |
Positive Bewegungsrichtung |
NegativeDirection |
1 |
Negative Bewegungsrichtung |
ShortestWay(1) |
2 |
Die Bewegungsrichtung hängt davon ab, ob die positive oder die negative Bewegungsrichtung den kürzesten Abstand zur Zielposition hat. |
(1) Nur die Funktionsbausteine MC_MoveAbsolute und MC_CamIn. |
Der Datentyp MC_Interpolation_Mode ist ein Alias der Enumeration ET_InterpolationMode der MotionInterface-Bibliothek. Detaillierte Informationen finden Sie im MotionInterface-Bibliothekshandbuch.
Der Datentyp MC_Interpolation_Parameter ist ein Alias der Struktur ST_Interpolation_Parameter der MotionInterface-Bibliothek. Detaillierte Informationen finden Sie im MotionInterface-Bibliothekshandbuch.
Name |
Wert |
Beschreibung |
---|---|---|
Absolute |
0 |
Die Kurve beginnt bei der X-Koordinate, die der absoluten Position der Master-Achse zum Zeitpunkt des Starts entspricht. |
Relative |
1 |
Die Kurve beginnt bei der X-Koordinate, die dem X des ersten Kurvenpunkts entspricht, der vermutlich mit der Position der Master-Achse zum Zeitpunkt des Starts korreliert. |
Der Datentyp MC_OperationMode legt die Betriebsart für den Funktionsbaustein MC_MoveVelocity über den Eingang OperationMode fest.
Name |
Wert |
Beschreibung |
---|---|---|
Position |
0 |
Geschwindigkeitskontrolle mit aktivem Lageregelkreis im Antrieb (zyklisch synchrone Position). |
Velocity |
1 |
Zyklisch synchrone Geschwindigkeit, reine Geschwindigkeitskontrolle. |
Der Wert Position führt eine Bewegung mit der am Eingang Velocity des Funktionsbausteins MC_MoveVelocity festgelegten Geschwindigkeit aus. In dieser Betriebsart bleibt der Lageregelkreis des Antriebs aktiv (Cyclic Synchronous Position). Dies ist die standardmäßige Betriebsart für den Funktionsbaustein MC_MoveVelocity.
Der Wert Velocity aktiviert die Betriebsart Cyclic Synchronous Velocity. In dieser Betriebsart ist der Lageregelkreis des Antriebs nicht aktiv (reine Geschwindigkeitskontrolle).
Die Betriebsart Cyclic Synchronous Velocity wird gestartet, wenn der Wert am Eingang OperationMode des Funktionsbausteins MC_MoveVelocity = Velocity und der Wert am Eingang Execute von FALSE zu TRUE wechselt.
Das Kontrollkästchen VelocityOperationMode auf der Registerkarte „Funktionskonfiguration“ muss aktiviert werden, um die Betriebsart Cyclic Synchronous Velocity zu aktivieren.
Das Ausführen von MC_MoveVelocity mit der Betriebsart Cyclic Synchronous Velocity für eine Achse, deren Antrieb diese Betriebsart nicht unterstützt oder für die diese nicht aktiviert wurde, führt zu einem festgestellten Fehler durch MC_MoveVelocity, ohne das Verhalten der Achse zu beeinträchtigen.
Wenn die aktive Betriebsart Cyclic Synchronous Velocity ist und die Funktionsbausteine MC_Stop oder MC_Halt ausgeführt werden oder ein Fehler erkannt wurde, der zu einem Wechsel in den Betriebszustand ErrorStop führt, dann bleibt die Betriebsart Cyclic Synchronous Velocity aktiv.
Wenn versucht wird, einen Bewegungsfunktionsstein (z. B. MC_MoveAbsolute) zu starten, während MC_MoveVelocity in der Betriebsart Cyclic Synchronous Velocity ausgeführt wird, dann wird dieser Bewegungsfunktionsbaustein nicht ausgeführt und dessen Ausgang Error wird auf TRUE gesetzt. MC_MoveVelocity wird weiterhin in der Betriebsart Cyclic Synchronous Velocity ausgeführt.
Um von der Betriebsart Cyclic Synchronous Velocity in eine andere Betriebsart zu wechseln, muss die Achse mit dem Funktionsbaustein MC_Stop oder MC_Halt angehalten werden. Wird ein anderer Bewegungsfunktionsbaustein als MC_MoveVelocity ausgeführt, wechselt die Betriebsart von Cyclic Synchronous Velocity in die von diesem Funktionsbaustein verwendete Betriebsart. Wenn Sie beispielsweise von der Betriebsart Cyclic Synchronous Velocity in die Betriebsart Cyclic Synchronous Position wechseln möchten, ohne eine Bewegung zu starten, dann können Sie den Funktionsbaustein MC_MoveRelative mit einem Abstand von 0 ausführen. Wenn Sie von der Betriebsart Cyclic Synchronous Velocity in eine andere Betriebsart wechseln möchten, ohne einen Bewegungsfunktionsbaustein auszuführen, dann müssen Sie die Endstufe des Antriebs über den Funktionsbaustein MC_Power deaktivieren und anschließend erneut aktivierten.
Wenn die angeforderte Betriebsart vom Antrieb nicht innerhalb von 30 Sercos-Zyklen bestätigt wird, dann wird ein Fehler festgestellt (Ausgang Error des anfragenden Funktionsbausteins wird auf TRUE gesetzt).
Name |
Wert |
Beschreibung |
---|---|---|
Absolute |
0 |
Zum Starten der Kurve wird die Position der Slave-Achse direkt auf den ersten berechneten Y-Wert gesetzt. Die Position der Slave-Achse wird auf der Grundlage der Kurvendefinition und ausgehend vom „Master aus der Sicht des Slaves“ berechnet. Im Gegensatz zu den Slave-Startmodi Relative und RampIn gibt es keine Offsets und überlagerten Bewegungen. Die Referenzgeschwindigkeit und die Beschleunigung werden basierend auf der Kurvendefinition berechnet. Wenn eine Positionsdifferenz zwischen der Position des Slaves und seiner berechneten Startposition (Y-Wert) für die Kurve besteht, und wenn diese Startposition nicht innerhalb eines Taskzyklus erreicht werden kann, wird ein Fehler erkannt. Kann diese Startposition jedoch trotz der Positionsdifferenz erreicht werden, erfolgt die Bewegung möglicherweise als plötzlicher Positionssprung. |
Relative |
1 |
Die Kurve beginnt bei der Y-Koordinate, die durch f(X-Start) definiert ist, wobei f() die Kurvenfunktion ist und der X-Start durch den Master-Startmodus bestimmt wird (MC_Master_Start_Mode). Diese Y-Koordinate ist mit der aktuellen Position der Slave-Achse korreliert. |
RampIn |
2 |
Es wird davon ausgegangen, dass die absolute Position der Slave-Achse gleich der Y-Koordinate der Kurve sein soll, damit die Kurve synchron ist.. Zu Beginn startet die Kurve wie ein relativer Slave, d. h. f(X-Start) wird beim Start der Kurve mit der absoluten Position der Slave-Achse korreliert. Anschließend wird eine Rampenbewegung (Ramp-In) durchgeführt, die die Slave-Achse versetzt, um das Koordinatensystem der Achsposition mit dem Koordinatensystem von Y auszurichten. |
WARNUNG | |
---|---|
Der Datentyp MC_Track_Ref ist ein Alias der Struktur ST_Track_Ref der MotionInterface-Bibliothek. Detaillierte Informationen finden Sie im MotionInterface-Bibliothekshandbuch.
MC_Trigger_Ref ist ein Alias von DAL.IF_Trigger. Dies ist ein Eingangstyp für MC_TouchProbe und MC_AbortTrigger, um die Funktionsbausteine mit den entsprechenden TouchProbe-Eingängen zu verbinden, ähnlich wie Axis_Ref.
Die Schnittstelle MC_Trigger_Ref/DAL.IF_Trigger stellt eine CaptureEdge-Eigenschaft des Typs UINT zur Verfügung, die einen Wert zwischen 0 und 2 haben kann.
Name |
Wert |
Beschreibung |
---|---|---|
FallingEdge |
0 |
Fallende Flanke |
RisingEdge |
1 |
Steigende Flanke |
BothEdges |
2 |
Beide Flanken, steigend und fallend |
VAR
fb_MC_TriggerRef: PLCO.MC_Trigger_Ref;
fb_MC_Touchprobe : PLCO.MC_TouchProbe;
END_VAR
fb_MC_TriggerRef := DRV_Lexium32S.triggerCap1;
fb_MC_TriggerRef.CaptureEdge := MOIN.ET_CaptureEdge.RisingEdge;
fb_MC_Touchprobe(Axis := DRV_Lexium32S.Axis, ifTrigger := fb_MC_TriggerRef);