Forum: Mikrocontroller und Digitale Elektronik Real Time Ethernet


von Spinter (Gast)


Lesenswert?

Hallo,

in meiner Abschlussarbeit soll ich ein Real Time Verbindung von einer 
Controller-Einheit zu einem Roboter aufbauen. Beidseitig wird ein Cortex 
M§ eingesetzt.

Nach meinen Recherchen taugen reines TCP oder UDP nicht für RT. Bleiben 
noch Protokolle wie zum Beispiel Profinet.

Gibt es Alternativen?
Open Source Alternativen?

Ich bin neu in der Thematik. Wie gehe ich am besten vor?

Danke
Spinter

von Peter II (Gast)


Lesenswert?

Spinter schrieb:
> Nach meinen Recherchen taugen reines TCP oder UDP nicht für RT

warum sollte UDP nicht für RT geeignet sein?

Oder hast du bedenken weil im Ethernet selber zu "Staus" wegen 
Kollisionen kommen kann?

von Cyblord -. (cyblord)


Lesenswert?

Ich würde einfach reine Ethernet-Frames senden und empfangen. Das 
Protokoll oben drauf machst du selbst. Damit hast du eine gute Kontrolle 
über die Timings.
Ob du wirklich ein bereits existierendes Protokoll (wie Profinet) oben 
drauf brauchst musst du selber wissen. Aber überlege vorher, wozu.

gruß cyblord

von Michael W. (Gast)


Lesenswert?

Ob etwas in "real time" geht oder nicht, hängt ja wohl von den 
Erfordernissen ab. Wenn die Anforderungen an Latenz, Jitter und 
Bandbreite i.O. sind, geht Ethernet (UDP) definitiv.

von Cyblord -. (cyblord)


Lesenswert?

UDP würde schon gehen, aber wenn er nur eine Verbindung vom Controller 
zu einem Roboter haben will, wozu dann noch IP und UDP mitschleppen? 
Oder muss das ganze tatsächlich über das Internet funktionieren? Oder 
mindestens zwischen LANs welche durch Router getrennt sind?

: Bearbeitet durch User
von SvenW (Gast)


Lesenswert?

Hallo Spinter,
wie wäre es denn mit EtherCAT von Beckhoff. Ist mir vor einiger Zeit 
über den Weg gelaufen und macht einen brauchbaren Eindruck.

http://www.beckhoff.de/default.asp?ethercat/default.htm

MfG Sven

von nochwas (Gast)


Lesenswert?

Fuer eine Selbstbau punkt zu punkt verbindung kann man den Stack 
wegschmeissen und auf der tiefsten Stufe aufsetzen. Dann wird's auch 
deterministisch und schnell.

von Cyblord -. (cyblord)


Lesenswert?

nochwas schrieb:
> Fuer eine Selbstbau punkt zu punkt verbindung kann man den Stack
> wegschmeissen

Mit reinem Ethernet geht natürlich trotzdem Multipoint im selben LAN. 
Wenn man auf MAC aufsetzt und alles über die Mac-Adresse anspricht.

gruß cyblord

von Borislav B. (boris_b)


Lesenswert?

SvenW schrieb:
> wie wäre es denn mit EtherCAT von Beckhoff. Ist mir vor einiger Zeit
> über den Weg gelaufen und macht einen brauchbaren Eindruck.

Benutzen wir auch in unseren Produkten.
Echtzeitiger gehts nicht mehr ;-)
(und schnell ist es auch)

: Bearbeitet durch User
von Helge A. (besupreme)


Lesenswert?

Kommt auf den Roboter an. Selbstgebaut oder ein Industriedingens?

Ethercat läßt sich schön redundant konfigurieren mit 
"Reserve-Kommunikationsweg". Ist die Wahl bei kritischen Anforderungen. 
Safety über Ethercat geht auch, hab ich aber noch nit programmiert.

Profinet ist ähnlich schnell und es gibt haufenweise Controller, die 
sich auf ein Projekt draufsetzen lassen. Die übernehmen die 
Konfiguration über ein HTML interface, und du brauchst dich nur noch um 
den bereitgestellten Datensatz kümmern. Ich hatte schon Anlagen, da 
haben 4 gleiche OEM-Interfacekarten in 4 vollkommen verschiedenen 
Geräten verschiedener Hersteller miteinander geredet. Profisafe ist 
mittlerweile Standard.

Beide Protokolle brauchen managed switches für die "Echtzeitfähigkeit".

Wenns jetzt nur darum geht, über WLAN irgendwas spatierenfahren zu 
lassen, kümmer dich nicht um diesen Protokoll-overhead. UDP reicht.

von JojoS (Gast)


Lesenswert?

wenn beide Seiten ein uIP oder lwIP auf dem Cortex-Mx laufen haben dann 
sind Reaktionszeiten <=1ms locker drin, für die Übermittlung von 
Steuerbefehlen und Rückmeldungen sollte das reichen.
Stören könnten viele Broadcasts, aber dazu muss man das Netz klein und 
sauber halten. UDP wäre dabei noch etwas schlanker als TCP wenn man mit 
kleinen Datenpaketen hinkommt. Bei TCP sollte noch das 'Nagling' 
abgeschaltet werden wenn vorhanden, ist bei den genannten Stacks aber 
kein Problem.

von JojoS (Gast)


Lesenswert?

EtherCAT ist eine mächtig umfangreiche Spec, die wirst du auf einem 
Cortex-M nicht machen wollen und ist mir auch noch nicht untergekommen. 
Das braucht zB auch zwei Ethernet Phys, dazu gibt es spezielle ASICs, 
FPGAs oder spezielle Prozessoren wie die ti Sitara Serie, Cortex-A mit 
Linux drauf.

