Vai al contenuto

Comando in frequenza di inverter Power-One per eolico

Home Forum Controllori SlimLine e Netsyst (LogicLab) Comando in frequenza di inverter Power-One per eolico

Stai visualizzando 8 post - dal 1 a 8 (di 8 totali)
  • Autore
    Post
  • #35418
    Anonimo
    Inattivo

    L’inverter Power-One che usiamo per generare energia da un impianto eolico necessita di  un segnale ad onda quadra, in frequenza variabile da 50 a 150 Hz a cui corrisponde rispettivamente P=0 per f=50 Hz e P=Pn per f=150 (andamento lineare). Ora a noi servirebbe uno SlimLine programmato in maniera tale da restituire in uscita un segnale, onda quadra, in frequenza avendo come ingresso una tensione proveniente da un trasduttore (già a bordo del nostro controller) con range 0-10 VDC.

    In sintesi noi di questo SlimLine  aggiuntivo useremo un ingresso analogico ed una ed una uscita digitale PWM, occorre tenere presente quanto scritto nel documento Power-One che indica di limitare la salita (e solo la salita) del segnale in frequenza in maniera tale da avere variazioni di potenza non superiori a 2 KW/sec.

    Allego estratto documento Power-One che illustra il circuito di ingresso dell’inverter, verificare se l’uscita dello SlimLine è compatibile con l’inverter, oppure se occorre inserire un circuito di adattamento.

    #37787
    Sergio Bertana
    Amministratore del forum

    I moduli SlimLine CPU ARM7 IEC61131-3, dispongono di una uscita PWM hardware (Out 0), che può generare segnali ad onda quadra con un limite di 1 Khz. Tramite il blocco funzione SysSetPWMOut, set PWM output (Estratto manuale), è possibile impostare sia la frequenza di uscita che il duty cycle.

    Aggiungendo al modulo CPU un modulo di acquisizione analogica è possibile acquisire il valore analogico di comando ed un semplice programma in ST può agevolmente gestire la tua applicazione. In merito all’interfacciamento con l’inverter, l’uscita è realizzata con un Opto-MOS quindi se utilizzi una sola uscita delle due presenti (Si ha un unico comune per entrambe le uscite) puoi direttamente collegarla all’inverter senza nessuna interfaccia aggiuntiva.

    #37888
    Anonimo
    Inattivo

    Non ho grande esperienza con i vostri tools, ma dove si trova la funzione SysSetPWMOut, ho trovato nella libreria PLCUtyLib la funzione PWMOut ha le stesse caratteristiche ?

    #37889
    Sergio Bertana
    Amministratore del forum

    Il blocco funzione PWMOut permette di gestisce una qualsiasi uscita logica per comandare un carico in modulazione di potenza variando il tempo di On/Off di comando del dispositivo. Questo è un blocco “tutto software” è scritto in linguaggio ST ed utilizza i temporizzatori per gestire i tempi.

    Il blocco funzione SysSetPWMOut invece gestisce moduli che hanno il circuito PWM realizzato in hardware, e questo permette di gestire uscite PWM con frequenze di lavoro elevate. Questo blocco funzione sarà disponibile dalla prossima versione firmware (Codice SFW184A800).

    #37894
    Anonimo
    Inattivo

    Nel frattempo abbiamo provato due programmi in ST sulla nostra CPU ha codice MPS046B100;

    IF SysFirstLoop THEN
      RefTimeBuf:=SysGetSysTime(TRUE); (* Save the reference time *)
    END_IF;

    (* Check if is passed 2*K_Time and invert the logic DO_0uscita state. *)

    IF (SysGetSysTime(TRUE) > (RefTimeBuf+K_Time)) THEN
      RefTimeBuf:=SysGetSysTime(TRUE); (* Save the reference time *)
      DO_0uscita:=NOT(DO_0uscita);
    END_IF;

    Variando il valore di K_Time non si riesce ad andare oltre i 25 Hz sull’uscita DO_0. Usando invece questa semplice routine:

    k := k+1;
    IF (k >K_Time) THEN
      k := 0; (* reset *)
      DO_0uscita:=NOT(DO_0uscita);
    END_IF;

    Abbiamo raggiunto i 45Hz sull’uscita DO_0, con k=10 Siamo lontani dal generare quello che a noi serve ovvero 150Hz Max. Speriamo che non ci sia un limite tecnologico…

    #37895
    Sergio Bertana
    Amministratore del forum

    Il tuo errore è che non hai gestito direttamente le uscite del modulo CPU ma ne hai demandata la gestione all’immagine di processo che la esegue ogni 10 mS (Topic) e non so in che task hai eseguito il programma. Se vedi nel programma che ti allego (Stampa e Download), viene eseguita la gestione nella task fast a cui ho modificato il tempo di esecuzione portandolo da 1 mS a 100 uS.

    Con questo programma si riescono ad ottenere frequenze anche vicine ad 1 Khz, naturalmente si ha una “granulosità” nella impostazione del tempo di 100 uS che è il tempo con cui è eseguita la task fast.

    Completamente diverso invece è l’approccio utilizzando la funzione SysSetPWMOut la quale opera in hardware con una granulosità inferiore al uS.

    #37897
    Luca
    Partecipante

    Mi interessa molto questa funzionalità dell’uscita a 1 kHz. Quando sarà operativa la nuova versione di FW. Permetterà di gestire entrambe le uscite digitali presenti sulla CPU ARM7 ? Ho giusto giusto da comandare una coppia di motori passo passo e sarebbe perfetto… se in tempi ristretti però…

    #37898
    Sergio Bertana
    Amministratore del forum

    Il blocco funzione SysSetPWMOut può operare solo sulla uscita DO00 del modulo CPU ARM7. La nuova versione del firmware SFW184A800 è pronta, stiamo facendo gli ultimi aggiornamenti sull’ambiente di sviluppo LogicLab per implementare le nuove funzionalità, non ho ancora una data certa di rilascio ma è sicuramente questione di un paio di settimane.

    Per la gestione di stepping motors ho trovato interessante l’approccio che ho consigliato ad un nostro cliente un po di tempo fa (Topic).

Stai visualizzando 8 post - dal 1 a 8 (di 8 totali)
  • Devi essere connesso per rispondere a questo topic.