Grundlegende Frage zum EtherCAT-Framedurchlauf

clumsi

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

ich habe das generelle Funktionsprinzip von EtherCAT so verstanden, dass ein langer Frame vom PC losgeschickt wird, und während des Durchlaufes gleich wieder (mit aktualisierten Bits) ausgegeben wird. D.h. Jeder Teilnehmer verschluckt das vorherige Telegramm, generiert aber zugleich ein neues.
Der Frame müsste also vom PC über die Tx-Leitung gesendet werden, und wird vom ersten Teilnehmer auf Rx empfangen und auf Tx wieder ausgegeben. Das ganze geht bis zum letzten Teilnehmer in einer Station. Der müsste dann merken, dass keine weiteren Teilnehmer folgen, und sendet das ganze wieder zurück. Die Frage ist jetzt, wie das funktioniert. Nach meiner Vorstellung müsste das Temegramm dann wider auf Rx im PC ankommen. Werden die Telegramme dann auf den Rückweg durch die Module immer 1:1 weitergegeben, oder passiert da noch mehr? :confused:

grüße,
clumsi
 
Zuletzt bearbeitet:
Interessante Frage! :)

Die Antwort lautet wie folgt:

Die Auswertung der Telegramme erfolgt immer in Hin-Richtung, die Rück-Richtung dient zum Verstärken und Regenerieren des Signals und zum Lokalisieren und Schließen von Leitungsunterbrechungen

Bei EtherCAT stellen die Slaves logisch gesehen einen offenen Ringbus dar. Am offenen Ende schickt der Master, entweder direkt oder über Standard-Ethernet-
Switche, Telegramme hinein und erhält sie am anderen Ende bearbeitet wieder zurück. Alle Telegramme werden vom ersten Teilnehmer an die nächsten weitergeleitet und vom letzten wird das Telegramm wieder zurück zum Master gesendet. Da ein normales Ethernet-Kabel bidirektional aufgebaut ist (getrennte Tx und Rx Leitungen) und auch alle EtherCAT-Slaves in der Rückrichtung übertragen können, ergibt sich ein physikalischer Strang.

Quelle: http://www.ethercat.org/pdf/pcc_ethercat_d.pdf#page=3 Kapitel Topologie
 
Zuviel Werbung?
-> Hier kostenlos registrieren
die Rück-Richtung dient zum Verstärken und Regenerieren des Signals und zum Lokalisieren und Schließen von Leitungsunterbrechungen
Was ist mit lokalisieren gemeint? Wenn die Leitung unterbrochen ist, und das Telegramm nicht zum Master zurückkommt, wie soll dann die Fehlerquelle lokalisiert werden?
Verstärken ist klar, aber das passiert doch bei jedem Slavedurchlauf, weil in jedem Slave das Telegramm neu generiert wird?

Wenn ich mir den EK1100 angucke, kann ich an die obere Netzwerkbuchse das Kabel anschließen und es ist mit den Busklemmen ein Kreis eintstanden. Was ist bei einem weiteren Strang, den ich an die untere Buchse anschließe? Dann muss der Koppler ja automatisch wissen, dass das Signal nicht direkt an den Master zurückgeht, sondern über die Stichleitung, da es ja immernoch ein Kreiss sein muss.
 
Lokalisieren heisst nichts anderes, als dass EtherCAT versucht, den Ort eines Leitungsunterbruches zu bestimmen...
Ein EtherCAT-Slave kann erkennen, ob auf seiner Hin- bzw. Rück-Leitung ein Trägersignal anliegt.Weiterhin besitzt jeder EtherCAT-Slave die Eigenschaft, den Datenfluss
so umschalten zu können, dass ein über die Hin-Leitung empfangenes Telegramm sowohl über die Tx-Schnittstelle der Hin-Leitung als auch der Rück-Leitung gesendet werden kann. Und umgekehrt kann ein über die Rück-Leitung empfangenes Telegramm über die Tx-Schnittstelle der Rück- oder der Hin-Leitung geschickt werden (Bild b).

Ja, im EK1100 ist mehr Elektronik drin als 2 Netzwerkbuchsen. Der merkt in der Tat ob ein Kabel angeschlossen ist...
Grundsätzlich definierst du ja im Systemmanager (Wenn TwinCAT der Master ist) die Topologie, du kannst mit dem EK1100 nicht einfach irgendwas zusammenstöpseln und das läuft dann.

P.S. In dem angehängten PDF-Bericht von gestern sind noch viele weitere nützliche Infos zu finden...
 
Alles sehr komplex und doch einfach gelöst

Was ist mit lokalisieren gemeint? Wenn die Leitung unterbrochen ist, und das Telegramm nicht zum Master zurückkommt, wie soll dann die Fehlerquelle lokalisiert werden?
Verstärken ist klar, aber das passiert doch bei jedem Slavedurchlauf, weil in jedem Slave das Telegramm neu generiert wird?

Wenn der Master gar nix zurück bekommt, dann weiss er, dass schon die Verbindung zum ersten Slave tot ist.

Wenn ich mir den EK1100 angucke, kann ich an die obere Netzwerkbuchse das Kabel anschließen und es ist mit den Busklemmen ein Kreis eintstanden. Was ist bei einem weiteren Strang, den ich an die untere Buchse anschließe? Dann muss der Koppler ja automatisch wissen, dass das Signal nicht direkt an den Master zurückgeht, sondern über die Stichleitung, da es ja immernoch ein Kreis sein muss.

In der Kiste ist mehr drin als die Steckdose... Das meisste ist als Logik in Silizium gegossen (sprich ein spezieller Chip, es gibt mehrere konkurrierende Hersteller). So gibt es das enorme Tempo, das kein Microprozessor schaffen könnte. Nicht zu verachten ist auch die geniale Adressierung des Busses: schon einmal aufgefallen, dass da keine Schalter etc. auf den Modulen sind?

Ein Teil des (genialen) Hochlaufs stellt genau die Bustopologie fest und vergibt die Adressen. Das ganze ohne viel Aufwand in der Software des Servers, da das meisste Low Level Zeug im Chip abgehandelt wird.

Im Prinzip funktioniert das so, dass der Master negative Adressen absendet, jeder Slave im Vorbeirauschen des Telegramms die Adresse im Telegramm um 1 erhöht wieder reinschreibt und der, der die Adresse 0 liest, weiss, dass er gemeint ist.

Übrigens ist es in einem SERCOS Doppelring sogar möglich, die genaue Position eines unterbrochenen Rings festzustellen.
 
Zurück
Oben