Vai al contenuto
PLC Forum


Distanza "minima" Tra Il Master Ed Il Primo Slave (Modbus)


mds

Messaggi consigliati

Ciao Ragazzi,

ho alcuni problemi di lettura dei registri sul primo slave (quello più vicino al master), mentre è tutto ok per gli slave più lontani.

L'unità master ed il primo slave si trovano nello stesso quadro, qundi il tronco di bus è abbastanza corto.

E' vero che deve essere almeno di 1 metro??

Grazie per l'aiuto

Mauro

Link al commento
Condividi su altri siti


E' vero che deve essere almeno di 1 metro??

Questo mi sembra assurdo, anche perchè se vuoi toglierti la soddisfazione puoi sempre effettuare il collegnamento con un cavo di lunghezza > 1m.

Io indagherei sulla configurazione del primo slave.

Link al commento
Condividi su altri siti

Guarda la configurazione è semplicissima e corretta. Lo slave più lontano ha indirizzo 1 lo leggo perfettamente, quello invece vicino con indirizzo 2 non riesco a interrogarlo, più o meno risponde ogni 100 tentativi. Non è un problema del modulino perchè in ufficio funziona perfettamente con qualunque indirizzo. Mi è rimasto solo il cavo. In una guida ho letto che deve essere almeno di 1 m tra ogni dispositivo, ma non l'avevo mai sentito....

Link al commento
Condividi su altri siti

è un bus RS485. Il cavo interno al quadro, dal master al primo slave, è un cavo di rete, utilizzando una coppia twistata. il pezzetto di cavo sarà un 20-30cm.....

Link al commento
Condividi su altri siti

Non ci sono molte ipotesi da fare.

Se il bus è costruito secondo logica vai dal master allo slave più vicino, poi da questo a quello successivo. Se quello più vicino non funziona ed il remoto si il cavo non c'entra ma è un problema di slave; l'indirizzo potrebbe essere sbagliato, potrebbe anche essere guasto, si perchè si guastano anche.

Se invece è stata fatta una configurazione un poco "personale" dal master partono 2 cavi: uno per il remoto e l'altro per il vicino. In questo caso potrebbe esserci un problema di cavo, ma non certo quello della lunghezza, anzi della ......cortezza. Può essere mal cablato, può essere il connettore difettoso ed infino può essere ancora lo slave guasto o l'indirizzo sbagliato.

Link al commento
Condividi su altri siti

Ciao MDS .

Puoi descrivere meglio il tuo sistema .

Che plc utilizzi , che slave utilizzi , a quale baud reate stai andando , come gestisci i job di lettura sugli slave etc. etc. ..

Hai già provato a scollegare lo slave 1 (od disabilitare i job di lettura/scrittura) e comunicare solo con lo slave 2 ?

Tieni presente che talvolta una lettura (attivazione job di lettura) con una frequenza troppo elevata può non consentire allo slave di rispondere in tempo e quindi puoi avere problemi di questo tipo .

Personalmente quando ho problemi di questo tipo isolo lo slave e svolgo test singoli .

Utilizzo anche un modbus master simulator (software su pc) così da togliere di mezzo anche il plc .

Se lo slave mi funziona con il master simulator allora il problema è nella gestione a livello software plc o a livello di settaggio della porta di comunicazione lato plc.

bigalex :blink:

Link al commento
Condividi su altri siti

Si vi do qualche elemento in più.

Premetto che ho fatto diverse prove, tra cui isolare lo slave incriminato e non ho avuto esito positivo, anzi si comporta esattamente uguale.

Anche io in fase di testing prima della messa in servizio di tutto il sistema utilizzo dei software di modbus tester, per provare se la comunicazione con tutti funziona. Sia con il software di test, che con il mio master di campo, l'esito è sempre lo stesso, cioè lo slave vicino non risponde o mostra molte difficoltà a comunicare.

Come master utilizzo un pc embedded della advantech (ARK 1122C), che collego tramite una sua porta configurata tramite bios in rs485. Gli slave (2 in tutto) sono dei blocchettini conta impulsi della SAIA (PCD7H104D), ovviamente con interfaccia modbus. Sto lavorando a 19200bps.....ed il secondo slave risponde perfettamente, sia che ci sia il primo sia che non ci sia.

Leggo con la frequenza di 1Hz......che non mi sembra molto alta!!!

In ufficio il blocchettino incriminato funziona perfettamente. Oggi pomeriggio provo a replicare con lo stesso master di campo che ho installato (ne ho uno in più) e vediamo se la colpa è del cavo!!

Modificato: da mds
Link al commento
Condividi su altri siti

Io per lavoro uso spesso reti Modbus che vanno dal quadro elettrico principale che contiene il master ai vari moduli slave che sono nel quadro stesso e in campo a centinaia di metri... Ma non ho mai visto problemi di cortezza della linea :unsure:

Link al commento
Condividi su altri siti

La comunicazione tra pc embedded e slaves la esegui tramite software scada o hai programmato tu delle funzioni di comunicazione utilizzando software tipo c# o vb.net o ... altro ?

Se lo slave funziona in ufficio o è un problema di cavo di collegamento (cablaggio) o di configurazione della porta di comunicazione o del software di gestione del protocollo modbus .

Chiaramente oltre al baud rate è importante , il tipo di parità , il numero bit di stop ed eventuali temporizzazioni che sono permesse a livello di slave e di master .

