Skip to main content

Bahnschaltpunkte

Bahnschaltpunkte können dafür verwendet werden, Aktionen wie das Einschalten eines Werkzeugs beim Erreichen einer definierten Position auf der Bahn, oder zeitversetzt davor oder danach, auszuführen. Dafür bietet CODESYS SoftMotion die Möglichkeit, Bahnschaltpunkte auf Bewegungen zu konfigurieren und im Anschluss kontinuierlich die Restdauer bis zum Erreichen der Position auszulesen.

Bei Bahnschaltpunkten ist folgendes zu beachten:

  • Die Zeit bis zum Erreichen eines Bahnschaltpunktes kann erst abgefragt werden, wenn sich die Achsgruppe dem Bahnschaltpunkt bis auf eine konfigurierbare zeitliche Vorausschau genähert hat. Wie diese Vorausschau konfiguriert wird und welche Auswirkungen die Einstellungen haben, wird im Abschnitt Konfigurieren der Applikation für die Verwendung von Bahnschaltpunkten erläutert.

  • Die Trajektorie wird durch die Verwendung von Bahnschaltpunkten nicht verändert. Insbesondere wird die Trajektorie nicht verlangsamt, um die konfigurierte Vorausschau einzuhalten. Wenn beispielsweise die Position eines Bahnschaltpunkts am Anfang einer Bewegung schon nach 0.01 Sekunden erreicht wird, dann kann auch durch eine höhere Vorausschau nicht erreicht werden, dass mehr als 0.01 Sekunden vorher über das Erreichen informiert wird.

Für weitere Informationen siehe Beispiele Bahnschaltpunkte 1: Einfaches Beispiel und Bahnschaltpunkte 2: Beispiel Klebeprozess.

Konfigurieren der Applikation für die Verwendung von Bahnschaltpunkten

Konfiguration der zeitlichen Vorausschau

Die zeitliche Vorausschau bestimmt, wie weit in die Zukunft geplant wird. Dies wird über den Parameter fPlanningForecastDuration des Bausteins SMC_TuneCPKernel eingestellt. Wie dieser Parameter eingestellt werden soll, hängt von den Anforderungen der Applikation ab. Dabei gibt es zwei prinzipiell gegensätzliche Anforderungen:

  1. Eine möglichst weite zeitliche Vorausschau

  2. Eine möglichst geringe Latenz. Die Latenz beim Losfahren steigt, weil die Vorausschau zunächst aufgebaut werden muss. Die Größe dieser zusätzlichen Latenz hängt im Wesentlichen von der Performance der verwendeten Steuerung ab und ist im Allgemeinen sehr viel niedriger als die konfigurierte Vorausschau. Außerdem vergrößert sich die Latenz, bis die Achsgruppe auf Aborting-Bewegungen und Interrupts reagiert, um die konfigurierte Vorausschau. Die Vorausschau hat keine Auswirkungen auf MC_GroupHalt und MC_GroupStop. Beide Funktionsbausteine wirken immer unmittelbar und unabhängig von der konfigurierten Vorausschau.

Der Parameter fPlanningForecastDuration des Bausteins SMC_TuneCPKernel sollte deshalb so hoch wie nötig, aber so niedrig wie möglich eingestellt werden. Wenn keine Vorausschau benötigt wird, kann der Parameter auf dem Standardwert 0 belassen werden.

Die tatsächlich verfügbare Vorausschau kann aus unterschiedlichen Gründen von der konfigurierten abweichen, beispielsweise wenn das Ende der letzten Bewegung schon nahezu erreicht ist. Die aktuell verfügbare Vorausschau kann über den Ausgang CurrentPlanningForecast von MC_GroupReadStatus überwacht werden.

Konfiguration der maximalen Anzahl an Bahnschaltpunkten pro Bewegung

Im Auslieferungszustand unterstützt CODESYS SoftMotion bis zu 8 Bahnschaltpunkte pro Bewegung. Wenn diese Anzahl nicht ausreichen sollte, kann der Parameter MAX_NUM_TRIGGERS_PER_MOVEMENT als Bibliotheksparameter verändert werden. Dies ist möglich über den Bibliotheksverwalter und den dazugehörigen Editor für die Bibliotheksparameter. Für die Verwendung von Bibliotheksparametern wird eine CODESYS-Version >= SP19 empfohlen.

