Ciao a tutti
Ho un problema, sto usando vb.net 2008 express
sto andando a leggere dei dati in seriale da un plc, premetto che il lato plc è corretto, ho fatto un test con hyper terminal e risponde bene.
il plc mi invia 30 bytes di dati ciclicamente, cioè invia, si mette in ascolto, dopo che io ho risposto invia di nuovo.
Le caratteristiche della mia seriale sono:
Baudrate = 9600
DataBits = 8
Readbuffersize = 30 (ho provato anche ad aumentarlo ma non cambia nulla)
Readtimeout = 5000
Writebuffersize = 30
writetimeout = 5000
faccio la lettura del buffer intercettando l'evento SerialPort1_DataReceived
e lo leggo in questo modo:
SerialPort1.Read(letto, 0, 30)
o provato anche ad eseguire la lettura in altra maniera :
For i = 0 To 29
letto(i) = SerialPort1.ReadByte
Next
il problema è che nel mio buffer di ingresso non trovo mai i dati nella sequenza corretta nell'array di destinazione, cioè, trovo la sequenza di dati spostata di alcune posizioni.
Esempio :
array corretto = [ 1,2,3,4,5,6,7,8]
array che trovo = [0,0,1,2,3,4,5,6] oppure [0,0,0,0,1,2,3,4].
Sembra un problema di sincronizzazione....
Help!!!!