Ü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
(oderInPosition
, oderInVelocity
usw.) setzt. Über die BufferModes wird ebenfalls festgelegt, wie der Geschwindigkeitsverlauf am Übergang der Bewegungen aussehen soll.
| Standardmodus ohne Buffering. Der Funktionsbaustein startet sofort und bricht eine laufende Bewegung ab. Der Befehl wirkt sich sofort auf die Achse aus. |
| 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 ( |
| 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. |
| 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. |
| 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. |
| 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
(TypMC_BUFFER_MODE
)Ausgang
Active
: (TypBOOL
)
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 |
---|---|---|---|
| Nein | Nein | |
| Nein | Nein | |
| Nein | Nein | |
| Nein | Nein | |
| Ja | Ja |
|
| Nein | Ja (nur |
|
| Nein | Nein Für weitere Informationen siehe: Verhalten von MC_MoveSuperImposed und MC_HaltSuperImposed | |
| Ja | Ja (nur |
|
| Nein | Ja (nur |
|
| Nein | Ja (nur |
|
| Ja (nur | Ja, auch wenn periodisch (nur |
|
| Nein | Ja (nur |
|
| Ja (nur | Ja (nur |
|
| Nein | Ja (nur |
|
| Ja (nur | Ja (nur |
|
| Nein | Nein | |
| Nein | Nein | |
| Nein | Nein | |
| Nein | Nein Diese Funktionsbausteine sollten nicht verwendet werden, wenn Bewegungen mit BufferMode | |
| Nein | Nein | |
| Nein | Nein | |
| 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.