Sugar Valley Modbus

Hallo,

ich habe eine „SaltRelax pro“ (identisch mit Sugar Valley) via Modbus an IPS angebunden.
Leider gelingt es mir nicht andere Werte ausser Temp 0x0106 (Adresse 262) oder den PH-Wert 0x102 (Adresse 258) zu lesen. mit den Werte wie Relay, usw tue ich mich schwer.
Die Anleitung des Herstellers sagt:
modbus_mbf_relay_state.PNG
0x010E wäre dann ja die Adresse 270. Wie bekomme ich nun den wert der einzelnen Relais heraus? (Bit 0,1,2)
modbus_mbf_relay_state_sym01.PNG

Versuche mal diesen Code mit Deiner Integervariable aus der Modbus Instanz, Die Zuweisung Relais 1 bis 8 könnte auch direkt Deine Relaisvariablen werden, also nicht Relais1=1 oder 0 sondern setvalue(DeineVariable,1 oder 0) werden.

 <?php
$WertRelais1bis8=GetValueInteger(41739);  // Test Integer Variable

If ($WertRelais1bis8 & 1)  
$Relais1=1;
else
$Relais1=0;

If ($WertRelais1bis8 & 2)  
$Relais2=1;
else
$Relais2=0;

If ($WertRelais1bis8 & 4)  
$Relais3=1;
else
$Relais3=0;

If ($WertRelais1bis8 & 8)  
$Relais4=1;
else
$Relais4=0;

If ($WertRelais1bis8 & 16)  
$Relais5=1;
else
$Relais5=0;

If ($WertRelais1bis8 & 32)  
$Relais6=1;
else
$Relais6=0;

If ($WertRelais1bis8 & 64)  
$Relais7=1;
else
$Relais7=0;

If ($WertRelais1bis8 & 128)  
$Relais8=1;
else
$Relais8=0;

echo $WertRelais1bis8." ".$Relais1." ".$Relais2," ".$Relais3." ".$Relais4." ".$Relais5," ".$Relais6." ".$Relais7." ".$Relais8;
  

Gruß Helmut

Danke,

das war ja echt einfach und funktioniert wie gewünscht.

:wink:
Einfach ist alles, wenn man weiß wie, geht sicher auch mit Schieben, aber gut.
Gruß Helmut

Hallo Eisenkoch,

ich lese nun seit ein paar Tagen auch schon die Werte aus meiner Oxilife aus. Ich verwende zwar die Funktion „Holding Register“ auslesen, das funktioniert auch. Keine Ahnung was da der Unterschied ist.

Ich habe es aber noch nicht geschafft, das ich was an der Steuerung schalten kann. z.B. die Filterpumpe einschalten. Hast du das schon was gemacht?

Hallo,
ich versuche gerade meinen SugarValley auszulesen. Wenn ich am ganz rechten Modbus stecker anstecke, bekomme ich kein Signal. Am Modbus Stecker Display empfange ich Daten ohne Ende.
Leider kann ich hier über das Modbus Device nichts rausbekommen. ( Word16Bit, input register auslesen, Momentan Adresse 258)
Muss ich am Salzgenerator noch etwas umstellen? Leider finde ich hier nichts im Netz.
Grüße,
Stefan

Hallo, das folgende Bsp. liest die Adresse 0x0106 (Temperatur) aus

Ich nutze immer „Holding Registers (03)“

Im Gateway habe ich folgendes aktiv:
image

als Gateway selbst nutze ich einen moxa MB3170 (RTU Slave)

Ok… glaub beim Gateway habe ich den Modus noch anders eingestellt. Kann erst heute Abend testen.
Was ich nicht verstehe, warum ich bei den 3 Bus Kontakten auf der Salzanlage im Debug Modus nichts bekomme ausser auf dem Display Port.

Hab jetzt alles so eingerichtet wie gezeigt. Leider empfange ich von dem Port (MODBUS GATEWAY) gar nichts… nur ( WAITING - TRANSMIT- WAIT_ERROR).
Muss ich in der Salzanlage noch was freischalten?
Wie gesagt, wenn ich auf dem Displayport bin, kommen Daten ohne Ende.