Kommandieren und Auswerten von Bahnschaltpunkten

Für die Kommandierung von Bahnschaltpunkten stehen zwei Bausteine zur Verfügung: SMC_GroupPrepareTrigger  und SMC_GroupReadTrigger.

Bahnschaltpunkte werden einer Bewegung zugeordnet. Jeder einzelne Bahnschaltpunkt muss mithilfe des Bausteins SMC_GroupPrepareTrigger vorbereitet werden. Die Position kann relativ, absolut oder als Schnittpunkt mit einer Ebene angegeben werden (siehe SMC_TriggerPositionType). Die Aufrufreihenfolge von SMC_GroupPrepareTrigger und der dazugehörigen Bewegung ist von besonderer Bedeutung, da die vorbereiteten Bahnschaltpunkte der nächsten im selben Zyklus kommandierten Bewegung zugewiesen werden. Deswegen muss in jeder Applikation auf zwei Punkte geachtet werden:

  1. SMC_GroupPrepareTrigger muss immer vor dem Bewegungsbaustein aufgerufen werden

  2. Bahnschaltpunkte und die dazugehörige Bewegung müssen immer im selben Zyklus kommandiert werden. Wenn im Zyklus keine Bewegung gestartet wird, werden die vorbereiteten Bahnschaltpunkte verworfen und der Ausgang CommandAborted der Funktionsbausteine SMC_GroupPrepareTrigger gesetzt.

Wenn der Bahnschaltpunkt einer Bewegung zugeordnet ist, können Informationen zu einem Bahnschaltpunkt mithilfe von SMC_GroupReadTrigger abgefragt werden. Sobald der Bahnschaltpunkt innerhalb der verfügbaren zeitlichen Vorausschau liegt, wechselt der Status auf SMC_TRIGGER_STATUS.Active und die Zeit bis zum Erreichen des Bahnschaltpunktes kann ausgelesen werden. Die Zeit bezieht sich immer auf den Startzeitpunkt des aktuellen Zyklus. Abhängig davon, wann der Bahnschaltpunkt auslösen soll (vor, bei oder nach Erreichen der Position), kann in der Applikation in einem passenden Zyklus die gewünschte Aktion ausgeführt werden.

Bahnschaltpunkte können nicht mehr entfernt werden, sobald sie einer Bewegung zugewiesen worden sind. Sie können aber einfach ignoriert werden.

Wenn eine Bewegung durch eine zweite Bewegung mit MC_BUFFER_MODE.Aborting abgebrochen wird, verschwinden auch die der ersten Bewegung zugewiesenen Bahnschaltpunkte.

Bahnschaltpunkte bei Bewegungen mit Überschleifen

Bei Bewegungen mit Puffern und Überschleifen von Bewegungen werden die Bahnschaltpunkte auf die resultierende Bahn projiziert. Das nachfolgende Bild zeigt qualitativ einen Fall, bei dem eine Bewegung von P1 zu P2 sowie eine Folgebewegung jeweils mit Überschleifen kommandiert wurden. Das Überschleifen zur ersten Bewegung endet an Punkt B, das Überschleifen zur Folgebewegung startet an Punkt A. Zwischen P1 und B liegt der blaue Bahnschaltpunkt. Dieser wird auf die hintere Hälfte der ersten Überschleifbewegung projiziert (hervorgehoben durch die blaue Linie). Genauso wird der rote Bahnschaltpunkt, der zwischen A und P2 liegt, auf die vordere Hälfte der zweiten Überschleifbewegung projiziert (hervorgehoben durch die rote Linie). Der grüne Bahnschaltpunkt liegt außerhalb der Überschleifbereiche und wird nicht verschoben.

_sm_img_digital_switches.png

Beim Überschleifen mit Bahnschaltpunkten gibt es eine Besonderheit, was den Status der Bewegung und der zugehörigen Bahnschaltpunkte betrifft. Der Kommandobaustein zur Bewegung von P1 zu P2 meldet Done, sobald Punkt A erreicht ist. Der rote Bahnschaltpunkt, der zu dieser Bewegung gehört, bleibt aber weiterhin aktiv, bis die Position auf dem Überschleifelement erreicht ist, auf die er projiziert wurde.