Espansione MAMI v2.10 Igor Milani Specifiche del protocollo per la comunicazione con l espansione, basata sullo standard ModBus. M.IG. Electronics Via Andrea Barbazza 122 00168 Roma info@mig-electronics.com 03/06/2014
Caratteristiche generali L espansione MAMI v2.1 è la nuova scheda per sistemi di automazione e domotica, o comunque tutti quei sistemi che utilizzando il protocollo Modbus RTU. Le caratteristiche principali del modulo MAMI 2.1 sono le seguenti: - Interfaccia seriale RS485 con protocollo ModBUS RTU - N.2 ingressi logici / analogici - N.1 Uscite relè. - Collegamento per sonda esterna con sensore di temperatura. - Collegamento per sonda esterna con sensore di umidità. - Morsettiere estraibili per installazioni rapide e sicure. - Dimensioni 50 x 87 x 20 mm Figura 1: Etichetta modulo MAMI 2.1 - disposizione morsettiere Morsetti 1-2-3: : Collegare qui il bus seriale RS485. I morsetti corrispondono rispettivamente ad A, B e un riferimento a massa (collegamento facoltativo). On-board è già presente una resistenza di 120ohm tra A e B, quindi non occorre aggiungere esternamente resistenze in parallelo sulle linee del bus (almeno lato MA.MI.).
Morsetti 4-5 e 6-7: collegare qui dei segnali in corrente continua, con valori massimi di tensioni di 24VDC. Questi ingressi (morsetto 4 per l input 2 e il morsetto 6 per l input 1) possono essere gestiti in 3 modi differenti, in funzione del segnale collegato ad essi. Un partitore di tensione collegato ad un convertitore analogico digitale consente di gestire ogni ingresso nelle seguenti 3 modalità: 1. Gestione logica: a. Contatto chiuso rispetto massa (valore 0) b. Contatto aperto rispetto massa (tensione sopra i 9V) c. Ingresso bilanciato (tensione applicata tra 3V e 9V) 2. Utilizzo come misuratore di tensione a. Viene fornito il valore in millivolt dell ingresso. b. Disponibile anche il valore massimo e il valore minimo storico rilevato. 3. Utillizzo come ADC: a. è disponibile il valore dell ADC a 10 bit è cui è collegato l ingresso. Questo permette di collegare e gestire qualsiasi sensore di tipo analogico. Il range è quindi 0 1024 b. Disponibile anche il valore massimo e il valore minimo storico rilevato. La scansione degli ingressi e la misura della tensione dell alimentazione è eseguita ogni 5 secondi Morsetti 8-9: Il modulo necessita di un alimentazione di 12Vdc. L alimentazione è misurata internmente e la misura è disponibile nei registri Modbus in millivolt. Come per altre grandezze, anche della tensione di alimentazione vengono registrati i valori massimi e minimi storici. Il morsetto 8 è il positivo, il morsetto 9 è la massa. Se si vuole collegare una batteria tampone (Piombo acido) è opportuno utilizzare un alimentazione di 13.8V circa. Morsetti 10-11-12: In basso a sinistra è disponibile un relè pilotato a 12V, con contatti da 220VAC (max 2A). Questo relè deve essere utilizzato per pilotare altri circuiti: è estremamente sconsigliato il suo utilizzo per collegare un carico diretto con assorbimento notevole. Sulla morsettiera è disponibile sia il contatto normalmente chiuso (N.C. morsetto 12) sia quello normalmente aperto (N.A. morsetto 10). Il relè può essere programmato come bistabile (di default è settato come monostabile). E inoltre possibile programmare il tempo di durata dell impulso (in milli secondi) durante il quale il relè resta eccitato; di default questo tempo è 600ms. Morsetti 13-14-15: Collegare qui la sonda PR-H1 rispettivamente con i collegamenti di massa, dati ed alimentazione a 5V. La sonda e quindi il sensore DHT11 all interno della sonda, è monitorato ogni 60 secondi. Morsetti 16-17-18: Collegare qui la sonda termometrica PR-T1 rispettivamente con i collegamenti di massa, dati ed alimentazione a 5V. La sonda e quindi il sensore DS18B20 all interno della sonda, è monitorato ogni 60 secondi. Per le misure delle tensioni, dei valori dell ADC, della sonda PR-H1 e della sonda PR-T1 vengono memorizzati nella memoria non volatile i massimi e minimi valori rilevati.
Sonda PR-H1 La sonda PR-H1 (Morsetti 13-14-15) utilizza Il sensore DHT11, per misurare la temperatura e l umidità relativa. La temperatura ha un range di validità che va da 0 a 50 C, mentre l umidità misurabile va dal 20% al 90%. La sonda viene monitorata ogni 60 secondi. Sia per la temperatura che per l umidità sono disponibili negli appositi registri, i valori massimi e minimi rilevati. Tutti i registri di massimo e minimo, possono essere scritti per consentire anche il reset delle memorie. La lunghezza predefinita della sonda PR-T1 è di 1m, ma può essere esteso fino a 10m utilizzando un cavo schermato di tipo CAT-5. L installazione della prolunga può essere semplificata utilizzando i moduli di espansione RJ45/8WAY (Fig. 2). Sonda PR-T1 La sonda PR-T1 (Morsetti 16-17-18) utilizza Il sensore DS1820, per misurare la temperatura con un range maggiore. La temperatura ha un range di validità che va da -25 C a +125 C. Il sensore è incapsulato in un cilindro metallico per consentirne la messa in contatto (ad esempio con tubi La sonda viene monitorata ogni 60 secondi. Sono disponibili negli appositi registri, i valori massimi e minimi rilevati. Tutti i registri di massimo e minimo, possono essere scritti per consentire anche il reset delle memorie. Per forti sbalzi di temperatura, la sonda richiede qualche minuto per stabilizzarsi sulla misura corretta.
La lunghezza predefinita delle sonde PR-T1 e PR-H1 è di 1m, ma può essere esteso fino a 10m utilizzando un cavo schermato di tipo CAT-5. L installazione della prolunga può essere semplificata utilizzando i moduli di espansione RJ45/8WAY (Fig.2). Figura 2: Modulo Espansione EXP-RJ45-8WAY
Indirizzamento del dispositivo L indirizzo del dispositivo (slave) è impostato per default 10 decimale (hex 0A), questo per evitare un eventuale conflitto su linee bus pre esistenti dove già ci sono altri dispositivi o prodotti che potrebbero occupare i primi indirizzi. Questo per semplificare la fase di installazione, evitando così di dover programmare l address device, nella maggior parte dei casi. Funzioni Modbus Le funzioni Modbus abilitate sono: a. HEX 01 (Read Coil Status): Lettura dello stato logico ON/OFF di uscite b. HEX 02 (Read Input status): Lettura dello stato logico degli ingressi c. HEX 03 (Read Holding ): Lettura dei registri di misure varie e/o calcolati (16 bit) d. HEX 04 (Read Input ): Lettura degli ingressi e. HEX 05 (Force Single Coil): Forzare lo stato logico ON/OFF di un uscita. f. HEX 06 (Preset Single ): Scrittura su un singolo registro a 16 bit. Impostazioni Seriale 485: La configurazione di default è: Baud Rate 9600 bps, nessuna parità, bit di stop: 1. Il baud rate è programmabile seguendo la seguente enumerazione: 0 : 2400bps 1: 4800bps 2: 9600bps 3: 14.4kbps 4: 19.2kbps 5: 28.8kbps 6: 38.4kbps 7: 57.6kbps 8: 76.8kbps 9: 115.2kbps La risposta da parte del dispositivo avviene entro 200ms. I tempi di risposta potrebbero essere più lunghi in fase di scrittura, quando vengono interrogati più registri ed in caso di baudrate più lento. Comandi troppo ravvicinati potrebbero generare risposte di errore, o anche nessuna risposta. Si consiglia di utilizzare baudrate bassi, infatti all aumentare della velocità trasmissione, aumenta anche la probabilità di errore. Qualora il dispositivo non rispondesse ad un messaggio Modbus, interrogare una seconda volta il dispositivo.
Coil (0x01) Registro (HEX) Descrizione Dimensione Funzioni Tipologia 00 Stato Relè 1 2 byte a, e 0x0000: riposo 0xff00: eccitato Logical Input (0x02) Registro (HEX) Descrizione Dimensione Funzioni Tipologia 02 Stato Logico Ingresso1 2 byte b 00 00 = Aperto 00 01 = Chiuso 00 02 = Bilanciato 04 Stato Logico Ingresso2 2 byte b 00 00 = Aperto 00 01 = Chiuso 00 02 = Bilanciato
Holding (0x03) Registro (HEX) Descrizione Dimensione Funzioni Tipologia 06 2 byte c, f da 1 a 250 (default 10) 08 Baud rate 2 byte c, f 0-9 0A Livello Massimo Tensione Alimentazione 2 byte c, f millivolt 0C Livello Massimo Tensione Ingresso 1 2 byte c, f millivolt 0E Livello Massimo Tensione Ingresso 2 2 byte c, f millivolt 10 Livello Minimo Tensione Alimentazione 2 byte c, f millivolt 12 Livello Minimo Tensione Ingresso 1 2 byte c, f millivolt 14 Livello Minimo Tensione Ingresso 2 2 byte c, f millivolt 16 Valore Massimo ADC Ingresso 1 2 byte c, f Unsigned int da 0 a 1024 18 Valore Massimo ADC Ingresso 2 2 byte c, f unsigned int da 0 a 1024 1A Valore Minimo ADC Ingresso 1 2 byte c, f Unsigned int, da 0 a 1024 1C Valore Minimo ADC Ingresso 2 2 byte c, f Unsigned int, da 0 a 1024 1E Temperatura DHT11 massima 2 byte c, f 20 Umidità DHT11 Massima 2 byte c, f 22 Temperatura DHT11 minima 2 byte c, f gradi centigradi percentuale gradi centigradi
24 Umidità DHT11 minima 2 byte c, f 26 Modalità Relay 2 byte c, f 28 Durata impulso bistabile 2 byte c, f 2A Temperatura DS1820 massima 2 byte c, f 2C Temperatura DS1820 minima 2 byte c, f percentuale Unsigned int. 0: monostabile 1: bistabile Unsigned int. Espresso in millisecondi (default 600) gradi centigradi gradi centigradi
Phisical Input (0x04) Registro (HEX) Descrizione Dimensione Funzioni Tipologia 30 Livello istantaneo Tensione Alimentazione 2 byte d millivolt 32 Livello istantaneo Tensione Ingresso 1 2 byte d millivolt 34 Livello istantaneo Tensione Ingresso 2 2 byte d millivolt 36 Valore istantaneo ADC Ingresso1 2 byte d Unsigned int, da 0 a 1024 38 Valore istantaneo ADC Ingresso2 2 byte d Unsigned int, da 0 a 1024 3A Temperatura misurata DHT11 2 byte d 3C Umidità misurata DHT11 2 byte d 3E Temperatura misurata DS1820 2 byte d gradi centigradi percentuale gradi centigradi
Funzione 01 È utilizzata per leggere i registri che contengono le informazioni relative allo stato fisico delle uscite relè. Quando il relè è a riposo il registro a vale 0x0000. Quando il relè è eccitato, il byte MSB vale 0xFF mentre il byte LSB vale 0x00. Esempio: lettura dello stato del relè (eccitato) N. N. 0A 01 00 00 00 01 FC B1 N.Byte of payload 0A 01 02 FF 00 5D CD
Funzione 02 È utilizzata per leggere lo stato logico (aperto, chiuso o bilanciato) degli ingressi. Vale 1 quando l ingresso è aperto rispetto la massa (tensione applicata maggiore di 9Vdc ); vale 0 quando l ingresso è chiuso a massa (situazione di riposo); vale 2 quando l ingresso è bilanciato (tensione applicata compresa tra i 3V e 9V). Esempio: lettura dello stato logico degli ingressi (scollegato quindi chiusi a massa) N. N. 0A 02 00 02 00 02 59 70 N.Byte of payload 0A 02 04 00 01 00 01 D1 22
Funzione 03 È utilizzata per leggere i registri che contengono informazioni relative a grandezze memorizzate o elaborate dal dispositivo. E possibile effettuare una lettura multipla dei registri (entro il range dei registri di questa categoria) Esempio: lettura del valore minimo rilevato dell alimentazione N. N. 0A 03 00 10 00 01 84 B4 N.Byte of payload 0A 03 02 31 7C 09 F4 Dove la tensione vale (49 x 256 + 124) = 12,668 V Esempio: lettura del valore massimo e minimo di umidità e temperatura (totale 4 registri) N. N. 0A 03 00 1E 00 04 25 74 Add. Fun ction N. Byte H L H L H L H L H 0A 03 08 00 1D 00 23 00 1D 00 22 A8 2A L Temperatura massima = 0x1D = 29 C Temperatura minima = 0x23 = 35% Temperatura minima = 0x1D = 29 C Temperatura minima = 0x22 = 34%
Funzione 04 È utilizzata per leggere i registri che contengono le misure dirette (ingressi, sensori, etc.). E possibile effettuare una lettura multipla dei registri (entro il range dei registri di questa categoria) Esempio: lettura della tensione dell alimentazione N. N. 0A 04 00 30 00 01 30 BE N.Byte of payload 0A 04 02 31 7C 08 80 Esempio: lettura delle misure istantanee delle sonde (3 registri consecutivi) N. N. 0A 04 00 3A 00 03 91 7D N.Byte payload D High D Low D High D Low D High D Low 0A 04 06 00 1E 00 28 00 1E BB A1 Temperatura Sonda PR-H1: 31 C Umidità relativa Sonda PR-H1: 40% Temperatura Sonda PR-T1: 31 C
Funzione 05 È utilizzata per forzare lo stato di un uscita relè, utilizzando la stessa logica della lettura, ovvero 0xFF00 per un relè eccitato e 0x0000 per un relè in stato di riposo. Per questa funzione è abilitato il broadcast, ma ovviamente non si avrà una risposta di ritorno, permettendo quindi di attivare N relè sulla stessa linea. Esempio: High Low 0A 05 00 00 FF 00 8D 41 High Low 0A 05 00 00 FF 00 8D 41
Funzione 06 È utilizzata per programmare/scrivere all interno di un registro di tipo Holding. Questa funzione permette quindi anche di resettare i registri dei valori massimi e minimi. Un massimo deve essere resettato programmando nel registro il valore 0x0000. Un minimo deve essere resettato programmando nel relativo registro il valore 0xFFFF. Esempio: reset del registro del massimo della tensione dell alimentatore High Low 0A 06 00 0A 00 00 A8 B3 High Low 0A 06 00 0A 00 00 A8 B3 Esempio: per pilotare l accensione e spegnimento di una pompa, che richiede un comando bistabile con tempo di impulso di almeno 1 secondo. 1. Imposto il relè in modalità bistabile High Low 0A 06 00 26 00 01 A8 BA 2. Imposto la durata dell impulso a 1000ms = 0x03E8 High Low 0A 06 00 28 03 E8 08 07 3. Attivo il relè: dopo 1 secondo il rele deve riaprirsi. High Low 0A 05 00 00 FF 00 8D 41
Riepilogo prodotti correlati Cod. Prodotto Descrizione MAMI200 MAMI210 PR-H1 PR-T1 EXP-RJ45-8WAY Modulo MA.MI. v2.0 con sensori on-board Modulo MA.MI. v.2.1 con sonde esterne Sonda Temperatura (0 C/ 50 C) e umidità (20%/ 90%), lunghezza 1m Sonda Temperatura (-25 C/ +125 C, lunghezza 1m Modulo espansione segnali, 8 poli -> connettore RJ45
NOTE ED APPUNTI:
NOTE ED APPUNTI:
Via Andrea Barbazza 122, 00168 Roma RM P.IVA: IT 11702681005 e-commerce: http://market.mig-electronics.com e-mail: info@mig-electronics.com skype: mig-electronics