Adr_Of_VarOffs

Renvoie l’adresse d’entrée ou de sortie avec offset

Cette fonction renvoie l’adresse d’une variable avec offset à l’entrée ou la sortie d’une fonction de base.

Paramètres

Entrée

Adr (ANY)

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

Renvoie l’adresse offset de 16 bits de la variable d’entrée/de sortie

Offs (INT)

Variable d’entrée/de sortie pour laquelle l’adresse offset de 16 bits est nécessaire

Sortie

Var (ANY_IN_UNITS_OF_WORDS)

Variable de sortie pour laquelle l’adresse finale de 16 bits est nécessaire.

Remarques

  • L’adresse de 16 bits, augmentée de la valeur indiquée en entrée/sortie Offs, est renvoyée en entrée/sortie Adr à partir de la variable d’entrée/sortie Var. L’entrée ou sortie "Adr" doit être directement connectée à l’entrée ou la sortie de 16 bits d’une fonction de base. Cette fonction peut être utilisée uniquement avec les données utiles d’une chaîne de caractères, c.-à-d. avec les caractères sans en-tête.

  • 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

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_EXTERNAL
		ReceiveBuffer: ARRAY [0..15] OF WORD:=[16(0)];
	END_VAR
	VAR 
		Receive: BOOL:=FALSE;
		ReceiveString: STRING[30]:='';
	END_VAR
	VAR CONSTANT 
		StringTotLenPos: INT:=0;
		StringActLenPos: INT:=1;
		StringHeaderSize: INT:=2;
	END_VAR
	VAR 
		@'': @'';
	END_VAR

Corps en LD

Lorsque Receive est activé et le caractère de fin de réception reçu, c.-à-d. lorsque R9038 est activé, les caractères dans le tampon ReceiveBuffer, reçus via l’interface série sont copiés vers la zone des données utiles de la chaîne de caractères ReceiveString. Le nombre de caractères reçus est sauvegardé dans ReceiveBuffer[0], suivi par les caractères reçus. ReceiveBuffer peut alors être directement copié dans cette zone de la chaîne de caractères à partir de cette position (voir le type de données STRING). La position du tampon ReceiveBuffer doit être affectée dans la liste des variables globales en fonction des paramètres des registres système 417 et 418 (pour de plus amples informations, consulter Paramétrage du tampon de réception pour l’unité centrale).

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 10 ;
        NETWORK_BODY
B(B_COIL,,sys_bIsComPort1ReceptionDone,7,1,9,3,);
B(B_CONTACT,,Receive,16,1,18,3,);
B(B_F,F10_BKMV!,Instance,20,0,28,5,,?DEN?Ds1_Start?Ds2_End?AENO?Cd_Start);
B(B_VARIN,,ReceiveBuffer[0],18,2,20,4,);
B(B_VARIN,,ReceiveBuffer[15],18,3,20,5,);
B(B_F,Adr_Of_VarOffs_I!,Instance,20,6,29,10,,?D@'Var'?DOffs?CAdr);
B(B_VARIN,,StringActLenPos,18,8,20,10,);
B(B_VAROUT,,ReceiveString,29,7,31,9,);
L(1,2,7,2);
L(9,2,16,2);
L(18,2,20,2);
L(28,3,28,6);
L(20,6,28,6);
L(20,6,20,8);
L(1,0,1,10);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

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