Home › Forum › Programmazione IEC 61131 (LogicLab) › Generatore di forme d’onda in linguaggio ST
- Questo topic ha 3 risposte, 1 partecipante ed è stato aggiornato l'ultima volta 11 anni, 1 mese fa da Massimo.
-
AutorePost
-
Marzo 19, 2013 alle 5:45 pm #35342MassimoModeratore
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.
Marzo 20, 2013 alle 7:08 am #37599MassimoModeratoreContinuo 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.
Marzo 20, 2013 alle 7:34 am #37600MassimoModeratoreEcco 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.
Marzo 20, 2013 alle 7:46 am #37601MassimoModeratoreContinuo 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.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.