ConvertPathPosToDcTime

ConvertPathPosToDcTime 1:

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

ConvertPathPosToDcTime 2: Eingänge

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

Name

Typ

Beschreibung

nGrpId

UDINT

Group ID des zugehörigen Nci-Kanal

nSubIdx

UDINT

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 einem Fehler abgelehnt.

fPosition

LREAL

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

ConvertPathPosToDcTime 3: Ausgänge

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

Name

Typ

Beschreibung

dcTime

T_DCTIME32

Liefert die zum Eingang fPosition zugehörige 32-Bit-„Distributed Clock System Time“-Variable.

iErr

UDINT

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 v3.1.0

PC oder CX (x86, x64, Arm®)

Tc2_EtherCAT