Claudio Fornasiero Inserito: 6 ottobre 2004 Segnala Share Inserito: 6 ottobre 2004 Ciao a tutti!!!a qualcuno e' mai capitato di di avere un asincronismo temporale utilizzando l'interrupt a tempo OB35 (tempo 5ms) con una cpu313C?Mi spiego meglio, all' interno dell' interrupt elaboro una camma ,la quale viene poi appogiata ad una uscita statica del plc (A124.0).Premetto che all' inizio dell' OB35 leggo i valori dall' AB124 e li trasferisco in periferia PAB124.Eppure collegandomi con l'oscilloscopio osservo che l'onda quadra (camma) si sposta nel tempo, e questo e' accetabile, ma a volte arriva anche a 12/15 ms, mentre al massimo dovrebbe stare all'interno del tempo ciclico dell' OB35 cioe' 5ms.Questo mi comporta dei grossi problemi nell'applicazione che sto seguendo.Qualcuno ha un idea del perche'..... Grazie!! e ciao Link al commento Condividi su altri siti More sharing options...
dago_ Inserita: 6 ottobre 2004 Segnala Share Inserita: 6 ottobre 2004 Leggi forse da EB124 ? In questo caso dovresti provare a leggere dalla PEB124. Link al commento Condividi su altri siti More sharing options...
gramma Inserita: 6 ottobre 2004 Segnala Share Inserita: 6 ottobre 2004 CiaoChe io sappia, gli interrupt della Siemens sono molto precisi, se si 'spostano' di oltre 2 volte il loro tempo,c'è qualcosa che non va.Prova a generare uno strobe in OB35 (UN Mx.y = Mx.y) e collegalo ad un'uscita, poi scrivi tutto il byte delle uscite con PAB.... (dopo aver fatto le dovute operazioni OW e UW). Se tutto va bene, dovresti avere ques'uscita che oscilla con frequenza doppia al tempo di interrupt.Sono d'accordo con DAGO, probabilmente tu leggi EW, che viene aggiornata con la scansione, mentre invece devi leggere PEW che è diretta.Facci sapereCiao. Link al commento Condividi su altri siti More sharing options...
Claudio Fornasiero Inserita: 6 ottobre 2004 Autore Segnala Share Inserita: 6 ottobre 2004 Sto lavorando sull' uscita A124.0, quindi carico la merker word AB124 con un load e la trasferisco in periferia sulla PAB124;no mi serve caricare il merker d'ingresso PEW perche' non lo uso (con l'oscilloscopio analizzo il segnale d'uscita.) Per Gramma, si ho realizzato un clock(con tempo 100 ms) all'interno di OB35 e l'uscita del clock trasferita sull'uscita statica, ma cio' non ha cambiato il risultato, si aveva comunque l'oscillazione del segnale del tutto casuale, il fronte di discesa del segnale differiva dal precedente anche di 15ms.Ho telefonato alla Siemens e non mi ha negato il fatto ,suggerendomi di allegerire l' OB1, ma questo non ha portato a risultati utili.Ciao!!!! Link al commento Condividi su altri siti More sharing options...
dago_ Inserita: 6 ottobre 2004 Segnala Share Inserita: 6 ottobre 2004 carico la merker word AB124 con un load e la trasferisco in periferia sulla PAB124 (non capisco). Non sara' che il codice contenuto nell'OB35 impiega piu' di 5ms ad essere eseguito ? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 6 ottobre 2004 Segnala Share Inserita: 6 ottobre 2004 Prima di tutto una notizia di servizio. Ti ho spostato il post nel forum corretto. Usandando il forum appropriato ci sono più probabilità di ottenere risposte corrette.Veniamo al problema specifico. Due cose. Non sono sicuro al 100% ma sei al limite con il tempo di interruzzione. Secondo, ed è il più importante, c'è un tempo di ritardo HW sulle uscite. Ritardo che non è costante, ma dipende dal carico, temperatura, e altri parametri. Se ricerchi in questo forum c'è stata una discussione recente sui tempi di ritardo della periferia HW. Io quando voglio essere sicuro della misura di un tempo di ciclo uso scrivere direttamente un valore alto e poi uno basso in un'uscita analogica. Oltre a essere più veloce è siscuramente costante. Prova a generare una marca in qquesto modo, con questa potrai verificare se le variazioni sono dovute al timer o alla periferia. Link al commento Condividi su altri siti More sharing options...
emanuele.croci Inserita: 6 ottobre 2004 Segnala Share Inserita: 6 ottobre 2004 sparo: hai provato a togliere eventuali controlla-comanda variabili, blocchi visualizzati online o a spegnere il supervisore? (eventuale problema di comunicazione).2a prova: se metti il tempo a 10ms cosa fa?ciao, Emanuele Link al commento Condividi su altri siti More sharing options...
Gabriele Corrieri Inserita: 6 ottobre 2004 Segnala Share Inserita: 6 ottobre 2004 Ciaol'assegnazione dell'uscita falla con PAB 124 e poi dimmi se non resta a tempo di interrupt.Passando dall' immagine di processo delle uscite è normale il fenomeno da te indicato.Ciao Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 6 ottobre 2004 Segnala Share Inserita: 6 ottobre 2004 (modificato) Per Gramma, si ho realizzato un clock(con tempo 100 ms) all'interno di OB35 e l'uscita del clock trasferita sull'uscita statica, ma cio' non ha cambiato il risultato, si aveva comunque l'oscillazione del segnale del tutto casuale, il fronte di discesa del segnale differiva dal precedente anche di 15ms.Gramma ti ha detto di realizzare uno strobe ciclico, con 2 istruzioni, non di usare un timer, secondo me l'imprecisione di 15ms è dovuta alla somma dell'errore del timer + o - i 5ms di OB35 (Se il timer scatta quando ob35 è all'inizio allora farà in tempo a emettere l'uscita, altrimenti lo farà alla successiva elaborazione di OB35).Prova a fare come ti dice Gramma:UN Mxxx.y= Mxxx.yL MB xxxT PAB 124E poi collega l'oscilloscopio all'uscita 124.y, l'uscita deve cambiare di stato ogni 5ms.Nota: La frequenza non è "doppia al tempo di interrupt" ma la metà di 1/tempo_interruptDovresti usare le uscite veloci (la 313C ne ha 4) che commutano in 0.4ms su carico ohmico (le uscite normali hanno una fMax di soli 100Hz !)carico la merker word AB124 con un load e la trasferisco in periferia sulla PAB124Questo cosa significa ? Che magari prepari i valori delle uscite in OB1 e successivi blocchi (=A124.x) ,elaborati magari ogni 10ms, e pensi di accelerare il trasferimento (L PAB124 / T PAB124) in OB35 elaborato ogni 5ms ?Se è così (spero di no) il ragionamento è sbagliato, in quanto al tempo di ob35 devi sommare anche una porzione variabile del tempo di ciclo di Ob1 e derivati. Modificato: 6 ottobre 2004 da JumpMan Link al commento Condividi su altri siti More sharing options...
FabioS Inserita: 7 ottobre 2004 Segnala Share Inserita: 7 ottobre 2004 Non mi è chiaro il funzionamento, forse mi è sfuggito qualche particolare.La camma che elabori attivando l'uscita, è un ingresso del PLC, perchè in tal caso devi aggiornare l'immagine di tale input all'interno dell'OB35. Comunque qualsiasi cosa sia a darti il trigger per l'uscita la devi elaborare all'interno dell'OB35 aggiornando all'inizio qualsiasi PEW ti serva. Inoltre non usare (come già suggerito) timer, perchè introdurrebbero un errore che potrebbe essere pari al tempo di interrupt di OB35.Perchè aggiorni l'immagine dell'uscita all'inizio del OB35. Se elabori l'uscita all'interno dell'OB35 (e DEVI assolutamente farlo qui come suggerito da JumpMan), questo aggiornamento dovresti (DEVI) farlo alla fine. Link al commento Condividi su altri siti More sharing options...
gramma Inserita: 7 ottobre 2004 Segnala Share Inserita: 7 ottobre 2004 Ciao.Come hanno scritto JumpMan e Livio, devi usare le uscite veloci della CPU313C perchè le altre hanno un ritardo (hardware) variabile. Per essere sicuro che il problema non derivi (come abbiamo supposto tutti) da un'arrata lettura del banco (byte) di uscite (lettura che sicuramente ti serve per non influenzare le altre uscite del byte AB124 quando modifichi la A124.0), , prova a non usare (solo per il momento, per prova) tutte le uscite AB124, usa solo A124.0 ed azzera tutto il byte in OB35 (se ben ricordo, da 124.0 a 124.3 sono veloci)Comunque, per la 313C, un interrupt a 5ms è davvero al limite!Se il tuo blocco in OB35 dovesse impegare più di 5ms per l'esecuzione, la CPU andrebbe in Stop. Modificare OB1 o il programma (come ha detto l'assistenza siemens) non ha alcun senso perchè gli interrupt servono proprio a non essere influenzati dal tempo di cilo. quando un interrupt viene chiamato, l'esecuzione del programma viene interrotta, qualunque sia il suo stato (amenochè non sia in esecuzione un interrupt di livello maggiore, che però tu non puoi gestire).Però mi sorge un dubbio: Dici che stai elaborando una camma, e l'uscita che usi è il risultato di un'aleborazione di un ingresso. Perchè non metti in interrupt quell'ingresso (da configurazione hardware -> DI26/DO16 spuntando la casella 'interrupt di processo con -freonte di salita/fronte di discesa), ed elabori il tuo programma in OB40 anzichè in OB35 che ti introduce un ritardo minimo di 5ms? Ma forse non ho capito bene il problema.Se vuoi essere sicuro al 100%, segui il consiglio di Livio: scrivi alternativamente (inOB35) due valori uno basso e uno alto su un'uscita analogica (quelle hanno un ritardo pressochè costante), poi misura con l'oscilloscopio.Ciao. Link al commento Condividi su altri siti More sharing options...
Slims83 Inserita: 7 ottobre 2004 Segnala Share Inserita: 7 ottobre 2004 Modificare OB1 o il programma (come ha detto l'assistenza siemens) non ha alcun sensoe se il programma in OB1 ha un ciclo di 15 ms x esempio!?! non influenza comunque OB temporale?se cosi fosse il programma ( in OB1 ) si rallenta ulteriormente perchè viene interrotto 3 volte da OB35, giusto? Link al commento Condividi su altri siti More sharing options...
gramma Inserita: 7 ottobre 2004 Segnala Share Inserita: 7 ottobre 2004 Esatto.Il prgramma in OB viene rallentato (o meglio, la sua esecuzione richiederà più tempo) perchè viene eseguita una o più volte la routine in OB35.L'esecuzione degli interrupt (si chiamano interrupt proprio per questo) è assolutamente indipendente dal programma, essi vengono eseguiti ogni xxx ms, non quando c'è tempo!Ciao. Link al commento Condividi su altri siti More sharing options...
marco75_roma Inserita: 11 giugno 2008 Segnala Share Inserita: 11 giugno 2008 Oggi durante la stesura di un progetto illuminotecnico ho notato un distacco notevole tra la mia progettazione e quella dell'installatore, vorrei gentilmente una vs verifica ai miei risultati : ambiente : 22x14m pareti e soffitto chiaroaltezza controsoffitto :3,5mdestinazione d'uso : uffici - ambiente unicoLivello illuminamento medio richiesto : 500lxaltezza installativa : in controsoffittoutilizzando corpi illuminanti 4x18w con ottiche per videoterminali e tubi da 18w con flussi da c.ca 1000-1300lm ( totale 5400lm a corpo illuminante ) a me risultava un totale di c.ca 50 corpi illuminanti per ottenere 490lx medi di illuminamento.L'installatore - MI DICONO - ha raggiunto l'illuminamento richiesto con 28 corpi illuminanti ( 4 file x 7 colonne ) sempre 4x18wHo spulciato i cataloghi delle sorgenti luminose ma oltre i 1350 lumen ( t5 ) a tubo non ho trovato nulla, esiste qualcosa di + performante?a me sembra strana la differenza di lampade......potreste verificare i miei risultatiANTICIPATAMENTE RINGRAZIO Link al commento Condividi su altri siti More sharing options...
marco75_roma Inserita: 13 giugno 2008 Segnala Share Inserita: 13 giugno 2008 niente verifica? 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