Vai al contenuto
PLC Forum


Puntatori in S7 - Gestione errori con puntatori in S7


ottavio65

Messaggi consigliati

Costruire un puntatore (indirizzamento indiretto) in S7 è relativamente facile e permette di riparmiare tempo per funzioni ripetitive...

Purtroppo pero' con i plc S7 (ed anche con altri plc ma non tutti !) nel caso che il puntatore generato sia errato (punta un oggetto non esistente nel programma dbw db o altro) il plc si porta in stop...

Qualcuno conosce un sistema di gestire questo errore prima che

il plc vada in stop ?

Grazie a tutti per le risposte e auguri

Link al commento
Condividi su altri siti


Se ho capito bene il tuo problema vui evitare che il PLC vada in stop nel caso ci sia un errore nel puntamento. Giusto? Se è questo che vuoi sapere, allora basta che inserisci nel tuo progetto S7 l'OB121.

Link al commento
Condividi su altri siti

Condivido il suggerimento sopra.

E' comunque buona norma effettuare, dopo la generazione/calcolo del puntatore, un controllo di validità.

Non conosco nel tuo caso il tipo di routine che stai elaborando, ma generalmente il puntatore deve lavorare in un campo ben definito, quindi, se dopo averlo calcolato, attraverso una verifica è fuori da questo campo lo di inizializza ad un valore di default, per evitare non tanto il blocco del PLC ma piuttosto elaborazioni dannose.

Link al commento
Condividi su altri siti

FabioS+Dec 30 2002, 06:42 AM-->
CITAZIONE(FabioS @ Dec 30 2002, 06:42 AM)

Grazie per tutti i suggerimenti;

So che è buona norma controllare il puntatore pero' nel mio caso sarebbe

molto complicato oltre che laborioso...è molto piu' facile correggerlo

quando rilevo un errore.

Per quanto riguarda l'ob121:

A) E' possibile programmarlo in tutte le cpu ?

B) Quale è precisamente la sua funzione ?

Grazie a tutti per le risposte.

Link al commento
Condividi su altri siti

La funzione dell'OB121 serve a non causare uno STOP del PLC nel caso sia stato fatto un errore nella programmazione ad esepio:puntatori, errori di indirizzamento o blocchi non aperti.Allinterno dell'OB è possibile risalire alla causa che ha scatenato l'intervento dall'OB121 e l'accensione del led rosso SF (se non ricordo male)della CPU. Tutte le informazioni sulla diagnostica dell'errore le puoi trovare nell . dell'S7 richiamando OB121.

Link al commento
Condividi su altri siti

Ciao a tutti..

Prima di tutto, Felice anno nuovo. Scusate per il tempo che non ho scritto ma come sapete per ora Venezuela é in una situazione molto dificile...

Ora intrando in tema:

Si pó fare una formula come cuesta per posizionamento in un area di un DB, il cuale serve come registro per il index.

Posizione= [(Nº Elem-1)(cuantita di elementi)]+off set

Posizione= [(Nº Elem*(cuantita di elementi)-(cuantita di elementi)]+off set

Essempio:

si crea un DB, é si fa un ARRAY con x elementi..

0.0 WORD OCUPATO SISTEM OFF SET

2.0 WORD OCUPATO SISTEM OFF SET

4.0 WORD ELEM[1].X OFF SET ***LONG ELEM. 8 BYTES * 8 = 64

6.0 WORD ELEM[1].Y ****POS. DISIDERATA (ESSEMPIO)

8.0 WORD ELEM[1].Z

10.0 WORD ELEM[1].W

12.0 WORD ELEM[1].X

14.0 WORD ELEM[1].Y ****POS. DISIDERATA (ESSEMPIO)

16.0 WORD ELEM[1].Z

18.0 WORD ELEM[1].W

In un FC o FB si fa il INDEX.. É si utiliza la formula cé ho datto

L #Nºelem //

L 64 // LONG. ELEM 8 BYTES * 8= 64 BITS

*I

L 64

-I

L 48 // OFF SET

+I

L AR1 // SI FA UNA CARRICA AL INDEX REGISTER...

é doppo utilizate cuesto AR1 per fare cosa si vuole..

Ciao a tutti..

Tony

:blink:

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