F165_HighSpeedCounter_Cam

Contrôle de cames pour FP0H

Cette instruction exécute un contrôle de cames en fonction des paramètres du DUT spécifié avec un maximum de 32 valeurs de consigne selon la valeur courante du compteur rapide. Pour chaque sortie de came, la valeur de consigne est définie par pair avec une valeur d’activation et une valeur de désactivation.

Un programme d’interruption peut être exécuté lorsque la valeur courante atteint une des valeurs de consigne.

Paramètres

Entrée

iHscChannel* (INT)

Voie du compteur rapide : 0–3

s_dutDataTable (ANY_DUT)

Adresse de départ de la zone contenant le tableau de données

Sortie

dutBitOutputs (ANY_DUT)

Adresse de départ (WR, WL ou WY) de la zone contenant l’adresse de sortie en mots, par ex. BOOL32_OVERLAPPING_DUT. Sélectionnez la taille (16 ou 32 bits) en fonction du nombre défini avec diNumberOfTargetValuesAndOutputRelays.

Remarques

  • Entrée

    Créez votre DUT à l’aide de l’exemple de DUT suivant : F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT

    Les paramètres suivants peuvent être indiqués dans le DUT :

    • Code de contrôle

    • Adresse de sorties en mots

    • Nombre de valeurs de consignes

      (valeurs d’activation/désactivation de F165_HighSpeedCounter_Target_Values_OnOff_DUT)

    • Valeur de consigne maximale

      Plage de configuration : 1–2147483646 (16#1–16#7FFFFFFE)

  • Sortie

    • Si le nombre de valeurs de consigne est dans l’intervalle de 1–16, un mot est utilisé. Si le nombre de valeurs de consigne est dans l’intervalle de 17–32, deux mots sont utilisés.

    • Exemple : Lorsque l’adresse de sortie est définie sur "Drapeau interne", l’adresse de départ en mots de la sortie est définie sur "0", et le nombre de valeurs de consigne est défini sur "32", R0 à R1F sont affectés en tant qu’adresse pour la sortie de cames.

    1.  (1) Lorsque la valeur courante atteint la valeur de consigne 1, R0 devient ON ou OFF.
    2.  (2) Lorsque la valeur courante atteint la valeur de consigne 16, RF devient ON ou OFF.
    3.  (3) Lorsque la valeur courante atteint la valeur de consigne 18, R11 devient ON ou OFF.
    NOTA

    Lorsque vous avez spécifié le drapeau de sortie (Y), les valeurs sont sorties vers la sortie de l’unité centrale et les mémoires de travail.

  • Exemple

    1.  (1) Valeur courante
    2.  (2) Valeur de consigne 1 ; valeur d’activation : 1000

      1000–4999 R100 : TRUE

    3.  (3) Valeur de consigne ; valeur de désactivation : 5000
    4.  (4) Valeur de consigne 2 ; valeur d’activation : 7000

      7000–8999 R101 : TRUE

    5.  (5) Valeur de consigne ; valeur de désactivation : 9000

Contrôle de la valeur de consigne maximale

  • Avec F165_HighSpeedCounter_Cam, il est possible d’exécuter le contrôle avec une valeur maximale spécifiée. Les paramètres d’activation/désactivation du contrôle des valeurs de consigne maximales et de la valeur de consigne maximale sont spécifiés dans le tableau de données.

  • Le tableau des données varie dans l’intervalle de 12 à 138 mots selon le nombre de valeurs de consigne et les paramètres de la valeur de consigne maximale spécifiés.

NOTA

La valeur de consigne maximale de fin du tableau de données est valide uniquement lorsque le contrôle de la valeur de consigne est défini sur 16#0010 (avec la valeur maximale) dans dwCamControlCode. Ce paramètre peut être omis lorsque le contrôle de la valeur de consigne est défini sur 16#0000 (sans valeur maximale).

Activé

Désactivé

Plage de comptage

0 à la valeur de consigne

Valeur minimale négative à la valeur maximale positive

Fonctionnement lorsque l’intervalle de comptage est dépassé

Comptage incrémental :

Lorsque la valeur courante dépasse la valeur de consigne, il est mis à 0.

Lorsque la valeur courante dépasse la valeur maximale positive, il retourne à la valeur minimale négative.

Comptage décrémental :

Le pointeur du tableau de données se déplace de la dernière valeur de consigne à la valeur de consigne 1.

Lorsque la valeur courante est inférieure à 0, il est défini avec la valeur de consigne.

Lorsque la valeur courante est inférieure à la valeur minimale négative, il retourne à la valeur maximale positive.

Caractéristiques des valeurs de consignes

La sortie varie selon les valeurs de consigne d’activation et de désactivation.

  • Valeur de consigne de désactivation > valeur de consigne d’activation

    Lorsque la valeur courante est supérieure ou égale à la valeur de consigne d’activation et inférieure à la valeur de consigne de désactivation, le bit de sortie correspondant est activé. Lorsque la valeur courante est en dehors de l’intervalle autorisé, le bit correspondant est désactivé.

    Comptage incrémental :

    Comptage décrémental :

    Valeur de consigne de désactivation (1) > valeur de consigne d’activation (2)

  • Valeur de consigne d’activation > valeur de consigne de désactivation

    Lorsque la valeur courante est inférieure à la valeur de consigne d’activation et supérieure ou égale à la valeur de consigne de désactivation, le bit de sortie correspondant est désactivé. Lorsque la valeur courante est en dehors de l’intervalle autorisé, le bit correspondant est activé.

    Comptage incrémental :

    Comptage décrémental :

    Valeur de consigne d’activation (1) > valeur de consigne de désactivation (2)

  • Valeur de consigne d’activation = valeur de consigne de désactivation

    Lorsque la valeur courante est en dehors de l’intervalle autorisé, le bit correspondant est désactivé.

    Comptage incrémental :

    Comptage décrémental :

    Valeur de consigne d’activation (1) = valeur de consigne de désactivation (2)

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.

  • 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.

  • Cette instruction peut être exécutée simultanément sur un maximum de deux voies.

  • 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. Lorsque vous définissez le bit 3 de sys_wHscOrPulseControlCode sur TRUE, vous désactivez également le contrôle de la valeur de consigne maximale. Lorsque le contrôle de la valeur de consigne maximale est arrêté, la sortie de came est maintenue et le compteur rapide continue le comptage.

  • Réinitialisez ou prédéfinissez la valeur courante du compteur rapide avant d’activer l’instruction.

  • Réécrire la valeur courante pour la voie utilisée pendant que l’instruction est exécutée peut provoquer un fonctionnement inattendu.

  • Si l’instruction est exécutée dans le programme principal, veillez à ce que l’écart de temps minimum entre les valeurs de consigne adjacentes soit supérieur à la durée du cycle.

  • Si l’instruction est exécutée dans un programme d’interruption, veillez à ce que l’écart de temps minimum entre les valeurs de consigne adjacentes soit supérieur au temps d’exécution maximum du programme d’interruption.

  • Si vous utilisez une entrée reset ou une réinitialisation via le logiciel, veillez à ce que la valeur de consigne 1 soit un nombre entier ³ 1.

  • Lorsque le contrôle de la valeur maximale est utilisé avec une entrée reset ou une réinitialisation via le logiciel, veillez à ne pas les utiliser en même temps.

  • Si une réinitialisation (via matériel ou logiciel) est exécutée pendant le contrôle du compteur rapide, la valeur courante du compteur rapide est réinitialisée à 0. La sortie affectée à la sortie de came dépend de la valeur courante 0.

  • Il est également possible de démarrer le programme d’interruption INTn à chaque fois que la valeur courante atteint chaque valeur de consigne. Pour cette opération, l’activation du programme d’interruption doit être autorisée par l’instruction de contrôle d’interruption ICTL.

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.
  • Si la valeur de consigne est > la valeur de consigne maximale.

  • Si la valeur de consigne = 0

  • Si les valeurs de consigne ne sont pas disposées dans l’ordre croissant

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.
  • Si la valeur de consigne est > la valeur de consigne maximale.

  • Si la valeur de consigne = 0

  • Si les valeurs de consigne ne sont pas disposées dans l’ordre croissant

Exemple avec la voie 0 de FP0H

DUT

Le DUT F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT est prédéfini dans la bibliothèque FP Library et peut être utilisé en tant que modèle.

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
		bEnable: BOOL:=FALSE;
		dutF165FP0H_CH0: F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT;
	END_VAR
	VAR_EXTERNAL
		g_dutCamControl_WY0: BOOL32_OVERLAPPING_DUT;
	END_VAR

Corps du POU

La fonction est exécutée lorsque la variable bEnable est définie sur TRUE.

Corps en LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_CONTACT,,bEnable,5,1,7,3,);
B(B_F,F165_HighSpeedCounter_Cam!,,14,0,28,5,,?DEN?HiHscChannel?Ds_dutDataTable?AENO?CdutBitOutputs);
B(B_VARIN,,0,12,2,14,4,);
B(B_VAROUT,,g_dutCamControl_WY0,28,2,30,4,);
B(B_VARIN,,dutF165FP0H_CH0,12,3,14,5,);
L(1,0,1,6);
L(1,2,5,2);
L(7,2,14,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

if (bEnable) then
    F165_HighSpeedCounter_Cam(iHscChannel := 0, s_dutDataTable := dutF165FP0H_CH0,
                              dutBitOutputs => g_dutCamControl_WY0);
end_if;

Modifié le : 2023-04-03Commentaires sur cette pageAssistance téléphonique