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/16 08:51] – [Table] qem207software:devices:modbus [2015/09/16 10:08] – [5.5. Esempi] 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 284: Linea 285:
  
 tcpip_port= 502                             ; number of tcpip port (default 502) tcpip_port= 502                             ; number of tcpip port (default 502)
-modbus.brate = &HFFFFFFFF 
 modbus.stopb = tcpip_port / &H00000100 modbus.stopb = tcpip_port / &H00000100
 modbus.par   = tcpip_port ANDB &H000000FF modbus.par   = tcpip_port ANDB &H000000FF
- 
 modbus.tout = 100                           ; timeout 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 483: 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
 +</code>
 === - 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 496: Linea 512:
 == Esempio: == == Esempio: ==
 <code QCL> <code QCL>
-MAIN: +modbus.olong1 = anpos.speed 
-     modbus:olong1 = anpos:speed +modbus.oword1 = npezzi 
-     modbus:oword1 = npezzi +modbus.oword2 = npezzitot 
-     modbus:oword2 = switch +modbus.oword3 = anpos.dir 
-     modbus:oword3 = anpos:dir +modbus.olong2 = anpos.posit 
-     modbus:olong2 = anpos:posit +modbus.VALIDATE
-     VALIDATE modbus +
-     WAIT 1 +
-     JUMP MAIN+
 </code> </code>
  
Linea 515: Linea 528:
 Esempio: Esempio:
 <code QCL> <code QCL>
-MAIN: +WAIT modbus.st_msgrx 
-     WAIT modbus:st_msgrx +anpos.speed = modbus.ilong1 
-     anpos:speed = modbus:ilong1 +anpos:posit = modbus.ilong2 
-     anpos:posit = modbus:ilong2 +npezzi = modbus.iword1 
-     switch = modbus:iword1 +RECEIVED modbus
-     RECEIVED modbus +
-     WAIT 1 +
-     JUMP MAIN+
 </code> </code>
 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
  • Ultima modifica: 2020/07/13 15:15