Configurar tabla de posicionamiento
Esta instrucción FP inicia el posicionamiento de la unidad de posicionamiento en el slot especificado por s1_Slot y del eje especificado por s2_Axis según la tabla de posicionamiento establecida en s3_Table si el trigger EN es TRUE. Configurar la tabla de posicionamiento en Configurator PM7.
Entrada
Número de slot
Número de eje
Valores: 1–4, 8 (eje virtual)
Número de tabla de posicionamiento
Valores: 1–600, 10001–10025
si el área especificada utilizando el modificador índice supera el límite.
si el número de slot y/o eje está fuera de rango
si el área especificada utilizando el modificador índice supera el límite.
si el número de slot y/o eje está fuera de rango
En la Lista de Variables Globales, se definen las variables a las que pueden acceder todas las POUs del proyecto.
Entrada
Salida
Copiar la DUT en el portapapeles y pegarla directamente en la DUTs del navegador para utilizarla en su programa.
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
Cuando la variable bStart pasa de FALSE a TRUE, se ejecuta la función.
VAR_EXTERNAL
g_dutPositioningInputs: FP_POS_UNIT_INPUT_DUT;
g_dutPositioningOutputs: FP_POS_UNIT_OUTPUT_DUT;
END_VAR
VAR_EXTERNAL CONSTANT
g_iPositioningUnitSlotNumber: INT:=1;
g_iPositioningUnitAxisNumber: INT:=1;
END_VAR
VAR
bAxisReady: BOOL:=FALSE;
bStartPositioning: BOOL:=FALSE;
iTableNumber: INT:=1;
@'': @'';
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_VARIN,,g_dutPositioningInputs.b00_ReadyPositioning,21,1,23,3,);
B(B_VARIN,,g_dutPositioningInputs.b04_ToolOperation,21,2,23,4,);
B(B_F,@AND-3!,,28,1,33,5,,?D?D?D?C);
B(B_VARIN,,g_dutPositioningInputs.b60_ErrorAxis1,21,3,23,5,);
B(B_F,NOT!,,23,2,28,4,,?D?C);
B(B_F,NOT!,,23,3,28,5,,?D?C);
B(B_COIL,,bAxisReady,43,1,45,3,);
L(23,2,28,2);
L(33,2,43,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_CONTACT,,bStartPositioning,5,1,7,3,R);
B(B_F,FP_POS_UNIT_SET_TABLE!,,25,0,38,6,,?DEN?Ds1_Slot?Ds2_Axis?Ds3_Table?AENO);
B(B_VARIN,,g_iPositioningUnitSlotNumber,23,2,25,4,);
B(B_VARIN,,g_iPositioningUnitAxisNumber,23,3,25,5,);
B(B_VARIN,,iTableNumber,23,4,25,6,);
L(1,2,5,2);
L(7,2,25,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_VARIN,,bStartPositioning,21,1,23,3,);
B(B_VARIN,,bAxisReady,21,2,23,4,);
B(B_F,@AND-3!,,28,1,33,5,,?D?D?D?C);
B(B_VARIN,,g_dutPositioningInputs.b18_BusyAxis1,21,3,23,5,);
B(B_F,NOT!,,23,3,28,5,,?D?C);
B(B_COIL,,g_dutPositioningOutputs.b10_PositioningStartAxis1,43,1,45,3,);
B(B_F,DF!,,23,0,28,3,,?Di?Co);
L(23,3,28,3);
L(33,2,43,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If (g_dutPositioningInputs.b00_ReadyPositioning AND NOT g_dutPositioningInputs.b04_ToolOperation
AND NOT g_dutPositioningInputs.b60_ErrorAxis1) then
bAxisReady:=TRUE;
End_if;
If (bStart) then
FP_POS_UNIT_SET_TABLE(s1_Slot := g_iPositioningUnitSlotNumber,
s2_Axis := g_iPositioningUnitAxisNumber,
s3_Table := iTableNumber);
End_if;
If DF((bStart) AND bAxisReady Then AND NOT g_dutPositioningInputs.b18_BusyAxis1) then
g_dutPositioningOutputs.b10_PositioningStartAxis1:=TRUE;
End_if;