Was ist der beste Weg, um den Zugriff auf eine serielle Schnittstelle aus VBA?
Was ist der beste Weg, um den Zugriff auf eine serielle Schnittstelle aus VBA?
Ich habe ein Bedürfnis für einige unserer Vertriebsmitarbeiter, um in der Lage sein, das senden einer einfachen string über die serielle Schnittstelle aus einer Aktion-Schaltfläche in PowerPoint. Ich glaube nicht, die Sie Häufig verwenden, VBA, vor allem für so etwas. Normalerweise würde ich es in einer Anwendung irgendeiner Art, aber ich glaube nicht, dass die Idee so schlecht ist. Es wird ein handliches Werkzeug für Sie, um die demo-Gerät, während auf einem Projektor und im Gespräch mit anderen Vertriebs-Jungs und nicht technische Leute. Auch diese Verkäufe Kerl haben kein problem damit, kleinere änderungen an der VBA-oder PowerPoint-Präsentation, aber würde nicht so gut mit neu kompilieren einer .NET-Anwendung.
Ich weiß, dass wir es tun könnten, die über eine batch-Datei ausführen, aus der Präsentation auf der action, aber das macht mich nicht sehr glücklich. Ich denke, wir könnten wahrscheinlich Zugriff auf ein COM-Objekt und von dort aus gestartet, aber auch hier bin ich nicht real bis auf die neuesten und größten Bibliotheken in VBA, und es wäre auch schön, um eine schnelle wenig Grundierung wie leicht zu öffnen, zu senden und die Verbindung schließen.
Da sein müssen, die Ausführung auf mehreren Computern, es wäre schön, wenn es wäre leicht transportierbar anderen Maschinen. Ich sollte in der Lage sein zu sagen, es hat zu laufen, auf Office 2007 und Windows XP. Kompatibilität mit alles andere wäre ein schöner bonus wenn.
Wie soll ich über den Umgang mit dieser? Irgendwelche guten Tipps oder tricks? Bibliothek Empfehlungen?
InformationsquelleAutor GEOCHET | 2009-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Win32-API-handles, die serielle Schnittstelle als Datei. Sie können den Zugriff auf die seriellen ports direkt durch aufrufen dieser API-Funktionen in VBA. Ich hatte dies für eine alte .NET-Anwendung, aber VBA ist das nicht anders.
Statt hash, es für Sie auf dieser Seite, hier ist eine Referenz, die ich habe, hingen an über die Jahre. Wie serial port Kommunikation in VBA
InformationsquelleAutor Some Canuck
Dies funktioniert für mich. Ich bin mir nicht sicher, ob die OPEN-tatsächlich setzt die Baud-rate, als ich zum ersten mal TeraTerm.
Mein COM-port ist eine USB-Verbindung zu einer BASYS3 prototyping-kit. Es spuckt Zeichen bei 9600, Aufzeichnungen von 36 Zeichen endet mit CR. Kann ich zufällig das senden von Befehlen von 9 Zeichen. In dem obigen code, den ich generieren dieser Befehl strings jedes mal, wenn ich habe eine neue Zeile.
Der Weg, den ich wählte, welches Zeichen zu senden, ist ein wenig klobig: vielleicht ein besserer Weg ist, um ein Zeichen Zeiger und eine Reihe von Zeichen, und als solche gehen Sie gleich zu setzen, Sie beide zu null.
Einstellung der Baud-rate in der OPEN-scheint nicht zu funktionieren. Aber Shell "mode.com com7:9600,n,8,1" funktioniert, wenn man eine Sekunde warten, bevor Sie die OFFENE "COM7:" Das ist alles Excel 2010.
Update auf EOF mit COM-port als Zufällig: Es sieht aus wie ein EOF-Zeichen ändert sich nicht mit Zeichen empfangen, sondern spiegelt den Stand der GET. So nach GET #1,, vByte, EOF FALSE, wenn vByte gültig ist.
InformationsquelleAutor Jeff Kaylin
Hier ist eine kurze Modul von VBA-code, der das senden und empfangen von Nachrichten über einen seriellen PC-Anschluss. Dies ist nicht sehr elegant, aber es ist einfach und sollte auf moderne Versionen von Excel und Windows.
Sie sind Links auf Ihre eigenen zu erweitern die Funktionalität und speichern oder analysieren die Nachrichten. Dies zeigt nur die low-level Sachen zu beschäftigen, die mit der seriellen Schnittstelle.
Die ersten 5 Zeilen erklären den Millisekunden "Schlafen" - library-Funktion (basierend auf Excel-version).
SerialPort () - Unterroutine werden die Schritte, den port zu öffnen, übertragen von Daten empfangen von Daten wieder versuchen, erhalten Sie einige Daten (um zu zeigen, dass es wirklich nicht in Konflikt geraten mit dem "Ende der Datei" - Fehler), und in der Nähe des Hafens.
InformationsquelleAutor user3899443