Erzähl doch noch mal genau wie dein Aufbau ist bzw. welche Geräte du wie/wo angeschlossen hast?

paresy

Ok… ich glaub soweit hab ich den Aufbau jetzt hinbekommen.
Ich stecke beim Saltmanager auf dem MODBUS Port 3 ( EXTERN ) mit einem USR-TCP232 Adapter.

image

Als Einstellung für den USR Adapter:
image

Hier bekomme ich jetzt auch regelmässig Daten:
image

Auf IP Sympcon:
Schnitsstelle:
image

Gateway:
image

Hier kommt auf DEBUG folgendes an:

Beim Client socket kommt dann das an:

Über die MODBUS Device versuche ich über HEX 102 ( 258) den PH Wert auszulesen.

Sooo… ich hoffe jetzt kann mir geholfen werden :wink:

Vielen Dank!!!

Grüße,
Stefan

Wo ich immer noch das Problem habe, dass ich auf dem COM keine Daten bekomme:

Es müsste ModBus RTU over TCP als Modus sein, da du (soweit ich das sehe) einen simplen Seriell auf TCP Wandler hast. Außerdem ist ModBus RTU eigentlich immer RS485 (und nicht RS232 wie du es gerade machst)

Magst du da noch mal nachlesen?

paresy

Hallo parsey,
ich habe nun auf ModBus RTU …gewechselt. Genau, das ist ein simpler Wandler. Dieser ist aber ein RS485 Modbus Wandler image
Ich hab im Log jetzt andere Werte:


Ich muss auch ehrlich zugeben, das ich nicht weiss, wie ich einen Abfrage Befehl ausführe. Oder sollte die Salzanlage generell alle Werte liefern?
Ich habe ein Modbus Device angelegt. Hier bekomme ich aber nichts angezeigt.

Grüße,
Golly

Endlich funktioniert es.
Leider habe ich auf dem rechten Ausgang des Salzgenerators keine Antwort bekommen.
Bin nun auf den WiFi Port. Hier funktioniert alles.

Vielen Dank für die Hilfe!

Eine Frage habe ich noch. Kann ich dem Gerät eine ext. Temperatur übermitteln?
Ich will mir noch einen weiteren Temperaturfühler sparen.

Gruß,
Golly

Hallo zusammen,
ich versuche gerade Daten an die Sugar Valley zu senden, leider ohne Erfolg.
Ich bekomme immer ein „ILLEGAL_DATA_ADDRESS (Code: -32603)“
Hat das bei euch schon jemand am Laufen oder lest ihr alle nur Daten aus?
Ich habe schon mit allen möglichen Einstellungen getestet…

Hat jemand eine Idee für mich?
evtl. am Beispiel den Filtermodus zu setzen (0x0411, 1041)

Hast du mal versucht die Adresse +1 oder -1 zu setzen? Das hilft gerne mal.

paresy

Hallo paresy,

ich habe den Fehler gefunden und wie immer saß er vor dem Rechner :crazy_face:
Ich hatte ein neues ModBus Device angelegt und vergessen das richtige Gateway zu setzen.
Beim neu Erstellen wird immer automatisch ein Gateway gesetzt, leider in dem Fall das falsche.
Da würde eine Abfrage Sinn machen…
Ich habe mich jetzt dafür entschieden ein neues Device nur noch im Konfiguration anzulegen. Da passt es dann automatisch. Aber irgendwie ist das ModBus-Gelumpe doch sehr unübersichtlich wenn man jeden Wert mit einer eigenen Instanz abfragen muss.
Was ich bei ModBus immer wieder habe ist ein Register dass Stati Bitweise übergibt. Könnte man da nicht eine Maske einbauen und so ein Register in mehrere Variablen schreiben?
Das logische & im Skript ist zwar nicht schwer, aber eine ewige Schreiberei!

Hallo zusammen,

hat schon mal jemand versucht sie Solltemperatur zu setzen?
Ist die Adresse 1046 dez.
Ich komme da nicht zu recht.
Wenn ich 285 sende setze ich 30°, wenn ich 300 sende setze ich 39°

Hallo!

irgendwie bekomme ich das nicht hin … hab zwar daten am Mobus gateway aber keine daten am Client
siehe Bilder