Il blocco funzione FB_PID fornisce un controller PID
Il grafico seguente mostra uno schema dei pin del blocco funzione FB_PID:
L'algoritmo principale è rappresentato dal seguente diagramma di flusso:
L'algoritmo principale viene calcolato nel seguente modo:
Mentre una costante di tempo di Td=0 disattiva la derivazione derivativa del controller PID, viene inibito il guadagno proporzionale Kp di 0. Di conseguenza si ha un guadagno del 100%.
L'impostazione della costante di tempo integrale Ti=0 provoca il passaggio a una regola di calcolo alternativa:
In questo modo viene centrato il segnale di uscita analogico che si trova nell'intervallo [0..10000].
Il valore misurato può essere convertito in un intervallo parametrizzato. Questo nuovo intervallo viene quindi applicato sia al setpoint sia ai livelli di allarme di misura.
In ogni caso l'uscita si trova nell'intervallo [0..10000] ma può essere limitata.
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso del blocco funzione nella libreria TwidoEmulationSupport:
Ingresso |
Tipo di dati |
Descrizione |
---|---|---|
i_iMeasure |
INT |
Variabile di controllo [1 - 10000] |
i_iSetpoint |
INT |
Setpoint del controller [1 - 10000] o [min - max configurato] |
i_etOpMode |
ET_PidOpMode |
PID / PI - nel caso di PID può essere sovrascritto da etCorrectorType per scopi di compatibilità. |
i_xMeasConversion |
BOOL |
Attiva la conversione di valori misurati ai limiti impostati da [0 - 10000] a [i_iConversionMin - i_iConversionMax]. |
i_iConversionMin |
INT |
Conversione del valore minimo. |
i_iConversionMax |
INT |
Conversione del valore massimo. |
i_xMeasAlarm |
BOOL |
Attiva gli allarmi dell'intervallo di valori misurati. |
i_iAlarmHigh |
INT |
Valore di soglia di allarme High per q_iAnalogOutput. |
i_iAlarmLow |
INT |
Valore di soglia di allarme Low per q_iAnalogOutput. |
i_iKp |
INT |
Fattore di guadagno proporzionale |
i_iTi |
INT |
Costante di tempo integrale |
i_iTd |
INT |
Costante di tempo derivativa (ignorata in caso di PI) |
i_xDirectOutput |
BOOL |
TRUE: azione diretta FALSE: azione inversa |
i_xLimitOutput |
BOOL |
Attiva la limitazione di uscita. |
i_iLimitMin |
INT |
Limite inferiore di uscita |
i_iLimitMax |
INT |
Limite superiore di uscita |
i_iPWMPeriod |
INT |
Segnale PWM |
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita |
Tipo di dati |
Descrizione |
---|---|---|
q_iAnalogOutput |
INT |
Uscita del controller da convertire da digitale a analogica [1 - 10000] |
q_rDutyCycleOutput |
REAL |
Ridotto a un valore [0 - 1] che può essere assegnato manualmente a un modulo PWM. |
q_xPWM |
BOOL |
Uscita PWM generata da software |
q_xMeasureValueLowAlarm |
BOOL |
Monitoraggio della variabile di controllo. Viene impostato a 1 se il valore scende sotto il livello di allarme Low. |
q_xMeasureValueHighAlarm |
BOOL |
Monitoraggio della variabile di controllo. Viene impostato a 1 se il valore supera il livello di allarme High. |
q_etPidDiag |
ET_PidDiag |
Codice diagnostico dal controller PID |
q_sMsg |
STRING |
Messaggio diagnostico |
La configurazione del blocco PID in EcoStruxure Machine Expert - Basic fornisce il periodo di campionamento di parametri aggiuntivi (nella scheda PID di Assistente PID ). Il periodo di campionamento è il tempo di ciclo del task che esegue il blocco PID. Per garantire che il segnale su q_xPWM sia generato correttamente, il valore di i_iPWMPeriod configurato deve essere un multiplo del tempo di campionamento. Un periodo PWM di 0 disattiva la generazione del segnale.
L'ingresso i_etOpMode è del tipo:
L'uscita i_etPidDiag è del tipo: