Forum: PC-Programmierung Sensor auslesen mit VB6


von Satanas (Gast)


Lesenswert?

Moin!

Ich hab hier glaube ich mal was Extravagantes:

Aslo, ich möchte mir nen VB6 Programm schreiben, was Daten, die von 
einem Sensor gesendet werden ausliest und dann weiter an Excel schickt, 
damit ich sie dort weiter verarbeiten kann.

Problem 1: Ich bekomme es nicht hin, die Daten zu empfangen. Ich habe es 
mit OPENCOM aus der Port.dll probiert, jedoch bekomme ich dort ne 
Fehlermeldung.
Der Datenstrom hat folgende Einstellung: Baud-Rate 28800, 8 Datenbits, 
keine Parität, 1 Stoppbit und keine Datenflusskontrolle.
Der Sensor sendet drei Werte, die mit je 12Bit aufgelöst werden.
Das Einlese/Empfanginterval soll individuell festlegbar sein.

also Quasi für die Aufnahem von Messreihen.

Wie bekomme ich diese Werte in VB?!

Problem 2: Die eingelesenen/empfangenen Daten sollen dann nach Excel 
übertragen werden und dort schön untereinander aufgeschrieben werden, 
damit man z.B. einen Trend absehen kann.

Wie organisiere ich denn so nen Datentransfer?!

Vielen Dank

von hownottobeseen (Gast)


Lesenswert?

Hi,

kommen die Daten schon seriell?

wenn ja: nimm das MSComm-Control.

Datenimport in Excel:
Entweder du schreibst eine csv-Datei oder du greifst über ein OLE-Objekt 
auf Excel zu.
Was auch geht (wenn die Daten Live visualisiert werden sollen): in Excel 
ein Makro schreiben.

Schau dich mal auf http://www.activevb.de um, da gibt's einige Infos.

Viele Grüße

hownottobeseen

von Severino R. (severino)


Lesenswert?

Satanas wrote:
> Moin!

> Problem 1: Ich bekomme es nicht hin, die Daten zu empfangen. Ich habe es
> mit OPENCOM aus der Port.dll probiert, jedoch bekomme ich dort ne
> Fehlermeldung.

Und wie bitteschön lautet die Fehlermeldung? Ich kann sie in der 
Kristallkugel nicht genau lesen.

> Der Datenstrom hat folgende Einstellung: Baud-Rate 28800, 8 Datenbits,

Liegt das ev. daran, dass 28800 eine ziemlich "krumme" Baudrate ist?

Eine weitere Möglichkeit ist, die Daten nicht in VB6, sondern direkt in 
Excel aus der seriellen Schnittstelle zu lesen:
http://www.b-kainka.de/buch2.htm

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Die Baudrate mag zwar krumm sein, die Standard-PC-UART aber unterstützt 
sie.

von Der Dude (Gast)


Lesenswert?

Aber Visual Basic nicht.

von Der Dude (Gast)


Lesenswert?

Öha, stimmt ja gar nicht, hab grad nachgesehen:

Einstellung

110
300
600
1200
2400
9600 (Voreinstellung)
14400
19200
28800
38400
56000
128000
256000

28800 sollte also problemlos möglich sein.

von Peter (Gast)


Lesenswert?

Ich habe ein VB Prgramm mit dem kann ich CD Wechsler ansteuern und 
einlesen,
da es vor ein Paar jahre von einen USER geschrieben worde den ich nicht 
finde.
Frage an euch das Programm liest nur den 200 hunderten aber ich besietze 
400er CD wechsler
wenn das Programm starte rechnet er entwas um.
die 400 CDs im Hex ist 190 schicke ich raus geht nicht
die 200 hundertste CD ist c8 geht

disk = Right("0" + Hex(cdlade.List(cdlade.ListIndex)), 2)

arg1 = Val(disk)
arg2 = Val(track)


For stega = 1 To (Len(wog) - 2) / 2
muo = Mid(wog, stega * 2 - 1, 2)
timuxxx = "&H" + muo
Rem muo muss von hex in Dec umgewandelt werden
If muo <> "00" Then tittext = tittext + Chr("&H" + muo)
Next

von Karl H. (kbuchegg)


Lesenswert?

Peter wrote:

> wenn das Programm starte rechnet er entwas um.
> die 400 CDs im Hex ist 190 schicke ich raus geht nicht
> die 200 hundertste CD ist c8 geht

Weiters benögt man für Hex 190  3 Stellen, während man bei
C8 mit 2 Stellen auskommt.

>
> disk = Right("0" + Hex(cdlade.List(cdlade.ListIndex)), 2)
                                                         ^
Was bedeutet diese 2 ------------------------------------+

von Philipp B. (philipp_burch)


Lesenswert?

>> disk = Right("0" + Hex(cdlade.List(cdlade.ListIndex)), 2)
>                                                          ^
> Was bedeutet diese 2 ------------------------------------+

Ich nehme mal an, mit dieser Zeile wird ein String erzeugt, der immer 
genau zwei Zeichen in Hex enthält. Hex$() liefert bei Zahlen unterhalb 
16 (0xa) nur eine Stelle, durch den Code wird vorne eine Null angehängt 
(Verwendet doch bitte, BITTE nicht '+' für Stringkonkatenationen, 
sondern '&') und anschliessend die beiden hinteren Stellen verwendet.


Ansonsten schliesse ich mich Karl Heinz an: 400 ist wohl zu lang.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.