Fehler bei Array of real

RBoeckelt

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe einen Fehler bei der Benutzung von Werten in einem Array of Real mit einer Wago 750 und Codesys
Globale Variable:
Ist_Temperaturen: ARRAY[0..6] OF REAL;

in einem Programm ST:
aReal := Ist_Temperaturen[0]*100;

Ist_Temperaturen[0] wird z.B. mit dem Wert 6.78 angezeigt und aReal ergibt 778.
Der gleiche Fehler tritt mit auch mit den anderen Elementen des Arrays auf.
Z.B. Ist_Temperaturen[0]+Ist_Temperaturen[1] ergibt einen um 2 zu hohen Wert. D.h. jedes Elemenzt wird um 1 erhöht, sobald man eine Berechnung damit durchführt.

Der Fehler ist mir aufgefallen, da die Programmzeile
Mittelwert_Temp := (Ist_Temperaturen[0] + Ist_Temperaturen[1] + Ist_Temperaturen[2] + Ist_Temperaturen[3] + Ist_Temperaturen[4]) / 5;
einen um 1 zu hohen Wert lieferte.

Alle Versuche brachten keinen Erfolg. Ich habe jetzt beim Füllen des Arrays die Real Elemente auf 2 Nachkommastellen gerundet. Der Fehler tritt trotzdem auf.

Hat jemand eine Idee?

Mit freundlichen Grüßen
 
Versuche mal
Code:
aReal := Ist_Temperaturen[0] * [COLOR="#0000FF"][B]100.0[/B][/COLOR]; 

Mittelwert_Temp := (Ist_Temperaturen[0] + Ist_Temperaturen[1] + Ist_Temperaturen[2] + Ist_Temperaturen[3] + Ist_Temperaturen[4]) / [COLOR="#0000FF"][B]5.0[/B][/COLOR];

Harald
 
Die Steuerung und das Programm laufen ja auch schon seit Jahren. Die Berechnung der mittleren Raumtemperatur dient nur dafür, eine Mindesttemperatur in der Halle zu gewährleisten. 1° Differenz ist daher nie aufgefallen.
Kann der Fehler in der älteren Codesys Software liegen oder kann es ein Fehler im Controller sein?
 
Zurück
Oben