F173_PulseOutput_PWM_Hz

Instruction de sortie impulsionnelle avec indication des voies (sortie MLI)

Cette instruction renvoie un signal de sortie avec modulation de largeur d’impulsions en fonction du DUT spécifié. Les impulsions sont renvoyées 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 (F173_PulseOutput_PWM_Hz_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-XH C30 T/P: 0–3

FP-XH C60 T/P: 0–5

FPS: 0,2

FP-X, FP-XH Relay: 0,1

FP-X, FP-XH 16k Transistor: 0–2

FP0R, FP0H, FP-X, FP-XH 32 Transistor: 0–3

FP-XH 32k Transistor: 0–5

Remarques

Utilisez le DUT prédéfini suivant : F173_PulseOutput_PWM_Hz_DUT

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

  • Fréquence approximative

  • Rapport impulsion/pause

    Le rapport entre la largeur d’impulsions et la durée d’impulsions d’une forme d’onde rectangulaire. Pour un train d’impulsions dans lequel la largeur d’impulsions est de 1ms et la durée d’impulsions de 4ms, le rapport impulsion/pause est de 0,25 ou 25%.

Informations générales sur la programmation

  • Le rapport impulsion/pause, en particulier lorsqu’il est proche de la valeur minimale ou maximale, peut différer du rapport impulsion/pause indiqué en fonction de la tension ou du courant de charge.

  • Le rapport impulsion/pause peut être modifié à chaque scrutation.

  • La constante de fréquence K ne peut pas être modifiée pendant l’exécution de l’instruction. Si elle est modifiée, cela n’aura aucun effet sur la fréquence mais sur la résolution du rapport impulsion/pause.

  • Si le rapport impulsion/pause est modifié et sa valeur est en dehors de l’intervalle autorisé pendant l’exécution de l’instruction, le rapport impulsion/pause est modifié et ramené à la valeur maximale. En début d’exécution de l’instruction, un message d’erreur s’affiche.

  • Si la fréquence est modifiée en une valeur en dehors de l’intervalle autorisé pendant l’exécution de l’instruction, la résolution est ajustée à 100. En début d’exécution de l’instruction, aucun message d’erreur ne s’affiche.

  • Si le rapport impulsion/pause est modifié pour être égal ou supérieur à 100% pendant l’exécution de l’instruction, la fréquence est ajustée à la valeur maximale possible pour la résolution spécifiée. En début d’exécution de l’instruction, aucun message d’erreur ne s’affiche.

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

  • FP0H, FP0R, FP-XH, 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.

  • FP0H, FP0R, FP-XH, FP-X : Définissez Sortie MLI pour la voie souhaitée dans les registres système.

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
		dutPWM1: F173_PulseOutput_PWM_Hz_DUT:=diFrequency_Hz:=1000,iDuty:=50;
		bRunPWM: BOOL:=FALSE;
	END_VAR

Corps en LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bRunPWM,6,1,8,3,);
B(B_F,F173_PulseOutput_PWM_Hz!,,15,0,28,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutPWM1,13,2,15,4,);
B(B_VARIN,,2,13,3,15,5,);
L(1,0,1,5);
L(1,2,6,2);
L(8,2,15,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

If (bRunPWM) Then
    F173_PulseOutput_PWM_Hz(s_dutDataTable := dutPWM1, n_iPulseOutputChannel := 2);
END_IF;

Modifié le : 2021-08-09Commentaires sur cette pageAssistance téléphonique