Jump to content
PLC Forum


Comunicazione Modbus


baltimora
 Share

Recommended Posts

Ho realizzato un'applicazione dove effettuo la lettura di alcuni registri in modalità modbus RTU tra un S7 1200 (MASTER) ed un dispositivo di terzi parti (SLAVE).

Ho constatato però che se alcuni dei registri dello slave che interrogo, assumono il valore pari a zero, la comunicazione si interrompe, mentre se assumono un qualunque altro valore diverso dallo zero, la comunicazione avviene regolarmente. Tant'è che variando il valore dei registri dello slave manualmente, nel master vedo chiaramente variare i registri letti, riportando esattamente il valore inserito nello slave.

Inoltre, quando porto i registri "incriminati" a zero, l'apposita uscita del blocco si porta ad "1" per segnalarmi la presenza di errori.

Sapreste dirmi un consiglio su quale potrebbe essere la causa?

Grazie

Edited by baltimora
Link to comment
Share on other sites


Livio Orsini
Inoltre, quando porto i registri "incriminati" a zero, l'apposita uscita del blocco si porta ad "1" per segnalarmi la presenza di errori.

Probabilmente questi registri non possono avere valore zero, dovresti controllare le scpecifiche dello slave.

Link to comment
Share on other sites

Probabilmente questi registri non possono avere valore zero, dovresti controllare le scpecifiche dello slave.

Non mi sembra di aver letto qualcosa di simile nel manuale, anche perché lo slave è un multimetro da quadro, ed i registri che mandano in tilt la lettura sono quelli inerenti la lettura delle fasi. In particolare se tolgo la fase L1 la lettura avviene regolarmente, mentre se tolgo la fase L2 la comunicazione si interrompe.

La fase L3 non ricordo cosa fa. Considerato che è molto probabile che possa mancare una delle tre fasi, mi sembra anomalo un comportamento del genere.

Mi viene da pensare che possa essere un anomalia del multimetro, anche perché tempo fa feci la prova di comunicazione con un HMI/OP della Schneider ed impazzii perché la comunicazione era instabile. Solo ora collegato i due "episodi".

Potrebbe essere che quando un o più registri vadano a zero, il messaggio inviato dallo slave sia più lungo del normale? o che il CRC non venga calcolato correttamente?

Edited by baltimora
Link to comment
Share on other sites

Hai provato prima ad escludere il plc e collegarti con un simulatore modbus rtu?? magari cosi riesci a capire cosa succede quando interroghi quei registri. io utilizzo modscan32 ma ce ne sono tanti in giro!! Prima di incolpare lo strumento verifica il contenuto dei messaggi che si scambiano.

cia

Link to comment
Share on other sites

Livio Orsini
o che il CRC non venga calcolato correttamente?

Potrebbe anche essere, anche se è sicuramente un errore del fw del multimetro.

Segui il consiglio di treemezzo, verifica che il tuo master comunichi regolarmente; così sei sicuro di localizzare il dispositivo difettoso.

Link to comment
Share on other sites

Si ho provato la comunicazione con un simulatore di "Modbus Slave" per la comunicazione tra PLC e PC via RS232. Ora non credo di aver tesato esattamente quei registri, ma quando tentai di stabilire inizialmente la comunicazione tra Multimetro e PLC, ovviamente ignorando la presenza di tale problema, non riuscivo a stabilire buona comunicazione, e quando ci riuscivo facendo i vari test di lettura, la comunicazione (impazziava) perchè portavo a zero in modo casuale i vari registri. In pratica toglievo l'alimentazione agli ingressi del multimetro (L1 L2 L3 ) in modo casuale. Non riuscendo a capire perchè la comunicazione si comportasse così ho testalo la comunicazione tra PLC e PC con il simulatore. Le librerie utilizzate per la comunicazione in modbus che ho utilizzato, sono quelle messe a disposizione direttamente dalla siemens.

Ripeto anche che il medesimo problema l'ho riscontrato facendo comunicare il multimetro con un pannello operatore della Schneider.

Ora però voglio provare a far comunicare il multimetro con un simulatore di modbus master per vedere se ho gli stessi problemi.

Vi terro informati.

A presto

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...