FP_POS_UNIT_GET_STATUS

Obtener el estado del eje de la unidad de posicionamiento

Esta instrucción FP lee los datos de estado de la unidad de posicionamiento en el slot especificado por s1_Slot y del eje especificado por s2_Axis si el trigger EN es TRUE. El resultado se almacena en d1_Status.

Parámetros

Entrada

s1_Slot (WORD, INT, UINT)

Número de slot

s2_Axis (WORD, INT, UINT)

Número de eje

Valores: 1–4, 8 (eje virtual)

Salida

d1_Status (WORD, INT, UINT)

Información de estado

Observaciones

Tipos de información de estado de los ejes

Bit

Información de estado

TRUE

0

Funcionamiento de la herramienta

durante el funcionamiento de la herramienta de cualquier eje configurado con Configurator PM

1

Error

si se ha producido un error en el eje especificado

2

Advertencia

si se ha emitido una advertencia para el eje especificado

3

Ocupado

si el eje especificado está en funcionamiento

4

Operación finalizada

si la operación se ha completado en el eje especificado

5

Vuelta al origen finalizado

si se ha completado la vuelta al origen en el eje especificado

Banderas de error

sys_bIsOperationErrorHold (pasa a TRUE y permanece TRUE)
  • 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

sys_bIsOperationErrorNonHold (pasa a TRUE para un ciclo de scan)
  • 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

Ejemplo

Cabecera de la POU

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.

	VAR
		bStart: BOOL:=FALSE;
		iSlotNumberPositioningUnit: INT:=0;
			(*slot unit where the positioning unit is assigned 1- 64*)
		iPositioningUnit_Axis: INT:=0;
			(*Axis of the positioning unit to obtain status for (1-4: axis; 8: virtual axis)*)
		dutPositioningUnitAxisStatus: BOOL16_OVERLAPPING_DUT;
			(*Status of the positioning unit axis:
b0: Tool operation
b1: Error annunciation
b2: warning annunciation
b3: busy
b4: operation done
b5: home return done*)
	END_VAR

Cuerpo de la POU

Cuando la variable bStart se encuentra a TRUE, se ejecuta la función.

Cuerpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_F,FP_POS_UNIT_GET_STATUS!,,17,1,31,6,,?DEN?Ds1_Slot?Ds2_Axis?AENO?Cd1_Status);
B(B_VARIN,,iSlotNumberPositioningUnit,15,3,17,5,);
B(B_VARIN,,iPositioningUnit_Axis,15,4,17,6,);
B(B_VAROUT,,dutPositioningUnitAxisStatus.w0,31,3,33,5,);
B(B_CONTACT,,bStart,3,2,5,4,);
L(5,3,17,3);
L(1,3,3,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

IF bStart then
    FP_POS_UNIT_GET_STATUS(s1_Slot := iSlotNumberPositioningUnit,
                           s2_Axis := iPositioningUnit_Axis,
                           d1_Status => dutPositioningUnitAxisStatus.w0);
END_IF;

Modificado el: 2022-11-15Comentarios sobre esta páginaPanasonic hotline