Pulse_TargetValueMatch_Set

Valeur de consigne atteinte : activation de la sortie (sortie impulsionnelle)

Lorsque la valeur courante correspond à la valeur de consigne diTargetValue de la voie de sortie impulsionnelle spécifiée par iChannel, le drapeau de sortie spécifié par pYOutput devient immédiatement TRUE.

Paramètres

Entrée

bExecute (BOOL)

Un front montant active la fonction. Évaluez le drapeau de contrôle de la voie de sortie impulsionnelle avec PulseInfo_IsTargetValueMatchActive

iChannel (INT)

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

pYOutput (POINTER)

Résultat du pointeur obtenu via GetPointer à partir d’une variable globale qui renvoie le numéro de voie et la sortie

diTargetValue (DINT)

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

bError (BOOL)

TRUE si la combinaison de 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.

Remarques

Cette instruction non inline fait partie des instructions Tool pour sorties impulsionnelles. Pour en savoir plus sur les instruction(s) utilisées en interne, voir :F166_PulseOutput_Set

NOTA

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 :%sPulse_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 sortie impulsionnelle 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

Exemple

Optionnel Modèle fixe Optionnel
g_b Pulse_TargetValueMatch_ChannelA_Y11F _MotorOn

Cette variable globale génère le code pour la voie A et la sortie Y11F.

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
		g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On: BOOL:=FALSE;
	END_VAR
	VAR 
		diTargetValue0: DINT:=11000;
		iChannel1: INT:=1;
		bIsActive: BOOL:=FALSE;
		bErrorSet: BOOL:=FALSE;
		bSet: BOOL:=FALSE;
	END_VAR

Corps en LD

Utilisez PulseInfo_IsTargetValueMatchActive pour vérifier si la voie iChannel1 est active. 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_bPulse_TargetValueMatch_Channel1_YA_Horn1_On. Lorsque la sortie impulsionnelle sur la voie 1 atteint la valeur de consigne diTargetValue0, la sortie YA 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_VARIN,,iChannel1,7,1,9,3,);
B(B_VAROUT,,bIsActive,26,1,28,3,);
B(B_F,PulseInfo_IsTargetValueMatchActive!,,9,0,26,3,,?DiChannel?C);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_VAROUT,,bErrorSet,51,1,53,3,);
B(B_CONTACT,,bSet,3,1,5,3,R);
B(B_CONTACT,,bIsActive,7,1,9,3,N);
B(B_VARIN,,iChannel1,32,2,34,4,);
B(B_VARIN,,diTargetValue0,32,4,34,6,);
B(B_F,GetPointer!,,27,3,34,5,,?D?C);
B(B_VARIN,,g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On,25,3,27,5,);
B(B_F,Pulse_TargetValueMatch_Set!,,34,0,48,6,,?DbExecute?DiChannel?DpYOutput?DdiTargetValue?CbError);
L(5,2,7,2);
L(1,2,3,2);
L(9,2,34,2);
L(48,2,51,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

bIsActive:=PulseInfo_IsTargetValueMatchActive(iChannel1);
Pulse_TargetValueMatch_Set(bExecute := DF(bSet) AND NOT bIsActive,
             iChannel := iChannel1,
             pYOutput := GetPointer(g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On),
             diTargetValue := diTargetValue0,
             bError => bErrorSet);

Modifié le : 2021-11-10Feedback on this pagePanasonic hotline