Letztes Update: 20.04.2002
Hier steht alles, was mit der Zeitsteuerung der Wetterstation zu tun hat.
Interner Zyklus
Dies ist der interne Meßzyklus der Wetterstation. In diesen Zeitabständen wird von allen Sensoren der Meßwert abgeholt, mit den Kalibrierparametern in physikalische Werte umgerechnet und in einen Buffer aufaddiert. Der MeasBuffer enthält alle Werte zur Berechnung des MeanBuffers. Die Varianz berechnet sich nach folgender Gleichung und gestattet eine Aussage über die Qualität des Meßwertes:
Gleichung zur Berechnung
der Varianz
Die Varianz als Funktion der prozentualen Abweichung in % innerhalb eines Meßzyklus
Im Summenspeicher sind zur Berechnung aller Parameter also folgende Variablen notwendig:
Type TSingleMeasBuffer = Record
n: Integer; // Anzahl der Messungen
SumX: Single; // Summe der Meßwerte
SumX2: Single; // Summe der Meßwertquadrate
MinX: Single; // Kleinster Meßwert
MaxX: Single; // Größter Meßwert
End;
Type TMeasBuffer = Chn: Array [1..63] of TSingleMeasBuffer;
Var MeasBuffer: TMeasBuffer;
Var MeasTime: SmallInt;
Meßzyklus
Das ist die Zeit, zu der für alle Sensoren ein Meßwertdatensatz erzeugt wird.
Type MeanBuffer = Record
MeanValue: Single;
MinValue: Single;
MaxValue: Single;
Variance: Single;
End;
Var MeanTime: SmallInt;
Der Interne- und der Meßzyklus laufen auf der Wetterstation in einer eigenen Tas mit folgender Struktur.
Zeitsynchronisation
Da alle interne Rechneruhren eine hohe Ungenauigkeit besitzen, sollte eine korrekte Uhrzeit regelmäßig zue Wetterstation übertragen werden. Hier wird bestimmt, in welchen Zeitabständen das passieren soll. Eine weiter Option, die noch eingebaut werden soll, ist die Kopplung an die Übertragung von Grafiken auf die Homepage, denn wenn die Verbindung zum Internet schon vorhanden ist, kann auch gleich von einem Timeserver die korrekte UTC geholt werden.