WriteDataToFileRegisterBank

Écrire des données vers la base de registre fichier 1 ou 2

Cette instruction lit le nombre de mots indiqué par DataNumberOfWords à partir de l’adresse de départ des données indiquée par DataStartAddress et l’écrit dans la base de registre fichier 1 ou 2, désignée par BankNumber à partir de l’offset de base spécifié par BankOffset.

Paramètres

Entrée

BankNumber (INT)

Indique le numéro de la base

BankOffset (INT)

Indique l’offset du numéro de base

DataStartAddress (WORD, INT, UINT)

Indique l’adresse de départ des données qui doivent être écrites dans la base de registre fichier

DataNumberOfWords (INT)

Indique le nombre de mots qui doit être écrit dans la base de registre fichier

Remarques

Cette fonction ne permet pas d’écrire des données vers la zone FL (base de registre fichier 0), c.à-d. la variable utilisée pour DataStartAddress ne doit pas être située dans la zone FL.

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
		awProcessDataToStore: ARRAY [0..10] OF INT:=[-111,111,222,333,444,555,666,777,888,999,1100];
		awProcessDataToGet: ARRAY [0..10] OF INT:=[11(0)];
		bStoreData: BOOL:=FALSE;
		bGetData: BOOL:=FALSE;
	END_VAR

Corps du POU

Si bStoreData passe de FALSE à TRUE l’ensemble de la variable du DUT awProcessDataToStore (un DUT contenant 11 éléments) est rempli des données de la base de registre fichier 2 BankOffset 1000.

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 := 9 ;
        NETWORK_BODY
B(B_F,WriteDataToFileRegisterBank!,Instance,22,1,36,7,,?DBankNumber?DBankOffset?DDataStartAddress?DDataNumberOfWords);
B(B_VARIN,,2,20,3,22,5,);
B(B_VARIN,,1000,20,4,22,6,);
B(B_VARIN,,awProcessDataToStore[0],10,5,12,7,);
B(B_CONTACT,,bStoreData,5,2,7,4,R);
B(B_F,Adr_Of_Var_I!,Instance,12,5,19,7,,?D?C);
B(B_F,Size_Of_Var!,Instance,12,7,19,9,,?D?C);
L(1,3,5,3);
L(7,3,22,3);
L(19,6,19,8);
L(12,6,12,8);
L(1,0,1,9);
L(19,6,22,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

if (DF(bStoreData)) then
    WriteDataToFileRegisterBank(BankNumber := 2, 
    BankOffset := 1000, 
    DataStartAddress := Adr_Of_Var(awProcessDataToStore), 
    DataNumberOfWords := Size_Of_Var(awProcessDataToStore));
end_if;

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