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

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



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