Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Modbus Register beschreiben
#1
Big Grin 
Liebes Forum,

ich stehe vor einer potentiell einfachen Frage: Ich würde gerne via Modbus Werte zu meiner Wärmepumpe schicken. Meine Register sind konfiguriert, die Verbindung steht (ich kann Werte bei der Diagnose / Testfunktion abfragen oder abschicken), komme dann aber bei meiner Anwendung nicht so recht weiter.
Ich würde gerne den Betriebsmodus der Wärmepumpe via Gekko ändern, dazu muss ich auf ein Modbus-Register einen Wert zwischen 0 und 5 (je nach Modus) schicken. Mein erster Gedanke war via Aktion den Modbus zu beschreiben, Aktionen sehen aber scheinbar nicht vor direkt auf Registereinträge zu schreiben. Via Logik kommt die Einstellung bei der Wärmepumpe aber auch nicht an. 
Wie kann also konkret beispielsweise den Wert 5 auf meinem AO 5.14. schicken!? 


Die Frage scheint ja einfach zu sein, aber irgendwie habe ich da einen Knoten im Kopf, ich wäre dankbar wenn mir wer helfen könnte das aufzulösen 

Vielen Dank!
#2
Hi Thomas,

also grundlegend beschreibe ich auch modbus register. diese gehen in meinem falle auf eine S7 aber das sollte egal sein.

was grundlegend eine sache wäre, sind bei dir die REG Byte Order HI-LO bzw WORD Order richtig eingestellt?
Das bedeutet, dass das erste byte bzw wort auch das erste beim empfänger ist. kannst du das bestätigen?

ist das der fall, dann kann man sich den werten widmen. der aufbau im gekko bez der adressierungen ist nicht so einfach für mich, ich komme aus der siemens s7 welt und dort beginnt man bei 0 zu zählen und nicht bei 1.
hier könnte ebenfalls eine verschiebung sein.

zurück zum handling.

einen wert kannst du unterschiedlich deklarieren, hier gibt es seitens gekko eine anleitung im wiki, welche datentypen es hier gibt.
die bezeichungen C.x... oider NAT o.Ä. sind mir auch in meiner siemenswelt nicht bekannt gewesen.
aber ein integer beispielsweise, also eine ganzhal geht mit REG16 NAT.

das kannst du über DO oder AO ansprechen. ich nutze nur DO. funktioniert bei mir.

ob du das aber nun in einer logik nutzen willst weiß ich nicht. du kannst dort natürlich sagen, dass du mit einer aktion den sollwert einer logik auf 1 setzt (bin mir gerade nicht sicher ob der auch größer sein kann)
dann sagst du in der logik, wenn sollwert = 1 dann FIX = 0-5, also den modus, den du dann schalten willst auf den ausgang. danach sollwert via aktion wieder auf 0 setzen.
das ist alles sehr unelegant im gekko. aber das wäre jetzt mal aus dem kopf ein ansatz.

schön ist sicherlich anders.

sofern deine wärmepumpe den wert nur gepulst braucht musst du das mit einem r-trig machen. und danach wieder auf 0 setzen, aber das verrät dir dein handbuch der wärmepumpe.

das sind aktuell zu viele fragezeichen.

also hausaufgabe:
1) werte prüfen, ob der modbus richtig geht
2) handbuch wärmepumpe prüfen, wie der modus umgeschaltet werden kann
3) logik zum schalten basteln
4) aktion verbinden

ich vermute stark, dass du eine gewisse anzahl an logiken nutzen werden musst, sofern du das mit dem sollwert realisieren musst. das ist relativ uncool.
MfG
Sven
#3
Bei meiner Anbindung vie ModBus an die Viessmann Heizung habe ich festgestellt das die Register um eins versetzt waren. Hast mal versucht beim lesen/schreiben den angegebenen Wert -1 oder +1 zu machen?
Viele Grüße

Francisco Santos

Alle sagten "das geht nicht"... Dann kam einer, der dass nicht wusste und hat es einfach gemacht...
#4
das habe ich sogar bei meiner verbindung via S7. da sind die bits um zwei verschoben im gleichen wort Big Grin man hat also nur 30 statt 32 bits zur verfügung. aber ist halt gekko....
MfG
Sven
#5
(25.08.2023, 18:44)Sickone4 schrieb: Danke für die raschen Rückmeldungen, bei allen Antworten - *TOP* !!!

Ich habe jetzt einen etwas anderen Weg gefunden, wo ich mit Digital Boolean Werten auskomme und damit funktioniert es - sogar ganz ohne Logiken :-)

