Vai al contenuto
PLC Forum


Ottimizzazione PID


Project75

Messaggi consigliati

il 21/3/2021 at 13:09 , walterword scrisse:

se vuoi puoi guardare un P.I. che ho scrittoio anni fa. Ho aggiunto anche la parte derivativa che se ti da fastidio la togli.

E' previsto un duty cycle, uscita con Relè statico ed analogica.

Guardalo e studialo, l'avevo scritto per S7-300, con pochi accorgimenti lo puoi riportare in TIA Portal.



FUNCTION_BLOCK FB80           // Digital regulator P.I.D Written by Walter P - Milan - Italy  05/06/2009

VAR_INPUT
Set_Point:REAL ;               // Set point value 
Feedback:REAL ;                // Feedback value process 
Kp:REAL;                       // K Proportional gain 
Ki:REAL;                       // K Integral gain 
Kd:REAL;                       // K Derivative gain 
Max_Analog:REAL;               // Maximum value for analog output 
Max_Time_Cycle:REAL;           // Maximum time cycle for PWM digital output (milliseconds)
Scan_Time:REAL;                // Scanning time of the plc 
Time_Sample:REAL;              // Time sample in OB35
Enable:BOOL;                   // Enable PWM digital P.I.D.
Reset:BOOL;                    // Reset regulator 
                               // Call this function in OB35 every 100-150 mS. Temperature regulation is fine.

 

 

walterword molto interessante il tuo script, la variabile Scan_Time non è utilizzata o sbaglio?

Invece Time_Sample è il tempo in cui viene richiamato il blocco espresso in mS?

 

Inoltre perchè sommi 2 volte la componente D, è un errore?

 

IF #Enable = true THEN
    #Out_Analog_Reg := #D + #I + #D;
END_IF;

 

 

Grazie

Modificato: da onire77
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...