DataFileCopy : Commandes de copie de fichier

Description du bloc fonction

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 :

olire les données d'un fichier formaté ;

ocopier les données de la mémoire-tampon dans un fichier formaté. Pour plus d'informations, reportez-vous à la section Flash Memory Organization.

Représentation graphique

G-SE-0017243.2.jpg

 

 

Représentation en langage IL et ST

Pour voir la représentation générale en langage IL ou ST, consultez le chapitre Représentation des fonctions et blocs fonction.

Description des variables d'E/S

Le tableau suivant décrit les variables d'entrée :

Entrée

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 du fichier sans extension (l'extension .DTA est automatiquement ajoutée). N'utilisez que les caractères alphanumériques (a à z, A à Z et 0 à 9).

xRead

BOOL

TRUE : copier les données du fichier identifié par sFileName dans la mémoire interne du contrôleur.

FALSE : copier les données de la mémoire interne du contrôleur dans 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 ayant le même type de mémoire peut lire le contenu du 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 65 534 octets.

Seules les adresses de variables conformes à la norme CEI 61131-3 (variables, tableaux, structures) sont autorisées. Par exemple :

Variable : int;

uiSize := SIZEOF (Variable); 

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 :

Variable : int;

dwAdd := ADR (Variable); 

Warning_Color.gifAVERTISSEMENT

FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT

Vérifiez que la taille de la mémoire et le type du fichier sont corrects avant de copier le fichier dans la mémoire.

Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.

Le tableau suivant décrit les variables de sortie :

Sortie

Type

Commentaire

xDone

BOOL

TRUE = indique que l'action a abouti.

xBusy

BOOL

TRUE = indique que le bloc fonction s'exécute.

xError

BOOL

TRUE = indique qu'une erreur est détectée et que le bloc fonction a annulé l'action.

eError

DataFileCopyError

Indique le type de l'erreur détectée lors de la copie du fichier de données.

NOTE : Si vous écrivez dans une variable mémoire au sein de la zone d'écriture du fichier, une erreur de CRC est détectée.

Exemple

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=> );