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.
Entrée
Valeur initiale à partir de laquelle la valeur de sortie augmente ou diminue
Valeur de consigne vers laquelle la valeur de sortie augmente ou diminue
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
Valeur manipulée (valeur de sortie)
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.
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.
Instructions F correspondantes : F284_RAMP
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
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
Chronogramme de diminution de la valeur de sortie :
Valeurs d’exemple : iInitialValue = 6000, iTargetValue = 3000, iRiseTime = 1000
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
IF bRun THEN
FP_RAMP(s1_Initial := iInitialValue, s2_Target := iTargetValue, s3_RiseTime := iRiseTime, d => iOutputValue);
END_IF;