Enregistrement des sources de journalisation
Activation du journaliseur d'application
Pour pouvoir être utilisé, le journaliseur d'application doit être activé dans le projet. Pour ce faire, la méthode RegisterCommunicationService de l'interface globale GVL.G_ifApplicationlogger doit être appelée une fois au début du programme.
Les messages de journaliseur peuvent être lus via EcoStruxure Machine Expert en ajoutant l'objet Journaliseur d'application dans l'arborescence Équipements (vue Navigateurs classiques) ou Applications (vue Navigateurs).
Enregistrement des sources de journalisation
Le journaliseur d'application fonctionne de manière légèrement différente par rapport aux autres journaliseurs. En effet, il est impossible de lui envoyer directement des messages.
Le journaliseur d'application recueille les messages transmis aux sources de journalisation réparties dans tout le projet. Comme les messages sont envoyés dans un contexte clairement défini, ils peuvent être simplifiés.
Supposons que votre projet contienne deux POU identiques. Vous devez indiquer explicitement quelle instance du module a envoyé le message de journaliseur. Le journaliseur d'application permet d'affecter une source de journalisation à chaque POU. Ainsi, si vous envoyez un message du type « Produit indisponible », par exemple, la partie programme concernée sera clairement identifiée.
Une source de journalisation représente une instance du bloc fonction FB_LoggerPoint. Pour envoyer un message de journaliseur via une source de journalisation, vous devez d'abord enregistrer cette source dans le journaliseur d'application en appelant une fois la méthode RegisterLoggerPoint du bloc fonction FB_LoggerPoint. Voici les informations à fournir en entrée pour cette méthode :
1. i_ifParent : cette entrée indique l'objet de journaliseur sous lequel enregistrer la source de journalisation.
La première source doit être enregistrée sous le journaliseur d'application, représenté par l'interface globale GVL.G_ifApplicationLogger. Les autres sources peuvent être enregistrées sous le journaliseur d'application ou une autre source afin de créer une arborescence de sources de journalisation.
Reportez-vous à la section « Création d'une arborescence de sources de journalisation ».
2. i_sName : cette entrée indique le nom de la source de journalisation.
Chaque message de journaliseur envoyé via cette source y est connecté. La source de journalisation doit représenter une partie de la machine ou du projet, ou une fonctionnalité particulière. Pour éviter toute confusion, chaque source doit porter un nom unique dans le projet.
3. i_sType : cette entrée indique le type de la partie machine représentée par la source de journalisation (AxisModule, FillingModule, etc.). Comme le type n'est pas systématiquement précisé dans le nom de la source, il doit être défini au niveau de cette entrée.
Les sources de journalisation issues des bibliothèques Schneider Electric définissent le nom du type de bloc fonction qu'elles représentent.
4. i_sSource: : cette entrée indique la source de la partie programme, par exemple le nom de la bibliothèque contenant le bloc fonction qui fournit les messages de journaliseur. Cette source peut servir à identifier des informations non spécifiques, comme l'énumération ET_DiagExt d'une bibliothèque.
Les sources de journalisation issues des bibliothèques Schneider Electric définissent l'espace de noms de la bibliothèque à laquelle elles appartiennent.
L'exemple suivant montre comment enregistrer une source de journalisation pour la source MainMachine du projet de démonstration :
fbLoggerPointMainMachine.RegisterLoggerPoint( i_ifParent := APL.G_ifApplicationLogger,
i_sName := 'Machine name',
i_sType := 'MainMachine',
i_sSource := 'Project',
q_etDiag => ,
q_etDiagExt => );
Création d'une arborescence de sources de journalisation
Plus un projet prend de l'ampleur, plus sa structure interne se complexifie. Pour refléter cette structure au niveau de la journalisation, le journaliseur d'application offre la possibilité d'enregistrer une ou plusieurs sources de journalisation sous une source existante. Cela permet de créer une arborescence de sources de journalisation qui représente la structure du projet.
Une source de journalisation peut être enregistrée seulement sous une source qui l'est déjà. Pour cela, vous devez appeler la méthode RegisterLoggerPoint. La source de journalisation déjà enregistrée doit être fournie lors de l'appel de la méthode au niveau de l'entrée i_ifParent.
L'exemple suivant montre comment enregistrer une source de journalisation pour le module Alpha du projet de démonstration, sous la source MainMachine déjà enregistrée.
fbLoggerPointAlpha.RegisterLoggerPoint( i_ifParent := fbLoggerPointMainMachine,
i_sName := 'Machine name',
i_sType := 'MainMachine',
i_sSource := 'Project',
q_etDiag => ,
q_etDiagExt => );
Les sources de journalisation enregistrées doivent représenter la structure du projet.
Enregistrement de sources de journalisation figurant dans des blocs fonction de bibliothèques Schneider Electric
Lorsqu'un bloc fonction doit prendre en charge des messages de journaliseur, une instance du bloc fonction FB_LoggerPoint est créée afin d'envoyer ces messages. Le bloc fonction accepte la méthode RegisterLoggerPoint pour enregistrer l'instance de la source de journalisation. Cette méthode s'apparente à la méthode RegisterLoggerPoint du bloc fonction FB_LoggerPoint, mais ne prend pas en charge les entrées i_sType et i_sSource.
Avec un bloc fonction provenant d'une bibliothèque Schneider Electric, les entrées i_sType et i_sSource sont indisponibles et définies sur des valeurs fixes qui dépendent du type de bloc fonction.