FB_CsvWrite : remarques

Remarques

Les contraintes suivantes s'appliquent lors de l'écriture dans un fichier CSV :

oLes opérations sur les fichiers prennent du temps. Pour éviter de compromettre des fonctions de contrôle n'acceptant aucun retard, créez une tâche distincte d'une priorité inférieure pour ces processus. Pour plus d'informations sur la gestion des tâches, reportez-vous au chapitre Horloges de surveillance du système et des tâches du guide de programmation de votre contrôleur.

oLe paramètre de délai i_timTimeout permet de contrôler l'opération réalisée sur le fichier. Si le bloc fonction est toujours en cours d'exécution à l'issue de ce délai, l'opération d'écriture est annulée et le bloc renvoie une erreur. Pour savoir quelle valeur attribuer au paramètre de délai, gardez à l'esprit que l'opération sur le fichier s'étale sur plusieurs cycles de tâche. La valeur minimale sera donc égale au nombre de cycles de tâche requis, multiplié par l'intervalle entre les tâches.

oLe nombre de cycles dépend de la quantité de données à écrire et de la taille du bloc de traitement, qui peut être définie avec le paramètre Gc_uiCsvWriteProcessingBlockSize dans la liste GPL. Pour diminuer la charge par cycle de tâche, le processus d'écriture dans le fichier est scindé en plusieurs opérations d'écriture. Lors de chacune d'elles, un bloc de données est traité et écrit dans le fichier. Plus le bloc de traitement est grand, moins vous avez besoin de cycles pour créer le fichier et y écrire du contenu. Par contre, le temps d'exécution de chaque opération d'écriture est plus long.

oNe traitez pas les données du tampon fourni via i_stTableReadValues.pbyTable tant que la sortie q_xBusy du bloc fonction indique TRUE.

oN’accédez pas au même fichier avec différents blocs fonction en même temps. Utilisez la sortie q_xBusy pour verrouiller l’exécution de différents blocs fonction.