Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
en:software:devices:modbus [2016/12/21 17:06] – [Read Input] qem103 | en:software:devices:modbus [2016/12/22 15:51] – [5.5. Examples] qem103 | ||
---|---|---|---|
Line 181: | Line 181: | ||
=== Read Holding Register === | === Read Holding Register === | ||
- | Funzione di lettura a word. Si vogliono leggere le word di un certo slave (idcard). | + | |
- | Bisogna impostare | + | Word read function. For reading the word of the slave (idcard). |
- | indica il numero di word che si intendono leggere. Bisogna impostare | + | You must to set addr to indicate the address of the word in the slave from which to start reading. The num parameter indicates the number of word to be read. You must set tabreg |
- | dei dai letti” del master | + | (addr + num - 1) <= 32 e (tabreg + num - 1) <= 32 otherwise the request will fail (reporting by wcmd). |
- | Si raccomanda di soddisfare sempre le seguenti due condizioni:\\ | + | |
- | (addr + num - 1) <= 32 e (tabreg + num - 1) <= 32 altrimenti la richiesta non potrà essere eseguita | + | |
- | 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 Holding Register”. Viene impostato il parametro type = 4.\\ 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 | + | Word read function. For reading the bit of the slave (idcard). The function is equal to the “Read Holding Register”. sets the parameter type = 4.\\ The meaning of the two functions is distinguished at the level of MODBUS protocol. Some slave can make available different memory areas depending if the read word are Holding or Input. In the case of slave Qmove the two requests have the same effect. |
+ | |||
+ | ==== - Write request | ||
=== Force coil === | === Force coil === | ||
- | Funzione di scrittura bit. Si vogliono scrivere | + | |
- | 5.\\ Bisogna impostare | + | Bit write function. For writing |
- | 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 | + | |
- | //type// = 6.\\ Bisogna impostare | + | Word write function. For write (force) the word of a slave (// |
- | impostare | + | |
=== Force multiple coil === | === Force multiple coil === | ||
- | Funzione di scrittura | + | |
- | //type// = 15.\\ Bisogna impostare | + | Multiples |
- | num il numero di bit da scrivere. Bisogna impostare | + | (addr + num - 1) <= 512 e (tabreg + num - 1) <= 512 otherwise the request will fail (reporting by wcmd). |
- | da cui iniziano i valori da scrivere. Si raccomanda di soddisfare sempre le seguenti due condizioni:\\ | + | |
- | (addr + num - 1) <= 512 e (tabreg + num - 1) <= 512 altrimenti la richiesta non potrà essere eseguita | + | |
=== Force multiple register === | === Force multiple register === | ||
- | 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 | ||
- | impostare in num il numero di word da scrivere. Bisogna impostare tabreg per indicare l’indice della word nella “tabella | ||
- | dei dati da scrivere” da cui iniziano i valori da scrivere. Si raccomanda di soddisfare sempre le seguenti due condizioni: | ||
- | (addr + num - 1) <= 32 e (tabreg + num - 1) <= 32 altrimenti la richiesta non potrà essere eseguita (segnalazione mediante wcmd). | ||
- | ==== - Esempi | + | Multiples word write function. For write (forzare) the word of a slave (// |
+ | (addr + num - 1) <= 32 e (tabreg + num - 1) <= 32 otherwise the request will fail (reporting by wcmd). | ||
+ | |||
+ | ==== - Examples | ||
- | 1) Impostazioni modbus e apertura del canale di comunicazione di tipo seriale | + | 1) Modbus settings and opening of serial communication |
<code QCL> | <code QCL> | ||
modbus.mode = 0 ; modbus master | modbus.mode = 0 ; modbus master | ||
Line 255: | Line 247: | ||
</ | </ | ||
- | 3) Lettura del registro | + | 3) Reading the registry |
<code QCL> | <code QCL> | ||
modbus.idcard = 67 | modbus.idcard = 67 | ||
Line 265: | Line 257: | ||
WAIT modbus.st_sended | WAIT modbus.st_sended | ||
IF (modbus.err) | IF (modbus.err) | ||
- | CALL ErroreModbus | + | CALL ErrorModbus |
ENDIF | ENDIF | ||
- | slVelocita | + | slSpeed |
</ | </ | ||
- | 4) Lettura dei holding register | + | 4) Reading of the holding register |
- | Siccome l’area di scambio dati QCL non supporta l’indirizzo | + | The area of QCL data exchange does not support the address |
<code QCL> | <code QCL> | ||
modbus.idcard = 8 | modbus.idcard = 8 | ||
Line 281: | Line 273: | ||
WAIT modbus.st_sended | WAIT modbus.st_sended | ||
IF (modbus.err) | IF (modbus.err) | ||
- | CALL ErroreModbus | + | CALL ErrorModbus |
ENDIF | ENDIF | ||
| | ||
swTemp1 = modbus.iword10 | swTemp1 = modbus.iword10 | ||
- | slVelocita | + | slSpeed |
slPosiz = modbus.ilong7 | slPosiz = modbus.ilong7 | ||
swTemp1 = modbus.iword15 | swTemp1 = modbus.iword15 |