Comment pouvons-nous aider ?

Print

PWM

 

PWM – Modulation de largeur d’impulsion – période de 15 Hz à 10 kHz

PWM est l’acronyme de « Pulse Width Modulation » (modulation de largeur d’impulsion). La modulation de largeur d’impulsion est une fonction très puissante qui est couramment utilisée pour contrôler le positionnement des servovalves. Elle est également utilisée pour le contrôle des impulsions laser, le contrôle des mouvements, le contrôle de l’intensité lumineuse et d’autres applications. La caractéristique d’impulsion unique de la fonction est applicable à tout besoin de sortie d’impulsion unique.

Un signal de sortie modulé en largeur d’impulsion est un signal qui a une période et un « temps d’activation » de la sortie, ou un rapport cyclique, à l’intérieur de cette période. Par exemple, une servo-vanne typique peut avoir une période de 20 millisecondes. La position de la vanne est contrôlée par le « temps d’activation » de l’impulsion de sortie, au cours de cette période. La vanne peut être commandée en état de fermeture complète avec un temps d’activation de 1 milliseconde et en état d’ouverture complète avec une impulsion de 3 millisecondes (les temps réels sont définis par le fabricant de la vanne). L’ouverture partielle (5 %, 10 %, 53 %, etc.) est généralement contrôlée par une impulsion proportionnelle aux limites d’ouverture et de fermeture. Les signaux PWM standard se répètent à chaque incrément de période.

La figure de droite illustre un signal de sortie PWM. La plupart des sorties numériques de l’automate Velocio sont des sorties à transistors « descendantes », c’est-à-dire que lorsque la sortie est activée, elle descend, ce qui fait baisser le signal.
La figure suivante montre un PWM standard en haut, et une sortie PWM à impulsion unique en bas. Une sortie MLI à impulsion unique est active pendant la durée d’activation définie au sein de la période MLI. Elle ne se répète pas. Si vous souhaitez émettre une autre impulsion, votre programme doit exécuter un autre bloc « Démarrer l’impulsion PWM ».

Limites d’application des MLI : Les MLI peuvent être appliqués à n’importe quelle sortie numérique physiquement présente sur le module PLC qui contient le programme d’application. Cela signifie que toute sortie numérique Ace ou Branch peut être programmée pour émettre un signal PWM par le programme principal de l’application. Tout automate Branch Explansion qui possède son propre programme (sous-programme intégré) peut émettre un signal PWM à partir du sous-programme intégré. Les unités d’extension Branch Expansion qui sont utilisées en tant qu’E/S d’extension ne peuvent pas émettre de signaux PWM.

Toute combinaison de sorties numériques, contenues dans l’automate avec le programme, peut avoir des signaux de sortie PWM. Chaque sortie active a sa propre durée d’activation. Cependant, la période est commune à tous les signaux PWM de l’unité PLC.

PWM dans vBuilder

PWM est une tâche d’arrière-plan qui, une fois exécutée, continuera à envoyer des signaux à la sortie. N’appelez pas cette fonction à chaque cycle de l’API, mais seulement une fois lorsque vous devez modifier ses paramètres.

Lorsque vous placez un bloc PWM dans votre programme, une boîte de dialogue, telle que celle illustrée ci-dessous, s’affiche.

Cette boîte de dialogue vous permet de définir la période PWM, de démarrer (continuer/ajuster) l’opération PWM ou d’arrêter le PWM.

Période de réglage du MLI

La période est commune à tous les PWM de l’automate. La période est définie en sélectionnant le bouton radio « Définir la période », puis en sélectionnant une variable tagnamed ui16 ou en entrant un nombre compris entre 100 et 65535. Le timing est exprimé en microsecondes (1 million de microsecondes = 1 seconde). Cela signifie que la période PWM peut varier de 100 microsecondes à un peu plus de 65 millisecondes.

Si la période est réglée sur une valeur inférieure à 1 milliseconde (un réglage inférieur à 1000), une seule sortie PWM sera active. La sortie PWM active sera celle dont le temps d’activation est le plus court.

Si la période est réglée sur 1 milliseconde ou plus, toutes les sorties définies pour le PWM auront des signaux actifs.

En résumé, pour définir la période, sélectionnez Définir la période, sélectionnez ou entrez un nombre ui16 (entier non signé de 16 bits) et cliquez sur OK.

Démarrage du PWM

La sélection Start définit la sortie et la durée d’activation du signal PWM. Elle permet également de choisir entre un signal continu ou une impulsion unique. Si le PWM doit être utilisé pour un signal PWM à temps variable, chaque fois que le bloc est exécuté, le temps d’activation mettra à jour sa valeur à la période suivante.

Dans la sélection de la broche de sortie, vous devez saisir le nom d’une sortie numérique présente sur l’automate. La boîte de dialogue vous permet de sélectionner n’importe quel nom de bit. Cependant, si le nom de tagnon sélectionné n’est pas celui d’une sortie numérique de l’automate, le PWM ne s’exécutera pas. Si vous démarrez un MLI dans un sous-programme, le nom du bit doit être une référence à une sortie numérique de l’API.

Le temps d’activation peut être une valeur ui16 (0-65535) ou une variable tagnamed.

Si vous sélectionnez le fonctionnement continu, les impulsions PWM se poursuivront, à raison d’une impulsion par période, jusqu’à ce que vous exécutiez un bloc PWM d’arrêt pour la sortie. Si vous sélectionnez Impulsion unique, la sortie émettra une impulsion à la période suivante. Une fois la période terminée, la sortie sera réglée en fonction de l’état de la sortie numérique du programme pour cette sortie.

Arrêt PWM

Pour placer un bloc d’arrêt d’une sortie PWM, il suffit de sélectionner le bouton radio Arrêt et le nom de la sortie. Si vous placez le bloc d’arrêt dans un sous-programme, placez la référence à la sortie en tant que broche de sortie

Problèmes de PWM

Le PWM utilise des timers pour la période et le temps d’activation. Un microcontrôleur ne peut contenir qu’un nombre limité de temporisateurs, c’est pourquoi nous utilisons 2 temporisateurs pour générer des PWM pour 24 sorties numériques. Cela signifie que si l’arrêt est censé se produire en même temps pour deux signaux PWM différents, l’un devra attendre l’autre (un certain nombre de microsecondes). Si les deux PWM sont réglés en continu, il ne devrait pas y avoir de gigue, car la séquence entre les deux PWM sera la même.

Si votre programme démarre constamment les deux MLI, cela peut être la cause de l’instabilité. La fonction PWM conserve une table des PWM actifs. Les PWM sont triés du temps le plus court au temps le plus long. Si le programme du client démarre les PWM à chaque balayage et que les temps de deux ou plusieurs sorties PWM sont identiques, la table sera constamment consultée. S’il ne peut redémarrer un PWM que lorsque le temps d’activation change, il devrait y avoir moins de gigue.

PWM avec un temps d’activation de 100

J’obtiens une période doublée lorsque je suis sur un temps de marche de 100% !

Nous faisons du PWM en microsecondes. Il y a une limite au nombre d’instructions du processeur qui peuvent être exécutées en une microseconde. La fonction PWM utilise deux timers – un pour la période et un pour la prochaine fin de cycle. À la fin de la période, il y a un état de course entre ces deux temporisateurs. Si la période suivante commence avant l’heure de fin du cycle, le PWM manquera un cycle. C’est pourquoi nous conseillons de limiter le temps de marche à la durée de la période moins 2 ou 3 microsecondes.

La présence de plusieurs PWM a également une incidence sur ce point. Si vous avez plusieurs PWMs simultanés, vous devriez peut-être réduire le temps de marche d’une ou deux microsecondes.

Nous suggérons d’utiliser un temps d’activation minimum d’environ 2 microsecondes. Le problème est plus rare sur l’impulsion minimale, mais il peut également se produire.

Il ne s’agit pas d’un bogue. C’est de la physique. Il y a des limites à ce qui peut se produire dans un laps de temps très court.

PWM sur oscilloscope

avec une période de 350 microsecondes et des valeurs « On Time » de 175, 115 et 35 microsecondes
Une résistance pull-up de 10 KOhms est placée entre le 5V (dernière broche) et la sortie (broches 1 à 7). Une mesure est effectuée entre la sortie et GND (première broche 0).

valeur « On Time » 175 microsecondes = 50% de la période

valeur « On Time » 115 microsecondes = 33% de la période

valeur « On Time » 35 microsecondes = 10% de la période