¿Cómo podemos ayudar?

Print

PWM

 

PWM – Modulación por ancho de pulsos – Periodo de 15 Hz a 10 kHz

PWM es el acrónimo de «Pulse Width Modulation» (modulación por ancho de pulsos). La modulación por ancho de pulsos es una función muy potente que se utiliza habitualmente para controlar el posicionamiento de servoválvulas. También se utiliza para el control de pulsos láser, control de movimiento, controles de intensidad de luz y otras aplicaciones. La característica de pulso único de la función es aplicable a cualquier necesidad de salida de pulso único.

Una señal de salida modulada por ancho de pulso es aquella que tiene un periodo y un «tiempo de encendido» de salida, o ciclo de trabajo, dentro de ese periodo. Por ejemplo, un control de servoválvula típico puede tener un periodo de 20 milisegundos. La posición de la válvula es controlada por el «tiempo de encendido» del pulso de salida, dentro de este período. La válvula puede ser controlada a un estado completamente cerrado con un pulso de 1 milisegundo y completamente abierta con un pulso de 3 milisegundos (los tiempos reales son definidos por el fabricante de la válvula). La apertura parcial (5%, 10%, 53%, etc.) se controla generalmente mediante un impulso de «tiempo de conexión» proporcional entre los límites de apertura total y cierre total. Las señales PWM estándar se repiten cada incremento de periodo.

La figura de la derecha ilustra una señal de salida PWM. La mayoría de las salidas digitales del PLC Velocio son salidas de transistor de «hundimiento» – así que cuando la salida está encendida, la salida se hunde, bajando la señal.
La siguiente figura muestra un PWM estándar en la parte superior, y una salida PWM de un pulso en la parte inferior. Una salida PWM de pulso único está activa durante su «tiempo de encendido» definido dentro del periodo PWM. No se repite. Si desea emitir otro pulso, su programa debe ejecutar otro bloque «Iniciar pulso PWM».

Límites de aplicación de los PWMs : Los PWMs pueden ser aplicados a cualquier salida digital que esté físicamente presente en el módulo PLC que contiene el programa de aplicación. Esto significa que cualquier salida digital Ace o Branch puede ser programada para emitir una señal PWM por el programa principal de la aplicación. Cualquier Branch Explansion PLC que tenga su propio programa (subrutina embebida) puede emitir una señal PWM desde la subrutina embebida. Las unidades de expansión Branch que se utilizan como expansión IO, no pueden emitir señales PWM.

Cualquier combinación de salidas digitales, contenidas en el PLC con el programa, puede tener señales de salida PWM. Cada salida activa tiene su propio «tiempo de encendido». Sin embargo, el Periodo es común a todas las señales PWM de la unidad PLC.

PWM en vBuilder

PWM es una tarea en segundo plano que, una vez ejecutada, continuará enviando señales a la salida. No llame a esta función en cada ciclo del PLC, sino sólo una vez cuando necesite cambiar sus parámetros.

Cuando coloque un bloque PWM en su programa, aparecerá un cuadro de diálogo como el que se muestra a continuación.

Con este cuadro de diálogo, puede Establecer el Periodo PWM, Iniciar (continuar/ajustar) la operación PWM, o Detener el PWM.

Establecer Periodo PWM

El periodo es común a todos los PWMs del PLC. El periodo se establece seleccionando el botón de radio «Establecer Periodo», luego seleccionando una variable tagnamed ui16, o introduciendo un número entre 100 y 65535. La temporización es en microsegundos (1 millón de microsegundos = 1 segundo). Esto significa que el periodo PWM puede oscilar entre 100 microsegundos y poco más de 65 milisegundos.

Si el periodo se ajusta a un valor inferior a 1 milisegundo (un ajuste inferior a 1000), sólo estará activa una salida PWM. La salida PWM activa será la que tenga el Tiempo de Encendido más corto.

Si el periodo se ajusta a 1 milisegundo o más, todas las salidas definidas para PWM tendrán señales activas.

En resumen, para fijar el periodo, seleccione Fijar Periodo, seleccione o introduzca un número ui16 (entero de 16 bits sin signo), y pulse OK.

Inicio PWM

La selección de Inicio define la Salida y el Tiempo de Encendido para la señal PWM. También permite seleccionar entre Pulso Continuo o Pulso Único. Si el PWM se va a utilizar para una señal PWM de Tiempo de Encendido variable, cada vez que se ejecute el bloque, el Tiempo de Encendido actualizará su valor en el siguiente Periodo.

En la selección de Clavija de Salida, debe introducir el nombre de una salida digital presente en el PLC. El cuadro de diálogo le permitirá seleccionar cualquier nombre de bit. Sin embargo, si el tagname seleccionado no es el de una salida digital del PLC, el PWM no se ejecutará. Si está iniciando un PWM en una subrutina, el tagname debe ser una referencia a una salida digital del PLC.

El tiempo de activación puede ser cualquier valor ui16 (0-65535) o variable tagnamed.

Si selecciona Operación Continua, los pulsos PWM continuarán, un pulso por periodo, hasta que ejecute un bloque Stop PWM para la salida. Si selecciona Pulso Único, la salida será de un pulso en el siguiente Periodo. Una vez completado el periodo, la salida se ajustará según el estado de salida digital programado para esa salida.

Parada PWM

Para colocar un bloque que detenga una salida PWM, basta con seleccionar el botón de opción Detener y seleccionar el nombre de la salida. Si está colocando el bloque Parar en una subrutina, coloque la referencia a la salida como el Pin de Salida

Problemas PWM

PWM utiliza temporizadores para el período y el tiempo de encendido. Sólo hay tantos temporizadores en un microcontrolador, así que usamos 2 temporizadores para generar PWMs para hasta 24 salidas digitales. Esto significa que si el apagado debe ocurrir al mismo tiempo para dos señales PWM diferentes, una tendrá que esperar a la otra (algún número de microsegundos). Si ambos PWMs son continuos, no debería haber jitter, porque la secuencia entre los dos PWMs será la misma.

Si tu programa está constantemente iniciando los dos PWMs, entonces eso puede estar causando el jitter. La función PWM mantiene una tabla de PWMs activos. Los PWMs están ordenados del más corto en tiempo al más largo. Si el programa del cliente está iniciando los PWMs en cada escaneo y los tiempos para dos o más salidas PWM son los mismos, la tabla será recurrida constantemente. Si sólo pueden reiniciar un PWM cuando el tiempo de encendido cambia, deberían ver menos jitter.

PWM con un tiempo de encendido del 100

¡Obtengo un periodo duplicado cuando estoy en un 100% OnTime!

Hacemos PWM en microsegundos. Hay un límite en el número de instrucciones del CPU que pueden ocurrir en un microsegundo. La función PWM usa dos temporizadores – uno para el periodo y otro para el siguiente fin de ciclo de encendido. Al final del periodo, hay un estado de carrera entre estos dos temporizadores. Si el siguiente periodo comienza antes del tiempo de apagado del ciclo, el PWM perderá un ciclo. Por lo tanto, aconsejamos limitar el tiempo de encendido a la duración del periodo menos 2 o 3 microsegundos.

Múltiples PWMs afectarán esto también. Si tienes varios PWMs simultáneos en marcha, puede que quieras retrasarlo uno o dos microsegundos más.

Sugerimos utilizar un tiempo de encendido mínimo de unos 2 microsegundos. El problema es más raro en el pulso mínimo, pero puede ocurrir allí también.

No es un error. Es física. Hay limitaciones a lo que puede ocurrir en un periodo de tiempo realmente corto.

PWM en el osciloscopio

con un periodo de 350 microsegundos y un tiempo de encendido de 175, 115 y 35 microsegundos
Se coloca una resistencia pull-up de 10 KOhms entre los 5V (último pin) y la salida (pines 1 a 7). Se realiza una medición entre la salida y GND (primer pin 0).

valor «On Time» 175 microsegundos = 50% del periodo

valor «On Time» 115 microsegundos = 33% del periodo

valor de «On Time» 35 microsegundos = 10% del periodo