Generatore di forme d’onda in linguaggio ST

Attenzione !I messaggi sul forum potrebbero essere modificati dal nostro staff. La data e l'ora dei messaggi potrebbe non essere quella di invio ma quella di moderazione da parte dello staff. Grazie per l'attenzione.

Home Forum Programmazione IEC 61131 (LogicLab) Generatore di forme d’onda in linguaggio ST

Questo argomento contiene 3 risposte, ha 1 partecipante, ed √® stato aggiornato da  Massimo 6 anni fa.

Stai vedendo 4 articoli - dal 1 a 4 (di 4 totali)
  • Autore
    Articoli
  • #35342

    Massimo
    Moderatore

    Da un cliente ci perviene la richiesta di realizzare un blocco funzione per la generazione di una onda sinusoidale, approfitto della richiesta per aprire un topic che tratta l’intero argomento della generazione di onde di vario genere.

    Iniziamo con la richiesta pervenuta, per generare un’onda sinusoidale si utilizza la funzione SIN che ritorna il seno di un angolo virtuale che varia da 0 a 2*Pigreco radianti, di seguito le due formule utilizzate per il calcolo dell’angolo e per il calcolo del valore in uscita.

    Angle:=(6.28318*TO_REAL(TimePsd))/Period; (* Omega vector angle (Rad) *)
    Out:=SIN(Angle)*Amplitude;

    Allego il progetto completo con la FB SineWaveGenerator che eseguita in un programma FBD nella task Fast genera in uscita l’onda sinusoidale. Ecco come si presenta il valore in uscita visualizzato nella utility oscilloscopio di LogicLab (Screenshot).

    Ricordo che il campionamento dell’oscilloscopio è molto lento essendo eseguito in modbus e quindi se si definisce una frequenza elevata si vedrà una pessima forma d’onda, il modo migliore per valutare l’onda in uscita è di inviarla ad un convertitore D/A ed acquisire il valore con un oscilloscopio reale. Programma generatore onde sinusoidali, stampa e programma sorgente.

    #37599

    Massimo
    Moderatore

    Continuo il topic inserendo una FB per generare un’onda triangolare, come si può vedere questa FB condivide buona parte del codice della FB precedente viene solo modificata la formula per il calcolo del valore in uscita.

    Allego il progetto completo con la FB TriangleWaveGenerator che eseguita in un programma FBD nella task Fast genera in uscita l’onda triangolare. Ecco come si presenta il valore in uscita visualizzato nella utility oscilloscopio di LogicLab (Screenshot).

    Programma generatore onde triangolari, stampa e programma sorgente.

    #37600

    Massimo
    Moderatore

    Ecco il generatore di onde quadre, allego il progetto completo con la FB SquareWaveGenerator che eseguita in un programma FBD nella task Fast genera in uscita l’onda quadra. Ecco come si presenta il valore in uscita visualizzato nella utility oscilloscopio di LogicLab (Screenshot).

    Programma generatore onde quadre, stampa e programma sorgente.

    #37601

    Massimo
    Moderatore

    Continuo con il generatore di onde a dente di sega, allego il progetto completo con la FB SawToothWaveGenerator che eseguita in un programma FBD nella task Fast genera in uscita l’onda a dente di sega. Ecco come si presenta il valore in uscita visualizzato nella utility oscilloscopio di LogicLab (Screenshot).

    Programma generatore onde a dente di sega, stampa e programma sorgente.

Stai vedendo 4 articoli - dal 1 a 4 (di 4 totali)

Devi essere loggato per rispondere a questa discussione.