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

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.

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

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.
|
NOTA! Havendo outros blocos PWM em execução, terá prioridade aquele que for chamado primeiro. |
|
NOTA! Este bloco tem prioridade sobre qualquer bobina que esteja escrevendo dados na saída selecionada. |
Exemplo em Ladder

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.

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;
|
|---|