Marsala_1 Inserito: 2 marzo 2022 Segnala Inserito: 2 marzo 2022 (modificato) 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: 2 marzo 2022 da Marsala_1
batta Inserita: 2 marzo 2022 Segnala Inserita: 2 marzo 2022 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.
Marsala_1 Inserita: 2 marzo 2022 Autore Segnala Inserita: 2 marzo 2022 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.
batta Inserita: 2 marzo 2022 Segnala Inserita: 2 marzo 2022 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.
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora