F174_PulseOutput_DataTable

Contrôle via des tables de données

Cette instruction exécute un contrôle en fonction des paramètres du DUT indiqué, avec des vitesses et des valeurs de consignes différentes. 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 (ANY_DUT)

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

Exemple : F174_PulseOutput_DataTable_8_Values_DUT

n_iPulseOutputChannel* (constante décimale)

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

Remarques

Créez votre DUT à l’aide de l’exemple de DUT suivant : F174_PulseOutput_DataTable_8_Values_DUT

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

  • Code de contrôle

  • Fréquence 1

  • Valeur de consigne 1

  • Fréquence 2

  • Valeur de consigne 2

  • ...

  • Fréquence n

  • Valeur de consigne n

  • Arrêt de l’impulsion

Caractéristiques de la sortie impulsionnelle

  1.  (1) Condition d’exécution
  2.  (2) Drapeau de contrôle de la sortie impulsionnelle

x Valeur courante du compteur rapide (valeur du déplacement)

  • Les impulsions sont sorties à la fréquence indiquée jusqu’à ce que la valeur de consigne soit atteinte. Ensuite, la fréquence passe à la deuxième valeur de fréquence. La sortie impulsionnelle continue jusqu’à ce que la deuxième valeur de consigne soit atteinte et ainsi de suite.

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

  • Une fréquence de 0 indique qu’il s’agit de la dernière fréquence et la sortie impulsionnelle s’arrête.

Informations générales sur la programmation
  • FP-X, FP0R : 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.

  • Si la valeur de la première fréquence spécifiée est en dehors de l’intervalle indiqué, une erreur d’opération apparaît. (Si la valeur de la première fréquence est 0, l’opération s’arrête sans qu’il y ait eu de sortie impulsionnelle.)

  • Si la valeur de la deuxième fréquence spécifiée est de 0 ou en dehors de l’intervalle indiqué, la sortie impulsionnelle s’arrête.

  • Si la valeur de consigne est en dehors de l’intervalle spécifié, le nombre de sorties impulsionnelles peut être différent de la valeur indiquée.

  • FP0R : Si une des valeurs de consigne n’est pas dans le sens du mouvement, la sortie impulsionnelle s’arrête.

  • FPS, FP-X : Si une des valeurs de consigne n’est pas dans le sens du mouvement, le comptage continue indéfiniment.

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

  • FPS, FP-X : lorsqu’un programme d’interruption périodique ou un programme d’interruption du compteur rapide est exécuté ou lorsque la fonction liaison API est utilisée simultanément, une fréquence de 80kHz max. doit être utilisée.

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

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 F174_PulseOutput_DataTable_8_Values_DUT est prédéfini dans la bibliothèque FP Library et peut être utilisé en tant que modèle.

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 
		dutDataTable4: F174_DUT:=ControlCode := 16#1200,
Frequency1 := 1000,
TargetValue1 := 1000,
Frequency2 := 2500,
TargetValue2 := 2000,
Frequency3 := 5000,
TargetValue3 := 5000,
Frequency4 := 1000,
TargetValue4 := 2000,
Termination := 0;
			(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 2=Frequency range 48Hz-100kHz
Digit 1: 0=Relative value control
Digit 0: 0=CW*)
		@'': @'';
	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_F,F174_PulseOutput_DataTable!,Instance,13,0,27,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutDataTable4,11,2,13,4,);
B(B_VARIN,,0,11,3,13,5,);
B(B_CONTACT,,X0_bMotorSwitch,5,1,7,3,R);
L(1,2,5,2);
L(7,2,13,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

IF DF(X0_bMotorSwitch) then
  F174_PulseOutput_DataTable(s_dutDataTable := dutDataTable4, 4);
END_IF;
Thèmes apparentés

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