FP_POS_UNIT_GET_STATUS

Lire l’état des axes d’un module de positionnement

Cette instruction FP lit l’état du module de positionnement sur le connecteur désigné par s1_Slot et pour l’axe spécifié par s2_Axis lorsque le déclencheur EN est TRUE. Le résultat est sauvegardé dans d1_Status.

Paramètres

Entrée

s1_Slot (WORD, INT, UINT)

Numéro du connecteur

s2_Axis (WORD, INT, UINT)

Numéro d’axes

Valeurs : 1–4, 8 (axe virtuel)

Sortie

d1_Status (WORD, INT, UINT)

Informations sur l’état du module

Remarques

Types d’informations sur l’état du module

Bit

Informations sur l’état du module

TRUE

0

Fonctionnement test sur les axes

Pendant le fonctionnement test sur un axe configuré avec Configurator PM.

1

Erreur

Si une erreur est apparue sur un axe spécifié.

2

Avertissement

Si un avertissement est apparu sur un axe spécifié.

3

Occupé

Si l’axe spécifié est en cours de fonctionnement.

4

Opération terminée

Si l’opération sur un axe spécifié est terminée.

5

Retour à l’origine terminé

Si le retour à l’origine sur un axe spécifié est terminé.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.

  • Si le numéro de connecteur est en dehors de l’intervalle autorisé.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.

  • Si le numéro de connecteur est en dehors de l’intervalle autorisé.

Exemple

En-tête du POU

Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.

	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

Corps du POU

La fonction est exécutée lorsque la variable bStart est définie sur TRUE.

Corps en 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

Corps en ST

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

Modifié le : 2022-07-06Feedback on this pagePanasonic hotline