F171_PulseOutput_Jog_Positioning

Opération JOG et positionnement

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.

Paramètres

Entrée

s_DUT_DataTable (DUT)

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

F171_PulseOutput_Jog_Positioning_Type0_DUT ou F171_PulseOutput_Jog_Positioning_Type1_DUT
n_iPulseOutputChannel (constante décimale)

Voie de la sortie impulsionnelle :0–3

Remarques

Sélectionnez un des deux modes de fonctionnement :

  • Type 0 : La vitesse peut être modifiée dans l’intervalle de la vitesse de consigne spécifiée.

  • Type 1 : La vitesse de consigne ne peut être modifiée que lorsque l’entrée déclenchement du contrôle de positionnement est passée à TRUE.

Caractéristiques de la sortie impulsionnelle

  1.  (1) Vitesse initiale et finale
  2.  (2) Vitesse de consigne
  3.  (3) Valeur de consigne
  4.  (4) Temps d’accélération
  5.  (5) Temps de décélération
  6.  (6) Condition d’exécution
  7.  (7) Entrée déclenchement du contrôle de positionnement
  8.  (8) Drapeau de contrôle de la sortie impulsionnelle
  • La fréquence de la sortie impulsionnelle change selon les temps d’accélération et de décélération spécifiés.

  • La différence entre la vitesse de consigne et la vitesse initiale détermine la pente de la rampe d’accélération.

  • La différence entre la vitesse de consigne et la vitesse finale détermine la pente de la rampe de décélération.

  • Lorsque l’entrée déclenchement du contrôle de positionnement devient TRUE, la sortie impulsionnelle continue puis elle décélère et s’arrête lorsque la valeur de consigne est atteinte.

Arrêt de la sortie impulsionnelle

La sortie impulsionnelle peut être arrêtée d’une des façons suivantes :

  • En activant l’entrée déclenchement du contrôle de positionnement (TRUE). La sortie impulsionnelle continue jusqu’à ce que la valeur de consigne soit atteinte et s’arrête lorsque la décélération est terminée. Le déclencheur du contrôle de positionnement peut également être démarré en activant l’entrée déclenchement du contrôle de positionnement (TRUE) et en définissant le bit 6 du registre de données, dans lequel le code de contrôle de la sortie impulsionnelle est sauvegardé, de FALSE à TRUE (par ex. MOVE(16#140, sys_wHscOrPulseControlCode);).

  • Demande d’arrêt décéléré : Pour effectuer un arrêt décéléré, définissez le bit 5 du registre de données, dans lequel le code de contrôle de la sortie impulsionnelle est sauvegardé, sur FALSE puis sur TRUE (par ex. MOVE(16#120, sys_wHscOrPulseControlCode);). Lorsqu’un arrêt décéléré est demandé pendant l’accélération, la décélération est réalisée avec la même pente que la décélération à partir de la vitesse de consigne.

  • Exécution d’un arrêt d’urgence : pour effectuer un arrêt d’urgence, définissez le bit 3 du registre de données, dans lequel le code de contrôle de la sortie impulsionnelle est sauvegardé, de FALSE à TRUE (par ex. MOVE(16#108, sys_wHscOrPulseControlCode);).

NOTA

En cas d’arrêt, désactivez toutes les fonctions de sortie impulsionnelle pour la voie utilisée dans le programme.

Opération JOG, type 0

Utilisez le DUT prédéfini suivant : F171_PulseOutput_Jog_Positioning_Type0_DUT

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

  • Code de contrôle

  • Vitesse initiale et finale

  • Vitesse de consigne

  • Temps d’accélération

  • Temps de décélération

  • Valeur de consigne

La vitesse de consigne peut être modifiée pendant la sortie impulsionnelle.Modifier la vitesse de consigne pendant la sortie impulsionnelle

Sans modification de la vitesse de consigne :

Avec modification de la vitesse de consigne :

  1. Vitesse initiale et finale

  2. Vitesse de consigne

  3. Valeur de consigne

  4. Temps d’accélération

  5. Temps de décélération

  6. Condition d’exécution

  7. Entrée déclenchement du contrôle de positionnement

  8. Drapeau de contrôle de la sortie impulsionnelle

  • Pour modifier la vitesse, maintenez la condition d’exécution sur TRUE.

  • Si la vitesse de consigne est définie sur une valeur supérieure à 50kHz, elle sera corrigée et ramenée à 50kHz.

  • Si la valeur courante atteint une zone non autorisée au départ de l’accélération (par ex. sys_diPulseChannel0AccelerationForbiddenAreaStartingPosition) l’accélération ne sera pas exécutée.

  • La vitesse de décélération ne peut pas être inférieure à la vitesse finale corrigée.

  • La vitesse de consigne ne peut pas être modifiée lorsque l’instruction est exécutée pendant un programme d’interruption.

Opération JOG, type 1

Utilisez le DUT prédéfini suivant : F171_PulseOutput_Jog_Positioning_Type1_DUT

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

  • Code de contrôle

  • Vitesse initiale et finale

  • Vitesse de consigne1

  • Temps d’accélération

  • Vitesse de consigne2

  • Temps de passage

  • Temps de décélération

  • Valeur de consigne

Vitesse de consigne 1 < vitesse de consigne 2 :

Vitesse de consigne 1 > vitesse de consigne 2 :

  1. Vitesse initiale et finale

  2. Vitesse de consigne

  3. Vitesse de consigne

  4. Valeur de consigne

  5. Temps d’accélération

  6. Temps de passage

  7. Temps de décélération

  8. Condition d’exécution

  9. Entrée déclenchement du contrôle de positionnement

Lorsque l’entrée déclenchement du contrôle de positionnement devient TRUE, la fréquence de la sortie impulsionnelle est modifiée. En fonction du temps de passage, la fréquence augmente ou diminue jusqu’à atteindre la vitesse de consigne 2. D’autres modifications de la vitesse de consigne sont impossibles. L’entrée déclenchement du contrôle de positionnement n’est pas prise en compte si elle est activée pendant l’accélération.

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.

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

  • Paramétrage de l’entrée déclenchement du contrôle de positionnement (X0, X1, X2, X3) dans le registre système 402.

  • Pour l’entrée déclenchement du contrôle de positionnement, seul le front montant (TRUE) est détecté.

  • Cette instruction ne peut pas être démarrée lorsqu’un arrêt décéléré a été demandé.

  • Pour redémarrer après avoir arrêté l’opération, mettez la condition d’exécution sur FALSE et à nouveau sur TRUE.

  • Dans votre programme de positionnement, nous recommandons fortement de permettre un arrêt forcé.

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

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
		Start: BOOL:=FALSE;
		dutJog: F171_PulseOutput_Jog_Positioning_Type0_DUT:=dwControlCode := 16#010,
diInitialAndFinalSpeed := 1000,
diTargetSpeed := 7000,
diAccelerationTime := 300,
diDecelerationTime := 450,
diTargetValue := 10000;
			(*Digit3: 0=Pulse output
Digit2: 1=Fixed
Digit0: 0=CW/CCW2*)
		diInitialAndFinalSpeed: DINT:=1000;
		@'': @'';
	END_VAR

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 := 5 ;
        NETWORK_BODY
B(B_F,E_MOVE!,Instance,13,0,19,4,,?DEN?D?AENO?C);
B(B_VARIN,,diInitialAndFinalSpeed,11,2,13,4,);
B(B_VAROUT,,dutJog.diInitialAndFinalSpeed,19,2,21,4,);
B(B_CONTACT,,Start,6,1,8,3,);
L(1,2,6,2);
L(8,2,13,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,F171_PulseOutput_Jog_Positioning!,Instance,8,0,24,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutJog,6,2,8,4,);
B(B_VARIN,,0,6,3,8,5,);
B(B_CONTACT,,Start,2,1,4,3,);
L(1,2,2,2);
L(4,2,8,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

IF (Start) then
    dutJog.diInitialAndFinalSpeed:=diInitialAndFinalSpeed;
END_IF;
IF (Start) then
  F171_PulseOutput_Jog_Positioning(s_dutDataTable := dutJog, 0);
END_IF;

Modifié le : 2023-03-16Feedback on this pagePanasonic hotline