Ich möchte Daten von der COM1, serielle Schnittstelle, in Excel
bearbeiten. Die Daten werden von der ext. Hardware in ASCII-Format
gesendet.
Code ist im anhang. Comport.doc
Ich benutze folgende Code um den Port zu öffnen und die Daten in Excel
zu schreiben:
Sub Button1_Click()
Dim inputstring As String
Dim anz_zeichen As Long
Dim lporthandle As Long
Dim com_error As Long
Cells(1, 1).FormulaR1C1 = "COM1 OFFEN"
Cells(2, 1).FormulaR1C1 = " lPortHandle"
Cells(4, 1).FormulaR1C1 = "Wert"
Cells(1, 2).FormulaR1C1 = ComPort.OpenComPort("COM1", "baud=9600
parity=N data=8 stop=1", lporthandle)
Cells(2, 2).FormulaR1C1 = lporthandle
Cells(4, 2).FormulaR1C1 = ComPort.ReadComPort(lporthandle, inputstring,
anz_zeichen)
com_error = ComPort.ReadComPort(lporthandle, inputstring, anz_zeichen)
End Sub
------------------------------------------------------------------------
--------------------------------------------------------------------
Meine Fragen:
1- Warum wird nur "Wahr" als Wert in Zelle(4,2) angezeigt. Code dazu war
-> Cells(4, 2).FormulaR1C1 = ComPort.ReadComPort(lporthandle,
inputstring, anz_zeichen)
2- Was muss ich ändern damit Daten in ASCII-Code angezeigt werden
3- Wie kann ich die ASCII-Daten in Dezimal umwandeln. Datenausgabeformat
von ext.Hardware ist
D1 (Vorzeichen), D2 (höchstwertige Stelle), D3, D4, D5(Dezimalpunkt),
D6, D7(LSD-niederwertigste Stelle), D8(CR-Carriage return), D9
(LF-Zeilenvorschub) z.B. Anzeige= +124.50 dann Ausgabedaten sind +124.50
CR LF
4-Wie kann ich einen Timer einbauen um die Daten alle 1000ms zu
aktualisieren.
Kann bitte ein Experte mir den Code mit Erklärungen schicken.
Vielen Dank
1 - Was vermutest Du, steht nach dem Aufruf von ComPort.ReadComPort im übergebenen Parameter "InputString"? Wozu mag der wohl da sein? Den Rest kannst Du, von dieser Grunderkenntnis ausgehend, Dir mit Hilfe der Excel-/VBA-Dokumentation selber erarbeiten.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.