Dachs HKA: MSR1 - Serielles Protokoll
-
-
-
Danke MaUdo,
ist jetzt klar. Werde mir das mal genauer ansehen.
Gruss
Werner -
Hallo Thomas,
Ich habe die Problem mit der Übertragung in den Griff bekommen. Aber mit der Auswertung habe ich noch ein paar Problem.
Laut Steuerung soll mein Dachs 59158 Startvorgänge haben. Auslesen kann ich aber nur 22 Starts.
Und die thermische Energie weicht auch ab. Laut Steuerung 325549 kWh. Wenn man sich die Bytes einzeln ansieht sind die beiden mittleren Negatiev. Das kann ja eigendlich nicht sein.
Ich habe mal das Gesamte Antwortprotokoll als dezimal Zahlen ausgegeben.
Das zusammensätzen der Werte mit mehreren Bytes funktionirt aber bei den Betriebsstunden und der elektr. Energie. Die Drehzahl hat bei laufender Anlage mit 2209 1/min auch gut ausgesehen.Code
Alles anzeigenVerbindung zum Dachs wurde hergestellt Port = 3 Daten gesendet: 1 Empfange 76 Zeichen Temp. Kühlwasser Generator : 69 °C Servicecode : 0 Temp. Kühlwasser Motor : 92 °C aktuelle elektr. Leistung : 0.0000 kW Betrieb : fffffffe Drehzahl : 0 1/min Betriebsstunden : 25948 h Starts : 22 elektrische Energie : 146789 KWh thermische Enegie : 259756 KWh Alle Bytes dezimal ausgegeben: Byte 0 : 0 Byte 1 : -128 Byte 2 : -128 Byte 3 : -1 Byte 4 : 0 Byte 5 : 0 Byte 6 : 0 Byte 7 : 0 Byte 8 : 0 Byte 9 : 0 Byte 10 : 0 Byte 11 : 0 Byte 12 : 0 Byte 13 : 0 Byte 14 : 0 Byte 15 : 0 Byte 16 : 0 Byte 17 : 0 Byte 18 : 0 Byte 19 : 101 Byte 20 : 92 Byte 21 : 63 Byte 22 : 38 Byte 23 : 85 Byte 24 : 114 Byte 25 : 66 Byte 26 : 114 Byte 27 : 114 Byte 28 : 69 Byte 29 : 96 Byte 30 : 0 Byte 31 : -2 Byte 32 : 8 Byte 33 : 16 Byte 34 : 92 Byte 35 : 59 Byte 36 : 0 Byte 37 : 0 Byte 38 : 0 Byte 39 : 2 Byte 40 : 61 Byte 41 : 101 Byte 42 : 0 Byte 43 : 4 Byte 44 : -9 Byte 45 : -84 Byte 46 : 0 Byte 47 : 0 Byte 48 : 22 Byte 49 : 0 Byte 50 : 0 Byte 51 : 0 Byte 52 : 0 Byte 53 : 0 Byte 54 : 0 Byte 55 : 0 Byte 56 : 0 Byte 57 : 0 Byte 58 : 0 Byte 59 : 0 Byte 60 : 0 Byte 61 : 0 Byte 62 : 0 Byte 63 : 0 Byte 64 : 0 Byte 65 : 0 Byte 66 : 0 Byte 67 : 0 Byte 68 : 0 Byte 69 : 0 Byte 70 : 0 Byte 71 : 0 Byte 72 : 0 Byte 73 : 0 Byte 74 : 0 Byte 75 : 13
Kann es Sein, dass der Gas-Dachs ein anderes Antwortbrotokoll hat, als der Öl-Dachs?
Gruß
Mofaklaus -
Hallo Mofaklaus,
wegen Protokoll für Gasdachs frag mal Bernd ob er dir das Script zuschickt. Mit dem hab ich das über Telefon eingerichtet und ich hab das Script deshalb nicht vorliegen. Ich weiß auch nicht mehr ob da unterschiede waren zum Öldachs (ich glaube aber nicht). Du kannst die dann ja mal vergleichen ;).
Wo du - Werte herbekommst ist mir ein RätselWieso hat bei dir die Drehzahl l/min
Gruß
Thomas -
Ich mail es dir zu, wenn du mir deine Mailadresse schickst.
-
-
Hallo Leute,
ich lag am WE flach und konnte nur ein bischen an der Datenbankanbindung arbeiten.
Die drei Temperaturwerte gehen auch schon iin die DB.Danke Bernd ich habe dir meine Mail-Adresse zugeschickt.
Thomas, was ist an der Einheit 1/min falsch
Ich könnte ja auch rpm schreiben. Aber z.B. auf dem Typenschild von Motoren ist die Drehzahl doch auch immer mit 1/min angegeben.Aber was meinst du mit :
ZitatWo du - Werte herbekommst ist mir ein Rätsel
ich sende nur ein 0xc0 and den dachs. Wie du auch. Die Antwort vom Dachs habe ich ja schon geschrieben. Die "Auslegung" der Antwort wird wohl der springende Punkt sein
Gruß
Mofaklaus -
Hi,
ich habe das als L = Liter gesehen
1/min ist natürlich korrekt :]
Die Bytes die du empfängst müssen ja die gleichen sein wie bei mir und mit meinen Scrpit siehst du ja wie man die zusammensetzt, deshalb verstehe ich nicht wie du dann auf - Werte kommst.
Kann sein das du da was falsches empfängst??
Hast du das Protokoll von Bernd schon mit meinem verglichen und gibts da Dfferenzen?Grüße
Thomas -
Hallo Thomas,
Hallo Bernd,ich habe hier bei der Arbeit leider jetzt nur das Script von Bernd. Aber aus meiner Erinnerung her müsste es in den relevanten Punkten gleich sein. Das Merkwürdige ist nur, dass ja einige Bytes richtig ausgelesen werden und einige nicht.
In dem Script benutzt Ihr eine Funktion
COMPort_SendText(36453, chr(192))
Diese sendet offensichtlich das Zeichen 192 oder (0xc0) an den COMPort.
Aber wofür steht die "36453"?ich werde zuhause mal schauen ob ich noch Unterschiede finde.
Gruß
Mofaklaus -
Hallo Mofaklaus,
ZitatDiese sendet offensichtlich das Zeichen 192 oder (0xc0) an den COMPort.Aber wofür steht die "36453"?
Das ist richtig und die 36453 ist die COM-Instanz in IP-Symcon, quasi das COM-Modul wird damit angesprochen (benötigst du also nicht).
Gruß
Thomas -
Hallo Thomas und Bernd,
jetzt bin ich etwas verwirt.
Ich habe eure beiden Scripte verglichen. Der einzige unterschied besteht darin, dass Ihre die Bytes anders interpretiert.
Bei Bernd sind alle Bytes um 2 "verschoben".
z.B. Für das Kühlwasser-Motor verwendet Thomas Byte 24 (ich auch) und Bernd Byte 22.
Ansonsten werden bei Bernd noch Zwei Bytes mehr verarbeitet, aber die Summe der ausgelesenen Bytes ist bei beiden 76.Wenn ich nach dem Schema von Thomas auslese, stimmen volgende Werte:
-Wassertemeratur Generator
-Wassertemperatur Motor
-Abgastemperatur
-Rücklauftemeratur
-Füher 1 (benutze ich aber nicht)
-Fühler 2 (benutze ich auch nicht)
-Status
-Energie elekr.Der rest ist "Müll" den ich bekommen.
Ich werde mich wohl aber jetzt erst mal um den Rest der Programierung kümmern bis ich an diesem Problem weiter mache. Die Werte die ich habe sind ja schon das aufschlussreich.Ich habe bei einem Dachsbetreiber gesehn, dass er auch Spannung und Strom aus der Steuerung auslesen kann, weis jemand, wie das gemacht wurde? Das waren auch online Daten die ich gesehen habe.
Grüße
MofaklausPS ich habe schon mal den ersten Chart angehängt
-
-
Das liegt anscheinend an den Unterschiedlichen "Bios" Revisionen.
Am Anfang ist uns das auch aufgefallen, dann hat Tom upgedatet und die Länge paasste dann, der Unterschied in den Positionen kann ich mir auch nicht erklären, bei mir sind Gas und Öler mit dem gleichen Script auch an den gleichen Stellen... -
Hallo Leute,
ich habe jetzt warscheinlich alle Probleme gelöst. Das auslesen läuft alle 4 sec und bricht nicht mehr ab. Und das Problem mit den falschen Werten habe ich auch gelöst.
Ich hohle nur noch 72 Byte vom Dachs ab. Dadurch konnte ich die Probleme mit dem Abbrechen lösen. Die letzten 4 Byte sind ja nicht so interesant.
Die augelesenen "Char" Werte von der seriellen Schnittstelle wandele ich jetzt in "8Bit int ohne Vorzeichen" um. Und somit erhalte ich die Richtigen Werte.Mein System im Überblich:
-PII Rechner mit Suse Linux 8.2
-Apatche I Webserver mit PHP4
-My SQL Datenbank-Dazu habe ich ein C-Programm geschrieben, welches die Datem vom Dachs hohlt und im "chared Memory" ablegt.
-Ein weiteres C-Programm speichert die Daten in die Datenbank.
-Ein CGI (in C geschrieben) zeigt die aktuellen Daten aus den "chared Memory" über den Webserver an.
-Einige PHP Scripte können dann aus Datenbank Kurven oder Statistiken anzeigenDa der Server bei mir noch andere Dinge überwacht und steuert, können meine Programme und Scripte leide nicht 1 zu 1 übernommen werden. Denn die Programme sind immer für mehrere Sachen zuständig.
Aber wenn jemand Teile übernehmen möchte bitte ein PN an mich schreiben. Bitte genau schreiben wo Ihr nicht weiter kommt. Ich sende ich dann den entsprechenden Codeteil.Grüße
Mofaklaus -
Hi,
kann man sich das mal auf deinem Webserver ansehen, also die Webseiten online ?
Ansonsten (y) (y)
Grüße
Thomas -
Leider noch nicht ich hoffe über die Feiertage den Server so sicher zumachen, das ich die Adresse hier posten kann.
Bitte noch etwas Geduld
Grüße
Mofklaus