8.388.607 * 100000
Ich habe das Gerät nicht und auch keine Zeit und im Moment vor allem wenig Lust, mir den Code genauer anzuschauen.
Wie schon geschrieben, gehe ich davon aus, das fischmir die geposteten Werte nicht irgendwie anderweitig beeinflusst hat, also muss es ja möglich sein, das Verhalten zu reproduzieren.
Wenn ich den von fischmir geposteten Code mal zusammenstreiche auf das Allernötigste bis zum ersten Auftreten der Integerwandlung
Code: Alles auswählen
object chn = dom.GetObject('3105'); ! Kanalobject ISE_ID oder passender Kanalname HM-ES-TX-WM
object oEnergyCounter = chn.DPByControl('POWERMETER_IGL.ENERGY_COUNTER'); ! Datenpunkt
real devVal = oEnergyCounter.Value(); ! realWert des Datenpunkt
integer tmp_devVal = (devVal.ToString().ToFloat() * 100000).ToInteger(); ! Konstrukt und Multiplikation sowie Umwandlung zu integer
würde also theoretisch ab einem Gerätezählerstand von 21474+ in tmp_devVal den falschen Wert zur weiteren Verarbeitung verwendet. (Da ja mit 100000 multipliziert wird).
Dieselbe Wandlung kommt noch mehrmals im Script vor.
Nun könnte ich zwar die Zähler meiner PSM oder BSM usw. so hochtunen, aber das wäre ja das falsche Gerät und damit Script und wahrscheinlich auch nicht aussagekräftig, da künstlich erzeugt.
Ich muss gestehen, das meine Geräte noch nie so einen hohen Zählerstand hatten, da immer wieder auf die ein oder andere Art resettet wurde.
Die Integer Umwandlung ist dort ja auch in anderen Gerätescripten zu finden.
Ich kann fischmir nur raten seine Zähler zu resetten und die Sache zu beobachten. Vielleicht hat sich auch irgendwann
bei Ihm etwas verschluckt.
Das würde zumindest erklären, warum es noch nicht zu so einer Meldung kam, zumindest soweit ich mich erinnere.
Vielleicht sind die Scripte in Summe so gut, das alles abgefangen wird - die Programmierer werden schon wissen, warum sie es so gemacht haben.
Alchy