Écrire une ligne dans un fichier d’une carte mémoire SD spécifié
Cette instruction FP écrit la chaîne de caractères spécifiée par s_In dans le fichier spécifié par d_FullFileName sur la carte mémoire SD.
Entrée
Chaîne de caractères
Nom du fichier
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.
Le drapeau "Accès mémoire SD terminé" (sys_blsSDMemoryAccessDone) est FALSE lorsque l’instruction est exécutée, et devient TRUE et reste TRUE lorsque l’instruction est terminée.
Si le fichier indiqué n’existe pas, un nouveau fichier est créé.
FALSE : lorsque l’instruction a été exécutée sans erreur.
TRUE : lorsqu’une erreur est apparue lors de l’exécution de l’instruction.
Utilisez sys_iSDMemoryAccessErrorCode pour vérifier le code d’erreur.
Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.
Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.
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*)
sStringWrite1: STRING[32]:='Test String1';
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.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_VARIN,,sStringWrite1,11,4,13,6,);
B(B_CONTACT,,bStart,2,1,4,3,R);
B(B_CONTACT,,sys_bIsSDMemoryAccessActive,10,1,12,3,N);
B(B_VARIN,,'\TestLine.csv',11,5,13,7,);
B(B_F,FP_SD_WRITE_LINE!,,13,2,23,7,,?DEN?Ds_In?Dd_FullFileName?AENO);
L(1,2,2,2);
L(4,2,10,2);
L(12,2,12,4);
L(12,4,13,4);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(bStart)AND not sys_bIsSDMemoryAccessActive then
FP_SD_WRITE_LINE(s_In := sStringWrite1,
d_FullFileName := '\TestLine.csv');
END_IF;
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.
VAR
i: INT:=0;
asDumpString: ARRAY [0..99] OF STRING[32]:=['1','2','3','4','5','6','7','8',89(''),'z','y','z'];
dutWriteInfo: FP_SD_WRITE_DUT(wFormat:=11,wMode:=1);
sDumpString: STRING[3500]:='';
(*100 * 32 character + separator*)
bDumpStringArrayToSDCard: BOOL:=FALSE;
bStoreStringToSDCardFile: BOOL:=FALSE;
END_VAR
if (bDumpStringArrayToSDCard AND not(bStoreStringToSDCardFile)) then
bDumpStringArrayToSDCard := FALSE;
(* Convert string array to single string *)
sDumpString := '';
for i := 0 to Elem_OfArray1D(asDumpString) -1 do
sDumpString := CONCAT(sDumpString, asDumpString[i], ','); (* delimiter , OR ; *)
end_for;
sDumpString := DELETE(IN := sDumpString, L := 1, P := LEN(sDumpString));
bStoreStringToSDCardFile := TRUE; (* Enable store to SD card *)
end_if;
if (bStoreStringToSDCardFile AND not(sys_bIsSDMemoryAccessActive)) then
FP_SD_WRITE_LINE(s_In := sDumpString, d_FullFileName := 'Test.csv');
bStoreStringToSDCardFile := FALSE;
end_if;