# Vernetzen von zwei Controllern 750-8202 und 750-8212 im Ecockpit via TCP



## seebenischer (10 Februar 2022)

Hallo Zusammen,

wie gesagt ich würde gerne zwei Controller im Ecockpit mit einander vernetzen. Ziel ist es z.B. Globale Variablen auf beiden nutzbar zu machen.

Jetzt zu der Frage nach dem besten Weg. Ich kenn mich leider noch sehr wenig mit Modbus und Netzwerkvariablen aus. Muss ich jede Variable z.B. beim Master als Ausgang und beim Slave als Eingang neu definieren?

Kurz gibt es Beispielprogrammierungen oder etwas zum nachlesen was auch ein Laie verstehen kann. Ziel ist es auch eine Visu zu nutzen oder muss man später zwischen beiden Controllern switchen?

Danke im Voraus

Grüße Maik


----------



## Tobsucht (11 Februar 2022)

Hallo Mike,

für die Netzwerkvariablen hat CODESYS eine Beschreibung:


			https://help.codesys.com/api-content/2/codesys/3.5.13.0/en/_cds_configuring_network_variables_exchange/
		

Für Modbus von Wago:





Grüße


----------



## seebenischer (12 Februar 2022)

Danke erstmal, ich versuch mich Mal in dem Thema Netzwerkvariablen.

Grüße Maik


----------



## seebenischer (10 März 2022)

Guten Abend,

ich hab mich jetzt mal an die Netzwerkvariablen gemacht, jedoch kommt irgendwie keine Kommunikation zu stande.
Je Controler hab ich einmal eine Variablenliste NVL_Senden_xy angelegt, worin aus dem POU die "Setzvariablen" drinnen sind. Danach hab ich natürlich die NVL_ Empfang_xy Liste eingerichtet und die Variablen aus der Senderliste wurden auch automatisch von Ecockpit hinterlegt.

Nachdem nun ein Paar Variablen in die Sendelisten eingepflegt und mittels einfachen Programm integriert waren, wollte ich alles mal Testen.
In der Master SPS läuft die Zentrale Visualisierung -> Taster der Visualisierung -> ZVL_Senden (Variable ändert Zustsand im Live Modus) -> hier die große Unbekannte (hier scheint was nicht zu gehen) <- ZVL_Empfang -> Taster der Visualisierung zeigt keine Änderung aus -> POU im Slave macht nix.

Hat wer eine Idee?

Grüße Maik


----------



## KLM (10 März 2022)

