Vai al contenuto

Stop programma in caso di perdita connessione modbus 485 rtu


Messaggi consigliati

Inserito:

Salve scusate sono alle prime armi con una connessione modbus 485 punto punto con plc s71200 e una scheda acquisizione temperatura con sonde ntc 10k e un modulo relè e ingressi digitali 485 . Programma fatto tutto funzionante.. mi chiedevo se ci fosse un modo di bloccare il funzionamento della macchina che devo comandare. Perché se per ipotesi la comunicazione cade per esempio sulla scheda relè rimangono attivi e non seguiranno il programma come anche le letture delle sonde che rimangono scritte sempre nello stesso valore e non vanno a 0. Grazie per l' aiuto.

Inserita:

per comunicare in modbus stai usando MB_CLIENT o MB_SERVER o uno degli altri blocchi siemens ? questi function block hanno nelle uscite dell'interfaccia un bit di errore.

 

Potresti usare questo bit di errore per andare a bloccare le logiche delle uscite interessate o il ciclo macchina, dipende da come è strutturato il tuo programma.

Inserita:
9 ore fa, Simone.Salarsi ha scritto:

per comunicare in modbus stai usando MB_CLIENT o MB_SERVER o uno degli altri blocchi siemens ? questi function block hanno nelle uscite dell'interfaccia un bit di errore.

 

Potresti usare questo bit di errore per andare a bloccare le logiche delle uscite interessate o il ciclo macchina, dipende da come è strutturato il tuo programma.

Salve scusami utilizzo un un Mb Comm_load e un Mb Master richiamato alle varie schede di acquisizioni . semplice RTU non una tcp. Allego foto grazie

 

Immagine 2026-02-17 173331.png

Inserita:

Io prenderei i bit di errore dei due blocchi e li userei per bloccare la logica del programma in caso di bit alto.

 

Ora ripeto, non so come sia strutturato il tuo software e nemmeno cosa e come tu debba gestire.

Io solitamente mi creo categorie di allarmi ad esempio:
- blocco immediato (allarmi gravi che devono bloccare tutto immediatamente)

- blocco start ciclo ( per esempio se mi interviene un minimo livello olio di una centralina idraulica posso terminare la lavorazione in corso ma non iniziarne una successiva)

- ecc

 

Ogni allarme viene quindi assegnato ad una categoria ed in questo modo vado a bloccare ciò che mi interessa con il bit cumulativo.

climatools
Inserita:
Il 18/02/2026 alle 09:05 , Simone.Salarsi ha scritto:

Io prenderei i bit di errore dei due blocchi e li userei per bloccare la logica del programma in caso di bit alto.

 

Ora ripeto, non so come sia strutturato il tuo software e nemmeno cosa e come tu debba gestire.

Io solitamente mi creo categorie di allarmi ad esempio:
- blocco immediato (allarmi gravi che devono bloccare tutto immediatamente)

- blocco start ciclo ( per esempio se mi interviene un minimo livello olio di una centralina idraulica posso terminare la lavorazione in corso ma non iniziarne una successiva)

- ecc

 

Ogni allarme viene quindi assegnato ad una categoria ed in questo modo vado a bloccare ciò che mi interessa con il bit cumulativo.

Scusate oggi ho fatto delle prove ma nulla da fare. Il programma che ho realizzato e composto da un blocco comm load dove richiamo un MB master varie volte per leggere e scrivere nei vari moduli di cui uno leggo le sonde di temperatura l'altro ingressi digitali l'altro dei traduttori l'altro di out relè...una volta che scollego un modulo di questi dalla connessione 485 l' MB master non cambia di stato rimane sempre false non Passa a True ... Forse sbaglio metodo di come ho realizzato il programma? Dovrei eseguire come funzione mb slave? Grazie a tutti per il vostro aiuto.

climatools
Inserita:

Scusate oggi ho fatto delle prove ma nulla da fare. Il programma che ho realizzato e composto da un blocco comm load dove richiamo un MB master varie volte per leggere e scrivere nei vari moduli di cui uno leggo le sonde di temperatura l'altro ingressi digitali l'altro dei traduttori l'altro di out relè...una volta che scollego un modulo di questi dalla connessione 485 l' MB master non cambia di stato  DI ERRORE rimane sempre false non Passa a True ... Forse sbaglio metodo di come ho realizzato il programma? Dovrei eseguire come funzione mb slave? Grazie a tutti per il vostro aiuto.

SCUSATE MANCAVA UN PEZZO E HO RISCRITTO IL TUTTO.GRAZIE

Marco Fornaciari
Inserita:

Devi studiarti bene i manuali delle apparecchiature che stai usando.

Tipicamente i bit di stato degli I/O remoti sono presente/gestiti con apparecchiature monomarca, ma non è detto a priori.

Quindi l'unica possibilità che resta è quella di usare una uscita e un ingresso e generare un flip flop nel programma, se non cambia di stato entro X tempo arresti il tutto.

 

Per esempio, controllare il comando motori è semplice, una volta comandata l'uscita se entro un secondo non arriva il feedback si da allarme, per il resto bisogna vedere caso per caso.

Quindi se tutte le utenze gestite da un unico blocco, ovvero gli stessi, danno allarme dignifica perdiata di comunicazione. va da se che la cosa va pensata e gastita in fase di progettazione del sistema e di editazione degli schemi di cablaggio.

 

 

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