Aller au contenu principal

Module de surveillance « diagnostics »

Description​

Le module de surveillance « diagnostics » a pour tâche de surveiller différents types de données d'entrée selon des critères définis, puis d'écrire les informations d'alarme qui en résultent dans la base de données d'alarmes smartCORE du gestionnaire d'alarmes.

Cette base de données peut être reliée à optiCloud, par exemple avec le plug-in opticloud, pour le traitement ultérieur des messages d'alarme.

Les types de données d'entrée surveillées comprennent notamment

  • Les valeurs booléennes, par exemple des indicateurs d'état ou des résultats de logique calculée
  • Les valeurs Double (virgule flottante), par exemple des valeurs mesurées ou des grandeurs calculées, comparées à un seuil fixe. Une hystérésis réglable est prévue pour supprimer le bruit. Pour suivre les valeurs extrêmes, des mises à jour du message peuvent être activées.
  • Les codes Integer, par exemple des codes d'état ou ENUM ou certains bits ou sections de bits ; des codes individuels ou des plages de codes peuvent alors être filtrés au moyen d'une liste blanche/noire et être associés respectivement à l'état HIGH ou LOW. Les codes non correspondants sont signalés par une alarme d'état d'erreur distincte jusqu'à l'arrivée d'un code valide. Pour suivre les changements d'état, des mises à jour du message peuvent être activées.
  • Les valeurs String (texte), par exemple des messages de journal d'un appareil ; des éléments de texte peuvent alors être extraits au moyen d'expressions régulières (PCRE), filtrés par liste blanche/noire et associés à l'état HIGH ou LOW. Les textes non correspondants sont signalés par une alarme d'état d'erreur distincte jusqu'à l'arrivée d'un code valide.
  • ErrorCode : une suite de codes d'erreur (<string>) associée soit à un canal de niveau, soit à un canal de transfert. Le module Diagnostics tient en interne une table de codes d'erreur et de l'instance de message correspondante. Les messages peuvent être affectés à des codes individuels ou, sous forme de modèle, à une plage de codes (wildcard) ou à tous les codes entrants.

En outre, lors de la composition des messages d'alarme, les valeurs actuelles de canaux smartCORE sont saisies (ce qu'on appelle des snapshots) et des métadonnées définies par l'utilisateur sont intégrées. Le schéma suivant donne un aperçu de la fonctionnalité implémentée de la logique d'alarme. Pour chaque entrée de message, les blocs à fond jaune clair sont disponibles :

Overview

Le traitement des données d'un canal surveillé s'effectue du point de vue du plug-in de diagnostic, c'est-à-dire qu'une conversion implicite vers le type de données attendu a lieu. Le type de données du canal n'a donc aucune importance pour l'évaluation, tant qu'il est convertible en conséquence.

Interfaces et protocoles utilisés​

  • Base de données d'alarmes smartCORE

Configuration JSON​

Les sections suivantes répertorient des exemples de configuration et abordent les paramètres de module concernés.

Exemple de configuration (surveillance de valeurs booléennes)​

Dans cet exemple, un canal est lu comme Boolean et surveillé pour la valeur true.

Pour la conversion du type de données, les règles suivantes s'appliquent :

  • <integer>, <unsigned integer> ou <double> est true si l'échantillon est ≠0\ne 0,
  • <string> est true si la chaîne n'est pas vide
{
"module": "diagnostics",
"factory": "diagnostics",
"config": {
"pollingIntervalMs": 1000,
"messages": [
{
"messageLevel": "WARNING",
"context": "Monitoring someBooleanChannel",
"channel": "someBooleanChannel",
"activation": "high"
}
]
}
}

Exemple de configuration (surveillance du dépassement d'une valeur numérique avec délais de stabilisation et hystérésis)​

Dans cet exemple, un canal est lu comme Double et surveillé pour le dépassement de la valeur 42.0.

Pour la conversion du type de données, les règles suivantes s'appliquent :

  • <bool> sont traduits en 0 et 1,
  • <string> fournit comme valeur la longueur de la chaîne

Dans l'exemple, pour le déclenchement, le dépassement doit durer au moins 5 secondes ; pour la désactivation, il doit être absent pendant au moins 10 secondes, la valeur du canal se situant pour cela en dessous du seuil moins son hystérésis.

Un message lié à l'événement est en outre généré ; il contient la valeur actuelle, l'extremum atteint jusqu'ici, c'est-à-dire dans ce cas le maximum, ainsi que le seuil.

Ce message est mis à jour aussi bien lors du dépassement initial que lors de la désactivation. Ce message est en outre mis à jour lorsque la valeur actuelle s'écarte du dernier extremum signalé de plus que l'hystérésis.

{
"module": "diagnostics",
"factory": "diagnostics",
"config": {
"pollingIntervalMs": 1000,
"messages": [
{
"messageLevel": "WARNING",
"context": "Monitoring measured someValueChannel",
"messageEvent": "Some WARNING occurred (current value ${value} > ${boundary}) (maximum value ${minmax} on ${minmaxDate} at ${minmaxTime})",
"channel": "someValueChannel",
"threshold": 42.0,
"hysteresis": 7.0,
"activation": "high",
"stabilizationSecondsRaise": 5,
"stabilizationSecondsRelease": 10
}
]
}
}

Exemple de configuration (surveillance de valeurs énumérées)​

Dans cet exemple, un canal est lu et surveillé comme valeur Integer.

Pour la conversion du type de données, les règles suivantes s'appliquent :

  • <bool> sont traduits en 0 et 1,
  • <float> ou <double> sont utilisés sans décimales,
  • <string> fournit comme valeur la longueur de la chaîne

Dans cet exemple, les plages de valeurs 17 et 77-99 sont interprétées comme condition de déclenchement (HIGH), les plages de valeurs 31-39, 66 et 69-71 comme condition de désactivation (LOW), et toutes les autres plages comme condition d'alarme non valide.

{
"module": "diagnostics",
"factory": "diagnostics",
"config": {
"pollingIntervalMs": 1000,
"messages": [
{
"messageLevel": "WARNING",
"context": "Monitoring someEnumeratedChannel",
"messageEvent": "Some WARNING occurred",
"messageFailure": "INVALID error occurred",
"channel": "someEnumeratedChannel",
"activation": "enum",
"valuesHigh": "17,77-99",
"valuesLow": "31-39,66,69-71"
}
]
}
}

Exemple de configuration (surveillance d'un Error Stream)​

Dans cet exemple, des codes d'erreur (ErrorCode) provenant d'un Error Stream sont surveillés. Celui-ci se compose des deux canaux sourceErrorCode et sourceErrorLevel, qui doivent être synchrones dans le temps. Le canal de code d'erreur est lu comme <string>, de sorte que presque n'importe quel canal peut être utilisé comme source. Le canal de niveau d'erreur doit fournir des valeurs entières <integer>. Les codes extraits de cet Error Stream sont mis à la disposition de tous les messages ErrorCode pour traitement, dans l'ordre de leur définition. Un code donné ne peut être pris en compte que dans un seul message ErrorCode.

Dans l'exemple, le code d'erreur spécifique à l'utilisateur « 47:11 », les codes d'erreur commençant par « ERR: » ainsi que tous les autres codes d'erreur inconnus sont surveillés. Si l'objet message doit être utilisé pour différents codes, il doit être marqué comme modèle.

{
"module": "diagnostics",
"factory": "diagnostics",
"config": {
"pollingIntervalMs": 1000,
"sourceErrorCode": "Some.Name.Space.ErrorCodeChannel",
"sourceErrorLevel": "Some.Name.Space.ErrorLevelChannel",
"messages": [
{
"errorCode": "47:11",
"messageLevel": "ALARM",
"context": "Monitoring Error-Stream for 47:11",
"messageEvent": "ALARM ${errorCode} occurred"
},
{
"isTemplate": true,
"errorCode": "ERR:*",
"messageLevel": "ERROR",
"context": "Monitoring for ERR-codes",
"messageEvent": "Error ${errorCode} occurred"
},
{
"isTemplate": true,
"messageLevel": "WARNING",
"context": "Collection unknown codes",
"messageEvent": "Unknown code ${errorCode} occurred"
}
]
}
}

Exemple de configuration (utilisation de métadonnées)​

Dans cet exemple, un canal est surveillé pour la valeur true comme dans l'exemple 1. L'objectif de cet exemple est d'illustrer l'enrichissement des messages d'alarme par des métadonnées spécifiques à l'utilisateur.

Pour cela, des métadonnées sous forme d'objet JSON sont ajoutées lors de la composition du message d'alarme, les métadonnées globales étant toujours complétées par les métadonnées spécifiées dans le cadre du message, ou remplacées au niveau supérieur de l'objet JSON.

{
"module": "diagnostics",
"factory": "diagnostics",
"config": {
"pollingIntervalMs": 1000,
"globalMetadata": {
"actionToBePerformed":"some generic action",
"consequences":[
"consequence1",
"consequence2"
]
},
"messages": [
{
"messageLevel": "WARNING",
"context": "Monitoring someBooleanChannel",
"channel": "someBooleanChannel",
"activation": "high",
"metadata": {
"actionToBePerformed":"some CRITICAL action",
"consequences":[
"some SEVERE consequence",
"consequence1",
"consequence2"
],
"additionalRemarks":[
"some REMARK"
]
}
}
]
}
}

Exemple de configuration (utilisation de canaux snapshot)​

Dans cet exemple, un canal est surveillé pour la valeur true comme dans l'exemple 1.

L'objectif de cet exemple est d'illustrer l'enrichissement des messages d'alarme par un snapshot de valeurs de canaux spécifique à l'utilisateur.

Pour cela, un instantané des canaux smartCORE listés est réalisé au moment de l'apparition initiale de la condition d'alarme ; il se compose de l'union de tous les canaux snapshot globaux et propres au message.

{
"module": "diagnostics",
"factory": "diagnostics",
"config": {
"pollingIntervalMs": 1000,
"globalSnapshot": [
"someGps.Location",
"someOutsideTemperature"
],
"messages": [
{
"messageLevel": "WARNING",
"context": "Monitoring someBooleanChannel",
"channel": "someBooleanChannel",
"activation": "high",
"snapshot": [
"somePressure",
"someTemperature",
"someQuantity",
]
}
]
}
}

Exemple de configuration (utilisation de groupes snapshot)​

Dans cet exemple, un canal est surveillé pour la valeur true comme dans l'exemple 1.

Cet exemple illustre en outre l'utilisation de ce qu'on appelle des groupes snapshot.

{
"module": "diagnostics",
"factory": "diagnostics",
"config": {
"pollingIntervalMs": 1000,
"snapshotGroups": [
{
"name": "gpsInfoChannels",
"channels": [
"GPS.Location",
"GPS.Altitude",
"GPS.SatCount"
]
},
{
"name": "EngineOilPTQChannels",
"channels": [
"Engine.Oil.Pressure",
"Engine.Oil.Temperature",
"Engine.Oil.Quantity"
]
}
],
"globalSnapshot": [
"gpsInfoChannels",
"someOutsideTemperature"
],
"messages": [
{
"messageLevel": "WARNING",
"context": "Monitoring someBooleanChannel",
"channel": "someBooleanChannel",
"activation": "high",
"snapshot": [
"Engine.Revs",
"EngineOilPTQChannels"
]
}
]
}
}

Paramètres globaux du module​

La section suivante aborde tous les paramètres du module.

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteValeur par défautDescription
pollingIntervalMsNonINT1 -1000 (1 s)Intervalle de traitement [ms]
globalMetadataNonJSON ObjectEMPTY JSON ObjectObjet JSON avec des métadonnées quelconques spécifiées par l'utilisateur
globalSnapshotNonJSON Array of STRINGEMPTY JSON ArrayTableau JSON contenant une liste globale de canaux dont les valeurs doivent être saisies ponctuellement au moment de l'alarme
snapshotGroupsNonJSON Array of JSON ObjectEMPTY JSON Arrayvoir ci-dessous
activationMode1(obsolète)Voir la description des messages
messagesOUIJSON Array of JSON ObjectAUCUNE valeur par défautvoir ci-dessous
pour Error-Stream ou Error-Table
sourceErrorCodeNon/Oui2 3STRINGAUCUNE valeur par défautCanal smartCORE, lu comme <string>, contenant un code d'erreur variable dans le temps
sourceErrorLevelNon/Oui2STRINGAUCUNE valeur par défautCanal smartCORE, lu comme <integer>, contenant un niveau d'erreur synchrone avec celui-ci
neutralErrorLevel
neutraErrorCode4
Non2
(obsolète)
INTEGER0Niveau d'erreur neutre pour lequel AUCUNE alarme n'est déclenchée
sourceBufferTransferNon/Oui3STRINGAUCUNE valeur par défautCanal smartCORE, lu comme <bool>, qui pilote le framing pour la transmission de la table d'erreurs
timeoutBufferTransferNon/Oui3DOUBLE0Pause minimale entre les transmissions des tables d'erreurs, en secondes

Groupes snapshot globaux « snapshotGroups »​

Plusieurs canaux à saisir dans le cadre d'un snapshot peuvent être configurés sous forme de groupe snapshot, en tant qu'objet JSON, dont le nom peut ensuite être utilisé dans la suite de la configuration, dans les groupes et les listes de signaux, comme un nom de canal. Il convient de nommer ces groupes de manière à éviter tout écrasement de noms de canaux existants, car lors de l'interprétation, un nom dans une liste de signaux est d'abord vérifié comme nom de groupe.

Si des noms de canaux figurent dans différents groupes ou listes de signaux et sont donc multipliés, ils ne sont repris qu'une seule fois lors de la composition du snapshot.

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteValeur par défautDescription
nameOUISTRINGNom ou alias du groupe snapshot
channelsOUIJSON Array of STRINGListe de tous les noms de canaux ou groupes déjà définis

Configuration des messages d'alarme « messages »​

Les messages d'alarme « messages » sont configurés sous forme d'objets JSON et de manière différente selon le type de surveillance.

important

Le choix des paramètres détermine le type de surveillance exécuté. Le tableau suivant en donne un résumé. Dès qu'un paramètre cité est utilisé, la fonction correspondante est activée :

Surveillance comme...Paramètres d'activationRequisAutres paramètres recommandésRemarque
ErrorCodeisTemplate
errorCode
Non
Non
Ignore channelName, car la source de données est l'Error-Stream/-Table,
activation := HIGH
Pas de fonction de filtrage
Doublethreshold
boundary5
hysteresis
Oui
(obsolète)
Oui
channel
activation
stabilizationSecondsRaise
stabilizationSecondsRelease
Hysteresis est toujours >0.0\gt 0.0
IntegerstartBit
numberOfBits
valuesWhite
valuesBlack
valuesHigh
valuesLow
Non
Non
Non
Non
Recommandé
Recommandé
channel
activation
stabilizationSecondsRaise
stabilizationSecondsRelease
Avec numberOfBits == 1, le bit sélectionné est traité comme dans le mode Boolean.
StringregxWhite
regxBlack
regxHigh
regxLow
Non
Non
Recommandé
Recommandé
channel
activation
stabilizationSecondsRaise
stabilizationSecondsRelease
Si regxWhite définit des sous-expressions, celles-ci sont extraites pour tous les tests suivants et reliées par « ; ».
Booleanchannel
activation
stabilizationSecondsRaise
stabilizationSecondsRelease

Paramètres de configuration communs​

Quel que soit le type de surveillance, les paramètres suivants sont définis pour les messages :

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteValeur par défautDescription
messageLevelOUISTRINGinfo, action, service, warning, alarm, error, fatalAUCUNE valeur par défautNiveau de gravité du message d'alarme
contextOUISTRINGContexte du message d'alarme
Texte statique permettant d'identifier un message
channelOUI/Non6STRINGNom du canal smartCORE surveillé
activationOUISTRINGlow, high, minimum, maximum, positiveEdge, negativeEdge, enumCodehighType d'activation de l'alarme.
messageEventNonSTRINGMessage d'alarme lorsque l'alarme est déclenchée.
Des espaces réservés peuvent être utilisés pour des contenus de message dynamiques.
needAcknowledgeNonBOOLEANfalse, truefalseun acquittement côté cloud est-il nécessaire
keepAcknowledgedStatusNonBOOLEANfalse, truefalsel'état acquitté doit-il être conservé
metadataNonJSON ObjectEMPTY JSON ObjectMétadonnées définies par l'utilisateur, pouvant éventuellement écraser les métadonnées globales
snapshotNonJSON Array of STRINGEMPTY JSON Arraycanaux à saisir lors de l'apparition initiale de la condition d'alarme. Le snapshot global « globalSnapshot » est réuni avec les groupes snapshot spécifiés et résolus ici (issus de « snapshotGroups ») ainsi qu'avec les canaux spécifiés individuellement ici.
Si la fonction de filtrage est disponible :
stabilizationSecondsRaiseNonINTEGER1 -0Délai de stabilisation après lequel l'alarme doit être déclenchée (l'instant initial de la première apparition de la condition d'alarme est signalé)
stabilizationSecondsReleaseNonINTEGER1 -0Délai de stabilisation après lequel l'alarme doit être désactivée (l'instant initial de la première apparition de la condition de désactivation est signalé)
Si un événement d'erreur peut être déclenché :
messageFailureNonSTRINGMessage d'alarme lorsque la condition d'alarme n'est pas valide.
Des espaces réservés peuvent être utilisés pour des contenus de message dynamiques.

Configuration de l'activation : activation​

Les valeurs suivantes peuvent être choisies pour l'activation de l'alarme :

Valeur d'enumAliasSignificationRemarque
lowDéclenchement tant que la source fournit LOWLe mode Double surveille le minimum
high, (par défaut)Déclenchement tant que la source fournit HIGHLe mode Double surveille le maximum
minimumminDéclenchement tant que la source fournit LOW, avec mises à jourLe mode Double surveille le minimum avec actualisation
maximummaxDéclenchement tant que la source fournit HIGH, avec mises à jourLe mode Double surveille le maximum avec actualisation
negativeEdgenegEdgeLe passage de HIGH->LOW déclencheMessage sous forme d'événement sans état7
positiveEdgeposEdgeLe passage de LOW->HIGH déclencheMessage sous forme d'événement sans état7
enumCodeenumDéclenchement tant que la source fournit HIGH, avec mises à jourLes modes Integer/String actualisent pour chaque nouveau code d'erreur

Espaces réservés pour les textes de message​

Dans les textes de message messageEvent, messageFailure, les espaces réservés suivants peuvent être utilisés pour compléter dynamiquement le texte, à chaque événement ou actualisation, par des valeurs actuelles. Dans le cas de messages ErrorCode à modèle, certains espaces réservés peuvent aussi être remplacés dans context lorsque le code d'erreur est enregistré pour la première fois.

Espace réservéremplacé parExemple
${channel}Nom de canal du messagesomeChannelName
${unit}Unité physique du canal°C
${value}8La valeur de donnée actuelle du canal3.14159
${date}La date de l'événement, YYYY-MM-DD2026-12-31
${time}L'heure de l'événement, hh:mm:ss18:05:27
${errorCode}9Le code d'erreur déclencheurERR:243:881
${errorLevel}9Le niveau d'erreur déclencheur8
${boundary}10
${raiseBoundary}10
Valeur limite réglée pour l'activation threshold10.0
${releaseBoundary}10Valeur limite pour la désactivation threshold ±\pm hysteresis8.5
${minmax}10Dernière valeur extrême depuis l'événement
ou, si non déterminée :
17.9
(n.a.)
${minmaxDate}10Date de la valeur extrême
ou, si non affectée :
2026-12-31
(n.a.)
${minmaxTime}10Heure de la valeur extrême
ou, si non affectée :
18:12:35
(n.a.)

Tous les autres espaces réservés ${...}, ainsi que ceux éventuellement indisponibles, sont remplacés par "(n.d.)".

Surveillance de la valeur d'un canal comme Boolean​

La surveillance comme valeur booléenne est mise en place lorsqu'aucun paramètre individuel n'est ajouté dans l'objet messages. Le canal fournit directement les valeurs true (HIGH) et false (LOW). Le paramètre activation détermine avec quel niveau ou quel front le message est déclenché.

Surveillance de la valeur d'un canal comme Double​

Dans le cadre de la surveillance numérique de la valeur d'un canal smartCORE, l'objet de configuration dans messages est complété par les paramètres threshold ou hysteresis. Le paramètre activation détermine si la limite threshold doit être lue comme minimum ou comme maximum et si, par conséquent, l'hysteresis pour le retour dans la zone non critique doit se situer en dessous ou au-dessus de la limite.

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteValeur par défautDescription
threshold
boundary5
OUIFLOAT0Seuil dont le dépassement par le haut ou par le bas conduit à la satisfaction initiale de la condition d'alarme
hysteresisOUIFLOATlow, high, minimum, maximum0.5Zone en dessous/au-dessus de la valeur limite dans laquelle le dernier état est conservé.
activationOUISTRINGlow, high, minimum, maximumHIGHDétermine si la valeur limite doit être lue comme minimum ou comme maximum et si un suivi de la valeur extrême avec nouvelle signalisation doit avoir lieu.

Surveillance de la valeur d'un canal comme Integer​

Si l'objet de configuration dans messages est complété par au moins l'un des paramètres individuels suivants, le canal à surveiller est lu comme <integer>. En option, un groupe de bits de longueur réglable peut être extrait de cette valeur pour un traitement ultérieur. Cette valeur est filtrée et interprétée comme code d'état ou valeur ENUM :

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteValeur par défautDescription
startBitNonINTEGER0..630Définit un décalage à droite de la valeur entière avant l'analyse.
numberOfBitsNonINTEGER1..64
0 : pas de masquage
0Masque le nombre correspondant de bits du mot d'état pour l'analyse. La valeur masquée est non signée pour numberOfBits <64\lt 64. Si numberOfBits == 1, le traitement ultérieur du bit s'effectue comme Boolean.
valuesWhiteNonSTRING11(vide)Plages de valeurs autorisées pour l'analyse, les valeurs non contenues sont ignorées.
valuesBlackNonSTRING11(vide)Plages de valeurs non autorisées pour l'analyse, les valeurs contenues sont ignorées.
valuesLowAU CHOIXSTRING11(vide)Spécification des plages de valeurs correspondant à une condition d'alarme désactivée
valuesHighAU CHOIXSTRING11(vide)Spécification des plages de valeurs correspondant à une condition d'alarme déclenchée
activationOUISTRINGhigh
enum
HIGHType d'activation de l'alarme

Avant que les valeurs du canal ne soient soumises à une évaluation, elles peuvent éventuellement être filtrées par la liste blanche ou noire. Seules les valeurs contenues dans la liste valuesWhite sont traitées. Toutes les valeurs exclues dans la liste valuesBlack sont ignorées.

On peut utiliser au choix l'une ou les deux spécifications de plages de valeurs précitées, valuesLow ou valuesHigh. Si une seule spécification est utilisée, par exemple valuesHigh, toutes les autres valeurs sont automatiquement affectées à l'état opposé, ici par exemple LOW. Si en revanche les deux spécifications sont utilisées, les plages de valeurs non couvertes correspondent à une condition d'alarme non valide. Pour cela, un message d'alarme non valide peut être spécifié avec le texte messageFailure.

Surveillance de la valeur d'un canal comme String​

Si l'objet de configuration dans messages est complété par au moins l'un des paramètres individuels suivants, le canal à surveiller est interprété comme <string> (texte), par exemple comme entrée de journal d'un sous-système :

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteValeur par défautDescription
regxWhiteNonSTRING12(vide)Expression régulière vérifiant les textes et formatages autorisés.
regxBlackNonSTRING12(vide)Expression régulière déterminant les textes à ignorer.
regxLowAU CHOIXSTRING12(vide)Expression régulière décrivant l'état LOW
regxHighAU CHOIXSTRING12(vide)Expression régulière décrivant l'état HIGH
activationOUISTRINGhigh
enum
HIGHType d'activation de l'alarme

Avant que les valeurs du canal ne soient soumises à une évaluation, elles peuvent éventuellement être filtrées par les expressions blanche ou noire. Seuls les textes correspondant à l'expression regxWhite sont traités. Toutes les valeurs correspondant à l'expression regxBlack sont ignorées.

Si regxWhite contient des sous-expressions (termes entre (...)), celles-ci sont extraites en cas de correspondance et reliées entre elles par « ; » pour toutes les analyses suivantes. Cela simplifie l'interprétation ultérieure, car les éléments essentiels sont déjà isolés d'un contexte souvent complexe.

Exemple :

"regxWhite": "Level:([A-Z]+),\\s+(.*)$"
"regxHigh" : "(ERROR|WARNING);"

Extrait d'une ligne de journal :

2345987.3256346, abcDevice, Level:ERROR, Here some message!

les éléments « ERROR » et « Here some message! ». La suite du contrôle porte sur le texte "ERROR;Here some message!". regxHigh peut désormais simplement vérifier les deux codes d'erreur autorisés.

On peut utiliser au choix l'une ou les deux expressions précitées, regxLow ou regxHigh. Si une seule expression est utilisée, par exemple regxHigh, toutes les autres valeurs sont automatiquement affectées à l'état opposé, ici par exemple LOW. Si en revanche les deux expressions sont utilisées, les motifs non couverts correspondent à une condition d'alarme non valide. Pour cela, un message d'alarme non valide peut être spécifié avec le texte messageFailure.

Surveillance de codes d'erreur : ErrorCode​

Les appareils qui pilotent des installations ou des parties d'installations peuvent communiquer leurs états d'erreur vers l'extérieur sous différentes formes :

  1. Sous forme de codes individuels, chacun combiné à l'état « Kommt » ou « Geht » (apparition ou disparition)

  2. Sous forme de tables de codes d'erreur transmises intégralement (mémoire d'erreurs) des codes encore présents. Il faut ici déterminer par observation quels codes individuels « arrivent » (se sont ajoutés) ou « partent » (ne sont plus contenus). La transmission de la table est signalée par un signal de commande ou achevée par un timeout après le dernier code d'erreur.

