darius77 Inserito: 8 marzo 2008 Segnala Share Inserito: 8 marzo 2008 Sapreste indicarmi come creare un filtro su ingressi o uscite analogiche per avere il segnale il + possibile stabile?Oppure se siemens a gia dei blocchi che fanno questa funzione?grazie ciao darius Link al commento Condividi su altri siti More sharing options...
floppydisco Inserita: 9 marzo 2008 Segnala Share Inserita: 9 marzo 2008 Ciao,dipende dal tipo di segnale che hai.Puoi fare una media matematica, per es fai x letture e ogni volta le sommi in un buffer poi raggiunto il nr lo dividi. E' semplice come codice, ma ha lo svantaggio che hai il valore aggiornato dopo x campionamenti.Io spesso uso un filtro, non so come si chiama, ma con ingresso a gradino, restituisce un andamento come la tensione di carica di un condensatore.E' molto efficace per variabili che hanno picchi brevi, ed hai un valore aggiornato ad ogni ciclo. (lo uso sempre per le pressioni..) ed il codice è veramente semplicissimo:qui c'è il calcolo del fattore+1 perchè l'ho messo impostabile. Se lo fai fisso sostituisci le word con delle costanti.qui è in formato REAL, ma lo puoi fare anche in INTLa formula utilizzata èFormula filtro:Out= (K*out_Prec + In)/K+1dove K è il fattore di filtro// fatore di filtro // fattore 0 = nessun filtro // fattore 0,5= raggiunge il 98% dopo 4 cicli // fattore 1 = raggiunge il 98% dopo 6 cicli // fattore 50 = raggiunge il 98% dopo 200 cicli // calcolo smooth+1 L DB40.DBD 32 // fattore di filtro L 1.000000e+000 +R T DB40.DBD 36 // fattore +1 // filtro L DB40.DBD 32 // fattore di filtro L DB40.DBD 20 // La tua uscita *R L #Readout // Il tuo ingresso +R L DB40.DBD 36 // fattore+1 /R T DB40.DBD 20 // La tua uscita Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 9 marzo 2008 Segnala Share Inserita: 9 marzo 2008 C'è un sistema semplice, che ha un ritardo solo iniziale, è conosciuto come media scorrevole o anche "slide window" (finestra scorrevole). Prepari un vettore (array) di "n" elementi (10 p.e.) lo riempi. Quando il vettore è pieno ricominci da capo. Cerco di chiarire meglio esemplificando. Assumiamo che n = 10, quindi sarà X[9]. Inizi scrivendomil valore in X[0], poi continui con scrivendo in X[1] econtinui così sino a scrivere in X[9]. A questo punto l'array è pieno sommi e dividi per n e ottieni la media. La prossima scrittura la fai in X[0]. Hia creato una coda circolare perchè il tuo array è sempre pieno, ma aggiornato con gli ultimi 10 valori, quindi puoi continuare ad estrarre la tua media dopo il ritardo iniziale. Un ingresso a gradino viene visto come una rampa di "n" passi. Link al commento Condividi su altri siti More sharing options...
darius77 Inserita: 9 marzo 2008 Autore Segnala Share Inserita: 9 marzo 2008 qui c'è il calcolo del fattore+1 perchè l'ho messo impostabile. Se lo fai fisso sostituisci le word con delle costanti. qui è in formato REAL, ma lo puoi fare anche in INT La formula utilizzata è Formula filtro: Out= (K*out_Prec + In)/K+1 dove K è il fattore di filtrook, ma il fattore+1 da dove lo prendi? e come fai a determinare il conteggio di cicli di plc tramite un fattore?E' interessante xche' devo gestire delle pressioni da pompe variabili , e mi sarebbe molto utile.ciao e grazie Link al commento Condividi su altri siti More sharing options...
floppydisco Inserita: 9 marzo 2008 Segnala Share Inserita: 9 marzo 2008 ok, ma il fattore+1 da dove lo prendi?il fattore nel mio caso è impostato da un pannello, che so 1,2... 50 quello che vuoi. Fattore+1 è semplicemente calcolato, appunto come "fattore" e poi gli sommo 1.e come fai a determinare il conteggio di cicli di plc tramite un fattore?Non so se c'è un calcolo, io l'ho sperimentato inserendo la formuletta in un foglio excel e poi ho provato con differenti fattori. Ti ho indicato alcuni valori come traccia, poi tu scegli il valore che meglio fa al caso tuo. Se devi solo visualizzare, e non hai problemi di tempo, puoi mettere 50-70 così hai una bella lettura stabile. Se devi fare regolazioni, prova 1-10. Link al commento Condividi su altri siti More sharing options...
floppydisco Inserita: 9 marzo 2008 Segnala Share Inserita: 9 marzo 2008 Ok ti faccio un esempio pratico:dato Out= (K*out_Prec + In)/K+1diciamo inizialmente la lettura vale 0, ho in uscita 0.Supponiamo Fattore=1 (ovviamente fattore+1 =2!)istante 1 IN=0 Out=0istante 2 IN=100 out=50istante 3 IN=100 out=75istante 4 IN=100 out=87,5istante 5 IN=100 out=93,75istante 6 IN=100 out=96,87ecc ecc Link al commento Condividi su altri siti More sharing options...
Gabriele Riva Inserita: 9 marzo 2008 Segnala Share Inserita: 9 marzo 2008 floppydisco meglio mettere le parentesi finali, altrimenti il tutto viene diviso per K e non funzionadato Out= (K*out_Prec + In)/(K+1) Link al commento Condividi su altri siti More sharing options...
DrEaMWiSh Inserita: 10 marzo 2008 Segnala Share Inserita: 10 marzo 2008 Io lo faccio in Un'altro modo. Funziona con pocchi merker.Lo uso per stabilizzare le celle di pressione,celle per i KG,anche a stabilizzare un ingresso analogico con picchi.Ti serve una funzione RANGE e un temporizzatore.Hai finito tutto.Funziona cosi.Il linguaggio e KOP in GE FANUCNon ho sotto mano Step7. Stassera te lo scrivo in Step7 KOPUsi un 5 FISSO , questo e la toleranza che hai su quell ingresso.Quindi Hai il tuo ingresso e +5 oppure -5 di valore che tu prendi a fuoco.Se la AI si trova in quell campo di PIU 5 e MENO 5 . Non verra aggiornata la lettura che e TEMP_AI.Quindi se tu hai 100 sul AI , e si cambia di continuo varia tra 98 e 103,la lettura sara sempre 100 nel TEMP_AI.Se al improvizo scendera a 0 oppure a 200.Deve rimanere superiore di quello per 1secondo.Vedrai che ho usato un temporizzatore in milisec.Quindi se e Fuori RANGE di 105 oppure 95 e resta tale per 10milisec Allora verra aggiornata la lettura attuale dal AI in TEMP_AI.Di conseguenza tu leggerai 200 nel TEMP_AI quindi il RANGE sara poi 205 e 195. Quindi la uscita del range si eccita di nuovo e disecita il tempo.Cosi avrai un stabilizzatore anche in secondi oltre che in valore di 5.Puoi cambiarlo con registri sia il tempo che la toleranza 5.Se hai bisogno te lo scrivo in Step7.Funzione RANGE non cè mi pare in Step7 ma ti fai delle bobine con delle comparazioni.Per essempio Minore o Uguale fai una bobina e dopo fai Maggiore e uguale per un altra merker.Le usi in paralello per fare La matematika del range! Spero di essere stato chiaro. L'italiano non è la mia stato la mia parte forte. Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 10 marzo 2008 Segnala Share Inserita: 10 marzo 2008 Io di solito faccio così:L #IngressoFiltro L #UscitaFiltro -R L #K /R T #Tmp1 L #UscitaFiltro +R T #UscitaFiltroComunque ci sono molte altre discussioni. Link al commento Condividi su altri siti More sharing options...
darius77 Inserita: 10 marzo 2008 Autore Segnala Share Inserita: 10 marzo 2008 Grazie del vostro interesse , mi avete dato molte info ciao darius Link al commento Condividi su altri siti More sharing options...
DrEaMWiSh Inserita: 11 marzo 2008 Segnala Share Inserita: 11 marzo 2008 Trovato. Non puoi farlo con il filtro di temporizzatore per un semplice motivo.Immagina che hai un ingresso che oscilla da 0 a 100 pero il suo valore e 99 sempre fisso...e ogni tanto va a zero.Quindi se in quell momento che tu lo filtri con un timer...per sfiga becca proprio quell momento di zero?Vai a campionare un valore sbagliato.Questo e meglio.Lo testato con il simulatore.Funziona che è una meraviglia! Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 11 marzo 2008 Segnala Share Inserita: 11 marzo 2008 (modificato) Dreamwish, il tuo codice non è un vero e proprio filtro, funzionerà anche... ma presenta alcuni difetti:Tu congeli l'uscita se l'oscillazione in ingresso si mantiene entro certi valori (+/-5)- Se l'osclillazione è maggiore (fuori da questa finestra) viene riportata in uscita senza alcun filtro- Se l'osclillazione è nella finestra l'uscita rimane congelata in un valore casuale del range- Hai un timer di campionamento di 1 sec. per cui l'uscita sarà sempre a gradini, può andar bene per un display ma non per contollare un processo.Ciao Modificato: 11 marzo 2008 da JumpMan Link al commento Condividi su altri siti More sharing options...
Luca Bab Inserita: 11 marzo 2008 Segnala Share Inserita: 11 marzo 2008 Quoto il suggerimento di Liviogia' usato in svariate applicazioni con buoni risultati ( facendo pero' scorrere in basso le letture ad ogni nuova lettura , solo per avere le ultime letture in ordine )l'unica modifica e' quella di tagliare i picchi bassi o alti se il tuo sistema da' delle letture errateLuca Link al commento Condividi su altri siti More sharing options...
iaki Inserita: 16 giugno 2009 Segnala Share Inserita: 16 giugno 2009 Ciao a tutti, mi sta venendo un terribile dubbio sulle correnti circolanti sul neutro, mi spiego meglio:O un interruttore magentotermico differenziale 4P con cui devo alimentare un binario elettrificato per illuminazione.Ho 7 A a fase, per cui il binario avendo come portata per conduttore di 16A sono apposto.Pero che correnti avrei sul neutro?LA somma delle 3 fasi e cioe 21A? Link al commento Condividi su altri siti More sharing options...
massimo1975 Inserita: 16 giugno 2009 Segnala Share Inserita: 16 giugno 2009 Nella distribuzione trifase la corrente circolante sul nutro non è la somma algebrica delle fasi ! ma bensì la somma vettoriale infatti se avessi carichi perfettamente equilibrati sulle tre fasi la corrente circolante sul neutro sarebbe uguale a ZERO.Per chiarimentihttp://it.wikipedia.org/wiki/Trifase Link al commento Condividi su altri siti More sharing options...
iaki Inserita: 16 giugno 2009 Segnala Share Inserita: 16 giugno 2009 Grazie 1000 delle info, sono un po a digiuno di elettrotecnica. Link al commento Condividi su altri siti More sharing options...
Sempronio1960 Inserita: 16 giugno 2009 Segnala Share Inserita: 16 giugno 2009 Per binario elettrificato cosa intendi? Un binario ferroviario con trazione elettrica a 3 kV? Nel caso non devi assolutamente collegarti al binario, altrimenti c'è il rischio di portare sulla bassa tensione il 3 kV in caso di guasti. Link al commento Condividi su altri siti More sharing options...
iaki Inserita: 16 giugno 2009 Segnala Share Inserita: 16 giugno 2009 No un binario di illuminazione, tipo l'omnitrak Fosnova per capirci. Link al commento Condividi su altri siti More sharing options...
Benny Pascucci Inserita: 16 giugno 2009 Segnala Share Inserita: 16 giugno 2009 Per binario elettrificato cosa intendi?Ciò che si intende quando ci si riferisce a un binario elettrificato.... , iaki ha usato il termine tecnico giusto!Un binario ferroviario con trazione elettrica a 3 kV? Nel caso non devi assolutamente collegarti al binario, altrimenti c'è il rischio di portare sulla bassa tensione il 3 kV in caso di guasti.E' una battuta? Se è così, non l'ho capita....qualcuno me la spiega, per favore.... Link al commento Condividi su altri siti More sharing options...
Sempronio1960 Inserita: 16 giugno 2009 Segnala Share Inserita: 16 giugno 2009 Ciò che si intende quando ci si riferisce a un binario elettrificato....E' una battuta? Se è così, non l'ho capita....qualcuno me la spiega, per favore....No, non è una battuta, è deformazione professionale Dico davvero ... Link al commento Condividi su altri siti More sharing options...
mzara Inserita: 16 giugno 2009 Segnala Share Inserita: 16 giugno 2009 Scusate un'attimo........binari a 3kV a parte!!!!!!!!Ma quando mai:Nella distribuzione trifase la corrente circolante sul nutro non è la somma algebrica delle fasi ! ma bensì la somma vettoriale infatti se avessi carichi perfettamente equilibrati sulle tre fasi la corrente circolante sul neutro sarebbe uguale a ZERO.Sarebbe un miracolo avere un sistema illuminante con tante lampade distribuite su 3f+n EQUILIBRATO anche se tutte le lampade fossero uguali, della stessa marca e della stessa potenza.E poi se si decidesse di accenderne due gruppi anziché tre?E se una lampada si interrompe? Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 16 giugno 2009 Segnala Share Inserita: 16 giugno 2009 Anche se una fase risultasse completamente scollegata la corrente del neutro non supererebbe mai quella della fase più carica. Link al commento Condividi su altri siti More sharing options...
angelodaloisio Inserita: 20 novembre 2009 Segnala Share Inserita: 20 novembre 2009 Mi potete spiegare questo vettore array come viene implementato.Non l'ho mai capito.Mi sembra un ottima soluzione! Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 20 novembre 2009 Segnala Share Inserita: 20 novembre 2009 Mi potete spiegare questo vettore array come viene implementatoVettore è il termine italiano, array è un termine inclese che, nella pratica informatica, indica la medesima cosa.Cerco di spiegartelo con un esempio.Immagna di dovere tener conto di 10 valori che sono assunti nel tempo da una variabile, per esempio, di una velocità. Esegui le misure ogni secondo ed ottieni il valore istantaneo secondo per secondo. Ora se vuoi analizzare la vairaizione della velocità nell'intervallo di 10 secondi cosa devi fare? Semplice, riservi 10 celle di memoria, byte, word o doppia word, dipende dalla dimensione della variabile. Alla priam lettura memorizzi il valore nellea prima cella, alla seconda nella seconda e così via sino al riempimento di tutte e 10 le celle.Questo insieme di celle di memoria è detto vettore di "n" elementi (10 in questo caso) o array di "n" elementi, o anche matrice ad 1 dimensione, ovvero matrice di 1 colonna e 10 righe nel caso in esame. La notazione per l'array è, solitamente "nome_array[n]".Nel caso dei PLC S7_200 e S7_300 esistono delle istruzioni che puntano all'array. In altre parole crei una variabile che corrisponde all'indirizzo della prima cella di memoria, per scrivere (o leggere) nella memoria basta usare questa istruzione specifica, poi incrementi la variabile ed alla prossima memorizzazione avrai scritto nella cella successiva. Link al commento Condividi su altri siti More sharing options...
vabi Inserita: 26 novembre 2009 Segnala Share Inserita: 26 novembre 2009 Si potrebbe anche usare la media pesata passando come parametro il peso più opportuno al filtro.P= 0<=peso<=1V= valore non filtratoVm= valore filtratoVm= (Vm*P)+(V*(1-P))con P=0 il filtro è inefficace 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