# Modbus TCP oder EtherCAT



## Kieler (13 Februar 2020)

Moin,

ich darf nach langer Zeit wieder ein größeres CODESYS Projekt machen und bin bei der Auswahl meiner Komponenten relativ frei. Zur Zeit plane ich EA Inseln von Helmholz einzusetzen. Diese gibt es als Modbus TCP Variante und als EtherCAT Variante. Meine Steuerung, unterstützt auch beide Protokolle. Echtzeit spielt bei mir eigentlich weniger eine Rolle. Preislich ist es auch kein Unterschied. Gibt es Gründe für die eine oder andere Variante. Vielen Dank für eure Ideen.


----------



## Guga (13 Februar 2020)

Modbus TCP: 
Kleinster gemeinsamer Nenner bei der Kommunikation zwischen mehreren Teilnehmern. Es werden Daten von Adressenbereichen austauscht. Was/wo welche Bedeutung hat musst du dir erlesen und auf beiden Seiten codieren. Config-Paramter als StartUp z.B. im Controller hinterlegen damit beim HW Tausch dieser korrekt arbeitet: Fehlanzeige.

Ich wüsste das ich Modbus TCP nicht wählen würde. 
Es gibt hier im Forum diesbezüglich ähnnlich gelagerte Meinungen von anderen Personen.

Guga


----------



## Blockmove (14 Februar 2020)

Ein Unterschied liegt auch in den Netzwerkkomponenten.
Bei Modbus kannst du normale Switche verwenden und hast keine Vorgaben bezüglich Topologie.
Mit Ethercat ist das etwas anders.
Außerdem ist Modbus etwas „robuster“ da es eben keine Echtzeit hat.


----------



## Kieler (14 Februar 2020)

Ich tendiere auch zu Modbus TCP. Mit Hardwareadressen habe ich keine Probleme. Aber vermutlich habe ich von EtherCAT einfach keine Ahnung. Dazu muss ich mir einmal einen Versuch aufbauen.


----------



## Blockmove (14 Februar 2020)

Kieler schrieb:


> Ich tendiere auch zu Modbus TCP. Mit Hardwareadressen habe ich keine Probleme. Aber vermutlich habe ich von EtherCAT einfach keine Ahnung. Dazu muss ich mir einmal einen Versuch aufbauen.



Fehlendes Wissen sollte nicht unbedingt ein Entscheidungskriterium sein 
Je nach Steuerung ist Ethercat meist einfacher zu konfigurieren als Modbus-TCP.
Es gibt dafür EDS-Dateien. Im Prinzip das Gegenstück zu den Profinet GSDML-Dateien.
Bei Modbus kann es dir passieren, dass du dich mit irgendwelchen Register-Nr. rumschlagen musst.
Also erstmal schauen, was bei der Steuerung besser geht.
Und mal schauen, was in der Anlage alles verbaut sein muss.
Wenn du viele "normale" Netzwerkteilnehmer (Scanner, Kamera, Drucker, ...) hast, dann musst du bei Ethercat Hirnschmalz in die Netzwerk-Topologie stecken.
Je nach Anlage kann hier ein 2.Netzwerk vielleicht sogar sinnvoll sein.

Gruß
Blockmove


----------



## Kieler (15 Februar 2020)

Blockmove schrieb:


> Fehlendes Wissen sollte nicht unbedingt ein Entscheidungskriterium sein
> Je nach Steuerung ist Ethercat meist einfacher zu konfigurieren als Modbus-TCP.


Da hast du natürlich vollkommen recht. Man muss aber auch immer einen Kompromiss machen, zwischen neues ausprobieren und Dingen von dem man weiß, dass sie funktionieren. In diesem Projekt ist nach Jahrzehnten Siemens alles neu. Neue Steuerungen (bin noch auf der Suche) neue Software (CODESYS 3.5) und neue EA Ebene. Hier tendiere ich zurzeit zu Helmholz. Deren dezentrales Feldbus-System TB20 hat Buskoppler für Modbus, CANbus, EtherCAT und auch Profinet.


----------



## Blockmove (15 Februar 2020)

Kieler schrieb:


> Da hast du natürlich vollkommen recht. Man muss aber auch immer einen Kompromiss machen, zwischen neues ausprobieren und Dingen von dem man weiß, dass sie funktionieren. In diesem Projekt ist nach Jahrzehnten Siemens alles neu. Neue Steuerungen (bin noch auf der Suche) neue Software (CODESYS 3.5) und neue EA Ebene. Hier tendiere ich zurzeit zu Helmholz. Deren dezentrales Feldbus-System TB20 hat Buskoppler für Modbus, CANbus, EtherCAT und auch Profinet.



