Bloco que gera um sinal PWM com um determinado número pulsos na saída digital selecionada, respeitando uma rampa de subida e de descida na frequência.

 

Representação Ladder

 

P_RAMP_V2_G0_dev

 

Estrutura do Bloco

 

Tipo de Variável

Nome

Tipo de Dado

Descrição

VAR_INPUT

EN

BOOL

Habilitação do bloco

Pulses

DWORD UDINT

Número de pulsos total da execução do bloco

Frequency

DWORD UDINT

Frequência máxima que se deseja atingir

RampTime

DWORD UDINT

Tempo de rampa [ms]

Steps

BYTE USINT

Passos de incremento de frequência

OutputNumber

CONST BYTE

Saída a ser gerado o sinal

VAR_OUTPUT

DONE

BOOL

Habilitação de saída

VAR

P_RAMP_INST_0

P_RAMP

Instância de acesso à estrutura do bloco

 

Funcionamento

 

Quando a entrada EN for TRUE, o bloco gera um sinal PWM na saída selecionada. Inicialmente gera uma rampa de subida, partindo da frequência nula até o valor de Frequency, baseado nas configurações de Time e Steps. Em momento apropriado, o bloco gera uma rampa de descida, com o mesmo perfil da rampa de subida, até que a frequência seja nula e o valor de Pulses seja alcançado.

 

Quando o valor de Pulses for atingido, a saída DONE vai para TRUE.

 

P_RAMP_graph1

 

Caso a entrada EN for para FALSE antes de de atingir o número de Pulses, a geração do PWM é interrompida imediatamente.

 

P_RAMP_graph2

 

O duty cycle do sinal mantém-se constante em 0.5 durante toda a execução do bloco.

 

Para a que a rampa de frequência seja gerada, é necessário que cada Step tenha pelo menos 2 pulsos.

 

Caso esta limitação não seja respeitada, a rampa de frequência não é gerada, ou seja, na habilitação do bloco, o sinal PWM parte diretamente ao valor de Frequency.

 

O mínimo de pulsos que podem ser gerados é 2. Entretanto, caso o número de pulsos a serem gerados seja 0, o bloco ira retornar sucesso.

 

wpshelp_common_fig_note

NOTA!

Havendo outros blocos PWM em execução, terá prioridade aquele que for chamado primeiro.

 

wpshelp_common_fig_note

NOTA!

Este bloco tem prioridade sobre qualquer bobina que esteja escrevendo dados na saída selecionada.

 

Exemplo em Ladder

 

 

P_RAMP_V2_example01

O exemplo acima habilita um sinal PWM na saída DO1 com frequência inicial de 0 Hz e duty cycle de 50%. O tempo da rampa de subida de frequência é de 500 ms, e a rampa possui 5 passos de frequência (40, 80, 120, 160 e 200 Hz). No total da execução do bloco, 1000 pulsos serão enviado à saída. Finalizado o bloco com sucesso, a saída DONE é ativada.

 

P_RAMP_example02

 

Exemplo em ST

 

 O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem 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;