Totzeitkompensation
Voraussetzung für die hochgenaue Umrechnung von Positionen in Zeiten und umgekehrt ist eine exakte Totzeitkompensation der Achsen. Ab TwinCAT 2.11 steht eine solche Totzeitkompensation für EtherCAT- und Sercos-Achsen zur Verfügung, die weitestgehend automatisch arbeitet. Dennoch kann eine manuelle Konfiguration notwendig sein, um beispielsweise antriebsinterne Totzeiten auszugleichen.
Unterstützung der Distributed Clocks
Die Unterstützung der Distributed Clocks muss bei EtherCAT-Antrieben zunächst wie folgt aktiviert werden:
- 1. Rufen Sie den Dialog EtherCAT "Advanced Settings" des Antriebs auf.
- 2. Aktivieren Sie den Schalter "Include DC Shift Times".
- Die Zeitinformationen werden in den Info-Daten ("InfoData") des Antriebs zur Verfügung gestellt und später mit der NC-Achse verknüpft.
"DcInputShift" ist die Zeit, die benötigt wird, um Statusinformationen, wie z. B. die Istposition eines Antriebs, in die Steuerung zu übertragen. Also die Zeit zwischen der Erfassung und der Auswertung dieser Daten.
"DcOutputShift" ist die Zeit für die Ausgabe der Prozessdaten an den Antrieb, d.h. für den Zeitverzug zwischen Berechnung und Wirkung dieser Daten.
Die Zeitinformationen werden dynamisch vom System bereitgestellt und werden von der NC zur Totzeitkompensation einer Achse verwendet.
Für Sercos-Achsen werden die Zeiten DcInputShift und DcOutputShift von der Sercos-Karte zur Verfügung gestellt und müssen nicht konfiguriert werden. Beim Verknüpfen eines Antriebs mit einer NC-Achse werden diese Zeiten ebenfalls verknüpft.
Kompensation der Encoder-Totzeit
Die Totzeitkompensation für die Datenerfassungsseite aktivieren Sie auf dem Reiter "Time Compensation" des Achs-Encoders. Dadurch wird die vom System bereit gestellte Totzeit aus DcInputShift zur Kompensationsberechnung verwendet.
In besonderen Fällen, wenn es beispielsweise durch die verwendete Hardware zu zusätzlichen Totzeiten kommt, kann es notwendig sein, weitere Zeiten zu konfigurieren.
Der Wert "Encoder Delay in Cycles" gibt zusätzliche Verzögerungen um ganze I/O-Zyklen an. Diese Zeit ist demnach keine feste Größe, sondern ändert sich mit der Zykluszeit.
Der Wert “Additional Drive Delay“ ist ein fester Zeitwert in µs, der durch die verwendete Hardware verursacht wird.
Kompensation der Antriebs-Totzeit
Die Totzeitkompensation in Ausgaberichtung aktivieren Sie auf dem Reiter "Time Compensation" des Drives der NC-Achse. Dadurch wird die vom System bereitgestellte Zeit DcOutputShift Kompensationsberechnung verwendet.
Auch hier können in besonderen Fällen weitere Zeiten konfiguriert werden.
Der Wert "Task Delay in Cycles" wird durch die Einstellung der Taskkonfiguration verursacht. Abhängig vom eingestellten Timing der Tasks kann sich die Totzeit um einen Zyklus verlängern.
Der Wert "Drive Delay in Cycles" gibt zusätzliche Verzögerungen um ganze I/O-Zyklen an, die durch den Antrieb verursacht werden.
Der Wert "Additional Drive Delay" ist ein fester Zeitwert in µs, der durch die verwendete Hardware verursacht wird.
Auswirkung der Totzeitkompensation
Durch die Totzeitkompensation werden alle zyklisch mit der SPS ausgetauschten Daten der NC (NcToPlc) auf den aktuellen Zeitpunkt umgerechnet. Insbesondere Istposition, Sollposition und Schleppfehler der Achse beziehen sich auf den gerade aktuellen Zeitpunkt und spiegeln die physikalische Position der Achse zu diesem Zeitpunkt wider. Sie können damit durch die SPS für weitere hochgenaue Zeit- und Positionsberechnungen herangezogen werden. (Siehe insbesondere die Basisfunktionen XFC_GetCurDcTaskTime , XFC_TimeOfPosition und XFC_PositionAtTime.)