Anfängerfrage zu Serial Port / Debug (eHZ auslesen)

Hallo,
danke für die Hilfe, ich bin nun langsam am verzweifeln.:frowning:
Leider kann ich die Werte nicht nachvollziehen, da diese in meinem Log auch nicht vorhanden sind.:confused:

Wo landen eigentlich die eingelesenen Daten? Werden die auf Platte gespeichert oder sind diese nur temporär?

Gruß

…so, ich habe mal die Unterschiede in den 2 putty-log Dateien gekennzeichnet und habe nun die Stelle für mein Zählerstand gefunden.:slight_smile:

1341,69kwh_234W_putty.log.txt (2.76 KB)

1342,0kwh_6529,4Wputty.log.txt (2.76 KB)

Hallo inspiron,

Probier doch mal den Cutter Links auf Hex „01 FF 01 01 62 1E 52 FF 56“ und auf Rechts auf „00 00 CC B9“ zu setzen.

Ich hatte Anfangs auch Probleme, dass der Cutter nichts weiter gegeben hat (kein SendChunk im Debug). Irgendwann gings dann, ich meine mich zu erinnern, dass ich Comport, Cutter und Register Variable komplett neu angelegt habe. Probiers mal - meines Erachtens bist du 99% am Ziel :slight_smile:

Gruß,
Axel

Hallo,
großes Dankeschön fürs helfen! :):):slight_smile:

Wie kommst du denn auf diesen Wert „00 00 CC B9“ ? Dieser ist doch garnicht vorhanden.:confused:
Anbei mal meine aktuellen Cutter-Einstellungen. Ins Register kommt trotzdem nix an. :frowning:

Gruß

…was hat denn diese (Anhang) Meldung in blau zu bedeuten?

Die Cutter Einstellungen müssen zuerst mit „setzen“ bestätigt werden … 10 Sekunden warten. Dann MUSS mit „ok“ oder „übernehmen“ der Cutter bestätigt werden damit die Werte übernommen werden. Meine geposteten Cutter Werte sind auf jeden Fall richtig da ich diese Werte auch in Deinem Log finden kann.

Es muß jetzt eigentlich funktionieren.
Ansonsten … hast Du Teamviewer???

Die blauen Messages zeigen nur an, daß von dem TCP-Modul Daten empfangen werden und an den Cutter übergeben werden. Sieht also gut aus!

…Sie haben Post!:cool:

Stand in deinem Putty-Log vor bzw. nach dem von dir gefundenem Zählerwert. Im Zweifel würde ich aber mr_cg vertrauen :wink:

Gruß,
Axel

Hallo,
leider werden keine Werte in der Variable angezeigt.:confused:
Daten werden im Register empfangen, wie kann ich testen ob diese auch aus dem Register augelesen werden?

Gruß

Script Leistung


<?
$var = 41771 /*[Energie\Leistung]*/;
$wert = (hexdec(strtohex($IPS_VALUE))/10000);
$oldvalue = GetValue ($var);

//IPS_LogMessage("Leistung: ",$wert.", Oldvalue: ".$oldvalue);

If ($wert < ($oldvalue + 8000) and ($wert > ($oldvalue + 2) or $wert < ($oldvalue - 2))) {
		SetValue ($var, $wert);
	}

function strtohex($x) {
  $s='';
  foreach(str_split($x) as $c) $s.=sprintf("%02X",ord($c));
  return($s);
}
?>

Script Zählerstand


<?
$var = 40601 /*[Energie\Zählerstand]*/;
$wert = (hexdec(strtohex($IPS_VALUE))/10000);
$oldvalue = GetValue($var);

If ($wert < ($oldvalue + 50) and $wert > ($oldvalue + 0.01)) {
		SetValue ($var, $wert);
}

function strtohex($x) {
  $s='';
  foreach(str_split($x) as $c) $s.=sprintf("%02X",ord($c));
  return($s);
}
?>

kommentier doch dein IPS_LogMessage mal aus und schau in den Meldungen ob Werte vorhanden sind, wenn ja, stimmt mit deiner IF Bedingung etwas nicht.

…so sieht das LogMessage aus.

da stimmt doch schon was nicht mit der Zusammensetzung der Daten.

