MC_MoveModulo

MC_MoveModulo 1:

Mit dem Funktionsbaustein MC_MoveModulo wird eine Positionierung durchgeführt, die sich auf die Moduloposition einer Achse bezieht. Grundlage für eine Moduloumdrehung ist dabei der einstellbare Achsparameter Modulofaktor (z. B. 360). Abhängig vom Direction Eingang werden drei mögliche Starttypen unterschieden.

  • Positionierung in positive Richtung
  • Positionierung in negative Richtung
  • Positionierung auf kürzestem Weg

Sonderfälle: Besonders zu beachten ist das Verhalten bei Anforderung einer oder mehrerer vollständiger Moduloumdrehungen. Befindet sich die Achse auf einer exakten Sollposition von beispielsweise 90 Grad und wird sie auf 90 Grad positioniert, so wird keine Bewegung ausgeführt. Bei Anforderung von 450 Grad in positiver Richtung fährt sie eine Umdrehung. Nach einem Achsreset kann das Verhalten anders sein, weil durch den Reset die aktuelle Istposition in die Sollposition übernommen wird. Damit steht die Achse nicht mehr exakt bei 90 Grad, sondern ein wenig darunter oder darüber. In diesen beiden Fällen wird entweder nur eine minimale Positionierung auf 90 Grad oder aber eine ganze Umdrehung ausgeführt. Auf dieses Problematik wird in den Erläuterungen näher eingegangen.

Je nach Anwendungsfall kann es für volle Moduloumdrehungen günstiger sein, die gewünschte Zielposition auf Grund der aktuellen absoluten Position zu berechnen und mit dem Baustein MC_MoveAbsolute zu positionieren.

Hinweis: Die Modulopositionierung ebenso wie die Absolutpositionierung steht für alle Achsen unabhängig von der Modulo Einstellung im TwinCAT SystemManager zur Verfügung. Für jede Achse kann die aktuelle Absolutposition fPosSoll aus dem zyklischen Achsinterface NCTOPLC_AXLESTRUCT ausgelesen werden.

Wichtig: Nähere Erläuterungen zu Modulo Bewegungen

VAR_INPUT

VAR_INPUT
    Execute       : BOOL;
    Position      : LREAL;
    Velocity      : LREAL;
    Acceleration  : LREAL;
    Deceleration  : LREAL;
    Jerk          : LREAL;
    Direction     : MC_Direction;
END_VAR

Execute : Mit der steigenden Flanke wird das Kommando ausgeführt. 

Position : Absolute Modulozielposition auf die positioniert werden soll.

Die Zielposition muss für den Modulo-Starttypen MC_Shortest_Way (Direction) kleiner als die im TwinCAT SystemManager eingestellte Modulo-Periode sein (z. B. 0 ≤ Position < 360°). Für andere Starttypen sind auch größere Positionen erlaubt, die dann zu ein oder mehreren Umdrehungen führen bevor das Ziel angefahren wird.

Velocity : Maximale Geschwindigkeit mit der gefahren werden soll (>0).

Acceleration : Beschleunigung (≥0). Bei einem Wert von 0 wirkt die Standardbeschleunigung aus der Achskonfiguration im System Manager

Deceleration : Verzögerung (≥0). Bei einem Wert von 0 wirkt die Standardverzögerung aus der Achskonfiguration im System Manager

Jerk : Ruck (≥0). Bei einem Wert von 0 wirkt die Standardruck aus der Achskonfiguration im System Manager

Direction : Positionierrichtung MC_Direction (positive Richtung, negative Richtung, auf kürzestem Weg)

VAR_OUTPUT

VAR_OUTPUT
    Done           : BOOL;
    CommandAborted : BOOL;
    Error          : BOOL;
    ErrorID        : UDINT;
END_VAR

Done : Wird TRUE, wenn die Positionierung abgeschlossen ist.
Das Done Signal wird frühestens nach Ende der logischen Sollwert-Positionierung gesetzt (Sollwertgenerator, HasJob-Flag). Abhängig von eingeschalteten Überwachungsfunktionen, wie der Zielpositionsüberwachung, wird Done erst gesetzt, wenn sich auch die Ist-Position in einem definierten Zielpositionsfenster befindet (Lageregelfehler). Siehe auch im Anhang.

CommandAborted : Wird TRUE, wenn das Kommando nicht vollständig ausgeführt werden konnte. Der Grund kann ein Stopp oder ein überlagerter Fahrbefehl sein.

Error : Wird TRUE, sobald ein Fehler eintritt.

ErrorID : Liefert bei einem gesetzten Error-Ausgang die  Fehlernummer.

VAR_IN_OUT

VAR_IN_OUT
    Axis : NCTOPLC_AXLESTRUCT;
END_VAR

Axis : Achsstruktur.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.8

PC (i386)

TcMC.Lib