www.mikrocontroller.net

Forum: PC-Programmierung Sensor auslesen mit VB6


Autor: Satanas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: hownottobeseen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber Visual Basic nicht.

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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 ------------------------------------+

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.