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

MW_PlcStop2

Previous pageReturn to chapter overviewNext page

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

 

Representación Ladder

 

MW_PlcStop2_G0

 

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 cambie de FALSE a TRUE (flanco de subida), el bloque interrumpirá inmediatamente la generación de pulsos para los dos motores de paso.

 

wpshelp_common_fig_note

¡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

 

MW_PlcStop2_example01

 

Al accionar el contacto "start", es generada una señal PWM en la salida de pulsos del eje 1 con frecuencia inicial de 0 Hz y duty cycle de 50%. La salida de dirección del eje 1 es ajustada para nivel bajo (considerando que la dirección no fue invertida vía parámetros) y es hecha una rampa sincronizada con el eje 2.

 

También es generada una señal PWM en la salida de pulsos del eje 2 con frecuencia inicial de 0 Hz y duty cycle de 50%. La salida de dirección del eje 2 es ajustada para nivel alto (considerando que la dirección no fue invertida vía parámetros) y es hecha una rampa sincronizada con el eje 1.

 

En paralelo, el contacto de "start" inicia un contador de 3 segundos que, al final del tiempo, hará que la señal de cada PWM, de ambos ejes, sea finalizada inmediatamente y el bloque de move sea concluido, 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_PlcStop2_INST_0 : FB_MW_PlcStop2;

   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_PlcStop2_INST_0.EN := TON_INST_0.Q;

MW_PlcStop2_INST_0(ENO=>stopped);