ConvertDcTimeToPathPos

ConvertDcTimeToPathPos 1:

Dieser Funktionsblock konvertiert eine 32 Bit Distributed Clock System Time in einen relativen Nci-Wegabstand auf der Kontur des momentan aktiven Nci-Programms (d.h. je nach Zeitpunkt, liefert der FB einen positiven oder negativen relativen Abstand zurück).

VAR_INPUT

VAR_INPUT
    nGrpId      : UDINT;
    nSubIdx     : UDINT;
    dcTime      : T_DCTIME32;(* 32 bit distributed clock time *)
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.

dcTime

32 Bit Distributed Clock System Time (T_DCTIME32). Diese Eingangsgröße wird in die korrespondierende relative Nci-Wegabstand auf der Kontur umgerechnet.
Diese 32 Bit Zeit darf nur im zeitlichen Nahbereich von±2.147 Sekunden um die aktuelle Systemzeit verwendet werden, da sie nur hier eindeutig ist. Innerhalb des FB kann diese Voraussetzung nicht überprüft werden.

VAR_OUTPUT

VAR_OUTPUT
    fPosition   : LREAL;
    iErr        : UDINT;
END_VAR

fPosition

Liefert die zur dcTime korrespondierende relative Nci-Wegabstand auf der Kontur.

iErr

Liefert im Fehlerfall eine Fehlernummer

 

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 )