Vai al contenuto
PLC Forum


Interrupt


Messaggi consigliati

Inserito:

salve, ho un problema a riguardo degli interrupt, non riesco ad abilitarli e a farli funzionare,

e nel manuale siamens non c'è scritto praticamente nulla.

Grazie mille in anticipo!


Inserita:

Gli inerrupts son legati ad OB ben precisi ed anche molto ben documentati.

Se non specifichi a quali interrupts fai riferimento è molto difficile che t si possa aiutare.

Inserita:

chiedo scusa,

intendo interrupt di processo legati all' ob 40, ora sto utilizzando una cpu 314IFM ingressi interrupt dal 126.0 al 126.3 ( non ricordo se fino al 16.3 o 126.4)

Inserita:

ciao,

314IFM è da un bel po di tempo che non ne sentivo parlare,

da quello che ricordo puoi definire tu quale sia l'indirizzo E.. da usare l'importante è rispettare il collegamento fisico sugli ingressi che suppuorta la commutazione ad alta velocità.

Inserita:

ok il problema è che li abilito tutti ma quando attivo gli ingressi non mi da l' uscita che voglio ma rimane attivo il programma dell'ob1 o dell' fc che il plc sta elaborando.

Inserita:

Hai provato a mettere un merker di traccia per verificare che il programma passa dall'interrupt? Se si come hai configurato la traccia?

Inserita:
e nel manuale siamens non c'è scritto praticamente nulla.

Diciamo che tu non hai trovato nulla, che è più corretto.

Se non hai il manuale, vai sul sito Siemens e cerca "HB_CPU312IFM_bis_318-2DP_i.pdf".

Vedrai che ci sono tutte le istruzioni necessarie per utilizzare gli ingressi di interrupt.

ok il problema è che li abilito tutti ma quando attivo gli ingressi non mi da l' uscita che voglio ma rimane attivo il programma dell'ob1 o dell' fc che il plc sta elaborando.

Qui proprio non ho capito cosa intendi dire.

Se non ci dici cosa hai scritto in OB40, difficile capire dove sbagli.

Le istruzioni base che dovresti mettere in OB40 sono le seguenti:

1) controllare se OB40 è stato avviato da un evento sugli ingressi di interrupt.

Questo si fa controllando il valore della variabile OB40_MDL_ADDR. Se è 124 (7C Hex) OB40 è stato avviato da evento su ingressi di interrupt a bordo CPU, altrimenti l'interrupt che ha avviato OB40 arriva da altri moduli.

2) una volta appurato che OB40 è stato avviato da evento su ingressi di interrupt, si deve capire su quale ingresso si è verificato l'evento.

Questo si fa leggendo la variabile OB40_POINT_ADDR. Il bit meno significativo (occhio all'allineamento dei byte) è relativo all'ingresso E126.0. Procedendo verso sinistra ci sono gli altri ingressi.

Quanto sopra lo trovi descritto alle pagine 1-44 e 1-45 del manuale.

Inserita:

Ho fatto un'applicazione simile ma su una 313C 2P ( e credo che non cambia dalla tua CPU

Confermo quanto scritto da batta

Nel mio caso avevo configurato gli ingressi a bordo CPU con inizio da 0

e con l'ingresso in interupt su I0.2

controllo che #OB40_MDL_ADDR = 0

controllo che #OB40_POINT_ADDR = 2

quindi faccio cio' che mi serve , ma stai attento poiche' se lavori sulle uscite , devi aggiornare ( in OB40 ) le uscite fisiche

esempio :

il mio interupt fermava un motore con contattore collegato all'uscita Q3.5

quindi in OB 40 facevo il reset di Q3.5

poi il MOVE di QB3 su PQB3 ( sposto immagine delle uscite su uscite fisiche )

Ciao

Mi correggo

l'input di interrupt era su I1.1

e comunque l'indirizzo da OB40 e' come scritto sopra 0 e 2

Ciao

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