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

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.
|
¡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.

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

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