Page 1 of 1

Modbus rtu

Posted: 22/02/2019, 8:13
by user7734
Buongiorno,
sto cercando di leggere via modbus uno strumento tramite un pl500.
Ho eseguito la connessione e testato il collegamento.Ho creato un dispositivo modbus tramite l'editor personalizzato e ho mappato i registri.
Tutto funziona e leggo i vari registri eccetto 2 che però da mappatura dello strumento mi dicono di essere di tipo float.
Questi ultimi registri li ho mappati come variabile REAL e riesco a vedere dei numeri ma non quelli giusti.
C'è qualche conversione o shift da fare?
Ho usato le funzioni 3 Holding Register per tutti i registri come da manuale dello strumento.
Le allego mappatura dello stesso.
Grazie.

Denis DS

Re: Modbus rtu

Posted: 22/02/2019, 12:53
by Pixsys tecnico 6
Buongiorno,
come ha mappato il suo dispositivo modbus custom? Ha preso in considerazione che la lettura di un FLOAT a 32bit occupa due indirizzi modbus consecutivi?

Le allego un esempio.
MBS_Custom_FLOAT.PNG
Cordiali Saluti.

Re: Modbus rtu

Posted: 22/02/2019, 14:02
by user7734
Salve,
certo che l'ho considerato.Le invio schermata con specifiche.L'indirizzo di mio interesse è il 102.
Le altre variabili non real le vedo senza problemi mentre quelle Real le vedo ma con valori sbagliati.

Re: Modbus rtu

Posted: 22/02/2019, 14:48
by Pixsys tecnico 6
Buongiorno,
probabilmente è necessario fare uno swap della parte più significativa (primi 16bit) con quella meno significativa (secondi 16bit) della word a 32bit. Ha modo di effettuare questa operazione nel suo slave?

Cordiali Saluti

Re: Modbus rtu

Posted: 22/02/2019, 15:06
by user7734
Salve,
non è possibile farlo nel dispositivo slave.Posso farlo nel programma logiclab?
Se si come posso effettuarlo?
Grazie.

Denis DS

Re: Modbus rtu

Posted: 22/02/2019, 15:42
by Pixsys tecnico 6
Buongiorno,
in questo caso le basterà scomporre la DWord a 32bit e ricomporla con i 16bit invertiti, mediante i blocchi funzione "DWord_To_Bit" e "Bit_To_DWord".
LogicLab_DWord_To_Bit.PNG
Bit_To_DWord.PNG
Cordiali Saluti

Re: Modbus rtu

Posted: 22/02/2019, 16:07
by user7734
Salve, come va fatta l'inversione di bit?Non mi è chiara.
Può gentilmente illustrarmela?
Grazie.

Re: Modbus rtu

Posted: 22/02/2019, 16:43
by Pixsys tecnico 1
Salve,
sono a disposizione anche dei blocchetti che lavorano sulle WORD direttamente.
Quindi lei scompone la Dword in due word con il blocchetto DWORD_INTO_TWO_WORD poi ricompone la DWORD con il blocchetto TWO_WORD_INTO_DWORD.
Ovviamente nella ricomposizione inverter l'ordine delle due word estrapolate col primo blocchetto.

Re: Modbus rtu

Posted: 26/02/2019, 9:19
by user7734
Salve,
ho testato come mi ha suggerito ma non funziona, ho sempre dei valori strani che continuano a cambiare.
Ha per caso altri suggerimenti?
Gli strumenti che vado a leggere sono 2 dello stesso tipo e marca, uguali identici e su entrambi ho questo problema.
Grazie

Re: Modbus rtu

Posted: 26/02/2019, 9:36
by Pixsys tecnico 1
Provi a leggere altri registri a 32bit non float da questo dispositivo, per capire se l'inversione che esegue usando i blocchetti funziona correttamente.

Re: Modbus rtu

Posted: 26/02/2019, 10:07
by Pixsys tecnico 6
Buongiorno,
purtroppo non abbiamo altri suggerimenti da darle. Dovrebbe sentire il produttore dello slave e capire come gestisce i bit di quella word. Una volta capito come gestire i bit della word li può scomporre e ricomporre a piacimento seguendo le indicazioni dei post precedenti.

Cordiali Saluti