Das 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 Ausnahmezustände in einem Programmablauf 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 |
Als Grundregel werden Bewegungskommandos grundsätzlich sequentiell abgearbeitet. Alle Kommandos arbeiten in diesem Achs-Zustandsdiagramm.
Die Achse befindet sich immer in einem der definierten Zustände. Jedes Bewegungskommando, das eine Transition verursacht, ändert den Zustand der Achse und ändert als Folge daraus, 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 zielt zunächst auf Einzelachsen ab. 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 Continous 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. Nachdem der MC_Power Baustein mit Enable=TRUE aufgerufen wird, wechselt die Achse in den Zustand Standstill oder im Fehlerfall in den Zustand ErrorStop. Wenn MC_Power mit Enable=FALSE aufgerufen wird, wechselt der Zustand nach Disabled
Der Zweck des Zustands ErrorStop ist 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 Achs-Fehler und nicht auf Ausführungsfehler eines Funktionsbausteins. Achs-Fehler 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 Achs-Parametern explizit erlaubt werden. Abkoppelkommandos wie MC_GearOut sind unabhängig davon möglich.