Caminho:  Equipamentos (Dispositivos) > CFW500 > Ladder > Motion Control >

MW_SRamp

Gera Referência de Velocidade com Perfil S

Previous pageReturn to chapter overviewNext page

 

Bloco que envia a referência de velocidade com perfil S.

 

Representação Ladder

 

MW_SRamp

 

Estrutura do Bloco

 

Tipo de Variável

Nome

Tipo de Dado

Descrição

VAR_INPUT

EN

BOOL

Habilitação do bloco

Velocity

REAL

INT

UINT

WORD

Velocidade desejada [rpm]

Acceleration

REAL

INT

UINT

WORD

Aceleração máxima do movimento [rpm/s]

Jerk0

REAL

INT

UINT

WORD

Jerk inicial do movimento [rpm/s²]

Jerk1

REAL

INT

UINT

WORD

Jerk final do movimento [rpm/s²]

VAR_OUTPUT

ENO

BOOL

Habilitação da saída

Status

INT

UINT

WORD

Estado atual do movimento

 

 

 

Funcionamento

 

A entrada EN é responsável pela habilitação do bloco no instante em que houver uma transição positiva.

 

A saída ENO informa quando a velocidade foi atingida.

 

Se a entrada EN for 0, o bloco não é executado e a saída ENO é zero.

 

Este bloco gera um perfil de rampa S, controlando a velocidade partindo da velocidade atual, até atingir a velocidade desejada. Se houver uma nova transição na entrada EN, um novo perfil é executado.

 

Se houver uma transição de 0 para 1 na entrada EN, caso o drive esteja habilitado, a referência esteja via SoftPlc, não exista um outro bloco de movimento ativo, exceto um outro bloco MW_SRamp, o perfil de velocidade em forma de Rampa S é gerado, e a saída ENO vai a 1 quando a velocidade desejada for atingida. No decorrer da trajetória, o Status é atualizado de acordo com o estado de execução do movimento.

 

Este bloco somente é finalizado se for ativado um bloco MW_Stop2.

 

wpshelp_common_fig_note

NOTA!

 

Valores em 0 para o Jerk0 ou Jerk1, desabilitam o perfil S de trajetória. Valores negativos para a aceleração e para o jerk não são permitidos.

 

 

Códigos e descrição do Status:

 

Código

Descrição

0

desabilitado

1

movimento iniciado

2

movimento abortado

10

executando Jerk0

11

executando a aceleração constante

12

executando Jerk1

20

velocidade atingida

201

drive desabilitado

202

motor parado

203

referência não está via SoftPLC

204

drive em falha

205

executando outro bloco de movimento

207

aceleração inválida

208

Jerk0 inválido

209

Jerk1 inválido

 

 

Exemplo em Ladder

 

 MW_SRamp_example01

 

No exemplo acima, caso o drive esteja habilitado e com o comando de RUN, ao ocorrer uma transição positiva em EN_MW_SRAMP, o bloco MW_SRamp será executado conforme valores dos argumentos de entrada. Ao atingir a velocidade desejada, a saída ENO vai para 1.

No gráfico de tendência (trend) abaixo, é possível observar o Perfil S da Referência de Velocidade em vermelho e o Status do bloco em preto. No início do movimento o Status tem o valor 10 e está executando o Jerk0, até atingir a aceleração máxima quando passa a executar o movimento com aceleração constante e o Status tem o valor 11. Na parte final do Perfil S o bloco executa o Jerk1 e o Status tem o valor 12 até atingir a velocidade desejada. Quando atinge a velocidade desejada o Status tem o valor 20 e é nesse instante que a saída ENO vai para 1.

No gráfico é possível verificar que após alguns instantes o motor atingir a velocidade desejada de 1800 rpm, o bloco é novamente habilitado e um novo Perfil S é executado até atingir a nova velocidade desejada de zero rpm.

 

MW_SRamp_example02

 

Para parar o motor o bloco MW_Stop2 deverá ser habilitado ou executar o bloco MW_SRamp com o argumento de entrada Velocity com o valor zero.

Exemplo em ST

 

 O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.

 

 

VAR

   GEN_EN, RUN, EN_MW_SRAMP : BOOL := TRUE;

  IN_VELOCITY, EN_STOP, ENO_STOP : BOOL;

   VEL, STS : WORD;

END_VAR

 

CFW_CMD_GENERAL_ENABLE := GEN_EN;

CFW_CMD_RUN_STOP := RUN;

FB_MW_SRamp(

   Execute:=EN_MW_SRAMP,

   Velocity:=VEL,

   Acceleration:=150,

   Jerk0:=25,

  Jerk1:=50,

   Status=>STS,

   Done=>IN_VELOCITY);

 

FB_MW_Stop2(

   Execute:=EN_STOP,

   Deceleration:=1000,

   Control:=1,

   Done=>ENO_STOP);