Come già detto da chi mi ha preceduto la lunghezza del cavo è un problema solo se si eccede in lunghezza .

bigalex :blink:

Link al commento
Condividi su altri siti

Roberto Gioachin

Inoltre bisogna inserire le resistenze di terminazione sul primo e ultimo nodo, le hai inserite?

Senza di queste ci possono essere dei segnali riflessi e la comunicazione ne risulta disturbata, a volte in modo strano.

Roberto

Link al commento
Condividi su altri siti

Inoltre bisogna inserire le resistenze di terminazione sul primo e ultimo nodo, le hai inserite?

Senza di queste ci possono essere dei segnali riflessi e la comunicazione ne risulta disturbata, a volte in modo strano.

Assolutamente vero!!

Link al commento
Condividi su altri siti

Si le resistenze ci sono e la configurazione della porta è corretta (l'altro slave viene letto correttamente). È rimasto solo il cavo. A breve farò una prova in ufficio con un cavo da 1.5m, vediamo se va.....

Io sospetto anche delle resistenza sul master, che se rovinata o interrotta potrebbe crearmi problemi di lettura sullo slave vicino. Per questo proverò con un nuovo cavo e vediamo se cambia qualcosa con varie lunghezze...

Modificato: da mds
Link al commento
Condividi su altri siti

Ciao mds .

Personalmente mi è capitato qualcosa del genere alcuni anni fa quando stavo collaudando dei quadri elettrici (connessi tra di loro in rs485 Modbus) ed erano inserite le resistenze di teminazione ma la lunghezza complessiva della tratta di cavo tra il master l'ultimo slave era solo di alcuni metri (tra i 15mt e 20mt in totale) .

Alla fine ho disinserito le resistenze di terminazione ed i problemi sono spariti.

Infatti l'inserimento delle resistenze di terminazione dovrebbe essere utilizzato in caso di tratte di cavo lunghe.

Ti porto una citazione di uno tra i documenti trovati in rete :

Are terminating resistors required?
The terminating resistor on each end of the RS-485 loop is designed to match electrical impedance characteristics of the twisted pair loop, to prevent signal echoes from corrupting data on the line.
A 120 Ohm termination resistor should be installed on BOTH ends of the RS-485 loop.
Short and medium length Modbus/RS-485 loops can operate without the resistor.
Longer runs may require it.

bigalex :blink:

Link al commento
Condividi su altri siti

Per questo proverò con un nuovo cavo e vediamo se cambia qualcosa con varie lunghezze...

Se dovesse succedere, e sei sicuro che dipenda solo dal cavo, buttalo via e non usare mai piùquel tipo di cavo per questo tipo di connessioni. Significherebbe che è un cavo assolutamente inadatto.

Link al commento
Condividi su altri siti

Roberto Gioachin

Le resistenze di terminazione vanno sempre inserite all'inizio e alla fine della rete, non inserirle per reti corte è anche possibile ma di sicuro non è consigliato.

Per comprendere meglio, prova vedere cosa succede su una rete profibus se non vengono inserite correttamente le resistenze di terminazione, anche se si lavora con cavi corti.

Il profibus utilizza lo standard RS485, esattamente come il Modbus, quindi valgono le stesse regole.

Quello che è sbagliato secondo me è di utilizzare due cavi con caratteristiche diverse sulla stessa rete, sarebbe bene utilizzare lo stesso tipo di cavo e possibilmente con impedenza caratteristica di 120 ohm; anche i cavi possono generare dei riflessi del segnale, non solo la mancanza delle resistenze.

Potresti provare ad utilizzare un cavo profibus per fare le prove e verificare se il primo slave si mette a funzionare.

Roberto

Link al commento
Condividi su altri siti

Ciao Roberto .

In uno dei tanti documenti sul Modbus di ABB viene specificato che generalmente le resistenze di terminazione vengono inserite solo se necessario .

Di solito con Modbus si utilizzano velocità relativamente basse (9600 baud - 19200 baud) e quindi vi è minore sensibilità rispetto ad una comunicazione in Profibus.

E' vero che la qualità del cavo è importante e che si dovrebbe utilizzare una qualità di cavo omogenea su tutte la tratte della rete .

E sopratutto un cavo che risponda alle specifiche elettriche richieste per questo tipo di comunicazione .

bigalex :blink:

Modificato: da bigalex
Link al commento
Condividi su altri siti

E' vero che la qualità del cavo è importante

E' importante soprattutto la capacità parassita, perchè tende ad integrare i fronti.

A bassa velocità è sufficiente anche un doppino twistato, se la tratta è breve: empiricamente una deciba di metri.

Se la tratta totale supera la decina di metri è sempre meglio usare cavo schermato di buona qualità ed a bassa capacità, ma questo vale per qualsiasi collegamento seriale.

Le teriminazioi agli estremi della rete sono obbligatorie.

Ho il sospetto che non sia stata fatta la classica connessione master-slave1-slave2, ma la connessione master-slave1 e master-slave2. Ne ho accennato nel #6, ma l'autore della discussione ha omesso di specificare il tipo di connessione.

Link al commento
Condividi su altri siti

  • 3 weeks later...
Comunque, sostituito il tratto di cavo tra il master ed il primo slave, funziona.

probabilmente nella sostituzione del cavo hai anche inconsapevolmente "aggiustato" qualche problema sul connettore del primo slave.

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