Viele moderne Digitalmultimeter verfügen über eine serielle Schnittstelle zur Datenübertragung an einen PC. Sie stellen damit vollständige Datenerfassungsgeräte mit hoher Auflösung und Genauigkeit dar. Ein weiterer Vorteil gegenüber vielen anderen Systemen ist die vollständige Isolierung, sodass potentialfrei gemessen werden kann. Hier soll die Ansteuerung durch einen Palm-Rechner gezeigt werden. Die Beispiele wurden mit einem 3 1/2-stelligen M-3650CR und einem 4 1/2-stelligen M-4650CR der Firma Metex getestet.
Die besonderen Eigenschaften der Geräte machen es aber trotzdem erforderlich, an dieser Stelle auf die Anschlüsse und Funktionen der seriellen Schnittstelle des PC einzugehen.
Die wichtigsten Leitungen sind die serielle Sendeleitung TXD und die serielle Empfangsleitung RXD. Beim Abfragen eines Digitalmultimeters wird über TXD ein Abfragekommando gesendet, worauf dann an RXD die Antwort des Messgeräts gelesen werden kann.
Zusätzlich zu den eigentlichen seriellen Datenleitungen und der Masseleitung GND verfügt die RS232-Schnittstelle des PCs über sechs sog. Handshake-Leitungen. Dabei handelt es sich um zwei Hilfsausgänge und vier Hilfseingänge, die oft eine wichtige Rolle bei der Steuerung des Datentransfers spielen. Zum Anschluss des DVM werden die beiden Ausgänge DTR und RTS benötigt.
Prinzipschaltbild der seriellen Schnittstelle eines DVM
Die serielle Schnittstelle des Multimeters verwendet Optokoppler zur Potentialtrennung. Abb. 3.17 zeigt den prinzipiellen Aufbau. Zur Stromversorgung werden die Leitungen DTR und RTS der PC-Schnittstelle eingesetzt. DTR liefert +12 V, während RTS die Schaltung mit -12 V versorgt. Auf diese Weise lassen sich normgerechte RS232-Pegel sicherstellen. Die Ansteuerprogramme müssen diese Zustände der Hilfsleitungen erzeugen.
Jede serielle Datenverbindung verwendet bestimmte Schnittstellenparameter, die zwischen den Geräten übereinstimmen müssen. Für das verwendeten Multimeter gelten die folgenden Einstellungen:
Übertragungsrate: 1200 Baud
Zeichenlänge: 7 Bit
Paritätsbit: kein
Stopbits: 2
Das verwendete DVM sendet grundsätzlich eine Kopie seines aktuellen Anzeigeninhalts als Textstring mit einer Länge von 14 Bytes. Darin wird der Messbereich, der Messwert und die Maßeinheit übertragen. Der eigentliche Zahlenwert befindet sich immer an den Stellen 4 bis 9. An den ersten beiden Stellen kann eine Angabe zum Messbereich stehen, an der dritten Stelle ein negatives Vorzeichen. Bis zu vier Stellen stehen für die Maßeinheit bereit. Jeder Textstring wird mit einem Zeilenendezeichen CR abgeschlossen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
D C - 1 . 9 9 9 V CR
Das Format eines Datenpakets
Das Messgerät kann selbständig Messdaten senden, wenn es mit der COM-Taste in die entsprechende Betriebsart versetzt wurde. In den meisten Fällen ist es jedoch sinnvoller, Daten explizit anzufordern. Als Anforderungskommando dient ein einzelnes Zeichen "D", das vom PC an das Multimeter gesendet wird.
Für eine direkte Verbindung mit einem Palm ist der Unterschied zu einer PC-RS232 zu beachten. Die Spannungen betragen nicht 10 V, sondern nur etwas unter 6 V. Dies ist aber kein Problem. Bei einer direkten Verbindung müsste man die RTS Leitung abschalten, was vom Betriebssystem Palm-OS nicht vorgesehen ist. Zwar kann man RTS durch direkte Registerprogrammierung abschalten (vgl. Kap. 4). Mit einer etwas anderen Beschaltung kommt man ganz ohne die RTS-Leitung aus. Der Pin 3 am Multimeter wird dazu einfach an Masse gelegt. Auf diese Weise erhält man serielle Signale, die im Ruhezusand nicht negativ sind, sondern 0 V. Sie werden aber korrekt empfangen, da die Schaltschwelle des seriellen Eingang im positiven Bereich über etwa 1 V liegt. Abb. 3.18 zeigt die spezielle Verbindung des Multimeters ohne die RTS-Leitung.
Verbindung mit dem Palm
Ein Programm in HotPaw Basic muss zunächst die besonderen Übertragungsparameter 1200,7,N,2 einstellen.
Mit der Funktion fn serctrl(7,2,0) ist dies problemlos möglich. Das erste Programm in Listing 3.9 zeigt eine einfache Endlosschleife, in der jeweils ein Messwert abgefragt und in einer Messagebox angezeigt wird.
#DVM1.bas
open "com1:",1200 as #5
x= fn serctrl(7,0,0)
while 1
put #5,asc("D")
input #5, t$
print t$
wend
Abfrage von Messwerten
Der Einsatz eines PDAs ist besonders dann hilfreich, wenn erforderliche Umrechnungen oder Auswertungen automatisch erfolgen sollen. In diesem Fall muss der gelesene Messwert als Zahlenwert vorliegen. Die Umwandlung in Basic ist einfach. Der Zahlenwert einschließlich des Vorzeichens ist im dritten bis neunten Zeichen des gesendeten Strings enthalten. Das Beispiel zeigt die Isolierung des reinen Zahlenwerts aus dem empfangenen Textstring.
#DVM2.bas
draw -1
draw "Grenzwert 12,6 V",50,20,2
open "com1:",1200 as #5
x= fn serctrl(7,0,0)
for n=1 to 50
put #5,asc("D")
input #5,t$
draw t$,50,60,2
t$ = mid$(t$,3,7)
x=val(t$)
if x > 12.6 then sound 400,100,63
a= fn wait(1.0)
next n
close #5
close #4
Grenzwertüberwachung
Mit einem Palm und einem Digitalvoltmeter lässt sich ein vollwertiger Datenlogger realisieren. Ausgelesene Messwerte werden dazu in einer Tabelle gespeichert. Listing 3.11 zeigt ein einfaches Loggerprogramm für 50 Messwerte im Zeitraster von zwei Sekunden.
Ein genaues Zeitraster lässt sich nicht mit dem Wait-Befehl erreichen, weil die übrigen Programmlaufzeiten sich zur Wartezeit addieren und nicht genau bestimmt werden können. Hier wird deshalb die Timer(100)-Funktion eingesetzt. In einer eigenen Zeitschleife wird jeweils gewartet, bis der nächste berechnete Messzeitpunkt erreicht ist. Alle übrigen Programmlaufzeiten fallen dann nicht ins Gewicht, solange sie insgesamt kürzer als das Messintervall von zwei Sekunden sind.
#DVM3.bas
open new "memo","spannung"as#4
open "com1:",1200 as #5
x=fn serctrl(7,0,0)
start=timer(100)
for n=1 to 50
put #5,asc("D")
input #5,t$
t$ = mid$(t$,3,7)
x=val(t$)
print #4,x
while timer(100) < start+n*200
wend
next n
close #5
close #4
Übertragung von Messwerten in eine Datenbank
Die aufgezeichneten Daten befinden sich in der Datenbank "spannung" und können nun über ein Hotsync in den Palm-Desktop übertragen werden.

