Distributed Clock Sync Mode mit TwinCAT 3

afx2

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Wir verwenden bei uns im Hause eine Trial-Version von TwinCAT 3 unter Windows XP mit Service Pack 3 um diese zu evaluieren. Wir würden TwinCAT 3 evtl. in unserem Produkt einsetzen. Allerdings haben wir derzeit ein Problem im Zusammenhang mit unserer Hardware (Servoantrieb mit EtherCAT-Schnittstelle) und dem "Distributed Clock Sync Mode" von TwinCAT 3.

Wir haben das TwinCAT-Projekt so weit eingerichtet, dass eine Kommunikation zwischen PC und dem Servoantrieb läuft und z.B. die Istposition des Antriebs (kontinuierlich) gelesen werden kann. Nach dem Entfernen des Netzwerkkabels und dem erneuten Einstecken ist jedoch ein dauerhaftes Aktualisieren dieses Wertes (Objekt, in dem die Istposition des Servoantriebs steht) nicht mehr möglich. Durch Runter- und Hochfahren der State-Machine kann der Wert manuell aktualisiert werden. Doch automatisch aktualisiert sich der Wert nicht mehr. Wir vermuten, dass dies mit dem "Distributed Clock Sync" zusammenhängt.

Als Netzwerkkarte verwenden wir "Realtek RTL 8168C PCI-E Gigabit Ethernet". Die CPU ist "Intel Atom 1,1GHz".

Weiß jemand wodurch dieses Problem verursacht werden kann bzw. wie man es erreicht, dass auch nach Entfernen und erneutem Einstecken des Netzwerkkabels der DC_Sync Modus noch funktioniert sodass Objekte automatisch gelesen werden können?

Grüße
afx2
 
Schreib doch mal mehr zu eurem System:
- Welcher Servoverstärker?
- Geregelt über TwinCAT NC oder PLC? (wo kommen die Sollwerte her?)
- Offenbar kein PC von Beckhoff (da Realtek-Karte)?
- Die Sollwerte werden zyklisch per Prozessdaten übermittelt, oder per Fahrauftrag (bei Bedarf)?
- Was ist in den Master-Einstellungen bei "Distributed Clocks => DC Mode" eingestellt? (Doku)

Nachdem ihr den Stecker wieder angesteckt habt, wird der State "OP" dann automatisch wieder erreicht?
Normalerweise, wenn man das Kabel erneut ansteckt, läuft der Slave nach OP hoch und der Master regelt die Uhren automatisch nach.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
-Wir haben keinen Servoverstärker. In dem Servomotor ist ein Regler und eine Endstufe integriert. In dem Gesamtsystem gibt es eigentlich nur den PC und die zwei Antriebe, die per Ethernet miteinander verbunden sind.
-Sollwerte: Im Solution Explorer habe ich unter PLC nichts, nur bei Motion haben wir eine NC-Achse.
1.png
-Richtig, PC ist nicht von Beckhoff. Hat aber eine Intel-CPU. Und anfangs hat der Distributed Clock ja noch funktioniert (vor dem Entfernen und Wiedereinstecken des Ethernet-Kabels), daher würde ich sagen dass die Hardware prinzipiell ok ist.
-Sollwerte werden wenn dann per Prozessdaten übermittelt.
-Der Link zu dieser Doku bezieht sich auf TwinCAT 2. Bei uns (TwinCAT 3) ist folgendes eingestellt bezüglich der Distributed Clocks:

Bezüglich Master (PC):
2 (am master).png3 (am master).png

Bezüglich Slave (Drives):
4 (am motor).png5 (am motor).png

Ja, nachdem wir den Stecker wieder angesteckt haben wird der State "OP" automatisch wieder erreicht.

Ich sollte noch dazusagen, dass wir die Entdeckung gemacht haben, dass das geschilderte Problem (kein kontinuierliches Aktualisieren der Istposition mehr im TwinCAT-Fenster bzw. nicht mehr funktionierender Distributed Clock) nicht mehr auftritt, wenn wir mehrere TwinCAT-Fenster bzw. zwei Visual Studio mit Projekten geöffnet haben und im Runtime-Modus sind. Klingt seltsam, war aber tatsächlich eine "Lösung" (natürlich keine zufriedenstellende Lösung) des Problems.
 
Ob Servoverstärker oder Motor mit integrierter Elektronik ist aus Sicht des Twincat egal. Was ist es für ein Gerät?

Ob TwinCAT 2 oder 3 sollte auch kein Unterschied sein, denn die Dialoge sehen gleich aus. Natürlich muss sich das System im "Run" befinden, aber das dürfte klar sein, denke ich.

Bei den DC Einstellungen würde ich alles auf Standard belassen. Scheint auch so zu sein bei euch. Die "Referenzuhr" eures System ist laut Screenshot der Antrieb. Ihr habt nur zwei Antriebe dran als einzige EtherCAT-Slaves?

