TravelMen Inserito: 8 settembre 2006 Segnala Share Inserito: 8 settembre 2006 Slave a tutti, ho fatto una ricerca sul forum ma non ho trovato una risposta esauriente.Il mio quesito è il seguente:Ho un lad richiamato ogni 7ms e vorrei sapere come faccio a determinare quanto tempo impega un' istruzione, o come faccio a determinare quanto tempo inpiga ogni singolo rung??Spero di essere abbastanza chiaro? Link al commento Condividi su altri siti More sharing options...
Henon Inserita: 9 settembre 2006 Segnala Share Inserita: 9 settembre 2006 Se usi un SLC, nei File S2 del Sistema trovi anche i Bit-Flag che indicano se la tua SubRoutine Richimatadall' Interrupt STI, a sufficiente tempo per essere completata, prima che venga rigeneratoun nuove evento di chimata temporale.Cioè se la tua SubRoutine viene elaborata prima dei 7ms, altrimenti se il tempoper elaborarla è maggiore all' interrupt Time (Schedulato a 7 ms S2:30 e S2:2/10)viene settato il bit di OverFlow Bit S2:5/10.Penso che il tempo impiegato dalla subRoutine ad essere elaborata latrovi nella Word S2:43 (in Multipli di 10 MicroSecondi).Se usi RsLogix500 e punti sulle varie word o flag che compongono la Categoria (Status-File STI)e poi schiacci F1 ti verrà mostrato il loro significato. Se il Tempo impiegato per elaborare la SubRoutinee molto lungo, devi calcolare il tempo impiegato per elaborare le varie Istruzioni che la compongono.Potresti provare a togliere tutti i Richiami alle altre SubRoutine dal Ladder File:2, cosi verràrichiamata la sola SubRoutine dell' Interrupt STI. Oppure Richiami ciclicamente nel File:2 solo questa tua SubRoutine, per prova e verifica il tempo ciclo, guarda (S2:22 Max Time) e (S2:23 AverangeTime).Chiaramente in questa ultima prova non richiamarla anche dall' interrupt STI. Per il PLC5 vi sono 4 Livelli di Interrupt a Tempo STI 0,1,2,3, e per ognuna di queste SubRoutineC'è il tempo minimo,medio,massimo di elaborazione.Per il ControlLogix esistono le Task periodiche che fanno la funzione similare a quella della STI nel SLC/PLC5Nota: se la tua SubRoutine impiega molto tempo per essere elaborata, e non c'è sufficiente tempo,tra un interrupt e l' altro, rischi di non trovare più tempo per elaborare, il resto del programma File:2.Perciò dividi equamente il richiamo della SubRoutine STI per non appessantire eccessivamente ilGiro-logica File:2. Molte volte per suddividere le risorse di processo equamente, crea un Interrupt-Time STI Medio-piccolo 5ms, però all' interno della tua SubRoutine crea dei Bit di Scansione, per dividere in multipli di 5ms.Basta per esempio sommare continuamente 1 in una Word, e poi usa i suoi Bit per avere deimultipli binari (bit0 =5ms; bit1 =10ms; bit2 =20ms) oppure combinazioni (bit0 & bit1).Ora con questi Bit di Scansione richiama in maniera appropriata le varie componenti del Processo in modo alterno, cosi che ogni 5 ms elabori ogni singola parte del processo, ma suddiviso in 2 o 3 passatte.Non so se ho descritto bene la procedura, oppure se ho un pò pasticciato.Spero che ti sia di aiuto. Link al commento Condividi su altri siti More sharing options...
TravelMen Inserita: 9 settembre 2006 Autore Segnala Share Inserita: 9 settembre 2006 Perfettamente chiaro Henon, grazie. Il PLC in questione è un SLC, e la mia domando è nata dal fatto che ho notato il bit di OverFlow (Bit S2:5/10) alto, per diverso tempo, ed ho cominciato a sezionare la routine STI per cercare di ridurre il tempo di esecuzione.Ma provero a fare come detto da te. grazie 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