Seite 2 von 2

Re: CUxD Wrapper-Device Reset

Verfasst: 03.05.2018, 15:37
von Georgee
Weiterer Zwischenstand:

mit folgende Zeilen unter "Skript testen"

Code: Alles auswählen

real p = dom.GetObject("CUxD.CUX9000003:1.MEAN").Value();
WriteLine("vor Reset "#p);
dom.GetObject("CUxD.CUX9000003:1.RESET").State(1);
dom.GetObject("CUxD.CUX9000003:1.SET_STATE").State(0);
real p = dom.GetObject("CUxD.CUX9000003:1.MEAN").Value();
WriteLine("nach 0 "#p);
dom.GetObject("CUxD.CUX9000003:1.SET_STATE").State(1);
real p = dom.GetObject("CUxD.CUX9000003:1.MEAN").Value();
WriteLine("nach 1 "#p);
dom.GetObject("CUxD.CUX9000003:1.SET_STATE").State(2);
real p = dom.GetObject("CUxD.CUX9000003:1.MEAN").Value();
WriteLine("nach 2 "#p);
dom.GetObject("CUxD.CUX9000003:1.SET_STATE").State(3);
real p = dom.GetObject("CUxD.CUX9000003:1.MEAN").Value();
WriteLine("nach 3 "#p);
dom.GetObject("CUxD.CUX9000003:1.SET_STATE").State(4);
real p = dom.GetObject("CUxD.CUX9000003:1.MEAN").Value();
WriteLine("nach 4 "#p);
dom.GetObject("CUxD.CUX9000003:1.SET_STATE").State(5);
real p = dom.GetObject("CUxD.CUX9000003:1.MEAN").Value();
WriteLine("nach 5 "#p);
dom.GetObject("CUxD.CUX9000003:1.SET_STATE").State(6);
real p = dom.GetObject("CUxD.CUX9000003:1.MEAN").Value();
WriteLine("nach 6 "#p);
dom.GetObject("CUxD.CUX9000003:1.SET_STATE").State(7);
real p = dom.GetObject("CUxD.CUX9000003:1.MEAN").Value();
WriteLine("nach 7 "#p);
!dom.GetObject("CUxD.CUX9000003:1.SET_STATE").State(8);
!real p = dom.GetObject("CUxD.CUX9000003:1.MEAN").Value();
!WriteLine("nach 8 "#p);
real p = dom.GetObject("CUxD.CUX9000003:1.MEAN").Value();
WriteLine("nach Reset "#p);
WriteLine("Hallo Welt!");
erhalte ich folgende Ergebnisse:

Code: Alles auswählen

vor Reset 3.500000
nach 0 7.000000
nach 1 7.000000
nach 2 3.500000
nach 3 3.500000
nach 4 3.500000
nach 5 2.670000
nach 6 2.670000
nach 7 2.670000
nach Reset 2.670000
Hallo Welt!

USE_HMDATAPT ist nicht aktiviert
WRAPPER|HISTORY_BUFFER 8

Der Mittelwert der Zahlenfolge 0-7 sollte 3,5 betragen, dies stimmt nur am Anfang des nächsten Durchlaufs mit gleichen Werten.

Es ist für mich nicht erklärlich, warum nach MEAN 3,5 und RESET, anschließendem SET_STATE (0) der neue Mittelwert 7 betragen soll usw.

Wo liege ich hier so gänzlich falsch?

Viele Grüße
Georgee

Re: CUxD Wrapper-Device Reset

Verfasst: 03.05.2018, 16:54
von uwe111
Georgee hat geschrieben:Wo liege ich hier so gänzlich falsch?
Erst einmal musst Du SET_STATE vor RESET aufrufen, um mit 0 zu starten.
Das nächste Problem liegt in Deiner Programmierung. Der gepufferte .Value() Wert aus der ReGa ist wahrscheinlich noch nicht aktualisiert, wenn Du ihn abrufst. Um die aktuellen Daten zu erhalten musst Du sie mittels .State() abfragen.
Georgee hat geschrieben:ich nutze den Wrapper, um per Script Daten für eine Mittelwertbildung zu sammeln - Erfassung der mittleren Leistung bei verschiedenen Zuständen der Heizung/Solaranlage.
Darunter kann ich mir jetzt leider nichts konkretes vorstellen.

Mit dem CUxD Gerät kannst Du eingehende Messwerte glätten bzw. Messfehler rausfiltern. Und zwar dynamisch zur Laufzeit mittels eines Ringbuffers. Die maximale Größe des Ringbuffers wird in den Geräteeinstellungen definiert.

Wenn Du statistische Auswertungen mit vorhandenen Daten machen möchtest, dann ist das CUxD Gerät vielleicht der falsche Ansatz.

Viele Grüße

Uwe

Re: CUxD Wrapper-Device Reset

Verfasst: 04.05.2018, 08:11
von Georgee
Danke für die Hinweise.

Aufgabe war schon, Messwerte zu glätten, dies aber mit definierten Anfangswerten (0) innerhalb eines bestimmten Zeitraums nach Änderung (Leerlauf 20 W, Betrieb 100 W) ohne Rückwirkung aus der Leerlaufphase. Rückwirkung ergibt sich ja über die Zahl der Elemente des Puffers.

Es wäre eine schnelle und elegante Möglichkeit gewesen.

Die Programmierung dieser Aufgabe erfordert mit meinen Kenntnisses dann einige Systemvariable und Programmieraufwand.

Viele Grüße
Georgee