Wie frage ich eine Variable im Netzwerk ab?

enboss

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,
meine Frage dreht sich im Modbus, meine Kenntnisse sind noch in dem Anfangsstadium.

Folgende Situation: Es existiert eine Wetterstation, diese wird mit Hilfe der Klemme 750-653 und der Bibliothek "MeteorologicalStation.lib" abgefragt.

Nun sind im Netzwerk noch einige weitere Feldbuscontroller von Wago (841er), die seinerseits einige Außenstrahler schalten sollen und zwar in Abhängigkeit von der Helligkeit draußen .

Die Frage lautet: Wie würdet ihr am besten diesen einen BOOL-Wert (dunkel oder nicht dunkel) zu den anderen Controllern schicken?
Ist folgende (meine) Herangehensweise richtig oder komplett falsch? -> Ich möchte in allen anderen Controllern mit der Hilfe der Bibliothek "ModbusEthernet_4.lib" und dem darin enthaltenen FB "ETHERNET_MODBUSMASTER_UDP" den Wert aus dem Wetterstation-Controller auslesen. In dem Wetterstation-Controller möchte ich die eine BOOL-Variable in der Merker AT %MW5: BOOL schreiben.

Wäre das der richtige Weg oder gibt es da einen eleganteren weg? Vielleicht sogar anders rum? Soll der Wetterstation-Controller alle anderen (das werden mehr als 10 sein) aufrufen und dort den Wert in den Speicher schreiben? Oder ist Modbus kompletter "Holz-Weg"?

Vielen Dank
 
Grundsätzlich geht das mit Modbus, allerdings hast du hier zwei verschiedene Protokolle. Die Klemme 750-653 ist für Modbus RTU, während die 750-841 über die Ethernet Schnittstelle angesprochen werden (UDP oder TCP). Der Merker MW besagt das es sich um ein Merkerwort handelt. Also eigentlich ein Zahlenwert. Hier wäre MX der Merker der Wahl.
Sobald der Wert aus der Wetterstation abgeholt worden ist und auf einem Controller zur Verfügung steht kannst du ihn von da versenden oder dort abholen lassen. Wie es dir lieber ist.
 
Hallo ccora und Hoffy,
es geht nicht um die Wetterstation, die Werte kriege ich schon ausgelesen und verwertet.
Es geht um die grundsätzliche Vorgehensweise bei solchen Netzwerken (Zusammenschluss von Kontrollern) , um eine Variable auszulesen bzw zuschreiben.
Aber wenn ich das jetzt so sehe, dann bin ich vermutlich zu mindestens nicht ganz falsch davor mit meiner Art diese Aufgabe zu erledigen.

@Hoffy Ja, das ist die Wetterstation. Ist schon tick älter:)
 
Hi enboss,

Von wie vielen Controllern sprechen wir hier und wird es bei der einen bool Variable bleiben, oder kommen hier noch weitere hinzu?

Grundsätzlich gibt es zwei Methoden:

Netzwerkvariablen, die sind Recht leicht einzurichten (hier wird eine ganze Variablenliste freigegeben), werden aber ungern genommen weil hier unter Umständen dein Netzwerk zu gespammt werden kann.

Mit Modbus UDP oder TCP musst du festlegen, ob dein Controller mit der Wetterstation die Werte auf alle anderen schreibt oder die einzelnen Controller die Werte auch bei den Controller mit der Wetterstation abholen.
Wenn hier mehrere verschiedene Werte benötigt werden, würde ich probieren hier mit einer Struktur zu arbeiten.

Gruß

Mavorkit

Gesendet von meinem SM-G389F mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ccora und Hoffy,
es geht nicht um die Wetterstation, die Werte kriege ich schon ausgelesen und verwertet.
Es geht um die grundsätzliche Vorgehensweise bei solchen Netzwerken (Zusammenschluss von Kontrollern) , um eine Variable auszulesen bzw zuschreiben.
Aber wenn ich das jetzt so sehe, dann bin ich vermutlich zu mindestens nicht ganz falsch davor mit meiner Art diese Aufgabe zu erledigen.

@Hoffy Ja, das ist die Wetterstation. Ist schon tick älter:)

Hallo enboss,

das habe ich auch so verstanden.
Ich wollte dir lediglich den Hinweis geben das du zwei verschiedene Protokolle dort hast. Wie auch Mavorkit nochmal geschrieben hat, ob du die Variable abholst oder versendest kannst du dir aussuchen.

Gruß
ccore
 
Vielen Dank für die Hilfestellung!

Eine weitere Frage, die mich grad beschäftigt, ist: was ist der Unterschied zwischen

%QW256...%QW511 PFC-OUT-Area Flüchtige SPS-Ausgangsvariablen
%IW0...%IW255 Physical-Input-Area (1) First 256 Words of physical input data
%QW0...%QW255 Physical-Output-Area (1) First 256 Words of physical output data
%MW0...%MW12287 NOVRAM 8 kB retain memory (max. 24 kB)
%IW256...%IW511 PFC-IN-Area Flüchtige SPS-Eingangsvariablen
(Seite 240 Handbuch 750-841)



Wenn ich alles richtig verstanden habe, sind die Adressen von 0 bis 255 die echten (Hardware) Aus- bzw Eingänge, die dann per Modbus gelesen bzw geschrieben werden können.
Aber wofür sind die Adressen ab 255? warum nimmt man da nicht einfach Merker? Kann mir vielleicht jemand den Unterschied und die verschiedenen Einsatzgebiete erklären?


Vielen Dank
 
Hi enboss,

0 bis 511 sind die Hardware Eingänge. Dabei werden analoge Karten zuerst adressiert, dann digitale.
512 bis 1023 sind dann die Hardware Ausgänge.
Die zwei folgenden Bereiche sind für Bus Kommunikation, soweit ich weiß ist hier die Besonderheit das Eingänge nicht von der SPS manipuliert werden können und die Ausgänge nicht vom Bus verändert werden können.
Ab 12288 fangen dann die Merker an mit MW0.

Alles nach besten Wissen und Gewissen aus den Gedächtnis heraus.

Gruß

Mavorkit

Gesendet von meinem SM-G389F mit Tapatalk
 
Zurück
Oben