Bloque que genera una señal PWM con un determinado número pulsos en la salida digital seleccionada, respetando una rampa de subida y de bajada en la frecuencia.

 

Representación Ladder

 

P_RAMP_V2_G0_dev

 

Estructura del Bloque

 

Tipo de Variable

Nombre

Tipo de Dato

Descripción

VAR_INPUT

EN

BOOL

Habilitación del bloque

Pulses

DWORD UDINT

Número de pulsos total de la ejecución del bloque

Frequency

DWORD UDINT

Frecuencia máxima que se desea alcanzar

RampTime

DWORD UDINT

Tiempo de rampa [ms]

Steps

BYTE USINT

Pasos de incremento de frecuencia

OutputNumber

CONST BYTE

Salida a ser generada la señal

VAR_OUTPUT

DONE

BOOL

Habilitación de salida

VAR

P_RAMP_INST_0

P_RAMP

Instancia de acceso a la estructura del bloque

 

Funcionamiento

 

Cuando la entrada EN sea TRUE, el bloque generará una señal PWM en la salida seleccionada. Inicialmente genera una rampa de subida, partiendo de la frecuencia nula hasta el valor de Frequency (entre 0 y 200 KHz), basado en las configuraciones de Time y Steps. En momento apropiado, el bloque genera una rampa de bajada, con el mismo perfil de la rampa de subida, hasta que la frecuencia sea nula y el valor de Pulses sea alcanzado.

 

Cuando el valor de Pulses sea alcanzado, la salida DONE pasará a TRUE.

 

P_RAMP_graph1

 

En caso de que la entrada EN pase a FALSE antes de alcanzar el número de Pulses, la generación del PWM será interrumpida inmediatamente.

 

P_RAMP_graph2

 

El duty cycle de la señal se mantiene constante en 0.5 durante toda la ejecución del bloque.

 

Para que la rampa de frecuencia sea generada, es necesario que cada Step tenga por el menos 2 pulsos.

 

En caso de que esta limitación no sea respetada, la rampa de frecuencia no será generada, o sea, en la habilitación del bloque, la señal PWM partirá directamente al valor de Frequency.

 

El mínimo de pulsos que pueden ser generados es 2. Sin embargo, en caso de que el número de pulsos a ser generados sea 0, el bloque retornará éxito.

 

wpshelp_common_fig_note

¡NOTA!

Habiendo otros bloques PWM en ejecución, tendrá prioridad el que sea llamado primero.

 

wpshelp_common_fig_note

¡NOTA!

Este bloque tiene prioridad sobre cualquier bobina que esté escribiendo datos en la salida seleccionada.

 

Ejemplo en Ladder

 

 

P_RAMP_V2_example01

El ejemplo de arriba habilita una señal PWM en la salida DO1 con frecuencia inicial de 0 Hz y duty cycle de 50%. El tiempo de la rampa de subida de frecuencia es de 500 ms, y la rampa tiene 5 pasos de frecuencia (0, 50, 100, 150 y 200 Hz). En el total de la ejecución del bloque, serán enviados a la salida 1000 pulsos. Finalizado el bloque con éxito, será activada la salida DONE.

 

P_RAMP_example02

 

Ejemplo en ST

 

 El ejemplo de abajo exhibe las instrucciones para aplicación del ejemplo de arriba en lenguaje ST.

 

 

VAR

   pulses : DWORD := 1000;

   freq : DWORD := 200;

   rampTime : DWORD := 500;

   steps : BYTE := 5;

   start : BOOL := 0;

   coil : BOOL;

   P_RAMP_INST_0 : FB_P_RAMP;

END_VAR

 

P_RAMP_INST_0.EN := start;

P_RAMP_INST_0(

  OutputNumber:=1,

   Pulses:=pulses,

   Frequency:=freq,

  RampTime:=rampTime,

   Steps:=steps);

coil := P_RAMP_INST_0.DONE;