Skip to main content

Übersicht

BufferMode

Einige Funktionsbausteine haben einen Eingang BufferMode, über den die zeitliche Abfolge von Bewegungen geregelt wird. Der BufferMode definiert, ob der Funktionsbaustein im nicht gepufferten Modus („Aborting“, Standardverhalten) oder im gepufferten Modus („Buffered“) arbeitet. Der Unterschied dieser zwei Modi ist der Zeitpunkt, wenn sie ihre Aktionen beginnen:

  • „Non-buffered Mode“: Der Bewegungsbefehl wirkt sofort, auch wenn dadurch eine andere Bewegung unterbrochen wird. Der Puffer der kommandierten Bewegungen wird gelöscht.

  • „Buffered Mode“: Der Bewegungsbefehl wartet, bis der aktuelle Funktionsbaustein seinen Ausgang Done (oder InPosition, oder InVelocity usw.) setzt. Über die BufferModes wird ebenfalls festgelegt, wie der Geschwindigkeitsverlauf am Übergang der Bewegungen aussehen soll.

Tabelle 38. Der Eingang BufferMode ist ein ENUM vom Typ MC_BUFFER_MODE.

Aborting

Standardmodus ohne Buffering. Der Funktionsbaustein startet sofort und bricht eine laufende Bewegung ab. Der Befehl wirkt sich sofort auf die Achse aus.

Buffered

Der Funktionsbaustein startet, sobald die letzte zuvor kommandierte Bewegung beendet wurde. Es findet kein Überblenden statt. Die neue Bewegung startet mit der Geschwindigkeit, die die vorhergehende Bewegung beim Erreichen der Endbedingung (Done, InVelocity, InEndVelocity, InGear, InSync, EndOfProfile etc.) hat. Wenn die vorhergehende Bewegung ein MC_MoveAbsolute oder MC_MoveRelative war, dann startet die neue Bewegung also im Stillstand.

BlendingLow

Der Funktionsbaustein startet, sobald die letzte zuvor kommandierte Bewegung beendet wurde. Die Achse stoppt zwischen den Bewegungen nicht, sondern durchläuft die Endposition der ersten Bewegung mit der niedrigeren Geschwindigkeit der beiden Bewegungsbefehle.

BlendingPrevious

Der Funktionsbaustein startet, sobald die letzte zuvor kommandierte Bewegung beendet wurde. Die Achse stoppt zwischen den Bewegungen nicht, sondern durchläuft die Endposition der ersten Bewegung mit der Geschwindigkeit des ersten Bewegungsbefehls.

BlendingNext

Der Funktionsbaustein startet, sobald die letzte zuvor kommandierte Bewegung beendet wurde. Die Achse stoppt zwischen den Bewegungen nicht, sondern durchläuft die Endposition der ersten Bewegung mit der Geschwindigkeit des zweiten Bewegungsbefehls.

BlendingHigh

Der Funktionsbaustein startet, sobald die letzte zuvor kommandierte Bewegung beendet wurde. Die Achse stoppt zwischen den Bewegungen nicht, sondern durchläuft die Endposition der ersten Bewegung mit der höheren Geschwindigkeit der beiden Bewegungsbefehle.



Unterstützte Funkionsbausteine

Alle Funktionsbausteine, die als Buffered/Blending-Befehle spezifiziert werden können, besitzen die folgenden Ein- und Ausgänge:

  • Eingang BufferMode (Typ MC_BUFFER_MODE)

  • Ausgang Active: (Typ BOOL)

Ein Befehl wird akzeptiert, wenn der Funktionsbaustein in den Zustand Busy übergeht, nachdem eine neue Bewegung kommandiert wurde.

Funktionsbaustein

Kann als Buffered/Blending-Befehl definiert werden

Kann von einem Buffered/Blending-Befehl gefolgt werden

Relevantes Signal zur Aktivierung des nächsten Buffered/Blending-FBs

MC_Power

Nein

Nein

MC_Home

Nein

Nein

MC_Stop

Nein

Nein

MC_Halt

Nein

Nein

MC_MoveAbsolute

MC_MoveRelative

Ja

Ja

Done

MC_MoveAdditive

Nein

Ja (nur Buffered)

Done

MC_MoveSuperImposed

MC_HaltSuperImposed

Nein

Nein

Für weitere Informationen siehe: Verhalten von MC_MoveSuperImposed und MC_HaltSuperImposed

MC_MoveVelocity

Ja

Ja (nur Buffered)

InVelocity

SMC_MoveContinuousAbsolute

SMC_MoveContinuousRelative

Nein

Ja (nur Buffered)

InEndVelocity

MC_PositionProfile

MC_VelocityProfile

MC_AccelerationProfile

Nein

Ja (nur Buffered)

Done

MC_CamIn

Ja (nur Buffered und BlendingPrevious)

Ja, auch wenn periodisch (nur Buffered)

EndOfProfile

MC_CamOut

Nein

Ja (nur Buffered)

Done

MC_GearIn

Ja (nur BlendingPrevious)

Ja (nur Buffered)

InGear

MC_GearOut

Nein

Ja (nur Buffered)

Done

MC_GearInPos

Ja (nur BlendingPrevious)

Ja (nur Buffered)

InSync

SMC_FollowPosition

SMC_FollowVelocity

SMC_FollowPositionVelocity

SMC_FollowSetValues

Nein

Nein

SMC_SetTorque

Nein

Nein

MC_Phasing

Nein

Nein

MC_Jog

SMC_Inch

Nein

Nein

Diese Funktionsbausteine sollten nicht verwendet werden, wenn Bewegungen mit BufferMode Buffered oder Blending* kommandiert werden. Jogging und die kommandierten Bewegungen können sich gegenseitig unterbrechen.

SMC_BacklashCompensation

Nein

Nein

SMC_TrackAxis

Nein

Nein

SMC_TrackSetValues

Nein

Nein

Hinweis für MC_GearInPos und MC_GearIn: Das Verhalten von anderen BufferModes als BlendingPrevious ist schwer festzulegen. Das Hauptproblem besteht darin, dass sich die Geschwindigkeit dieser Funktionsbausteine in Abhängigkeit von der Masterachse jederzeit ändern kann. Da das Überschleifen am besten funktioniert, wenn die Blending-Geschwindigkeit so früh wie möglich bekannt ist, wird nur BlendingPrevious unterstützt.

Bei BlendingPrevious kann sich auch die Richtung der Masterachse jederzeit ändern. Das bedeutet, dass die Richtung, die die Slave-Achse beim MC_GearInPos haben sollte, erst bekannt ist, wenn das Blending abgeschlossen ist. Wir benötigen aber für die Blending-Bewegung eine Richtung bereits wenn das Blending beginnt. Deshalb definiert die erste Bewegung sowohl die Blending-Geschwindigkeit als auch die Richtung, ungeachtet der Richtung, die der nachfolgende MC_GearIn(Pos) definiert.