<?
/*
IP-SYMCON Event Scripting
File : BHKW_Daten_einlesen.ips.php
Trigger :
Interval :
*/
COMPort_SendText(21169, chr(192));
$debug = false;
$SL=76; //Länge Datenstring
if ( !get_BHKW() ) { return; } else { $daten = get_DATA ( $v ); }
if ($debug) {
foreach ( $daten as $id => $inhalt ) {
echo "Wert Nummer " . $id . " ===> " . $inhalt . " || ";
}
die („Ausgabe beendet“);
}
SetValueString(„Betriebsstunden_BHKW“,hexdec($daten[19].$daten[20])." h"); //Ausgabe Betriebsstunden
SetValueInteger(„BHKW_Betriebsstunden“,hexdec($daten[19].$daten[20])); //Ausgabe Betriebsstunden
SetValueString(„Wartung_BHKW“,wartung($daten[3]). „h“); //Ausgabe Stunden bis Wartung
SetValueInteger(„BHKW_RL“,hexdec($daten[22])); //Ausgabe RL-Temp.
SetValueInteger(„BHKW_VL“,hexdec($daten[34])); //Ausgabe VL-Temp.
SetValueInteger(„BHKW_Abgas“,hexdec($daten[35])+15); //Ausgabe Abgas-Temp.
SetValueFloat(„BHKW_GenLeistung“,(hexdec($daten[46])/34)); //Ausgabe Generatorleistung
SetValueInteger(„BHKW_erzeugte_elektrische_Energie“,hexdec($daten[38].$daten[39].$daten[40].$daten[41])); //Erzeugte elektr. Energie
SetValueInteger(„BHKW_erzeugte_thermische_Energie“,hexdec($daten[42].$daten[43].$daten[44].$daten[45])); //Erzeugte therm. Energie
SetValueInteger(„BHKW_Drehzahl“,hexdec($daten[36].$daten[37])); //Drehzahl
SetValueInteger(„BHKW_Kuehlwassertemperatur“,hexdec($daten[24])); //Kuehlwassertemperatur
SetValueInteger(„BHKW_Kuehlwassertemperatur_Generator“,hexdec($daten[28])); //Kuehlwassertemperatur Generator
SetValueInteger(„BHKW_Starts“,hexdec($daten[47].$daten[48])); //Starts
$sc = hexdec($daten[30]);
settype($sc,„String“);
SetValueString(„BHKW_Servicecode“,$sc); //aktueller Servicecode
If ($daten[31]==„ff“)
{ SetValueInteger(„BHKW_Betrieb“,1);
SetValueString(„Betriebszustaende_BHKW“,„Ein“);
} else{
SetValueInteger(„BHKW_Betrieb“,0);
SetValueString(„Betriebszustaende_BHKW“,„Aus“);
}
if ($debug) {
echo ($daten[4]); }
// Funktionen auch zu spaeteren Verwendung bei anderen Ergebnissen
function get_BHKW () {
global $v, $debug,$SL;
$binaer = GetValueString(„BHKW_Daten“);
// wenn keine daten, dann false, sonst Variable loeschen
if ( $binaer == „“ ) { return false; } else { SetValueString(„BHKW_Daten“, „“); }
// zum loggen auf screen
If($debug){ echo"InBuf: „.$v.“ #
";
$l=strlen($binaer);
//$l= 76;
echo"Länge: „.$l.“ #
";
}
// Variable initialisieren
$l=strlen ( $binaer );
echo"Länge: „.$l.“ #
„;
If ($l == $SL) {
for ( $i=0; $i < $l; $i++) {
$v .= bin2hex ( substr ( $binaer, $i, 1 ) ) .“ ";
}
}else{
return false;
}
if ($debug) { logfile(); }
return true;
}
function wartung ( $hexbyte ) {
If ( hexdec ( $hexbyte ) < 255) {
return ( sprintf("%2.0f", hexdec ($hexbyte)));
} else {
return „>255“;
}
}
$daten = array();
function get_DATA ( $v ) {
return ( explode ( " ", $v ) );
}
function logfile () {
global $v;
$handle = fopen(„c:/programme/ip-symcon/logs_var/BHKW.txt“, „a“);
fwrite( $handle, date(„d.m.y“).
" „.
date(„H:i:s“).
" (“.str_pad(77,2," „,STR_PAD_LEFT).“)".
": ".
$v.
"
");
fclose($handle);
}
?>
Wenn du noch etwas benötigst, gib bitte bescheid.