F176_PulseOutput_Pass

Interpolation circulaire (point de passage)

Des impulsions sont sorties via deux voies en fonction des paramètres indiqués dans le DUT spécifié, de façon à former un arc. Le rayon du cercle est calculé en indiquant la position centrale et la position finale. 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

n_iPulseOutputChannel* (constante décimale)

Voie de la sortie impulsionnelle : 0, 2

Entrée/sortie

s_dutDataTable (F176_PulseOutput_Pass_DUT)

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

Remarques

Utilisez le DUT prédéfini suivant : F176_PulseOutput_Pass_DUT

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

  • Code de contrôle

  • Vitesse résultante

  • Valeur de consigne (axe X)

  • Valeur de consigne (axe Y)

  • Position sur l’arc (axe X)

  • Position sur l’arc (axe Y)

Pour chaque axe, les paramètres suivants sont calculés via l’exécution de cette instruction et sauvegardés dans la zone de sauvegarde des résultats de l’opération du DUT.

  • Rayon

  • Valeur centrale (axe X)

  • Valeur centrale (axe Y)

Caractéristiques de la sortie impulsionnelle

(1)

Sens de rotation : De la voie 0 (axe x) à la voie 2 (axe y) (déplacement sens horaire sur les deux voies)

(2)

Sens de rotation : De la voie 2 (axe y) à la voie 0 (axe x) (déplacement sens horaire sur les deux voies)

F v :

Vitesse résultante

O (Xo,Yo):

Position centrale

F x :

Vitesse (axe X)

S (Xs,Ys):

Position courante (départ)

F y :

Vitesse (axe Y)

P (Xp,Yp)

Point de passage

r:

Rayon

E (Xe,Ye)

Position de consigne (fin)

Exemple

La voie 0 est utilisée pour l’axe X et la voie 2 pour l’axe Y.Le mode de contrôle du positionnement permet un contrôle de la valeur absolue.

La position courante est (q=60°, Xs=5000, Ys=8660). La position centrale O (Xo=0, Yo=0) est utilisée comme point de référence. Les impulsions sont sorties via l’axe X (voie 0) et l’axe Y (voie 2) à une vitesse de Fv=2000Hz jusqu’à ce que la position de consigne (q=-30°, Xe=8660, Ye=-5000) soit atteinte.

Informations générales sur la programmation

  • La condition d’exécution pour cette instruction doit être continuellement TRUE. Lorsque la condition d’execution est FALSE, la sortie impulsionnelle s’arrête.

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

  • 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. Pour redémarrer l’interpolation circulaire, exécutez un arrêt forcé pour définir le drapeau de contrôle de l’interpolation circulaire (sys_bIsCircularInterpolationActive) sur FALSE.

  • Si "Continuer" a été sélectionné comme mode de connexion de l’opération, utilisez un drapeau spécial (sys_bIsCircularInterpolationOverwritingPossible) pour pouvoir remplacer la valeur de consigne. Le drapeau est TRUE pendant un cycle lorsque l’instruction d’interpolation circulaire est exécutée.

  • Pour chaque axe, la valeur de consigne doit être située dans l’intervalle de -8388608–8388607. Lorsque cette instruction est utilisée en combinaison avec d’autres instructions de sortie impulsionnelle, par ex. F171_PulseOutput_Trapezoidal, la valeur de consigne dans ces instructions doit être située dans le même intervalle.

  • La précision de l’interpolation circulaire peut se dégrader lorsque le temps de scrutation est trop long.

  • L’édition en ligne en mode RUN n’est pas disponible pour cette instruction.

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

  • La fonction d’interpolation n’étant pas disponible pour le retour à l’origine, ce dernier doit être exécuté pour chaque voie.

  • En cas d’utilisation dans des applications exigeant de la précision, faites un test pour vérifier le fonctionnement de la machine.

  • Définissez un des compteurs rapides affectés à une voie de sortie impulsionnelle sur "Inutilisé" dans les registres système.

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

Configuration du drapeau pendant l’exécution de l’instruction

(1)

Condition d’exécution X0

(2)

Drapeau de contrôle de la sortie impulsionnelle, voie 0 (sys_bIsPulseChannel0Active)

(3)

Drapeau de contrôle de la sortie impulsionnelle, voie 2 (sys_bIsPulseChannel2Active)

(4)

Drapeau de contrôle d’interpolation circulaire (sys_bIsCircularInterpolationActive)

(5)

Drapeau d’écrasement de la valeur de consigne possible (sys_bIsCircularInterpolationOverwritingPossible)

a

Démarrage

b

Condition d’exécution FALSE

c

Valeur de consigne atteinte

d

Démarrer le mode continu

e

1 cycle

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
		Trigger: BOOL:=FALSE;
		dutPassData: F176_PulseOutput_Pass_DUT:=dwControlCode := 16#1000,
diSpeed := 2000,
diTargetPos_X := 8660,
diTargetPos_Y := -5000,
diPassPos_X := 9396,
diPassPos_Y := -3420;
			(*Control code:
Digit 4: 0=Operation connection mode: stop
Digit 3: 1=Rotation direction: CCW (left)  
Digit 2: 0=Fixed
Digit 1: 0=Relative value control
Digit 0: 2=Pulse/direction (Forward FALSE)
*)
		@'': @'';
	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 := 6 ;
        NETWORK_BODY
B(B_CONTACT,,Trigger,4,2,6,4,R);
B(B_VARIN,,dutPassData,10,4,12,6,);
B(B_VARIN,,0,10,3,12,5,);
B(B_F,F176_PulseOutput_Pass!,Instance,12,1,27,6,,?DEN?Hn_iPulseOutputChannel?Ds_dutDataTable?As_dutDataTable?AENO);
L(1,3,4,3);
L(6,3,12,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

IF DF(Trigger) then
    F176_PulseOutput_Pass(n_iPulseOutputChannel := 0, 
        s_dutDataTable := dutPassData);
END_IF;

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