Vai al contenuto
PLC Forum


Cpu313C-2Dp E Problema Interrupt


sfinge

Messaggi consigliati

Salve a tutti,

macchina dal cliente,con fotocellula collegata su ingresso E0.6 dichiarato come ingresso ad interrupt e gestito in OB40.

La fotocellula legge un merker su un film plastico e genera un'interrupt ogni lettura.

Da quell'istante viene programmato una nuova quota per un contatore veloce che funziona regolarmente.Ogni lettura viene salvata in un registro ad array.

Il problema che ultimamente ogni 1300 pezzi (circa un'ora di lavorazione)ma comunque non in maniera sempre costante, viene registrata una lettura errata spostata anche di 2cm rispetto alle altre.

Può un interrupt essere memorizzato e processato in ritardo??

E' influente il tempo di ciclo in OB1? (68MS)?

Grazie anticipatamente.

Link al commento
Condividi su altri siti


Può un interrupt essere memorizzato e processato in ritardo??

Si! Tutti gli interrupts hanno un tempo di latenza variabile. Questo tempo è funzione della priorità dell'interrupt e dal momento in cui l'interrupt viene riconosciuto.

Al riconoscimento di interrupt, come operazione minima, il processore termina l'istruzione in esecuzione poi esegue la routine di servizio dell'interruzione. Se ci sono più interruzioni in concomitanza il prcessore parte con l'interrupt a più altra priorità ed a seguire tutti gli altri.

Atenzione che in un PLC si conosce solo la parte di software utente, tutto il firmware di sistema è (quasi) sconosciuto, quindi potrebbero esserci interrupts anche pesanti che, casualmente, interferiscono con il tuo. Per esempio se è installata una rete profibus, questa potrebbe anche causare inconvenienti di questo tipo sugli interrupts di processo.

Il ciclo di OB1, se hai fatto le cose come si deve, non può e non deve influenzare il tempo di latenza degli interrupts di processo.

Non dai alcun dato in ordine alla velocità quindi è impossibile valutare a cosa corrispondano, in termini di tempo, i circa 20 mm di errore.

Link al commento
Condividi su altri siti

Buona sera Sig.Livio,

la velocità di trascinamento è attorno a i 500mm/s e uno degli errori più grandi registrati e all'incirca di 20mm,pertanto se non ho fatto male i conti l'errore temporale è di 40ms.

E' possibile dare una priorità inferiore all'interrupt di comunicazione, (Profibus) o comunque dare una minore importanza alla velocità profibus dove non sono in questo caso necessarie risposte veloci?

Grazie

Saluti

Link al commento
Condividi su altri siti

Si a quella velocità son proprio 40 ms! Mi sembra un tempo di latenza esagerato. Significherebbe o più di un interrupt a maggior prorità in coda, oppure molto traffico sul bus di campo, o una perversa combinazione di entrambi.

Da almeno una decina d'anni non uso S7-300 quindi non prendere per oro colato la mia affermazione, però penso che non si possa fare molto a livello di priorità. Credo che la comunicazione sul bus di campo sia comunque prioritaria.

Personalmente cercherei di risolvere il problema in altro modo. Userei la marca sul film per agire direttamente in Hw sul preset del contatore. In questo modo non avrei nessun problema di latenza, solo il ritardo Hw che è questione di us.

Link al commento
Condividi su altri siti

Grazie Sig.Livio della risposta,

In effetti si è tentato di utilizzare il gate HW per bypassare il problema,(veniva sempre generato un interrupt su lettura merker e abilitata un'uscita che a sua volta alzava il gate HW).Ma il problema è rimasto perchè comunque probabilmente la latenza dell'interrupt è rimasto.

Ho pensato di utilizzare un vecchio flip flop elettronico settatto dall'impulso della FTC con l'uscita che setta il gate HW.

In pratica il PLC non gestisce più la lettura tacca ma è il flip-flop stesso che memorizza la lettura tacca con ritardi di us.

Forse si proverà il sistema...e poi le farò sapere.

Grazie 1000

Saluti

Link al commento
Condividi su altri siti

(veniva sempre generato un interrupt su lettura merker e abilitata un'uscita che a sua volta alzava il gate HW).

Non so quale scheda di conteggio stai usando, però dai ricordi che ho delle FM350 (potrei anche sbaglairmi però) credo sia possibile copiare la quota in un registro e resettare direttamente da impulso esterno il conteggio. Se è così ti basta mandare l'impulso sia all'ingresso di interrupt che all'ingresso specifico del contatore.

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