Digitalmultimeter und Visual Basic


Hier ein Beispielprogramm in Visual Basic 5/6: Alle vom Multimeter gesendeten Daten werden unverändert in einem Textfenster angezeigt. Beim Öffnen der Schnittstelle COM2 wird die Leitung RTS zurückgesetzt und DTR gesetzt und liefert so die Spannung für den Optokoppler des Multimeters. Wichtig ist auch die Einstellung der Timeout-Zeit von 300 ms, weil das Multimeter relativ langsam antwortet. Der Empfangspuffer muss auf mindestens 14 Bytes eingestellt werden.

 Anzeige von Messwerten des DVM 

Private Sub Form_Load()
OPENCOM "COM2:1200,N,7,2"
BUFFERSIZE 100
TIMEOUTS 300
RTS 0
DTR 1
Timer1.Interval = 1000
End Sub

Private Sub Form_Unload(Cancel As Integer)
CLOSECOM
End Sub

Private Sub Timer1_Timer()
SENDBYTE (Asc("D"))
Text1.Text = (READSTRING)
End Sub

 

 
 Messwerte umrechnen

Der Einsatz eines PCs 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 Visual Basic ist einfach. Der Zahlenwert einschließlich des Vorzeichens ist im dritten bis neunten Zeichen des gesendeten Strings enthalten. Das Beispiel  zeigt die Umrechnung eines gemessenen Widerstands in einen Leitwert.

 

Private Sub Timer1_Timer()
SENDBYTE (Asc("D"))
M$ = READSTRING
M$ = Mid$(M$, 3, 7)
R = Val(M$):
If R > 0 Then L = 1 / R
L = (Int(L * 10000)) / 10000
Text1.Text = Str$(L) + " mS"
End Sub

 

Anzeige eines berechneten Werts 

 Verwendung von zwei Multimetern

Es gibt zahlreiche Anwendungen, bei denen ein zweiter Analogeingang wünschenswert ist. Besonders die vollständige Potentialtrennung macht den Einsatz eines weiteren Multimeters sinnvoll. Prinzipiell kann man das zweite Gerät an eine weitere Schnittstelle anschließen. Die ist jedoch oft bereits belegt. Deshalb soll hier eine Möglichkeit gezeigt werden, zwei Multimeter gemeinsam an einer seriellen Schnittstelle des PCs zu betreiben.

Ein Blick auf die Schaltung des Optokopplers im Multimeter zeigt, dass eine Datenübertragung zum PC nur dann möglich ist, wenn an Pin 2 eine positive Spannung anliegt. Sie kommt normalerweise von der Leitung DTR. Dagegen kann man auf eine negative Spannung an Pin 3 verzichten, weil der Leitungsempfänger im PC auch mit unipolaren Signalen zurechtkommt. Abb. 6.4 zeigt den Anschluss eines zweiten Multimeters. Eine vom PC gesendete Anforderung gelangt an beide Multimeter. Die Antwort wird aber jeweils nur für ein Multimeter freigegeben, und zwar durch DTR für das erste und durch RTS für das zweite Gerät. Durch Umschalten der Pegel an DTR und RTS gelingt daher ein einfaches Multiplexen der Übertragung.

 

Gemultiplexte Abfrage zweier Multimeter

 

Das folgende Listing zeigt eine einfache Ansteuerung in Visual Basic. In diesem Beispiel soll eine Leistungsmessung durchgeführt werden, wobei das erste Multimeter die Spannung und das zweite die Stromstärke misst. Die Umschaltung erfolgt durch direkte Steuerung der Leitungen RTS und DTR. Die Funktion DMV liefert den reinen Zahlenwert der Abfragen des DMV 1 oder des DVM 2.

Private Sub Form_Load()
OPENCOM "COM2:1200,N,7,2"
BUFFERSIZE 100
TIMEOUTS 300
RTS 0
DTR 1
Timer1.Interval = 1000
End Sub

Private Sub Form_Unload(Cancel As Integer)
CLOSECOM
End Sub

Private Function DVM(Ch As Integer)
If Ch = 1 Then
RTS 0
DTR 1
Else:
RTS 1
DTR 0
End If
SENDBYTE (Asc("D"))
M$ = READSTRING
M$ = Mid$(M$, 3, 7)
R = Val(M$):
DVM = R
End Function

Private Sub Timer1_Timer()
U = DVM(1)
I = DVM(2)
P = U * I
U = (Int(U * 100)) / 100
I = (Int(I * 100)) / 100
P = (Int(P * 100)) / 100
Text1.Text = Str$(U) + " V"
Text2.Text = Str$(I) + " A"
Text3.Text = Str$(P) + " W"
End Sub
 

Anzeige der Spannung, Stromstärke und Leistung 

Download der VB-Quelltexte: Dmmvb.zip (5 KB)
Zusätzlich erforderlich: Die RSCOM.DLL