L'exemple du diagramme suivant illustre cela pour les codes d'erreur 17, 42, B7 et E8. Pour une flexibilité maximale, les codes du canal sourceErrorCodes sont toujours lus et traités comme <string>.

Exemple de codes d&#39;erreur

Le module Diagnostics lit de manière centralisée les canaux

  1. sourceErrorCode et sourceErrorLevel, pour interpréter un Error-Stream ou

  2. sourceErrorCode et sourceBufferTransfer, pour suivre la transmission de tables de codes d'erreur.

important

Aucun filtre de réduction de données ne doit être configuré à la source pour ces canaux. Les horodatages jouent un rôle décisif pour la localisation et la synchronisation des données !

En principe, c'est l'horodatage du code d'erreur dans le canal sourceErrorCode qui est déterminant pour l'interprétation. Le canal sourceErrorLevel doit fournir le niveau correspondant avec des horodatages exactement identiques. Il est lu comme <integer> et comparé au neutralErrorLevel (« geht ») pour déterminer l'état d'activation.

Le niveau du canal sourceBufferTransfer doit passer à true au plus tard avec le premier code d'erreur d'une table et doit retomber à false après le dernier code de la table. Le débit de transmission ou l'ordre des codes d'erreur n'a pas d'importance. Au lieu du canal de commande, un intervalle de temps timeoutBufferTransfer peut aussi être utilisé. La transmission de la table est considérée comme complète si, dans cet intervalle suivant le prétendu dernier ErrorCode, aucun autre ErrorCode n'arrive.

