en:software:devices:modbus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
en:software:devices:modbus [2016/12/21 17:02] – [Read Coil] qem103en:software:devices:modbus [2016/12/22 15:51] – [5.6. Schema a blocchi] qem103
Line 173: Line 173:
 === Read Coil === === Read Coil ===
  
-Read bit function. You want to read the bits of a slave (//idcar//d). Sets the parameter //type// = 1.\\ You must set //addr// to indicate the address of the bit in the slave from which to start reading. The //num// parameter indicates the number of bits that are read. You must to set //tabreg// to indicate the index of the bit in the “data read table” the master from which you want to be written the read bits. The raedings value will be saved in the “data read table”. It is recommended to always meet the following two conditions:\\+Bit read function. You want to read the bits of a slave (//idcar//d). Sets the parameter //type// = 1.\\ You must set //addr// to indicate the address of the bit in the slave from which to start reading. The //num// parameter indicates the number of bits that are read. You must to set //tabreg// to indicate the index of the bit in the “data read table” the master from which you want to be written the read bits. The raedings value will be saved in the “data read table”. It is recommended to always meet the following two conditions:\\
 (//addr// + //num// - 1) <= 512 e (//tabreg// + //num// - 1) <= 512 otherwise the request will fail (reporting by //wcmd//). (//addr// + //num// - 1) <= 512 e (//tabreg// + //num// - 1) <= 512 otherwise the request will fail (reporting by //wcmd//).
  
 === Read Input === === Read Input ===
-Funzione di lettura a bitSi vogliono leggere i bit di un certo slave (//idcard//). La funzione è identica alla “//Read Coil//”. Viene impostato il parametro type = 2.\\ Il significato delle due funzioni si distingue a livello di protocollo MODBUS. Alcuni slave possono mettere a disposizione delle zone di memoria differenti a seconda se i bit letti sono Coil Input. Nel caso di slave Qmove le due richieste hanno lo stesso effetto.+ 
 +Bit read functionTo read the bits of a slave (//idcard//). The function is equal to the “//Read Coil//”. Sets the parameter type = 2.\\ The meaning of the two functions is distinguished at the level of MODBUS protocolSome slave can make available different memory areas depending if the bits are Coil or Input. In the case of slave Qmove the two requests have the same effect.
  
 === Read Holding Register === === Read Holding Register ===
-Funzione di lettura a wordSi vogliono leggere le word di un certo slave (idcard). Viene impostato il parametro //type// = 3.\\ + 
-Bisogna impostare addr per indicare l’indirizzo della word nello slave da cui si intende iniziare a leggereIl parametro num +Word read functionFor reading the word of the slave (idcard). Sets the parameter //type// = 3.\\ 
-indica il numero di word che si intendono leggereBisogna impostare tabreg per indicare l’indice della word nella tabella +You must to set addr to indicate the address of the word in the slave from which to start readingThe num parameter indicates the number of word to be readYou 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 wordsThe read values will be saved in the read data table”. It is recommended to always meet the following two conditions:\\ 
-dei dai letti” del master da cui si vuole che siano scritte le word letteI valori letti verranno salvati nella tabella dei dati letti”. +(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 (segnalazione mediante +
-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 bitSi vogliono scrivere (forzarebit di un certo slave (//idcard//). Viene impostato il parametro //type// = + 
-5.\\ Bisogna impostare addr per indicare l’indirizzo del bit nello slave in cui si intende scrivereBisogna impostare tabreg +Bit write functionFor writing (forcethe bit of the slave (//idcard//). Sets the parameter //type// = 5.\\ You must set addr to indicate the address of the bit in the slave that you want to writeYou must set tabreg to indicate the index of the bit in the write data table” that contains the value to be written.
-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 wordSi vuole scrivere (forzarela word di un certo slave (//idcard//). Viene impostato il parametro + 
-//type// = 6.\\ Bisogna impostare addr per indicare l’indirizzo della word nello slave in cui si intende scrivereBisogna +Word write functionFor write (forcethe word of a slave (//idcard//). Sets the parameter //type// = 6.\\ You must set addr to indicate the address of the word in the slave that you intend to writeYou must set tabreg to indicate the index of the word in the data write table” that contains the value to be written.
-impostare tabreg per indicare l’indice della word nella tabella dei dati da scrivere” in cui è contenuto il valore da scrivere.+
  
 === Force multiple coil === === Force multiple coil ===
-Funzione di scrittura bit multipliSi vogliono scrivere (forzarebit di un certo slave (//idcard//). Viene impostato il parametro + 
-//type// = 15.\\ Bisogna impostare addr per indicare l’indirizzo del bit nello slave in cui si intende scrivereSi deve impostare in +Multiples bit write functionFor write (forcethe bit of a slave (//idcard//). Sets the parameter //type// = 15.\\ You must set addr to indicate the address of the bit in the slave that you intend to writeYou must set in num the number of bits to writeYou must set tabreg to indicate the bit index of the data write table” from which to begin the values to be writtenIt is recommended to always meet the following two conditions:\\ 
-num il numero di bit da scrivereBisogna impostare tabreg per indicare l’indice del bit nella tabella dei dati da scrivere +(addr + num - 1) <= 512 e (tabreg + num - 1) <= 512 otherwise the request will fail (reporting by wcmd).
-da cui iniziano i valori da scrivereSi raccomanda di soddisfare sempre le seguenti due condizioni:\\ +
-(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 (//idcard//). Viene impostato il parametro 
-//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 (//idcard//). Sets the parameter //type// = 16.\\ You must set addr to indicate the address of the word in the slave that you intend to write. You must set in num the number of word to write. You must set tabreg to indicate the index of the word in the “dat write table” from which to begin the values to be written. 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). 
 + 
 +==== - 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 254: Line 247:
 </code> </code>
  
-3) Lettura del registro input nr.7 dello slave id 67+3) Reading the registry input nr.7 of the slave id 67
 <code QCL> <code QCL>
 modbus.idcard = 67 modbus.idcard = 67
Line 264: Line 257:
 WAIT modbus.st_sended WAIT modbus.st_sended
 IF (modbus.err) IF (modbus.err)
-    CALL ErroreModbus+    CALL ErrorModbus
 ENDIF ENDIF
-slVelocita = modbus.iword7+slSpeed = modbus.iword7
 </code> </code>
  
-4) Lettura dei holding register dal nr.600 al nr.606 dello slave id 8\\ +4) Reading of the holding register from nr.600 to nr.606 of the slave id 8\\ 
-Siccome l’area di scambio dati QCL non supporta l’indirizzo 600, si utilizza il parametro tabreg per salvare i dati letti all’indirizzo 10+The area of QCL data exchange does not support the address 600, you use the tabreg parameter to save the data read at 10 address
 <code QCL> <code QCL>
 modbus.idcard = 8 modbus.idcard = 8
Line 280: 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 = modbus.ilong6+slSpeed = modbus.ilong6
 slPosiz = modbus.ilong7 slPosiz = modbus.ilong7
 swTemp1 = modbus.iword15 swTemp1 = modbus.iword15
 </code> </code>
-==== - Schema a blocchi ====+==== - Block diagrams ==== 
 {{:software:devices:modbus:modbus_01.png?nolink400|}} {{:software:devices:modbus:modbus_01.png?nolink400|}}
  
  • Last modified: 2020/07/13 14:58