Ein Messergebnis im Palm-Desktop
Die gewonnenen Daten lassen sich aus dem Desktop über die Zwischenablage in beliebige andere Programme kopieren.
Bei der Übertragung in eine Excel-Tabelle muss beachtet werden, dass ein deutsches Excel Kommas statt Dezimalpunkten erwartet.
Eine einfache Möglichkeit der Konvertierung besteht darin, die Daten zuerst als Text in eine Textverarbeitung zu laden und dort automatisch alle Punkte durch Kommas zu ersetzen.
Danach lassen sich die Daten in eine Excel-Tabelle kopieren und auswerten. Hier die Auswertung der Messergebnisse einer Kondensatorentladung:
Auswertung der aufgenommenen Daten in Excel
Natürlich können die erfassten Daten auch online sofort am Bildschirm des Palm geplottet werden.
Listing 3.12 zeigt einen einfachen Datenplotter für Spannungen bis zu 12 V. Es wird eine wiederholte Datenaufzeichnung durchgeführt, wobei jeder neue Messdurchgang die alten Daten löscht.
#DVM4.bas
open "com1:",1200 as #5
x=fn serctrl(7,0,0)
while 1
put #5,asc("D")
input #5,t$
t$ = mid$(t$,3,7)
U=val(t$)
Ualt = U
draw -1
draw 1,140,159,140
for x=1 to 158
put #5,asc("D")
input #5,t$
t$ = mid$(t$,3,7)
U=val(t$)
draw x-1,140-Ualt*10,x,140-U*10
Ualt=U
a= fn wait(1.0)
next x
wend
close #5
close #4
Listing 3.12 Ein einfacher Datenplotter

Eine Kondensatorentladung am Palm-Screen
Die passende Ergänzung zu diesem Artikel:
 | Mikrocontroller für Einstieger Buch, Hardcover, 240 Seiten, CD-ROM ISBN 978-3-7723-4318-6 Versandkostenfrei* direkt beim Verlag bestellen
39,95 € 
|