Moin, Du gibst leider wenig Anhaltspunkte für eine Diagnose. Der Screenshot sagt nichts, außer, dass Du zwei Controller mit je einer NVL Rx und Tx hast. Stolperstein Nummer eins ist bei NVL die Listen-ID. Die muss für jede Tx Liste einmalig sein.
Andere Punkt könnte sein, dass Dein Task, an den die NVL gebunden ist, nicht synchron ist zum Visu-Task. D.h. wenn der Tastendruck zu kurz ist, wir er ggf. nicht erfasst. Wenn Du die Zustandsänderung aber im Live-Modus siehst, kann man das ausschließen.
Dann bliebe noch die Möglichkeit, dass Du eine zyklische Übertragung eingestellt hast, die den Tastendruck nicht erfasst. Ich empfehle eine Übertragung bei Änderung und zusätzlich eine zyklische mit relativ hohem Intervall. Letzteres so hoch, dass Du das Netzwerk mit der Broadcast-Kommunikation nicht dicht machst, aber kurz genug, dass es noch verlorengegangene UDP Telegramme als Backup erneut sendet. Je nach Anwendung, aber irgendwas im Sekundenbereich.
Und wenn Du schon dabei bist, ändere die Broadcast-Adresse von Voreinstellung Broadcast in alle Subnetze (255.255.255.255) auf die Broadcast-Adresse Deines Netzes. Bei z.B. 192.168.1.0/24 wäre das 192.168.1.255. Wenn Du Dich da nicht auskennst helfen Dir diverse Online-Rechner (erster Treffer meiner Suche: https://remotemonitoringsystems.ca/broadcast.php).


----------



## seebenischer (12 März 2022)

Guten Abend, ich hab nun alles mal ausprobiert leider ohne den gewünschten Erfolg.
Bin nun auch mal kurzfristig zu Modbus TCP / UDP gewechselt mit den selben Effekten. Das Anlegen der Variablen erfolgt Fehlerfrei (analog den Lernvideos von Wago). 
Bei der Netzwerkvariablenvariante und Thematik Broadcast Adresse, hab ich auch mal die Anpassungen vorgenommen.

Ich betreibe die Wagos bei mir zuhause und deswegen leider meiner etwas Laienhafte Beschreibung.

Vom Gefühl her, kommt es mir so vor als ob der Modbusmaster bzw. Netzwerkvariablenliste nicht gestartet wurde. Sieht man irgendwo eine Art Verbindung beider Controller, eine Art Handshake oder Watchdog zwischen beiden Controlern, unabhängig von den Variablen?

Beim simulieren (ohne Hardware, nur Programm) der Basisprogrammierung aus dem Wago Video kam ebenfalls kein Datenaustausch zustande. Daher denke ich das ich irgendein "Häkchen" vergessen habe.

Screenshot oder die Programmierung kann ich euch gern zur Verfügung stellen.

Danke für eure Hilfe


----------



## KLM (12 März 2022)

Es geht nicht, gibt leider keinerlei Hinweise, wie man Dir helfen kann. Ein Programm wäre sicherlich das Beste. Aber bitte reduziert auf das wesentliche.
Die Diagnose ist bei Modbus hier und sicher noch einigen Anderen Stellen hier im Forum beschrieben. Für die Diagnose von NVL gibt es im Forum sicher auch einige gute Beiträge, aber die darfst Du gern alleinsuchen. Dazu nur der Tipp, im eingeloggten Zustand mal die NVL anzusehen, da erscheinen zusätzliche Diagnose Variablen.
In der Simulation geht Querkommunikation (egal, welcher Feldbus/welches Protokoll) nie.


----------



## seebenischer (14 März 2022)

Ich nochmal, habe es nun hinbekommen. Vielen lieben Dank für deine Hilfe @KLM.


----------



## kukubanov (9 April 2022)

seebenischer schrieb:


> Hallo Zusammen,
> 
> wie gesagt ich würde gerne zwei Controller im Ecockpit mit einander vernetzen. Ziel ist es z.B. Globale Variablen auf beiden nutzbar zu machen.
> 
> ...


Der Austausch der Netzwerk-Variablen basiert auf einem propriäteren Protokol. Wenn du jedoch mit Modbus arbeitest, kannst du auch mit anderen Applikationen/Anwendungen auf deine Geräte zugreifen (z.B. SCADAfeathery App).  Die Konfiguration bei Modbus ist jedoch in e!C etwas anders als bei Netzwerkvariablen, aber seht ähnlich. 
Du muss jedoch immer die Variablen in beiden Steuerungen verfügbar machen. Ein möglicher, einfacher Weg dafür ist es mit Projektbibliothek zu arbeiten. Dort wird der gemeinsame Code-Anteil zwischen Steuerungen angelegt, so dass du den nur einmal pflegen musst und in beiden Steuerungen verwenden kannst.


----------



## seebenischer (9 April 2022)

Hallo Kukubanov,

kann du mir den weg mit der gemeinsamen Projektbibliothek vielleicht ein wenig näher erklären oder es anhand eines Beispieles zeigen.
Dies klingt sehr interessant.

Danke und Grüße Maik


----------



## kukubanov (15 April 2022)

seebenischer schrieb:


> Hallo Kukubanov,
> 
> kann du mir den weg mit der gemeinsamen Projektbibliothek vielleicht ein wenig näher erklären oder es anhand eines Beispieles zeigen.
> Dies klingt sehr interessant.
> ...


Hi, 

das ist relativ einfach. In e!C , ähnlich wie in Codesys3 (da ist es eigener Tab meine ich) lassen sich im Projekt DUTs/Globale Variablenlisten, PRG-Bausteine etc. anlegen. 
Also nicht im Projekt einer Steuerung (unter Applikationen), sondern im Projekt Projektbibliothek (wie im Bild unten). Diese Einträge werden in die Projekte aller Steuerungen einkompiliert und stehen dort zur Verfügung.


----------



## seebenischer (21 April 2022)

Abend,

also ich habe unter dem Projekt / Projektbibliothek eine Globale Variablenliste angelegt. Steuerung 1 setzt Ausgang xy ( global definiert) aktiv und in der globalen Liste wir der Ausgang xy aktiv / blau. Wenn ich nun den gleichen Ausgang xy in Steuerung 2 als Eingang benutze so schaltet dieser nicht.

Muss ich eine spezielle Bibliothek installieren?

Grüße Maik


----------

