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 17:05] – [5.7.2. Parametri - Modbus Master] qem207 | software:devices:modbus [2015/09/16 11:10] – [6.1.2. Impostazioni modbus e apertura del canale di comunicazione di tipo TCPIP] qem207 | ||
---|---|---|---|
Linea 270: | Linea 270: | ||
modbus.par = 0 ; parity | modbus.par = 0 ; parity | ||
modbus.tout = 100 ; timeout | modbus.tout = 100 ; timeout | ||
- | tm_opencom = 2000 ; timeout for OPENCOM command | + | |
modbus.OPENCOM | modbus.OPENCOM | ||
+ | tm_opencom = 200 ; timeout for OPENCOM command | ||
WAIT modbus.st_opencom OR tm_opencom | WAIT modbus.st_opencom OR tm_opencom | ||
IF NOT modbus.st_opencom | IF NOT modbus.st_opencom | ||
Linea 282: | Linea 283: | ||
modbus.mode = 0 ; modbus master | modbus.mode = 0 ; modbus master | ||
modbus.prot = 2 ; TCPIP | modbus.prot = 2 ; TCPIP | ||
+ | modbus.tout = 100 ; timeout | ||
tcpip_port= 502 ; number of tcpip port (default 502) | tcpip_port= 502 ; number of tcpip port (default 502) | ||
- | modbus.brate = & | ||
modbus.stopb = tcpip_port / & | modbus.stopb = tcpip_port / & | ||
modbus.par | modbus.par | ||
- | modbus.tout = 100 ; timeout | ||
- | tm_opencom = 500 ; waiting time to have a correct response | ||
modbus.OPENCOM | modbus.OPENCOM | ||
+ | tm_opencom = 500 ; waiting time to have a correct response | ||
WAIT tm_opencom | WAIT tm_opencom | ||
IF NOT modbus.st_opencom | IF NOT modbus.st_opencom | ||
Linea 451: | Linea 451: | ||
=== - Variabili - Modbus Master === | === - Variabili - Modbus Master === | ||
- | ^Nome^D^R^A^Condizioni^Descrizione^ | + | ^ Nome |
- | |err|B|0|R|-|**Errors**\\ Indica se sono stati riscontrati errori nel protocollo.\\ In modalità master il parametro viene aggiornato in coincidenza dell’attivazione dello stato // | + | | err | B | 0 | R | - |
- | |serr|B|0|R/ | + | | serr |
- | |stype|W|0|R|-|**Slave type**\\ Indica il tipo di slave connesso. Il parametro viene aggiornato quando il parametro // | + | | stype | W | 0 | R | - |
=== - Stati - Modbus Master === | === - Stati - Modbus Master === | ||
Linea 482: | Linea 483: | ||
==== - Modo di funzionamento SLAVE ==== | ==== - Modo di funzionamento SLAVE ==== | ||
- | La modalità slave viene impostata con il parametro mode = 1. Bisogna introdurre nei parametri il codice dell’ID slave tramite il parametro idcard. Le operazioni che spettano all’applicativo QCL sono essenzialmente due: | + | La modalità slave viene impostata con il parametro mode = 1 o mode = 2. Bisogna introdurre nei parametri il codice dell’ID slave tramite il parametro idcard. Le operazioni che spettano all’applicativo QCL sono essenzialmente due: |
* aggiornare i parametri tipo owordNN, olongNN (che verranno poi letti dal master) | * aggiornare i parametri tipo owordNN, olongNN (che verranno poi letti dal master) | ||
* processare i parametri tipo iwordNN, ilongNN (che sono stati scritti dal master) | * processare i parametri tipo iwordNN, ilongNN (che sono stati scritti dal master) | ||
+ | === - Impostazioni modbus e apertura del canale di comunicazione di tipo seriale === | ||
+ | <code QCL> | ||
+ | modbus.mode = 1 ; modbus slave | ||
+ | modbus.prot = 1 ; RTU | ||
+ | modbus.brate = 57600 ; baudrate | ||
+ | modbus.stopb = 1 ; stop bits | ||
+ | modbus.par = 0 ; parity | ||
+ | modbus.idcard = 1 ; slave id | ||
+ | |||
+ | modbus.OPENCOM | ||
+ | tm_opencom = 100 ; timeout for OPENCOM command | ||
+ | WAIT modbus.st_opencom OR tm_opencom | ||
+ | IF NOT modbus.st_opencom | ||
+ | OpenComError = 1 ; com not opened | ||
+ | ENDIF | ||
+ | </ | ||
+ | === - Impostazioni modbus e apertura del canale di comunicazione di tipo TCPIP === | ||
+ | <code QCL> | ||
+ | modbus.mode = 1 ; modbus slave | ||
+ | modbus.prot = 2 ; TCPIP | ||
+ | |||
+ | tcpip_port= 502 ; number of tcpip port (default 502) | ||
+ | ; maste | ||
+ | modbus.stopb = tcpip_port / & | ||
+ | modbus.par | ||
+ | ; slave | ||
+ | modbus.stopb = (tcpip_port ANDB & | ||
+ | modbus.par = tcpip_port ANDB &H00FF | ||
+ | |||
+ | modbus.OPENCOM | ||
+ | tm_opencom = 100 ; waiting time to have a correct response | ||
+ | WAIT (modbus.st_opencom OR timerOpencom) | ||
+ | IF NOT modbus.st_opencom | ||
+ | OpenComError = 1 ; com not opened | ||
+ | ENDIF | ||
+ | </ | ||
+ | FIXME | ||
=== - Aggiornamento dei parametri tipo owordNN === | === - Aggiornamento dei parametri tipo owordNN === | ||
Per aggiornare i parametri tipo owordNN il QCL deve scrivere i valori nei parametri quindi inviare il comando VALIDATE. | Per aggiornare i parametri tipo owordNN il QCL deve scrivere i valori nei parametri quindi inviare il comando VALIDATE. | ||
Linea 495: | Linea 533: | ||
== Esempio: == | == Esempio: == | ||
<code QCL> | <code QCL> | ||
- | MAIN: | + | modbus.olong1 = anpos.speed |
- | modbus:olong1 = anpos:speed | + | modbus.oword1 = npezzi |
- | | + | modbus.oword2 = npezzitot |
- | | + | modbus.oword3 = anpos.dir |
- | | + | modbus.olong2 = anpos.posit |
- | | + | modbus.VALIDATE |
- | | + | |
- | WAIT 1 | + | |
- | JUMP MAIN | + | |
</ | </ | ||
Linea 514: | Linea 549: | ||
Esempio: | Esempio: | ||
<code QCL> | <code QCL> | ||
- | MAIN: | + | WAIT modbus.st_msgrx |
- | WAIT modbus:st_msgrx | + | anpos.speed = modbus.ilong1 |
- | | + | anpos:posit = modbus.ilong2 |
- | | + | npezzi |
- | switch | + | RECEIVED modbus |
- | | + | |
- | WAIT 1 | + | |
- | JUMP MAIN | + | |
</ | </ | ||
Naturalmente non esiste nessun controllo per evitare che durante la lettura dei parametri //iwordNN// il master erroneamente | Naturalmente non esiste nessun controllo per evitare che durante la lettura dei parametri //iwordNN// il master erroneamente | ||
Linea 569: | Linea 601: | ||
=== - Parametri - Modbus Slave === | === - Parametri - Modbus Slave === | ||
- | ^Nome^D^R^A^Condizioni^ Descrizione^ | + | ^ Nome |
- | |mode|B|R|R/ | + | | mode |
- | |prot|B|R|R/ | + | | prot |
- | |wider|B|R|R/ | + | | wider | B | R | R/W | - |
- | |idcard|W|R|R/ | + | | idcard |
- | |brate|L|R|R/ | + | | brate | L | R | R/W | - |
- | |stopb|B|R|R/ | + | | stopb | B | R | R/W | - |
- | |par|B|R|R/ | + | | par | B | R | R/W | - |
- | |rdelay|W|R|R/ | + | | rdelay |
- | |iword1÷32|W|0|R|-|**Input Word nr.** (1Input Long nr. (1÷16)32)| | + | | iword1÷32 |
- | |st_ibit0÷15|F|0|R|-|**Input bit nel parametro iword1**| | + | | st_ibit0÷15 |
- | |ilong1÷16|L|0|R|-|**Input Long nr.** (1÷16)| | + | | ilong1÷16 |
- | |oword1÷32|W|0|R/ | + | | oword1÷32 |
- | |st_obit0÷15|F|0|R/ | + | | st_obit0÷15 |
- | |olong1÷16|L|0|R/ | + | | olong1÷16 |
=== - Variabili - Modbus Slave === | === - Variabili - Modbus Slave === |