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.
Entrée
Voie du compteur rapide : 0–3
Adresse de départ de la zone contenant le tableau de données
Sortie
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.
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.
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
1000–4999 R100 : TRUE
7000–8999 R101 : TRUE
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.
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. |
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) ![]() |
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.
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
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
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.
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
bEnable: BOOL:=FALSE;
dutF165FP0H_CH0: F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT;
END_VAR
VAR_EXTERNAL
g_dutCamControl_WY0: BOOL32_OVERLAPPING_DUT;
END_VAR
La fonction est exécutée lorsque la variable bEnable est définie sur TRUE.
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
if (bEnable) then
F165_HighSpeedCounter_Cam(iHscChannel := 0, s_dutDataTable := dutF165FP0H_CH0,
dutBitOutputs => g_dutCamControl_WY0);
end_if;