Opération JOG
Cette instruction est utilisée pour l’opération JOG. Le nombre d’impulsions indiqué est sorti lorsque l’entrée déclenchement du contrôle de positionnement devient TRUE. La sortie impulsionnelle décélère jusqu’à ce que la valeur de consigne soit atteinte puis elle s’arrête. Les impulsions sont émises en sortie de la voie indiquée lorsque le drapeau de contrôle de cette voie est FALSE et la condition d’exécution est TRUE.
Entrée
Adresse de départ de la zone contenant le tableau de données
FP-S, FP-X:
F172_PulseOutput_Jog_Type0_DUT_0
F172_PulseOutput_Jog_Type1_DUT_0
FP0R:
F172_PulseOutput_Jog_Type0_DUT_1
F172_PulseOutput_Jog_Type1_DUT_1
Voie de la sortie impulsionnelle :
FP-XH C30 T/P: 0–3
FP-XH C60 T/P: 0–5
FP-S: 0,2
FP-X R: 0,1
FP-XC14T: 0,1,2
FP-X C30T/C60T: 0,1,2,3
FP0R: 0,1,2,3
Utilisez le DUT prédéfini suivant : F172_PulseOutput_Jog_Type0_DUT_0 (Mode avec valeur de consigne) ou F172_PulseOutput_Jog_Type1_DUT_0 (Mode arrêt valeur de consigne atteinte)
Les paramètres suivants peuvent être indiqués dans le DUT :Caractéristiques de la sortie impulsionnelle
La fréquence et la valeur de consigne peuvent être modifiées à chaque scrutation. Le code de contrôle, cependant, ne peut pas être modifié pendant l’exécution de l’instruction. Sélectionnez un des deux modes de fonctionnement :
Mode avec valeur de consigne (type 0) :
Mode arrêt valeur de consigne atteinte (type 1) :
Arrêt de la sortie lorsque la valeur de consigne est atteinte. Définissez ce mode dans le code de contrôle et indiquez la valeur de consigne (une valeur absolue) dans le DUT. (FPSV1.4 ou supérieure, FP-X)
Informations générales sur la programmation
Dès que vous éditez un programme utilisant cette instruction en mode en ligne (c.à-d. en mode RUN), la sortie impulsionnelle s’arrête.
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.
FP-X : Lorsqu’une instruction de sortie impulsionnelle est exécutée et lorsque des impulsions sont sorties, le drapeau de contrôle de la sortie impulsionnelle (par ex. sys_bIsPulseChannel0Active) de la voie correspondante est TRUE. Aucune autre instruction de sortie impulsionnelle ne peut être exécutée tant que ce drapeau est TRUE.
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.
FPS : L’exécution de l’instruction de contrôle de l’interpolation circulaire F176_PulseOutput_Center définit le drapeau de contrôle de l’interpolation circulaire (sys_bIsCircularInterpolationActive) sur TRUE. L’état de ce drapeau est maintenu jusqu’à ce que la valeur de consigne soit atteinte (même si la condition d’exécution n’est plus TRUE). Pendant ce temps, les autres instructions de sortie impulsionnelle ne peuvent pas être exécutées.
FPS : Définissez un des compteurs rapides affectés à une voie de sortie impulsionnelle sur "Inutilisé" dans les registres système.
FP-X : Définissez "Sortie impulsionnelle" pour la voie souhaitée dans les registres système.
Si l’exécution de l’instruction est démarrée avec une valeur de fréquence invalide, une erreur de fonctionnement apparaît. Si la fréquence est modifiée pendant l’exécution de l’instruction et si la valeur est invalide, la sortie de la fréquence sera ajustée soit à la valeur minimale soit à la valeur maximale de l’intervalle autorisé.
Dans votre programme de positionnement, nous recommandons fortement de permettre un arrêt forcé.
Utilisez le DUT prédéfini suivant : F172_PulseOutput_Jog_Type0_DUT_1 (Mode avec valeur de consigne) ou F172_PulseOutput_Jog_Type1_DUT_1 (Mode arrêt valeur de consigne atteinte)
Les paramètres suivants peuvent être indiqués dans le DUT :
Caractéristiques de la sortie impulsionnelle
Sélectionnez un des deux modes de fonctionnement :
Mode avec valeur de consigne (type 0) :
Les impulsions sont émises en sortie, en fonction des conditions définies dans le DUT, tant que la condition d’exécution est TRUE. Un arrêt décéléré commence lorsque la condition d’exécution est FALSE.
Mode arrêt valeur de consigne atteinte (type 1) :
Arrêt de la sortie lorsque la valeur de consigne est atteinte. Définissez ce mode dans le code de contrôle et indiquez la valeur de consigne (une valeur absolue) dans le DUT. Un arrêt décéléré se produit lorsque la valeur de consigne est atteinte. La décélération est réalisée dans le temps de décélération indiqué.
Modifier la vitesse de consigne pendant la sortie impulsionnelle
La vitesse de décélération ne peut pas être inférieure à la vitesse finale corrigée.
Informations générales sur la programmation
Dès que vous éditez un programme utilisant cette instruction en mode en ligne (c.à-d. en mode RUN), la sortie impulsionnelle s’arrête.
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.
Dans votre programme de positionnement, nous recommandons fortement de permettre un arrêt forcé.
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
bActivateJog: BOOL:=FALSE;
END_VAR
VAR
dutJog: F172_PulseOutput_Jog_Type0_DUT_0:=dwControlCode := 16#1110;
(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 1=Frequency range 48Hz-100kHz
Digit 1: 1=Incremental counting
Digit 0: 0=CW*)
diSpeed: DINT:=300;
@'': @'';
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_CONTACT,,bActivateJog,4,1,6,3,);
B(B_F,E_MOVE!,Instance,16,0,22,4,,?DEN?D?AENO?C);
B(B_VARIN,,diSpeed,14,2,16,4,);
B(B_VAROUT,,dutJog.diSpeed,22,2,24,4,);
L(1,2,4,2);
L(6,2,16,2);
L(1,0,1,4);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,bActivateJog,4,1,6,3,);
B(B_VARIN,,dutJog,14,2,16,4,);
B(B_VARIN,,0,14,3,16,5,);
B(B_F,F172_PulseOutput_Jog!,Instance,16,0,29,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
L(1,2,4,2);
L(6,2,16,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
(bActivateJog) then
dutJog.diSpeed:=diSpeed;
END_IF;
IF (bActivateJog) then
F172_PulseOutput_Jog(s_dutDataTable := dutJog, 0);
END_IF;