Skip to main content

Vorausschau

Mit der Vorausschau können Informationen über die zukünftige Bewegung einer Achse abgefragt werden. Eine wichtige Anwendung der Vorausschau ist die Ermittlung der Zeit, bis eine Position erreicht wird (ähnlich der Funktion von Schaltpunkten). Eine andere Anwendung ist die Ermittlung der Position und Geschwindigkeit, die eine Achse zu einer gegebenen Zeit haben wird. Damit können Totzeiten beim Einschalten von Aktoren, wie beispielsweise das Einschalten einer Klebstoffdüse, kompensiert werden. Weiterhin können damit auch Aktoren mit Totzeit präzise angesteuert werden, wie beispielsweise die Steuerung des Klebstoffvolumens pro Zeit, abhängig von der Achsgeschwindigkeit, 100 ms in der Zukunft.

Um diese Anwendungen umzusetzen, können Sie die Bausteine SMC_GetTravelTime und SMC_ReadSetValues verwenden, nachdem Sie die Vorausschau-Dauer mit SMC_SetForecast eingestellt haben.

Ein Beispiel, das die Verwendung zeigt, finden Sie hier: Vorausschau für Einzelachsbewegungen

Bewegungsbausteine mit Vorausschau

Tabelle 39. Die folgende Übersicht zeigt, welche Bausteine eine Vorausschau unterstützen.

Funktionsbaustein

Vorausschau

MC_Home

--

MC_Stop

MC_Halt

MC_MoveAbsolute

MC_MoveRelative

MC_MoveAdditive

MC_MoveSuperimposed

MC_HaltSuperimposed

MC_MoveVelocity

SMC_MoveContinuousAbsolute

SMC_MoveContinuousRelative

MC_PositionProfile

MC_VelocityProfile

MC_AccelerationProfile

--

MC_CamIn

MC_CamOut

MC_GearIn

MC_GearOut

MC_GearInPos

SMC_FollowPosition

SMC_FollowVelocity

SMC_FollowPositionVelocity

SMC_FollowSetValues

--

SMC_SetTorque

--

MC_Phasing

MC_Jog

SMC_Inch

SMC_BacklashCompensation



Aktivierung der Vorausschau

Standardmäßig ist die Vorausschau deaktiviert. Das bedeutet, dass SMC_ReadSetValues nur für einen TimeOffset zwischen 0 s (Anfang des aktuellen Taskzyklus) und Taskinterval (Ende des aktuellen Taskzyklus) gültige Werte zurückgibt und SMC_GetTravelTime nur für Positionen, die in diesem Zyklus erreicht werden, eine gültige Zeit zurückgibt.

Die benötigte Vorausschau-Dauer kann mit dem Baustein SMC_SetForecast gesetzt und mit dem Baustein SMC_GetForecast ausgelesen werden.

Anmerkungen:

  • Die Vorausschau-Dauer kann jederzeit verändert werden.

  • Vermeiden Sie eine unnötig lange Vorausschau-Dauer, da die Vorausberechnung Rechenzeit kostet. Wählen Sie den kleinsten Wert, der für Ihre Applikation ausreicht.

  • Wenn Sie Master-/Slave-Bausteine (wie MC_CamIn) verwenden, dann muss die Vorausschau sowohl für die Master- als auch für die Slave-Achse aktiviert werden.

Aufrufreihenfolge

Damit die Vorausschau bestmögliche Ergebnisse liefert, ist es wichtig, auf eine korrekte Aufrufreihenfolge bei den Master-/Slave-Bausteinen zu achten. Das betrifft MC_CamIn, MC_GearIn, MC_GearInPos, MC_Phasing, SMC_BacklashCompensation und SMC_TrackAxis. Der Bewegungsbaustein der Master-Achse sollte vor dem Master-/Slave-Baustein aufgerufen werden.

Auch ohne Vorausschau ist die Trajektorie bei korrekter Aufrufreihenfolge besser. Bei falscher Reihenfolge wird die Slave-Bewegung um einen Zyklus verzögert.

Für MC_SetOverride gilt zusätzlich, dass dieser Baustein vor den Bewegungsbausteinen der Achse aufgerufen werden sollte. Durch eine Änderung des Override ändert sich die Bewegung der Achse noch im selben Taskzyklus. Zuvor aufgrund der Vorausschau ermittelte Werte verlieren dadurch ihre Gültigkeit. Beim nächsten Aufruf von SMC_GetTravelTime oder SMC_ReadSetValues werden sie neu ermittelt.

BufferModes

Die Vorausschau ist nicht auf eine einzelne Bewegung begrenzt, sie erstreckt sich auch auf alle folgenden Bewegungen, die mit einem Blending- oder Buffered-BufferMode kommandiert werden.

Wenn auf einer Achse eine Aborting-Bewegung ausgeführt wird, dann ändert sich dadurch die Bewegung der Achse noch in diesem Taskzyklus. Zuvor aufgrund der Vorausschau ermittelte Werte verlieren dadurch ihre Gültigkeit. Beim nächsten Aufruf von SMC_GetTravelTime oder SMC_ReadSetValues werden sie neu ermittelt.

Effektive Vorausschau / Einschränkungen

Idealerweise ist die effektiv verfügbare Vorausschau-Dauer gleich der eingestellten Vorausschau-Dauer. Es gibt jedoch einige Faktoren, die dazu führen können, dass die effektive Vorausschau kürzer ist als die eingestellte.

  • Wenn eine Master-/Slave-Bewegung ausgeführt wird, dann ist die effektive Vorausschau des Slave das Minimum der effektiven Vorausschau des Masters und der eingestellten Vorausschau des Slaves.

  • Für logische Achsen und Encoder-Achsen ist die effektive Vorausschau immer 0.

  • Wenn der aktive Bewegungsbaustein keine Vorausschau unterstützt, ist die effektive Vorausschau ebenfalls 0.

In allen anderen Fällen ist die effektive Vorausschau gleich der konfigurierten Vorausschau.