Vai al contenuto
PLC Forum


interfaccia pic motore


comigr

Messaggi consigliati


  • 2 weeks later...

utilizzare un ritardo sw al posto del prescaler ha controindicazioni?inoltre visto che l interrupt interviene sui fronti ,se introduco un ritardo superiore all arrivo di un secondo fronte , cosa succede allo svolgimento del programma? interviene nuovemte l, interrupt.oppure.... finisce la routine e salta questo nuovo commando . scusa se sono forse noioso.ma ho sempre poco tempo  per fermarmi a provare.quindi le simulazioni le faccio in auto.....mentalmente. .....mentre guido...Grazie 

 

 

 

Link al commento
Condividi su altri siti

Quote

utilizzare un ritardo sw al posto del prescaler

 

Francamente questo non riesco a capirla

 

Quote

interviene nuovemte l, interrupt.oppure.... finisce la routine e salta

 

Dipende da come è fatto lo Hw ed il Sw.

Cerco di chiarire con un esempio.

Se hai 2 interrupt concomitanti il dispositivo serve per primo l'interrupt di priorità più alta. La priorità è stabilita nel vettore di interrupt; può essere fissa, variabile o una combinazione delle due condizioni. Questo dipende dal dispositivo che si sta usando. Devi studiarti il manuale del PIC che stai usando. CI sarà un capitolo specifico che tratta gli interrupts e la loro organizzazione.

 

Poi dipende anche da come è scritto il Sw.

Se la prima istruzione della routine di servizio è DIsable Interrupts, qualsiasi interrupt si presenti dopo questa istruzione, se non è del tipo non mascherabile, sarà pendente in attesa dell'istruzione che riabilita gli interrupt.

Se la routine di servizio risultasse di esecuzione troppo lunga si creerebbe una coda di interrupt, il rpcessore loopperebbe per eseguire solo le routines di servizio, sino a che andrebbe a lavorare in locazioni di memoria errate e/o ritornerebbe a passare per la locazione iniziale con reelativo reset del programma.

 

Usare gli interrupts è sempre un'operazione delicata, perchè un errore di programamzione potrebbe portarti in loop perversi da cui è difficile euscirne, specie se si ha scarsa esperienza.

Link al commento
Condividi su altri siti

ok ,per ora sembra funzionare....

ho lasciato il sw che gestiva gli interrupt un momentino da parte. ho utilizzato un ingresso come gestore di pass per lo zero e ho creato dei ritardi programmabili con input est.

quindi ora gestisco parecchie velocità, con dei ponticelli.

Problema: ora ho la necessità di associare l'impostazione velocità con la tensione di riferimento della tachimetrica.

visto che ,ad un inserimento di un ponticello corrisponde un ritardo, due ponticelli due ritardi ,ecc, pensavo di utilizzare un gruppo di partitori .quindi inserendo un ponticello inserisco una resistenza ,2 ponticelli 2 res e cosi via, cercando (sperando) di trovare il valore corretto.  Oppure? si accetta no consigli.

Grazie ancora. e buona Pasqua.

 

 

 

 

 

Link al commento
Condividi su altri siti

Scusa ma hai gli ingressi analogici.

COn uno misuri la tensione di un potenziometro, con un altro misuri la reazione.

Il problema è poi fare il regolatore con feedbeck, quello non lo puoi fare con i ritardi.

Link al commento
Condividi su altri siti

quello che utilizzavo e avevo in casa non aveva ing analogici... va bene cambio...

mentre per il feedback pensavo di ridurre i ritardi ,e ritornare al prefissato non appena ho raggiunto la velocità prefissata.....

 

 

 

 

 

Link al commento
Condividi su altri siti

  • 2 weeks later...

ok per ora. ho messo in pratica i consigli che mi avete dato. il motore sotto carico funziona abbastanza bene . a vuoto non è il max perché accellera per poi aspettare di aver raggiunto la velocità di riferimento,impostato da tachimetrica.

meno lento di un bradipo che va di fretta......:roflmao:

Ho utilizzato un preset per il motore ,ho controllato la tachimetriica raddrizzata,comparata con una tensione di rif e OPERAZIONALE ,( non avevo un pic con An),corregendo il ritardo per l'innesco del triac...ora viene il complicato.....per me. Velocizzare il controllo.  ...........me

 

 

 

 

.

Link al commento
Condividi su altri siti

Non è vero che ho messo in pratica tutto.Non ho messo in pratica l'algoritmo tipo PID.

piccolo dettaglio.....:whistling:.

si accettano suggerimenti per ......

 

 

 

 

Link al commento
Condividi su altri siti

Tu devi dare un ritardo proporzionale alla tensione che vuoi dare al motore affinchè la sua velocità sia simile a quella che desideri. Più preciso è il ritardo di accensione, migliore sarà la precisone di velocità

 

Poi fai un regolatore PI, che va a correggere il ritardo in funzione dell'errore di velocità misurato.

TIeni presente che l'intera semionda dura 10ms, quindi il tuo regolatore per avere senso, oltre ad essere sincrono con il passaggio per lo zero della sinusoide, deve essere risolto in un tempo inferiore a 100µs, me è già al limite.

 

Suggerimenti non possone essere tanti. Fai partire la regolazione con l'interrupt della rivelazione del passaggio per lo zero, butta fuori subito la correzione calcolata nel precedente ciclo e calcola la nuova correzione proporzionale ed integrale.

Se non sai come si realizza un PI(D) leggi il mio tutorial sui controlli, il link alla didattica è nella mia firma ed il tutorial lo trovi nella sezione "elettrotecnica".

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...