AdrFL_Of_Offs

Renvoyer l’adresse FL de l’entrée/sortie avec offset

A partir de la valeur d’entrée/sortie Offs, la fonction génère une adresse de 16 bits dans la zone FL en entrée/sortie AdrFL. Cette entrée/sortie doit être directement connectée à l’entrée ou la sortie de 16 bits d’une fonction de base. La valeur d’entrée/sortie Offs correspond à l’adresse offset dans la zone de données FL. Avec GetPointer, elle peut être transférée avec une valeur pour la zone mémoire vers une fonction ou un bloc fonction utilisateur.

Paramètres

Entrée

AdrFL (INT)

Génère une adresse offset FL de 16 bits

Cette broche doit être connectée à l’entrée/la sortie d’une fonction de base pour laquelle le type de données INT, WORD est autorisé.

Sortie

Offs (WORD, INT, UINT)

Offset pour l’adresse FL0

Remarques

  • Notez que l’exécution de la fonction de base qui utilise l’adresse créée dans la zone FL est contrôlée en affectant la valeur pour la zone mémoire de la variable d’entrée EN à la fonction Is_AreaFL.

  • Cette fonction accède, en interne, à l’un des registres d’index également utilisé pour le calcul des tableaux Arrays. Si la zone FL n’est pas disponible pour un automate donné, l’adresse DT0 est générée automatiquement au lieu de l’adresse FL.

  • La fonction Is_AreaFL renvoie toujours FALSE et empêche ainsi l’exécution d’une commande avec une adresse inconnue. Les fonctions et blocs fonctions utilisateur écrits avec cette fonction peuvent être exécutés sur des automates sur lesquels la zone FL n’est pas disponible.

  • Pour les éditeurs LD et FBD uniquement : Utilisez Instruction d’entrée ou Instruction de sortie à partir du volet Instructions pour insérer l’instruction requise dans la fenêtre de programmation.

Exemple

DUT

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
		start: BOOL:=FALSE;
			(*activation of the function*)
		DutNonBoolean: @'Dut_NonBoolean';
			(*structured data type*)
		ActualPosition: DINT:=0;
			(*beginning position from which the data should be read to the IC card*)
	END_VAR

La variable DutNonBoolean du type de données affecté dans le DUT ci-dessus est déclarée. Les valeurs n’ont pas été affectées aux éléments de la variable DutNonBoolean dans l’en-tête ou le corps du POU car les valeurs de la variable DutNonBoolean sont surécrites après exécution de la fonction ReadFromIcCard.

Corps du POU

La fonction ReadFromIcCard est exécutée lorsque la variable start passe de FALSE à TRUE. La fonction lit les valeurs sur la carte CI à partir de l’adresse ActualPosition et écrit les informations dans la variable DutNonBoolean. Veillez à ce que la carte CI soit formatée correctement via le menu En ligne > Gestionnaire de cartes mémoire CI... et à ce que les valeurs à partir de l’adresse ActualPosition soient disponibles sur la carte CI.

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 := 8 ;
        NETWORK_BODY
B(B_CONTACT,,start,6,1,8,3,);
B(B_F,ReadFromIcCard!,Instance,18,1,27,8,,?DEN?DArea?DOffset?DSize?DPosition?AENO?C);
B(B_VARIN,,2,16,4,18,6,);
B(B_VARIN,,ActualPosition,16,6,18,8,);
B(B_VAROUT,,ActualPosition,27,3,29,5,);
B(B_F,GetPointer!,Instance,11,3,18,5,,?D?C);
B(B_VARIN,,Dut_NonBoolean,7,3,9,5,);
B(B_F,Size_Of_Var!,Instance,9,5,16,7,,?D?C);
L(18,2,18,3);
L(8,2,18,2);
L(1,2,6,2);
L(9,4,11,4);
L(9,4,9,6);
L(16,6,18,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Modifié le : 2021-11-09Commentaires sur cette pageAssistance téléphonique