AdrDT_Of_Offs32

Renvoyer l’adresse DT de l’entrée/sortie avec offset de 32 bits

A partir de la valeur d’entrée/sortie Offs, la fonction génère une adresse de 16 bits dans la zone DT en entrée/sortie AdrDT. Cette entrée doit être directement connectée à l’entrée ou la sortie de 32 bits d’une fonction de base. La valeur d’entrée/sortie Offs correspond à l’adresse offset dans la zone de données DT. Avec GetPointer32, 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

AdrDT (DINT)

Génère une adresse offset DT 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

Offs32 (WORD, INT, UINT)

Offset de 32 bit pour l’adresse DT0

Remarques

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

  • 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

Utilisation de la fonction utilisateur ReadFromIcCard dans un programme

Dans cet exemple, la fonction ReadFromIcCard, définie par l’utilisateur, utilise les fonctions AdrDT_Of_Offs32_O, AdrFL_Of_Offs_O, Is_AreaDT et Is_AreaFL en schémas à contacts (LD) et diagrammes de blocs fonctions (FBD).

Un type de données structurées est affecté dans le gestionnaire de DUT. Dans ce DUT, seules les variables non booléennes sont déclarées.

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 bStart passe de FALSE à TRUE. La fonction lit les valeurs sur la carte CI à partir de l’adresse diActualPosition 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émoires CI et à ce que les valeurs à partir de l’adresse diActualPosition 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,R);
B(B_F,ReadFromIcCard!,,18,1,27,8,,?DEN?DArea?DOffset?DSize?DPosition?AENO?C);
B(B_VARIN,,ActualPosition,16,6,18,8,);
B(B_VAROUT,,ActualPosition,27,3,29,5,);
B(B_VARIN,,Dut_NonBoolean,7,3,9,5,);
B(B_F,Size_Of_Var!,,9,5,16,7,,?D?C);
B(B_F,GetPointer!,,11,3,18,5,,?D?C);
B(B_VARIN,,2,16,4,18,6,);
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