Es ist an der Zeit den in Teil #1 und #2 beschriebenen Datalogger mit einem Programm zu füttern. Der Erstellung eines solchen Programms wollen wir uns nun widmen.
Auftakt
Zunächst starten wir einen beliebigen Editor, wie z.B. das mit MacOS X mitgelieferte TextEdit. hier können wir nun gleich locker drauf los tippen:
RESET
/n/u/o
P22=9
P38=44
Mit dem Reset-Befehl am Anfang jedes Programms stellen wir sicher, dass im Datenlogger kein evtl. vorhandenes Programm mehr ausgeführt wird.
Die darauf folgenden Zeilen stellen sinnvolle Parameter für den DT50 dar, auf welche ich hier nicht weiter eingehe. Im Handbuch sind etliche von ihnen im Klartext beschrieben - alle hier aufzulisten würde den Rahmen sprengen.
Der Kern
BEGIN
RA5S D T 1R("Regler")
2TT("Temperatur")
END
Das der eigentliche Hauptteil des Programms folgt, erkennt der Datenlogger am Wort BEGIN; wofür des END steht, dürfte demnach einleuchten. Der DT50 bietet die Möglichkeit unterschiedliche Daten in unterschiedlichen Zeitintervallen zu speichern. Der Befehl RA initiiert unseren ersten "Auftrag", der 5S lautet. 5S steht für 5 Sekunden. Einfacher gesagt RA5S heisst: "Speichere alle folgenden Kanäle in Intervallen von 5Sekunden".
Nun kommt, WAS im 5 Sekunden Rhythmus gespeichert werden soll, nämlich...
- das Datum (D),
- die Uhrzeit (T),
- der Kanal 1 (1), an welchem ein veränderbarer Widerstand (R) hängt,
- der Kanal 2 (2), an welchem ein Temperatur-Fühler (TT) angeschlossen ist.
Die in Klammern und Anführungszeichen gesetzten Worte würden mit den entsprechenden Werten auf dem Display angezeigt werden, sofern eines angeschlossen ist.
LOGON
Der Datenlogger startet sofort mit der Aufzeichnung.
Da geht noch mehr
Natürlich kann der DT50 auch weit mehr als Widerstände und Temperaturfühler verarbeiten, auch sind unterschiedliche Intervalle möglich. Beispiel 2:
BEGIN
RA5S D T 1R("Regler")
2TT("Temperatur")
RB8M D T 3I("Strom")
END
Zusätzlich zu den oben beschriebenen Messungen, wird ein zweiter "Auftrag" (RB) ausgeführt. Dieser besagt, dass alle 8 Minuten (8M) am Kanal 3 (3) der Strom (I) gemessen werden soll.
Wer erkennt den Unterschied
Im folgenden Beispiel bleiben wir bei unserer einfachen Messung, nehmen jedoch andere Modifikationen vor:
RESET
/n/u/o
S1=0,100,0,528"%"
P22=9
P38=44
BEGIN
RA2H D T 1R(S1,"Fuellstand")
2TT("Temperatur")
END
LOGON
In den meisten Fällen, interessiert ein Strom- oer Widerstandswert nur sehr bedingt. Vielmehr sollen im "Real Life" Füllstände, Drücke oder anderes gemessen werden. Aus diesem Grund unterstützt unser Datenlogger auch die Parametrierung. Nehmen wir an, wir haben einen Behälter zum Sammeln von Warmwasser, bei dem alle 2 Stunden (RA2H) die Füllhöhe in % und die Wassertemperatur aufgenommen werden soll. Für unseren Versuch wäre es aber sinnvoller eine Intervall-Zeit von 10 bis 30 Sekunden zu wählen, damit wir später nicht so lange auf die ersten Werte warten müssen. Der Füllstandsgeber ist ein Widerstand, der einen Wert von 0Ohm hat, wenn der Behälter leer ist. Ist der wert zu 100% Voll, liegt der Widerstand bei 528Ohm. Unsere dritte Programmzeile (S1= ...) definiert also 0 bis 528Ohm = 0 bis 100%. Weiter unten im Programm, wo der Widerstandswert von Kanal 1 abgefragt wird, taucht unsere "S1"-Definition wieder auf, weshalb der Datenlogger weiss, dass er nicht den echten Wert des Gebers, sondern einen in Prozent umgerechneten Füllstand abspeichern soll.
Dies war sicherlich nur ein kleiner Auszug dessen, was man mit dem DT50 und dessen grossen Brüdern machen kann. Für Windows gibt es ein Programmiertool mit hübscher Oberfläche, dass aber auch nur einen Bruchteil der Möglichkeiten zur Verfügung stellt. Viele Tricks und Kniffe sind ausschliesslich mit der Textprogrammierung möglich, weshalb hier die Windows-Welt keine nennenswerten Vorteile gegenüber unserer Lösung hat. Unser Programm speichern wir nun als .txt- oder .cmd- oder .dxc-Datei ab. Die letzten beiden Dateiendungen sind nur erforderlich, wenn wir das Programm auch auf einen Windows-Rechner kopieren wollen. In diesem Fall kann man .txt aber immernoch in .cmd (Win 95/98) oder .dxc (Win 2000/XP) umbenennen.
Programm übertragen
Wir stellen nun (wie im zweiten Teil beschrieben) eine Verbindung zu unserem dataTaker her und schicken unser Programm mit "Send Text" aus dem File-Menü von ZTerm ab.
Der DataTaker nimmt nun seine Arbeit auf. Bleibt man mit ihm verbunden, werden alle ab diesem Zeitpunkt protokollierten Werte sofort im Fenster von ZTerm angezeigt (aber dennoch im Speicher des DT50 abgelegt). Achtung, wenn hier die 2 Stunden (2H) aus dem Beispiel übernommen wurden, werden auch erst in rund zwei Stunden die ersten Daten aufgenommen! Wir trennen nun die Verbindung und spielen ein wenig mit den angeschlossenen Sensoren herum.
Daten auslesen
Nun stellen wir wieder eine Verbindung zwischen Computer und Datenlogger her und geben ein grosses "U" (=Unload) gefolgt von der Enter-Taste ein.
Der DT50 überträgt nun alle gespeicherten Werte im CSV-Format: Datum - ZEIT - Prozent - Temperatur. Anschliessend können alle, auf Wunsch aber auch nur ein markierter Auszug, in einer Datei gespeichert werden.
Die Daten können nun problemlos in Ecxel, Numbers oder einem anderen Tabellenprogramm aufbereitet werden.
Nützliche Befehle
RESET - Programm aus dem Internen Speicher löschen und dataTaker rücksetzen
U - Daten auslesen
CLAST - Alle Daten, die bereits mit "U" ausgelesen worden sind löschen. Alle neu hinzugekommenen Daten bleiben im Speicher.
CDATA - Löscht alle Daten, die sich im internen Speicher befinden.
CCARD - Löscht alle Daten, die sich im externen Speicher (PCMCIA-Karte, sofern vorhanden) befinden.
STATUS - Zeigt die Parameter des dataTaker. Auch Infos zum Speicher (Frei/Belegt), etc.
[Anm. Red.: Dieser Artikel stammt aus dem Archiv der Jahre 2005 bis 2010.]