Valeur de consigne atteinte : activation de la sortie
Lorsque la valeur courante correspond à la valeur de consigne diTargetValue de la voie du compteur rapide spécifiée par iChannel, le drapeau de sortie spécifié par pYOutput devient immédiatement TRUE.
Entrée
FPS: 0, 2
FP-X R : 0, 1
FP-X 16K C14T : 0, 1, 2
FP-X 32K C30T, C60T : 0, 1, 2, 3
FP0R: 0, 1, 2, 3
FP0 : 0, 1
FP-e : 0, 1
Permet d’indiquer une valeur de données de 32 bits pour la valeur de consigne dans l’intervalle suivant :
FP0, FP-e : -838808–+8388607
FPS, FP-X, FP0R: -2147483467–+2147483648
Sortie
Channel%d
et pYOuput.iOffset
ne correspond pas à une combinaison valide de numéro de voie et de sortie telle que déterminée par la variable globale.Cette instruction non inline fait partie des instructions Tool pour compteurs rapides. Pour en savoir plus sur les instruction(s) utilisées en interne, voir : F167_HighSpeedCounter_Reset F166_HighSpeedCounter_Set
Pour valider la combinaison de la voie et de la sortie Y, le compilateur requiert le modèle de nom suivant pour les variables globales :%sHsc_TargetValueMatch_Channel%d_Y%d_%s
Utilisez toujours ce modèle pour les variables globales dans la fonction de contrôle de la sortie lorsque la valeur de consigne est atteinte.
Channel%d
doit être un numéro de voie de compteur rapide, activé dans les registres système
Y%d
doit être une adresse de sortie explicite prise en charge par l’automate
FP-S, FP0, FP-e: |
Y0–Y7 |
FP-S (V3.1 ou supérieure), FP0R : |
Y0–Y1F |
FP-X : |
Y0–Y29F |
%s
est un descripteur optionnel au début du modèle
_%s
est un descripteur optionnel à la fin du modèle
Optionnel | Modèle fixe | Optionnel |
g_b |
Hsc_TargetValueMatch_ChannelA_Y11F |
_MotorOn |
Dans la liste des variables globales, vous définissez des variables qui sont accessibles par tous les POU dans le projet.
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
VAR
bExecute: BOOL:=0;
iChannel1: INT:=1;
diTargetValue0: DINT:=15000;
bIsActive: BOOL:=FALSE;
diElapsedValue: DINT:=0;
bSet: BOOL:=FALSE;
bErrorSet: BOOL:=FALSE;
END_VAR
Utilisez HscInfo_IsActive pour contrôler la voie spécifiée par iChannel1. Lorsqu’un front montant est détecté sur bSet et lorsque bIsActive n’est pas TRUE, l’instruction est exécutée. La combinaison du numéro de voie et du contact de sortie est validée dans la variable globale g_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On. Lorsque le compteur rapide sur la voie 1 atteint la valeur de consigne diTargetValue0, la sortie Y1 devient TRUE.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 3 ;
NETWORK_BODY
B(B_F,HscInfo_IsActive!,,9,0,18,3,,?DiChannel?C);
B(B_VARIN,,iChannel1,7,1,9,3,);
B(B_VAROUT,,bIsActive,18,1,20,3,);
L(1,0,1,3);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 7 ;
NETWORK_BODY
B(B_VAROUT,,bErrorSet,46,1,48,3,);
B(B_CONTACT,,bSet,2,1,4,3,R);
B(B_CONTACT,,bIsActive,6,1,8,3,N);
B(B_VARIN,,iChannel1,31,2,33,4,);
B(B_VARIN,,diTargetValue0,31,4,33,6,);
B(B_F,GetPointer!,,26,3,33,5,,?D?C);
B(B_VARIN,,g_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On,24,3,26,5,);
B(B_F,Hsc_TargetValueMatch_Set!,,33,0,46,6,,?DbExecute?DiChannel?DpYOutput?DdiTargetValue?CbError);
L(1,2,2,2);
L(4,2,6,2);
L(8,2,33,2);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
bIsActive:=HscInfo_IsActive(iChannel1);
Hsc_TargetValueMatch_Set(bExecute := DF(bSet) AND NOT bIsActive,
iChannel := iChannel1,
pYOutput := GetPointer(g_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On),
diTargetValue := diTargetValue0,
bError => bErrorSet);