vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Daten über ComPort senden mit VB 
Autor: crusader
Datum: 06.10.06 20:43

Hallo,

ich habe VB6 und habe den unten aufgeführten Code.

Aufgabe:
Ich will Zahlen die in einer Txt-Datei stehen (5 Werte durch ein Komma getrennt) über die Serielle Schnittstelle an einen Controller senden.
Es funktioniert auch schon fast ich habe nur ein kleines Problem:
Mein Problem ist das er die Zahlen zwar sendet aber zwischen den zahlen immer noch einen alten wert rein haut...
Ich habe 2 PCs mit einem Seriellen Kabel verbunden und mit meinem Programm folgende Zahlen an den anderen PC gesendet: 10,20,30,40,50
Doch am PC kommt folgendes an: (beobachtet mit SerialWatcher)
PS: Die Zahlen werden in Hexadezimahlsystem übertragen.

0A 00 (=10) <--- Dieser Wert ist korrekt aber der nachfolgende nicht.
0A <--- was soll dieser wert ? und woher kommt er ?
14 00 (=20) <--- wieder korrekt
14 <-- müll usw...
1E 00
1E
28 00
28
32 00

Hat von Euch einer ne Idee woher die Zahlen kommen, die nach dem korrekten wert kommen ? und wenn man richtig hinschaut fällt einem auf, das es immer der wert ist, wo zuvor übertragen wurde. Habe das gefühl das dieser Wert noch irgendwo steht weiß aber leider nicht wo... Brauch also dringend Hilfe.

Hier mein Code:
Private Sub Stückzahlen()

Dim Instring As String
Dim Datei As String
Dim tmp() As Byte
Dim tmpStr As String
Dim StrArr() As String
Dim I As Integer
Dim DN As Integer
Dim Val As Integer

Datei = "C:\AzubiProjekt_2004\Daten\STUECKZA.txt"
DN = FreeFile
Open Datei For Binary As DN
tmpStr = Space(LOF(DN))
Get DN, , tmpStr
Close DN

Debug.Print tmpStr
cmdList.AddItem tmpStr

StrArr = Split(tmpStr, ",")

ReDim tmp(0 To 1)
For ct = 0 To UBound(StrArr)
Val = CInt(StrArr(ct))

COM.PortOpen = True 'ComPort Öffnen

For I = 0 To 1
tmp(I) = ((Val \ 256 ^ I) And &HFF)
Next I

Sleep 30 'Programm für 30ms schlafen legen

COM.RTSEnable = True 'RTS leitung auf "1" setzen
Sleep 50 'Programm für 50ms schlafen legen
COM.RTSEnable = False 'RTS leitung auf "0" setzen

COM.Output = tmp 'Wert über den ComPort ausgeben

Buffer = "" 'Sende Buffer geleert

Sleep 100 'Programm für 100ms schlafen legen

Do Until COM.CTSHolding = True 'Auf Signal warten vom Mikrokontroller
DoEvents
Loop

COM.RTSEnable = False 'RTS leitung auf "0" setzen

COM.PortOpen = False 'ComPort nach der Übertragung wieder schließen

Sleep 150 'Programm für 150ms schlafen legen

Next ct 'nächste byte der Zahl

nSek = 120 'Countdown zur nächsten aktualisierung
End Sub

cu
Crus
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Daten über ComPort senden mit VB727crusader06.10.06 20:43

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel