Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente Prossima revisioneEntrambe le parti successive la revisione | ||
software:devices:modbus [2015/09/16 11:56] – [Read Holding Register (type = 3)] qem207 | software:devices:modbus [2015/09/16 17:01] – [6.3.3. Variabili - Modbus Slave] qem207 | ||
---|---|---|---|
Linea 29: | Linea 29: | ||
- | ===== - Installazione ===== | ||
- | FIXME | ||
- | ==== - Dichiarazione device | + | |
+ | ===== - Dichiarazione device | ||
Dichiarazione del device utilizzato (device interno): nome del device assegnato, MODBUS, posizione dello slot e numero | Dichiarazione del device utilizzato (device interno): nome del device assegnato, MODBUS, posizione dello slot e numero | ||
Linea 148: | Linea 147: | ||
- | ===== - Parte 1 : Modbus Master | + | ===== - Descrizione funzionamento come master |
- | FIXME | + | |
Il device MODBUS può utilizzare una porta seriale o TCPIP per comunicare in modalità master (parametro //mode// = 0). Esso da la | Il device MODBUS può utilizzare una porta seriale o TCPIP per comunicare in modalità master (parametro //mode// = 0). Esso da la | ||
possibilità (tramite parametri, stati e comandi) a tutti gli strumenti di poter colloquiare con qualsiasi apparecchiatura utilizzante | possibilità (tramite parametri, stati e comandi) a tutti gli strumenti di poter colloquiare con qualsiasi apparecchiatura utilizzante | ||
Linea 224: | Linea 222: | ||
wcmd). | wcmd). | ||
- | === Read Input Register | + | === Read Input Register === |
- | Funzione di lettura ingressi a word. Si vogliono leggere i bit di un certo slave (idcard). La funzione è identica alla “Read | + | Funzione di lettura ingressi a word. Si vogliono leggere i bit di un certo slave (idcard). La funzione è identica alla “Read Holding Register”. |
- | Holding Register”. Il significato delle due funzione si distingue a livello di protocollo MODBUS. Alcuni slave possono | + | |
- | mettere a disposizione delle zone di memoria differenti a seconda se le word lette sono Holding o Input. Nel caso di slave | + | |
- | Qmove le due richieste hanno lo stesso effetto. | + | |
==== - Richieste di scrittura ==== | ==== - Richieste di scrittura ==== | ||
- | === Force coil (type = 5) === | + | === Force coil === |
Funzione di scrittura bit. Si vogliono scrivere (forzare) i bit di un certo slave (// | Funzione di scrittura bit. Si vogliono scrivere (forzare) i bit di un certo slave (// | ||
5.\\ Bisogna impostare addr per indicare l’indirizzo del bit nello slave in cui si intende scrivere. Bisogna impostare tabreg | 5.\\ Bisogna impostare addr per indicare l’indirizzo del bit nello slave in cui si intende scrivere. Bisogna impostare tabreg | ||
per indicare l’indice del bit nella “tabella dei dati da scrivere” in cui è contenuto il valore da scrivere. | per indicare l’indice del bit nella “tabella dei dati da scrivere” in cui è contenuto il valore da scrivere. | ||
- | === Force register | + | === Force register === |
Funzione di scrittura singola word. Si vuole scrivere (forzare) la word di un certo slave (// | Funzione di scrittura singola word. Si vuole scrivere (forzare) la word di un certo slave (// | ||
//type// = 6.\\ Bisogna impostare addr per indicare l’indirizzo della word nello slave in cui si intende scrivere. Bisogna | //type// = 6.\\ Bisogna impostare addr per indicare l’indirizzo della word nello slave in cui si intende scrivere. Bisogna | ||
impostare tabreg per indicare l’indice della word nella “tabella dei dati da scrivere” in cui è contenuto il valore da scrivere. | impostare tabreg per indicare l’indice della word nella “tabella dei dati da scrivere” in cui è contenuto il valore da scrivere. | ||
- | === Force multiple coil (type = 15) === | + | === Force multiple coil === |
Funzione di scrittura bit multipli. Si vogliono scrivere (forzare) i bit di un certo slave (// | Funzione di scrittura bit multipli. Si vogliono scrivere (forzare) i bit di un certo slave (// | ||
//type// = 15.\\ Bisogna impostare addr per indicare l’indirizzo del bit nello slave in cui si intende scrivere. Si deve impostare in | //type// = 15.\\ Bisogna impostare addr per indicare l’indirizzo del bit nello slave in cui si intende scrivere. Si deve impostare in | ||
Linea 249: | Linea 244: | ||
(addr + num - 1) <= 512 e (tabreg + num - 1) <= 512 altrimenti la richiesta non potrà essere eseguita (segnalazione mediante wcmd). | (addr + num - 1) <= 512 e (tabreg + num - 1) <= 512 altrimenti la richiesta non potrà essere eseguita (segnalazione mediante wcmd). | ||
- | === Force multiple register | + | === Force multiple register === |
Funzione di scrittura word multiple. Si vogliono scrivere (forzare) le word di un certo slave (// | Funzione di scrittura word multiple. Si vogliono scrivere (forzare) le word di un certo slave (// | ||
//type// = 16.\\ Bisogna impostare addr per indicare l’indirizzo della word nello slave in cui si intende scrivere. Si deve | //type// = 16.\\ Bisogna impostare addr per indicare l’indirizzo della word nello slave in cui si intende scrivere. Si deve | ||
Linea 416: | Linea 411: | ||
RW = Read / Write.\\ | RW = Read / Write.\\ | ||
- | === - Parametri | + | === - Parametri === |
^ Nome ^ D ^ R ^ A ^ Condizioni | ^ Nome ^ D ^ R ^ A ^ Condizioni | ||
| mode | B | R | R/W | - | **Mode**\\ (0 ÷ 2)\\ Definisce se la scheda deve funzionare come master o come slave.\\ **0** = master. | | mode | B | R | R/W | - | **Mode**\\ (0 ÷ 2)\\ Definisce se la scheda deve funzionare come master o come slave.\\ **0** = master. | ||
Linea 447: | Linea 442: | ||
- | === - Variabili | + | === - Variabili === |
^ Nome ^ D ^ R ^ A ^ Condizioni | ^ Nome ^ D ^ R ^ A ^ Condizioni | ||
| err | B | 0 | R | - | **Errors**\\ Indica se sono stati riscontrati errori nel protocollo.\\ In modalità master il parametro viene aggiornato in coincidenza dell’attivazione dello stato // | | err | B | 0 | R | - | **Errors**\\ Indica se sono stati riscontrati errori nel protocollo.\\ In modalità master il parametro viene aggiornato in coincidenza dell’attivazione dello stato // | ||
Linea 454: | Linea 449: | ||
- | === - Stati - Modbus Master | + | === - Stati === |
^Nome^D^R^A^Condizioni^Descrizione^ | ^Nome^D^R^A^Condizioni^Descrizione^ | ||
|st_sended|F|0|R|-|**Sended**\\ Stato utilizzato solo in modalità master. L’attivazione indica il completamento della trasmissione di un messaggio. Lo stato viene resettato con i comandi SEND o SENDSYC.| | |st_sended|F|0|R|-|**Sended**\\ Stato utilizzato solo in modalità master. L’attivazione indica il completamento della trasmissione di un messaggio. Lo stato viene resettato con i comandi SEND o SENDSYC.| | ||
Linea 461: | Linea 456: | ||
|wcmd|F|0|R|-|**Warning Command**\\ Questo bit segnala che è non è stato eseguito un comando perché mancano le condizioni necessarie.| | |wcmd|F|0|R|-|**Warning Command**\\ Questo bit segnala che è non è stato eseguito un comando perché mancano le condizioni necessarie.| | ||
- | === - Comandi | + | === - Comandi === |
I comandi a disposizione per gestire il device sono elencati sotto in ordine di priorità decrescente.\\ | I comandi a disposizione per gestire il device sono elencati sotto in ordine di priorità decrescente.\\ | ||
Il device esegue tutti i comandi ricevuti entro lo stesso tempo di campionamento iniziando da quello con la priorità maggiore.\\ | Il device esegue tutti i comandi ricevuti entro lo stesso tempo di campionamento iniziando da quello con la priorità maggiore.\\ | ||
Linea 476: | Linea 471: | ||
- | ===== - Parte 2 : Modbus Slave ===== | + | ===== - Descrizione funzionamento come slave ===== |
- | FIXME | + | |
==== - Modo di funzionamento SLAVE ==== | ==== - Modo di funzionamento SLAVE ==== | ||
Linea 599: | Linea 593: | ||
RW = Read / Write. | RW = Read / Write. | ||
- | === - Parametri | + | === - Parametri === |
^ Nome ^ D ^ R ^ A ^ Condizioni | ^ Nome ^ D ^ R ^ A ^ Condizioni | ||
| mode | B | R | R/W | - | **Mode**\\ (0 ÷ 2)\\ Definisce se la scheda deve funzionare come master o come slave.\\ **1** = slave con area di scambio dati fissa;\\ **2** = slave senza area di scambio dati fissa: ad ogni scrittura o lettura eseguita dal master viene messi a 1 il flag st_msgrx.\\ Contemporaneamente i parametri //type//, //addr// e //num// indicano le caratteristiche del messaggio ricevuto.\\ - **Type** indica il tipo di funzione che vuole fare ill master (lettura o scrittura), | | mode | B | R | R/W | - | **Mode**\\ (0 ÷ 2)\\ Definisce se la scheda deve funzionare come master o come slave.\\ **1** = slave con area di scambio dati fissa;\\ **2** = slave senza area di scambio dati fissa: ad ogni scrittura o lettura eseguita dal master viene messi a 1 il flag st_msgrx.\\ Contemporaneamente i parametri //type//, //addr// e //num// indicano le caratteristiche del messaggio ricevuto.\\ - **Type** indica il tipo di funzione che vuole fare ill master (lettura o scrittura), | ||
Linea 619: | Linea 613: | ||
- | === - Variabili | + | === - Variabili === |
^Nome^D^R^A^Condizioni^ Descrizione^ | ^Nome^D^R^A^Condizioni^ Descrizione^ | ||
|serr|B|0|R/ | |serr|B|0|R/ |