MC_TableBasedPositionCompensation
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.
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 | 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: |
Options | ST_PositionCompensationOptions | Optionale Parameter (nicht implementiert) |
Ein-/Ausgänge
VAR_IN_OUT
Axis : AXIS_REF;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Axis | Achsdatenstruktur, welche eine Achse eindeutig im System adressiert. Sie enthält unter anderem den aktuellen Status der Achse, wie Position, Geschwindigkeit oder Fehlerzustand. |
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:

Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4024 | PC oder CX (x86/x64) | Tc2_MC2 |