Dachs MSR1 Service Protokoll: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: Bei der Auslieferung der Dachs MSR1 haben wir eine Service Software bekommen, die erweiterte Daten aus dem BHKW auslesen kann. Vornehmlich ging es uns darum zu erfahren...)
 
(Kurzer Zustandsbericht: 0xe8)
 
(6 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
Bei der Auslieferung der Dachs MSR1 haben wir eine Service Software bekommen, die erweiterte Daten aus dem BHKW auslesen kann. Vornehmlich ging es uns darum zu erfahren in wie vielen Stunden genau die nächste Wartung ansteht. Die Schnittstelle ist eine 9600 Baud 8N1 Schnitstelle mit RTS/CTS Handshake.
+
Bei der Auslieferung der Dachs MSR1 haben wir eine Service Software bekommen, die erweiterte Daten aus dem BHKW auslesen kann. Vornehmlich ging es uns darum zu erfahren in wie vielen Stunden genau die nächste Wartung ansteht. Die Schnittstelle ist eine 9600 Baud 8N1 Schnitstelle mit RTS/CTS Handshake. Temperaturen werden dabei wohl als signed char versendet. D.h. ist der Wert > 127, so muss 256 abgezogen werden. Wie bei der decodierung vorgegangen wurde gibts [[Benutzer:Stettberger/Blog:Dachs_MSR1_Protokoll_decodieren|hier]].
 +
 
 +
{{Disclaimer|Vorsicht beim experimentieren!|Durch komisch aussehende Daten kann die Dachs wohl ausversehen umkonfiguriert werden. Also lieber Konfiguration mit dem Service Tool vorher sichern.}}
  
 
== Interne Meßwerterfassung: 0x48 ==  
 
== Interne Meßwerterfassung: 0x48 ==  
Zeile 25: Zeile 27:
 
|10 || Maximale Temperatur Fühler 2 ||
 
|10 || Maximale Temperatur Fühler 2 ||
 
|-
 
|-
|11 || Mittlere Generator Leistung ||
+
|11 || Mittlere Generator Leistung || 7.5 KW / 0xff * Wert
 
|-
 
|-
 
|12 || Anzahl der Störungen ||
 
|12 || Anzahl der Störungen ||
Zeile 68: Zeile 70:
 
|-
 
|-
 
| 6 || Jahr || 1900 + Wert, 0x61 = 1997
 
| 6 || Jahr || 1900 + Wert, 0x61 = 1997
 +
|}
 +
 +
== Meßwerte und Betriebszustand: 0x50 ==
 +
{| border=1 cellspacing=0 padding=4 class=wikitable
 +
! Byte !! Funktion !! Beispiel
 +
|-
 +
| 0 || Identifikation der Antwort || 02
 +
|-
 +
| 1 || Vorlauftemperatur ||
 +
|-
 +
| 2 || Rücklauftemperatur ||
 +
|-
 +
| 3 || Kühlwassertemperatur Motor ||
 +
|-
 +
| 4 || Abgastemperatur || 15 muss hinzuaddiert werden
 +
|-
 +
| 5 || Außentemperatur ||
 +
|-
 +
| 6 || Temperatur Fühler 1 ||
 +
|-
 +
| 7 || Temperatur Fühler 2 ||
 +
|-
 +
| 8 || Kühlwassertemperatur Generator ||
 +
|-
 +
| 9 || unbekannt ||
 +
|-
 +
| 10-11 || Drehzahl ||
 +
|-
 +
| 12 || unbekannt ||
 +
|-
 +
| 13 || Bivalenz Umschalttemperatur ||
 +
|-
 +
| 14-15 || Bivalenz Umschaltzeit || Wert in Minuten
 +
|-
 +
| 16 || Service Code ||
 +
|-
 +
| 17,18,19,20 || unbekannt ||
 +
|-
 +
| 21 || Umwälzpumpe Status 1 ||
 +
Bit 8: UP-Kühlung: Ein/Aus<br />
 +
Bit 7: UP-Heizöl: Auf/Zu
 +
|-
 +
| 22 || Umwälzpumpe Status 2 ||
 +
Bit 8: UP-Vordruck: Ein/Aus<br />
 +
Bit 7: UP-Heizung/Brauchwasser: Ein/Aus<br />
 +
Bit 6: Heizkesselfreigabe: Ein/Aus<br />
 +
Bit 4: Leistungsüberwachung: Ein/Aus<br />
 +
Bit 3: Boilerentladung: Ja/Nein<br />
 +
Bit 2: Modulfreigabe Bus: Ja/Nein<br />
 +
Bit 1: Modulfreigabe Extern: Ja/Nein
 +
|-
 +
| 23,24,25,26,27,28,29,30 || unbekannt ||
 +
|-
 +
| 31-32 || U1 in Volt || 105.6V + (100.0 /0x1cd) * Wert
 +
|-
 +
| 33-34 || U2 in Volt || 314.4V - (100.0 /0x1cd) * Wert
 +
|-
 +
| 35-36 || U3 in Volt || 105.6V + (100.0 /0x1cd) * Wert
 +
|-
 +
| 37-38 || I1 in Ampere || Wert * (10.0A /0x1cd) - (10.0*0xcd)/0x1cd
 +
|-
 +
| 39-40 || I2 in Ampere || Wert * (10.0A /0x1cd) - (10.0*0xcd)/0x1cd (wie I1)
 +
|-
 +
| 41-42 || I3 in Ampere || 10.0A/0x1cd * (0x02f5 - Wert)
 +
|-
 +
| 43 || cosphi || unbekannte Umrechnung Wert -> cosphi
 +
|-
 +
| 44 || unbekannt ||
 +
|-
 +
| 45 || ü_platine ||
 +
0xfd = OK<br/>
 +
ansonsten Fehler
 +
|-
 +
| 46 - || unbekannt ||
 +
|-
 +
|}
 +
 +
