Schnittstellenprogrammierung

Hallo IPS Gemeinde,

ist jemand unter euch der sich mit Schnittstellenprogrammierung auskennt? Ich habe ein BHKW welches ich über eine serielle Schnittstelle auslesen kann. Nun möchte ich die Daten in IPS einlesen können (über COM) und dann mit dem RRD-Tool aufzeichnen :slight_smile: . Ich habe das Protokoll zur Datenkommunikation vorliegen, kann aber nichts damit anfangen :frowning: . Kann mir da jemand behilflich sein??
Vielleicht sind ja noch andere unter euch die ein BHKW besitzen. Es handelt sich um den Dachs der Fa. Senertec. Wäre eine super Sache so ein Gerät in IPS zu Visualisieren.

Gruß
Thomas

… immer her damit: info@ipsymcon.de :rolleyes:

zur Info:

http://www.senertec.de/start.htm
http://www.bhkw.de/

Hallo Thomas,

zunächst müssen PC und das betreffende Gerät mit einem Modemkabel verbunden werden.

Hinweis: liegen an beiden Sub-D9 Steckern - Pin3 / TxD eine Spannung von ca. -10V an,
so muss ein Nullmodemkabel verwendet werden.
http://info.electronicwerkstatt.de/bereiche/stecker/rech_rech.html

Die Settings des COM Port http://www.ipsymcon.de/wiki/index.php/Com_Port
betragen für Dein BHKW: 9600,8,1,N – „Flow control“ testweise auf „None“
Wenn Du eine HEX „A8“ sendest,


COMPort_SendText($iid, chr(168));

solltest Du als Antwort alle Datensätze bekommen. Diese müssen dann noch
entsprechend zerlegt werden. Sende mir dann mal die Daten zu.

Gruß MST

Hallo Steiner,

ich habe gar nicht mitbekommen das du so schnell wieder geantwortet hast :frowning:
Ich habe alles so gemacht wie du geschrieben hast aber es kommen keine Daten im Debug-Fenster.
Das mit dem Kabel müsste eigentlich hinfällig sein da die Kommunikation zum BHKW schon vorhanden ist weil ich ja eine Software habe um die Daten auszulesen aber mehr geht mit dieser Software leider nicht (keine Trends usw.).
Muss ich zum Daten auslesen des Reglers nicht die 0xE8 senden???
Die 0xA8 ist doch zum Daten senden an den Regler oder??
Ich habe im Anhang mal ein Screenshot des Debugfensters für dich eingefügt.

Grüße
Thomas

Hallo Thomas,

Du hast Recht, es muss eine 0xE8 / 232 DEZ sein.
Versuche mal den Flow Control auf „Hardware“ zustellen oder RTS / CTS
auf der Seite des Reglers zuüberbrücken.

Gruß MST

Hast du den COMPort auch geöffnet? (Der Button muss auf OPEN stehen und grün sein)

Grüße, paresy

Hallo Steiner u. Paresy,

JUHU, ich empfange Daten :slight_smile: . Es hat nichts geholfen egal was ich eingestellt habe. Ich habe meinen Server dann mal neu gestartet (Verzweiflungsaktion) und seitdem funzt es.

Anbei das Debug-Fenster mit den Datenbytes. Ich komme meinem Traum der BHKW-Visualisierung immer näher :slight_smile:

Grüße
Thomas

Hallo Thomas,

… jetzt musst Du „nur noch“ den Datensatz zerlegen :rolleyes:
Das Skript, in dem Du dies machst, muss mit der Variable aus „Register Variable“ getriggert werden.

Hier ein paar Anregungen zum Text-Schnibbeln:

http://de.php.net/manual/de/function.substr.php
http://de.php.net/manual/de/function.trim.php
http://de.php.net/manual/de/function.explode.php
http://de.php.net/manual/de/function.strpos.php

Tipp: öfters mit dem Befahl „echo“ oder Debug-Fenster oder „Evaluate / Modify“ mit „Watch“ & „Pinned“ arbeiten, damit man sieht was passiert

Gruß MST

Hi Steiner,

in der Variablen „BHKW_Daten“ vom Typ String (aus der Register Variable) werden folgend Daten gespeichert: ‚+ºÿIr6D´+ºÿIr6D´+ºÿIr6D´‘ :confused:
Wie soll ich das auswerten?? Dieser String wird immer länger.
Das sind doch nicht die Werte die im Debug-Modus auflaufen oder?

Hilfeeeeeeee :wink:

Gruß
Thomas

… doch, das sind die Daten!
Wenn Du mit dem Zerlegen fertig bist, musst Du noch den Puffer löschen:

SetValueString(„BHKW_Daten“, „“); //clear buffer

Nach ein Tipp: suche nach dem Erkennungsbyte 5

$pos = strpos ($mystring, chr"5");

im 4. Datenbyte danach steht z.B. die Rücklauftemperatur.

Viel Erfolg!

MST

ok, ich werd dann mal mein Glück versuchen :wink:
Danke schonmal für die Hilfe.

Gruß
Thomas

Hallo Steiner,

ich brauche nochmal deine Hilfe :frowning:
Ich begreife nicht wie ich aus dem Buchstabensalat die Daten „rausschnippeln“ soll. So wie die Daten im Debug-Fenster kommen leuchtet es mir einigermassen ein, aber der Datensalat aus der Variablen macht mich zu schaffen. Ich stehe im Moment glaub ich auf der Leitung.
Vielleicht kannst du mir auf die Sprünge helfen.

Gruß
Thomas

… sende mir am besten die daten an: info@ip-symcon.de

$handle = fopen(„c:\bhkw.txt“, „a“);
fwrite($handle, $BHKW_Daten."
");
fclose($handle);