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.

Entrée
Indique le numéro de la base
Indique l’offset du numéro de base
Indique l’adresse de départ des données qui doivent être écrites dans la base de registre fichier
Indique le nombre de mots qui doit être écrit dans la base de registre fichier
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.

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


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
if (DF(bStoreData)) then
WriteDataToFileRegisterBank(BankNumber := 2,
BankOffset := 1000,
DataStartAddress := Adr_Of_Var(awProcessDataToStore),
DataNumberOfWords := Size_Of_Var(awProcessDataToStore));
end_if;