Das TB20 habe ich mir auch schon mal angeschaut.
Ein KO-Kriterium waren fehlende Safety-Module.

Du kannst auch mal einen Blick auf das Cube20S-System von Murrelektronik werfen.
Das gibt's auch Busköpfe für verschiedene Protokolle.

Gruß
Blockmove


----------



## Kieler (15 Februar 2020)

Blockmove;
Du kannst auch mal einen Blick auf das Cube20S-System von Murrelektronik werfen.
Das gibt's auch Busköpfe für verschiedene Protokolle. [/QUOTE schrieb:
			
		

> Das sieht auch gut aus. Habe ich mir auch letztens in Hamburg auf der Messe angesehen. Safety ist bei mir aber eher selten.


----------



## corrado (24 Februar 2020)

vergiss Wartung und Service nicht wenn du nicht auf Lebenszeit dieser Anlage mit ihr verbunden sein willst. Aus dieser Sicht spricht mehr für Modbus weil das System doch noch weiter verbreitet ist und du daher eher jemand findest der mal was ändern oder Fehler suchen kann.

Grüsse Corrado


----------



## Kieler (24 Februar 2020)

Hallo Corrado,

danke für deinen Hinweis. Das ist ein Thema, welches ich immer im Hinterkopf habe. Da wir zur Zeit zur XC303 von Eaton tendieren, wollen wir für die EA Signale auch deren EA Karten einsetzen. Diese lassen sich aber nur über CANopen anbinden.


----------



## Guga (24 Februar 2020)

Wie gesagt bin ich kein Freund von Modbus TCP.
Wenn du aber mal google anschmeisst und nach dem Marktanteil schaust (z.B. hier https://www.hms-networks.com/de/new...ndustrieller-netzwerke-2019-aus-sicht-von-hms) siehst du das Modbus TCP eigentlich unter "ferner liefen" aufgeführt sind.
Wenn du etwas *mehr *willst/benötigst kannst du es damit nicht abdecken.
Ich mag ProfiNet (allerdings sagt Siemens ja das es dies gegen TSN ersetzen will)  und EtherCAT, sage auch nicht nein zu Profibus oder CANopen. Diese klassichen Feldbusse sind allerdings meines Erachtens für Neuanlagen nicht mehr wirklich Stand der Dinge. Ein Patchkabel zu stecken ist nun mal einfacher als sich um Endwiderstände oder oder Gedanken machen zu dürfen.Ich denke Modbus TCP wird sich genauso wie der gute Klingeldraht (seriell) noch lange in den Anlagen verfügbar sein - allerdings nicht weil es "gut" ist sondern weil es einfach nur existiert und man es schon immer so gemacht hat. 

Ich an deiner Stelle würde mir jetzt erst mal einige Gedanken machen welche exotischen Wünsche bezüglich Sensoren und Anforderung denn maximal in deinem System vorkommen werden und dann mal googeln auf welchen Feldbussen du entsprechende Geräte findest. Bei Modbus TCP ist die Liste ziemlich endlich.


Guga


----------



## zako (25 Februar 2020)

Guga schrieb:


> ...Ich mag ProfiNet (allerdings sagt Siemens ja das es dies gegen TSN ersetzen will) ...



ersetzen? Ich würde hier eher davon sprechen, dass PROFINET um die Features von TSN zusätzlich erweitert wird:
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif]https://de.profibus.com/presse/news/spezifikation-von-profinet-mit-tsn-abgeschlossen/
[/FONT]


----------



## Kieler (25 Februar 2020)

#Guka
Der Artikel ist wirklich interessant.


----------



## Baschankun (25 Februar 2020)

Das Lesen und Schreiben von IO Daten erzeugt bei Modbus deutlich mehr Datenverkehr. 
Zum Beispiel: 
Der Modbus Master schreibt z.B. mit FC16 Daten und bekommt vom Slave eine Antwort. Dann liest der Modbus Master die Daten mit FC3 und bekommt die Input Daten in der Antwort vom Slave.

EtherCAT macht das Ganze in zwei Frames / einem Zyklus (bin kein EtherCAT Spezialist) und hat damit ein besseres Echtzeitverhalten.

Dafür kann man bei Modbus bei jedem Sendetelegramm die Modbus-Register Ändern.


Bei einer konkreten Anwendung sollte man beide Lösungen durchkonstruieren (welche Daten, Netztopologie, wie schnell, etc.) und auf Machbarkeit, Performance, Netzlast etc. prüfen.
Ich persönlich würde wg. der o.g. Punkte EtherCAT vorziehen - auch vor Profinet, wenn es um Echtzeitverhalten geht.

-Baschankun


----------



## Kieler (25 Februar 2020)

