F170_PulseOutput_PWM

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 (F170_PulseOutput_PWM_DUT)

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

n_iPulseOutputChannel (INT)

Sortie impulsionnelle : 0 ou 1

Remarques

  • Utilisez le DUT prédéfini suivant : F170_PulseOutput_PWM_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

  • Dès que vous éditez un programme utilisant cette instruction en mode en ligne (c.à-d. en mode RUN), la sortie impulsionnelle s’arrête.

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

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

  • La sortie peut être retardée lorsque le rapport impulsion/pause est proche de la valeur minimale ou maximale. Le rapport impulsion/pause peut ainsi différer de la valeur indiquée.

  • Le rapport impulsion/pause peut être modifié à chaque scrutation. La modification devient effective avec la sortie impulsionnelle suivante. Le paramétrage de la fréquence est effectif uniquement lorsque l’exécution d’une instruction démarre.

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

Utilisation du mode de compatibilité FP0 du FP0R

Pour faire fonctionner le FP0R en mode de compatibilité FP0, vous pouvez transférer un programme FP0 vers le FP0R.

Sorties et variables système pour les FP0, FP-e

Numéros de voies et de sorties impulsionnelles

N° de voie Sortie impulsionnelle Type de sortie impulsionnelle

0

Y0

Impulsion

Y2

Sens de rotation

1

Y1

Impulsion

Y3

Sens de rotation

Variables système pour les zones mémoires utilisées. Les valeurs entre parenthèses sont valides pour FP0 T32.

Description

Variable système

Sortie impulsionnelle : drapeau de contrôle pour la voie

0

sys_bIsPulseChannel0Active

1

sys_bIsPulseChannel1Active

Sortie impulsionnelle : valeur courante pour la voie

0

sys_diPulseChannel0ElapsedValue

1

sys_diPulseChannel1ElapsedValue

Sortie impulsionnelle : valeur de consigne pour la voie

0

sys_diPulseChannel0TargetValue

1

sys_diPulseChannel1TargetValue

Compteur rapide ou sortie impulsionnelle : code de contrôle

sys_wHscOrPulseControlCode

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 F170_PulseOutput_PWM_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
		X6_bEnablePWM: BOOL:=FALSE;
	END_VAR
	VAR 
		dutPWMControl: F170_PulseOutput_PWM_DUT;
			(*iFrequencyValue := 1: f=2.0Hz, T=502.5ms;*)
		iPulseWidthModulationDuty: INT:=500;
			(*500=50% duty*)
		@'': @'';
	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 := 5 ;
        NETWORK_BODY
B(B_F,E_MOVE!,Instance,15,1,21,5,,?DEN?D?AENO?C);
B(B_VARIN,,iPulseWidthModulationDuty,13,3,15,5,);
B(B_VAROUT,,dutPWMControl.iPulseWidthModulationDuty,21,3,23,5,);
B(B_CONTACT,,X6_bEnablePWM,4,2,6,4,);
L(6,3,15,3);
L(1,3,4,3);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_CONTACT,,X6_bEnablePWM,4,2,6,4,);
B(B_F,F170_PulseOutput_PWM!,Instance,13,1,26,6,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutPWMControl,11,3,13,5,);
B(B_VARIN,,2,11,4,13,6,);
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 (X6_bEnablePWM) then
    dutPWMControl.iPulseWidthModulationDuty:=iPulseWidthModulationDuty;
END_IF;
IF (X6_bEnablePWM) then
    F170_PulseOutput_PWM(s_dutDataTable := dutPWMControl, 
    n_iPulseOutputChannel := 2);
END_IF;

Corps en IL

Thèmes apparentés

Modifié le : 2022-06-28Feedback on this pagePanasonic hotline