ConvertPosToDcTime

ConvertPosToDcTime 1:

Dieser Funktionsblock konvertiert eine NC-Achsposition in eine zugehörige 32-Bit-„Distributed Clock System Time“-Variable vom Typ T_DCTIME32 (d. h. derjenige Zeitpunkt, zu dem genau diese NC-Achsposition erreicht wurde bzw. erreicht wird).

ConvertPosToDcTime 2: Eingänge

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

Name

Typ

Beschreibung

nAxisId 

UDINT

ID der NC-Achse

nSubIdx 

UDINT

Diese 32-Bit-Eingangsgröße setzt sich aus zwei verschiedenen Informationen zusammen und unterteilt sich 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.

fPosition

LREAL

NC-Achsposition, die in die korrespondierende 32-Bit-„Distributed Clock System Time“-Variable umgerechnet wird.
Wenn die zur Position zugehörige „Distributed Clock System Time“ außerhalb des erwarteten Zeitfensters von ± 2.147 Sekunden liegt, wird diese Umrechnung mit einer Fehlernummer abgelehnt.

ConvertPosToDcTime 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 0x4012: Achs-ID ist nicht erlaubt bzw. Achse ist im System nicht vorhanden.
  • 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