Vai al contenuto
PLC Forum


Comunicazione modbus RS485 con più nodi anche quando uno non è più raggiungibile


Marsala_1

Messaggi consigliati

Buongiorno,

su un progetto sviluppato con PLC Siemens S7 1200 ho implementato la comunicazione RS 485 con 4 nodi:

2 compressori

1 multimetro

1 misuratore di portata

 

Fino a quando tutti i nodi sono collegati non ho problemi, ma quando ho disalimentato un compressore per una modifica elettrica la comunicazione si è interrotta.

 

Come posso continuare ad avere la comunicazione modbus RS485 anche quando un nodo non è alimentato elettricamente?

 

Per esempio una volta consegnata la macchina, se si deve disalimentare elettricamente un compressore per manutenzione rischio di non poter avviare il secondo compressore perché non ho la comunicazione modbus RS 485, quindi la macchina resta ferma...

 

Potete darmi una mano per favore?

 

Grazie.

 

 

Modificato: da Marsala_1
Link al commento
Condividi su altri siti


Devi gestire l'errore di comunicazione.
Se un nodo non comunica, devi fare in modo che il tuo programma passi alla comunicazione con il nodo successivo.
Generalmente, una volta rilevato un errore di comunicazione con un nodo, per non rallentare la comunicazione anche con gli altri nodi, si salta la comunicazione con il nodo in errore per un certo tempo (es. 5-10 secondi).
Potresti anche abilitare/disabilitare manualmente la comunicazione con ogni singolo nodo.

Link al commento
Condividi su altri siti

Ciao Batta,

il tuo consiglio di disabilitare la comunicazione con il nodo che non è alimentato elettricamente mi può aiutare molto.

 

Prima di implementare questa soluzione, vorrei non far intervenire un operatore per disabilitare il nodo non sia più alimentato e quindi eliminare in automatico il nodo che non comunica.

 

Quali variabili posso utilizzare per individuare esattamente il nodo che non comunica e saltarlo?

 

Grazie.

Link al commento
Condividi su altri siti

Le funzioni di comunicazione (in generale, non solo per il Modbus) ti dicono anche se la comunicazione è andata a buon fine o se si sono verificati errori. A questa segnalazione di errore puoi aggiungere il classico time out: se non ho risposta entro il tempo massimo previsto, significa che non sto comunicando.
Quando si verifica un errore setti una memoria che puoi usare sia per segnalare l'errore di comunicazione, sia per saltare la comunicazione con quel nodo.

Il reset di questa memoria puoi decidere di farlo manualmente, oppure dopo un certo tempo, per esempio, 10 secondi (o quello che vuoi tu).

Spesso si gestisce anche un numero di tentativi. Per esempio, se rilevo errore ritento la comunicazione con il nodo per tre volte prima di considerare il nodo veramente in errore.


 

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