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

MW_PlcChangeRamp1

Previous pageReturn to chapter overviewNext page

Bloque para alterar la rampa y la velocidad estándar de los ejes en modo de control de ejes.

 

Los bloques de control de eje (MW_PlcMoveAbsolute y MW_PlcMoveRelative) tienen una rampa estándar con las siguientes características:

 

Tiempo de aceleración: 100ms;
Número de steps para aceleración: 20;
Frecuencia inicial: 0 Hz;
Frecuencia final: 10 kHz.

 

Ese bloque permite alterar esos valores estándares.

 

Representación Ladder

 

MW_PlcChangeRamp1_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

FirstFreq

DWORD DINT

Frecuencia inicial de los pulsos [Hz]

TargetFreq

DWORD DINT

Frecuencia final de los pulsos [Hz]

AccelerationTime

DWORD

Tiempo de rampa [ms]

NumberOfSteps

BYTE USINT

Paso de incremento de frecuencia

VAR_OUTPUT

ENO

BOOL

Habilitación de salida

Busy

BOOL

Indica que el eje está en movimiento

Error

BOOL

Indica que hubo un error al llamar el bloque

ErrorID

BYTE

Indica el error generado

VAR

MW_PlcChangeRamp1_INST_0

MW_PlcChangeRamp1

Instancia de acceso a la estructura del bloque

 

Funcionamiento

 

Cuando la entrada EN cambia de FALSE a TRUE (flanco de subida), el bloque altera la rampa estándar del eje seleccionado (axisNumber) con los valores de entrada.

 

El bloque sólo alterará los valores si el eje seleccionado estuviera parado, en caso contrario, la salida "Busy" será TRUE.

 

La rampa será alterada tanto para el control con bloques de 1 eje (MW_PlcMoveAbsolute1 y MW_PlcMoveRelative1) como para los bloques de control de dos ejes simultáneamente (MW_PlcMoveAbsolute2 y MW_PlcMoveRelative2).

 

La frecuencia final no puede ser 0 Hz.

 

La frecuencia final debe ser mayor que la frecuencia inicial.

 

El tiempo mínimo de rampa es de 1 ms. Si fuera pasado al bloque un valor menor, éste considerará 1 ms automáticamente.

 

El número mínimo de pasos es 1. Si fuera pasado al bloque un valor menor, éste considerará 1 automáticamente.

 

wpshelp_common_fig_note

NOTA!

El número mínimo de pasos por step es 2. Si no se cumple este requisito, la rampa no se generará.

 

Para verificar si se cumple el requisito, considere:

 

delta_t_ms = AccelerationTime / NumberOfSteps (tiempo por step en ms)

 

delta_t_s = delta_t_ms / 1000 (tiempo por step en segundos)

 

delta_f = (TargetFreq - FirstFreq) / NumberOfSteps (variación de frecuencia por step)

 

La menor frecuencia, lowerFrequency, utilizada en la rampa será FirstFreq si FirstFreq es diferente de 0; de lo contrario, la menor frecuencia en la rampa será el propio delta_f.

 

Así, si la siguiente condición es verdadera, significa que no se está cumpliendo el requisito mínimo de 2 pasos por step:

 

delta_t_s * lowerFrequency < 2

 

Es decir, el usuario debe asegurarse de que:

 

delta_t_s * lowerFrequency >= 2

 

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.

 

La figura a continuación muestra el comportamiento de la rampa de acuerdo con los valores configurados.

 

MW_PlcChangeRamp1_example02

 

Si la posición deseada está muy cerca de la actual, el bloque limitará la frecuencia máxima, manteniendo la aceleración configurada, como se muestra en la figura a continuación.

 

MW_PlcChangeRamp1_example03

 

Código

Descripción

0

Ejecutado con éxito

1

Control de eje no habilitado

2

Rampa inválida

3

Error de configuración

 

Ejemplo en Ladder

 

MW_PlcChangeRamp1_example01

 

En el ejemplo de arriba, el contacto "change" altera el valor de las rampas estándar de dos ejes del producto (asumiendo que el control de esos dos ejes está habilitado).

 

La rampa del eje 1 será alterada a:

 

Tiempo de aceleración: 200ms;
Número de steps para aceleración: 10;
Frecuencia inicial: 5 kHz.
Frecuencia final: 50 kHz.

 

La rampa del eje 2 será alterada a:

 

Tiempo de aceleración: 500ms;
Número de steps para aceleración: 50;
Frecuencia inicial: 0 Hz.
Frecuencia final: 200 kHz.

 

O sea, todos los comandos de control de movimiento para esos ejes, a partir de ahora, tendrán esas rampa, de forma estándar, tanto para los bloques de control de 1 eje como para los bloques de control de 2 ejes (respetando los límites de cada uno).

 

Ejemplo en ST

 

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

 

 

VAR

   firstFreq_A1 : DWORD := 5000;

   targetFreq_A1 : DWORD := 50000;

   accTime_A1 : DWORD := 200;

   firstFreq_A2 : DWORD := 0;

   targetFreq_A2 : DWORD := 200000;

   accTime_A2 : DWORD := 500;

   change : BOOL := 0;

   done : BOOL;

   MW_PlcChangeRamp1_INST_0 : FB_MW_PlcChangeRamp1;

   MW_PlcChangeRamp1_INST_1 : FB_MW_PlcChangeRamp1;

END_VAR

 

MW_PlcChangeRamp1_INST_0.EN := change;

MW_PlcChangeRamp1_INST_0(

  AxisNumber:=1,

   FirstFreq:=firstFreq_A1,

   TargetFreq:=targetFreq_A1,

   AccelerationTime:=accTime_A1,

   NumberOfSteps:=10);

 

MW_PlcChangeRamp1_INST_1.EN := MW_PlcChangeRamp1_INST_0.ENO;

MW_PlcChangeRamp1_INST_1(

  AxisNumber:=2,

   FirstFreq:=firstFreq_A2,

   TargetFreq:=targetFreq_A2,

   AccelerationTime:=accTime_A2,

   NumberOfSteps:=50);

done := MW_PlcChangeRamp1_INST_1.ENO;