Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
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:20] – [5.2.1. Parametri per formattare il messaggio:] qem207 | software:devices:modbus [2015/09/15 15:55] – [5.5.3. Identificazione degli Slave] qem207 | ||
---|---|---|---|
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 | ||
+ | </ | ||
+ | |||
+ | 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 = & | ||
+ | modbus.stopb = tcpip_port / & | ||
+ | modbus.par | ||
+ | |||
+ | 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 | ||
+ | </ | ||
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 | ||
</ | </ | ||
- | |||
=== - Schema a blocchi === | === - Schema a blocchi === | ||
{{: | {{: | ||
Linea 322: | Linea 347: | ||
perché il protocollo non prevede una modalità standard di riconoscimento slave.\\ | perché il protocollo non prevede una modalità standard di riconoscimento slave.\\ | ||
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 | + | slave una richiesta modbus nr.17 per il riconoscimento. Lo slave risponderà con un suo valore |
- | 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 | ||
Linea 330: | Linea 355: | ||
Esempio d' | Esempio d' | ||
<code QCL> | <code QCL> | ||
- | CONFIG: | + | modbus: |
- | modbus: | + | modbus.READSTYPE |
- | READSTYPE | + | WAIT modbus.st_sended |
- | | + | IF (modbus.err) |
- | | + | sbConfig = 3 ; |
- | | + | ELSE |
- | | + | IF (modbus.stype EQ 1) ; |
- | | + | sbConfig = 1 |
- | | + | ELSE |
- | | + | sbConfig = 2 |
- | | + | ENDIF |
- | | + | |
ENDIF | ENDIF | ||
</ | </ | ||
- | |||
==== - Estensione del protocollo ==== | ==== - Estensione del protocollo ==== | ||