ConvertPathPosToDcTime

ConvertPathPosToDcTime 1:

Dieser Funktionsblock konvertiert einen relativen Nci-Wegabstand in eine zugehörige 32 Bit Distributed Clock System Time (d. h. derjenige zugehörige Zeitpunkt, der dem relativen Nci-Wegabstand entspricht bzw. entsprach).

VAR_INPUT

VAR_INPUT
    nGrpId      : UDINT;
    nSubIdx     : UDINT;
    fPosition   : LREAL;
END_VAR

nGrpId

Group ID des zugehörigen Nci-Kanal

nSubIdx

Diese 32 Bit Eingangsgröße beinhaltet zwei verschiedene Informationen und unterteilt sich somit in zwei 16 Bit Werte:
Das LowWord (die niederwertigsten 16 Bit) beinhaltet den Sub-Index zum relativen Adressieren eines Encoder-Unterelementes an einer Achse. Der Sub-Index wird von Null an gezählt. Für den typischen Fall einer Achse mit genau einem Encoder ist der Sub-Index Null richtig.
Das HighWord (die höchstwertigen 16 Bit) beinhaltet ein Steuerwort (Bitmaske), das die Art der Positionsberechnung beeinflusst (z.B. den Inter- bzw. Extrapolationstyp).
Die Bitmaske 0x0001 bedeutet, dass die Soll-Beschleunigung der Achse mit in die Berechnung einbezogen werden soll.
Die Bitmaske 0x0010 bedeutet, dass die Berechnung relativ erfolgt und ist momentan zwingend. Der Aufruf wird anderenfalls mit Fehler abgelehnt.

fPosition

Relativer Nci-Wegabstand, der in die korrespondierende 32 Bit Distributed Clock System Time (T_DCTIME32) umgerechnet wird.
Liegt die zum relativen Nci-Wegabstand zugehörige DC System Time außerhalb des erwarteten Zeitfensters von ± 2.147 Sekunden wird diese Umrechnung mit einer Fehlernummer abgelehnt.

 

VAR_OUTPUT

VAR_OUTPUT
    dcTime  : T_DCTIME32;(* 32 bit distributed clock time *)
    iErr    : UDINT;
END_VAR

dcTime

Liefert die zum Eingang fPosition zugehörige 32 Bit Distributed Clock System Time (T_DCTIME32).

iErr

Liefert im Fehlerfall eine Fehlernummer, z.B.
- Fehler 0x4361: Zeitbereichsüberschreitung (Zukunft),
- Fehler 0x4362: Zeitbereichsüberschreitung (Vergangenheit),
- Fehler 0x4363: Position ist mathematisch nicht zu ermitteln.

 

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.11.0 Build > 2214 oder höher

PC oder CX (x86, ARM)

TcEtherCAT.Lib
( Standard.Lib; TcBase.Lib; TcSystem.Lib, TcUtilities.Lib werden automatisch eingebunden )