Wie ich hingegen die Werte schreiben kann, bleibt mir weiterhin ein Rätzel. 
die WP braucht einen UInt Wert, wobei insgesamt nur die Werte 0-5 relevant sind. Auf deine Idee mithilfe eines Fixwertes - im Logik-True Fall - zu schreiben bin ich vor meinem Post auch schon gekommen, das hat mir aber leider nicht geholfen. 

Die WP braucht den Wert nur gepushed, was grundsätzlich auch funktioniert, wobei r-trig dazu führt (wie auch, wenn die ganze Logik nicht true ist), dass dann dann wieder der 0-Wert in das Register geschickt wird, dadurch haben sich auch 2 Logiken in meinem Ansatz gegenseitig beeinflusst, die auf das selbe Register schreiben sollten. 
Übrigens, wenn ich meine Modbus-Register Werte in einen Momory Eintrag schreibe, passt alles, d.h. die Logiken haben funktioniert, nur die Übertragung zur WP war fehlerhaft.

Auch wenn für den Fall nicht mehr relevant, grundsätzlich wäre es weiterhin interessant zu verstehen, wie ich Modbus Register mit interger Werten beschreiben kann ...



Hi Thomas,

also grundlegend beschreibe ich auch modbus register. diese gehen in meinem falle auf eine S7 aber  das sollte egal sein.

was grundlegend eine sache wäre, sind bei dir die REG Byte Order HI-LO bzw WORD Order richtig eingestellt?
Das bedeutet, dass das erste byte bzw wort auch das erste beim empfänger ist. kannst du das bestätigen?

ist das der fall, dann kann man sich den werten widmen. der aufbau im gekko bez der adressierungen ist nicht so einfach für mich, ich komme aus der siemens s7 welt und dort beginnt man bei 0 zu zählen und nicht bei 1.
hier könnte ebenfalls eine verschiebung sein.

zurück zum handling.

einen wert kannst du unterschiedlich deklarieren, hier gibt es seitens gekko eine anleitung im wiki, welche datentypen es hier gibt.
die bezeichungen C.x... oider NAT o.Ä. sind mir auch in meiner siemenswelt nicht bekannt gewesen.
aber ein integer beispielsweise, also eine ganzhal geht mit REG16 NAT.

das kannst du über DO oder AO ansprechen. ich nutze nur DO. funktioniert bei mir.

ob du das aber nun in einer logik nutzen willst weiß ich nicht. du kannst dort natürlich sagen, dass du mit einer aktion den sollwert einer logik auf 1 setzt (bin mir gerade nicht sicher ob der auch größer sein kann)
dann sagst du in der logik, wenn sollwert = 1 dann FIX = 0-5, also den modus, den du dann schalten willst auf den ausgang. danach sollwert via aktion wieder auf 0 setzen.
das ist alles sehr unelegant im gekko. aber das wäre jetzt mal aus dem kopf ein ansatz.

schön ist sicherlich anders.

sofern deine wärmepumpe den wert nur gepulst braucht musst du das mit einem r-trig machen. und danach wieder auf 0 setzen, aber das verrät dir dein handbuch der wärmepumpe.

das sind aktuell zu viele fragezeichen.

also hausaufgabe:
1) werte prüfen, ob der modbus richtig geht
2) handbuch wärmepumpe prüfen, wie der modus umgeschaltet werden kann
3) logik zum schalten basteln
4) aktion verbinden

ich vermute stark, dass du eine gewisse anzahl an logiken nutzen werden musst, sofern du das mit dem sollwert realisieren musst. das ist relativ uncool.
#6
moin,

das ist halt leider immer das problem, wenn man auf der sekundärseite nichts sehen kann.
wenn du mir z.b. sagst "was" dort ankommt, dann kann man ganz banal mit dem windows taschenrechner sehen, ob es vll verdreht ist, verschoben etc.
dann kommt man der sache halt auf die spur.
MfG
Sven


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Modbus Temperatur über 4 Byte floar ARTandSTRATEGY 5 8.030 15.03.2020, 07:17
Letzter Beitrag: ARTandSTRATEGY
  myGEKKO und Modbus Raumbediengerät ARTandSTRATEGY 9 17.280 24.05.2019, 20:55
Letzter Beitrag: Benny
  Siemens Logo via Modbus TCP anbinden danielsan 6 13.186 23.03.2019, 20:53
Letzter Beitrag: danielsan

Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
2 Gast/Gäste