FB_PID: Bloque de funciones PID

Descripción general

El bloque de funciones FB_PID proporciona un controlador PID.

En la gráfica siguiente se muestra un diagrama de pines del bloque de funciones FB_PID:

G-SE-0033412.1.jpg

 

 

El algoritmo principal se representa con el diagrama de flujo siguiente:

G-SE-0032380.1.gif-high.gif

 

 

El algoritmo principal se calcula como:

G-SE-0032381.1.gif-high.gif

 

 

Mientras que una constante de tiempo diferencial de Td = 0 deshabilitará la rama diferencial del controlador PID, no se permite una ganancia proporcional Kp de 0. Esto dará como resultado una ganancia del 100 %.

Al establecer la constante de tiempo integral Ti = 0 se cambia a una norma de cálculo alternativa:

G-SE-0032382.1.gif-high.gif

 

 

Esto centraría la señal de salida analógica que está en un rango [de 0 a 10.000].

El valor medido puede convertirse en un rango parametrizado. En tal caso, este nuevo rango se aplicará a la consigna así como a los niveles de alarma de medida.

En cada caso, la salida se encuentra en un rango [de 0 a 10.000] pero no puede limitarse.

Descripción de variables de E/S

En la tabla se describen las variables de entrada del bloque de funciones en la biblioteca TwidoEmulationSupport:

Entrada

Tipo de datos

Descripción

i_iMeasure

INT

Variable de control [de 1 a 10.000]

i_iSetpoint

INT

Consigna del controlador [de 1 a 10.000] o [de mín. configurado a máx. configurado]

i_etOpMode

ET_PidOpMode

PID/PI: el PID puede sobrescribirse con etCorrectorType con fines de compatibilidad.

i_xMeasConversion

BOOL

Activa la conversión de valores medidos a los límites determinados desde [de 0 a 10.000] hasta [de i_iConversionMin a i_iConversionMax].

i_iConversionMin

INT

Conversión del valor mínimo.

i_iConversionMax

INT

Conversión del valor máximo.

i_xMeasAlarm

BOOL

Activa las alarmas del rango de valores medido.

i_iAlarmHigh

INT

Valor de umbral de alarma alta para q_iAnalogOutput.

i_iAlarmLow

INT

Valor de umbral de alarma baja para q_iAnalogOutput.

i_iKp

INT

Factor de ganancia proporcional

i_iTi

INT

Constante de tiempo integral

i_iTd

INT

Constante de tiempo diferencial (se ignora en el caso de PI)

i_xDirectOutput

BOOL

TRUE: acción directa

FALSE: acción inversa

i_xLimitOutput

BOOL

Activa la limitación de la salida.

i_iLimitMin

INT

Límite inferior de la salida

i_iLimitMax

INT

Límite superior de la salida

i_iPWMPeriod

INT

Señal PWM

En la tabla se describen las variables de salida del bloque de funciones en la biblioteca TwidoEmulationSupport:

Salida

Tipo de datos

Descripción

q_iAnalogOutput

INT

Salida del controlador que va a convertirse de digital a analógica [de 1 a 10.000]

q_rDutyCycleOutput

REAL

Se reduce a un valor [de 0 a 1] que puede asignarse a un módulo PWM manualmente.

q_xPWM

BOOL

Salida PWM generada por el software

q_xMeasureValueLowAlarm

BOOL

Monitorización de la variable de control.

Se establece en 1, si la variable es inferior al nivel de la alarma baja.

q_xMeasureValueHighAlarm

BOOL

Monitorización de la variable de control.

Se establece en 1, si se supera el nivel de la alarma alta.

q_etPidDiag

ET_PidDiag

Código de diagnóstico procedente del controlador PID

q_sMsg

STRING

Mensaje de diagnóstico

La configuración del bloque PID en EcoStruxure Machine Expert - Basic proporciona el periodo de muestreo de parámetros adicionales (en la ficha PID del Asistente de PID). Este periodo de muestreo es el tiempo de ciclo de la tarea que ejecuta el bloque PID. Para garantizar que la señal en q_xPWM se genera correctamente, el i_iPWMPeriod configurado debe ser un múltiplo del tiempo de muestra. Un periodo PWM de 0 desactiva la generación de la señal.

La entrada i_etOpMode es del tipo:

G-SE-0032386.1.gif-high.gif

 

 

La salida i_etPidDiag es del tipo:

G-SE-0032387.1.gif-high.gif