Serielle Multimeter-Daten einlesen mit Excel

Oct 19, 2006 49 Replies

Hallo,



was benötige ich um externe Daten über eine RS232-Schnittstelle (COM1) einzulesen? Es geht um Excel 97. Irgend eine DLL? Bloß welche und woher?



Hat jemand vielleicht sogar ein Macro dazu fertig? Ich möchte ganz einfach simple ASCII-Daten (1 String pro Abfrage) aus einem Digitalmultimeter einlesen, zerlegen und in passende Zellen schreiben.



Momentan lese ich diese Daten aus einer Datei. Dieser Umweg ist mir aber zu umständlich. Ich möchte das gerne per Makro direkt lesen bzw. abfragen.



Gruss Wolfgang


Achtung Spamfilter: Bei Mailantwort muss das Subjekt das Wort NGANTWORT enthalten.

Wolfgang Gerber schrieb:

formatting link

Vielleicht hilft das ja weiter.

Gruß Andreas

Hallo!

Wolfgang Gerber schrieb:

formatting link

... hatte ich schon mal im Einsatz.

Gehard

Andreas Fecht schrieb:

Danke - das sind aber kommerziele Sachen gegen Löhnung bzw. nur als eingeschränkte Demo.

Gruss Wolfgang

Achtung Spamfilter: Bei Mailantwort muss das Subjekt das Wort NGANTWORT enthalten.

Gerhard Galsterer schrieb:

Danke - nur hilft mir das Buch nicht weiter. Wegen dieser Pipifaxaufgabenstellung gebe ich kein Geld für teure Bücher aus. Da suche ich lieber weiter in den Tiefen des Internets. Ich hatte schon mal eine Lösung gefunden und downgeloadtet. Das ist aber > 5 Jahre her. Und leider alles verloren gegangen.

Gruss Wolfgang

Achtung Spamfilter: Bei Mailantwort muss das Subjekt das Wort NGANTWORT enthalten.

Nachtrag: Wolfgang Gerber schrieb:

Dein Tip hat aber insofern weitergeholfen als dass ich aus der Buchbeschreibung das Stichwort "RSAPI" gefunden habe.

was jetztr mit "RSAPI" wohl zum Erfolg geführt hat. Habe schon alles mögliche gefunden und downgeloadet. Werde ich am Wochenende dann mal probieren.

Danke auf jeden Fall mal.

Gruss Wolfgang

Achtung Spamfilter: Bei Mailantwort muss das Subjekt das Wort NGANTWORT enthalten.

Guck doch mal, ob du nicht vielleicht schon das MSComm-OCX dabei hast. Sonst XMComm von Richard Grier

formatting link
Wenn dein Sheet auch bei anderen laufen soll: MSComm hatte mal eine merkwürdige Lizenzpolitik, zumindest aus meiner Sicht. Man durfte es frei verteilen, doch der Nutzer musste eine Lizenz zur Nutzung haben. Die kam aber nur mit ausgewählten Office-Paketen oder Entwicklungsumgebungen.

Andreas

"Manche halten den Unternehmer für einen räudigen Wolf, den man totschlagen müsse; andere meinen, er sei eine Kuh, die man ununterbrochen melken könne; nur wenige sehen in ihm ein Pferd, das den Karren zieht."(W.Churchill)

Andreas Hadler schrieb:

Mscomm32.ocx ? - habe ich.

Was kann ich mit dem "Mscomm32.ocx" nun anfangen? Ich habe da vorhin beim Stöbern ein Beispiel gefunden das aus bestimmt hundert Zeilen Deklarationen und Defintionen besteht. Das kann es doch wohl nicht sein?

Ich will nur:

COM1 öffnen alle Minute ein CRLF senden (Multimeter triggern) ankommenden Datensatz lesen, zerlegen und in ein Sheet schreiben.

Momentan lese ich die Werte aus einer temporären Datei. D.h. es läuft erst ein Programm zum Erfassen der Messwerte. Dann wir das eingelesen. Und das möchte ich umgehen und direkt einlesen.

Gruss Wolfgang

Achtung Spamfilter: Bei Mailantwort muss das Subjekt das Wort NGANTWORT enthalten.

Hallo Wolfgang,

Aus deutschen Landen frisch auf den Tisch:

formatting link

Ob damit periodische Zeit-Trigger gesetzt werden koennen, weiss ich nicht.

Gruesse, Joerg http://www.analogconsultants.com

Eventuell musst du noch Steuersignale setzen. Manche Multimeter brauchen das als Betriebsspannung für die (vorhandene?) Potentialtrennung an der Schnittstelle.

Mit VBA programmiere ich leider nicht.

Ein VBA Beispiel mit der RSAPI findet sich hier:

formatting link

und die RSAPI hier:

formatting link

Lutz

Mit unseren Sensoren ist der Administrator informiert, bevor es Probleme im Serverraum gibt: preiswerte Monitoring Hard- und Software - kostenloses Plugin auch für Nagios - Benachrichtigung per e-mail,SMS und SNMP: http://www.messpc.de Kostenloser SNMP-Monitor für Windows: http://www.snmpview.de

Joerg schrieb:

Danke - aber das ist im Prinzip das was ich gerade mache. Nämlich seriell einlesen, in einen File schreiben und _danach_ auswerten.

Ich möchte direkt in Excel einlesen.

Gruss Wolfgang

Achtung Spamfilter: Bei Mailantwort muss das Subjekt das Wort NGANTWORT enthalten.

Lutz Schulze schrieb:

