Copier un fichier ou un répertoire sur carte SD
Cette instruction FP copie le fichier sur la carte mémoire SD spécifiée par s1_FullFileNameSource vers le fichier spécifié par s2_FullFileNameDestination selon les paramètres indiqués par s3_Format.
Entrée
Fichier et répertoire source
Fichier et répertoire de destination
Format et traitement du fichier :
Bits 0 :
0 : Remplacer si le fichier existe
1 : Fin anormale si le fichier existe
Bits 1–15 : Réservée au système
Voir également Introduction aux instructions de carte mémoire SD.
Le drapeau "Accès mémoire SD actif" (sys_bIsSDMemoryAccessActive) devient TRUE lorsque le déclencheur EN de l’instruction de carte mémoire SD devient TRUE et reste TRUE jusqu’à ce que l’exécution de l’instruction soit terminée. Pendant ce temps, les autres instructions de carte mémoire SD ne peuvent pas être exécutées.
Si un répertoire est spécifié par s1_FullFileNameSource et si un fichier est spécifié par s2_FullFileNameDestination, l’erreur 3 "Erreur de nom de fichier/répertoire" apparaît.
Si un répertoire est indiqué par s1_FullFileNameSource, tous les fichiers de ce répertoire sont copiés dans le répertoire désigné par s2_FullFileNameDestination. Les sous-répertoires ne sont pas copiés.
Les fichiers protégés en écriture ne sont pas remplacés.
Si s1_FullFileNameSource et s2_FullFileNameDestination sont identiques, une erreur apparaît quelle que soit la valeur de s3_Format.
Si un fichier est spécifié par s1_FullFileNameSource et si un répertoire est désigné par s2_FullFileNameDestination, le fichier est copié dans le répertoire.
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
bStart: BOOL:=FALSE;
(*activates the instruction*)
END_VAR
Lorsque la variable bStart passe de FALSE à TRUE et lorsque la variable système sys_bIsSDMemoryAccessActive n’est pas TRUE, la fonction est exécutée. Elle copie le fichier 'TestString1.csv' du répertoire 'Test'' dans le fichier 'TestString2.csv' du même répertoire.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_VARIN,,0,21,4,23,6,);
B(B_CONTACT,,bStart,3,1,5,3,R);
B(B_VARIN,,'\Test\TestString1.csv',21,2,23,4,);
B(B_VARIN,,'\Test\TestString2.csv',21,3,23,5,);
B(B_CONTACT,,sys_bIsSDMemoryAccessActive,11,1,13,3,N);
B(B_F,FP_SD_COPY_FILE!,,23,0,37,6,,?DEN?Ds1_FullFileNameSource?Ds2_FullFileNameDestination?Ds3_Format?AENO);
L(1,2,3,2);
L(5,2,11,2);
L(13,2,23,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(bStart)AND not sys_bIsSDMemoryAccessActive then
FP_SD_COPY_FILE('\Test\TestString1.csv', '\Test\TestString2.csv');
END_IF;