Autore Topic: Linee seriali con GAMBAS  (Letto 1453 volte)

Offline Stefano

  • Gamberetto
  • *
  • Post: 6
    • Mostra profilo
Linee seriali con GAMBAS
« il: 18 Novembre 2008, 19:56:55 »
[42] System error. Inappropriate ioctl for device.
Avete idea di cosa possa indicare questo messaggio risultato dal ciclo di loop eseguito migliaia di volte e che saltuariamente ferma tutto il mio programma ?

PUBLIC SUB SerialPort1_Read()
DIM strData AS String
DIM cont AS Integer
DIM pos AS Integer

    pos = Lof(FMain.Sport)
    FOR cont = 1 TO pos
      READ #FMain.Sport, strData, 1
      GestioneImpianto(strData)
    NEXT
END

Questa e' la funzione che legge continuamente i caratteri da seriale. La riga incriminata è la READ #FM.....

Grazie anticipatamente dell'aiuto

Offline Stefano

  • Gamberetto
  • *
  • Post: 6
    • Mostra profilo
Re: Linee seriali con GAMBAS
« Risposta #1 il: 18 Novembre 2008, 20:01:43 »
Inoltre avete idea di come si gestisce una RS485 invece di una RS232 ? A livello di segnali RTS CTS che si deve fare per farla funzionare in modo trasparente per l'applicativo ?

Grazie ancora anticipatamente dell'aiuto

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Linee seriali con GAMBAS
« Risposta #2 il: 19 Novembre 2008, 10:34:14 »
Bè, instanto che roba è "FMain.Sport" ? L'handle della seriale ?
Come è stato aperto il device seriale ?
Perchè non leggi l'intera stringa, invece di fare il loop ?

Scusa se faccio 'stè domande, ma con solo quel pezzetto di codice è difficile fare ipotesi...

Riguardo la RS485, tanti anni fà costruivo programmi che pilotavano strumenti con questo tipo di interfaccia e, se non ricordo male, non c'erano molte differenze con la RS232 a livello di gestione... ma potrei ricordare male...
Dovresti fare un giro su internet, sicuramente trovi qualcosa ad-hoc, magari scritto in altro linguaggio (es. il C), semmai provvediamo a convertire il codice.

Offline Carlo

  • Gamberetto
  • *
  • Post: 11
    • Mostra profilo
Re: Linee seriali con GAMBAS
« Risposta #3 il: 19 Novembre 2008, 17:20:15 »
ciao, anch'io sono alle prese con la seriale...ma molto più in erba di te. mi puoi dire con quale divice controlli la seriale?

per il problema che saltuariamente la seriale ferma tutto il programma hai provato a dare più tempo al device per leggere la porta? una cosa simile mi succedeva quando dialogavo con i PLC e non davo abbastanza tempo al programma per leggere tutto il dato, allora per la propagazione dell'errore si piantava tutto. La differenza tra RS232 e RS485 se non ricordo male consiste nell'utilizzare un canale della seriale in aggiunta a GND,RX,TX con il quale penso tu possa fare una sorta di feedback della trasmissione/ricezione ma non ne sono sicuro perchè lo vista solo usare e mai usata
cordiali saluti :ciao: