Jump to content
PLC Forum


Debug comunicazione modbus


igorte
 Share

Recommended Posts

Sono alla mia prima integrazione di un modulo modbus che gestisce 8 PT100 (DAT8019)  con un Logo 8.4.
Mi servirebbe aiuto per capire come fare debug della mancata comunicazione dei parametri.

 
status quo:
  • Ho creato il progetto di rete e l'ho caricato su logo senza errori
  • ho configurato il passaggio di informazioni passando ogni valore da modbus ad aree VW del logo. il device passa valori interi, senza virgole
  • il progetto prevede che ogni AnalogInput di rete sia associato alla sua VW0. VW4, VW8,...  poi ho un analog comparator settato come "senza sensore" ed i relativi parametri di comportamento
  • ho programmato una pagina del display che dovrebbe far vedere il valore Ax(temperatura) dei rispettivi analog comparator.
  • metto in run e visulazzo la pagina sul logo, ma il valore è fisso su 0, come se non leggesse vw
  • sia il logo che il device modbus sono visibili in rete (accedo ai rispettivi webserver)
Domande: 
  • esiste un modo per leggere/vedere (da logo o da PC) i valori VW   che il DAT dovrebbe passare al logo? nella modalità simulazione non ho trovato modo di visualizzare ne' inserire valori di VW
  • nel caso la tabella di traduzione modbus/logo fosse errata, dovrei ricevere un errore oppure resta "silenzioso"?
  • altri suggerimenti di debug? 

 

 

Grazie,

Igor

Edited by igorte
mancato ringraziamento
Link to comment
Share on other sites


Posto immagine della mia attuale configurazione, sperando possa aiutare a comprendere il problema.

 

Grazie

image.thumb.png.a294e11f4b7fa6fec5ebbb676eb99989.png<

Link to comment
Share on other sites

NoNickName

Già non mi quadra la lunghezza dei datapoint. Un registro modbus sono 16 bit quindi 1 word, non 2.

Ogni registro sono 2 byte, non 4 byte. 

Oppure se hai registri di 4 byte, e quindi sono 32 bit, il passo dei registri del DAT deve essere di 2 in 2.

Link to comment
Share on other sites

Hai ragione, sulla scheda tecnica cita "- “REGISTER”, data of 2 bytes size (word of 16 bits) that can be associated to analogue input or output, variables, set-point, etc...".
Ho provveduto a cambiare la tabella come di seguito, ma per ora non ho risolto.
image.thumb.png.2fecfeccea3bee7cf1015e3e111613c5.png

 

Aggiungo che mi è venuto il dubbio se devo compilare questa tabella e poi usare dei NAI (che leggono local variable memory VW) oppure dei NAI che leggono remote device.

Sto cercando esempi in rete ma dei 3 provati nessuno mi ha portato a soluzione

 

grazie,

Igor

Link to comment
Share on other sites

NoNickName
1 ora fa, igorte ha scritto:

Hai ragione, sulla scheda tecnica cita "- “REGISTER”, data of 2 bytes size (word of 16 bits) that can be associated to analogue input or output, variables, set-point, etc...".
Ho provveduto a cambiare la tabella come di seguito, ma per ora non ho risolto.

Sto cercando esempi in rete ma dei 3 provati nessuno mi ha portato a soluzione

 

grazie,

Igor

 

Ma hai provato a interrogare il DAT con una utility tipo modpoll o similari? Tanto per avere la certezza che lo slave risponda. Poi andremo a vedere qual è il problema del master.

Sono giusti i numeri dei registri? 40041 lo dice nel manuale? Hai provato anche il registro 41?

Hai provato a pingare l'indirizzo 192.168.1.100?

Edited by NoNickName
Link to comment
Share on other sites

I registi 40041,... sono scritti sul manuale, ma sono sbagliati.
Facendo vari tentativi mi sono proprio accorto che il 400 iniziale va tolto. Ora legge correttamente.

adesso però devo capire:
1) se c'è modo di fargli leggere valori di temperatura negativi (al modulo modbus)

2) come impostare correttamente i guadagli su Logo per sfruttare al massimo il range di misura (ora mi sta gestendo da 0°a 100°)

 

Link to comment
Share on other sites

NoNickName
10 ore fa, igorte ha scritto:

I registi 40041,... sono scritti sul manuale, ma sono sbagliati.
Facendo vari tentativi mi sono proprio accorto che il 400 iniziale va tolto. Ora legge correttamente.

adesso però devo capire:
1) se c'è modo di fargli leggere valori di temperatura negativi (al modulo modbus)

2) come impostare correttamente i guadagli su Logo per sfruttare al massimo il range di misura (ora mi sta gestendo da 0°a 100°)

 

 

Devi interpretare il dato proveniente dal dat. Normalmente in modbus vengono trasmessi uint16 (0-65535), ma nel caso di temperature di solito il dato è un int16 (-32767 a 32768), quindi devi guardare il primo bit. Se il primo bit è 1, il valore è negativo. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...