Da ich das ganze CODESYS 3.5 machen werde, ist die Projektierung von Modbus TCP und EtherCAT ähnlich aufwendig. Die von mir vorgesehenen EA Teilnehmer können beides. EtherCAT ist moderner und leistungsfähiger. Also ganz klar EtherCAT? Da bin ich mir noch nicht sicher. Bei Modbus TCP kann ich jegliche Topologie, welche mir einfällt, umsetzen. Bei EtherCAT scheint die Reihenfolge der Teilnehmer eine wichtige Rolle zu spielen. Das stelle ich mir bei der Inbetriebnahme als Einschränkung vor. Aber ich habe es auch noch nicht verwendet.


----------



## Kieler (7 Januar 2022)

Wir haben die Anlage im letzten Jahr wirklich gebaut. Zum Einsatz kamen:
EATON XC303 mit CODESYS
Helmholz TB20 mit ModBus TCP

Unterhalb der SPS befindet sich ein Switch, von welchen alle Modbus TCP Teilnehmer angesprochen werden.
Ich hatte wirklich etwas mit der Konfiguration zu kämpfen. Nachdem es aber einmal gelaufen hatte, war alles sehr stabil.

Jetzt soll die nächste Anlage gebaut werden. Hier hätte der Kunde gerne auf der EA Seite auch EATON (XN300) eingesetzt. Diese gibt es aber nur mit EtherCAT. Also bin ich wieder an der gleichen Stelle wie vor zwei Jahren. Inzwischen habe ich viel gelesen, aber wenig probiert. Daher habe ich etwas Bedenken hinsichtlich des Einsatzes von EtherCAT. Es erinnert mich vom Prinzip an Interbus. Das hat unheimlich instabil auf den Ausfall einzelner Teilnehmer reagiert. Außerdem würde ich gerne einen Stern aufbauen. Das geht meines Wissens nicht. Hat jemand eine Idee?


----------



## Guga (7 Januar 2022)

Das geht mit Ethercat.
Konfiguration mit SyncUnits bzw HotConnect.
Das war hier schon ein paar mal Thema - Suchfunktion.
Ganz einfach ist es wenn Deine HW einen (optionalen)  Adressschalter hat (wie gesagt dann HotConnect).
Guga


----------



## xfred343 (8 Januar 2022)

Baschankun schrieb:


> Das Lesen und Schreiben von IO Daten erzeugt bei Modbus deutlich mehr Datenverkehr.
> Zum Beispiel:
> Der Modbus Master schreibt z.B. mit FC16 Daten und bekommt vom Slave eine Antwort. Dann liest der Modbus Master die Daten mit FC3 und bekommt die Input Daten in der Antwort vom Slave.
> 
> ...



Ich lese via Modbus das ganze Speicherabbild mit FC3 mit einem einzigen TCP/IP-Befehl, alles andere passiert dann in höheren Programmiersprachen im Speicher, nur bei Änderungen schreibe ich mit FC16 das ganze Speicherabbild wieder zurück. Geht blitzschnell, bei Beckhoff habe ich so alle analogen und digitalen Register mit 2 TCP/IP-Befehlen abgebildet. Bin herstellerunabhängig (bis auf TCP/IP ;-)) und kann machen was ich will... das sehe ich bei den proprietären Lösungen nicht so. Also ganz klar: Modbus - die FC3 und FC16 Funktionen sind "normierte Konstanten", man hat nicht dauernd mit Updates zu kämpfen und solange es TCP/IP gibt bleibt es auch zukunftssicher.


----------



## Blockmove (8 Januar 2022)

Naja Modbus ist der Lanz Bulldog und Ethercat der Sportwagen.

Stern ist eher außergewöhnlich.
Zum erhöhen der Sicherheit, ist eine Ring-Topologie häufiger.
Wenn du „normale“ Anlagen hast, ist Ethercat einfacher als Modbus.
Konfiguration deutlich besser als mit Modbus. Kein Theater mit unterschiedlicher Zählweise bei Registern und dergleichen.
Hast du „fremde“ Teilnehmer (Drucker, Kamera, …) im Netz, dann brauchst du bei Ethercat spezielle Switche oder ein getrenntes Netzwerk. 
Ich persönlich würde in einer Anlage Ethercat Modbus vorziehen.


----------



## olliew (8 Januar 2022)

Kommt dann doch stark drauf an was genau die Anforderungen / Erwartungen sind, und mit welche Komponenten man arbeiten muss.

Modbus TCP ist relativ einfach, und es gibt so ziemlich für alles eine Variante / Implememtierung.
Es fehlt dann aber zB Diagnose und Konfiguration.


----------



## Blockmove (8 Januar 2022)

olliew schrieb:


> Kommt dann doch stark drauf an was genau die Anforderungen / Erwartungen sind, und mit welche Komponenten man arbeiten muss.
> 
> Modbus TCP ist relativ einfach, und es gibt so ziemlich für alles eine Variante / Implememtierung.
> Es fehlt dann aber zB Diagnose und Konfiguration.



Stimmt.
Im Maschinenbau ist Modbus eigentlich der Exote und Profinet/Ethercat der Standard.
Bei der Gebäudetechnik ist's andersrum.

Modbus ist halt aufgrund des Standard TCP-Protokolls absolut überall einsetzbar.
Ob der Aktor in Timbuktu ist oder im gleichen Schaltschrank ist Modbus egal.
Dafür ist das Zeitverhalten halt kaum deterministisch.


----------



## IBFS (8 Januar 2022)

Alleine schon aufgrund der eindeutigen Strukturierung im Beckhoff XAE und auch bezogen auf den Beckhoff Support würde ich definitiv Ethercat nehmen. Ich komme aus dem NEXEED OpConPlus Umfeld, da ist Ethercat weitestgehend vorgegeben.


----------



## Kieler (8 Januar 2022)

@IBFS
Wie ich schon vorher geschrieben habe, setze ich kein Beckhoff ein, sondern EATON mit CODESYS. Trotzdem, lässt sich EtherCAD sicher auch hier einfacher einrichten. Aber ich habe ein Problem mit der Linienstruktur von EtherCAD. Ich habe 8 Schaltschränke und in jedem eine EA Insel. Falls ein Schaltschrank ausfällt, sollen die anderen Schränke noch funktionieren. Da habe ich bei EtherCAD so meine Bedenken. Vor Ethernet gab es unter den Feldbusen unter anderem Profibus und Interbus. Interbus verfügte über eine ähnliche Linienstruktur.  Das war seine größte Schwäche. Sobald ein Teilnehmer ausfiel, fielen alle nachfolgenden aus. Was für ein Mist.

@Blockmove 
Ja ein Ring wäre natürlich eine gute Alternative. Bekommt man das mit EtherCAD hin? Benötigt man dazu einen bestimmten Switch?


----------



## IBFS (8 Januar 2022)

Kieler schrieb:


> Aber ich habe ein Problem mit der Linienstruktur von EtherCAD



So pauschal gesprochen ist das nicht korrekt. Abgesehen von Verzeigungen gibt es zumindest in der
Beckhoff Welt sog. Hot-Connect-Gruppen usw.


----------



## Blockmove (8 Januar 2022)

@Kieler 
Deine Bedenken sind da nicht unberechtigt.
Ethercat ist in der Hinsicht vergleichbar mit Profibus.
Ob Ring oder HotConnect-Groups unterstützt werden, solltest du mit Eaton abklären.


----------



## Guga (8 Januar 2022)

Physikalischen EtherCAT- Stern kann man mit spezieller HW (kein regulärer Ethernet Switch) lösen.
Beckhoff EK1122 oder CU1128.
Wenn du EtherCAT- EA-Insel hast nimmt man als Kopf jeweils einen EK1101 (hat nen Dip-Schalter).

Von der Funktionsweise von EtherCAT. Das Telegramm wird jeweils an den nächsten Slave weitergegebene (und irgendwann geht es wieder zurück).
Per ETG-Definition muss jeder Teilnehmer eine SW-Adresse beherrschen. Das kann man in der Config eingeben und somit wird dann wenn entsprechend Config + HW zugeordnet werden.

Das Ganze ist nur mistig in Bezug auf Wartung. Um ein Gerät zu ersetzen muss man im Vorfeld im Gerät die SW-Adresse setzen. Da ist es mit Dip-Schaltern halt wesentlich schöner. Neue HW rein in die Anlage, Dip-Schalter setzen und fertig.
Prinzipiell kann eine "Gruppe" über einen einzelnes Modul mit Dip-Schalter (oder SW-Adresse) gesteuert werden. E.g. ein EA-Kopf und dahinter sind ja normalerweise einige EA-Slices.

Bei Interbus war es so das nichts mehr lief wenn ein Gerät Defekt/nicht vorhanden war. 
Das ist bei EtherCAT nicht der Fall. Bis zur Stelle wo die HW vorhanden ist funktioniert es (SyncUnits sind zu beachten - da ein Datagramm (Befehl im EtherCAT-Frame) verschiedene EAs bedienen kann und die Fehlerprüfung hier stattfindet. Ist ein Teilnehmer nicht vorhanden ist das ganze Datagramm fehlerhaft. Wie gesagt kann man das über SyncUnits aber einfach steuern).

HotConnect ist die Kombi aus SyncUnits und Adresszuordnung. Das sollte CoDeSys im Hintergrund selber passend arrangieren.

Guga


----------

