MC_TableBasedPositionCompensation

MC_TableBasedPositionCompensation 1:

Mit dem Funktionsbaustein MC_TableBasedPositionCompensation erfolgt eine Korrektur der Achsposition mit einem Korrekturfaktor abhängig von der aktuellen Achsposition. Die Korrekturwerte müssen dazu in einer äquidistanten, monoton ansteigenden Tabelle abgelegt werden.

MC_TableBasedPositionCompensation 2: Eingänge

VAR_INPUT
    Enable         : BOOL;
    pTable         : POINTER To ST_PositionCompensationTableElement;
    TableSize      : UDINT;
    TableParameter : ST_PositionCompensationTableParameter;
    Ramp           : LREAL;
    DisableMode    : E_DisableMode;
    Options        : ST_PositionCompensationOptions;
END_VAR

Name

Typ

Beschreibung

Enable

BOOL

Das Kommando wird so lange ausgeführt, wie Enable aktiv ist.

pTable

POINTER To ST_PositionCompensationTableElement

Zeiger auf die Kompensationstabelle, welche ein Array des Typen St_PositionCompensationTableElement ist.

TableSize

UDINT

Größe der Kompensationstabelle

TableParameter

ST_PositionCompensationTableParameter

Datenstruktur mit zusätzlichen Parametern zur Kompensationstabelle.

Ramp

LREAL

Geschwindigkeitslimit für eingegebene Kompensation (konstante Geschwindigkeit und lineare Position als Unterprofile für die Tabellenkompensation [mm/s]).

DisableMode

E_DisableMode

Abschaltmodus:
DisableModeHold = die letzte Korrektur wird bei behalten
DisableModeReset = die Korrektur wird auf 0 gesetzt

Options

ST_PositionCompensationOptions

Optionale Parameter (nicht implementiert)

MC_TableBasedPositionCompensation 3: Ein-/Ausgänge

VAR_IN_OUT
    Axis : AXIS_REF;
END_VAR

Name

Typ

Beschreibung

Axis

AXIS_REF

Achsdatenstruktur, welche eine Achse eindeutig im System adressiert. Sie enthält unter anderem den aktuellen Status der Achse, wie Position, Geschwindigkeit oder Fehlerzustand.

MC_TableBasedPositionCompensation 4: Ausgänge

VAR_OUTPUT
    Enabled           : BOOL;
    Busy              : BOOL;
    Error             : BOOL;
    ErrorID           : UDINT;
    CurrentCorrection : LREAL;
    Limiting          : BOOL;
END_VAR

Name

Typ

Beschreibung

Enabled

BOOL

Dieser Ausgang wird TRUE, wenn die Tabellenkompensation ohne Fehler aktiviert wurde.

Busy

BOOL

Dieser Ausgang wird TRUE, wenn das Kommando mit Enable gestartet wird, und bleibt es dann so lange, wie der Funktionsbaustein das Kommando ausführt.

Error

BOOL

Dieser Ausgang wird TRUE, wenn bei der Ausführung des Kommandos ein Fehler aufgetreten ist.

ErrorID

UDINT

Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Kommandos. Der Fehlercode kann in der ADS-Fehlerdokumentation oder in der NC-Fehlerdokumentation (Fehlercodes 0x4nnn und 0x8nnn) nachgeschlagen werden.

CurrentCorrection

LREAL

Aktueller Kompensations-Wert, in der Einheit der Achse.

Limiting

BOOL

Dieser Ausgang ist TRUE, wenn der zur Position gehörende Korrekturwert noch nicht vollständig übernommen ist.

Weiterführende Informationen

Nachfolgend beispielhaft eine Positionstabelle und die dazugehörigen Tabellenparameter:

VAR_INPUT
    …
    stParameter : ST_PositionCompensationTableParameter 
                  := (MinPosition := -10.0, MaxPosition := 10.0,
                      NoOfTableElements := 21, Direction := WorkDirectionBoth);
    stPosTable  : ARRAY[0..20] OF ST_PositionCompensationTableElement 
                  := [ ( Position := -10.0, Compensation := 1.0 ),
                       ( Position :=  -9.0, Compensation := 0.9 ),
                       ( Position :=  -8.0, Compensation := 0.8 ),
                       ( Position :=  -7.0, Compensation := 0.7 ),
                       ( Position :=  -6.0, Compensation := 0.6 ),
                       ( Position :=  -5.0, Compensation := 0.5 ),
                       ( Position :=  -4.0, Compensation := 0.4 ),
                       ( Position :=  -3.0, Compensation := 0.3 ),
                       ( Position :=  -2.0, Compensation := 0.2 ),
                       ( Position :=  -1.0, Compensation := 0.1 ),
                       ( Position :=   0.0, Compensation := 0.0 ),
                       ( Position :=   1.0, Compensation := 0.1 ),
                       ( Position :=   2.0, Compensation := 0.2 ),
                       ( Position :=   3.0, Compensation := 0.3 ),
                       ( Position :=   4.0, Compensation := 0.4 ),
                       ( Position :=   5.0, Compensation := 0.5 ),
                       ( Position :=   6.0, Compensation := 0.4 ),
                       ( Position :=   7.0, Compensation := 0.3 ),
                       ( Position :=   8.0, Compensation := 0.2 ),
                       ( Position :=   9.0, Compensation := 0.1 ),
                       ( Position :=  10.0, Compensation := 0.0 )
                      ];
    …
END_VAR

Grafisch dargestellt ergibt sich mit der Tabelle folgendes Korrekturverhalten:

MC_TableBasedPositionCompensation 5:

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024

PC oder CX (x86/x64)

Tc2_MC2