Vai al contenuto
PLC Forum


Interrupt siemens s7 300 ,cerco esempi di applicazioni


Messaggi consigliati

Inserito:

Salve ragazzi , sto studiando interrupt di processo sia a input da ob 40 a ob 47 e quelli a orologio , da ob 30 a ob 37 se non erro , ho provato a applicarli sul mio pannello usando tra l'altro ingressi senza filtri (L126.0) e ho paramentrizzato su un fronte di salita , il risultato che ho ottenuto e sempre lo stesso di ogni esperimento, non me funziona niente , la cpu è una 314 ifm , io volevo interrompere una funzione intera con un input , hi creato un ob 40 è scritto il segmento con un contatto NO (l126.0) e un call fc ma non succede niente , un altra cosa che non capisco che sul manuale dice che tutti li ob di interrupt sono indipendenti , poi salta fuori dicendo che è necessario l'uso del ob 40 per gestire li ob 41 42 43 44 45 46 47 , e qua mi viene il panico , perché penso che devo creare un ob 40 solo per la gestione , e le effettive funzioni di interrupt scriverle sul ob 41, mi potete spiegare meglio questa storia ragazzi, inoltre volevo chiedervi se siete così gentili da scrivermi due piccoli programmi uno sul interrupt a orologio e uno su li interrupt a input , chiaramente vi dico graZie in anticipo ciao ragazzi ancora grazie

Inviato dall'app. Mobile di PLC Forum da iPhone6,2


Inserita:

Mi scuso per gli orrori grammaticali commessi sul messaggio #1 , mi manca sempre la voglia di rileggere quello che scrivo, Torniamo agli interrupt , volevo comunicarvi che sono riuscito interrompere per la prima volta un merker , infine ho dedotto che non posso interrompere funzioni intere , ne uscite fisiche , ma solo merker , inoltre io ho collegato un interruttore sul in l126.0 , la cosa più strana che non riesco capire è che quando setto l'input fisico da interruttore ,sul programma va a contare solo del fronte di salita , quindi io posso lasciare il mio interruttore nello stato 1 , e se provo far ripartire il programma lui riparte senza nessun problema ,io credevo che li ob 40 servissero per delle emergenze ma evidente mi sbagliavo, ora vorrei provare quelli a schedulazione ma non capisco come utilizzarli ,domani proverò ad applicarmi, volevo chiedervi se la mia piccola relazione su questi ob 40 è esatta, grazie notte

Inviato dall'app. Mobile di PLC Forum da iPhone6,2

Gianmario Pedrani
Inserita:

Ciao..

Credo che tu abbia un po di confusione.. Un interupt è uno stato del plc in cui la cpu viene avvertita in tempo quasi zero che in ingresso ha cambiato il suo stato oppure un contatore raggionge il set eccecc.

A questo punto la cpu salva il puntatore che scorre il programma e le varie variabili nella memoria di stack ed eseguie per una scansione macchina ob40. all'uscita dall'ob 40 riprende il programmma normalmente.

il fatto che tu voglia fermare porzioni di codice è fattibile ma tieni presente che queste vengono congelate quindi se hai un uscita a valore 1 quella rimane sempre a 1 ( quindi il fatto di congelare blocchi di codice è una tecnica che a mio

avviso poco pulita in termini di programmazione ed a me non piace.) nell'interfaccia del ob 40 puoi anche sapere e discriminare quale sia l'ingresso che ha generato la chiamata.

gli ob a tempo come ad esempio il famoso ob35 viene richiamato con un tempo ben preciso che se non viene cambiato è di 100ms dalla cpu in modo asimmetrico al ciclo del programma, di solito viene usato per richiamare

i campionamenti dei blocchi pid

spero di non averti confuso di piu

ciao

Inserita:

Ciao e grazie della risposta , praticamente io ho inteso nella maniera più sbagliata a cosa serve un interrupt, da quello che ho capito è come una supervisione dei segmenti ? Cioè riesce capire in un tempo ridotti il minimo cambiamento, giusto ? usarlo per interrompere funzioni non è il suo uso appropriato , grazie

Inviato dall'app. Mobile di PLC Forum da iPhone6,2

Inserita:

da quello che ho capito è come una supervisione dei segmenti ?

In senso generale, non solo con Siemens, i processi di interupt servono per lanciare una routine veloce, scatenata da un evento, che deve essere eseguita immediatamente senza aspettare lo svolgersi regolare del task in corso.

Nei controlli numerici, per esempio, è spesso usata per leggere al volo le quote degli assi durante un tastaggio pezzo tramite una sonda.

Funziona così (come ti ha già spiegato Gianmario):

Durante l'esecuzione regolare del programma, in qualsiasi punto esso si trova, arriva un input prioritario. Il sistema operativo, a basso livello, interrompe lo svolgimento regolare e lancia la routine di interupt associata al suddetto input.

Finita la routine prioritaria, il programma riprende da dove era stato interrotto.

Ma non devi vederla come un "congelamento" dell'esecuzione, bensì come l'esecuzione di un processo prioritario su tutti gli altri che non influisce sugli altri processi in esecuzione che vengono in ogni caso eseguiti in realtime.

Naturalmente nella routine di interupt è buona norma non mettere operazioni lente o cicli prolungati perchè, nei plc dotati di watchdog, ciò potrebbe portare allo sforamento del tempo di ciclo con conseguenti errori di sistema.

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