Livio Orsini Inserita: 20 aprile 2009 Segnala Share Inserita: 20 aprile 2009 (modificato) .. che ne pensi?Che non si fa così Ci sono due cose da considerare (leggere il manuale!) risoluzione del D/A 11 bit + segno, formato della AQWx 32.000 counts, ma 11 bit fa 2048, non 32000, che scritto in esa è 7d00, mentre 2047 in esa è 7ff; se moltiplichi per 15 (cioè f esa) hai esattamente la stessa cosa. Quindi moltiplicare l'errore per 15 è come moltiplicarlo per 1 Questo perchè Siemens per sua comodità ti fa scrivere le uscita analogiche shiftate a sx di 4 bits.Se vuoi un'uscita di 100 mV minimi dovrai avere 307 scritto in AQW0Tu avrai qualche cosa di simile: AQW0 = errore * gudagno;Se vuoi, ad esempio, avere un riferimento minimo di 100mV, devi fare: VWxx = errore * guadagno se VWxx => 307 ==> AQW0 = VWxx, se VWxx<307 ==>AQW0 = 307 Modificato: 20 aprile 2009 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 20 aprile 2009 Autore Segnala Share Inserita: 20 aprile 2009 mmm...non ho capito... io non volevo moltiplicare per 15...e ne sommare 100mv ma il corrispondente 307...comunque mi sembra di aver capito che se in AQW0 ho un errore minore di 307 lo faccio uguale a AQW0 se ho un errore maggiore AQW0 lo faccio uguale a 307?? non ho capito per niente... poi non sommo 307 ad AQW0 ma nella word prima di trasferirla in AQW0...perche non posso farlo non mi è chiaro... Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 20 aprile 2009 Segnala Share Inserita: 20 aprile 2009 Se il valore di AQW0 è maggiore di 307 lo lasci così.Se il valore di AQW0 è minore di 307 scrivi 307Chiaro ora? Non devi sommare niente, si fa solo una soglia di velocità minima. Se tu avessi un inverter in vettoriale potresti mettere una soglia più bassa. Con un azionamento chopper in continua o brushless si sta sui 10 mV.La moltiplicazione per 15 serve solo per riportare in scala 1:1 l'uscita anlogica. Questo perchè i 4 bits meno significativi di AQWx son solo di figura. In pratica la vera scrittura sarebbe bit 15 segnobit 14 bit pià significativo.....bit 4 bit meno significativobit 3 n.a.bit 2 n.a.bit 1 n.a.bit 0 n.a.cioè AQW0 ==> 0111 1101 0000 0000 ==> +32.000 +2047 = 0000 0111 1111 1111 e AQW0 ==> 1111 1101 0000 0000 ==> -32.000 -2047 = 0000 1111 1111 1111In pratica no si sfrutta tutta la scal del D/A perchè Siemens vuole evitare la saturazione. In effetti negli A/D si può entrare con un po' più di 10 v Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 20 aprile 2009 Autore Segnala Share Inserita: 20 aprile 2009 Ahhh ecco ora si che è kiaro... ma quante cose sto imparando da te!! pero prima di fare questo ho provato a modificare nell inverter che è un vettoriale...! ma sotto la soglia di 0,5 non scende... non ho capito perche eppure è configurato come sensorless slv...cè anche una formula sul manuale dell inverter che in pratica aumentando la frequenza a 100hz invece di 50 hz si arriva a 25mv...invece di 100mV..io l ho lasciato a 50 hz perche gia è abbastanza veloce nel posizionarsi! quindi come mi dici tu il guadagno che era a 6 nel posizionatore devo portarlo a 15? Ahh mi sono dimenticato di dirti un altra cosa...quando configurai il modulo em 235 mettendo in ingresso una tensione di 10volt precisi (come da manuale... )nella tabella di stato AIW0 non era 32000 ma 29000!!!potrebbe essere che em235 non è configurato bene ??ma provai a girare quei due potenziometri sul modulo ma piu di tanto la tensione non variava!!!dovrei fare anche questa prova mi sa...Ultima cosa 96mV che sono 307 nel AQW0 se scrivo 307 comunque l inverter non legge 96 mV non so se mi faccio capire che intendo...Quante cose che non so!!!! Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 21 aprile 2009 Autore Segnala Share Inserita: 21 aprile 2009 Allora vediamo quanto ho capito...La VWxx = errore*guadagno=dove prendo il valore dell errore? e dove il guadagno..??il resto ho capito da fare cosi...SE VWxx è minore a 307==> AQW0 = 307SE VWxx è maggiore a 307 ==> AQW0= VWxx Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 21 aprile 2009 Segnala Share Inserita: 21 aprile 2009 VWxx = errore*guadagnoDa uno dei miei primi messaggiINTxxVW100=VW100+VB10VW102=HSC0VW104 = VW100-VW102; VW104 = errore di posizioneVW106=VW104*VW200; VW106 = riferimento di velocità da mettere in uscita (fare i test per <-32000 e >32000) [VW106 ==> uscita nalogica]fine sub INTxxse sostistuisci hai:VWxx = VW106guadagno = VW200 o coefficiente di proporzionalitàSe scrivi 32000 in AQW0 esce una tensione di 10 V? Se si, con 307 dovrai avere 0.096 V e con 320 avrai, ovviamente, 100 mV Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 21 aprile 2009 Autore Segnala Share Inserita: 21 aprile 2009 Scusa la mia cocciutaggine..... allora devo caricare il valore di 307 nella VWxx solo quando il confronto è verificato, in modo da avere una soglia minima di 100mV ma l inverter quindi continua a moversi fino a quando esco dal confronto? cioe vorrei capire come si comporta facendo questo..prima di scrivere nel programma vorrei avere le idee chiare...pero ti sto dando un po di fastidio mi sa... intanto corro subito a provare 32000 se corrisponde a 10v! Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 21 aprile 2009 Segnala Share Inserita: 21 aprile 2009 Allora, facendo riferimento al solito esempio:se:VW104 = errore di posizionedevi verificare seVW104 < 5 E VW104 > -5 ===> AQW0 = 0 ed esco dalla routin di interrupt (5 è la soglia di banda morta, puoi farla di 3 o di 7 o di un altro valore che più ti fa comodo)invece se:VW104 > 5 O VW104 < -5 allora eseguiVW106=VW104*VW200; VW106 = riferimento di velocità da mettere in uscita (fare i test per <-32000 e >32000) [VW106 ==> uscita nalogica]Se VW106 < 307 VW106 = 307AQW0 = VW106 Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 21 aprile 2009 Autore Segnala Share Inserita: 21 aprile 2009 Grazie Livio ora mi è chiaro!!appena posso oggi modifico il tutto e ti faro sapere!! Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 21 aprile 2009 Autore Segnala Share Inserita: 21 aprile 2009 Livio una brutta notizia non sono riuscito a farlo! ho creato una sub3 attivata dal confronto della banda morta >-5 e <5 e nella sub3 mettevo 0 in Aqw0 e uscivo dalla sub con l altro confronto <-5 e >5 poi nel interrupt dove cè il posizionatore ho messo quei confronti per 307 ma provando non funziona neanche come prima...ho sbagliato! adesso ho portato il guadagno inziale che era a 9 a 14 e va preciso!pero comunque ci sono 90mV nel modulo analogico...La tua soluzione è parecchio interessante ma non riesco a scriverla nel programma! pero pensandoci un attimo ma il secondo confronto dell errore <-5 e >5 devono essere in parallelo?? per uscire dalla sub3? io li avevo in serie..posso riprovare ma credo che ci siano altri errori... Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 21 aprile 2009 Autore Segnala Share Inserita: 21 aprile 2009 Anzi non è preciso facendo le prove ho inserito nel pannello la posizione vera letta da hc0 e mancano 20 impulsi.. e ho 90 mV... quindi Livio non mi resta che impegnarmi a capire cio che mi hai spiegato!devo riuscirci a tutti i costi! Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 21 aprile 2009 Segnala Share Inserita: 21 aprile 2009 (modificato) Non devi fare una nuova sub, devi fare il test nella sub di interrupt. I due test sono in and: VW104 < 5 AND VW104 > -5 ===> AQW0 = 0Se, ad esempio VW104 = 4, 4 è minore di 5 e maggiore di -5; se invece VW104 = -4, -4 è minore di 5 e maggiore di -5 Modificato: 21 aprile 2009 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 21 aprile 2009 Autore Segnala Share Inserita: 21 aprile 2009 Allora eccomi ora riesco a seguirti meglio e oggi avevo modificato il programma ma sempre usando il pannello poi stasera ho ripreso il programma quello vecchio salvato senza l uso del pannello e con la cpu sono andato in real time e ho capito meglio come deve funzionare...domani quindi mi ci metto!Allora il primo confronto l ho capito e lo inserisco nel interrupt dove è il posizionatore... L altro confronto invece devo interpretarlo cosi: se la VW106 è maggiore di 307 allora mettila uguale a VW106.. se VW106 è minore di 307 allora la metto uguale a 307... Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 22 aprile 2009 Segnala Share Inserita: 22 aprile 2009 L altro confronto invece devo interpretarlo cosi: se la VW106 è maggiore di 307 allora mettila uguale a VW106.. se VW106 è minore di 307 allora la metto uguale a 307...Si ma va messo anche questo nella sub di interrupt. è parte integrante del posizionatore. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 22 aprile 2009 Autore Segnala Share Inserita: 22 aprile 2009 Rieccomi... ho avuto un po da fare con altre cose... ho fatto il programmino Funziona alla grande!!non so se ho scritto corretamente i confronti ma funziona come abbiamo detto..Ho un margine di 5 impulsi di errore e sono un po troppi pero..perche mi si sposta di un grado..su un diametro di 200mm quindi domani abbassero l errore lo porta a 2 impulsi!ho portato l uscita AWQ0 a 400 in modo da avere 120mV un po piu alto di 100mV... ora Livio ti posto il programma Awl solo posizionatore collegato al pannello cosi se ti accorgi che ci sono errori madornali dimmelo tanto non mi offendo!!pero se funziona penso che non ce ne sono...apparte lo zero con l interrupt esterno..ma quello lo faro la prossima applicazione...GRAZIe infinite Livio!!// Commento del segmentoLD SM0.0MOVW VW240, VW300*I +10, VW300Network 2 LD SM0.0AW> VW300, VW102= M0.1Network 3 LD SM0.0AW< VW300, VW102= M0.2Network 4 LD SM0.0AN M0.0A M0.1+I +6, VW100Network 5 LD SM0.0AN M0.3A M0.2-I +6, VW100Network 6 LD SM0.0DTI HC0, VW102Network 7 LD SM0.0MOVW VW100, VW104-I VW102, VW104Network 8 LD SM0.0MOVW VW104, VW108MUL VW200, VD106Network 9 LD SM0.0DTI VD106, VW106Network 10 LD SM0.0MOVW VW106, VW110Network 11 LD SM0.0MOVW VW110, VW112AENO*I -1, VW112AENOMOVW VW112, VW114+I +1, VW114Network 12 // Se l errore vw104 è minore di +/- 5 metti a 0 l uscita aqw0LDW> VW104, -5AW< VW104, 5MOVW 0, AQW0Network 13 LD SM0.0AW> VW110, +0MOVW VW110, AQW0Network 14 LD SM0.0AW< VW110, +0MOVW VW114, AQW0Network 15 LDW< VW106, 400AW> VW104, 5MOVW 400, AQW0Network 16 LDW> VW106, -400AW< VW104, -5MOVW 400, AQW0Network 17 LD SM0.0AW> VW110, +0A M1.5= Q0.0Network 18 LD SM0.0AW< VW110, +0A M1.5= Q0.1Network 19 LD SM0.0AW>= VW100, VW300= M0.0Network 20 LD SM0.0AW<= VW100, VW300= M0.3 Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 23 aprile 2009 Segnala Share Inserita: 23 aprile 2009 .ma quello lo faro la prossima applicazione...GRAZIe infinite Livio!!Se il mio contributo ti è servito a qualche cosa son felice. Però i manuali li devi leggere e devi imparare a programmare correttamente, non a far funzionare i programmi con la mazza .Il programma non lo leggo, tanto non riesco a vedere gli errori nei miei programmi, figurati in quello di un altro Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 27 aprile 2009 Autore Segnala Share Inserita: 27 aprile 2009 ciao Livio ti riferisco una cosa detta da un tecnico vedendo la mia applicazione con il posizionatore che abbiamo fatto...praticamente mi è stato detto che non è una applicazione che si puo usare dove ci sono dei carichi meccanici variabili..in quanto al posizionarsi il motore ruota con una frequenza di 1hz circa il che non da coppia al motore per vincere la coppia antagonista...io gli ho risposto semplicemente che basta calcolare di quanta coppia si necessita e mettere il motore ed inverter che alla minimia frequenza riesca a a fornire la coppia richiesta...!! comunque funziona benissimo per l antenna... 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