Schick mir mal einen Dump mit den Werten wie sie im Cutter ankommen als HEX und was Du genau machen willst.

Hallo,
danke für die Hilfe.
Anbei das Cutter Debug für Leistung und Zählerstand.

:confused::confused: na ich möchte die Daten meines SML Zähler sichtbar machen oder verstehe ich da was nicht?

Gruß

Cutter_Leistung_dump.txt (15.6 KB)

Cutter_Zählerstand_dump.txt (16.4 KB)

Cutter_Leistung_Hex_dump.txt (39.3 KB)

Cutter_Zählerstand_Hex_dump.txt (46.4 KB)

Ich kann dir mit deiner Umwandlung nicht ganz folgen.

$wert = hexdec($IPS_VALUE)/10000;

warum durch 10000 musst Du selber wissen.

Zählerstand wäre 1358.7297

…ich habe es erst einmal von der Anleitung so übernommen.

Aber laut Log passt der Wert aber! Nur wird dieser in der Variable noch immer nicht angezeigt.


<?
$var = 40601 /*[Energie\Zählerstand]*/;
$wert = hexdec($IPS_VALUE)/10000;
//$wert = (hexdec(strtohex($IPS_VALUE))/10000);
$oldvalue = GetValue($var);

IPS_LogMessage("Zählerstand: ",$wert.", Oldvalue: ".$oldvalue);

If ($wert < ($oldvalue + 50) and $wert > ($oldvalue + 0.01)) {
		SetValue ($var, $wert);
}

function strtohex($x) {
  $s='';
  foreach(str_split($x) as $c) $s.=sprintf("%02X",ord($c));
  return($s);
}
?>

Wenn ich den Wert durch 10 teile dann passt die Anzeige in der Variablen.

<?
$var = 41771 /*[Energie\Leistung]*/;
//$wert = (hexdec(strtohex($IPS_VALUE))/10000);
$wert = hexdec($IPS_VALUE)/10;
$oldvalue = GetValue ($var);

IPS_LogMessage("Leistung: ",$wert.", Oldvalue: ".$oldvalue);

If ($wert < ($oldvalue + 8000) and ($wert > ($oldvalue + 2) or $wert < ($oldvalue - 2))) {
		SetValue ($var, $wert);
	}

function strtohex($x) {
  $s='';
  foreach(str_split($x) as $c) $s.=sprintf("%02X",ord($c));
  return($s);
}
?>

<? 
$var = 40601 /*[Energie\Zählerstand]*/; 
$wert = hexdec($IPS_VALUE)/10000; 

SetValue ($var, $wert); 
?>    

Danke, es funktioniert.
Nun noch eine Frage,
hat es Sinn, den Client Socket nur Zeitweise zu öffnen oder kann der immer offen bleiben?

Wäre dann anschließender Befehl richtig?


<?
CSCK_SetOpen(19350 /*[Client Socket]*/,true);
  IPS_Sleep(2100);
CSCK_SetOpen(19350 /*[Client Socket]*/,false);
?>

Gruß

Die Frage wäre eher, in welchen Intervall möchte ich die Daten erhalten. Du kannst den Socket immer offen lassen oder auch in einem entsprechenden Zeitfenster öffnen. Diese würde ich dann aber über den Scripttimer machen.

Also ich habe meine zwei COM-Ports für zwei SML-Zähler (Datensatz alle 2 Sekunden) durchweg aktiviert und verarbeite die Daten mit 5 Cutter’n. Ich habe nur einen Pentium3 (1000MHz) und dabei gibt es bislang auch keine Lastprobleme. Wenn’s der Rechner verkraftet dann würde ich empfehen den Socket permanent zu verarbeiten. Um die Last zu minimieren wäre aber eine Zeitliche abfrage möglich.

Hallo,
nun habe ich soweit, dank eurer Hilfe, alles was das Datentelegramm an beweglichen Daten zur Verfügung stellt, zur Anzeige gebracht.
Leider gibt es keine Leistung und keine Spannung pro Phase. Naja, vielleicht kann man ja demnächst denn Zähler flashen!

Hihihi:D:D, war ein Spaß :wink:

Wie kann ich die Reihenfolge der Zeilen tauschen?

Gruß