F356_PID_PWM

Instrucción de control de procesos con salida PWM opcional

El control PID se ejecuta para mantener el valor PV tan cercano como sea posible al valor de preselección SP. Al contrario que F355_PID_DUT, esta función permite una salida PWM (salida on-off). También es posible realizar un auto-tuning para calcular automáticamente los datos Kp, Ti y Td para el control PID.

Parámetros

Entrada

Run (BOOL)

Condición de ejecución

Control (F356_Control_DUT)

Datos de control

ParametersHold (F356_Parameters_Hold_DUT)

Parámetros del control PID

ParametersNonHold (F356_Parameters_NonHold_DUT)

Valor manipulado MV, área para el modo de control adicional, área para el auto-tuning y área de trabajo

NOTA

Cuando se ejecuta la instrucción por primera vez, es decir, cuando la condición de ejecución especificada en Run pasa a TRUE, los valores por defecto se escriben en los miembros 1 a 9 de la DUT .

ProcessValue (INT)

Valor actual (-30000–30000)

Salida

PWM_Output (BOOL) (ver nota)

Salida de pulsos modulados en anchura (opcional, en lugar de la salida del valor manipulado)

Observaciones

  • En lugar de utilizar esta instrucción F, se recomienda utilizar la instrucción FP7 correspondiente: FP_PID

  • Abreviaturas utilizadas para describir el control PID

    Abreviatura

    Nombre completo

    También conocido como

    PV

    Valor actual

    Valor actual, valor medido

    SP

    Valor de preselección

    Valor de preselección

    MV

    Valor manipulado

    Valor de salida, valor manipulado

    Ts

    Periodo de muestreo

    Ciclo de scan

    Ti

    Constante integral

    -

    Td

    Constante derivativa

    -

    Kp

    Constante proporcional

    -

    AT

    Autotuning

    -

  • Antes de la segunda ejecución de FP_PID, es necesario cambiar los miembros 1 a 9 de la DUT a los valores requeridos.

Información de programación general

  1. Cuando se ejecuta la entrada en Run, se inicializan los datos del argumento ParametersNonHold. Si se desea que un valor de la DUT use valores no predeterminados, se deberán escribir los valores en la DUT usando, por ejemplo, una instrucción MOVE, que debe ser activada continuamente por una condición TRUE.

  2. F356_PID_PWM se debe ejecutar una sola vez por ciclo de scan. Por lo tanto, no introducir F356_PID_PWM dentro de programas de interrupción o de lazos.

  3. No pasar la condición de ejecución a FALSE durante el control PID. En caso contrario, se deshabilitará el control PID.

  4. Si no se van a realizar salidas PWM en paralelo, por ejemplo para controlar varios objetos, retrasar las condiciones de ejecución de las distintas instrucciones, utilizando por ejemplo una instrucción de temporización.

Ejemplo

NOTA

El periodo de la salida PWM es el ciclo de control Ts (la frecuencia de la salida PWM es 1/Ts) y el ciclo de trabajo es el valor manipulado MV en unidades de 0,01%, por ejemplo MV = 10000 implica un ciclo de trabajo del 100%.

Banderas de error

sys_bIsOperationErrorHold (pasa a TRUE y permanece TRUE)

si algún parámetro de F356_Parameters_NonHold_DUT está fuera de rango

sys_bIsOperationErrorNonHold (pasa a TRUE para un ciclo de scan)

si algún parámetro de F356_Parameters_NonHold_DUT está fuera de rango

sys_bIsEqual (pasa a TRUE y permanece TRUE)

si el área especificada con UpperLimit o LowerLimit está fuera de rango

Para mayor información consultar:

  • Condiciones de control: F356_Parameters_Hold_DUT

  • Valor de preselección SP y parámetros de control: F356_Parameters_Hold_DUT

Notas sobre el auto-tuning:

  • Los elementos de AT_Progress en F356_Parameters_Hold_DUT y b1_AT_Complete en F356_Control_DUT se borran con el flanco de subida de la señal de auto-tuning.

  • Cuando el auto-tuning se ha ejecutado sin errores, se activa el elemento b1_AT_Complete de F356_Control_DUT, y en AT_Progress de F356_Parameters_NonHold_DUT se almacena el código de auto-tuning completo.

  • Cuando se cancela el auto-tuning, no se modifican los parámetros Kp, Ti, y Td.

Ejemplo

Variables Globales

En la Lista de Variables Globales, se definen las variables a las que pueden acceder todas las POUs del proyecto.

Cabecera de la POU

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

_VAR
	VAR 
		bStartAutoTuning: BOOL:=FALSE;
		bRunPidControl: BOOL:=FALSE;
		ControlData: F356_Control_DUT;
		ParametersHold: F356_Parameters_Hold_DUT;
		ParametersNonHold: F356_Parameters_NonHold_DUT;
	END_VAR

Cuerpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bStartAutoTuning,5,1,7,3,R);
B(B_COIL,,ControlData.b0_AT_Request,22,1,24,3,);
L(1,2,5,2);
L(7,2,22,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_F,F356_PID_PWM!,Instance,11,0,22,7,,?DRun?DControl?DParametersHold?DParametersNonHold?DProcessValue?APWM_Output);
B(B_VARIN,,ControlData,9,2,11,4,);
B(B_VARIN,,ParametersHold,9,3,11,5,);
B(B_VARIN,,ParametersNonHold,9,4,11,6,);
B(B_VARIN,,x_iTemperatureInput,9,5,11,7,);
B(B_VAROUT,,y_bPwmOutput,22,1,24,3,);
B(B_CONTACT,,bRunPidControl,4,1,6,3,);
L(1,2,4,2);
L(6,2,11,2);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

(* Auto Tuning: *)
if DF(bStartAutoTuning) then
    ControlData.b0_AT_Request:=TRUE;
end_if;
y_bPwmOutput:=F356_PID_PWM(    Run := bRunPidControl, 
        Control := ControlData, 
        ParametersHold := ParametersHold, 
        ParametersNonHold := ParametersNonHold, 
        ProcessValue := x_iTemperatureInput);

Cuerpo IL

Modificado el: 2022-04-19Comentarios sobre esta páginaPanasonic hotline