XFC_TimeToModuloPosition

XFC_TimeToModuloPosition 1:

Der Funktionsbaustein XFC_TimeToModuloPosition berechnet die Zeitdauer, innerhalb derer eine Achse eine Position erreichen wird, bzw. die Zeitdauer, die vergangen ist, seit die Achse diese Position passiert hat. Die Position ist in diesem Fall die in Fahrtrichtung nächstliegende Modulo-Position.

Die Funktion extrapoliert den Zeitpunkt 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 Zeit eventuell auch einen Fehler zurück. Dieser Fehler muss ausgewertet werden, um sicherzustellen, dass die berechnete Zeitdauer gültig ist.

XFC_TimeToModuloPosition 2: Eingänge

VAR_INPUT
    Position     : LREAL;
    ModuloFactor : LREAL;
    Options      : ST_NcTimeConversionOptions;
END_VAR

Name

Typ

Beschreibung

Position

LREAL

Absolute Achsposition

ModuloFactor

LREAL

Modulo-Teiler, der für die Berechnung verwendet werden soll. ModuloFactor kann mit dem Modulo-Faktor der Achse identisch sein, z. B. 360. Es kann aber auch ein davon abweichender Faktor verwendet werden.

Options

ST_NcTimeConversionOptions

Datenstruktur mit Optionen für die Extrapolation der Position.

XFC_TimeToModuloPosition 3: /XFC_TimeToModuloPosition 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_TimeToModuloPosition 5: Ausgänge

VAR_OUTPUT
    Duration         : DINT; 
    AbsolutePosition : LREAL; 
    TimeOfPosition   : T_DCTIME32; 
    Error            : BOOL;
    ErrorID          : UDINT; 
END_VAR

Name

Typ

Beschreibung

Duration

DINT

Zeitdauer in Nanosekunden, nach der die Position erreicht sein wird.

Duration ist ein Differenzwert aus zwei Variablen des Typs T_DCTIME32 Distributed Clock System Time.

AbsolutePosition

LREAL

Absolute Position (nicht modulo), die mit der Modulo-Position und der ermittelten Zeit korrespondiert.

TimeOfPosition

T_DCTIME32

Distributed Clock System Time, zu der die Position erreicht sein wird bzw. zu der sie erreicht wurde.

DcTime enthält die unteren 32 Bit der vollständigen DcTime und deckt damit einen Zeitbereich von +/- 2 Sekunden um den aktuellen Zeitpunkt ab.

Error

BOOL

Wird im Fehlerfall TRUE.

ErrorID

UDINT

Liefert bei einem gesetzten Error-Ausgang die Fehlernummer.