F167_HighSpeedCounter_Reset

Valeur de consigne atteinte : désactivation de la sortie

Lorsque la valeur courante du compteur rapide correspond à la valeur de consigne, un processus d’interruption commute immédiatement la sortie spécifiée sur FALSE.

Paramètres

Entrée

n_diHscChannel (DINT)

Voie du compteur rapide :

FP-S : 0–3

FP-X R : 0–11

FP-X T : 0–7

FP0 : 0–3

F168_PulseOutput_Trapezoidal : 0–3

F171_PulseOutput_Trapezoidal : 0–5

s_diTargetValue (DINT)

Permet d’indiquer une valeur de données de 32 bits pour la valeur de consigne dans l’intervalle suivant :

FP0, F168_PulseOutput_Trapezoidal : -838808–+8388607

FPS, FP-X, F171_PulseOutput_Trapezoidal : -2147483467–+2147483648

Sortie

d_Y (BOOL)

Sortie passant à FALSE lorsque la valeur courante correspond à la valeur de consigne :

FP-S, FP0, F168_PulseOutput_Trapezoidal : Y0–Y7

FP-S (V3.1 ou supérieure), F171_PulseOutput_Trapezoidal : Y0–Y1F

FP-X : Y0–Y29F

Remarques

Caractéristiques du contrôle de désactivation de la sortie, valeur de consigne atteinte

  • -200 Valeur de consigne
  1.  (1) Valeur courante du compteur rapide
  2.  (2) Condition d’exécution
  3.  (3) Drapeau de contrôle du compteur rapide
  4.  (4) Sortie API
  • La sortie API passe à FALSE lorsque la valeur courante correspond à la valeur de consigne. De plus, le drapeau de contrôle du compteur rapide passe à FALSE et l’instruction est désactivée.

  • Si la sortie spécifiée n’est pas implémentée, seule la mémoire interne de l’adresse WY correspondante est définie ou réinitialisée.

Opération d’interruption

Le programme d’interruption est exécuté lorsque la valeur courante correspond à la valeur de consigne. Toute interruption entrée dans la liste des tâches est activée automatiquement. Un numéro de programme d’interruption spécial est affecté à chaque numéro de voie.

Voies utilisées par les programmes d’interruption :

Type d’API

FP0, FP-e

FPS, FP0H

FP-X (Types relais), FP-XH

FP-X (Types transistor)

FP0R

Interrupt0

Voie0

Voie0

Voie0

Voie0

Voie0

Interrupt1

Voie1

Voie1

Voie1

Voie1

Voie1

Interrupt2

Voie2

Voie2

Interrupt3

Voie2

Voie2

Voie3

Voie3

Voie2

Interrupt4

Voie3

Voie3

Voie4

Voie4

Voie3

Interrupt5

Voie5

Voie5

Interrupt6

Voie6

Voie6

Voie4

Interrupt7

Voie7

Voie7

Voie5

Interrupt8

Voie8

Interrupt9

Voie9

Interrupt10

Interrupt11

VoieA

Interrupt12

VoieB

Informations générales sur la programmation

  • Sélectionnez l’entrée du compteur rapide pour la voie désirée dans les registres système.

  • FP-X, FP0R : Lors de l’exécution d’une instruction du compteur rapide, le drapeau de contrôle du compteur rapide (par ex. sys_bIsHscChannel0ControlActive) pour la voie utilisée passe à TRUE. Aucune autre instruction du compteur rapide utilisant la même voie ne peut être exécutée tant que le drapeau de contrôle est TRUE.

  • FP0, FP-e, FPS : Le drapeau de contrôle du compteur rapide (par ex. sys_bIsHscChannel0ControlActive) et le drapeau de contrôle de la sortie impulsionnelle (par ex. sys_bIsPulseChannel0Active) sont affectés au même drapeau interne (par ex. R903A). Par conséquent, lorsqu’une instruction du compteur rapide ou de la sortie impulsionnelle est exécutée, le drapeau de contrôle du compteur rapide (par ex. sys_bIsHscChannel0ControlActive) et le drapeau de contrôle de la sortie impulsionnelle (par ex. sys_bIsPulseChannel0Active) pour la voie utilisée sont sur TRUE. Aucune instruction du compteur rapide ou de la sortie impulsionnelle ne peut être exécutée tant que ce drapeau est sur TRUE.

  • Si le programme principal et le programme d’interruption contiennent le code de la même voie, veillez à ce qu’ils ne soient pas exécutés simultanément.

  • Pour qu’une sortie API passe à FALSE après avoir été commutée sur TRUE par cette instruction, utilisez une instruction RST ou MOVE.

  • Pour annuler l’exécution d’une instruction, définissez le bit 3 du registre de données, dans lequel le code de contrôle du compteur rapide (sys_wHscOrPulseControlCode) est sauvegardé, sur TRUE. Le drapeau de contrôle du compteur rapide passe à FALSE. Pour que l’instruction puisse être à nouveau exécutée, définissez le bit 3 sur FALSE.

  • L’état du drapeau de contrôle du compteur rapide ou du drapeau de la sortie impulsionnelle peut changer au cours d’une scrutation. Par exemple, si le nombre d’octets reçus est lu plusieurs fois, il peut y avoir plusieurs états au cours d’une scrutation.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si le numéro de voie ou les valeurs du tableau de données sont en dehors de l’intervalle autorisé.
  • Si le compteur rapide n’a pas été défini dans les registres système.
sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si le numéro de voie ou les valeurs du tableau de données sont en dehors de l’intervalle autorisé.
  • Si le compteur rapide n’a pas été défini dans les registres système.

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
		out_0: BOOL:=FALSE;
			(*output Y0 of PLC*)
	END_VAR
	VAR 
		start: BOOL:=FALSE;
			(*start condition*)
	END_VAR

Corps du POU

La fonction est exécutée lorsque la variable start est sur TRUE.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_VARIN,,0,10,2,12,4,);
B(B_VARIN,,-200,10,3,12,5,);
B(B_CONTACT,,start,5,1,7,3,R);
B(B_VAROUT,,out_0,27,2,29,4,);
B(B_F,F167_HighSpeedCounter_Reset!,Instance,12,0,27,5,,?DEN?Hn_diHscChannel?Ds_diTargetValue?AENO?Cd_Y);
L(1,2,5,2);
L(7,2,12,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en LD

Corps en ST

IF DF(start) then
    F167_HighSpeedCounter_Reset(n_diHscChannel := 0, 
              s_diTargetValue := -200, 
              d_Y => out_0);
END_IF;
NOTA

Affectez une valeur à la variable d’entrée (par ex. “Monitoring” > “Monitoring de l’en tête”, sélectionnez la variable, entrez la valeur, appuyez sur <Entrée>) ou remplacez les variables d’entrée par des valeurs.

Modifié le : 2022-06-23Feedback on this pagePanasonic hotline