Camino:  Equipo (Dispositivos) > PLC200 > Programa > Motion - Stepper Motor >

MW_PlcChangeSpeed

Previous pageReturn to chapter overviewNext page

Bloque para control de velocidad para ser usado en conjunto con el bloque MW_PlcSpeed.

 

Ese bloque permite alterar la velocidad ajustada por un bloque MW_PlcSpeed activo en la salida seleccionada. Si no hubiera bloques MW_PlcSpeed activos para la salida seleccionada, ese bloque generará error.

 

Representación Ladder

 

MW_PlcChangeSpeed_G0

Estructura del Bloque

 

Tipo de Variable

Nombre

Tipo de Dato

Descripción

VAR_INPUT

EN

BOOL

Habilitación del bloque

AxisNumber

CONST

Eje seleccionado

TargetFrequency

DWORD DINT

Frecuencia final de los pulsos [Hz]

DeltaTime

DWORD

Tiempo de los steps hasta alcanzar la frecuencia target [ms]

DeltaFrequency

DWORD DINT

Variación de frecuencia de cada step [Hz]

VAR_OUTPUT

ENO

BOOL

Habilitación de salida

Error

BOOL

Indica que hubo un error al llamar el bloque

ErrorID

BYTE

Indica el error generado

VAR

MW_PlcChangeSpeed_INST_0

MW_PlcChangeSpeed

Instancia de acceso a la estructura del bloque

 

Funcionamiento

 

Cuando la entrada EN cambia de FALSE a TRUE, el bloque ajusta la frecuencia de los pulsos del eje seleccionado, partiendo de la frecuencia actual hasta la frecuencia deseada (targetFrequency).

 

A cada step de tiempo (deltaTime), la frecuencia es incrementada por deltaFrequency hasta alcanzar la frecuencia deseada (targetFrequency).

 

Ese bloque funciona como un complemento al bloque de MW_PlcSpeed, permitiendo solamente alterar la frecuencia definida inicialmente.

 

El bloque MW_PlcSpeed continua siendo responsable por monitorear el número de pulsos generados o deshabilitar la salida, en caso de estar deshabilitado.

 

Vea el help del bloque MW_PlcSpeed para verificar las limitaciones de los steps.

 

wpshelp_common_fig_note

¡NOTA!

Es necesario que haya un bloque MW_PlcSpeed activo controlando la salida.

 

 La figura a continuación muestra el comportamiento de la salida al habilitar el bloque.

 

 MW_PlcChangeSpeed_example02

 

En caso haya algún error en la ejecución, la salida Error será activada y ErrorID exhibirá el código del error según la tabla de abajo.

 

Código

Descripción

0

Ejecutado con éxito

1

Control de velocidad no iniciado

2

Algún dato de entrada inválido

3

Error de configuración

 

Ejemplo en Ladder

 

MW_PlcChangeSpeed_example01

En el ejemplo de arriba el contacto "start" habilita la señal de pulsos en DO1 con una frecuencia inicial de 0 Hz. La frecuencia se incrementará en 10 Hz cada 100ms hasta llegar a 1000 Hz.

 

En paralelo, el contacto de "start" inicia un contador de 10 segundos que, al final del tiempo, hará que la frecuencia de pulsos en la DO1 sea alterada a 10000 Hz con steps de 50ms y 1000 kHz.

 

En el total de la ejecución del MW_PlcSpeed_INST_0, 100000 pulsos serán enviados a la salida, independientemente de cuántas veces fue alterada la frecuencia. Finalizado el bloque con éxito, la salida del bloque es activada.

 

Ejemplo en ST

 

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

 

 

VAR

   nPulses : DWORD := 100000;

   targetFreq : DWORD := 20000;

   stepFreq : DWORD := 2000;

   stepTime : DWORD := 100;

   start : BOOL := 0;

   finished : BOOL;

   MW_PlcSpeed_INST_0 : FB_MW_PlcSpeed;

   MW_PlcChangeSpeed_INST_0 : FB_MW_PlcChangeSpeed;

   TON_INST_0 : FB_TON;

END_VAR

 

MW_PlcSpeed_INST_0.EN := start;

MW_PlcSpeed_INST_0(

  OutputNumber:=1,

   NumberOfPulses:=nPulses,

   TargetFrequency:=targetFreq,

   DeltaTime:=stepTime,

   DeltaFrequency:=stepFreq);

finished := MW_PlcSpeed_INST_0.DONE;

 

TON_INST_0.IN := start;

TON_INST_0(PT:=10, TIMEBASE:=1000);

 

MW_PlcChangeSpeed_INST_0.EN := TON_INST_0.Q;

MW_PlcChangeSpeed_INST_0(

  OutputNumber:=1,

   TargetFrequency:=10000,

   DeltaTime:=50,

   DeltaFrequency:=1000);