Si l'objet de configuration dans messages est complété par au moins l'un des paramètres individuels suivants, les « messages » correspondants accèdent à ces codes d'erreur dans l'ordre de la définition. Un code d'erreur donné peut alors être observé et signalé, ou bien, sous forme de modèle, un groupe de codes ou simplement tous les codes (restants). Pour chaque code individuel, un message d'alarme propre est créé automatiquement, qui suit l'état Kommt/Geht. Des blocs de texte peuvent être utilisés pour configurer le contexte initial et les textes de message de manière dynamique.

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteValeur par défautDescription
errorCodeAU CHOIXSTRING(vide)Code d'erreur surveillé par cette unité de surveillance, le cas échéant sous forme de texte WildMask si isTemplate est défini.
(vide) correspond à "*"
isTemplateAU CHOIXBOOLEANfalse, truefalseEst défini lorsque cette entrée de message doit générer dynamiquement et automatiquement des entrées de message pour les codes d'erreur correspondants.

Informations sur le module​

InformationValeur
AuteursoptiMEAS GmbH
depuis smartCORE2.6
Type de moduleConsumer
DépendancesAUCUNE

Footnotes​

  1. Avant smartCORE 2.10.1, activationMode était utilisé pour basculer entre la surveillance de canal et le mode Error-Stream. Cela n'est plus nécessaire à partir de 2.10.1, le paramètre est ignoré. ↩

  2. Pour utiliser la fonction Error-Stream, ces paramètres doivent impérativement être indiqués. ↩ ↩2 ↩3

  3. Pour utiliser la fonction Error-Table, ces paramètres doivent impérativement être indiqués. ↩ ↩2 ↩3

  4. Avant smartCORE 2.10.1, neutraErrorCode était utilisé, bien que la valeur se rapporte au canal ErrorLevel. Le paramètre est certes encore lu, mais ne devrait plus être utilisé. ↩

  5. À de nombreux endroits, « threshold » est utilisé comme valeur limite, c'est désormais aussi le cas ici. Le paramètre boundary est encore lu pour threshold, mais ne devrait plus être utilisé. ↩ ↩2

  6. Si le message est configuré dans le mode Error-Stream ou Error-Table, la source de données interne du module Diagnostics est utilisée et le canal est ignoré. ↩

  7. Un message d'alarme est généré, qui ne contient que l'instant de l'événement - pas de « Kommt »/« Geht » (apparition/disparition). ↩ ↩2

  8. Dans le cas de messages Integer, il s'agit le cas échéant de la plage de bits extraite de la valeur réelle du canal. Dans le cas de String, il s'agit le cas échéant du texte composé à partir de sous-expressions. ↩

  9. uniquement en association avec ErrorCode ↩ ↩2

  10. uniquement en association avec Double ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  11. Contient, sous forme de chaîne, une liste séparée par des virgules de valeurs <integer> individuelles ou de plages de valeurs de la forme <integer> - <integer>. Les espaces sont ignorés, les signes sont autorisés. Exemple : "-100, -20 - -5, 12 - 34,47,55-57" ↩ ↩2 ↩3 ↩4

  12. Une expression régulière (PCRE) est attendue ici, dont les caractères de contrôle doivent être correctement échappés. Les expressions sont appliquées sans distinction entre majuscules et minuscules (case insensitive). ↩ ↩2 ↩3 ↩4