PID_FB

Instructions de régulation PID

Cette implémentation permet de définir les paramètres de F355_PID directement via les arguments suivants :

Paramètres

Entrée

Automatic

FALSE : paramètrage manuel de MV possible

TRUE : valeur manipulée définie automatiquement

Forward (BOOL)

FALSE : régulation inverse (chauffage)

TRUE : régulation directe (refroidissement)

I_PD (BOOL)

FALSE : régulation PI-D

TRUE : régulation I-PD

SP (INT)

Valeur de consigne, intervalle 0-10000

PV (INT)

Valeur courante, intervalle 0-10000

Kp (INT)

Gain proportionnel, intervalle : 1-9999, unité : 0,1

Ti (INT)

Temps d’intégration, intervalle : 1-30000, unité : 0,1s

Td (INT)

Temps de dérivation, intervalle : 1-10000, unité : 0,1s

Ts (INT)

Temps d’échantillonnage, intervalle : 1-6000, unité : 0,01s

LowerLimit (INT)

Limite inférieure de la valeur manipulée, intervalle : 0-10000

UpperLimit (INT)

Limite supérieure de la valeur manipulée, intervalle : 1-10000

Entrée/sortie

MV (INT)

Valeur manipulée

Remarques

  • PID_FB ne permet pas d’utiliser la fonction de réglage automatique. Vous pouvez le faire avec PID_FB_DUT.

  • Pour MV, la valeur peut être affectée de manière externe soit lorsque le programme est initialisé ou lorsque la valeur de Automatic est FALSE.

  • Pour atteindre une résolution maximale et un temps mort minimal au-delà des limites inférieures (LowerLimit) et supérieures (UpperLimit), leurs valeurs doivent être, si possible, dans l’intervalle de 0–10000.

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)

Si les paramètres sont en dehors de l’intervalle autorisé.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)

Si les paramètres sont en dehors de l’intervalle autorisé.

Exemple

GVL

Dans la liste des variables globales, vous définissez des variables qui sont accessibles par tous les POU dans le projet.

En-tête du POU

Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU.Le même en-tête de POU est utilisé pour tous les langages de programmation.

	VAR_EXTERNAL
		Set_Value_SP: INT:=0;
			(*A/D CH0*)
		Process_Value_PV: INT:=0;
			(*A/D CH1*)
		Output_Value_MV: INT:=0;
			(*D/A*)
	END_VAR
	VAR 
		PID_Control: PID_FB;
			(*PID Parameters*)
	END_VAR

Corps en LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 15 ;
        NETWORK_BODY
B(B_FB,PID_FB!,PID_Control,11,1,19,15,,?BAutomatic?BForward?BI_PD?BSP?BPV?BKp?BTi?BTd?BTs?BLowerLimit?BUpperLimit?BMV?AMV);
B(B_VARIN,,TRUE,9,2,11,4,);
B(B_VARIN,,FALSE,9,3,11,5,);
B(B_VARIN,,FALSE,9,4,11,6,);
B(B_VARIN,,Set_Value_SP,9,5,11,7,);
B(B_VARIN,,Process_Value_PV,9,6,11,8,);
B(B_VARIN,,15,9,7,11,9,);
B(B_VARIN,,200,9,8,11,10,);
B(B_VARIN,,1,9,9,11,11,);
B(B_VARIN,,10,9,10,11,12,);
B(B_VARIN,,0,9,11,11,13,);
B(B_VARIN,,1000,9,12,11,14,);
B(B_VARIN,,Output_Value_MV,9,13,11,15,);
L(1,0,1,15);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

PID_Control( Automatic:= TRUE,
        Forward:= FALSE,
        I_PD:= FALSE,
        SP:= Set_Value_SP,
        PV:= Process_Value_PV,
        Kp:= 15,
        Ti:= 200,
        Td:= 1,
        Ts:= 10,
        LowerLimit:= 0,
        UpperLimit:= 1000,
        MV:= Output_Value_MV);

Corps en IL

Modifié le : 2023-07-06Commentaires sur cette pageAssistance téléphonique