Funktionsweise Bitmanipulation von EtherCAT-Frames

GBat

Level-1
Beiträge
84
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen zusammen

Ich schaue mir gerade das EtherCAT_Protokoll etwas an. Wie funktioniert bitte die Verarbeitung der einlaufenden Telegramme beim Durchfluss im Slave-Controller?

Bei EtherCAT sendet der EtherCAT-Master ja ein Frame über seine Tx-Leitung.

Wann und wie funktioniert nun die bitte Bitmanipulation in der Hardware der Slaves? Angeblich wird ein Telegramm während dem Durchlauf manipuliert..

Beste Grüße

Geri
 
Zuletzt bearbeitet:
Weiß ein Slave durch seine Konfiguration bereits vor dem Empfang z.B. dass Bit 1123 bis 1232 ein EtherCAT-Kommando für ihn ist und kann die Daten ohne Unterbrechung manipulieren und weiterleiten?
Das würde dann bedeuten, dass die gesamte Dauer der Datenübertrung für ein Frame ungefähr nur die Dauer für das Senden der Daten vom Master entspricht...
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
der in jedem Slave vorhandene EtherCAT Slave Controller "ESC" "verarbeitet" die Pakete im Durchlauf und fischt sich aus dem Datenstrom die für ihn bestimmten Pakete raus und schreibt seine Daten rein. Das ganze geschieht lediglich mit einer minimalen Verzögerung.
Ich würde Dir die Doku von Beckhoff empfehlen, dort wird eigentlich alles erklärt.

Von irgendwas mit Internetzugang gesendet
 
Zuletzt bearbeitet:
Guten Morgen Oliver

Vielen Dank für deine Infos. Das Dokument kenne ich schon. Die ersten 60 Seiten von dem Dokument habe ich mir schon durchgelesen und keine Antwort gefunden. Habe auch schon unter EtherCAT.org ein paar interessante Infos gefunden.

Genau eben wie das "Daten fischen und ändern funktioniert würde mich interessieren":)

1.) Woher weiß ein Slave z.B., dass ein bestimmter Teil der Nachricht für ihn ist? Etwa durch Konfiguration, die man vorab übertragen hat? Der Slave muss ja irgendwie wissen, welche Bit er manipulieren darf
2.) Wie verläuft der Datenstrom. Gelangt er beim ersten Port durch den Übertrager und anschließend zum Übertrager des zweiten Ports.. Dazwischen werden die Bits ggf. manipuliert..?
3.) Wie funktioniert das Bitmanipulieren auf der Tx-Leitung. Der Slave muss die Leitung auf Low oder high ziehen? Das ganze muss ja extrem synchron laufen.. wenn der Slave z.B. 100 Bits nacheinander auf low zieht. Dann muss der Salve dahinter wissen, dass es sich nicht um einen Fehler (tote Leitung handelt) sondern dass das Daten von Salve 1 sind.. Ist das so?

Beste Grüße

Geri
 
Hallo Geri,
ich habe heute leider nicht ganz soviel Zeit zum Antworten, sorry, daher beschränke ich mich mal auf Punkt 3.
3.) Wie funktioniert das Bitmanipulieren auf der Tx-Leitung. Der Slave muss die Leitung auf Low oder high ziehen? Das ganze muss ja extrem synchron laufen.. wenn der Slave z.B. 100 Bits nacheinander auf low zieht. Dann muss der Salve dahinter wissen, dass es sich nicht um einen Fehler (tote Leitung handelt) sondern dass das Daten von Salve 1 sind.. Ist das so?
Da wird keine Leitung auf Low oder High gezogen. Die EtherCAT Kommunikation erfolgt eingebettet in einen normalen Ethernet-Frame und so funktioniert die Kommunikation grundsätzlich wie jede andere Ethernet-Komminikation auch, nur mit dem Unterschied, dass die Verarbeitung on the fly erfolgt.

Von irgendwas mit Internetzugang gesendet
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, wie das Frame aussieht und die Übertagung erfolgt ist mir schon klar.

Evtl. habe ich mich schlecht ausgedrückt...
Bei Standard-Ethernet-Lösungen wird das Frame zuerst übertragen, verarbeitet und anschließend gesendet.

Bei EtherCAT werden die Daten, die zu einem Slave gehören während dem Durchlauf des Paketes eingefügt.

Ich könnte mir vorstellen, das funktioniert so:
Nachdem der Master Ethernet- und EtherCAT-Header übertragen hat ist ein EtherCAT-Command an der Reihe. Ein Decoder im Slave wird wahrscheinlich Adresse und Kommando Monitoren, decodieren und dementsprechend nachfolgende Bits einlesen und Ausgangsdaten manipulieren. Das alles während der Master den Frame überträgt. Mit Leitung Low-und High ziehen meinte ich, wenn der Slave z.B. ein Bit mit dem Wert 0 übertragen will, dann setzt der die Spannung im Tx-Leitungspaar entsprechend.

Beste Grüße

Geri
 
Ich könnte mir vorstellen, das funktioniert so:
Nachdem der Master Ethernet- und EtherCAT-Header übertragen hat ist ein EtherCAT-Command an der Reihe. Ein Decoder im Slave wird wahrscheinlich Adresse und Kommando Monitoren, decodieren und dementsprechend nachfolgende Bits einlesen und Ausgangsdaten manipulieren. Das alles während der Master den Frame überträgt. Mit Leitung Low-und High ziehen meinte ich, wenn der Slave z.B. ein Bit mit dem Wert 0 übertragen will, dann setzt der die Spannung im Tx-Leitungspaar entsprechend.
Du must unterscheiden zwischen "logischem Frameinhalt" (z.B. die Reihe von Nullen) und dem, was physisch auf der Leitung passiert. Du darfst Dir das nicht vorstellen wie ein asynchrones Telegramm (z. B. auf einer seriellen Schnittstelle), sondern die logischen Daten werden "leitungscodiert", damit z.B. der Takt aus den Daten zurück gewonnen werden kann. Der Leitungscode ist abhängig von der Übertragungsart (z. B: Manchester-Code oder Run Length Limited). Also nicht viele Nullen hintereinander oder so was.
Gruß
Erich
 
Vielen Dank Erich! Jetzt wo du es sagst:p Dann wird's schon synchroner:)
 
Zuletzt bearbeitet:
Zurück
Oben