Ist hier nicht nötig. Geht mit simpler TX/RX-Sequenz ohne Steuersignale.

Danke - das Listing war AFAIR schon in einem der früherer Tips. Ist hier aber irgendwie besser verständlich. Da muss man so wie ich das sehe nur die Hälfte weglassen.

Gruss Wolfgang

Achtung Spamfilter: Bei Mailantwort muss das Subjekt das Wort NGANTWORT enthalten.

Hallo Wolfgang,

(COM1)

Bei Elektor war im März 2002 eine serial.dll vorgestellt worden. Die kann man (ein bischen versteckt) IMHO immer noch herunterladen. Sie ist recht gut dokumentiert und sogar im Delphi-Quelltext vorhanden. Die Demo-Files tun bei mir nicht, daher hab ich mir den Quellcode reingezigen und danach auch erfolgreich eingesetzt. Mit ist die Tatsache, dass der Quellcode mit dabei ist ganz lieb, da weiss man, was man hat. Ansonsten gabs genau ein Jahr früher eine Anleitung, wie man das nach Microsofts Vorstellungen eigentlich macht: API heisst das Stichwort.

Marte

Wolfgang Gerber schrieb:

Hallo Wolfgang,

zum MSComm32 siehe:

formatting link

Late Binding via: Set myComm = CreateObject("MSCommLib.MSComm")

cu, Bernd

Bernd Strohhaecker schrieb:

Vielen Dank! Das dürfte reichen um meine Wissenslücken wieder aufzufüllen.

°°°°°°°°°°°°°°° Bahnhof?!

Gruss Wolfgang

Achtung Spamfilter: Bei Mailantwort muss das Subjekt das Wort NGANTWORT enthalten.

Wolfgang Gerber schrieb:

Hallo Wolfgang,

Du hast mehrere Möglichkeiten das MSComm-Teil zu benutzen.

  1. In einer Userform, hierzu in der Werkzeugsammlung rechte Maustaste, zusätzliche Steuerelemente, MS Communication Control heraussuchen, aktivieren und dann das 'Telefon-Objekt' in die Userform ziehen.

  1. Direkt im VBA mit einem Verweis (Early Binding)

im VBA: Extras-Verweise-MS Comm Control 6.0 aktivieren, dann mit:

Dim myComm As MSCommLib.MSComm myComm.CommPort = 1 ' ...

  1. Direkt im VBA ohne Verweis (Late Binding), dann mit:

Dim myComm As Object Set myComm = CreateObject("mscommlib.mscomm") myComm.CommPort = 1 ' ...

Näheres siehe u.a.

formatting link
oder auch hier:
formatting link

Da man zu CreateObject den richtigen Servernamen (hier: "mscommlib.mscomm") benötigt und ich den selber mal einige Zeit lang gesucht hatte, habe ich ihn hier halt gleich mit angegeben.

MfG, Bernd

Bernd Strohhaecker schrieb:

mal sehen - ich bin total out wie ich mit Schrecken festgestellt habe. Das letzte VB-Projekt ist Jahre her

ok

Vielen Dank - ich werde es versuchen.

Momentan verzweifle ich an allen Versuchen mit der RSAPI. Jedes Beispiel, daß ich finde, läuft nicht :-(

Da mache ich wohl generell was falsch beim Erstellen oder Einbinden in Excel?

Oder die RSAPI passt nicht. Habe die 32er installiert. Was muss da eventuell sonst noch gemacht werden. Erkannt wird sie. Denn vor der Installation wurde entsprechend gemeckert.

Selbst fertige (Test-) XLS-Applikation (Beispiele aus dem Web etc.) laufen nicht und melden bestenfalls "keine COM" oder so ähnlich. Oder es passiert einfach nichts. Je nach der vorgesehenen Fehlerbehandlung.

Meine COMs sind aber vorhanden. Und auch mit anderen Programmen ansprechbar. Z.B. Akkumaster von Conrad für meinen Automatiklader.

Echt gefrustet!

Ich bräuchte glaube ich echt eine Anleitung für Dummies.

Gruss Wolfgang

Achtung Spamfilter: Bei Mailantwort muss das Subjekt das Wort NGANTWORT enthalten.

Bernd Strohhaecker schrieb:

HI,

jetzt habe ich langsam aber sicher wieder mal die Nase voll :-(

"Das Steuerelement konnte nicht erstellt werden da es nicht korrekt lizensiert wurde" - Was soll denn nun dies?

Den Rest deiner Tips habe ich deshalb gar nicht mehr probiert. Wird dann wohl auch nicht gehen. Schade.

Ich bin so schlau wie schon vor Jahren - da habe ich das schon mal versucht mit simplen Dateneinlesen per COM. Und egal was ich damals versucht habe - es hat nicht geklappt. :-(

Seither mache ich den Umweg über eine Datei.

Gruss Wolfgang

Achtung Spamfilter: Bei Mailantwort muss das Subjekt das Wort NGANTWORT enthalten.

Wolfgang Gerber schrieb:

Nochmals Hallo,

dann besorge Dir mal das bereits von Andreas vorgeschlagene XMComm und versuche es damit.

formatting link

cu, Bernd

Bernd Strohhaecker schrieb:

Danke - habe ich gerade gemacht. Da muss ich mich aber gewaltig reinarbeiten. na ja - wird schon werden.

Danke vorerst. Gruss Wolfgang

Achtung Spamfilter: Bei Mailantwort muss das Subjekt das Wort NGANTWORT enthalten.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required