F171_PulseOutput_Home

Retour à l’origine

Cette instruction exécute un retour à l’origine en fonction des paramètres du DUT indiqué. 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_dutDataTable (F171_PulseOutput_Home_DUT)

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

n_iPulseOutputChannel* (constante décimale)

Voie de la sortie impulsionnelle :

FP-S : 0,2

FP-X R : 0,1

FP-XC14T : 0,1,2

FP-X C30T/C60T : 0,1,2,3

Remarques

Après l’activation du servosystème, il y a une différence entre la valeur de la position initiale (valeur courante) et la position mécanique réelle de l’axe, et cette différence ne peut pas être prédéterminée. La valeur interne doit être synchronisée avec la position réelle des axes. La synchronisation est réalisée à l’aide d’un retour à l’origine pendant lequel une valeur de position est enregistrée à un point de référence connu (origine). Lorsqu’une instruction retour à l’origine est exécutée, des impulsions de sortie sont émises jusqu’à ce que l’entrée retour à l’origine soit activée. L’affectation des entrées/sorties est déterminée par la voie utilisée. Pour décélérer le mouvement à l’approche de la position d’origine, désignez une entrée proche de l’origine (near home) et définissez le bit 4 du registre spécial de données, dans lequel le code de contrôle de la sortie impulsionnelle (sys_wHscOrPulseControlCode) est sauvegardé, sur TRUE puis de nouveau sur FALSE. La sortie reset du compteur de déviation peut être définie sur TRUE lorsque le retour à l’origine est terminé. Pendant un retour à l’origine, la valeur dans la zone de la valeur courante peut différer de la valeur réelle. Lorsque le retour à l’origine est terminé, la valeur courante passe à 0.

Sélectionnez un des deux modes de fonctionnement :

  • Type 1 : L’entrée du point d’origine est activée indépendamment de la présence ou non d’une entrée proche de l’origine (near home), indépendamment du fait qu’une décélération est en cours ou qu’elle est terminée.

    • Sans entrée proche de l’origine :

    • Avec entrée proche de l’origine :

      1.  (1) Vitesse initiale et finale
      2.  (2) Vitesse de consigne
      3.  (3) Entrée proche de l’origine (near home) : TRUE
      4.  (4) Entrée du point d’origine : TRUE
      5.  (5) Entrée du point d’origine activée à tout moment.
  • Type 2 : L’entrée du point d’origine est activée uniquement lorsque la décélération (démarrée par l’entrée proche de l’origine) est terminée.

    1.  (1) Vitesse initiale et finale
    2.  (2) Vitesse de consigne
    3.  (3) Entrée proche de l’origine (near home) : TRUE
    4.  (4) Entrée du point d’origine : TRUE
    5.  (5) Entrée du point d’origine activée uniquement après la décélération

Utilisez le DUT prédéfini suivant :

F171_PulseOutput_Home_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/de décélération

  • Signal de réinitialisation du compteur de déviation

Caractéristiques 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 des rampes.

Informations générales sur la programmation

  • Même lorsque l’entrée du point d’origine est activée, l’exécution de cette instruction déclenche la sortie impulsionnelle.

  • Si l’entrée proche de l’origine (near home) est activée pendant l’accélération, la décélération commence.

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

  • Le signal de réinitialisation du compteur de déviation est affecté aux numéros de sorties dédiées, spécifiques à chaque type d’automate.

  • En cas d’édition en mode RUN, la sortie impulsionnelle est interrompue mais elle reprend lorsque les modifications du programme ont été transférées.

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

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

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

Sorties reset du compteur de déviation et entrées du point d’origine pour FPS

N° de voie

Sortie reset du compteur de déviation

Entrée du point d’origine

0 Y2 X2
2 Y5 X5

Sorties reset du compteur de déviation et entrées du point d’origine pour FP-X C14R, C30/60R

La fonction sortie impulsionnelle n’est disponible que si la cassette d’entrée/sortie impulsionnelle (AFPX-PLS) a été installée.

N° de voie

Sortie reset du compteur de déviation

Entrée du point d’origine

0
(connecteur 1 pour montage des cassettes) Y102 X102
1
(connecteur 2 pour montage des cassettes)
(C30/60R uniquement) Y202 X202

Sorties reset du compteur de déviation et entrées du point d’origine pour FP-X C14T, C30/60T

N° de voie

Sortie reset du compteur de déviation

Entrée du point d’origine

0 Y4 ou Y8 X4
1 Y5 ou Y9 X5
2 X6
3 (C30/60R uniquement) X7

Exemple

GVL

Dans la liste des variables globales, vous définissez des variables qui sont accessibles par tous les POU dans le projet.

DUT

Le DUT F171_PulseOutput_Home_DUT est prédéfini dans la bibliothèque FP Library.

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
		X0_bMotorSwitch: BOOL:=FALSE;
			(*at X0*)
	END_VAR
	VAR 
		dutHome: F171_PulseOutput_Home_DUT:=dwControlCode := 16#1125;
			(*Control code:
Digit 3: 1= Duty ratio 25%
Digit 2: 1= Frequency range 48Hz-100kHz
Digit 1: 2 =Operation mode type 1
Ditig 0: 5= CCW +  deviation counter clear signal*)
		diInitialSpeed: DINT:=100;
		diTargetSpeed: DINT:=2000;
		diAccelerationTime: DINT:=300;
		@'': @'';
	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 := 16 ;
        NETWORK_BODY
B(B_CONTACT,,X0_bMotorSwitch,4,1,6,3,R);
B(B_F,E_MOVE!,Instance,17,4,23,8,,?DEN?D?AENO?C);
B(B_F,E_MOVE!,Instance,17,8,23,12,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHome.diTargetSpeed,23,6,25,8,);
B(B_VARIN,,diTargetSpeed,15,6,17,8,);
B(B_VAROUT,,dutHome.diAccelerationDecelerationTime,23,10,25,12,);
B(B_VARIN,,diAccelerationTime,15,10,17,12,);
B(B_F,E_MOVE!,Instance,17,12,23,16,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHome.diDeviationCounterClearSignalOutputTime,23,14,25,16,);
B(B_VARIN,,10,15,14,17,16,);
B(B_F,E_MOVE!,Instance,17,0,23,4,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHome.diInitialAndFinalSpeed,23,2,25,4,);
B(B_VARIN,,diInitialSpeed,15,2,17,4,);
L(7,2,7,6);
L(7,6,7,10);
L(1,2,4,2);
L(6,2,7,2);
L(7,2,17,2);
L(7,6,17,6);
L(7,10,17,10);
L(7,10,7,14);
L(7,14,17,14);
L(1,0,1,16);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_CONTACT,,X0_bMotorSwitch,6,3,8,5,R);
B(B_VARIN,,dutHome,15,4,17,6,);
B(B_VARIN,,0,15,5,17,7,);
B(B_F,F171_PulseOutput_Home!,Instance,17,2,30,7,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_COMMENT,,Example for home position return,1,1,18,2,);
L(1,4,6,4);
L(8,4,17,4);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

IF DF(X0_bMotorSwitch) then
    dutHome.diInitialAndFinalSpeed:=diInitialSpeed;
    dutHome.diTargetSpeed:=diTargetSpeed;
    dutHome.diAccelerationDecelerationTime:=diAccelerationTime;
    dutHome.diDeviationCounterClearSignalOutputTime:=10;
END_IF;
(*Example for home position return*)
IF DF(X0_bMotorSwitch) then
    F171_PulseOutput_Home(s_dutDataTable := dutHome,
    n_iPulseOutputChannel :=0);
END_IF;
Thèmes apparentés

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