FP_RAMP

Sortie rampe

Cette instruction FP calcule une rampe linéaire basée sur une valeur initiale, une valeur de consigne et un intervalle de temps lorsque le déclencheur EN est TRUE. La valeur de sortie d augmente ou baisse jusqu’à ce que la valeur de consigne soit atteinte.

Paramètres

Entrée

s1_Initial (INT, DINT, UINT, UDINT, REAL, LREAL)

Valeur initiale à partir de laquelle la valeur de sortie augmente ou diminue

s2_Target (INT, DINT, UINT, UDINT, REAL, LREAL)

Valeur de consigne vers laquelle la valeur de sortie augmente ou diminue

s3_RiseTime (INT, DINT, UINT, UDINT)

Intervalle de temps en ms pendant lequel la valeur de sortie augmente ou diminue, de la valeur initiale à la valeur de consigne

Valeurs : 1–30000

Sortie

d (INT, DINT, UINT, UDINT, REAL, LREAL)

Valeur manipulée (valeur de sortie)

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.

  • Si le temps de sortie spécifié par s3_RiseTime est inférieur à 1 ou supérieur à 30000.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.

  • Si le temps de sortie spécifié par s3_RiseTime est inférieur à 1 ou supérieur à 30000.

Thèmes apparentés

Exemple

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
		iInitialValue: INT:=3000;
		iTargetValue: INT:=6000;
		iRiseTime: INT:=1000;
		iOutputValue: INT:=0;
		bRun: BOOL:=FALSE;
	END_VAR

Corps du POU

Lorsque la variable bRun passe à TRUE, la fonction est exécutée et iOutputValue augmente de 3000 (iInitialValue) à 6000 (iTargetValue) en 1000ms (indiqué par iRiseTime).

  • Chronogramme d’augmentation de la valeur de sortie :

    Valeurs d’exemple : iInitialValue = 3000, iTargetValue = 6000, iRiseTime = 1000

    1.  (1) Les données sont initialisées lorsque le système détecte le front montant du déclencheur.
  • Chronogramme de diminution de la valeur de sortie :

    Valeurs d’exemple : iInitialValue = 6000, iTargetValue = 3000, iRiseTime = 1000

    1.  (1) Les données sont initialisées lorsque le système détecte le front montant du déclencheur.

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 := 7 ;
        NETWORK_BODY
B(B_F,FP_RAMP!,,12,1,21,7,,?DEN?Ds1_Initial?Ds2_Target?Ds3_RiseTime?AENO?Cd);
B(B_CONTACT,,bRun,4,2,6,4,);
B(B_VARIN,,iInitialValue,10,3,12,5,);
B(B_VARIN,,iTargetValue,10,4,12,6,);
B(B_VARIN,,iRiseTime,10,5,12,7,);
B(B_VAROUT,,iOutputValue,21,3,23,5,);
L(1,3,4,3);
L(6,3,12,3);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

IF bRun THEN 
    FP_RAMP(s1_Initial := iInitialValue, s2_Target := iTargetValue, s3_RiseTime := iRiseTime, d => iOutputValue);
END_IF;

Modifié le : 2022-10-12Commentaires sur cette pageAssistance téléphonique