FB_PID: blocco funzione PID

Panoramica

Il blocco funzione FB_PID fornisce un controller PID 

Il grafico seguente mostra uno schema dei pin del blocco funzione FB_PID:

G-SE-0033412.1.jpg

 

 

L'algoritmo principale è rappresentato dal seguente diagramma di flusso:

G-SE-0032380.1.gif-high.gif

 

 

L'algoritmo principale viene calcolato nel seguente modo:

G-SE-0032381.1.gif-high.gif

 

 

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:

G-SE-0032382.1.gif-high.gif

 

 

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:

G-SE-0032386.1.gif-high.gif

 

 

L'uscita i_etPidDiag è del tipo:

G-SE-0032387.1.gif-high.gif