Bloque responsable por la búsqueda de la posición de la LimitSwitch.
Representación Ladder

Características de Ejecución
Tamaño de Memoria de Programa |
72 Bytes |
Tamaño de Memoria de Datos |
40 Bytes |
Estructura del Bloque
Tipo de Variável |
Nombre |
Tipo de Dado |
Descripción |
VAR_IN_OUT |
Axis |
BYTE |
Selección de eje de la operación (1 - Eje Virtual 1) |
VAR_INPUT |
Execute |
BOOL |
Habilitación del bloque |
Direction |
BYTE |
Dirección de búsqueda (0 - Dirección positiva) (1 - Dirección negativa) |
|
LimitSwitchMode |
BYTE |
Modo de búsqueda (3 - MC_EdgeOn) (4 - MC_EdgeOff) |
|
Velocity |
REAL |
Velocidad [rpm] |
|
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_STEPLIMITSWITCH_INST_0 |
MC_STEPLIMITSWITCH |
Instancia de acceso a la estructura del bloque |
Operación
Este bloque, cuando detecta un flanco de subida en Execute, envía un comando para búsqueda de la posición de la LimitSwitch.
La LimitSwitch solamente podrá ser conectada en las entradas digitales 1, 2 o 3, donde la función programada de la entrada digital deberá ser de acuerdo con el argumento "LimitSwitchMode" y con el argumento "Direction". Será considerada LimitSwitch la primera entrada digital configurada conforme la tabla, a partir de la entrada digital 1. En caso de que ninguna entrada digital esté configurada conforme LimitSwitchMode y Direction, ocurrirá el error 77 en el bloque y el mismo no será ejecutado:
Dirección |
Modo Limit Switch |
Función Entrada Digital |
MC_Positive |
MC_EdgeOn |
Limit switch en sentido horario activo alto (opción 12) |
MC_Positive |
MC_EdgeOff |
Limit switch en sentido horario activo bajo (opción 13) |
MC_Negative |
MC_EdgeOn |
Limit switch en sentido antihorario activo alto (option 14) |
MC_Negative |
MC_EdgeOff |
Limit switch en sentido antihorario activo bajo (option 15) |
La búsqueda será ejecutada con la velocidad configurada en el argumento Velocity y con una aceleración/desaceleración configurada en el Perfil estándar (General Profile).
Con la ejecución del bloque MC_StepLimitSwitch, la posición de referencia del usuario (P0051, P0052 y P0053) no será alterada. El drive pasará a operar en malla de posición y permanecerá así tras la conclusión del bloque. Se debe ajustar la ganancia proporcional de posición (P0159) para obtener un mejor desempeño del drive.
En la ejecución del bloque, el estado del eje cambiará para Homing y permanecerá así hasta la ejecución de los bloques MC_StepRefPulse, MC_StepDirect o MC_FinishHoming.
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 |
Descripción |
60 |
Velocidad programada menor que la mínima permitida. |
61 |
Velocidad programada mayor que la máxima permitida. |
62 |
Aceleración programada menor que la mínima permitida. |
63 |
Aceleración programada mayor que la máxima permitida |
64 |
Desaceleración programada menor que la mínima permitida |
65 |
Desaceleración programada mayor que la máxima permitida. |
67 |
Drive en estado "Disabled" o "ErrorStop". |
69 |
Drive en estado "Stopping". |
71 |
P202 diferente de 4. |
76 |
Estado del Drive diferente de "StandStill" o "Homing". |
77 |
Entradas digitales 1, 2 y 3 no configuradas conforme "SwitchMode". |
97 |
Realimentación de la posición no permitida. Verificar P290 y P360. |
|
¡NOTA! Bloque permitido solo cuando la realimentación y el sensor de posición se resolver. |
Ejemplo en Ladder



En la transición de subida de HOME_EXECUTE, es ejecutado el bloque MC_StepLimitSwitch. Con eso, las señales Busy y Active de este bloque son ajustadas y se inicia la búsqueda de la LimitSwitch.
En el caso 1, al ejecutar el bloque, la LimitSwitch no está accionada. Como el argumento Direction está configurado como MC_Negative, el movimiento será en la dirección negativa. Cuando ocurra un flanco de subida en LimitSwitch (LimitSwitchMode = MC_EdgeOn), el motor parará y volverá a la posición en la que ocurrió el flanco.
EN el caso 2, al ejecutar el bloque, la LimitSwitch estará accionada. Incluso con el argumento Direction configurado como MC_Negative, el movimiento será en la dirección positiva y, al salir de la LimitSwitch, el motor parará y cambiará el movimiento para la dirección negativa. Cuando ocurra el borde de subida en LimitSwitch (LimitSwitchMode = MC_EdgeOn), el motor parará y volverá a la posición en la que ocurrió el flanco.
Todos los movimientos serán realizados con una aceleración/desaceleración programada en el "Perfil Estándar", excepto al encontrar la LimitSwitch (fin de curso), donde el motor parará instantáneamente.
Al volver a la posición de flanco de subida de la LimitSwitch, la salida Done del bloque será ajustada y las señales Busy y Active de este bloque serán reseteadas. La salida Done permanecerá TRUE mientras la entrada Execute esté ajustada.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR HOME_EXECUTE, HOME_DONE, HOME_BUSY, HOME_ACTIVE : BOOL; MC_STEPLIMITSWITCH_INST_0 : FB_MC_StepLimitSwitch; END_VAR
MC_STEPLIMITSWITCH_INST_0.Execute := HOME_EXECUTE; MC_STEPLIMITSWITCH_INST_0( Axis:=0, Direction:=2, LimitSwitchMode:=3, Velocity:=100.0); HOME_BUSY := MC_STEPLIMITSWITCH_INST_0.Busy; HOME_ACTIVE := MC_STEPLIMITSWITCH_INST_0.Active; HOME_DONE := MC_STEPLIMITSWITCH_INST_0.Done;
|
|---|