die 4 slaves sollen read und write, aber der master auch nun weis ich net wie genau ich das anstellen soll. ich auch schon die wagomodbus_ip.lib oder sowas .. do das mit dem initSlaveList drin...
brauch dringt irgend welchen kleine bsp programm womit ich das verstehen kann wie das alles funzt und zusammen hängt.
mfg
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dabei senden alle Controller, alle deklarierten Variablen einer Netzwerkvariablenliste mit einer eindeutigen ID ins Netzwerk. Nun kann jeder Controller, der dieselbe Netzwerkvariablenliste mit etsprechender ID besitzt diese Variablen empfangen und verarbeiten!
Dazu musst Du unter den > einen Haken bei Netzvariablen unterstützen setzten - Das vordefinierte Protokoll UDP bleibt erhalten.
Nun musst Du eine neue Variablenliste unter den anlegen. Also >
Hier gibst Du der Liste einen eindeutigen Namen, beispielsweise Var_Controller1_Write
Dann klickst Du auf und gibst der Liste eine eindeutige COB-ID, beispielsweise 100
Nun machst Du noch den Haken bei weg und machst ihn stattdessen bei und ebenso einen Haken bei
Jetzt noch auf und dann ein Doppelklick auf die soeben erstellte Liste machen. Hier kannst Du jetzt alle möglichen Variablen deklarieren.
Das heißt, dass Controller1 diese Variablen jetzt bei jeder Änderung ins Netzwerk sendet. Nun fehlt natürlich noch die Gegenstelle, der Controller, der diese Variablen empfangen soll.
Also machen wir das selbe bei Controller2.
Nachdem Du die Netzvariablen unter den Zielsystemeinstellungen aktiviert hast, legst Du auch hier unter den Globalen Variablen eine neue Variablenliste an. Diese nennst Du jetzt Var_Controller1_Read, klickst auf und gibst bei COB-ID ebenfalls 100 ein und machst noch einen Haken bei .
Anschließend auf OK klicken und ebenfalls die Liste mit Variblen füttern. Jetzt musst du allerdings darauf achten, dass die Variablen genau in derselben Reihenfolge angelegt werden, wie in der Var_Controller1_Write Liste. Man könnte die Liste auch aus Cotroller1 exportieren und in Controller2 importieren und die Objekt-Eigenschaften dann dementsprechend anpassen.
Ergo steht in der Variablenliste Var_Controller1_Read:
Dabei spielt es eigentlich keine Rolle, wie Du die Variable ansich nennst, nur der Typ muss idenisch sein. Soll heißen, dass wenn in dieser Liste jetzt oben anstatt stehen würde, dann hast Du den Aussentemperaturwert von Controller1 in dieser Variable stehen.
Aber mach das zur Übersicht wirklich identisch! Diese Liste kannst Du demnach in alle Controller einpflegen, musst nur auf die COB-ID und die Reihenfolge der Variablen achten. Jetzt empfangen alle Controller, die eine Liste mit der COB-ID 100 haben, alle Variablen vom Controller1, die eben in dieser Liste ins Netzwerk geschrieben werden.
Wenn Controller2 jetzt auch Variablen ins Netzwerk stellen soll, dann wiederholst Du alle Schritte und gibst den Listen eben andere Namen und vor allem der COB-ID eine andere Nummer!
Controller1 schreibt Variablen ins Netzwerk (COB-ID = 100)
Alle anderen Controller lesen Variablen (COB-ID = 100)
Controller2 schreibt Variablen ins Netzwerk (COB-ID = 200)
Alle anderen Controller lesen Variablen (COB-ID = 200)
usw.
Am Wochenende schaff ich es vielleicht auch noch ein paar Screenshots anzufertigen, obwohl dieses Thema ja schon öfters hier beschrieben worden ist. Nur wenn man einmal durchgestiegen ist, dan ist das wirklich kinderleicht!
Hoffe, ich konnte ein wenig helfen...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hab da ein prob ich hab 5 controler ( 5x 750-841)
4 sollen slave sein und einer master.
die 4 slaves sollen read und write, aber der master auch nun weis ich net wie genau ich das anstellen soll. ich auch schon die wagomodbus_ip.lib oder sowas .. do das mit dem initSlaveList drin...
brauch dringt irgend welchen kleine bsp programm womit ich das verstehen kann wie das alles funzt und zusammen hängt.
mfg
Mach das am besten über die Funktion der
Das ist die einfachste und sauberste Lösung!
Dabei senden alle Controller, alle deklarierten Variablen einer Netzwerkvariablenliste mit einer eindeutigen ID ins Netzwerk. Nun kann jeder Controller, der dieselbe Netzwerkvariablenliste mit etsprechender ID besitzt diese Variablen empfangen und verarbeiten!
Dazu musst Du unter den > einen Haken bei Netzvariablen unterstützen setzten - Das vordefinierte Protokoll UDP bleibt erhalten.
Nun musst Du eine neue Variablenliste unter den anlegen. Also >
Hier gibst Du der Liste einen eindeutigen Namen, beispielsweise Var_Controller1_Write
Dann klickst Du auf und gibst der Liste eine eindeutige COB-ID, beispielsweise 100
Nun machst Du noch den Haken bei weg und machst ihn stattdessen bei und ebenso einen Haken bei
Jetzt noch auf und dann ein Doppelklick auf die soeben erstellte Liste machen. Hier kannst Du jetzt alle möglichen Variablen deklarieren.
Das heißt, dass Controller1 diese Variablen jetzt bei jeder Änderung ins Netzwerk sendet. Nun fehlt natürlich noch die Gegenstelle, der Controller, der diese Variablen empfangen soll.
Also machen wir das selbe bei Controller2.
Nachdem Du die Netzvariablen unter den Zielsystemeinstellungen aktiviert hast, legst Du auch hier unter den Globalen Variablen eine neue Variablenliste an. Diese nennst Du jetzt Var_Controller1_Read, klickst auf und gibst bei COB-ID ebenfalls 100 ein und machst noch einen Haken bei .
Anschließend auf OK klicken und ebenfalls die Liste mit Variblen füttern. Jetzt musst du allerdings darauf achten, dass die Variablen genau in derselben Reihenfolge angelegt werden, wie in der Var_Controller1_Write Liste. Man könnte die Liste auch aus Cotroller1 exportieren und in Controller2 importieren und die Objekt-Eigenschaften dann dementsprechend anpassen.
Ergo steht in der Variablenliste Var_Controller1_Read:
Dabei spielt es eigentlich keine Rolle, wie Du die Variable ansich nennst, nur der Typ muss idenisch sein. Soll heißen, dass wenn in dieser Liste jetzt oben anstatt stehen würde, dann hast Du den Aussentemperaturwert von Controller1 in dieser Variable stehen.
Aber mach das zur Übersicht wirklich identisch! Diese Liste kannst Du demnach in alle Controller einpflegen, musst nur auf die COB-ID und die Reihenfolge der Variablen achten. Jetzt empfangen alle Controller, die eine Liste mit der COB-ID 100 haben, alle Variablen vom Controller1, die eben in dieser Liste ins Netzwerk geschrieben werden.
Wenn Controller2 jetzt auch Variablen ins Netzwerk stellen soll, dann wiederholst Du alle Schritte und gibst den Listen eben andere Namen und vor allem der COB-ID eine andere Nummer!
Controller1 schreibt Variablen ins Netzwerk (COB-ID = 100)
Alle anderen Controller lesen Variablen (COB-ID = 100)
Controller2 schreibt Variablen ins Netzwerk (COB-ID = 200)
Alle anderen Controller lesen Variablen (COB-ID = 200)
usw.
Am Wochenende schaff ich es vielleicht auch noch ein paar Screenshots anzufertigen, obwohl dieses Thema ja schon öfters hier beschrieben worden ist. Nur wenn man einmal durchgestiegen ist, dan ist das wirklich kinderleicht!
Hoffe, ich konnte ein wenig helfen...
Hallo Prosi,
eine Diskussion ob "Netzwerkvariablen" oder "Modbus" die bessere Lösung ist möchte ich hier nicht starten.
Info und Beispiele zum Thema "Modbus auf WAGO" findest du hier:
http://www.wago.com/wagoweb/documentati ... 003d_f.htm
Gruss cmoeller