XFC_PositionAtTime

XFC_PositionAtTime 1:

Der Funktionsbaustein XFC_PositionAtTime berechnet eine Achsposition, welche zu einer gegebenen Zeit gültig sein wird, bzw. gültig gewesen ist.

Die Funktion extrapoliert die Position bezogen auf die aktuelle Position und Dynamik. Eine genaue Extrapolation ist nur über einen kurzen Zeitraum möglich, da sich die Dynamik der Achse ändern kann.

Der Funktionsbaustein benötigt genau einen Aufruf, um das Ergebnis bereitzustellen. Er kann also ähnlich wie eine Funktion verwendet werden, gibt aber neben der Position eventuell auch einen Fehler zurück. Dieser Fehler muss ausgewertet werden, um sicherzustellen, dass die berechnete Position gültig ist.

XFC_PositionAtTime 2: Eingänge

VAR_INPUT
    DcTime  : T_DCTIME32; 
    Options : ST_NcTimeConversionOptions;
END_VAR

Name

Typ

Beschreibung

DcTime

T_DCTIME32

Distributed Clock System Time.

Enthält die unteren 32 Bit der vollständigen DcTime und deckt damit einen Zeitbereich von +/- 2 Sekunden um den aktuellen Zeitpunkt ab. Um einen möglichst genauen Positionswert zu berechnen, sollte die Zeit sehr nahe an der aktuellen Zeit liegen, also möglichst nur wenige SPS- bzw. NC-Zyklen in der Zukunft oder in der Vergangenheit.

Options

 

ST_NcTimeConversionOptions

Datenstruktur mit Optionen für die Extrapolation der Position.

 

XFC_PositionAtTime 3:/XFC_PositionAtTime 4: Ein-/Ausgänge

VAR_IN_OUT
    Axis     : AXIS_REF;
END_VAR

Name

Typ

Beschreibung

Axis

AXIS_REF

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

XFC_PositionAtTime 5: Ausgänge

VAR_OUTPUT
    Position : LREAL;
    Error    : BOOL;
    ErrorID  : UDINT;
END_VAR

Name

Typ

Beschreibung

Position

LREAL

Extrapolierte Position, die zum vorgegebenen Zeitpunkt DcTime erreicht sein wird bzw. erreicht wurde.

Error

BOOL

Wird im Fehlerfall TRUE.

ErrorID

UDINT

Liefert bei einem gesetzten Error-Ausgang die Fehlernummer.