MW_PlcSetPosition2
MW_PlcSetPosition2 establece los valores de posición actual de dos ejes paso a paso. En el flanco de subida de EN, escribe los valores configurados de Position, pero solo cuando no se están enviando pulsos y los motores están detenidos.
Representación en Ladder
Estructura de bloques
| Tipo de variable | Nombre | Tipo de datos | Descripción |
|---|---|---|---|
| VAR_INPUT | EN | BOOL | Habilita el bloque. |
| VAR_INPUT | PositionAxis1 | DINT | Posición objetivo o configurada para el eje seleccionado. |
| VAR_INPUT | PositionAxis2 | DINT | Posición objetivo o configurada para el eje seleccionado. |
| VAR_OUTPUT | ENO | BOOL | Habilitación de salida. |
| VAR | MW_PlcSetPosition2_INST_0 | MW_PlcSetPosition2 | Instancia de acceso para la estructura de bloques. |
Operación
- En un flanco de subida de
EN, el bloque establece la posición actual del eje con el valor configurado dePosition. - El bloque solo funciona cuando no se envían pulsos al eje; el motor debe estar detenido.
- El control del motor paso a paso debe estar habilitado para el eje o los ejes seleccionados.
Ejemplos
- Ejemplo en Diagrama Ladder
- Ejemplo en Texto estructurado
El ejemplo en Ladder muestra un uso funcional del bloque con las señales de comando, estado y salida correspondientes.
El siguiente código en Structured Text aplica el mismo ejemplo funcional.
Structured Text
VAR
set : BOOL := 1;
read : BOOL := 1;
doneReading : BOOL;
setPos1 : DINT := 5000;
setPos2 : DINT := 10000;
readPos1 : DINT := 0;
readPos2 : DINT := 0;
PTSCONTACT_INST_0 : FB_PTSCONTACT;
MW_PlcSetPosition2_INST_0 : FB_MW_PlcSetPosition2;
END_VAR
PTSCONTACT_INST_0(EN:=TRUE, BIT:=set);
MW_PlcSetPosition2_INST_0(
EN:=PTSCONTACT_INST_0.Q,
PositionAxis1:=setPos1,
PositionAxis2:=setPos2);
doneReading := FB_MW_PlcGetPosition2(
EN:=read,
PositionAxis1=>readPos1,
PositionAxis2=>readPos2);