Description fonctionnelle du bloc FB_CsvWrite
Type : |
Bloc fonction |
Disponible à partir de la version : |
V1.0.8.0 |
Hérite de : |
- |
Met en œuvre : |
- |
Le bloc fonction FB_CsvWrite permet d'écrire des valeurs dans un fichier CSV stocké dans le système de fichiers du contrôleur ou dans la mémoire étendue (une carte SD, par exemple). Il peut également être utilisé pour créer un fichier. Pour obtenir des informations sur le système de fichiers, reportez-vous au chapitre Organisation de la mémoire Flash du guide de programmation de votre contrôleur.
Les données à écrire dans le fichier sont stockées dans la mémoire tampon fournie par l'application sous forme de variables STRING. Cette mémoire tampon doit être déclarée dans l'application en tant que ARRAY STRING à double entrée. L'entrée i_stTableWriteValues permet de fournir les dimensions du tableau et le pointeur correspondant au bloc fonction. Pour plus d'informations, reportez-vous à la structure ST_CsvTable.
Lors de l’exécution du bloc fonction, l’entrée i_stTableWriteValues.pbyTable est stockée en interne pour une utilisation ultérieure. Si une modification en ligne est détectée lors de l’exécution du bloc fonction (q_xBusy = TRUE), les variables utilisées en interne sont mises à jour avec la valeur actuelle de l’entrée.
NOTE : Ne réattribuez pas i_stTableWriteValues.pbyTable à une autre zone mémoire lors de l’exécution du bloc fonction.
Le tableau à double entrée est une structure de table composée de lignes et de colonnes, où chaque ligne représente un enregistrement. Le nombre de colonnes correspond au nombre maximal de valeurs possibles pour un enregistrement.
L'entrée i_stWriteParameter fournit le paramètre permettant de contrôler l'opération d'écriture. Le paramètre sDelimiter permet de définir le code de caractère du séparateur inséré entre les valeurs du fichier. Le paramètre etModeFileOpen permet d'indiquer si les données doivent être ajoutées dans un fichier existant ou dans un nouveau fichier à créer. Définissez la quantité de données à écrire à l'aide des paramètres uiNumOfRows et uiNumOfColumns.
Le code de caractère LF (0A hex) est inséré pour ajouter un saut de ligne entre deux enregistrements.
Entrée |
Type de données |
Description |
---|---|---|
i_xExecute |
BOOL |
Le bloc fonction ouvre ou crée le fichier CSV indiqué et y écrit le contenu spécifié sur un front montant de cette entrée. |
i_sFilePath |
STRING[255] |
Chemin d'accès au fichier CSV. Lorsque le nom de fichier est indiqué sans extension, le bloc fonction ajoute l'extension .csv. |
i_stWriteParameter |
ST_WriteParameter |
Indique le mode d'ouverture du fichier CSV et le contenu qui doit y être écrit. |
i_timTimeout |
TIME |
L'exécution du bloc fonction est annulée à l'issue de ce délai. Si la valeur est T#0s, la valeur par défaut T#2s est appliquée. |
i_stTableWriteValues |
ST_CsvTable |
Structure permettant de transmettre au bloc fonction la mémoire tampon fournie par l'application (reportez-vous à la structure ST_CsvTable). |
Sortie |
Type de données |
Description |
---|---|---|
q_xDone |
BOOL |
Si cette sortie est TRUE, l'exécution s'est effectuée correctement. |
q_xBusy |
BOOL |
Si cette sortie est TRUE, le bloc fonction est en cours d'exécution. |
q_xError |
BOOL |
Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. |
q_etResult |
ET_Result |
Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. q_xBusy = True, la valeur indique l'état. Si q_xDone ou q_xError = True, la valeur indique le résultat. |
q_sResultMsg |
STRING[80] |
Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. |
q_udiFileSize |
UDINT |
Fournit la taille du fichier traité récemment, en octets. |
Utilisation des variables de type POINTER TO … ou REFERENCE TO …
Le bloc fonction fournit des entrées et/ou des entrées/sorties de type POINTER TO… ou REFENCE TO…. En utilisant ce type de pointeur ou référence, le bloc fonction a accès à la zone de mémoire adressée. En cas de modification en ligne, les zones de mémoire peuvent être déplacées aux nouvelles adresses et par conséquent un pointeur ou une référence peut devenir non valide. Pour éviter les erreurs liées à des pointeurs non valides, les variables de type POINTER TO… ou REFERENCE TO… doivent être mises à jour régulièrement, au moins au début du cycle où elles sont utilisées.