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:40] – [Read Input Register] qem103 | en:software:devices:modbus [2016/12/22 15:51] – [5.5. Examples] qem103 | ||
---|---|---|---|
Line 182: | Line 182: | ||
=== Read Holding Register === | === Read Holding Register === | ||
- | Word read function. | + | Word read function. |
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 to indicate the index of the word in the “read data table” of the master from which you want are writes the read words. The read values will be saved in the “read data table”. It is recommended to always meet the following two conditions: | 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 to indicate the index of the word in the “read data table” of the master from which you want are writes the read words. The read values will be saved in the “read data table”. It is recommended to always meet the following two conditions: | ||
(addr + num - 1) <= 32 e (tabreg + num - 1) <= 32 otherwise the request will fail (reporting by wcmd). | (addr + num - 1) <= 32 e (tabreg + num - 1) <= 32 otherwise the request will fail (reporting by wcmd). | ||
Line 188: | Line 188: | ||
=== Read Input Register === | === Read Input Register === | ||
- | Word read function. | + | Word read function. |
- | ==== - Richieste di scrittura | + | ==== - 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 253: | Line 247: | ||
</ | </ | ||
- | 3) Lettura del registro | + | 3) Reading the registry |
<code QCL> | <code QCL> | ||
modbus.idcard = 67 | modbus.idcard = 67 | ||
Line 263: | 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 279: | 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 |