DMM Metex ME-31 mit RS 232 auslesen

M

Matthias Kirchhoff

Guest
Hallo,

benutze zum Auslesen eines DMM Metex ME-31 das Programm ScopeView V
1.08. Wie kann ich die Daten per Terminal oder eigenem Programm
auslesen? Welchen Befehl muss ich übergeben?

Ich danke für Eure Hilfe

Matthias
 
Matthias Kirchhoff wrote:

benutze zum Auslesen eines DMM Metex ME-31 das Programm ScopeView V
1.08. Wie kann ich die Daten per Terminal oder eigenem Programm
auslesen? Welchen Befehl muss ich übergeben?
Hi!

Wenn ich mich recht erinnere, einfach das Zeichen 'D' an das
Meßgerät senden... Dann kommt ein String zurück.

Viele Grüße

Johannes
 
On Fri, 16 Apr 2004 13:39:39 +0200, Matthias Kirchhoff wrote:

benutze zum Auslesen eines DMM Metex ME-31
Mit dem Teil habe ich auch mal um Messwerte gekämpft.
Letztlich bestand der Stolperstein darin, dass das DMM sich zur Versorgung
seiner RS232-Schnittstelle über das Kabel aus dem Computer bedient.
Das heißt eine bestimmte Leitung, die eigentlich für handshake gedacht
ist, musste grundsätzlich auf high gesetzt sein, sonst ging überhaupt
nix. In den üblichen Terminal-Programme wie minicom (linux) oder
hyperterm (win) sind solche Leitungs-Manipulationen aber nicht vorgesehen.

Natürlich kann man die serielle Schnittstelle auch von einem C-Programm
aus ansprechen. Aber dabei habe ich mich erstmal in den verschiedenen
man-pages verlaufen, die natürlich auch erstmal darauf ausgerichtet sind,
dass man eine "ordentliche" Kommunikation zwischen zwei Computern
einrichten möchte.
Kurz bevor ich die Sache aufgeben wollte, ist mir dann ein kleines Utility
über den Bildschirm gelaufen, dessen Source auf Jürgen Hannappel
zurückgeht. (Danke nochmal an ihn! Hat mir damals ernsthaft geholfen :)
Die entscheidende Funktion zur Initialisierung der Schnittstelle mit
setserial habe ich dann in unsere Programme übernommen.

Das ist alles schon ein paar Jährchen her, aber bei Bedarf könnte ich
die source hier posten. --- Oder Jürgen macht es selbst :)

---<(kaimartin)>---
PS: Hab das Util gerade auf dieser Homepage wiedergefunden:
http://members.surfeu.de/matthias.prinke/electronics/multimeter.html

--
Kai-Martin Knaak
kmkn@tem-messtechnik.de
gpg-key: http://pgp.mit.edu:11371/pks/lookup?search=kai-martin&op=index&exact=on
 
Matthias Kirchhoff <kirchma@tu-cottbus.de>:

benutze zum Auslesen eines DMM Metex ME-31 das Programm ScopeView V
1.08. Wie kann ich die Daten per Terminal oder eigenem Programm
auslesen? Welchen Befehl muss ich übergeben?
Mein altes Metex hatte nach >10 Jahren seinen Geist aufgebeben, gestern
kam Ersatz. Da die mitgelieferte Software einige Wünsche offenließ,
habe ich mal auf die Schnelle einen Ersatz zusammengebastelt.

Die Schnittstelle ist etwas pingelig, aber mit dem nachfolgenden
Programm geht's. Getestet unter Windows XP, es müsste aber
unverändert auch unter Linux usw. laufen, sofern man die
benötigten Pakete (s.w.u.) installiert hat. Die Erweiterungs-
möglichkeiten dieses Trivialprogramms sollten offensichtlich
sein. Für meine Zwecke (die Anzeige auf dem großen 22"-
Bildschirm schön groß und leserlich darstellen) reicht's.

# -*- coding: latin-1 -*-
#Boa:Frame:DVM
# $Id: dvm.py,v 1.2 2004/04/25 22:42:57 cvshome Exp $ W. Strobl

"""Q&D DVM für PeakTech 4370
Benötigt Python23 (www.python.org), wxPython 2.4 (www.wxpython.org)
und pySerial (pyserial.sourceforge.net)
"""

PORT=0 # 0 == COM1 usw.

import serial
from wxPython.wx import *

def create(parent):
return DVM(parent)

[wxID_DVM, wxID_DVMPANEL1, wxID_DVMSTATICTEXT1,
] = map(lambda _init_ctrls: wxNewId(), range(3))

[wxID_DVMTIMER1] = map(lambda _init_utils: wxNewId(), range(1))

class DVM(wxFrame):
def _init_utils(self):
# generated method, don't edit
self.timer1 = wxTimer(evtHandler=self, id=wxID_DVMTIMER1)
EVT_TIMER(self, wxID_DVMTIMER1, self.OnTimer1Timer)

def _init_ctrls(self, prnt):
# generated method, don't edit
wxFrame.__init__(self, id=wxID_DVM, name='DVM',
parent=prnt,pos=wxPoint(30, 90), size=wxSize(776, 152),
style=wxDEFAULT_FRAME_STYLE, title='DVM für PeakTech 4370')
self._init_utils()
self.SetClientSize(wxSize(768, 118))
EVT_CLOSE(self, self.OnDVMClose)

self.panel1 = wxPanel(id=wxID_DVMPANEL1, name='panel1', parent=self,
pos=wxPoint(0, 0), size=wxSize(768, 118), style=wxTAB_TRAVERSAL)

self.staticText1 = wxStaticText(id=wxID_DVMSTATICTEXT1,
label='PeakTech 4370', name='staticText1', parent=self.panel1,
pos=wxPoint(8, 8), size=wxSize(754, 103), style=0)
self.staticText1.SetFont(wxFont(72, wxSWISS, wxNORMAL, wxNORMAL, False,
'Courier New'))

def __init__(self, parent):
self._init_ctrls(parent)
ser=serial.Serial(port=PORT,baudrate=1200,bytesize=serial.SEVENBITS,
stopbits=serial.STOPBITS_TWO,timeout=3)
self.ser=ser
ser.setDTR(1)
ser.setRTS(0)
ser.write("D\r")
line=ser.read(14)
# wegwerfen
self.timer1.Start(100)

def OnTimer1Timer(self, event):
self.ser.setRTS(0)
self.ser.write("D\r")
line=self.ser.read(14)
self.staticText1.SetLabel(line[1:])

def OnDVMClose(self, event):
self.timer1.Stop()
self.Destroy()

if __name__ == '__main__':
app = wxPySimpleApp()
frame = create(None)
frame.Show()

app.MainLoop()

--
Wir danken für die Beachtung aller Sicherheitsbestimmungen
 
Matthias Kirchhoff <kirchma@tu-cottbus.de> wrote:
: Hallo,

: benutze zum Auslesen eines DMM Metex ME-31 das Programm ScopeView V
: 1.08. Wie kann ich die Daten per Terminal oder eigenem Programm
: auslesen? Welchen Befehl muss ich übergeben?

schau unter
http://www.linux-magazin.de/Artikel/ausgabe/1999/08/Messen/messen.html
dein ME-31 sollte sich wie das ME-32 verhalten.
 

Welcome to EDABoard.com

Sponsor

Back
Top