-
Notifications
You must be signed in to change notification settings - Fork 667
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rate too high - Rate Change ignored? #3347
Comments
Aus dem oberen LOG erkenne ich 12 Minuten differenz zwischen den beiden PreValve Werten, oder? 12 *70 Liter also, oder sitze ich hier einem Irrtum auf (der Differenzwert ist aber 990,2 Liter). Und warum ändert sich nur der PreValue Wert? |
Du mußt die Zeit vom Setzen des vorheriegen PreValue Wertes dazu rechnen, dieser Zeitpunkt ist ja leider im Log nicht aufgeführt, weil da kein Fehler vorlag/vorliegen konnte. Zwischen der Ersten und der Zweiten Zeile muß eine oder mehrere erfolgreiche Auswertungen stattgefunden haben, wo der PreValue Wert neu gesetzt wurde und natürlich vor der ersten Zeile. Deshalb kann mann leider die genaue Zeitdifferenz nicht bestimmen^^ Hast du das Runden-Intervall auf 3 Minuten? |
@friedpa Ich habe mal die dafür zuständigen Code-Zeilen rausgesucht und konnte in der Berechnung kein Fehler finden: bool ClassFlowPostProcessing::doFlow(string zwtime) {
.
.
// aktuelle Zeit auslesen
imagetime = flowTakeImage->getTimeImageTaken();
.
.
// Zeitdifferenz zwischen der letzten erfolgreichen Runde und der aktuellen Runde berechnen
double LastPreValueTimeDifference = difftime(imagetime, NUMBERS[j]->timeStampLastPreValue); // in seconds
.
.
.
// Zeitdifferenz von Sekunden zu Minuten umrechnen
LastPreValueTimeDifference = LastPreValueTimeDifference / 60; // in minutes
.
// Wertänderung pro Minute berechnen -> (Aktueller Wert minus Vorwert) geteilt durch vergangene Minuten
NUMBERS[j]->FlowRateAct = (NUMBERS[j]->Value - NUMBERS[j]->PreValue) / LastPreValueTimeDifference;
.
.
.
if (NUMBERS[j]->MaxRateType == RateChange) {
_ratedifference = NUMBERS[j]->FlowRateAct;
}
.
// Vergleichen, ob die Wertänderung pro Minute, grösser der erlaubten Wertänderung ist
if (abs(_ratedifference) > abs(NUMBERS[j]->MaxRateValue)) {
// Wenn ja, Fehler ausgeben und die Auswertung abbrechen
NUMBERS[j]->ErrorMessageText = NUMBERS[j]->ErrorMessageText + "Rate too high - Read: "............
continue;
}
.
.
.
// aktuellen Wert als Vorwert setzen
NUMBERS[j]->PreValue = NUMBERS[j]->Value;
NUMBERS[j]->PreValueOkay = true;
.
// aktuelle Zeit als letzte Auswertzeit setzen
NUMBERS[j]->timeStampLastValue = imagetime;
// aktuelle Zeit als letzte Vorwertzeit setzen
NUMBERS[j]->timeStampLastPreValue = imagetime;
.
.
.
} |
Hmm, dann schließe ich einmal den case. |
The Problem
I have currently a RateChange Maximum of 0,07m3 = 70 Liter eingestellt:
Heute aber ist diese RateChnage anscheinend ignoriert worden:
Im Log File unten auf den PerValue Wert achten
Version
Development-Branch: main (Commit: c448ece+)
Logfile
Expected Behavior
No response
Screenshots
No response
Additional Context
No response
The text was updated successfully, but these errors were encountered: