FP_ETHERNETIP_GET_STATE_TABLE_RUN_IDLE

Vérifier l’état de la communication cyclique avec le bit RUN/IDLE

Cette instruction FP vérifie l’état de la communication cyclique en lisant le bit RUN/IDLE de chaque nœud enregistré dans la table des numéros de nœuds et sauvegarde les valeurs dans la variable de sortie du DUT FP_ETHERNETIP_STATE_TABLE_DUT.

Paramètres

Sortie

d_dutStateTable (FP_ETHERNETIP_STATE_TABLE_DUT)

Destination vers laquelle les données lues sont écrites.

Remarques

Bit correspondant au numéro de nœud du FP7 dont la connexion est enregistrée. Lorsque les deux conditions suivantes sont remplies, le bit devient TRUE, dans les autres conditions, il devient FALSE.

  • Communication avec nœud de destination (FP7) fonctionnant normalement.

  • Communication avec tous les nœuds sauf FP7 fonctionnant normalement lorsque le nœud de destination (FP7) est en Mode RUN.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si la zone lue est en dehors de l’intervalle autorisé.

  • Si l’instruction est exécutée dans un programme d’interruption.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si la zone lue est en dehors de l’intervalle autorisé.

  • Si l’instruction est exécutée dans un programme d’interruption.

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
		bEnable: BOOL:=FALSE;
		dutNodes_RunIdleNodeTable: FP_ETHERNETIP_STATE_TABLE_DUT;
	END_VAR

Corps du POU

La fonction est exécutée lorsque la variable bEnable 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 := 4 ;
        NETWORK_BODY
B(B_VAROUT,,dutNodes_RunIdleNodeTable,30,2,32,4,);
B(B_CONTACT,,bEnable,4,1,6,3,);
B(B_F,FP_ETHERNETIP_GET_STATE_TABLE_RUN_IDLE!,,8,0,30,4,,?DEN?AENO?Cd_dutStateTable);
L(1,2,4,2);
L(6,2,8,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

IF (bEnable) then
    FP_ETHERNETIP_GET_STATE_TABLE_RUN_IDLE(d_dutStateTable => dutNodes_RunIdleNodeTable);
END_IF;

Modifié le : 2024-06-19Commentaires sur cette pageAssistance téléphonique