Skip to content
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

Closed
friedpa opened this issue Oct 19, 2024 · 5 comments
Closed

Rate too high - Rate Change ignored? #3347

friedpa opened this issue Oct 19, 2024 · 5 comments
Labels
bug Something isn't working

Comments

@friedpa
Copy link

friedpa commented Oct 19, 2024

The Problem

I have currently a RateChange Maximum of 0,07m3 = 70 Liter eingestellt:

grafik

Heute aber ist diese RateChnage anscheinend ignoriert worden:

grafik

Im Log File unten auf den PerValue Wert achten

Version

Development-Branch: main (Commit: c448ece+)

Logfile

[2d00h19m12s] 2024-10-19T15:10:26	<ERR>	[POSTPROC] main: Raw: 00563.9901, Value: , Status: Neg. Rate - Read:  - Raw: 00563.9901 - Pre: 563.9999 
[2d00h31m12s] 2024-10-19T15:22:26	<ERR>	[POSTPROC] main: Raw: 00563.9901, Value: , Status: Neg. Rate - Read:  - Raw: 00563.9901 - Pre: 564.9901 
[2d00h34m12s] 2024-10-19T15:25:26	<ERR>	[POSTPROC] main: Raw: 00563.9901, Value: , Status: Neg. Rate - Read:  - Raw: 00563.9901 - Pre: 564.9901 
[2d00h40m12s] 2024-10-19T15:31:26	<ERR>	[POSTPROC] main: Raw: 00564.0098, Value: , Status: Neg. Rate - Read:  - Raw: 00564.0098 - Pre: 564.9901 
[2d00h43m12s] 2024-10-19T15:34:26	<ERR>	[POSTPROC] main: Raw: 00564.0098, Value: , Status: Neg. Rate - Read:  - Raw: 00564.0098 - Pre: 564.9901 
[2d00h46m12s] 2024-10-19T15:37:26	<ERR>	[POSTPROC] main: Raw: 00564.0098, Value: , Status: Neg. Rate - Read:  - Raw: 00564.0098 - Pre: 564.9901 
[2d00h49m12s] 2024-10-19T15:40:26	<ERR>	[POSTPROC] main: Raw: 00564.0098, Value: , Status: Neg. Rate - Read:  - Raw: 00564.0098 - Pre: 564.9901 
[2d00h52m12s] 2024-10-19T15:43:26	<ERR>	[POSTPROC] main: Raw: 00564.0195, Value: , Status: Neg. Rate - Read:  - Raw: 00564.0195 - Pre: 564.9901

Expected Behavior

No response

Screenshots

No response

Additional Context

No response

@friedpa friedpa added the bug Something isn't working label Oct 19, 2024
@SybexX
Copy link
Collaborator

SybexX commented Oct 19, 2024

Ich würde sagen, dass es so schon richtig sein wird, den du hast ja die Wertänderung auf "pro Minute" eingestellt.
Dadurch ist eine Wertänderung von 1050 Liter Wasser nach 15 Minuten noch ok.
Um jedoch korrekte Schlussfolgerungen ziehen zu können, benötigt man die genaue/richtige Zeitdifferenz.
378115442-04db18a7-9fdc-4664-91e5-eb744edb5d9f

@friedpa
Copy link
Author

friedpa commented Oct 20, 2024

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?

@SybexX
Copy link
Collaborator

SybexX commented Oct 20, 2024

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?

@SybexX
Copy link
Collaborator

SybexX commented Oct 20, 2024

@friedpa Ich habe mal die dafür zuständigen Code-Zeilen rausgesucht und konnte in der Berechnung kein Fehler finden:
ClassFlowPostProcessing.cpp | Zeile 744 bis 985

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;
.
.
.
}

@friedpa
Copy link
Author

friedpa commented Oct 21, 2024

Hmm, dann schließe ich einmal den case.

@friedpa friedpa closed this as completed Oct 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants