CT_FB Compteur décroissant

Le bloc fonction CT_FB permet de réaliser un comptage décroissant. La zone de comptage SV (set value) s’étend de 1 à 32767.

Paramètres

Entrée

Count (BOOL)

Contact comptage (décroissant)

Lorsqu’un front montant est détecté sur Count, la valeur 1 est soustraite de la valeur courante EV jusqu’à ce que la valeur 0 soit atteinte

Reset (BOOL)

Contact réinitialisation

Lorsqu’un front montant est détecté sur Reset, la valeur 0 est affectée à la valeur courante EV et la sortie de signal C est réinitialisée ; lorsqu’un front descendant est détecté sur Reset, la valeur de consigne SV est affectée à la valeur courante EV

SV (INT)

Valeur de consigne

Valeur de EV après réinitialisation

Sortie

C (BOOL)

Sortie de signal

Activée lorsque EV est égale à 0

EV (INT)

Valeur courante

  • Valeur courante du compteur

  • La valeur peut être modifiée pendant le comptage en écrivant dans la variable à partir de l’éditeur de programmation.

Remarques

  • Pour pouvoir fonctionner correctement, le bloc fonction CT_FB doit être réinitialisé avant chaque utilisation.

  • Le nombre de compteurs est limité et dépend des paramètres des registres système 5 et 6. Le compilateur affecte une adresse NUM* à chaque instance du compteur. Les adresses sont affectées de manière décroissante, en commençant par l’adresse la plus élevée.

  • La fonction CT de base (compteur décroissant) utilise la même zone d’adresses NUM* (entrée Num). Pour éviter les erreurs (conflits d’adresses), la fonction CT et le bloc fonction CT_FB ne doivent pas être utilisés ensemble dans un projet.

Chronogramme

  1.  (1) Transfert en mode PROG
  2.  (2) Mode RUN

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
		copy_name: CT_FB;
		set_value: INT:=10;
		signal_output: BOOL:=FALSE;
		count_contact: BOOL:=FALSE;
		Reset_CT: BOOL:=FALSE;
		machine_error: BOOL:=FALSE;
		number_error: INT:=0;
	END_VAR

Corps du POU

Cet exemple utilise des variables. Vous pouvez également utiliser des constantes pour les variables d’entrée. Lorsqu’un front montant est détecté sur count_contact la valeur 1 est soustraite de la valeur courante EV. Signal_output est défini sur TRUE lorsque la valeur courante EV est égale à 0.

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 := 6 ;
        NETWORK_BODY
B(B_FB,CT_FB!,copy_name,9,1,15,6,,?BCount?BReset?BSV?AC?AEV);
B(B_VARIN,,count_contact,7,2,9,4,);
B(B_VARIN,,Reset_CT,7,3,9,5,);
B(B_VARIN,,set_value,7,4,9,6,);
B(B_VAROUT,,signal_output,15,2,17,4,);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_F,E_MOVE!,Instance,10,1,16,5,,?DEN?D?AENO?C);
B(B_VARIN,,copy_name.EV,8,3,10,5,);
B(B_VAROUT,,number_error,16,3,18,5,);
B(B_CONTACT,,machine_error,4,2,6,4,);
L(1,3,4,3);
L(6,3,10,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en IL

Si vous souhaitez appeler le bloc fonction dans une liste d’instructions, entrez ce qui suit :

Modifié le : 2021-08-09Commentaires sur cette pageAssistance téléphonique