== Status bei der letzten Störung: 0x58 ==
 +
{| border=1 cellspacing=0 padding=4 class=wikitable
 +
! Byte !! Funktion !! Beispiel
 +
|-
 +
| 0 || Identifikation der Antwort || 03
 +
|-
 +
| 1 || Vorlauftemperatur ||
 +
|-
 +
| 2 || Rücklauftemperatur ||
 +
|-
 +
| 3 || Kühlwassertemperatur Motor ||
 +
|-
 +
| 4 || Abgastemperatur || 15 muss hinzuaddiert werden
 +
|-
 +
| 5 || Außentemperatur ||
 +
|-
 +
| 6 || Temperatur Fühler 1 ||
 +
|-
 +
| 7 || Temperatur Fühler 2 ||
 +
|-
 +
| 8 || Kühlwassertemperatur Generator ||
 +
|-
 +
| 9-17 || unbekannt ||
 +
|-
 +
| 18 || Bivalenz Umschaltzeit ||
 +
|-
 +
| 19 || Steigung der Heizkurve || Wert/10.0
 +
|-
 +
| 20 || Untere Heizkurvenbegrenzung ||
 +
|-
 +
| 21 || Obere Heizkurvenbegrenzung ||
 +
|-
 +
| 22 || unbekannt ||
 +
|-
 +
| 23 || Einschalttemperatur Rücklauf ||
 +
|-
 +
| 24 || Ausschalttemperatur Rücklauf ||
 +
|-
 +
| 25 || Soll Vorlauf ||
 +
|-
 +
| 26- || unbekannt ||
 +
|-
 +
|}
 +
 +
== Konfiguration und Seriennummer: 0x60 ==
 +
 +
== Kurzer Zustandsbericht: 0xe8 ==
 +
Das Kommando 0xe8 fällt etwas aus dem Rahmen, da es nur 22 Byte (mit Checksumme besteht). Die Checksumme wird dadurch errechnet, dass alle 21 Datenbytes der Reihenfolge nach XORed wird. Ein Bespiel in C.
 +
 +
<source lang=c>
 +
uint8_t i, chksum = 0;
 +
for (i = 0; i < 22; i++)
 +
  chksum ^= data[i];
 +
