damitisi Inserito: 3 novembre 2013 Segnala Share Inserito: 3 novembre 2013 Ciao, in un programma dove è creato in ob35 una fc35 con il seguente codice: auf db17 // richiamo del db 17 l dbd 0 srd 1 t dbd 0 l dbd 4 rrda t dbd 4 l dbd 8 rrda t dbd 8 rrda l dbd 12 rrda t dbd 12 e cosi via fino a dbd 100. sempre in ob1 vi è una fc con l' instruzione: auf db 17 u dbx[md50] =m 240.0 dove in md 50 viene scritto il valore in centesimi di secondo (ovviamente con altre istruzioni per renderlo in formato puntatore) e cioè il tempo che deve trascorrere prima che m 240.0 vada a 1. Praticamente dopo varie prove ho visto che è proprio grazie alle varie rotazioni dei bit che trascorre il tempo e quando il bit scritto in md50 è come il bit che ruota nel db 17 si setta m 240.0. Non riesco e capire se queste istruzioni essendo richiamate in ob 35 ogni 100 ms e come se fossero un temporizzatore molto preciso e se effettivamente è questo il suo utilizzo non si poteva creare un temporizzatore presente sulle librerie? Questa è una macchina che dopo il tempo impostato su md50 (ovviamente con altre istruzioni per renderlo in formato puntatore)tramite un hmi fa punzonare una lamiera. Grazie Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 3 novembre 2013 Segnala Share Inserita: 3 novembre 2013 Non riesco e capire se queste istruzioni essendo richiamate in ob 35 ogni 100 ms e come se fossero un temporizzatore molto preciso e se effettivamente è questo il suo utilizzo non si poteva creare un temporizzatore presente sulle librerie? In effetti la routine di servizio dell'interrutp a tempo (OB35) è un timer preciso che non risente dei tempi di ciclo. Va usato con attenzione e solo quando è realmente necessario perchè interrompe il processo in corso con priorità elevata. I normali temporizzatori non hanno ne questa precisione, ne questa priorità. E' il programmatore che deve valutare, secondo le sue eseigenze, cosa usare. 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