Bloque que genera un determinado número de pulsos en la salida especificada.
Representación Ladder

Estructura del Bloque
Tipo de Variable |
Nombre |
Tipo de Dato |
Descripción |
VAR_INPUT |
EN |
BOOL |
Habilitación del bloque |
OutputNumber |
CONST |
Salida seleccionada |
|
NumberOfPulses |
DWORD |
Número de pulsos total de la ejecución del bloque |
|
Frequency |
DWORD DINT |
Frecuencia de los pulsos |
|
VAR_OUTPUT |
DONE |
BOOL |
Habilitación de salida |
Active |
BOOL |
Indica que el bloque está activo |
|
Busy |
BOOL |
Indica que hay otro bloque utilizando la salida seleccionada |
|
Error |
BOOL |
Indica que hubo un error al llamar el bloque |
|
ErrorID |
BYTE |
Indica el error generado |
|
VAR |
PULSES_INST_0 |
PULSES |
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 (outputNumber) con frecuencia deseada (frequency) (entre 0 y 300 kHz) y duty cycle constante en 50%.
La señal PWM será interrumpida cuando el número total de pulsos (Pulses) sea generado.
Mientras el número de pulsos generados no alcance el valor de Pulses, la salida "Active" quedará en nivel alto.
Cuando el valor de Pulses sea alcanzado, la salida ENO pasará a TRUE.
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.
El número 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.
En caso de que esta limitación no sea respetada, ningún pulso será generado.
|
¡NOTA! Habiendo otros bloques PWM en ejecución que usen la misma salida, tendrá prioridad el que sea llamado primero y la salida "Busy" será ajustada. |
Ejemplo en Ladder

El ejemplo de arriba habilita una señal PWM en la salida DO1 con frecuencia inicial de 200 Hz y duty cycle de 50%. No es hecho ningún tipo de rampa en la frecuencia. 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.

Ejemplo en ST
El ejemplo de abajo exhibe las instrucciones para aplicación del ejemplo de arriba en lenguaje ST.
VAR start : BOOL := 0; coil : BOOL := 0; pulses : DWORD := 1000; freq : DWORD := 200; PULSES_INST_0 : FB_PULSES; END_VAR
PULSES_INST_0.EN := start; PULSES_INST_0( OutputNumber:=1, numberOfPulses:=pulses, Frequency:=freq); coil := PULSES_INST_0.DONE;
|
|---|