F175_PulseOutput_Linear

Interpolation linéaire

Des impulsions sont sorties via deux voies en fonction des paramètres indiqués dans le DUT spécifié, de façon à former une ligne droite. 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_iPulseOutputChannelConstante

Voie de la sortie impulsionnelle :

FP-XH C30 T/P: 0–3

FP-XH C60 T/P: 0–5

FPS: 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

Pour l’interpolation, les voies 0 et 1 ou les voies 2 et 3 sont utilisées comme paires. Vous pouvez spécifier uniquement 0 ou 2 (pour C14T : 0 uniquement).

Entrée/sortie

s_dutDataTable (DUT)

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

FPS, FP-X: F175_PulseOutput_Linear_DUT_0

FP0R: F175_PulseOutput_Linear_DUT_1

Description pour FP-Sigma, FP-X

Utilisez le DUT prédéfini suivant : F175_PulseOutput_Linear_DUT_0

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
  • Valeur de consigne (axe X)
  • Valeur de consigne (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.

  • Vitesse initiale et finale (axe X)
  • Vitesse de consigne (axe X)
  • Vitesse initiale et finale (axe Y)
  • Vitesse de consigne (axe Y)
  • Plage de fréquence (axe X)
  • Plage de fréquence (axe Y)
  • Nombre d’étapes d’accélérations/de décélérations (axe X)
  • Nombre d’étapes d’accélérations/de décélérations (axe Y)

Caractéristiques de la sortie impulsionnelle

Valeur de consigne (axe X) (voie 0) : 5000

Valeur de consigne (axe Y) (voie 2) (FP-X : voie 1) : 2000

Les deux axes sont contrôlés de manière à former un trajet linéaire jusqu’à la position de consigne.

  • 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.
  • En cas d’utilisation dans des applications exigeant de la précision, faites un test pour vérifier le fonctionnement de la machine.
  • 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.

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

Description pour FP0R

Utilisez le DUT prédéfini suivant : F175_PulseOutput_Linear_DUT_1

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 (axe X)
  • Valeur de consigne (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.

  • Vitesse initiale et finale (axe X)
  • Vitesse de consigne (axe X)
  • Vitesse initiale et finale (axe Y)
  • Vitesse de consigne (axe Y)

Caractéristiques de la sortie impulsionnelle

Valeur de consigne (axe X) (voie 0) : 5000

Valeur de consigne (axe Y) (voie 1) : 2000

Des impulsions sont sorties via l’axe X (voie 0) et l’axe Y (voie 1) de façon à ce que la vitesse initiale soit de 500Hz, la vitesse de consigne de 5kHz et le temps d’accélération/décélération de 300ms. Les deux axes sont contrôlés de manière à former un trajet linéaire jusqu’à la position de consigne.

Sorties impulsionnelles avec un rapport impulsion/pause de 25%.En utilisant le type de sortie impulsionnelle "Impulsionnnelle/sens de rotation", les impulsions sont sorties env. 300ms après que le signal du sens de rotation a été émis. Ce délai peut varier en fonction des caractéristiques du driver.

  • Arrêt de la sortie impulsionnelle lorsque la valeur de consigne est atteinte.

  • 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.
  • En cas d’utilisation dans des applications exigeant de la précision, faites un test pour vérifier le fonctionnement de la machine.
  • 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.
  • 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.
  • 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
		bTrigger: BOOL:=FALSE;
		dutLinearData: F175_PulseOutput_Linear_DUT_0:=dwControlCode := 16#1000,
diInitialAndFinalSpeed := 500,
diMaximumSpeed := 5000,
diAccelerationAndDecelerationTime := 300,
diTargetValue_X := 5000,
diTargetValue_Y := 2000;
			(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 0=Fixed
Digit 1: 0=Relative value control 
Digit 0: 0=CW/CCW
*)
		@'': @'';
	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,,bTrigger,4,2,6,4,R);
B(B_VARIN,,dutLinearData,11,4,13,6,);
B(B_VARIN,,0,11,3,13,5,);
B(B_F,F175_PulseOutput_Linear!,Instance,13,1,28,6,,?DEN?Hn_iPulseOutputChannel?Ds_dutDataTable?As_dutDataTable?AENO);
L(1,3,4,3);
L(6,3,13,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

IF DF(bTrigger) then
    F175_PulseOutput_Linear(n_iPulseOutputChannel := 0, 
      s_dutDataTable := dutLinearData);
END_IF;

Modifié le : 2023-03-15Commentaires sur cette pageAssistance téléphonique