Zählerwert unter null Ignorieren

Hallo
Ich suche nach einem Script für folgende Aufgabe:
Ich habe einen Zähler der mir den Verbrauchswert einer Trafostation ausließt. Zusätzlich ist hier nun eine PV-Anlage angeschlossen. Sobald der ertrag der PV Größer ist als der Verbrauch an der Station bekomme ich im IP-Symcon nun einen Negativen Milliardenwert (Hab die stellen nicht gezählt.)
Jetzt gibt es für mich 2 Möglichkeiten:
Wie bekomme ich aus diesem Negativen wert den Richtigen Wert (INT64 Signed)

Oder wie setz ich den Wert des Zählers sobald er auf unter null geht wieder auf null?

Ich sehe für Fragen zur Verfügung
Gruß
Carsten

Du kannst entweder eine Hilfsvariable nutzen, oder eben den Int64 Typ verwenden. Ich vermute du nutzt ModBus?

paresy

Hallo
Ich benutze einen Berg UBN 315 und nutze hier das Modbus Protokoll über die RS 485.
Für diesen Zähler benutze ich den Int64 (64Bit - Signed)
Wie gesagt leider bringt mit der Zähler leider immer sobald er unter null geht, einen Wert der bei -922337272036855 liegt.
Ich habe mal ein Bild zum Verständnis angehängt.
So wie ich das verstehe ist (warum auch immer) der Wert -922337272036855 entsprechend dem ersten negativen Wert. Bei den Werten aus dem Screenshot handelt es sich dann um die Negativen werte wenn ich die obere Zahl davon abziehe.
Ich verstehe nur nicht warum dies ist.
Gruß
Carsten

Wie schon gesagt habe ich dieses Problem nur wenn der Zähler in den Minuswert läuft.
Der wert -0 wird dann als 2 Hoch 63 = - 9223372036854775808 Dargestellt
Da in der Datenabfrage direkt durch Tausend geteilt wird komme ich zu folgendem Skript:

$Leistung=GetValueFloat(49344 Variable 1);

if ($Leistung <0) { 
   
    $LeistungKW= (-9223372036854775.808 -$Leistung)/1000;

$LeistungKW=round($LeistungKW,2); 

SetValueFloat(35283 Variable2 ,$LeistungKW);

} else { 
 
	$LeistungKW=$Leistung/1000;

	$LeistungKW=round($LeistungKW,2); 

	SetValueFloat(35283 Variable 2,$LeistungKW); 
   
}