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

MW_PlcSpeed1

Previous pageReturn to chapter overviewNext page

Bloque para control de velocidad con generación de rampa y número especificado de pulsos.

 

Representación Ladder

 

MW_PlcSpeed_G0

 

Estructura del Bloque

 

Tipo de Variable

Nombre

Tipo de Dato

Descripción

VAR_INPUT

EN/Execute

BOOL

Habilitación del bloque

AxisNumber

CONST

Eje seleccionado

NumberOfPulses

DINT

Número de pulsos total de la ejecución del bloque

TargetFrequency

DWORD DINT

Frecuencia final de los pulsos [Hz]

DeltaTime

DWORD

Tiempo de cada step hasta alcanzar la frecuencia target [ms]

DeltaFrequency

DWORD DINT

Variación de frecuencia de cada step [Hz]

VAR_OUTPUT

DONE

BOOL

Habilitación de salida

Active

BOOL

Indica que el bloque está activo

Busy

BOOL

Indica que hay otro bloque utilizando la salida seleccionada

Error

BOOL

Indica que hubo un error al llamar el bloque

ErrorID

BYTE

Indica el error generado

VAR

MW_PlcSpeed_INST_0

MW_PlcSpeed

Instancia de acceso a la estructura del bloque

 

Funcionamiento

 

Este bloque, cuando detecta un flanco de subida en la entrada EN, comienza a generar pulsos para el eje seleccionado con una frecuencia que parte de 0 Hz hasta la frecuencia deseada (targetFrequency) (entre 0 y 300 kHz).

 

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

 

Los pulsos se interrumpen cuando se genera el número total de pulsos (NumberOfPulses).

 

La dirección del eje depende de la señal de la entrada NumberOfPulses.

 

Mientras el número de pulsos generados no alcance el valor de Pulses, la salida "Active" quedará en nivel alto.

 

CCuando EN tiene valor FALSE, DONE permanece FALSE. La salida DONE se activa cuando el bloque finaliza la ejecución con éxito, permaneciendo en nivel TRUE hasta que EN reciba FALSE.

 

Para detener la generación de pulsos durante el movimiento, utilice el bloque MW_PlcStop1. En este caso, el bloque considera que el movimiento ha finalizado.

 

El número mínimo de pulsos que pueden ser generados es 2.

 

En caso de que esta limitación no sea respetada, ningún pulso será generado.

 

El número mínimo de pulsos que pueden ser generados por step es 2.

 

Si no se respeta esta limitación, la rampa de frecuencia no se genera, es decir, al habilitar el bloque, la frecuencia de los pulsos comienza directamente desde el valor de targetFrequency.

 

El bloque MW_PlcChangeSpeed puede ser utilizado en conjunto para alterar la frecuencia de salida durante la ejecución de ese bloque. Ver el help del bloque MW_PlcChangeSpeed para más informaciones.

 

wpshelp_common_fig_note

¡NOTA!

Habiendo otros bloques PWM en ejecución que usen la misma salida, tendrá prioridad el que sea llamado primero y la salida "Busy" será ajustada.

 

 La figura a continuación muestra el funcionamiento estándar del bloque, sin el uso del bloque MW_PlcChangeSpeed en conjunto.

 

 MW_PlcSpeed_example03

 

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 eje no habilitado

2

Número de pasos inválido

3

Rampa inválida

4

Error de configuración

 

Ejemplo en Ladder

 

MW_PlcSpeed_example01

En el ejemplo de arriba el contacto "start" habilita una señal PWM en la salida DO1 con frecuencia inicial de 0 Hz y duty cycle de 50%. La frecuencia será incrementada a 2000 Hz, cada 100ms, hasta llegar a 20000 Hz, o sea, el tiempo total de rampa será de 1 segundo. En el total de la ejecución del bloque, serán enviados a la salida 100000 pulsos. Finalizado el bloque exitosamente, la salida DONE será activada y será accionada la COIL.

 

 

MW_PlcSpeed_example02

En el ejemplo de arriba, el contacto "start" habilita una señal PWM en la salida DO1 con frecuencia inicial igual a la targetFreq. La rampa no será generada ya que no es posible generar 2 pulsos en 10 Hz dentro del tiempo de step de 100 ms. En el total de la ejecución del bloque, serán enviados a la salida 1000 pulsos. Finalizado el bloque exitosamente, la salida DONE será activada y será accionada la COIL.

 

Ejemplo en ST

 

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

 

 

VAR

   start : BOOL := 0;

   nPulses : DWORD := 100000;

   targetFreq : DWORD := 20000;

   stepTime : DWORD := 100;

   stepFreq : DWORD := 2000;

   MW_PlcSpeed_INST_0 : FB_MW_PlcSpeed;

END_VAR

 

MW_PlcSpeed_INST_0.EN := start;

MW_PlcSpeed_INST_0(

  OutputNumber:=1,

   NumberOfPulses:=nPulses,

   TargetFrequency:=targetFreq,

   DeltaTime:=stepTime,

   DeltaFrequency:=stepFreq);

COIL := MW_PlcSpeed_INST_0.DONE;