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:15] – [3.1.1. Esempio] documentazionesoftware:devices:modbus [2015/09/15 15:08] – [5.5. Esempi] qem207
Linea 58: Linea 58:
 <code QCL> <code QCL>
 INTDEVICE INTDEVICE
-modbus             MODBUS     0002    0 A +modbus             MODBUS     0002    1
 </code> </code>
  
Linea 192: Linea 191:
 **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. 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.\\ **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+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      ENDIF
-     slVelocita = modbus:iword7 +     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