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

seebenischer

Level-2
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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
 

Anhänge

  • Übersicht.jpg
    Übersicht.jpg
    470 KB · Aufrufe: 22
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).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
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.
 
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
 
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
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.

1650047253419.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
Zurück
Oben