von reflection (Gast)


Lesenswert?

Ich schmeiss jetzt einfach kurz in die Runde was unser Lehrer bei RT 
immer sagte:

Was ist in diesem speziellen Fall RT? RT ist nicht definiert, es kommt 
auf die Umgebung an. Wenn Dein Roboter gegebenenfalls nur 1 Pos pro 
Stunde anfahren könnte, wären 20ms z.B. ziemlich RT. Wenn er aber für 
eine Pos 20ms benötigt sind 20ms sicher nicht mehr RT.

Denke Du solltest Dich zuerst einmal damit befassen was in Deinem Fall 
als RT zu bezeichnen ist.

Es Grüessli

von patsch007 (Gast)


Lesenswert?

Übersicht Feldbusse:


Modbus TCP:
Ist wahrscheinlich der simpelste Ethernet basierte Feldbus.
Aber dafür ned Echtzeitfähig in der Literatur steht 50ms Sekunden herum. 
Hab ich schon mit unter 10ms Zykluszeit auch betrieben.

Profinet:
Geiles Protokoll is hald von Siemens. Es hat einen relativ großen Memory 
Footprint. Zykluszeit um die 10ms bei RT und bei IRT  gehts runter bis 
250µs (31,25µs). Es ist relativ Komplex.

Ethernet/IP:
Naja Amerikanisch hald ist relativ komplex vom Objektverzeichnis her. 
Für so 10ms herum Zykluszeit ausgelegt. Mit CIP Motion und 
Zeitsynchronisation geht auch weniger.

Ethercat (Katzenbus):
Ok dazu brauchst du wie schon gesagt ein FPGA oder ASIC (gibt Slave ASIC 
von Beckhof) Lizenzmodell is ech blöd. Aber es ist schnell und hat eine 
Allergie gegen Switche und Hubs. (Schieberegister)

Powerlink:
Ist Open Source. Gibt für einige Plattformen fertige Portierungen. Als 
Beispiel die Linux variante. Mit einem normalen µC sind da auch so 1ms 
herum möglich. Mit FPGA Lösung so ca. 200ns. Die EPSG ist normalerweise 
sehr Hilfsbereit. Hab da relativ gute Erfahrungen gemacht.

Interessante Dinge sind auch für Realtime:

Renesas TPS-1 für Profinet
Innovasic Fido5000 REM interessanter Netzwerk Chip/Switch kann alle 
Realtime Ethernet Protokolle

Hilscher netX als Netzwerkcontroller

Du kannst auch was eigenes basteln und dabei über viele blöde Sachen 
stolpern.

von Michael W. (Gast)


Lesenswert?

patsch007 schrieb:
> Hilscher netX als Netzwerkcontroller
Bei dem Namen klingelt es irgendwie bei mir.

von patsch007 (Gast)


Lesenswert?

Markus Wagner schrieb:
>> Hilscher netX als Netzwerkcontroller
> Bei dem Namen klingelt es irgendwie bei mir.

In wie fern den ?

Hab die schon öfter bei einigen SPS Herstellern verbaut gesehen.

von 机械人 (Gast)


Lesenswert?

Spinter schrieb:
> Nach meinen Recherchen taugen reines TCP oder UDP nicht für RT.

Was ist RT?
Das ist keine Ja/Nein-Spezifikation. Du mußt schon Zeitvorstellungen 
nennen.

von J. S. (engineer) Benutzerseite


Lesenswert?

cyblord ---- schrieb:
> UDP würde schon gehen, aber wenn er nur eine Verbindung vom Controller
> zu einem Roboter haben will, wozu dann noch IP und UDP mitschleppen?

IP braucht man ja nicht. Ein simples UDP ist ja ausreichend für die 
Kommunikation. Gemacht wird es von den Kunden meistens deshalb, weil sie 
Leitungen sparen müssen. Gerade bei Robotern hat man in den Armen und 
Gelenkübergängen meistens sehr wenig Platz. Ethernet hat den Vorteil, 
dass es über eine geringe Zahl von Verbindungsdrähten viel Bandbreite 
rüberbekommt und die Chips sowie vor allem die Kabel absolute Massenware 
sind.

von mar IO (Gast)


Lesenswert?

Jürgen Schuhmacher schrieb:
> IP braucht man ja nicht. Ein simples UDP ist ja ausreichend für die
> Kommunikation.

UDP braucht aber IP! Man kann auch nur reine Eathernet-Pakete 
verschicken.

Aber zurück zum Thema: wie bereits erwähnt, ohne Randbedingungen kann 
man nur abschätzen, was mit RT gemeint ist.

von Kein Name (Gast)


Lesenswert?

Und was ist die Aufgabe? Baust du den Roboter und die Steuerung muss 
halt irgendwie funktionieren? Oder wird das eine theoretische Abhandlung 
über das optimale Netzwerkprotokoll?

von MCUA (Gast)


Lesenswert?

>Gibt es Alternativen?
Es gibt 1000e Alternativen, und man nicht kein umständliches Protokoll, 
wenn man's nicht braucht.

von Cyblord -. (cyblord)


Lesenswert?

Jürgen Schuhmacher schrieb:

> IP braucht man ja nicht. Ein simples UDP ist ja ausreichend

[] Du hast das Schichtenmodell verstanden

von Michael W. (Gast)


Lesenswert?

patsch007 schrieb:
> Markus Wagner schrieb:
>>> Hilscher netX als Netzwerkcontroller
>> Bei dem Namen klingelt es irgendwie bei mir.
>
> In wie fern den ?

Ich hatte mich mit dem Namen irgendwie vertan. Gemeint war sich er das 
hier: http://de.hilscher.com/home_aboutus.html

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.