Vai al contenuto
PLC Forum


OB d'allarme


alefrasca

Messaggi consigliati

Salve a tutti, vorrei capire se gli OB d'allarme sono continuamente scansionati in parallelo all'OB1 in modo da poter scrivere condizioni che appena si verificano durante tutta la lettura del programma interrompono l'OB1. In tal caso poi dovrei passare alla risoluzione del guasto e riavviare l'OB1 con una variabile o con un istanza?

Link al commento
Condividi su altri siti


3 ore fa, alefrasca scrisse:

se gli OB d'allarme sono continuamente scansionati i

 

Quali OB?

Se ti riferisci Agli OB legati ad interrupts, scatenati da allarmi, non sono mai scansionati ma si attivano immediatamente al verificarsi dell'evento di allarme. Ovvimente il programma "normale" si interrompe sino a che non uscirà dall'OB.

 

Faccio un esempio per chiarire.

Se leghi l'OB35 allo scadere del timer di sistema, ogni volta che il tinmer scade il programma si interrompe ed entra nell'OB35 eseguendo le istruzioni in esso contenute, poi torna dove era stato interrotto

Link al commento
Condividi su altri siti

4 ore fa, alefrasca scrisse:

In tal caso poi dovrei passare alla risoluzione del guasto e riavviare l'OB1 con una variabile o con un istanza?

L'OB1 non c'è mai bisogno di riavviarlo. Ci mancherebbe solo che, per l'intervento di un OB con priorità più elevata, si corresse il rischio di rimanere col programma bloccato.
Come già detto da Livio, quando viene avviato un OB di interrupt (allarme, a tempo, non ha alcuna importanza), questi interrupt hanno priorità più elevata dell'OB1. L'OB1 viene quindi momentaneamente interrotto per seguire l'OB con priorità più alta. Una volta terminata l'esecuzione dell'OB con priorità più alta, il programma prosegue, nell'OB1 (o nei blocchi richiamati da OB1), da dove era stato interrotto.

Link al commento
Condividi su altri siti

7 ore fa, alefrasca scrisse:

in modo da poter scrivere condizioni che appena si verificano durante tutta la lettura del programma interrompono l'OB1. 

se interrompi ob1 vai dritto in stop causa superamento del massimo tempo di scansione.

Link al commento
Condividi su altri siti

Quindi gli OB d'allarme sono solo per errori di sistema o li posso utilizzare anche a mio piacimento nell'automazione scrivendo le condizioni che mi soddisfano? 

Link al commento
Condividi su altri siti

7 ore fa, alefrasca scrisse:

Quindi gli OB d'allarme sono solo per errori di sistema o li posso utilizzare anche a mio piacimento nell'automazione scrivendo le condizioni che mi soddisfano? 

 

Non ci sono delle prescrizioni sull'uso.

Però ci sono alcune regole di buona programmazione da rispettare, una di queste prevede che gli OB di servizio agli interrupt siano corti; poi all'interno dell'OB puoi richiamare funzioni specifiche.

 

Un consiglio di base.

Queste funzioni non si devono usare ad libitum, ma per scopi precisi; quindi prima di usarle dovresti studiare bene i capitoli specifici del manuale del PLC in oggetto.

Link al commento
Condividi su altri siti

17 ore fa, alefrasca scrisse:

Quindi gli OB d'allarme sono solo per errori di sistema o li posso utilizzare anche a mio piacimento nell'automazione scrivendo le condizioni che mi soddisfano? 

Negli OB di allarme, in teoria, ci puoi scrivere quello che vuoi. Devi però tenere presente che vengono lanciati solo dai relativi allarmi, e vengono eseguiti per un solo ciclo ogni volta che si verifica l'evento.
Di solito ha senso scrivere in questi OB istruzioni per diagnosticare l'anomalia riscontrata, o per azioni da intraprendere in quel caso specifico.

Nella serie 300/400, spesso l'OB era l'unico modo per diagnosticare l'anomalia. Nelle CPU 1200/1500 ci sono strumenti di diagnostica molto più comodi.

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