Camino:  Equipo (Dispositivos) > LDW900 > Ladder > Motion Control > Motion Control Homing >

MC_HomeDirect

Seta posição de referência

Previous pageReturn to chapter overviewNext page

Bloque responsable por el cambio de la posición de referencia del usuario.

 

Representación Ladder

 

MC_HomeDirect_block

 

Características de Ejecución

 

Tamaño de Memoria de Programa

46 Bytes

Tamaño de Memoria de Datos

16 Bytes

 

Estructura del Bloque

 

Tipo de Variável

Nome

Tipo de Dado

Descrição

VAR_IN_OUT

Axis

BYTE

Selección de eje de la operación

(0 - Eje real)

(1 - Eje Virtual 1)

VAR_INPUT

Execute

BOOL

Habilitación del bloque

SetPosition

LREAL

Nueva posición de referencia del usuario

VAR_OUTPUT

Done

BOOL

Habilitación de la salida

Busy

BOOL

Señalizador de que el bloque aún no fue finalizado

Active

BOOL

Señalizador de bloque con control sobre el eje

CommandAborted

BOOL

Señalizador de comando abortado

Error

BOOL

Señalizador de error en la ejecución

ErrorID

WORD

Identificador del error ocurrido

VAR

MC_HOMEDIRECT_INST_0

MC_HOMEDIRECT

Instancia de acceso a la estructura del bloque

 

Operación

 

Este bloque, cuando detecta un flanco de subida en Execute, hace que la posición de referencia del usuario (P0051, P0052 y P0053) sea alterada para el valor del argumento SetPosition.

 

En la ejecución del bloque, si el estado del eje es Homing, el estado del eje cambiará para Standstill. En caso contrario, permanecerá en el estado actual.

 

Cuando Execute tiene valor FALSE, Done permanece FALSE. La salida Done es activada cuando el bloque termina la ejecución exitosamente, permaneciendo en nivel TRUE hasta que Execute reciba FALSE.

 

En caso de que 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

Descrição

71

P202 diferente de 4.

76

Estado del Drive diferente de "StandStill" o "Homing".

 

Ejemplo en Ladder

 

MC_HomeDirect_example01
 
MC_HomeDirect_example02
 
MC_HomeDirect_example03

 

En la transición de subida de STEPABSSW_EXECUTE, es ejecutado el bloque MC_StepAbsoluteSwitch y se inicia la búsqueda de la AbsoluteSwitch. El estado del eje es alterado para Homing.

 

En el caso 1, al ejecutar el bloque, la AbsoluteSwitch no está accionada. Como el argumento Direction está configurado como MC_SwitchNegative, el movimiento será en la dirección negativa. Cuando ocurra un flanco de subida en AbsoluteSwitch (SwitchMode = MC_EdgeOn), el motor parará y volverá a la posición en que ocurrió el flanco.

 

En el caso 2, al ejecutar el bloque, la AbsoluteSwitch está accionada.  Como el argumento Direction está configurado como MC_SwitchPositive, el movimiento será en la dirección positiva y, al salir de la AbsoluteSwitch, el motor parará y cambiará el movimiento para la dirección negativa. Cuando ocurra un flanco de subida en AbsoluteSwitch (SwitchMode = MC_EdgeOn), el motor parará y volverá a la posición en que ocurrió el flanco.

 

Todos los movimientos serán realizados con una aceleración/desaceleración programada en el "Perfil Estándar".

 

Al volver a la posición de flanco de subida de la AbsoluteSwitch, la salida Done del bloque es ajustada y permanece TRUE mientras la entrada Execute esté ajustada.

 

En la transición de subida de STEPABSSW_DONE, el bloque MC_StepDirect es ejecutado y la posición de referencia del usuario (P0051, P0052 y P0053) es alterada para 3,5 vueltas (P0051 = 8192, P0052 = 3 y P0053 = 0). El estado del eje es alterado para Standstill.

 

Cuando STEPABSSW_EXECUTE es reseteado, STEPABSSW_DONE y STEPDIR_DONE también son reseteados.

 

Ejemplo en ST

 

 El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.

 

 

VAR

  STEPABSSW_EXECUTE, STEPABSSW_DONE, STEPDIR_DONE : BOOL;

  MC_STEPABSOLUTESWITCH_INST_1 : FB_MC_StepAbsoluteSwitch;

  MC_HOMEDIRECT_INST_0 : FB_MC_HomeDirect;

END_VAR

 

MC_STEPABSOLUTESWITCH_INST_1.Execute := STEPABSSW_EXECUTE;

MC_STEPABSOLUTESWITCH_INST_1(

  Axis:=0,

  Direction:=6,

  SwitchMode:=3,

  Velocity:=100.0);

STEPABSSW_DONE := MC_STEPABSOLUTESWITCH_INST_1.Done;

 

MC_HOMEDIRECT_INST_0.Execute := STEPABSSW_DONE;

MC_HOMEDIRECT_INST_0(Axis:=0, SetPosition:=LREAL#3.5);

STEPDIR_DONE := MC_HOMEDIRECT_INST_0.Done;