Gestione dati su RS485

di il
12 risposte

Gestione dati su RS485

Buongiorno,
dovrei sviluppare un applicativo in grado di gestire i segnali in arrivo da più lettori di card con collegamento RS485 quindi tutti collegati in parallelo, poi monterei un convertitore RS485-RS232 per collegarmi al PC.

LA domanda è: ascoltando i dati in ingresso sulla porta seriale come faccio poi a capire da quale dei dispositivi arriva la lettura ?

Grazie

12 Risposte

  • Re: Gestione dati su RS485

    In nessun modo, direi
    Non c'è un protocollo per RS485 è solo elettrotecnica.
    dipende quindi dai singoli lettori darti l'informazione o meno
  • Re: Gestione dati su RS485

    Userai un protocollo di comunicazione in cui i dati arrivano a pacchetti con header in cui compare anche l'id del dispositivo. Ovviamente tutto dipende dal tipo di dispositivi collegati.
  • Re: Gestione dati su RS485

    Domanda banale: ma non si rischia di avere anche collisioni di pacchetti se i lettori sono tutti in parallelo?
  • Re: Gestione dati su RS485

    Non hai collisioni in un sistema single master. Se comanda sempre un sistema, non può succedere.

    In un sistema multi master può avvenire, ma la collisione può essere rilevata e corretta con una ritrasmissione.
  • Re: Gestione dati su RS485

    Le collisioni si gestiscono essenzialmente come su ethernet.
    resta il punto che 'qualcuno' deve essere intelligente, altrimenti è una comunicazione broadcast.
    dal pochissimo scritto dipende dalla disponibilità di un buffer lato apparato sia per attendere il comando del master, sia per la collisione nel caso multimaster
  • Re: Gestione dati su RS485

    Non hai collisioni in un sistema single master. Se comanda sempre un sistema, non può succedere.
    resta il punto che 'qualcuno' deve essere intelligente
    Appunto, occorre implementare un protocollo (ad es. modbus) nel quale un nodo master invia i comandi e, di volta in volta, il nodo interessato risponde. Ma a questo punto il gioco è fatto e la domanda di salvsena non ha ragione d'essere.
    Ma il fatto che poi specifica che vuole utilizzare un convertitore RS232 mi porta ad ipotizzare che non esiste al momento alcun protocollo.
  • Re: Gestione dati su RS485

    Grazie delle risposte, In effetti non esiste nessun protocollo, ci sono solo vari lettori RFID (credo 2 o 4) con uscita wiegand26 che tramite un convertitore diventano RS485 e possono quindi viaggiare per decine di metri senza problemi di interferenza. Il dato che mi interessa intercettare è l'UID della card per cui a questo punto:
    - se non mi occorre conoscere il dispositivo di lettura (devo chiedere al committente) potrei utilizzare tranquillamente un unica RS232
    - se invece è necessario, potrei anche valutare un scheda pci con 4 seriali in maniera da avere una seriale per ogni dispositivo

    la necessità è quella di conoscere in realtime l'utente che ha effettuato la lettura
    avevo anche pensato all'utilizzo di una scheda "arduino uno" per ogni lettore (utilizzando il protocollo wiegand26 fino alla scheda arduino posizionata in prossimità del PC), in tal caso ho già sviluppato il firmware su arduino, ma dovrei a questo punto impegnare tante usb quanti sono i lettori e non sò a che tipo di problematiche/conflitti potrei andare incontro

    Modbus non credo sia fattibile visto la tipologia di reader ...
    possono esserci altre soluzioni anche a livello hardware ?
  • Re: Gestione dati su RS485

    Ma se "mastichi" Arduino perchè non mettere poi il tutto in rete locale TCP-IP e ti togli il pensiero?
    Sugli "Arduini" ti implementi un protocollino semplice semplice che trasmette oltre al numero di badge anche un identificativo di dispositivo, e magari aggiungi anche un qualche controllo di integrità dati.
    E' fattibile?
  • Re: Gestione dati su RS485

    Con arduino un pò di sistemi con protocollo wiegand li ho realizzati ma sempre sempre con l'utilizzo della seriale, ammesso che possa ricevere dati in realtime anche sulla lan dovrei comunque avere un arduino + 1 Ethernet Shield + 1 alimentatore per ogni lettore

    pensandoci però potrebbe essere una buona soluzione
  • Re: Gestione dati su RS485

    Con la seriale (RS232) non puoi superare certe distanze. Se i rilevatori sono lontani dal PC la soluzione migliore è l'utilizzo di una rete Ethernet.
  • Re: Gestione dati su RS485

    Infatti in prossimita del PC metterei un convertitore RS485-RS232

    Comunque alcune ricerca ho capito che potrebbe essere una soluzione quella di utilizzare lo shield ethernet con arduino utilizzando la classe "server" per inviare dati su una determinata porta, mentre in vbnet posso utilizzare un TCPListener per ascoltare la porta in questione
  • Re: Gestione dati su RS485

    Comunque alcune ricerca ho capito che potrebbe essere una soluzione quella di utilizzare lo shield ethernet con arduino utilizzando la classe "server" per inviare dati su una determinata porta, mentre in vbnet posso utilizzare un TCPListener per ascoltare la porta in questione
    Secondo me è la soluzione più pulita.
Devi accedere o registrarti per scrivere nel forum
12 risposte