tntsei Inserito: 21 settembre 2016 Segnala Share Inserito: 21 settembre 2016 Buonasera a tutti! Mi presento: Sono Karim e da poco mi sono interfacciato nel mondo della programmazione ladder con Omron. Avrei un problema un pò particolare e vorrei confrontarmi con qualcuno per avere qualche consiglio. Praticamente ho un lettore di codice a barre che è collegato con cavo seriale RS232 alla CIF di un plc Omron CP1L Ethernet. Il problema che ho è che questo barcode nel momento in cui si avvia (ovvero nel momento in cui lo alimento) nella sua fase di inizializzazione inizia a mandare dei dati a caso alla seriale del PLC portando alla saturazione del buffer e di conseguenza alla porta seriale in errore. Il bit di errore che si abilita esattamente è quello relativo al framing error. Di questa cosa ne sono più che certo in quanto ho effettuato dei test in cui non spegnevo il barcode ma spegnevo il plc (seriale non in errore all'avvio) oppure spegnevo PLC e Barcode staccando il cavo seriale dalla CIF (seriale ancora non in errore), ma seriale in errore con spegnimento e accensione contemporanea del PLC e del barcode. Tra le varie soluzioni che ho provato , ho provato a resettare la porta seriale all'avvio con il flag di primo ciclo, ho introdotto un timer di 30 secondi all'avvio che abilitava un'altra RXD supplementare rispetto alla RXD che effettivamente usavo, in modo fa saturare un area di memoria diversa da quella che utilizzo effettivamente, ma non ha funzionato.....le ho provate tutte ma niente.....solo spegnendo, riaccendendo e staccando i dispositivi, la seriale non va in errore. Ovviamente al di fuori di questo problema che ho all'avvio il barcode funziona correttamente ed è interfacciato bene con il PLC. I parametri che ho usato per la configurazione della seriale sono: Baud: 9600, Stop bit: 0x0D, RS232C, codice inizio: nessuno. L'ideale sarebbe silenziare almeno all'avvio la seriale in modo da non metterla in lettura per quel tempo in cui il barcode manda immondizia......ma non penso si possa fare. Avete qualche consiglio? Grazie in anticipo a chi risponde! Link al commento Condividi su altri siti More sharing options...
lucios Inserita: 22 settembre 2016 Segnala Share Inserita: 22 settembre 2016 Ma i dati buoni sono formattati secondo qualche regola? Perchè forse potresti leggere sempre il buffer di ricezione e scartare i dati così da impedirne il riempimento. Se è un barcode probabilmente ti arriverà una sequenza di caratteri ASCII stampabili seguito da un LF o da un CR, quindi potresti scartare tutti i caratteri non stampabili. Non conosco però la gestione della seriale su Omron e non so se ciò si può fare agevolmente. Eventualmente non c'è un'istruzione per pulire il buffer? E' comunque strano che all'accensione il lettore barcode abbia questo comportamento, io ne ho usati alcuni ma senza problemi, mi è successo su alcuni modelli (Datalogic) che all'accensione arrivi un messaggio di benvenuto (Welcome bla bla bla...) ma mai sporcizia senza motivo. Che modello è? Link al commento Condividi su altri siti More sharing options...
tntsei Inserita: 22 settembre 2016 Autore Segnala Share Inserita: 22 settembre 2016 i dati buoni sono semplici caratteri ASCII.....il PLC nella sua routine non usa istruzioni di TXD. Vorrei inventare una routine di pulizia buffer all'avvio, prendendo e scartando tutti i caratteri ASCII che riceve Inoltre l'Omron ( che io sappia ) non ha un metodo per silenziare la seriale per un certo periodo di tempo e per pulire il buffer Link al commento Condividi su altri siti More sharing options...
lucios Inserita: 22 settembre 2016 Segnala Share Inserita: 22 settembre 2016 Quote Vorrei inventare una routine di pulizia buffer all'avvio Di solito le funzioni di lettura da seriale prelevano i dati e puliscono il buffer di ingresso, non è così anche con Omron? Se stai sempre in ascolto fin da subito e scarti i caratteri ricevuti cosa succede? Si satura il buffer? Link al commento Condividi su altri siti More sharing options...
tntsei Inserita: 22 settembre 2016 Autore Segnala Share Inserita: 22 settembre 2016 la seriale omron ha 3 comandi: RXD (RICEZIONE), TXD (TRASMISSIONE), STUP (Settaggio porta seriale in termini di baud e cose correlate......). Poco fa ho provato a cambiare in fase di inizializzazione il baud rate del PLC in modo tale da non farlo dialogare sicuramente con il barcode ( sul quale ho impostato un baud di 9600)....ma la porta è andata comunque in errore all'avvio......veramente non so cosa fare Link al commento Condividi su altri siti More sharing options...
lucios Inserita: 22 settembre 2016 Segnala Share Inserita: 22 settembre 2016 No secondo me non devi impedire il dialogo, ma leggere tutta la porcheria che arriva e gettarla Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora