sfinge Inserito: 15 dicembre 2011 Segnala Share Inserito: 15 dicembre 2011 Salve a tutti,su un progetto vengono utilizzati 2 contatori veloci (canale 0 e 1) entrambi progettati con il compito di generare interrupt in OB 40 con raggiungimento del valore di conteggio.Il contatore 1 a differenza dello 0 viene avviato sulla lettura di una fotocellula (in OB35).I conteggi sembrano funzionare correttamente ma in maniera random (in 2000 pezzi prodotti vi sono 4-5 errori di conteggio)sembra che il numero 1 venga avviato in anticipo.Mi rendo conto non sia facile capire quello che succede:Lettura anticipata imprevista della fotocellula,o accavallamento degli interrupt?In OB40 vengono letti i bit relativi agli interrupt del contatore 0 e 1 (bit 3 canale 0 e bit 7 canale di OB40_POINT_ADDR)quesi bit vengono resettati nella riga successiva alla fermata del motore relativo: L #OB40_POINT_ADDR T MD 125 HSC1 Interrupt Event U M 125.7 R A 2.1 Clear HSC1 Interrupt Event U M 125.7 R M 125.7 HSC0 Interrupt Event U M 125.3 R A 2.0 Clear HSC0 Interrupt Event U M 125.3 R M 125.3 Outputs Refresh //Uscite cablate L AB 2 T PAB 2Grazie per l'attenzione Link al commento Condividi su altri siti More sharing options...
bleny Inserita: 18 dicembre 2011 Segnala Share Inserita: 18 dicembre 2011 Ciao Sfinge,se ho capito bene il funzionamento credo che il problema sia la lettura della fotocellula nell'OB35.L'OB 35 non reagisce all'interrupt di processo (come l'OB40), ma è un interrupt ciclico che viene richiamato periodicamente secondo un tempo impostato nelle proprietà della cpu.Di conseguenza se il tempo in cui la fotocellula è ON e l'esecuzione dell'OB35 non si sovrappongono perdi alcuni impulsi di conteggio.Ciao.Massimo Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora