software:devices:modbus

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
Prossima revisioneEntrambe le parti successive la revisione
software:devices:modbus [2015/09/15 14:14] – [3.1.1. Esempio] documentazionesoftware:devices:modbus [2015/09/15 15:20] – [5.2.1. Parametri per formattare il messaggio:] qem207
Linea 58: Linea 58:
 <code QCL> <code QCL>
 INTDEVICE INTDEVICE
-modbus             MODBUS     0002    +modbus             MODBUS     0002    1
 </code> </code>
  
Linea 190: Linea 189:
 **type** = tipo di richiesta che si vuole processare (lettura o scrittura di word o di bit).\\ **type** = tipo di richiesta che si vuole processare (lettura o scrittura di word o di bit).\\
 **idcard** = indirizzo dell’unità slave verso cui si vuole inviare la richiesta.\\ **idcard** = indirizzo dell’unità slave verso cui si vuole inviare la richiesta.\\
-**addr** = indice da cui iniziare a leggere o da cui iniziare a scrivere nello slave in questione. Sono previsti valori tra 1 e 512 per valori del parametro type = 1, 2, 5, 15 (scrittura e lettura di bit), mentre per valori type = 3, 4, 6, 16 (scrittura e lettura di word) i valori previsti sono tra 1 e 32.\\+**addr** = indice da cui iniziare a leggere o da cui iniziare a scrivere nello slave in questione.\\ 
 **tabreg** = per le operazioni di lettura (type = 1, 2, 3, 4), questo parametro indica la posizione nella “tabella dei dati letti” dove verrà memorizzato il dato letto sullo slave. Per le operazioni di scrittura (type = 5, 6, 15, 16), questo parametro indica da posizione nella “tabella dei dati da scrivere” dove si trova il dato da scrivere sullo slave. Sono previsti valori tra 1 e 512 per valori del parametro type = 1, 2, 5, 15 (scrittura e lettura di bit), mentre per valori type = 3, 4, 6, 16 (scrittura e lettura di word) i valori previsti sono tra 1 e 32.\\ **tabreg** = per le operazioni di lettura (type = 1, 2, 3, 4), questo parametro indica la posizione nella “tabella dei dati letti” dove verrà memorizzato il dato letto sullo slave. Per le operazioni di scrittura (type = 5, 6, 15, 16), questo parametro indica da posizione nella “tabella dei dati da scrivere” dove si trova il dato da scrivere sullo slave. Sono previsti valori tra 1 e 512 per valori del parametro type = 1, 2, 5, 15 (scrittura e lettura di bit), mentre per valori type = 3, 4, 6, 16 (scrittura e lettura di word) i valori previsti sono tra 1 e 32.\\
-**num** = numero di valori che si intendono leggere o scrivere (se il tipo richiesta type lo prevede). Sono previsti valori tra 1 e 512 per valori del parametro type = 1, 2, (lettura di bit), mentre per valori type = 3, 4, 16 (scrittura multipla e lettura di word) i valori previsti sono tra 1 e 32.+**num** = numero di valori che si intendono leggere o scrivere (se il tipo richiesta type lo prevede). Sono previsti valori tra 1 e 128 per valori del parametro type = 1, 2, (lettura di bit), mentre per valori type = 3, 4, 16 (scrittura multipla e lettura di word) i valori previsti sono tra 1 e 32.
  
 === - Comandi per inviare il messaggio: === === - Comandi per inviare il messaggio: ===
Linea 263: Linea 262:
 ==== - Esempi ==== ==== - Esempi ====
  
-1) Lettura del registro input nr.7 dello slave id 67+1) Impostazioni modbus e apertura del canale di comunicazione di tipo seriale 
 +modbus.mode = 0 
 +modbus.prot = 1 
 +modbus.brate = 57600 
 +modbus.stopb = 1 
 +modbus.par = 0 
 +modbus.tout = 100 
 +modbus.OPENCOM 
 + 
 +3) Lettura del registro input nr.7 dello slave id 67
 <code QCL> <code QCL>
-MAIN: +modbus.idcard = 67 
-     modbus:idcard = 67 +modbus.addr = 7 
-     modbus:addr = 7 +modbus.tabreg = 7 
-     modbus:tabreg = 7 +modbus.num = 1 
-     modbus:num = 1 +modbus.type = 4 
-     modbus:type = 4 +modbus.SEND 
-     SEND modbus +WAIT modbus.st_sended 
-     WAIT modbus:st_sended +IF (modbus.err) 
-     IF (modbus:err) +    CALL ErroreModbus 
-         CALL ErroreModbus +ENDIF 
-          +slVelocita = modbus.iword7
-     ENDIF +
-     slVelocita = modbus:iword7 +
-      +
-     WAIT 1 +
-     JUMP MAIN+
 </code> </code>
  
-2) Lettura dei holding register dal nr.600 al nr.606 dello slave id 8\\+4) Lettura dei holding register dal nr.600 al nr.606 dello 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 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
 <code QCL> <code QCL>
-MAIN: +modbus.idcard = 8 
-     modbus:idcard = 8 +modbus.addr = 600 
-     modbus:addr = 600 +modbus.num = 6 
-     modbus:num = 6 +modbus.tabreg = 10 
-     modbus:tabreg = 10 +modbus.type = 3 
-     modbus:type = 3 +modbus.SEND 
-     SEND modbus +WAIT modbus.st_sended 
-     WAIT modbus:st_sended +IF (modbus.err) 
-     IF (modbus:err) +    CALL ErroreModbus 
-         CALL ErroreModbus +ENDIF 
-     ENDIF +     
-      +swTemp1 = modbus.iword10 
-     swTemp1 = modbus:iword10 +slVelocita = modbus.ilong6 
-     slVelocita = modbus:ilong6 +slPosiz = modbus.ilong7 
-     slPosiz = modbus:ilong7 +swTemp1 = modbus.iword15
-     swTemp1 = modbus:iword15 +
-      +
-     WAIT 1 +
-     JUMP MAIN+
 </code> </code>
  
  • Ultima modifica: 2020/07/13 15:15