Ce bloc fonction copie les données en mémoire dans un fichier, et inversement. Le fichier réside dans le système de fichiers interne ou dans un système de fichiers externe (carte SD).
Le bloc fonction DataFileCopy peut :
lire les données d'un fichier formaté ou
copier des données en mémoire vers un fichier formaté. Pour plus d'informations, consultez Organisation de la mémoire non volatile.
Pour voir la représentation générale en langage IL ou ST, consultez le chapitre Représentation des fonctions et blocs fonction.
Le tableau suivant décrit les variables d'entrée :
Entrées |
Type |
Commentaire |
---|---|---|
xExecute |
BOOL |
Sur le front montant, lance l'exécution du bloc fonction. Sur le front descendant, réinitialise les sorties du bloc fonction lorsque toute exécution en cours prend fin.
NOTE : Sur front descendant, la fonction continue de s'exécuter jusqu'au bout et elle met à jour ses sorties en conséquence. Les sorties sont conservées pendant un cycle avant d'être réinitialisées.
|
sFileName |
STRING |
Nom de fichier sans extension (l'extension .DTA est automatiquement ajoutée). N'utilisez que les caractères alphanumériques a...z, A...Z, 0...9. |
xRead |
BOOL |
TRUE : copier les données du fichier identifié par sFileName vers la mémoire interne du contrôleur. FALSE : copier les données de la mémoire interne du contrôleur vers le fichier identifié par sFileName. |
xSecure |
BOOL |
TRUE : L 'adresse MAC est toujours stockée dans le fichier. Seul un contrôleur ayant la même adresse MAC peut lire le contenu du fichier. FALSE : Un autre contrôleur disposant du même type de mémoire peut lire le fichier. |
iLocation |
INT |
0 : le fichier réside dans le répertoire /usr/DTA du système de fichiers interne. 1 : le fichier réside dans le répertoire /usr/DTA du système de fichiers externe (carte SD).
NOTE : Si le fichier n'existe pas déjà dans le répertoire, il est créé.
|
uiSize |
UINT |
Indique la taille en octets. La taille maximale est 65534 octets. Seules les adresses de variables conformes à la norme CEI 61131-3 (variables, tableaux, structures) sont autorisées. Par exemple :
|
dwAdd |
DWORD |
Indique l'adresse en mémoire que la fonction valire ou écrire. Seules les adresses de variables conformes à la norme CEI 61131-3 (variables, tableaux, structures) sont autorisées. Par exemple :
|
AVERTISSEMENT | |
---|---|
Le tableau suivant décrit les variables de sortie :
Sortie |
Type |
Commentaire |
---|---|---|
xDone |
BOOL |
|
xBusy |
BOOL |
|
xError |
BOOL |
|
eError |
Indique le type de l'erreur détectée lors de la copie du fichier de données. |
L'exemple suivant montre comment utiliser les commandes de copie de fichier :
VAR
LocalArray : ARRAY [0..29] OF BYTE;
myFileName: STRING := 'exportfile';
EXEC_FLAG: BOOL;
DataFileCopy: DataFileCopy;
END_VAR
DataFileCopy(
xExecute:= EXEC_FLAG,
sFileName:= myFileName,
xRead:= FALSE,
xSecure:= FALSE,
iLocation:= DFCL_INTERNAL,
uiSize:= SIZEOF(LocalArray),
dwAdd:= ADR(LocalArray),
xDone=> ,
xBusy=> ,
xError=> ,
eError=> );