So nach einigen weiteren Stunden des rumprobierens hab ichs nun endlich geschafft 
Meine Fehler:
-Ich wusste nicht das der mc deim Input ein echo sendet, deswegen immer die mysteriösen rückmeldung die ich nicht auswerten konnte.
-mc Programm hatte ich warum auch immer als baudrate 9400 statt 9600 programmiert.
-Die abfrage der Rückmeldungen mache ich nun durch das DataReceived Event des Com Ports.
-im mc programm hab ich nun noch eine bestätigungsmeldung eingebaut die gesendet wird, wenn der Motor die Schritte abgeschlossen hat.
Hier nochmal der aktuelle code des PC-Programms:
Code:
Module Module1
Dim WithEvents myport As New System.IO.Ports.SerialPort
Dim Daten() As Byte
Dim buffer As Byte
Sub Main()
myport.PortName = "COM2"
myport.BaudRate = 9600
myport.Parity = IO.Ports.Parity.None
myport.StopBits = IO.Ports.StopBits.One
myport.DataBits = 8
myport.Open()
Do
myport.Write("l")
myport.Write(Chr(13))
Checkinput()
MsgBox("Richtung empfangen")
myport.Write("400")
myport.Write(Chr(13))
Checkinput()
MsgBox("Geschwindigkeit empfangen")
myport.Write("2000")
myport.Write(Chr(13))
Checkinput()
MsgBox("Schrittzahl empfangen")
Checkinput()
MsgBox("Motorlauf Fertig")
Loop
End Sub
Private Sub Checkinput()
Do
If buffer = 79 Then
buffer = 0
Exit Do
End If
Loop
End Sub
Private Sub myport_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles myport.DataReceived
buffer = myport.ReadByte
End Sub
End Module
Lesezeichen