Modbus e Telegestione

Ciao a tutti,
sono nuovo e mi sto avvicinando al mondo Arduino in questi giorni. Vorrei sapere se è possibile creare un dispositivo che supporti collegamenti 485 con protocolli Modbus/Bacnet e che poi trasmetta i dati rilevati/registrati via GPRS/GSM per un monitoraggio remoto e/o telegestione.
Grazie per l'aiuto.
Marco

Ti invitiamo a presentarti qui: http://forum.arduino.cc/index.php?topic=113640.0
e a leggere il regolamento: http://forum.arduino.cc/index.php?topic=149082.0

Buongiorno,
ho inserito la mia presentazione e preso buona nota del regolamento del Forum. Approfondirò senz'altro i link consigliati, grazie per il supporto.
Marco

che io sappia il modbus esistono varie librerie, ma non le ho mai provate.
Bacnet a quanto vedo è enorme come protocollo, quindi con arduino converrebbe implementare solo un subset. in ogni caso se non trovi qualcosa di già fatto è una cosa molto complicata.

per il GPRS/GSM ci sono vari moduli, uno dei più usati (e quindi per cui troverai più aiuto, oltre che librerie ampiamente testate e tutorial) è l'economicissimo SIM900, a 30€

edit: la rs485 NON è gestista in hardware, quindi le velocità saranno per forza di cose limitate, ma non dovresti avere problemi fino a 50.000 baud

Perfetto! Grazie per i consigli.

lesto:
edit: la rs485 NON è gestista in hardware, quindi le velocità saranno per forza di cose limitate, ma non dovresti avere problemi fino a 50.000 baud

Lesto, In che senso non è gestita in HW ???

Guglielmo

Che non ha un circuito hardware dedicato, come invece ha la RS232-ttl sui pin 0 e 1, la i2c o la SPI, che ovviamente riducono molto il carico sul micro e dunque permettono frequenze del bus molto più alte.

Scusa, ma non ti seguo ...
... la RS485 la ottieni semplicemente anteponendo alla seriale (pin 0 e 1 ) un circuito per l'adattamento dei segnali (es. MAX485) ... a livello SW tu vedi sempre la seriale ... :roll_eyes:

Guglielmo

no, così trasli i livelli da rs485 a rs232TTL, ma resta tutta la parte di protocollo, che sta al di sopra. Infatti alcune librerie possono sia lvaorare sulla Serial/SoftSerial, che sui pin colegeti diretti a modbus (con appositi traslatori di livello)

Il protocolo resta comunque, qualunque cosa tu faccia e comunque ti colleghi (... quindi, indipendentemente da ModBus, e genericamente per qualsiasi trasmissione seriale degna di tale nome), ma ...

... le velocità non saranno affatto limitate, visto che avrai a disposizione la vera seriale e che la trasmissione dei singoli bit non sarà a carico del SW, ma a carico della porta seriale :wink:

Guglielmo

bhe se usi la vera serial se limitato dalla velocità della vera seriale :slight_smile:
e comuque io ho dato per socntato usasse una seriale virtuale, (il limite di 50.000baud è quello ufficiale della SoftSerial in lettura)

Io per la comunicazione Modbus su rs485 utilizzo la libreria SimpleModbusMaster e va alla grande,molto ben fatta anche a livello di gestione degli errori...per convertire i livelli da 232 a 485 utilizza un integrato come ti è già stato suggerito...

Ciao a tutti, non voglio insegnare niente a chi conosce bene il modbus, ma solo per ricordare...
Tra Modbus e RS485 non esiste nessuna correlazione. Si può benissimo usare il protocollo Modbus/RTU o ASCII anche utilizzando la connessione RS232 classica o anche la linea ethernet.
Per l'interfaccia RS485 si necessita di un chip(Tipo MAX485 con o senza terminazione) per la conversione dei livelli di tensione al fine di immunizzare dai disturbi la linea di comunicazione tra le varie apparecchiature, che a quel punto può essere lunga anche centinaia di metri e di avere appesi fino a 32/64/128 altre utenze.
La famiglia AVR può raggiungere senza alcun problema il baud rate di 460800 , con un error% dello 0% ovviamente se si utilizza un cristallo da 14.745600 Mhz. A tal proposito volevo ricordare che la modalità ASCII è abbastanza semplice da implementare mentra quella che necessita di studio approfondito ed accorgimenti particolari per il riconoscimento della pausa pari a 3.5 durata caratteri è la RTU.

Ciao mcrosetto,
se ti puo interessare mi son divertito a recuperare e dataloggare i dati da un contatore elettrico classe MID che li fornisce in Modbus RTU su RS485, un gran classico!

poi mi son detto che volevo vederli aggiornati quando stavo in giro... e ho scoperto il clientweb

E ancora più in là ho trovato il progetto che mi serviva:Arduino Playground - Emoncms

Non si finisce mai d'imparare...