Die Anzeige der DC Diagnose sieht nicht gut aus. Die Counter sollten alle bei "< 50" hochzählen, je niederiger desto besser. Die Anzeige ist ein Maß dafür wie gut das System der verteilten Uhren eingeregelt ist. Die Anzeige ">= 500" zeigt eigentlich, dass die Synchronisierung gar nicht mehr vernüftig funktioniert.
Wann wurde der Screenshot aufgenommen? Als das System einwandfrei lief oder nach wieder anstecken des Ethernet-Kabels? (ich hoffe mal der Screenshot wurde im RUN-Modus aufgenommen?)
Wenn das System läuft wie es soll, wie sieht dann die Diagnoseanzeige aus? (Screenshot)

Mach bitte auch mal einen Screenshot von der Ansicht "SYSTEM => Real-Time => Online".
 
Was ist es für ein Gerät?
Also die Servomotoren sind zwei Logic IM-4070. Und der PC, auf dem die Anwendung läuft, ist ein IPC IM-980 (der selben Firma).

Richtig, als Slaves haben wir nur die zwei genannten Antriebe.

Wegen der Diagnose-Anzeige (Distributed Clock) habe ich heute auch mit dem Beckhoff-Support telefoniert. Die meinten, dass man aus der Anzeige >= 500 µs nicht sicher schließen könne, dass da etwas nicht funktioniert.

Der Screenshot wurde aufgenommen als das System lief, wie es soll. Hier nochmal die Diagnoseanzeige wenn das System richtig läuft:

diagnose.guter.zustand.PNG

Ja, Screenshot wurde im Runtime-Modus aufgenommen. Wäre er im Config-Modus aufgenommen worden, dann wären die rechten vier Spalten alle leer.

Screenshot der Ansicht "SYSTEM => Real-Time => Online:

system.realtime.online.PNG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wegen der Diagnose-Anzeige (Distributed Clock) habe ich heute auch mit dem Beckhoff-Support telefoniert. Die meinten, dass man aus der Anzeige >= 500 µs nicht sicher schließen könne, dass da etwas nicht funktioniert.
Sicher kann man aufgrund der einen Anzeige nicht sein, aber es deutet stark darauf hin.
Screenshot der Ansicht "SYSTEM => Real-Time => Online:
Also die Latenzzeiten sind aus meiner Sicht zu hoch und zu stark schwankend (= PC ungeeignet). Somit macht man es dem Twincat schon einmal schwerer die Uhren einzuregeln, was die Anzeige ">= 500µs" bei der DC Diagnose zeigt.

Könnt ihr zum Vergleich das Projekt mal auf einem anderen PC testen, oder evtl. auf einem PC von Beckhoff?

Was besagt der "WcState" der Slaves direkt nach dem Wiederanstecken? Bleibt der eine ganze Weile auf "1"? "1" bedeutet, dass die Prozessdaten vom Antrieb ungültig sind.
Hast du dir mal diese Doku angeschaut?: http://infosys.beckhoff.de/index.ph...system/html/bt_ethercat_dc_tcsettings_211.htm (relativ weit unten unter "weitere Einstellungen")
 
Könnt ihr zum Vergleich das Projekt mal auf einem anderen PC testen, oder evtl. auf einem PC von Beckhoff?

Habe ich gemacht, und die Werte im Fenster "Diagnose" sahen völlig anders aus. Hier ein Screenshot von einem PC mit Intel Core i7 CPU:
diagnosis.core.i7.PNG

Auf diesem PC hat dann auch alles so funktioniert, wie man das normalerweise erwarten würde. Das heißt, mein kompliziert aussehendes Problem hatte die "triviale" Lösung, dass man einfach nur einen schnelleren PC braucht und dass Intel Atom als CPU in meinem Fall für Distributed Clock nicht ausreichend war.

Danke für die Hilfe!! Alleine wäre ich vermutlich nicht darauf gekommen, auch wenn es hinterher eigentlich ganz leicht aussieht.
 
Nein, das hat nichts mit der Performance des PCs zu tun, sondern mit dessen Hardware- und Softwarekonfiguration.
Beckhoff bietet ja auch Low-Performance PCs mit ARM oder Atom-CPU an, auf denen läuft das EtherCAT auch und entlastet den PC sogar.
Das ist ja genau die Sache. TwinCAT läuft halt auf vielen PCs, aber ein geeigneter PC (für Echtzeit, EtherCAT, uws.) ist was anderes. Daher garantiert Beckhoff die volle Funktion nur auf ihren eigenen PCs.

Dein i7 ist von seiner Konfiguration halt besser geeignet als der andere PC.
 
Zurück
Oben