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 15:16] – [5.5. Esempi] qem207software:devices:modbus [2015/09/15 16:05] – [5.5.3. Identificazione degli Slave] qem207
Linea 189: 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 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. **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.
Linea 263: Linea 263:
  
 1) Impostazioni modbus e apertura del canale di comunicazione di tipo seriale 1) Impostazioni modbus e apertura del canale di comunicazione di tipo seriale
-modbus.mode = 0 +<code QCL> 
-modbus.prot = 1 +modbus.mode = 0                             ; modbus master 
-modbus.brate = 57600 +modbus.prot = 1                             ; RTU 
-modbus.stopb = 1 +modbus.brate = 57600                        ; baudrate 
-modbus.par = 0 +modbus.stopb = 1                            ; stop bits 
-modbus.tout = 100+modbus.par = 0                              ; parity 
 +modbus.tout = 100                           ; timeout 
 +tm_opencom = 2000                           ; timeout for OPENCOM command
 modbus.OPENCOM modbus.OPENCOM
 +WAIT modbus.st_opencom OR tm_opencom
 +IF NOT modbus.st_opencom
 +    OpenComError = 1                        ; com not opened
 +ENDIF
 +</code>
 +
 +2) Impostazioni modbus e apertura del canale di comunicazione di tipo TCPIP
 +<code QCL>
 +modbus.mode = 0                             ; modbus master
 +modbus.prot = 2                             ; TCPIP
 +
 +tcpip_port= 502                             ; number of tcpip port (default 502)
 +modbus.brate = &HFFFFFFFF
 +modbus.stopb = tcpip_port / &H00000100
 +modbus.par   = tcpip_port ANDB &H000000FF
 +
 +modbus.tout = 100                           ; timeout
 +tm_opencom = 500                            ; waiting time to have a correct response
 +modbus.OPENCOM
 +WAIT tm_opencom
 +IF NOT modbus.st_opencom
 +    OpenComError = 1                        ; com not opened
 +ENDIF
 +</code>
  
 3) Lettura del registro input nr.7 dello slave id 67 3) Lettura del registro input nr.7 dello slave id 67
Linea 305: Linea 331:
 swTemp1 = modbus.iword15 swTemp1 = modbus.iword15
 </code> </code>
- 
 === - Schema a blocchi === === - Schema a blocchi ===
 {{:software:devices:modbus:modbus_01.png?nolink400|}} {{:software:devices:modbus:modbus_01.png?nolink400|}}
Linea 323: Linea 348:
 Il comando READSTYPE eseguito dopo aver opportunamente selezionato lo slave (tramite parametro idcard) invia allo Il comando READSTYPE eseguito dopo aver opportunamente selezionato lo slave (tramite parametro idcard) invia allo
 slave una richiesta modbus nr.17 per il riconoscimento. Lo slave risponderà con un suo valore predefinito e potrà essere slave una richiesta modbus nr.17 per il riconoscimento. Lo slave risponderà con un suo valore predefinito e potrà essere
-letto nel parametro stype. Nel caso lo slave non sia prodotto da QEM srl, il parametro avrà valore –1 ad indicare che lo+letto nel parametro stype del master. Nel caso lo slave non sia prodotto da QEM srl, il parametro avrà valore –1 ad indicare che lo
 slave è connesso ma non è possibile identificarlo.\\ slave è connesso ma non è possibile identificarlo.\\
 Per il device MODBUS lo slave ID è diverso a seconda dello slave QEM utilizzato. Per una codifica degli slave in questo Per il device MODBUS lo slave ID è diverso a seconda dello slave QEM utilizzato. Per una codifica degli slave in questo
-senso vedere il manuale Firmware dello slave utilizzato.+senso vedere il manuale Firmware dello slave utilizzato.\\ Se lo slave è implementato con un device MODBUS allora lo stype è impostato tramite il parametro omonimo.
  
 Esempio d'identificazione dello slave nr.12: Esempio d'identificazione dello slave nr.12:
 <code QCL> <code QCL>
-CONFIG: +modbus:idcard = 12 
-     modbus:idcard = 12 +modbus.READSTYPE 
-     READSTYPE modbus +WAIT modbus.st_sended 
-     WAIT modbus:st_sended +IF (modbus.err) 
-     IF (modbus:err) +    sbConfig = 3             ; error: slave 12 not connected 
-           sbConfig = 3             ; errore slave 12 non connesso +ELSE 
-     ELSE +    IF (modbus.stype EQ 1)   ; Board CAM-AG-98 
-           IF (modbus:stype EQ 1)   ;Scheda CAM-AG-98 +        sbConfig = 1         configuration OK 
-                 sbConfig = 1       configurazione OK +    ELSE 
-           ELSE +        sbConfig = 2         error in network configuration 
-                 sbConfig = 2       errore nella configurazione rete +    ENDIF
-           ENDIF+
 ENDIF ENDIF
 </code> </code>
- 
 ==== - Estensione del protocollo ==== ==== - Estensione del protocollo ====
  
  • Ultima modifica: 2020/07/13 15:15