Vai al contenuto
PLC Forum


Porta Seriale E Controllo Mscomm - blocco temporaneo del PC


Messaggi consigliati

Inserito:

Salve ragazzi

andiamo subito al sodo...ho creato una piccola applicazione (scritta in Visual Basic) che,tramite porta seriale,acquisisce dei dati da un µControllore, i dati arrivano benissimo però, il PC dopo pochi secondi si blocca...e si sblocca solo dopo aver tolto l'alimentazione al µC.

Ho pensato che potesse essere il settaggio della MSCOMM, come ad esempio il bufferSize.

Al momento ho posto l'IntBufferCount=0 per far si che ad ogni dato ricevuto il buffer venga svuotato, ma il problema del blocco avviene sempre, avete qualche idea in merito?


Inserita:

Hai verificato che qualche evento su MSComm non ti faccia entrare in un loop di programma?

Se uccidi l'applicativo VB dal task manager persiste la condizione di blocco?

Ciao

Inserita:

Bisogna intercettare l'evento della sconnessione e gestirlo, altrimenti il programma rimane in attesa di dati da quella porta, indipendentemente dall'aver azzerato il buffer.

Inserita:

Si blocca tutto il PC o sei in un loop in attesa di caratteri nella tua applicazione ?

Ciao :)

Inserita:
Se uccidi l'applicativo VB dal task manager persiste la condizione di blocco?
  • 1 month later...
Inserita: (modificato)

Mi scuso per il ritardo della risposta, ho risolto il problema...

Nella fase di Form_Load(), inizializzo l'MSComm.IntBufferCount a 0.

Di seguito è descritto il codice dell'evento On_Comm():

Private Sub Ser1_OnComm()
Dim Rx$

Rx$ = Ser1.Input  ' Leggo il contenuto del buffer 
'1. Funzione per la conversione delle coppie di dati in arrivo
     Call Vangelo(Rx$)
'2. Salvataggio dati su file; se è aperto
 On Error Resume Next
      Print #1, Val, vbTab, Format(Val * 5 / 1024, "#.###")
      
'3. Tracciamento Grafico
If X <= picCHN1.Width Then
      picCHN1.PSet (X, picCHN1.Height - ((picCHN1.Height - 1024) / 2) - Val), vbGreen
      X = X + 1
    'Call DrawGraph(Val, picCHN1)
Else
    picCHN1.Cls
    X = 1
    picCHN1.PSet (X, picCHN1.Height - ((picCHN1.Height - 1024) / 2) - Val), vbGreen
End If
End Sub

Ciao a tutti

Modificato: da Pablo78

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...