Bloque para interrumpir la generación de pulsos al controlar dos motores de paso simultáneamente.
Representación Ladder

Estructura del Bloque
Tipo de Variable |
Nombre |
Tipo de Dato |
Descripción |
VAR_INPUT |
EN |
BOOL |
Habilitación del bloque |
VAR_OUTPUT |
ENO |
BOOL |
Habilitación de salida |
VAR |
MW_PlcStop2_INST_0 |
MW_PlcStop2 |
Instancia de acceso a la estructura del bloque |
Funcionamiento
Cuando la entrada EN cambia de FALSE a TRUE (flanco ascendente), el bloque inicia una rampa de desaceleración para la generación de pulsos para ambos motores paso a paso.
La rampa de desaceleración sigue la configuración utilizada en el bloque de configuración de rampa (MW_PlcChangeRamp1).
|
¡NOTA! Es necesario que el control de motor de paso esté habilitado para los dos ejes. Vea el manual del usuario y el manual de parámetros. |
Ejemplo en Ladder

Al activar el contacto "start", se genera una señal PWM en la salida de pulsos del eje 1 con una frecuencia inicial de 0 Hz y un ciclo de trabajo del 50%. La salida de dirección del eje 1 se establece en un nivel bajo (considerando que la dirección no ha sido invertida a través de parámetros) y se realiza una rampa sincronizada con el eje 2.
También se genera una señal PWM en la salida de pulsos del eje 2 con una frecuencia inicial de 0 Hz y un ciclo de trabajo del 50%. La salida de dirección del eje 2 se establece en un nivel alto (considerando que la dirección no ha sido invertida a través de parámetros) y se realiza una rampa sincronizada con el eje 1.
En paralelo, el contacto "start" inicia un temporizador de 3 segundos que, al final del tiempo, iniciará una rampa de desaceleración para los pulsos en ambos ejes y el bloque de movimiento se completará, independientemente de la cantidad de pulsos generados.
Ejemplo en ST
El ejemplo de abajo, exhibe las instrucciones para aplicación del ejemplo funcional en el lenguaje ST.
VAR start : BOOL := 0; finished : BOOL; stopped : BOOL; pos1 : DINT := 1000000; pos2 : DINT := 2000000; MW_PlcMoveRelative2_INST_0 : FB_MW_PlcMoveRelative2; MW_PlcStopWithRamp2_INST_0 : FB_MW_PlcStopWithRamp2; TON_INST_0 : FB_TON; END_VAR
MW_PlcMoveRelative2_INST_0.EN := start; MW_PlcMoveRelative2_INST_0( AxisNumber:=1, Position:=pos); finished := MW_PlcMoveRelative2_INST_0.DONE;
TON_INST_0.EN := start; TON_INST_0(PT:=3, TIMEBASE:=1000);
MW_PlcStopWithRamp2_INST_0.EN := TON_INST_0.Q; MW_PlcStopWithRamp2_INST_0(ENO=>stopped);
|
|---|