Vai al contenuto
PLC Forum


Comunicazione Modbus


baltimora

Messaggi consigliati

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

Modificato: da baltimora
Link al commento
Condividi su altri siti


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 al commento
Condividi su altri siti

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?

Modificato: da baltimora
Link al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...