Statusmeldungen einer PTP-Achse

(Meldungen des zyklischen Achsinterface der Funktionsbausteine NC und MC_xxx)

 

Voraussetzungen

NcToPlc.nStateDword (DWORD), Variable der cyclic axis interface (zyklisches Achsinterface) Struktur zwischen NC und SPS (NcToPlc), besteht aus verschiedenen Achsstatus-Flags. Das sind unter anderem:

AxisHasJob

AxisIsMoving (Achse bewegt sich vorwärts ODER Achse bewegt sich rückwärts)

AxisIsNotMoving

AxisHasBeenStopped

AxisIsAtTargetPosition

AxisInPositionWindow

 HINWEIS:

Nur die Flags AxisInPositionWindow und AxisIsAtTargetPosition sind abhängig von den Istwerten (Istposition, Istgeschwindigkeit). Die anderen obengenannten Flags sind abhängig von den Sollwerten (Sollposition, Sollgeschwindigkeit, Sollbeschleunigung).

 

AxisHasJob zeigt den korrekten und genauen Befehlsstatus der Achse an. Der Übergang von AxisHasJob von FALSE zu TRUE zeigt an, dass die Achse einen neuen Befehl und somit auch neue Parameter empfangen hat (wie Zielposition, Geschwindigkeit, Beschleunigung oder Ruck). Die Ausführung eines Achsbefehls wird durch den Status FALSE des Flags AxisHasJob angezeigt.

 

AxisIsMoving wird TRUE, wenn der Fahrbefehl die Achse erreicht und der Sollwertgenerator aktiv ist. Wenn AxisIsMoving = TRUE ist, liegt die Sollwertgeschwindigkeit normalerweise nicht bei Null. Eine Ausnahme ist ein Geschwindigkeits-Override von 0%, der impliziert, dass die Achse einen Befehl erhalten hat und sich logisch mit der Geschwindigkeit Null bewegt (in diesem Fall sind AxisHasJob und AxisIsMoving TRUE, die Sollwertgeschwindigkeit ist Null). AxisHasJob schließt darüber hinaus die Kommunikationszeit für Anforderung und Reaktion auf den Befehl ein.

 

AxisIsNotMoving hat immer den gegenteiligen Status von AxisIsMoving. Wenn AxisIsNotMoving = TRUE ist, steht die Achse logisch (aber nicht unbedingt physisch) still.

 

AxisHasBeenStopped zeigt an, dass ein Stoppbefehl für die entsprechende Achse ausgeführt wurde. AxisHasBeenStopped wechselt auf TRUE, sobald der Stoppbefehl erteilt und ausgeführt worden ist und bleibt während der gesamten Stoppphase (solange der Stoppbefehl der Achse aktiv ist) TRUE. Er wird nur dann auf FALSE gesetzt, wenn ein neuer Befehl ausgeführt wird.

 

AxisIsAtTargetPosition ist von zwei in den globalen Parametern der entsprechenden Achse im TwinCAT System Manager spezifizierten Parametern abhängig, Target Position Window und Target Position Monitoring Time. AxisIsAtTargetPosition ist TRUE, wenn die Istposition wenigstens für die Zeitspanne der Target Position Monitoring Time innerhalb des Target Position Window liegt (und dabei nicht aus dem Target Position Window ausbricht).

HINWEIS:

Dieses Flag muss im TwinCAT System Manager in den globalen Parametern der entsprechenden Achse unter dem Namen Target Position Monitoring aktiviert werden.

 

AxisInPositionWindow ist abhängig vom Position Range Window -Parameter in den globalen Parametern der entsprechenden Achse im TwinCAT System Manager. Das Flag AxisInPositionWindow wird auf TRUE gesetzt, wenn sich die Istposition innerhalb der im Position Range Window spezifizierten Werte befindet; es wechselt auf FALSE, wenn sich der Wert der Istposition außerhalb dieses Fensters befindet.HINWEIS:

Dieses Flag muss im TwinCAT System Manager in den globalen Parametern der entsprechenden Achse unter dem Namen Position Range Monitoring aktiviert werden.

Nach der Positionierung prüfen alle ”MC_Move…”-Bausteine, ob die Positionierung erfolgreich ausgeführt wurde. Im einfachsten Fall wird das Flag „AxisHasJob“ der NC-Achse geprüft, was zunächst bedeutet, dass die Positionierung logisch ausgeführt wurde. Je nach Parametrierung der NC-Achse werden weitere Überprüfungen (Qualitätskriterien) durchgeführt:

Befindet sich die Achse logisch auf Zielposition (logischer Stillstand), aber das parametrierte Positionsfenster wurde nicht erreicht, wird die Überwachung der obengenannten NC-Rückmeldung nach einem konstanten Timeout von 6 Sekunden mit Fehler 19207 (0x4B07) abgebrochen.

 

1.1. Positionierung mit MC_MoveAbsolute, MC_MoveRelative, …

Es wurde eine normale PTP-Sequenz programmiert, um die Varianten der Meldungen in den drei verschiedenen Fällen zu zeigen (siehe unten). Diese sind abhängig von den Optionen Positionsbereichüberwachung und Zielpositionsüberwachung.

Statusmeldungen einer PTP-Achse 1:

1.2. Anhalten (Abbrechen) einer aktivierten Positionierung mit MC_Stop.

Wird eine Achse während der Achspositionierung angehalten, kommt die Achse abhängig von Geschwindigkeit und Bremsverzögerung zum Stillstand.

Statusmeldungen einer PTP-Achse 2:

1.3. NC- oder Antriebfehler (Laufzeitfehler) während der Positionierung.

Tritt während der Positionierung ein NC- oder Antriebsfehler auf, springt die Geschwindigkeit auf Null. Somit bleibt die Position konstant und es ist bis zum Reset der Achse keine weitere Operation möglich.

Statusmeldungen einer PTP-Achse 3: