modulazione PWM
- baltimora
-
Autore della discussione
- Offline
- New Member
-
Riduci
Di più
- Messaggi: 3
- Ringraziamenti ricevuti 0
8 Anni 8 Mesi fa #280
da baltimora
modulazione PWM è stato creato da baltimora
salve, per una macchina che sto realizzando devo controllare alcuni relè statici tramite una modulazione a PWM, cercando in giro non ho trovato molto su come realizzare tale codice.
qualcuno ha avuto esperienza, mi può dare qualche informazioni come realizzare il codice
qualcuno ha avuto esperienza, mi può dare qualche informazioni come realizzare il codice
Si prega Accedi o Crea un account a partecipare alla conversazione.
- cisco
-
- Offline
- Senior Member
-
Riduci
Di più
- Messaggi: 47
- Ringraziamenti ricevuti 3
8 Anni 8 Mesi fa #281
da cisco
Risposta da cisco al topic modulazione PWM
la tua domanda è troppo generica, su quale target usi Codesys che versione dello stesso.
è difficile darti una risposta senza essere precisi con questo ambiente di sviluppo dato che viene usato da PLC ad inverter e ogni dispositivo a peculiarità diverse e piccole differenze.
è difficile darti una risposta senza essere precisi con questo ambiente di sviluppo dato che viene usato da PLC ad inverter e ogni dispositivo a peculiarità diverse e piccole differenze.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- baltimora
-
Autore della discussione
- Offline
- New Member
-
Riduci
Di più
- Messaggi: 3
- Ringraziamenti ricevuti 0
8 Anni 8 Mesi fa #282
da baltimora
Risposta da baltimora al topic modulazione PWM
Grazie Cisco per la risposta.
uso codesys su un dispositivo della Lenze e devo comandare un uscita remota per dei relè statici in PWM.
la versione di codesys è la 2 e sinceramente non saprei da che parte cominciare per realizzare una logica del genere
uso codesys su un dispositivo della Lenze e devo comandare un uscita remota per dei relè statici in PWM.
la versione di codesys è la 2 e sinceramente non saprei da che parte cominciare per realizzare una logica del genere
Si prega Accedi o Crea un account a partecipare alla conversazione.
- cisco
-
- Offline
- Senior Member
-
Riduci
Di più
- Messaggi: 47
- Ringraziamenti ricevuti 3
8 Anni 7 Mesi fa #283
da cisco
Risposta da cisco al topic modulazione PWM
realizzare una funzione che genera una modulazione PWM per quello che hai scritto non è molto difficile, anche se personalmente non ho mai realizzato qualcosa del genere.
a memoria mi sembra di aver visto qualcosa del genere di gia fatto ma sinceramente non ricordo dove vedrò nei prossimi giorni di cercare e di rendere l'esempio disponibile per tutti
a memoria mi sembra di aver visto qualcosa del genere di gia fatto ma sinceramente non ricordo dove vedrò nei prossimi giorni di cercare e di rendere l'esempio disponibile per tutti
Si prega Accedi o Crea un account a partecipare alla conversazione.
- cisco
-
- Offline
- Senior Member
-
Riduci
Di più
- Messaggi: 47
- Ringraziamenti ricevuti 3
8 Anni 7 Mesi fa #284
da cisco
Risposta da cisco al topic modulazione PWM
ho trovato questo codice scritto un po di tempo fa per un altra piattaforma,
è adattabile per codesys senza grossi problemi
è adattabile per codesys senza grossi problemi
//Variabili di ingresso
// bInit =bit di inizializzazione del modulo
// fPWMIn = Valore di ingresso da 0-100.00
// fCtrtime =Tempo di controllo in sec.
// fPlcTime =Tempo di controllo del PLC in sec
//variabili di uscita
// nTypErr =tipo di errore generato dal modulo vedi tabella in fondo
// bErr =Bit di errore modulo non inizializzato
//bPWMOut =uscita della modulazione PWM
//significato degli errori
// 0 =modulo OK
// 1 =modulo non inizializzato
// 2 = valori non validi i parametri messi valgono 0 opp. negativi
// 3 =il valore fCtrtime è piu piccolo del fPlcTime
var
bInitDone : boolean;
bNewPeriod : boolean;
fPwmCycleTime : real;
nPwmCycleTicks : integer;
nPwmActCycleTick : integer;
nPowerOnCycleTicks : integer;
nPowerOffCycleTicks : integer;
nIng1 : integer;
nIng2 : integer;
nOut : integer;
const
nERR_NOERROR =0;
nERR_NOINIT =1;
nERR_INVALIDPARAM =2;
nERR_INVALIDCYCLETIME =3;
nERR_CYCLETIMEBIG =4;
nDIRECTION_MINUS =-1;
nDIRECTION_ZERO =0;
nDIRECTION_PLUS =1;
begin
IF (bInit) THEN
begin
//(Inizializzazione della logica
bInitDone := TRUE;
bPwmOut := FALSE;
bNewPeriod := FALSE;
nPwmActCycleTick := 0;
// controllo i valori impostati
// in caso che valgano 0 genero un errore =2 ed esco
IF ( fCtrtime <= 0.0 ) OR ( fPlcTime <= 0.0 ) THEN
begin
ntyperr := nERR_INVALIDPARAM;
exit;
END;
// controllo i valori impostati
// in caso che fctrTime sia più piccolo di fplcTime genero un errore =3 ed esco
IF ( fCtrTime <= fPlcTime ) THEN
begin
ntyperr := nERR_INVALIDCYCLETIME;
exit;
END;
//se arrivo qui vuol dire che non ci sono stati errori
//setto i cicli della modulazione PWM
nPwmCycleTicks := ValMAX( 1,( fCtrTime / fPlcTime ) );
fPwmCycleTime := nPwmCycleTicks * fPlcTime;
// setto i flag interno
bInit := TRUE;
END;
// fine fase di inizializzazione
//resetto la variabile di errore
nTypErr := nERR_NOERROR;
//modulo di calcolo
nPwmActCycleTick := nPwmActCycleTick + 1;
IF ( nPwmActCycleTick >= nPwmCycleTicks ) THEN
begin
nPwmActCycleTick := 0;
bNewPeriod := TRUE;
end
ELSE
begin
bNewPeriod := FALSE;
END;
//Nuova modulazione uscita PWM
IF bNewPeriod THEN
begin
nPowerOnCycleTicks := ( nPwmCycleTicks * VALMIN( 100.0, VALMAX( 0.0, fPwmIn ) ) / 100.0 );
nPowerOffCycleTicks := nPwmCycleTicks - nPowerOnCycleTicks;
END;
//scrivo l'uscita digitale per la modulazione PWM
IF ( nPwmActCycleTick < nPowerOnCycleTicks ) THEN
begin
bPwmOut := TRUE;
end
ELSE
begin
bPwmOut := FALSE;
END;
//Fine modulo
END;
Ringraziano per il messaggio: baltimora
Si prega Accedi o Crea un account a partecipare alla conversazione.
- baltimora
-
Autore della discussione
- Offline
- New Member
-
Riduci
Di più
- Messaggi: 3
- Ringraziamenti ricevuti 0
8 Anni 7 Mesi fa #285
da baltimora
Risposta da baltimora al topic modulazione PWM
scusa del ritardo nel ringraziarti, ma sono stato impegnato a sistemare il codice
ci sono alcuni parti che non mi sono molto chiare ma dalle prove fatte sembra funzionare anche se non è precisissimo ma per quello che devo fare va più che bene
grazie
ci sono alcuni parti che non mi sono molto chiare ma dalle prove fatte sembra funzionare anche se non è precisissimo ma per quello che devo fare va più che bene
grazie
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: papy, roby
Tempo creazione pagina: 0.067 secondi