wally Inserito: 22 agosto 2006 Segnala Inserito: 22 agosto 2006 Per una' applicazione mi serve generare un interrupt tramite ingresso digitale (4DI DC24V HF et200s)in OB 40 ho inserito le istruzioni per resettare una uscita precedentemente settata in OB1.ovviamente siccome mi serve resettare l'uscita immediatamente utilizzo l'istruzione TPAB, e fin quiniente di strano. Ho provato ha monitorare tramite un oscilloscopio a due canali sia l'ingresso che l'uscitae mi trovo una cosa che non mi aspettavo, l'uscita si spegne con un ritardo che va dai 8 mS a 19 mS rispettoall' ingresso. Leggendo le caratteristiche tecniche sul manuale della IM151-7 CPU Et200s dicono chel'interrupt ha un ritardo inferiore ai 20 mS, e questo mi andrebbe anche bene, ma io ho necessita' che ilritardo sia sempre costante, altrimenti cosa me ne faccio di un interrupt ?Il tempo di scansione del mio programma va da 14 a 22 mS.Il problema e' dovuto a questo tipo di cpu oppure e' un problema che si ritrova anche in altri tipi di cpu?Avete qualche suggerimento, ovviamente senza utilizzare schede tecnologiche che mi porterebberoad un costo aggiuntivo?Mi starebbe bene che l'uscita mi ballasse meno di 3 mS.Grazie per le vostre risposteciaowally
jumpier Inserita: 22 agosto 2006 Segnala Inserita: 22 agosto 2006 Il problema che riscontri è normale; nell'OB40 è vero che comandi l'uscita digitale ma questoNON forza la cpu a comandarla. Infatti essa verrà aggiornata SOLO a fine scansione del programma.Quindi: in OB40, oltre a gestire la tua uscita, settati anche un merker che, all'uscita dell'OB40 useraiper saltare la scansione di tutti i restanti blocchi fino alla penultima linea dell'OB1 dove resetterai la tuamemoria (per sicurezza resettala anche in testa all'OB1 ... non si sa mai a secondo della pericolositàdell'attrezzatura che automatizzi) e finalmente a fine OB1 la CPU ti aggiornerà l'uscita.Prova e fammi sapere ... io ho gestito in questo modo un posizionatore con comando tramite I/O digitali.Buon lavoro
wally Inserita: 22 agosto 2006 Autore Segnala Inserita: 22 agosto 2006 Grazie jumpier per la tua interessante risposta.Ma io non gestisco direttamente l'uscita A 38.0, ma utilizzo un bit M30.0,una volta che resetto il bit M30.0 in OB40, alla riga sucessiva (sempre in OB40) ho messola seguente istruzione :L MB30T PAB38Percio mi aspetto che l'uscita si aggiorni subito tramite l'istruzione T PAB.ciaowally
jumpier Inserita: 22 agosto 2006 Segnala Inserita: 22 agosto 2006 Si ma quand'è che la cpu trasferisce l'istruzione PAB alle uscite fisiche? Solo a fine scansione e cioè a fine OB1 . Quindi ..... mi sa che devirivedere l'architettura della tua pplicazione
Livio Orsini Inserita: 22 agosto 2006 Segnala Inserita: 22 agosto 2006 Se non ricordo male la PAB dovrebbe scrivere immediatamente l'uscita saltando i registri immagine che vengono aggiornati, quelli si, al termine del ciclo di scansione.Piuttosto io penso ch eil ritardo variabile sia dato dai ritardi Hardware dei filtri di ingresso e di uscita. Dovresti usare ingressi veloci, quelli specifici per interupt, con filtro Hw settato al minimo valore; inoltre dovresti usare un'uscita a stato solido diretta sul rack, non remotata perchè hai il ritardo del bus che oltre ad essere variabile è anche non trascurabile.
cdc Inserita: 23 agosto 2006 Segnala Inserita: 23 agosto 2006 Anche secondo me l'istruzione PAB (PAW, ...) accede direttamente alla periferica senza aspettare la fine del ciclo.Ciao
floppydisco Inserita: 24 agosto 2006 Segnala Inserita: 24 agosto 2006 Io di solito prima assegno l'uscita (es U M30.0 = A38.0), poi faccio il T PAB da immagine uscite a periferia ( L AB38 T PAB38).Se fai subito l mb30 t pab38 secondo me alla fine del ciclo riscrive l'uscita con l'immagine che non è aggiornata.
jumpier Inserita: 24 agosto 2006 Segnala Inserita: 24 agosto 2006 Non volevo dare false informazioni a "wally" ma forse ho omesso di chiedere tipo cpu e firmware ... Ad esempio con CPU 6AG1 315-2AG10-2AB0 / V2.0 ho dovuto fare come spiegato nei miei precedenti post(confermatomi poi anche dall'hotline) altrimenti picche per l'aggiornamento delle uscite ad interrupt.
bigalex Inserita: 24 agosto 2006 Segnala Inserita: 24 agosto 2006 (modificato) Concordo pienamente con quanto dice Livio .L'ingresso dell'et200s ha sicuramente un tempo di fitro (anche se basso) inoltre qualcosa (msec) si perde perchè passi attraverso una periferia decentrata .Pertanto se tu con l'oscilloscopio leggi l'ingresso al morsetto della scheda ingressi , la differenza tra l'ingresso e l'uscita è molto probabilmente data dal tempo di acquisizione e trasferimento alla cpu dell'ingresso stesso (come minimo) .Per quanto riguarda il tempo di esecuzione del comando inoltre è opportuno utilizzare un comando inserito in ob periodico (a tempo costante) .Pertanto ti consiglierei di inserire il test dell'ingresso ed il relativo comando dell'uscita in un ob a tempo periodico se non ricordo male OB35 etc. (vedi manuali Siemens).Ciaobigalex Modificato: 24 agosto 2006 da bigalex
Akira Inserita: 24 agosto 2006 Segnala Inserita: 24 agosto 2006 Concordo con Livio.Le periferie remote (tipo et200) utilizzano il bus che per quanto veloce possa essere in realtà introduce sempre dei ritardi. Confermo che le istruzioni PAx modificano immediatamente lo stato delle uscite (che vengono comunque rinfrescate alla fine della scansione con l'immagine dei processi di uscita).Se serve una reazione veramente veloce è necessario oltre a gestire l'interrupt negli appositi OB (in questo caso il 40) gestire anche le uscite con schede veloci progettate per tale scopo.ciao
walterword Inserita: 24 agosto 2006 Segnala Inserita: 24 agosto 2006 (modificato) i plc svolgono un ciclo di lavoro principalmente basato su tre sezioni:1- acquisizione input 2-elaborazione programma utente 3-scrittura output.Considera il fatto che anche se la scheda fosse sul rack del plc , e non in profibus , c'e' sempre il bus K , e veloce quanto sia non sara mai real time , comunque in pochi ms si dovrebbe poter fare che dici usando l'istruzione speciale detta sopra.Con le vecchie cpu si arrivava a tempi di scansione ciclo anche di 50 msAdesso le nuove cou sono piu veloci , ma per un programmino abbastanza normale e semplice , impiegano sempre 10-15 ms.Da quanto ho capito , l'esecuzione del OB e' velocissimo , hai solo un'istruzione di set o reset .Solo per curiosita', a cosa ti serve un rapido intervento di quesot genere , chesso ' per pilotare un asse o cosa, se la cosa non e' segreta ?ciao walterp.s.come di ce giustamente livio , bisogna tenere in considerazione i ritardi hw e filtri vari . Modificato: 24 agosto 2006 da walterword
wally Inserita: 25 agosto 2006 Autore Segnala Inserita: 25 agosto 2006 Grazie a tutti per le risposte, alcune informazioni hardware del progetto:1 - cpu IM151-7 e' praticamente una CPU tipo 313 con involucro tipo ET200s, percio' e' inserita direttamente sul bus ET200s2 - la scheda di ingresso che genera l'interrupt e' il modello High Future con filtro di ingresso = 0,1 mSL'interrupt veloce mi serve per fermare un traino di un motore pilotatoda un inverter Siemens MM440.Dopo svariate prove e leggendo il manuale della cpu in questione (tempo di elaborazione dell'interrupt< di 20 mS) mi sono convinto che con questa cpu non potevo ottenere una precisione elevatadi fermata tramite OB40 (8 mS di indecisione = +- 5 mm di indecisione sullo stop) e allora ho messouna scheda di posizionamento che avevo in casa per et200s con uscite digitali (tipo marcia veloce/lenta)per pilotare direttamente il micromaster.graziewally
walterword Inserita: 25 agosto 2006 Segnala Inserita: 25 agosto 2006 prova ad esaminare bene il drive , magari c'e' la possibilita' di gestire degli I/O veloci direttamente su di esso , con l'opportuna parametrizzazione .Ci sono dei drives per esempio che gestiscono direttamente encoders e quindi posizionamenti senz apassare dal plc.Vedi dal manuale del drive se si puo fare una cosa del genere .Molti drives incorporano funzioni svariate e funzionanti .ciao walter
wally Inserita: 25 agosto 2006 Autore Segnala Inserita: 25 agosto 2006 (modificato) Ho esaminato le funzionalita' tipo PLC del micromaster (Flip Flop, porte ANDecc. ecc.), e le ho ancheprovate, purtroppo tali funzionalita' erano svolte dal Micromaster 440 con un ciclo di 132 mS , praticamente inutilizzabili per posizionamenti precisi.Comunque adesso con la scheda nel plc per il posizionamento ho una indecisione di 1 mm e sonoa posto. ciaowally Modificato: 25 agosto 2006 da wally
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