</source>
 +
 +
{| border=1 cellspacing=0 padding=4 class=wikitable
 +
! Byte !! Funktion !! Beispiel
 +
|-
 +
| 1 || Identifiaktionsbyte || 5
 +
|-
 +
| 2-3 || Betriebstunden ||
 +
|-
 +
| 4 || Wartung || Stunden bis zur nächsten Wartung. Bei 255: >254 Stunden.
 +
|-
 +
| 5 || Rücklauftemperatur ||
 +
|-
 +
| 6 || Vorlauftemperatur ||
 +
|-
 +
| 7 || Abgastemperatur || Wert + 15 Grad
 +
|-
 +
| 8 || Einschalttemperatursoll ||
 +
|-
 +
| 9 || Betriebszustand || siehe [[Dachs_MSR1_auslesen#e8|e8 Skript]]
 +
|-
 +
| 10 || Elektrische Leistung der Anlage || Wert / 34.0; Ergebnis in KW
 +
|-
 +
| 11-16 || Aktive Servicecodes der Module || Modul 0-5
 +
|-
 +
| 17 || Betriebszustand Sollwert || Global oder modulbezogen
 +
|-
 +
| 18 || Verfügbarkeit BHKW || Gobal oder modulbezogen
 +
|-
 +
| 19-21 || unbekannt ||
 +
|-
 +
| 22 || Prüfsumme || siehe oben
 +
|-
 +
|}
 +
 +
<div id="global_modul">
 +
Ist ein Wert Global oder Modulbezogen ist bedeutet dies, dass es global ist, wenn das höchste Bit 0 ist. Ist das höchste Bit 1, so beziehen sich die Werte der anderen Bits auf das Jeweilige Modul. So wäre ein 0x81 ein wahrer Wert für Modul 0.
 +
</div>
 +
 +
[[Category:Ethersex]]
 +
[[Category:MSR1]]
 +
 +
== Mehr Interne Messwerte: 0xc0 ==
 +
Auch hier gilt die selbe Checksum, wie bei 0xe8, das Packet hat, inklusive Checksum 76 Bytes.
 +
 +
{| border=1 cellspacing=0 padding=4 class=wikitable
 +
! Byte !! Funktion !! Beispiel
 +
|-
 +
| 1 || Identifikationsbyte || 0
 +
|-
 +
| 2 || Betriebszustand || Anlage läuft/nicht. [[#global_modul|Global oder modulbezogen]]
 +
|-
 +
| 3 || Betriebszustand(soll) || Anlage läuft/nicht. [[#global_modul|Global oder modulbezogen]]
 +
|-
 +
| 4 || Wartung || Stunden bis zur nächsten Wartung. Bei 255: >254 Stunden.
 +
|-
 +
| 5-19 || unbekannt || Wohl Akt. Servicecodes und Betriebsstunden der einzelnen Module
 +
|-
 +
| 20-21 || Betriebstunden der Anlage ||
 +
|-
 +
| 22 || Sollwert Rücklauf ||
 +
|-
 +
| 23 || Rücklauftemperatur ||
 +
|-
 +
| 24 || Sollwert Vorlauf ||
 +
|-
 +
| 25 || Vorlauftemperatur ||
 +
|-
 +
| 26 || Außentemperatur ||
 +
|-
 +
| 27 || Temperatur Fühler 1 ||
 +
|-
 +
| 28 || Temperatur Fühler 2 ||
 +
|-
 +
| 29 || Temperatur Kühlwasser Generator ||
 +
|-
 +
| 30 || Kesselfreigabe ||
 +
|-
 +
| 31 || Aktiever Servicecode ||
 +
|-
 +
| 32 || Betriebsart BHKW || 0xff: BHKW an; ansonsten BHKW aus
 +
|-
 +
| 33 || Steuerbyte BHKW || 0: BHKW aus; ansonsten BHKW an
 +
|-
 +
| 34 || Steuerbyte Brenner || siehe Byte 33
 +
|-
 +
| 35 || Temperatur Kühlwasser Motor ||
 +
|-
 +
| 36 || Abgastemperatur || Wert + 15 Grad
 +
|-
 +
| 37-38 || Drehzahl ||
 +
|-
 +
| 39-42 || Erzeugte Elektrische Energie || in kW/h
 +
|-
 +
| 43-46 || Erzeugte Thermische Energie || in kW/h
 +
|-
 +
| 47 || aktuelle elektrische Leistung || Wert / 34 kW
 +
|-
 +
| 48-49 || Anzahl Starts ||
 +
|-
 
|}
 
|}

Aktuelle Version vom 7. November 2009, 18:11 Uhr

Bei der Auslieferung der Dachs MSR1 haben wir eine Service Software bekommen, die erweiterte Daten aus dem BHKW auslesen kann. Vornehmlich ging es uns darum zu erfahren in wie vielen Stunden genau die nächste Wartung ansteht. Die Schnittstelle ist eine 9600 Baud 8N1 Schnitstelle mit RTS/CTS Handshake. Temperaturen werden dabei wohl als signed char versendet. D.h. ist der Wert > 127, so muss 256 abgezogen werden. Wie bei der decodierung vorgegangen wurde gibts hier.

Achtung.png Vorsicht beim experimentieren!

Durch komisch aussehende Daten kann die Dachs wohl ausversehen umkonfiguriert werden. Also lieber Konfiguration mit dem Service Tool vorher sichern.


Interne Meßwerterfassung: 0x48

Sendet man das Byte 0x48, so erhält man 76 Byte als Antwort. Ob das letzte Byte eine Checksumme ist noch herauszufinden. FIXME. Jedoch Interessiert sich die Service Software nicht dafür.

Byte Funktion Beispiel
0 Identifikation der Nachricht 01
1-2 Betriebsstunden 0xa2fe = 41726
3-4 Anzahl der Starts
5 Maximale Abgastemperatur 15 hinzuaddieren
6 Maximale Kühlwassertemperatur Motor
7 Maximale Kühlwassertemperatur Generator
8 Maximale Vorlauftemperatur
9 Maximale Temperatur Fühler 1
10 Maximale Temperatur Fühler 2
11 Mittlere Generator Leistung 7.5 KW / 0xff * Wert
12 Anzahl der Störungen
13-18 Registrierter Fehler 1 Für Format siehe unten
19-24 Registrierter Fehler 2 Für Format siehe unten
25-30 Registrierter Fehler 3 Für Format siehe unten
31-36 Registrierter Fehler 4 Für Format siehe unten
37-42 Registrierter Fehler 5 Für Format siehe unten
43-48 Registrierter Fehler 6 Für Format siehe unten
49-54 Registrierter Fehler 7 Für Format siehe unten
55 Maximaler Flüssigkeitsschalter vielleicht nicht bei allen Versionen?
56,57,58 unbekannt
59-60 letzte Wartung verschiedene Interpretationen, bei manchen Versionen des Service Programms werden noch 500 Stunden bis zur nächsten Wartung aufgeschlagen.
61- unbekannt

Das Format der Fehlercodes/Fehler ist folgendes:

Byte Funktion Beispiel
1 Servicecode und Autoentstörung höchstes Bit ist Autoentstörung ja/nein, der Rest ist der Servicecode
2 Minute Hexdarstellung ist die Minute
3 Stunde Hexdarstellung ist Wert
4 Tag Hexdarstellung ist Wert
5 Monat Hexdarstellung ist Wert
6 Jahr 1900 + Wert, 0x61 = 1997

Meßwerte und Betriebszustand: 0x50

Byte Funktion Beispiel
0 Identifikation der Antwort 02
1 Vorlauftemperatur
2 Rücklauftemperatur
3 Kühlwassertemperatur Motor
4 Abgastemperatur 15 muss hinzuaddiert werden
5 Außentemperatur
6 Temperatur Fühler 1
7 Temperatur Fühler 2
8 Kühlwassertemperatur Generator
9 unbekannt
10-11 Drehzahl
12 unbekannt
13 Bivalenz Umschalttemperatur
14-15 Bivalenz Umschaltzeit Wert in Minuten
16 Service Code
17,18,19,20 unbekannt
21 Umwälzpumpe Status 1

Bit 8: UP-Kühlung: Ein/Aus
Bit 7: UP-Heizöl: Auf/Zu

22 Umwälzpumpe Status 2

Bit 8: UP-Vordruck: Ein/Aus
Bit 7: UP-Heizung/Brauchwasser: Ein/Aus
Bit 6: Heizkesselfreigabe: Ein/Aus
Bit 4: Leistungsüberwachung: Ein/Aus
Bit 3: Boilerentladung: Ja/Nein
Bit 2: Modulfreigabe Bus: Ja/Nein
Bit 1: Modulfreigabe Extern: Ja/Nein

23,24,25,26,27,28,29,30 unbekannt
31-32 U1 in Volt 105.6V + (100.0 /0x1cd) * Wert
33-34 U2 in Volt 314.4V - (100.0 /0x1cd) * Wert
35-36 U3 in Volt 105.6V + (100.0 /0x1cd) * Wert
37-38 I1 in Ampere Wert * (10.0A /0x1cd) - (10.0*0xcd)/0x1cd
39-40 I2 in Ampere Wert * (10.0A /0x1cd) - (10.0*0xcd)/0x1cd (wie I1)
41-42 I3 in Ampere 10.0A/0x1cd * (0x02f5 - Wert)
43 cosphi unbekannte Umrechnung Wert -> cosphi
44 unbekannt
45 ü_platine

0xfd = OK
ansonsten Fehler

46 - unbekannt

Status bei der letzten Störung: 0x58

Byte Funktion Beispiel
0 Identifikation der Antwort 03
1 Vorlauftemperatur
2 Rücklauftemperatur
3 Kühlwassertemperatur Motor
4 Abgastemperatur 15 muss hinzuaddiert werden
5 Außentemperatur
6 Temperatur Fühler 1
7 Temperatur Fühler 2
8 Kühlwassertemperatur Generator
9-17 unbekannt
18 Bivalenz Umschaltzeit
19 Steigung der Heizkurve Wert/10.0
20 Untere Heizkurvenbegrenzung
21 Obere Heizkurvenbegrenzung
22 unbekannt
23 Einschalttemperatur Rücklauf
24 Ausschalttemperatur Rücklauf
25 Soll Vorlauf
26- unbekannt

Konfiguration und Seriennummer: 0x60

Kurzer Zustandsbericht: 0xe8

Das Kommando 0xe8 fällt etwas aus dem Rahmen, da es nur 22 Byte (mit Checksumme besteht). Die Checksumme wird dadurch errechnet, dass alle 21 Datenbytes der Reihenfolge nach XORed wird. Ein Bespiel in C.

uint8_t i, chksum = 0;
for (i = 0; i < 22; i++)
  chksum ^= data[i];
Byte Funktion Beispiel
1 Identifiaktionsbyte 5
2-3 Betriebstunden
4 Wartung Stunden bis zur nächsten Wartung. Bei 255: >254 Stunden.
5 Rücklauftemperatur
6 Vorlauftemperatur
7 Abgastemperatur Wert + 15 Grad
8 Einschalttemperatursoll
9 Betriebszustand siehe e8 Skript
10 Elektrische Leistung der Anlage Wert / 34.0; Ergebnis in KW
11-16 Aktive Servicecodes der Module Modul 0-5
17 Betriebszustand Sollwert Global oder modulbezogen
18 Verfügbarkeit BHKW Gobal oder modulbezogen
19-21 unbekannt
22 Prüfsumme siehe oben

Ist ein Wert Global oder Modulbezogen ist bedeutet dies, dass es global ist, wenn das höchste Bit 0 ist. Ist das höchste Bit 1, so beziehen sich die Werte der anderen Bits auf das Jeweilige Modul. So wäre ein 0x81 ein wahrer Wert für Modul 0.

Mehr Interne Messwerte: 0xc0

Auch hier gilt die selbe Checksum, wie bei 0xe8, das Packet hat, inklusive Checksum 76 Bytes.

Byte Funktion Beispiel
1 Identifikationsbyte 0
2 Betriebszustand Anlage läuft/nicht. Global oder modulbezogen
3 Betriebszustand(soll) Anlage läuft/nicht. Global oder modulbezogen
4 Wartung Stunden bis zur nächsten Wartung. Bei 255: >254 Stunden.
5-19 unbekannt Wohl Akt. Servicecodes und Betriebsstunden der einzelnen Module
20-21 Betriebstunden der Anlage
22 Sollwert Rücklauf
23 Rücklauftemperatur
24 Sollwert Vorlauf
25 Vorlauftemperatur
26 Außentemperatur
27 Temperatur Fühler 1
28 Temperatur Fühler 2
29 Temperatur Kühlwasser Generator
30 Kesselfreigabe
31 Aktiever Servicecode
32 Betriebsart BHKW 0xff: BHKW an; ansonsten BHKW aus
33 Steuerbyte BHKW 0: BHKW aus; ansonsten BHKW an
34 Steuerbyte Brenner siehe Byte 33
35 Temperatur Kühlwasser Motor
36 Abgastemperatur Wert + 15 Grad
37-38 Drehzahl
39-42 Erzeugte Elektrische Energie in kW/h
43-46 Erzeugte Thermische Energie in kW/h
47 aktuelle elektrische Leistung Wert / 34 kW
48-49 Anzahl Starts