NEWS
Modbus Adapter - Problem bei Auslesen der Holding Register
-
Ich habe den Modbus Adapter über einen USB2RS485 am Raspberry am Laufen.
Ich lese die Holding Register meiner Brötje Heizung aus.Wenn ich die Adressen 1024, 1025, ... bis 1039 auslese, funktioniert alles.
Das Protokoll sagt:modbus.0 2023-02-17 17:58:40.707 debug [DevID_1/holdingRegs] Poll address 1024 - 16 registers modbus.0 2023-02-17 17:58:40.705 debug Initialization of scale factors done! modbus.0 2023-02-17 17:58:40.698 debug [DevID_1] Poll start --------------------- modbus.0 2023-02-17 17:58:40.694 info Connected to slave modbus.0 2023-02-17 17:58:40.667 debug connect to serial /dev/ttyUSB0 with 19200
und ich erhalte die Werte wie erwartet.
Füge ich jetzt die nächste Register Adresse hinzu, welches die 1042 ist, bekomme ich die folgende Fehlermeldung im Protokoll:
modbus.0 2023-02-17 17:58:46.746 debug Cleaning up request fifo. modbus.0 2023-02-17 17:58:46.745 debug Clearing timeout of the current request. modbus.0 2023-02-17 17:58:46.738 info Disconnected from slave modbus.0 2023-02-17 17:58:45.738 warn Poll error count: 1 code: {"err":"timeout","timeout":5000} modbus.0 2023-02-17 17:58:45.733 error Request timed out. modbus.0 2023-02-17 17:58:45.730 warn Error: undefined modbus.0 2023-02-17 17:58:40.779 error Error response: Value is not accepted by slave modbus.0 2023-02-17 17:58:40.776 error Error response for FCx3: Illegal Data Value modbus.0 2023-02-17 17:58:40.707 debug [DevID_1/holdingRegs] Poll address 1024 - 32 registers modbus.0 2023-02-17 17:58:40.705 debug Initialization of scale factors done! modbus.0 2023-02-17 17:58:40.698 debug [DevID_1] Poll start --------------------- modbus.0 2023-02-17 17:58:40.694 info Connected to slave modbus.0 2023-02-17 17:58:40.667 debug connect to serial /dev/ttyUSB0 with 19200
Wie kann ich es erreichen das ein neuer Poll gestartet wird der dann mit der Adress 1042 beginnt?
Ich frage noch weitere Register ab und für die wird jeweils ein eigener Poll gemacht:
modbus.0 2023-02-17 18:39:45.802 debug [DevID_1/holdingRegs] Poll address 39920 DONE modbus.0 2023-02-17 18:39:45.756 debug [DevID_1/holdingRegs] Poll address 39920 - 7 registers modbus.0 2023-02-17 18:39:45.754 debug [DevID_1/holdingRegs] Poll address 1128 DONE modbus.0 2023-02-17 18:39:45.708 debug [DevID_1/holdingRegs] Poll address 1128 - 2 registers modbus.0 2023-02-17 18:39:45.706 debug [DevID_1/holdingRegs] Poll address 1095 DONE modbus.0 2023-02-17 18:39:45.644 debug [DevID_1/holdingRegs] Poll address 1095 - 8 registers modbus.0 2023-02-17 18:39:45.642 debug [DevID_1/holdingRegs] Poll address 1077 DONE modbus.0 2023-02-17 18:39:45.596 debug [DevID_1/holdingRegs] Poll address 1077 - 1 registers modbus.0 2023-02-17 18:39:45.594 debug [DevID_1/holdingRegs] Poll address 1054 DONE modbus.0 2023-02-17 18:39:45.563 debug [DevID_1/holdingRegs] Poll address 1054 - 2 registers modbus.0 2023-02-17 18:39:45.561 debug [DevID_1/holdingRegs] Poll address 1024 DONE modbus.0 2023-02-17 18:39:45.515 debug [DevID_1/holdingRegs] Poll address 1024 - 16 registers modbus.0 2023-02-17 18:39:45.514 debug [DevID_1] Poll start --------------------
MOD EDIT: LOG IN CODE TAGS </> GEPACKT
-
@jufu Im Log steht das dein Slave das Register 1042 mit Function Code 03 nicht kennt
Error response for FCx3: Illegal Data Value
Ich kenne aber weder deinen Slave noch die Register Tabelle
-
@wendy2702 sorry, ich dachte ich häte es ausreichend beschrieben.
Hier die Holding Register aus der Instanz:
_address name description unit type len factor offset formula role room poll wp cw isScale 1024 Betriebsart Heizkreis 1 (Betriebsart) uint16be 1 1 0 value true false false false 1025 Komfortsollwert Heizkreis 1 (Komfortsollwert) °C uint16be 1 0,015625 0 value true false false false 1026 Reduziertsollwert Heizkreis 1 (Reduziertsollwert) °C uint16be 1 0,015625 0 value true false false false 1027 Frostschutzsollwert Heizkreis 1 (Frostschutzsollwert) °C uint16be 1 0,015625 0 value true false false false 1028 Kennlinie Steilheit Heizkreis 1 (Steilheit) uint16be 1 1 0 value true false false false 1029 Kennlinie Verschiebung Heizkreis 1 (Verschiebung) °C uint16be 1 0,015625 0 value true false false false 1030 Sommer-/Winterheizgrenze Heizkreis 1 (Sommer-/Winterheizgrenze) °C uint16be 1 0,015625 0 value true false false false 1031 Status/Command Heizkreis 1 (Status/Command) uint16be 1 1 0 value true false false false 1032 Tagesheizgrenze Heizkreis 1 (Tagesheizgrenze) °C uint16be 1 0,015625 0 value true false false false 1033 Status/Command Heizkreis 1 (Status/Command) uint16be 1 1 0 value true false false false 1034 Vorlaufsollwert Minimum Heizkreis 1 (Vorlaufsollwert Minimum) °C uint16be 1 0,015625 0 value true false false false 1035 Vorlaufsollwert Maximum Heizkreis 1 (Vorlaufsollwert Maximum) °C uint16be 1 0,015625 0 value true false false false 1036 Vorlaufsollw Raumthermostat Heizkreis 1 (Vorlaufsollw Raumthermostat) °C uint16be 1 0,015625 0 value true false false false 1037 Status/Command Heizkreis 1 (Status/Command) uint16be 1 1 0 value true false false false 1038 Raumeinfluss Heizkreis 1 (Raumeinfluss) % uint16be 1 1 0 value true false false false 1039 Status/Command Heizkreis 1 (Status/Command) uint16be 1 1 0 value true false false false 1042 Raumtemperatur 1 Heizkreis 1 (Raumtemperatur 1) °C uint16be 1 0,015625 0 value false false false false 1043 Status Heizkreis 1 (Status) uint16be 1 1 0 value false false false false 1044 Raumsollwert 1 Heizkreis 1 (Raumsollwert 1) °C uint16be 1 0,015625 0 value false false false false 1045 Status Heizkreis 1 (Status) uint16be 1 1 0 value false false false false 1046 Vorlauftemperatur 1 Heizkreis 1 (Vorlauftemperatur 1) °C uint16be 1 0,015625 0 value false false false false 1047 Status Heizkreis 1 Status) uint16be 1 1 0 value false false false false 1048 Vorlaufsollwert 1 Heizkreis 1 (Vorlaufsollwert 1) °C uint16be 1 0,015625 0 value false false false false 1049 Status Heizkreis 1 (Status) uint16be 1 1 0 value false false false false 1050 Raumthermostat 1 Heizkreis 1 (Raumthermostat 1) uint16be 1 1 0 value false false false false 1051 Status Heizkreis 1 (Status) uint16be 1 1 0 value false false false false 1054 Status Heizkreis 1 Heizkreis 1 (Status Heizkreis 1) uint16be 1 1 0 value true false false false 1055 Heizkreis 1 Heizkreis 1 (Heizkreis 1) uint16be 1 1 0 value true false false false 1077 Mischerüberhöhung Heizkreis 1 (Mischerüberhöhung) °C uint16be 1 0,015625 0 value true false false false 1095 Heizkreispumpe 1 Heizkreis 1 (Heizkreispumpe 1) uint16be 1 1 0 value true false false false 1096 Status Heizkreis 1 (Status) uint16be 1 1 0 value true false false false 1097 Heizkreismischer 1 Auf Heizkreis 1 (Heizkreismischer 1 Auf) uint16be 1 1 0 value true false false false 1098 Status Heizkreis 1 (Status) uint16be 1 1 0 value true false false false 1099 Heizkreismischer 1 Zu Heizkreis 1 (Heizkreismischer 1 Zu) uint16be 1 1 0 value true false false false 1100 Status Heizkreis 1 (Status) uint16be 1 1 0 value true false false false 1101 Drehzahl Heizkreispumpe 1 Heizkreis 1 (Drehzahl Heizkreispumpe 1) % uint16be 1 1 0 value true false false false 1102 Status Heizkreis 1 (Status) uint16be 1 1 0 value true false false false 1128 Pumpendrehzahl Minimum Heizkreis 1 (Pumpendrehzahl Minimum) % uint16be 1 1 0 value true false false false 1129 Pumpendrehzahl Maximum Heizkreis 1 (Pumpendrehzahl Maximum) % uint16be 1 1 0 value true false false false 10240 Betriebsart Trinkwasser (Betriebsart) uint16be 1 1 0 value true false false false 10241 Nennsollwert Trinkwasser (Nennsollwert) °C uint16be 1 0,015625 0 value true false false false 10242 Reduziertsollwert Trinkwasser (Reduziertsollwert) °C uint16be 1 0,015625 0 value true false false false 10243 Freigabe Trinkwasser (Freigabe) uint16be 1 1 0 value true false false false 10244 Legionellenfunktion Trinkwasser (Legionellenfunktion) uint16be 1 1 0 value true false false false 10245 Legionellenfkt Periodisch Trinkwasser (Legionellenfkt Periodisch) uint16be 1 1 0 value true false false false 10246 Legionellenfkt Wochentag Trinkwasser (Legionellenfkt Wochentag) uint16be 1 1 0 value true false false false 10247 Legionellenfunktion Zeitpunkt Trinkwasser (Legionellenfunktion Zeitpunkt) h:min uint16be 1 1 0 value true false false false 10248 Status/Command Trinkwasser (Status/Command) uint16be 1 1 0 value true false false false 10249 Legionellenfunktion Sollwert Trinkwasser (Legionellenfunktion Sollwert) °C uint16be 1 0,015625 0 value true false false false 10250 Legionellenfkt Verweildauer Trinkwasser (Legionellenfkt Verweildauer) min uint16be 1 1 0 value true false false false 10251 Status/Command Trinkwasser (Status/Command) uint16be 1 1 0 value true false false false 10263 Zirkulationssollwert Trinkwasser (Zirkulationssollwert) °C uint16be 1 0,015625 0 value true false false false 10273 Status Trinkwasser Trinkwasser (Status Trinkwasser) uint16be 1 value false false false false 11264 Trinkwassertemperatur 1 Trinkwasser (Trinkwassertemperatur 1) °C uint16be 1 0,015625 0 value true false false false 39920 Jahr Uhrzeit und Datum (Jahr) uint16be 1 1 1900 value true false false false 39921 Monat Uhrzeit und Datum (Monat) uint16be 1 1 0 value true false false false 39922 Tag Uhrzeit und Datum (Tag) uint16be 1 1 0 value true false false false 39923 Stunde Uhrzeit und Datum (Stunde) uint16be 1 1 0 value true false false false 39924 Minute Uhrzeit und Datum (Minute) uint16be 1 1 0 value true false false false 39925 Sekunde Uhrzeit und Datum (Sekunde) uint16be 1 1 0 value true false false false 39926 Wochentag Uhrzeit und Datum (Wochentag) uint16be 1 1 0 value true false false false
MOD-EDIT: Code in code-tags gesetzt!
Nachfolgend die visualisierten Werte:
Ab Seite 18 sind für die Brötje Heizung die Parameter mit den Register-Adressen gelistet:
7715040-06-24072019 Montageanleitung Modbus-Busmodul ISR MODBM.pdfIn der Instanz habe ich die Paramter 1024, 1025, 1026, usw. bis 1039 zum Auslesen markiert. Der Adapter packt diese dann in eine Abfrage (Poll address 1024 - 16 registers).
Ich möchte aber auch noch die Raumtemperatur 1 mit der Register-Adresse 1042 auslesen. Die Register-Adressen 1040 und 1041 scheint die Brötje Heizung (der Slave) aber nicht zu kennen. Markiere ich zusätzlich die Register-Adresse 1042 in der Instanz, dann generiert der Adapter ein 'Poll address 1024 -32 registers' und dann bekomme ich die Fehlermeldung: FCx3: Illegal Data Value
Frage ich die Register 1024 bis 1039 nicht ab, sondern beginne mit 1042, dann funktioniert die Abfrage und ich bekomme die Werte für die Register-Adresse 1042 und folgende.Daher ging meine Frage dahin ob ich 2 'polls' aufsetzen kann
a) einen für die Register von 1024 bis 1039 und
b) einen zweiten für die Register 1042 und folgende -
@jufu Bin nur Mobil unterwegs.
Bist du sicher das es Holding und keine Input Register sind?
-
@wendy2702 Nein
-
@jufu
was hast du bei den Einstellungen (Allgemein) hier stehen?
Hast du es auch mal mit z.B. diesem Programm ausprobiert?
- QModMaster
Ab 1042 sind die Werte nur noch lesbar. Alles davor kannst du lesen und schreiben. Vielleicht probierst du es mal diese Werte über das Eingangsregister abzufragen.
EDIT:
2 Polls könntest du mit einer weiteren Modbus Instanz generieren. -
@malaus Ja, da steht 100
QModMaster hatte ich nur benutzt um zu sehen ob die Verbindung USB_RS485 zur Heizung funktioniert.
Kenne mich damit (und mit Modbus) noch zu wenig aus ...Zwei Modbus-Instanzen auf einen USB_RS485 Adapter ... kann ich mir nicht vorstellen das das funktioniert ...
-
@jufu Geht auch nicht.
Es kann immer nur einer auf den „Seriellen“ Port zugreifen.
-
@jufu achso das ist RTU, dachte es wäre TCP. - habe ich nicht richtig gelesen
So, wie du oben das Register gepostet hast, so funktioniert es?
Heißt, 1042 bis 1051 werden nicht abgefragt. -
@wendy2702 so dachte ich mir das auch!
Ich probier es mal als Input Register -
@malaus Da sind verschiedene Fälle beschrieben ...
Wenn ich alle anwähle bekomme ich schon aus dem ersten Poll heraus eine Fehlermeldung.
Die Register 1024 bis 1039 kann er mit einem poll mit der Adresse 1024 und 16 Registern auslesen.
Füge ich die 1042 hinzu generiert der Adapter einen poll mit Adresse 1024 und 32 registern ... und der bringt Fehlermeldung -
@jufu Ich habe mal versucht nur das Register 39925 (unsigned 16, R/W) als Input-Register auszulesen:
modbus.0 2023-02-18 10:31:22.087 debug Cleaning up request fifo.
modbus.0 2023-02-18 10:31:22.085 debug Clearing timeout of the current request.
modbus.0 2023-02-18 10:31:22.081 info Disconnected from slave
modbus.0 2023-02-18 10:31:21.082 warn Poll error count: 2 code: {"err":"timeout","timeout":5000}
modbus.0 2023-02-18 10:31:21.079 error Request timed out.
modbus.0 2023-02-18 10:31:21.077 warn Error: undefined
modbus.0 2023-02-18 10:31:16.143 error Error response: Function code received in the query is not recognized or allowed by slave
modbus.0 2023-02-18 10:31:16.141 error Error response for FCx4: Illegal Function
modbus.0 2023-02-18 10:31:16.071 debug [DevID_1/inputRegs] Poll address 39925 - 1 registers
modbus.0 2023-02-18 10:31:16.069 debug [DevID_1] Poll start ---------------------das hat nicht funktioniert.
-
@wendy2702 Wenn ich Input-Register verwende bekomme ich eine Fehlermeldung
-
Dann gehen wir mal aus das Holding Richtig ist.
Eventuell findest du dazu was im Netz oder der Anleitung.
Zeige mal die Adapter und Register Einstellungen.
-
@wendy2702 Hier die Allgemeinen Einstellungen für den Adapter:
Hier der erste Block der Holding-Register:
Hier nochmals einen Export aus den Holding Registern:
*_address name description unit type len factor offset formula role room poll wp cw isScale 1024 Betriebsart Heizkreis 1 (Betriebsart) uint16be 1 1 0 value true false false false 1025 Komfortsollwert Heizkreis 1 (Komfortsollwert) °C uint16be 1 0,015625 0 value true false false false 1026 Reduziertsollwert Heizkreis 1 (Reduziertsollwert) °C uint16be 1 0,015625 0 value true false false false 1027 Frostschutzsollwert Heizkreis 1 (Frostschutzsollwert) °C uint16be 1 0,015625 0 value true false false false 1028 Kennlinie Steilheit Heizkreis 1 (Steilheit) uint16be 1 1 0 value true false false false 1029 Kennlinie Verschiebung Heizkreis 1 (Verschiebung) °C int16be 1 0,015625 0 value true false false false 1030 Sommer-/Winterheizgrenze Heizkreis 1 (Sommer-/Winterheizgrenze) °C uint16be 1 0,015625 0 value true false false false 1031 Status/Command Heizkreis 1 (Status/Command) uint16be 1 1 0 value true false false false 1032 Tagesheizgrenze Heizkreis 1 (Tagesheizgrenze) °C int16be 1 0,015625 0 value true false false false 1033 Status/Command Heizkreis 1 (Status/Command) uint16be 1 1 0 value true false false false 1034 Vorlaufsollwert Minimum Heizkreis 1 (Vorlaufsollwert Minimum) °C uint16be 1 0,015625 0 value true false false false 1035 Vorlaufsollwert Maximum Heizkreis 1 (Vorlaufsollwert Maximum) °C uint16be 1 0,015625 0 value true false false false 1036 Vorlaufsollw Raumthermostat Heizkreis 1 (Vorlaufsollw Raumthermostat) °C uint16be 1 0,015625 0 value true false false false 1037 Status/Command Heizkreis 1 (Status/Command) uint16be 1 1 0 value true false false false 1038 Raumeinfluss Heizkreis 1 (Raumeinfluss) % uint16be 1 1 0 value true false false false 1039 Status/Command Heizkreis 1 (Status/Command) uint16be 1 1 0 value true false false false 1042 Raumtemperatur 1 Heizkreis 1 (Raumtemperatur 1) °C uint16be 1 0,015625 0 value false false false false 1043 Status Heizkreis 1 (Status) uint16be 1 0 value false false false false 1044 Raumsollwert 1 Heizkreis 1 (Raumsollwert 1) °C uint16be 1 0,015625 0 value false false false false 1045 Status Heizkreis 1 (Status) uint16be 1 0 value false false false false 1046 Vorlauftemperatur 1 Heizkreis 1 (Vorlauftemperatur 1) °C uint16be 1 0,015625 0 value false false false false 1047 Status Heizkreis 1 Status) uint16be 1 0 value false false false false 1048 Vorlaufsollwert 1 Heizkreis 1 (Vorlaufsollwert 1) °C uint16be 1 0,015625 0 value false false false false 1049 Status Heizkreis 1 (Status) uint16be 1 0 value false false false false 1050 Raumthermostat 1 Heizkreis 1 (Raumthermostat 1) uint16be 1 1 0 value false false false false 1051 Status Heizkreis 1 (Status) uint16be 1 0 value false false false false 1054 Status Heizkreis 1 Heizkreis 1 (Status Heizkreis 1) uint16be 1 1 0 value false false false false 1055 Heizkreis 1 Heizkreis 1 (Heizkreis 1) uint16be 1 1 0 value false false false false 1077 Mischerüberhöhung Heizkreis 1 (Mischerüberhöhung) °C uint16be 1 0,015625 0 value true false false false 1095 Heizkreispumpe 1 Heizkreis 1 (Heizkreispumpe 1) uint16be 1 1 0 value true false false false 1096 Status Heizkreis 1 (Status) uint16be 1 0 value true false false false 1097 Heizkreismischer 1 Auf Heizkreis 1 (Heizkreismischer 1 Auf) uint16be 1 1 0 value true false false false 1098 Status Heizkreis 1 (Status) uint16be 1 0 value true false false false 1099 Heizkreismischer 1 Zu Heizkreis 1 (Heizkreismischer 1 Zu) uint16be 1 1 0 value true false false false 1100 Status Heizkreis 1 (Status) uint16be 1 0 value true false false false 1101 Drehzahl Heizkreispumpe 1 Heizkreis 1 (Drehzahl Heizkreispumpe 1) % uint16be 1 1 0 value true false false false 1102 Status Heizkreis 1 (Status) uint16be 1 0 value true false false false 1128 Pumpendrehzahl Minimum Heizkreis 1 (Pumpendrehzahl Minimum) % uint16be 1 1 0 value true false false false 1129 Pumpendrehzahl Maximum Heizkreis 1 (Pumpendrehzahl Maximum) % uint16be 1 1 0 value true false false false 10240 Betriebsart Trinkwasser (Betriebsart) uint16be 1 1 0 value true false false false 10241 Nennsollwert Trinkwasser (Nennsollwert) °C uint16be 1 0,015625 0 value true false false false 10242 Reduziertsollwert Trinkwasser (Reduziertsollwert) °C uint16be 1 0,015625 0 value true false false false 10243 Freigabe Trinkwasser (Freigabe) uint16be 1 1 0 value true false false false 10244 Legionellenfunktion Trinkwasser (Legionellenfunktion) uint16be 1 1 0 value true false false false 10245 Legionellenfkt Periodisch Trinkwasser (Legionellenfkt Periodisch) uint16be 1 1 0 value true false false false 10246 Legionellenfkt Wochentag Trinkwasser (Legionellenfkt Wochentag) uint16be 1 1 0 value true false false false 10247 Legionellenfunktion Zeitpunkt Trinkwasser (Legionellenfunktion Zeitpunkt) h:min uint16be 1 1 0 value true false false false 10248 Status/Command Trinkwasser (Status/Command) uint16be 1 1 0 value true false false false 10249 Legionellenfunktion Sollwert Trinkwasser (Legionellenfunktion Sollwert) °C uint16be 1 0,015625 0 value true false false false 10250 Legionellenfkt Verweildauer Trinkwasser (Legionellenfkt Verweildauer) min uint16be 1 1 0 value true false false false 10251 Status/Command Trinkwasser (Status/Command) uint16be 1 1 0 value true false false false 10263 Zirkulationssollwert Trinkwasser (Zirkulationssollwert) °C uint16be 1 0,015625 0 value true false false false 10273 Status Trinkwasser Trinkwasser (Status Trinkwasser) uint16be 1 1 0 value false false false false 11264 Trinkwassertemperatur 1 Trinkwasserspeicher (Trinkwassertemperatur 1) °C uint16be 1 0,015625 0 value true false false false 11265 Status Trinkwasserspeicher (Status) uint16be 1 0 value false false false false 11266 Trinkwassertemperatur 2 Trinkwasserspeicher (Trinkwassertemperatur 2) °C uint16be 1 0,015625 0 value false false false false 11267 Status Trinkwasserspeicher (Status) uint16be 1 0 value false false false false 11280 Ladezeitbegrenzung Trinkwasserspeicher (Ladezeitbegrenzung) min uint16be 1 1 0 value true false false false 11281 Status/Command Trinkwasserspeicher (Status/Command) uint16be 1 1 0 value false false false false 11290 Vorlaufsollwertüberhöhung Trinkwasserspeicher (Vorlaufsollwertüberhöhung) °C uint16be 1 0,015625 0 value false false false false 11294 Schaltdifferenz Trinkwasserspeicher (Schaltdifferenz) °C uint16be 1 0,015625 0 value false false false false 11299 Ladetemperatur Maximum Trinkwasserspeicher (Ladetemperatur Maximum) °C uint16be 1 0,015625 0 value false false false false 11369 Trinkwasserpumpe Trinkwasserspeicher (Trinkwasserpumpe) uint16be 1 1 0 value false false false false 11370 Status Trinkwasserspeicher (Status) uint16be 1 0 value false false false false 11373 Drehzahl Trinkwasserpumpe Trinkwasserspeicher (Drehzahl Trinkwasserpumpe) % uint16be 1 1 0 value true false false false 11374 Status Trinkwasserspeicher (Status) uint16be 1 0 value false false false false 11375 Drehzahl TWW Zwkreispumpe Trinkwasserspeicher (Drehzahl TWW Zw'kreispumpe) % uint16be 1 1 0 value false false false false 11376 Status Trinkwasserspeicher (Status) uint16be 1 0 value false false false false 11379 Trinkwassersollwert Trinkwasserspeicher (Trinkwassersollwert) °C uint16be 1 0,015625 0 value false false false false 11380 Status )Trinkwasserspeicher (Status uint16be 1 0 value false false false false 11381 TWW Zirkulationstemperatur Trinkwasserspeicher (TWW Zirkulationstemperatur) °C uint16be 1 0,015625 0 value false false false false 11382 Status Trinkwasserspeicher (Status) uint16be 1 0 value false false false false 11383 TWW Ladetemperatur Trinkwasserspeicher (TWW Ladetemperatur) °C uint16be 1 0,015625 0 value false false false false 11384 Status Trinkwasserspeicher (Status) uint16be 1 0 value false false false false 11395 Zustand Zirkulationspumpe Q4 Trinkwasserspeicher (Zustand Zirkulationspumpe Q4) uint16be 1 1 0 value false false false false 11396 Status Trinkwasserspeicher (Status) uint16be 1 0 value false false false false 11411 TWW Zwischkreispumpe Q33 Trinkwasserspeicher (TWW Zwisch'kreispumpe Q33) uint16be 1 1 0 value false false false false 11412 Status Trinkwasserspeicher (Status) uint16be 1 0 value false false false false 13313 Vorlaufsollwert Verbranfo Verbraucherkreis 1 (Vorlaufsollwert Verbr'anfo) °C uint16be 1 0,015625 0 value true false false false 13322 Zustand Verbrkreispumpe VK1 Q15 Verbraucherkreis 1 (Zustand Verbr'kreispumpe VK1 Q15) uint16be 1 1 0 value false false false false 13323 Status Verbraucherkreis 1 (Status) uint16be 1 0 value false false false false 24576 Sollwert Handbetrieb Kessel (Sollwert Handbetrieb) °C uint16be 1 0,015625 0 value true false false false 24577 Temperaturhub Nenn Kessel (Temperaturhub Nenn) °C uint16be 1 0,015625 0 value true false false false 24578 Status/Command Kessel (Status/Command) uint16be 1 1 0 value true false false false 24581 Leistung Nenn Kessel (Leistung Nenn) kW uint16be 1 0,1 0 value true false false false 24582 Leistung Grundstufe Kessel (Leistung Grundstufe) kW uint16be 1 0,1 0 value true false false false 24583 Brennerstunden Wartungsintervall Kessel (Brennerstunden Wartungsintervall) h uint16be 1 1 0 value true false false false 24584 Status/Command Kessel (Status/Command) uint16be 1 0 value false false false false 24585 Brennerstd seit Wartung Kessel (Brennerstd seit Wartung) h uint16be 1 1 0 value false false false false 24586 Brennerstarts Intervall Kessel (Brennerstarts Intervall) uint16be 1 1 0 value false false false false 24587 Status/Command Kessel (Status/Command) uint16be 1 0 value false false false false 24588 Brennerstarts seit Wartung Kessel (Brennerstarts seit Wartung) uint16be 1 1 0 value false false false false 24589 Gebläsedrehzahlschwelle für Servicemeldung Kessel (Gebläsedrehzahlschwelle für Servicemeldung) 1/min uint16be 1 1 0 value false false false false 24590 Status/Command Kessel (Status/Command) uint16be 1 0 value false false false false 24591 Meldung Ion Strom Kessel (Meldung Ion Strom) uint16be 1 1 0 value false false false false 24592 Status Kessel Kessel (Status Kessel) uint16be 1 1 0 value false false false false 24593 Status Brenner Kessel (Status Brenner) uint16be 1 1 0 value false false false false 24594 Kesselpumpe Q1 Kessel (Kesselpumpe Q1) uint16be 1 1 0 value false false false false 24595 Status Kessel (Status) uint16be 1 0 value false false false false 24596 Drehzahl Kesselpumpe Kessel (Drehzahl Kesselpumpe) % uint16be 1 1 0 value false false false false 24597 Status Kessel (Status) uint16be 1 0 value false false false false 24600 Kesseltemperatur Kessel (Kesseltemperatur) °C uint16be 1 1 0 value false false false false 24601 Status Kessel (Status) uint16be 1 0 value false false false false 24604 Kesselsollwert Kessel (Kesselsollwert) °C uint16be 1 0,015625 0 value false false false false 24605 Status Kessel (Status) uint16be 1 0 value false false false false 24608 Kesselrücklauftemperatur Kessel (Kesselrücklauftemperatur) °C uint16be 1 0,015625 0 value false false false false 24609 Status Kessel (Status) uint16be 1 0 value false false false false 24612 Gebläsedrehzahl Kessel (Gebläsedrehzahl) 1/min uint16be 1 1 0 value true false false false 24613 Brennergebläsesollwert Kessel (Brennergebläsesollwert) 1/min uint16be 1 1 0 value true false false false 24614 Aktuelle Gebläseansteuerung Kessel (Aktuelle Gebläseansteuerung) % uint16be 1 0,01 0 value true false false false 24615 Status Kessel (Status) uint16be 1 0 value false false false false 24616 Relative Leistung Kessel (Relative Leistung) % uint16be 1 1 0 value true false false false 24617 Status Kessel (Status) uint16be 1 0 value false false false false 24618 Ionisationsstrom Kessel (Ionisationsstrom)pAμA μA uint16be 1 0,01 0 value false false false false 24619 Status Kessel (Status) uint16be 1 0 value false false false false 24620 Betriebsstunden 1.Stufe Kessel (Betriebsstunden 1.Stufe) h uint16be 1 1 0 value false false false false 24621 Startzähler 1.Stufe Kessel (Startzähler 1.Stufe) uint32be 2 1 0 value false false false false 24623 Betriebsstunden Heizbetrieb Kessel (Betriebsstunden Heizbetrieb) h uint32be 2 0,000277778 0 value false false false false 24625 Betriebsstunden TWW Kessel (Betriebsstunden TWW) h uint32be 2 0,000277778 0 value false false false false 24629 Gesamt Gasenergie Heizen Kessel (Gesamt Gasenergie Heizen) kWh uint32sw 2 1 0 value true false false false 24631 Gesamt Gasenergie TWW Kessel (Gesamt Gasenergie TWW) kWh uint32be 2 1 0 value true false false false 24633 Gesamt Gasenergie Kessel (Gesamt Gasenergie) kWh uint32be 2 1 0 value true false false false 24635 Gasenergie Heizen Kessel (Gasenergie Heizen) kWh uint32be 2 1 0 value true false false false 24637 Gasenergie TWW Kessel (Gasenergie TWW) kWh uint32be 2 1 0 value true false false false 24639 Gasenergie Kessel (Gasenergie) kWh uint32be 2 1 0 value true false false false 24641 Aktuelle Phase des Feuerungsautomaten Kessel (Aktuelle Phase des Feuerungsautomaten) uint16be 1 1 0 value true false false false 24644 Erzeugersperre via H-Kontakt Kessel (Erzeugersperre via H-Kontakt) uint16be 1 1 0 value true false false false 35851 Aussentemperatur Allgemeine Funktionen (Aussentemperatur) °C int16be 1 0,015625 0 value true false false false 35852 Status Allgemeine Funktionen (Status) uint16be 1 0 value false false false false 35862 Reset Alarmrelais Allgemeine Funktionen (Reset Alarmrelais) uint16be 1 1 0 value false false false false 35887 Status Alarmrelais Allgemeine Funktionen (Status Alarmrelais) uint16be 1 1 0 value false false false false 35888 Status Allgemeine Funktionen (Status) uint16be 1 0 value false false false false 35901 Schornsteinfegerfunktion Allgemeine Funktionen (Schornsteinfegerfunktion) uint16be 1 1 0 value false false false false 35903 Brennerleistung Allgemeine Funktionen (Brennerleistung) uint16be 1 1 0 value true false false false 35904 Handbetrieb Allgemeine Funktionen (Handbetrieb) uint16be 1 1 0 value true false false false 35905 Reglerstoppfunktion Allgemeine Funktionen (Reglerstoppfunktion) uint16be 1 1 0 value true false false false 35906 Reglerstopp Sollwert Allgemeine Funktionen (Reglerstopp Sollwert) % uint16be 1 1 0 value true false false false 37981 Wasserdruck Wasserdruck (Wasserdruck) bar uint16be 1 0,1 0 value true false false false 37982 Status Wasserdruck (Status) uint16be 1 0 value true false false false 38919 Objektverzeichnis-Version Fehler- und Wartungsmeldungen (Objektverzeichnis-Version) uint16be 1 1 0 value true false false false 38920 Parameterversion Fehler- und Wartungsmeldungen (Parameterversion) uint16be 1 1 0 value true false false false 39079 Fehlermeldung Fehler- und Wartungsmeldungen (Fehlermeldung) uint16be 1 1 0 value true false false false 39080 Fehlerpriorität Fehler- und Wartungsmeldungen (Fehlerpriorität) uint16be 1 1 0 value true false false false 39081 Fehler LPB Adresse Fehler- und Wartungsmeldungen (Fehler LPB Adresse) uint16be 1 0 value true false false false 39082 Servicemeldung Fehler- und Wartungsmeldungen (Servicemeldung) uint16be 1 1 0 value true false false false 39083 Servicepriorität Fehler- und Wartungsmeldungen (Servicepriorität) uint16be 1 1 0 value true false false false 39084 Service LPB Adresse Fehler- und Wartungsmeldungen (Service LPB Adresse) uint16be 1 0 value true false false false 39085 SW Diagnosecode Fehler- und Wartungsmeldungen (SW Diagnosecode) uint16be 1 1 0 value true false false false 39086 FA Phase Störstellung Fehler- und Wartungsmeldungen (FA Phase Störstellung) uint16be 1 1 0 value true false false false 39087 Info Sonderbetrieb Fehler- und Wartungsmeldungen (Info Sonderbetrieb) uint16be 1 1 0 value true false false false 39088 Status Info Fehler- und Wartungsmeldungen (Status Info) uint16be 1 1 0 value true false false false 39920 Jahr Uhrzeit und Datum (Jahr) uint16be 1 1 1900 value true false false false 39921 Monat Uhrzeit und Datum (Monat) uint16be 1 1 0 value true false false false 39922 Tag Uhrzeit und Datum (Tag) uint16be 1 1 0 value true false false false 39923 Stunde Uhrzeit und Datum (Stunde) uint16be 1 1 0 value true false false false 39924 Minute Uhrzeit und Datum (Minute) uint16be 1 1 0 value true false false false 39925 Sekunde Uhrzeit und Datum (Sekunde) uint16be 1 1 0 value true false false false 39926 Wochentag Uhrzeit und Datum (Wochentag) uint16be 1 1 0 value true false false false*
MOD-EDIT: Code in code-tags gesetzt!
Nachdem ich bei einigen das Häkchen bei poll weggemacht hatte lief der Adapter durch und ich erhalte einen Großteil der Daten - aber halt nicht alle die ich haben möchte.
-
@jufu sagte in Modbus Adapter - Problem bei Auslesen der Holding Register:
bekomme ich eine Fehlermeldung
und die darf niemand wissen?
Gibt es evtl. einen Offset auf die Register?
-
@homoran ich fürchte ja.
wendy2702 fragte ob ich mir sicher bin das es Holding und keine Input Register sind.
Und da ich im Thema Modbus absoluter Anfänger bin, hab ich probiert das Register als Input Register zu lesen.
Als Holding Register hat es funktioniert, als Input Register bekam ich eine Fehlermeldung.
Das hat mir gereicht und die Fehlermeldung hab ich mir nicht gemerkt. Tut mir leid ... kann mit einer konkreten Fehlermeldung nicht dienen. -
@jufu ich glaube jetzt eine Lösung gefunden zu haben.
Ich habe in der Modbus Instanz unter Allgemein die ‚Max. Leseanforderungslänge (Float)‘ auf 1 gesetzt. Jetzt wird zwar für jedes Register ein separates ‚poll‘ ausgeführt aber das fehlerfrei über alle Holding Register in der Liste.