Zustandsdiagramm
Das folgende Zustandsdiagramm definiert das Verhalten einer Achse für den Fall, dass mehrere Funktionsbausteine für diese Achse gleichzeitig aktiv sind. Die Kombination mehrerer Funktionsbausteine ist nützlich, um komplexere Bewegungsprofile zu erzeugen oder um in einem Programmablauf Ausnahmezustände zu behandeln.
Note 1 | Aus irgendeinem Zustand, in dem ein Fehler auftritt |
Note 2 | Aus irgendeinem Zustand, wenn MC_Power.Enable = FALSE und die Achse hat keinen Fehler |
Note 3 | MC_Reset und MC_Power.Status = FALSE |
Note 4 | MC_Reset und MC_Power.Status = TRUE und MC_Power.Enable = TRUE |
Note 5 | MC_Power.Status = TRUE und MC_Power.Enable = TRUE |
Note 6 | MC_Stop.Done = TRUE und MC_Stop.Execute = FALSE |
Bewegungskommandos werden grundsätzlich sequentiell abgearbeitet. Alle Kommandos arbeiten in dem beschriebenen Zustandsdiagramm.
Die Achse befindet sich immer in einem der definierten Zustände. Jedes Bewegungskommando, das eine Transition verursacht, ändert den Zustand der Achse und damit das Bewegungsprofil. Das Zustandsdiagramm ist eine Abstraktionsebene, die den realen Zustand der Achse, vergleichbar zum Prozessabbild von E/A-Punkten, wiederspiegelt. Der Zustand der Achse wechselt sofort mit dem auslösenden Kommando.
Das Zustandsdiagramm bezieht sich auf Einzelachsen. Multi-Achsbausteine, wie MC_CamIn oder MC_GearIn, beeinflussen die Zustände mehrerer Achsen, die jedoch immer auf einen Einzelachszustand der beteiligten Achsen zurückgeführt werden können. Beispielsweise kann ein Kurvenscheiben-Master im Zustand „Continuous Motion“ und der zugehörige Slave im Zustand „Synchronized Motion“ sein. Das Ankoppeln eines Slaves hat keinen Einfluss auf den Zustand des Masters.
Der Zustand „Disabled“ beschreibt den Grundzustand einer Achse. In diesem Zustand kann die Achse durch keinen Funktionsbaustein bewegt werden. Wenn der Funktionsbaustein MC_Power mit Enable = TRUE aufgerufen wird, wechselt die Achse in den Zustand „Standstill“ oder im Fehlerfall in den Zustand „ErrorStop“. Wenn der Funktionsbaustein MC_Power mit Enable = FALSE aufgerufen wird, wechselt der Zustand nach „Disabled“.
Zweck des Zustands „ErrorStop“ ist es, die Achse zu stoppen und anschließend keine weiteren Kommandos anzunehmen, bis ein Reset ausgelöst wurde. Der Zustandsübergang „Error“ bezieht sich nur auf tatsächliche Achsfehler und nicht auf Ausführungsfehler eines Funktionsbausteins. Achsfehler können aber auch am Fehlerausgang eines Funktionsbausteins angezeigt werden.
Funktionsbausteine, die im Zustandsdiagramm nicht aufgeführt werden, beeinflussen den Zustand der Achse nicht (MC_ReadStatus, MC_ReadAxisError, MC_ReadParameter, MC_ReadBoolParameter, MC_WriteParameter, MC_WriteBoolParameter, MC_ReadActualPosition und MC_CamTableSelect).
Der Zustand „Stopping“ zeigt an, dass sich die Achse in einer Stopprampe befindet. Der Zustand wechselt nach dem vollständigen Stopp nach „Standstill“.
Bewegungskommandos wie MC_MoveAbsolute, die aus dem Zustand „Synchronized Motion“ herausführen, sind nur dann möglich, wenn sie in den Achsparametern explizit erlaubt werden. Abkoppelkommandos wie MC_GearOut sind unabhängig davon möglich.