FP_DIRECT_IN

Lire un drapeau d’entrée directement

Cette instruction lit la valeur d’un drapeau d’entrée (X) à l’aide d’une commande d’exécution directe. L’entrée Input_X sera lue de manière asynchrone pendant le cycle API en cours.

Entrée

Input_X FP0H, FP-XH : (BOOL) ; FP7 : (BOOL, WORD, DWORD)

Variable globale avec adresse FP ou adresse utilisateur explicite à lire directement.

FP0H, FP-XH uniquement : X0–X109F est la plage d’adresses FP valide auxquelles une broche d’entrée réelle est affectée. Sinon, une erreur d’opération apparaît sur l’automate.

Sortie

Value FP0H, FP-XH : (BOOL) ; FP7 : (BOOL, WORD, DWORD)

Valeur de Input_X lue directement

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.
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.

Exemple

GVL

Dans la liste des variables globales, vous définissez des variables qui sont accessibles par tous les POU dans le projet.

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
		bValue: BOOL:=FALSE;
	END_VAR
	VAR_EXTERNAL
		g_bDirectIn_X1: BOOL:=FALSE;
	END_VAR
	VAR
		bReadInput: BOOL:=FALSE;
	END_VAR

Corps en LD

La fonction est exécutée lorsque la variable bReadInput est sur TRUE.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bReadInput,4,1,6,3,);
B(B_F,E_FP_DIRECT_IN!,,15,0,23,4,,?DEN?DInput_X?AENO?CValue);
B(B_VARIN,,g_bDirectIn_X1,13,2,15,4,);
B(B_VAROUT,,bValue,23,2,25,4,);
L(1,0,1,5);
L(1,2,4,2);
L(6,2,15,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

if (bReadInput) then
    bValue:=FP_DIRECT_IN(g_bDirectIn_X1);
end_if;

Modifié le : 2023-03-10Commentaires sur cette pageAssistance téléphonique