Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1588to1592
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten von COM-Port lesen

Daten von COM-Port lesen
02.11.2017 16:29:56
COM-Port
Liebe Gemeinde,
Nach Tagen der Suche via Internet und des ergebnislosen Herumprobierens mit diversen nicht passenden Beispielen, will ich das Thema hier doch mal anfragen...
Ich möchte gern von einem Messgerät über COM-Port einen ANSI-String empfangen und in eine Zelle im XL-Sheet ablegen.
COM-Port, Baudrate, Stop-/Datenbits, Parität etc sind unveränderlich (9;19200;1;8;N).
Per Hyperterminal funktioniert die Datenübertragung (Auch mit zwei Beispiel-XL, die ich aber nicht eingedampft und angepasst auf meine Wünsche hinbekomme).
Gesucht wird eine Lösung mit Bordmitteln (W7/XL2010), was z.B. RSAPI.DLL ausschliesst und wahrscheinlich auf API hinausläuft. Ich bin aber offen für alles.
Ich bräuchte also m.E. Code zum Initialisieren der Schnittstelle mit den o.g. Werten, Code zum Abgreifen des ANSI-Strings von der Schnittstelle (z.B. auf Knopfdruck aus einem Puffer) und Code zum Schliessen der Schnittstelle.
Fehlerbehandlung für Fehlbedienung, fehlerhafte Eingaben, nicht geöffnete Ports etc. ist nicht nötig.
Bin für alle Hinweise dankbar, weil ich jetzt doch schon einige Zeit verdaddelt habe und kein Ende sehe. Das bisher gefundene hat alle diese Fehlerbehandlungen und bietet Einstellungen, die für mich nicht nötig sind, das Durchsteigen durch den Code (und das Anpassen) aber zu schwierig machen.
Grüsse
Frank

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten von COM-Port lesen
02.11.2017 17:17:56
COM-Port
Hallo Frank.
ich habe hier ein EBook
Messen, Steuern und Regeln mit Word und Excel: VBA-Makros
für die serielle Schnittstelle 1 Hans-Joachim Berndt; Burkhard Kainka. -
2., neubeaib. und erw Auf! - Poing : Franzis. 1999
ISBN 3-7723-4093-8
Du siehst, es hat schon ein paar Jährchen auf dem Buckel - es beruft sich aber auf die von Dir ausgeschlossene RSAPI.DLL - Schnittstelle.
Das könnte ich Dir schicken, die dll-Datei ist hiuer zu downloaden:
http://www.b-kainka.de/msrwefaq.htm
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Daten von COM-Port lesen
02.11.2017 17:48:35
COM-Port
Hallo Luschi,
vielen Dank für Deine Antwort.
Die RSAPI.DLL wurde von H.-J.Berndt für den privaten Einsatz und den Einsatz in Schulen freigegeben. So der erste Satz auf der von Dir verlinkten Seite.
Am Ende wird da natürlich keiner nachfragen, aber ich hätte schon ein schlechtes Gefühl. Da könnte ich auch gleich den bekannten Trick anwenden und die mscom.dll lizensieren.
Die Firmenregelungen verbieten ausserdem, zusätzliche Software auf den Rechnern in Eigeninitiative zu installieren.
Der eigentliche Hinderungsgrund ist aber, dass die XL-Datei am Ende einfach auf weiteren Rechnern benutzt werden können soll. Hier geht es darum, verschiedene Maschinen zu kalibrieren. Die Instrumente und Laptops (mit XL drauf) sind vor Ort. Da muss ich dann nur nen USB-Stick einstecken, oder die XL vorab per Mail verschicken und habe alles was ich brauche.
Grüsse
Frank
Anzeige
AW: Daten von COM-Port lesen
02.11.2017 19:25:41
COM-Port
Hallo Luschi,
genau das habe ich auch gefunden und ausprobiert. Funktioniert super.
Ist aber die Kanone, mit der auf meinen Spatz geschossen wird: Viel zu umfangreich und ich steige nicht durch, was ich davon brauche und was nicht (Z.B. die gesamte Sendefunktionalität brauche ich nicht).
Ich habe versucht, Code, der der UF zugeordnet ist, herauszulösen und separat zu verwenden, aber das läuft immer wieder in Fehler in dem Klassenmodul oder es passiert gar nix, wegen der umfangreichen Fehlerbehandlungen.
Die Datei so zu benutzen, wie sie ist, funzt auch nicht, weil hier (anders, als in der Datei, die Michael Schwimmer für vorherige XL-Versionen zur Verfügung gestellt hat) die Rückgabe in ein Feld der Userform erfolgt und nicht in eine Zelle.
Auch der ganze Ablauf ist mir damit zu unhandlich: Auf das Blatt wechseln - UF durch Click auf den Button aufrufen - Einstellungen machen (sind bei mir immer gleich und viel weniger nötig) - COM-Port initialisieren
Ausserdem ist das Aktivieren des Button "Empfangen" aus meinem Sheet heraus umständlich und das Holen des Textfeldinhaltes - das sollte doch gleich in eine Zelle meiner Wahl geschrieben werden.
Naja, was man sich halt so vorstellt...
Grüsse
Frank
Anzeige
AW: Daten von COM-Port lesen
02.11.2017 20:11:33
COM-Port
Hallo Frank,

'Du kannst doch dieses schreiben in die Textbox in eine Tabellenzelle _
umbiegen
Dim rg As Range
Set rg = ThisWorkbook.Worksheets("Serielle Schnittstelle").Range("A10")
If strBuffer  "" Then
'statt:
'txtRet.Text = txtRet.Text & strBuffer & vbCrLf
'so:
rg.Value = rg.Value & strBuffer & vbCrLf
Set rg = Nothing
End If
Gruß von Luschi
aus klein-Paris
AW: Daten von COM-Port lesen
02.11.2017 22:35:04
COM-Port
Hallo Luschi,
Ja, dass und wie das geht weiss ich schon.
Ich möchte nur nicht das ganze UF verwenden. Auch die Verwendung als solches ist nicht gerade effektiv.
Ich bräuchte halt das Ganze auf das absolut Notwendige reduziert. Und zwar so, dass ich mir auf meinem Sheet Buttons plazieren kann, die dann das Initialisieren mit den von mir benötigten Werten vornehmen, den Puffer auslesen und den COM-Port wieder schliessen.
Das steckt alles in der Datei von Michael Schwimmer drin, ja, aber eben auch viel mehr und zudem noch umständlich zu bedienen.
Meine Frage demzufolge: Was ist unbedingt notwendig für das von mir benötigte.
Die Datei von Michael Schwimmer habe ich schon ausprobiert, werde wahrscheinlich, wenn keine anderen Vorschläge kommen, das Klassenmodul nutzen, allerdings nicht das UF. Das ist zu umständlich für meine Anwendung.
Ich erhoffe mir Tipps, wie man das, was das Klassenmodul o.g. Datei erledigt, mit weniger Programmcode (und dadurch weniger Funktionalität) auch schaffen kann.
Ich muss nicht den Status der Verbindung abfragen, dutzende Möglichkeiten zur Einstellung der Flusskontrolle haben, ich brauche auch keine Daten zu senden. All das ist nur unnötiger Ballast.
Etwas fertiges wird es vielleicht dafür nicht geben, soll es auch nicht. Snippets und die richtigen Hinweise, was gebraucht wird - das erhoffe ich mir.
Danke trotzdem für Deine Bemühungen, vor allem so spät am Abend noch.
Grüsse,
Frank
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen