Schéma d'affectation des broches
La figure ci-dessous présente le schéma d'affectation des broches du bloc fonction FB_PWM :
Le bloc fonction FB_PWM est conçu pour fournir une sortie PWM (modulation de largeur d'impulsion) en fonction du paramètre d'entrée.
La sortie PWM est générée avec un temps d'activation ON et un temps de désactivation OFF conformes à l'entrée indiquée dans le premier chronogramme ci-dessous.
Par rapport au deuxième chronogramme :
oSi i_rIput est une valeur positive, la sortie PWM est disponible dans q_xPstv. L'entrée i_rIput doit être comprise entre -100 et 100. Le temps d'activation du bloc fonction PWM est calculé comme suit : Temps d'activation de PWM = (i_rIput x tPwmPeriod) / 100.
oSi i_rIput a une valeur négative, la sortie PWM est disponible dans q_xNgtv.
oSi i_rIput est supérieur à 100, la valeur est limitée à 100. Si i_rIput est inférieur à –100, la valeur est limitée à –100.
oSi i_xPwmInstUpdt a la valeur TRUE, la variation du paramètre d'entrée est mise à jour dans le cycle PWM en cours, comme indiqué sur le chronogramme.
oSi i_xPwmInstUpdt a la valeur FALSE, la variation d'entrée n'est mise à jour qu'au démarrage d'un nouveau cycle PWM.
q_xEn a la valeur TRUE tant que l'entrée i_xEn a la valeur TRUE, quelle que soit l'erreur détectée.
Cette figure présente le chronogramme du calcul de FB_PWM :
Cette figure présente le chronogramme du bloc fonction FB_PWM :
Exemple avec un signal de fréquence
Le programme crée un signal sinusoïdal avec une période définie (5 secondes/0,2 Hz). Ce signal sinusoïdal est l'entrée de FB_PWM.
Définition du bloc fonction SinGen :
L'entrée stPwmPara.tCycTime du bloc fonction FB_PWM doit avoir exactement la même valeur que la période du POU dans la tâche MAST, ici 10 millisecondes (voir la zone encadrée en rouge).
Résultat du POU précédent :
Bleu Signal sinusoïdal de i_rIput à 0,2 Hz (bloc fonction My_Filter_PT1_1).
Vert q_xPstv (un décalage est ajouté pour le tracé).
Rouge q_xNgtv (le signal est inversé pour le tracé).
Un paramètre non valable aux entrées du bloc fonction conduit à une erreur détectée et à la génération d'un ID d'erreur détectée correspondant.
Pendant l'état d'erreur détectée, la sortie est mise à zéro.
L'erreur détectée ne peut être réinitialisée que par un front montant de l'entrée i_xErrRst. La sortie q_xBusy a la valeur TRUE, chaque fois que le bloc fonction est activé et qu'il n'y a pas d'erreur détectée.