Gestion des fichiers de journalisation des données
Un bloc fonction (LogRecord) est fourni pour écrire des entrées de chaîne de texte dans le fichier de journalisation des données. Ce bloc fonction stocke la chaîne d'entrée dans une mémoire tampon interne. Lorsque celle-ci atteint 80 % de sa capacité, les chaînes sont envoyées vers le fichier réel sur le contrôleur. En utilisant le bloc fonction Dump, vous pouvez forcer ce mécanisme.
Lorsque l'alimentation est coupée, vous risquez de perdre les données conservées dans la mémoire tampon interne ou de rallonger la durée du cycle avant vidage.
AVIS |
PERTE DE DONNÉES |
oNe coupez pas l'alimentation du contrôleur tant que les informations de la mémoire tampon interne n'ont pas été déplacées vers le système de fichiers réel. oSi les données enregistrées sont importantes pour l'application, configurez la taille de la mémoire tampon interne sur 1. |
Le non-respect de ces instructions peut provoquer des dommages matériels. |
Ajout d’un enregistrement avec le bloc fonction LogRecord
Ce bloc fonction permet de journaliser une chaîne UNICODE dans un journal spécifique :
Paramètres d'entrée
Paramètre |
Type |
Commentaire |
---|---|---|
xExecute |
BOOL |
La fonction est exécutée sur le front montant de cette entrée. REMARQUE : lorsque l'entrée xExecute est définie sur TRUE lors du premier cycle de tâche en mode RUN après un redémarrage à froid ou à chaud, le front montant n'est pas détecté. |
wsRecord |
WSTRING |
Cette chaîne de texte UNICODE définie par l'utilisateur est écrite dans le fichier de journalisation des données. NOTE : Le type WSTRING est disponible dans la bibliothèque Standard64.lib, insérée automatiquement lorsque le gestionnaire des journaux de données est ajouté à l'application. |
Paramètres de sortie
Paramètre |
Type |
Commentaire |
---|---|---|
xDone |
BOOL |
Cette sortie est définie sur TRUE lorsque l'enregistrement est sauvegardé dans la mémoire tampon interne sans messages d'erreur. |
xBusy |
BOOL |
Cette sortie reste sur TRUE tant que LogRecord est en cours d'exécution (jusqu'à la fin du transfert vers la mémoire tampon). |
xError |
BOOL |
Cette sortie est définie sur TRUE lorsque qu'une erreur survient (lorsque la mémoire tampon interne est pleine, par exemple). |
eError |
Cette sortie contient le code d'erreur lorsque la valeur de xError est TRUE : oNO_ERROR oINIT_ERROR oDUMP_ERROR oBUFFER_FULL_ERROR oFILE_FULL_ERROR oDUMP_INCOMPLETED oINPUT_ERROR oFILE_OPEN_ERROR oFILE_SETPOINTER_ERROR oFILE_WRITE_ERROR oFILE_CLOSE_ERROR |
NOTE : Si la chaîne dépasse la longueur définie, elle est tronquée.
Les sorties xDone et xError restent sur TRUE tant que xExecute prend la valeur TRUE. Si xExecute est défini sur FALSE avant que xDone ou xError soit défini sur TRUE (xBusy prend toujours la valeur TRUE), l'un de ces paramètres passe à la valeur TRUE lorsque le bloc fonction est exécuté sur un seul cycle de contrôleur pour que l'application détecte cet achèvement :
1 Un cycle en tant que Ex prend la valeur FALSE.
Le bloc fonction LogRecord inclut une instance correspondant à chaque fichier de journalisation des données configuré.
NOTE : La déclaration d'instance du bloc fonction étant automatique, il est inutile de déclarer explicitement une instance de bloc fonction. Si vous déclarez explicitement une instance du bloc fonction, un message s’affiche indiquant que la déclaration a été effectuée 2 fois (2 time variable declaration) et le bloc fonction devient inopérant.
Ajoutez le bloc fonction à votre unité organisationnelle de programme (POU) et définissez l'instance du fichier de journalisation appropriée avec la fonction d'aide à la saisie (voir Ajout de LogRecord).
Forçage d’un enregistrement avec la méthode Dump
Vous pouvez utiliser la méthode Dump (une méthode peut être considérée comme une sous-fonction d'un bloc fonction, en l'occurrence LogRecord) pour forcer les données d'application à déplacer les enregistrements sauvegardés dans la mémoire tampon interne vers le fichier réel qui se trouve dans le système de fichiers du contrôleur :
Paramètres
Entrée |
Type |
Commentaire |
---|---|---|
xExecute |
BOOL |
La fonction d'enregistrement est exécutée sur le front montant de cette entrée. NOTE : Si xExecute est défini sur 1 lors du premier cycle de tâche du contrôleur, le front montant n'est pas détecté. |
Sortie |
Type |
Commentaire |
---|---|---|
xDone |
BOOL |
Cette sortie est définie sur TRUE lorsque les enregistrements sont sauvegardés sans messages d'erreur. |
xBusy |
BOOL |
Cette sortie reste sur TRUE tant que Dump est en cours d'exécution (jusqu'à la fin de l'écriture du fichier). |
xError |
BOOL |
Cette sortie est définie sur TRUE lorsque qu'une erreur est détectée (lorsque le fichier de journalisation des données est plein, par exemple). |
eError |
Cette sortie contient le code d'erreur lorsque la valeur de xError est TRUE : oNO_ERROR oINIT_ERROR oDUMP_ERROR oBUFFER_FULL_ERROR oFILE_FULL_ERROR oDUMP_INCOMPLETED oINPUT_ERROR oFILE_OPEN_ERROR oFILE_SETPOINTER_ERROR oFILE_WRITE_ERROR oFILE_CLOSE_ERROR |
Reportez-vous à la section Ajout d'une méthode pour plus d'informations sur la mise en œuvre de la méthode DumpDump.
Enregistrement automatique dans le fichier de journalisation des données
Lorsque le bloc fonction LogRecord est utilisé et que la mémoire tampon interne est pleine à 80 %, le système déplace automatiquement les données contenues dans le tampon interne vers le fichier de journalisation des données. Le bloc fonction Dump permet de forcer ce déplacement sans attendre la limite de 80 %. Cette limite de 80 % permet de lancer le processus d'écriture avant que la mémoire tampon soit pleine et lors de l'ajout d'une nouvelle chaîne.
Le tableau ci-après indique à quel stade s'effectue l'enregistrement dans le fichier pour une taille de tampon configurée donnée (80 % de la taille de la mémoire tampon arrondie à l'entier inférieur le plus proche) :
Taille du tampon |
Limite de 80 % |
Commentaire |
---|---|---|
1 |
1 |
La sauvegarde dans le fichier de journalisation des données est activée dès qu'un enregistrement est ajouté avec un emplacement supplémentaire disponible pour un nouvel enregistrement lors de la sauvegarde. |
2 |
1 |
La sauvegarde dans le fichier de journalisation des données est activée lorsque la mémoire tampon est pleine à 80 % avec un emplacement supplémentaire disponible pour un nouvel enregistrement arrivant au cours de la sauvegarde. |
3 |
2 |
|
4 |
3 |
|
5 |
4 |
La sauvegarde dans le fichier de journalisation des données est activée lorsque la mémoire tampon est pleine à 80 % avec des emplacements supplémentaires disponibles pour de nouveaux enregistrements arrivant au cours de la sauvegarde. |
6 |
4 |
|
7 |
5 |
|
8 |
6 |
|
... |
|
Lors d'un enregistrement explicité (Dump) ou automatique (80 %), le fichier de journalisation des données est fermé après la sauvegarde de chaque enregistrement (ou groupe d'enregistrements) pour parer à une éventuelle coupure de courant externe.