fiorezzz Inserito: 5 giugno 2019 Segnala Share Inserito: 5 giugno 2019 Salve a tutti In una CPU 1510SP-F ho attivato un OB30 a tempo con timing 1ms In questo OB o gestito una variabile Merker che va ON per 10ms (contando 10 chiamate OB30) e OFF per 50ms Andando a tracciare con oscilloscopio noto che ogni tanto dopo circa un 10/15 volte che viene chiamato OB30 e il Merker assume il valore 0/1 che ho programmato (rimane a ON per 10ms o OFF per 50ms) ho una pausa di circa 100ms in cui il Merker rimane OFF come se OB30 non viene chiamato Controllando poi il tempi ciclo PLC ho notato che il tempo ciclo + lungo è 77ms !!!! MA DOVE ARRIVA QUESTO "BUCO " DI 100MS ? OB30 chiama un FB con DB istanza ma che contiene dati per circa 20byte Tempo ciclo PLC min.2,8 attuale 3..4ms +Lungo 20ms (questo con O30 a 10sec senza nessuna chiamata a FB ) ..anche questi 20ms mi suonano un pò strani. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 5 giugno 2019 Segnala Share Inserita: 5 giugno 2019 Chiedere ad una 1510 di elaborare un OB a tempo ad intervalli di 1 ms, è un po' troppo. Perché non metti l'OB a 10 ms? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 5 giugno 2019 Segnala Share Inserita: 5 giugno 2019 3 ore fa, fiorezzz scrisse: Andando a tracciare con oscilloscopio noto che ogni tanto dopo circa un 10/15 volte che viene chiamato OB30 e il Merker assume il valore 0/1 che ho programmato per tracciarlo con un oscilloscopio devi pilotare un'uscita. Che uscita usi e come la scrivi? Link al commento Condividi su altri siti More sharing options...
fiorezzz Inserita: 5 giugno 2019 Autore Segnala Share Inserita: 5 giugno 2019 Uso una variabile bool dell' FB richiamato nell OB ..... perchè sto provando e perchè non ho uscite cosi veloci ..e uso il servo trace del Tia In effetti con OB30 a 10ms è (20ms ON ..50Ms Off) è + regolare sembra che non ci sia + quella pausa di 100ms e tempo ciclo max 24ms Però mi sfugge sempre il perchè ..non dovrebbe avere un timing ben preciso l'OB (al limite a scapito del tempo ciclo PLC ...) MI sorge il dubbio che usando un Merker con un tempo OB < TempoCiclo PLC il Trace non vede sempre correttamente Link al commento Condividi su altri siti More sharing options...
batta Inserita: 5 giugno 2019 Segnala Share Inserita: 5 giugno 2019 Quote non dovrebbe avere un timing ben preciso l'OB Sì, finché ce la fa. Di sicuro, con tempo di 1 ms, se apri la diagnostica ti trovi errori relativi all'elaborazione dell'OB ciclico. Link al commento Condividi su altri siti More sharing options...
fiorezzz Inserita: 5 giugno 2019 Autore Segnala Share Inserita: 5 giugno 2019 Scusa Batta ma cosa intendi ..finchè ce la fa.... Grazie Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 5 giugno 2019 Segnala Share Inserita: 5 giugno 2019 3 ore fa, fiorezzz scrisse: perchè sto provando e perchè non ho uscite cosi veloci ..e uso il servo trace del Tia Anche questo, con tempi così stretti, potrebbe dare delle indicazioni improprie. Potresti usare delle uscite analogiche, però non conoco quelle dello s7-1500, quindi non so i tempi di conversione. Con il 300 c0erano schede che convertivano in meno di 1 millisecondo, quindi con una scrittura diretta alla periferia si aveva un'indicazione abbastanza precisa per tempi dell'ordine dei 5 ms Link al commento Condividi su altri siti More sharing options...
batta Inserita: 5 giugno 2019 Segnala Share Inserita: 5 giugno 2019 Quote Scusa Batta ma cosa intendi ..finchè ce la fa.... Se non riesce ad elaborare l'OB ciclico ad intervalli di 1 ms, significa che "non ce la fa". Anche l'OB ciclico ha bisogno di un suo tempo di elaborazione, che dipende dalle istruzioni che deve eseguire. E la CPU deve fare anche altre cose, mica solo elaborare l'OB ciclico. Generalmente non si scende sotto ai 5 ms. Link al commento Condividi su altri siti More sharing options...
fiorezzz Inserita: 10 giugno 2019 Autore Segnala Share Inserita: 10 giugno 2019 Ok ma come si potrebbe fare a capire in fase di progettazione/acquisto se una determinata CPU "ce la fa o meno" ad elaborare un OB Ciclico in modo costante e ripetivo ..o esiste altro modo per fare un qualcosa ad un determinato timing (fisso e ripetibile ..) Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 giugno 2019 Segnala Share Inserita: 10 giugno 2019 35 minuti fa, fiorezzz scrisse: capire in fase di progettazione/acquisto per prima cosa bisogna osservare il dato sul tempo medio di esecuzione delle istruzioni, minore è questo tempo maggiore è il numero di istruzioni eseguibiliin determinato intervallo di tempo. Poi è necessario anche ragionare su quello che si vuole fare. Anche riducendo al minimo indispensabile le istruzioni da eseguirsi all'interno dell'OBxx a tempo, rimane il problema che un richiamo troppo freqeunte riduce praticamente a zero il tempo che la CPU potrà dedicare al resto del programma. Il processore della CPU non esegue solo il programma applicativa, questo è solo un job di tutto il lavoro che deve eseguire. Anche se gli attuali processori sono molto performanti, hanno comunque dei limiti. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 10 giugno 2019 Segnala Share Inserita: 10 giugno 2019 Negli OB ciclici si cerca sempre di non inserire routines troppo pesanti. Nei manuali si trovano anche i tempi di esecuzione delle singole istruzioni, quindi, in teoria, sarebbe possibile valutare il tempo richiesto. Nella realtà, nessuno penso si sia mai messo a fare questo calcolo. Si cerca semplicemente di non appesantire inutilmente il lavoro della CPU, e di programmare il richiamo degli OB ciclici ad intervalli "ragionevoli". Considera poi che se per il tuo compito serve veramente un richiamo ad intervalli di 1 ms, probabilmente hai sbagliato l'approccio. Magari il tuo problema richiede una soluzione diversa. Per quello che intendevi fare poi (10 ms on, 50 ms off), ti basta richiamare l'OB ciclico ogni 10 ms. Richiamarlo a frequenza 10 volte più alta non migliora la precisione, serve solo ad appesantire inutilmente il lavoro della CPU. Poi, come dice Livio, la CPU mica si deve occupare solo di OB1 e OB30, ma deve anche leggere l'immagine degli ingressi, scrivere l'immagine delle uscite, gestire la comunicazione con dispositivi remoti, gestire la comunicazione con pannelli operatore o pc per la programmazione, gestire la diagnostica. Se, ogni 1 ms, richiami l'OB30, cosa resta alla CPU per tutti gli altri compiti? Ricorda anche che la 1510 è un modello base. Link al commento Condividi su altri siti More sharing options...
ken Inserita: 10 giugno 2019 Segnala Share Inserita: 10 giugno 2019 ed è pure F (fail safe). la gestione safety richiede molte risorse. Link al commento Condividi su altri siti More sharing options...
acquaman Inserita: 11 giugno 2019 Segnala Share Inserita: 11 giugno 2019 Ma a cosa ti serve questo bit? Link al commento Condividi su altri siti More sharing options...
acquaman Inserita: 3 luglio 2019 Segnala Share Inserita: 3 luglio 2019 fiorezzz é morto? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 3 luglio 2019 Segnala Share Inserita: 3 luglio 2019 Forse ha risolto, ma pensa che farlo sapere agli altri, che hanno speso il loro tempo per aiutarlo, sia tempo perso. 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