Description de la fonction

Le bloc fonction S_AI_COMP réalise une évaluation de deux entiers analogiques fournis par deux capteurs différents :

  • Si les entrées S_Channel_1 et S_Channel_2 fonctionnent correctement, Health_1 et Health_2 sont tous deux définis sur TRUE. Le bloc exécute ensuite une analyse des écarts, comme suit :

    • Si l'écart entre les entrées S_Channel_1 et S_Channel_2 dépasse la tolérance configurée (via Max_Diff) pendant un laps de temps supérieur à la durée d'écart définie (via DiscrepancyTime), une erreur d'écart est détectée :

      - Error est défini sur TRUE.

      - DiagCode affiche C001 et indique ainsi la détection d'une erreur d'écart.

      - Out_Avg est mis à 0.

      - Out_Min et Out_Max sont conservés.

    • Sinon :

      - Error est défini sur FALSE.

      - Out_Avg = (S_Channel_1 + S_Channel_2) / 2.

      - Out_Min = MIN (S_Channel_1;S_Channel_2).

      - Out_Max = MAX (S_Channel_1;S_Channel_2).

  • Si une seule voie d'entrée fonctionne correctement (par exemple, S_Channel_1, mais pas S_Channel_2), Health_1 est défini sur TRUE et Health_2 sur FALSE. Dans ce cas :

    • Out_Avg, Out_Max et Out_Min prennent la valeur S_Channel_1.

    • Error est défini sur TRUE.

  • Si aucune voie d'entrée (ni S_Channel_1, ni S_Channel_2) ne fonctionne correctement, Health_1 et Health_2 sont définis sur FALSE. Dans ce cas :

    • Out_Avg, Out_Max et Out_Min sont définis sur 0.

    • Error est défini sur TRUE.

En cas de détection d'une erreur d'écart, celle-ci doit être acquittée après que les entrées respectent de nouveau la tolérance requise, par le déclenchement du front montant du signal Reset.

NOTE : Le bloc fonction S_AI_COMP est un modèle modifiable. Vous pouvez adapter sa structure en fonction des exigences de votre application. Ce bloc n'est pas certifié par le Groupe TÜV Rheinland.

Représentation en FBD

Représentation

Description des paramètres

Paramètres d'entrée :

  • Activate

  • S_Channel_1

  • S_Channel_2

  • Health_1

  • Health_2

  • Max_Diff

  • DiscrepancyTime

  • Reset

Paramètres de sortie :

  • Ready

  • Out_Avg

  • Out_Max

  • Out_Min

  • Error

  • DiagCode

Paramètres d'entrée

Paramètre

Type de données

Valeur d'initialisation

Signification

Activate

BOOL

FALSE

Valeur variable ou constante indiquant l'état d'activation du bloc fonction. Ce paramètre peut être relié à la variable qui représente l'état (actif ou inactif) de l'équipement de sécurité adéquat. Aucune information de diagnostic non pertinente n'est générée lorsqu'un équipement est désactivé :

  • Si la valeur est FALSE, toutes les variables de sortie sont définies sur leur valeur initiale.

  • En l'absence d'équipement connecté, attribuez un signal TRUE statique.

S_Channel_1

INT

0

Valeur d'entrée analogique de la voie 1.

S_Channel_2

INT

0

Valeur d'entrée analogique de la voie 2.

Health_1

BOOL

FALSE

Etat de fonctionnement du module d'entrées analogiques sur la voie 1 :

  • FALSE : module opérationnel.

  • TRUE : module non opérationnel.

Health_2

BOOL

FALSE

Etat de fonctionnement du module d'entrées analogiques sur la voie 2 :

  • FALSE : module opérationnel.

  • TRUE : module non opérationnel.

Max_Diff

INT

0

Valeur d'écart maximale configurable de type constante entre S_Channel_1 et S_Channel_2.

DiscrepancyTime

TIME

T#0ms

Temps de surveillance maximal configurable de type constante pour la comparaison des valeurs S_Channel_1 et S_Channel_2.

Reset

BOOL

FALSE

Valeur variable indiquant la réinitialisation de la machine d'état, couplée avec des messages d'état et d'erreur détectée (tels qu'indiqués par le paramètre DiagCode), après résolution du problème à l'origine de l'erreur. Il s'agit d'une réinitialisation sur erreur détectée.

NOTE : Cette fonction est active uniquement lorsque le signal passe de FALSE à TRUE.

Paramètres de sortie

Paramètre

Type de données

Valeur d'initialisation

Signification

Ready

BOOL

FALSE

  • TRUE : le bloc fonction est actif et les résultats en sortie sont valides (fonction identique au voyant d'alimentation d'un relais de sécurité).

  • FALSE : le bloc fonction est inactif et le programme n'est pas exécuté.

NOTE : Ce paramètre est utile en mode débogage ou pour activer/désactiver d'autres blocs fonction, ainsi que pour opérer des traitements supplémentaires dans le programme fonctionnel.

Out_Avg

INT

0

Valeur moyenne de S_Channel_1 et S_Channel_2.

Out_Max

INT

0

Valeur maximale entre S_Channel_1 et S_Channel_2.

Out_Min

INT

0

Valeur minimale entre S_Channel_1 et S_Channel_2.

Error

BOOL

FALSE

Message d'erreur détectée du bloc fonction.

DiagCode

WORD

16#0000

Message de diagnostic du bloc fonction.

Chronogrammes typiques

Diagramme des états

Le diagramme suivant décrit les transitions entre les différents états du bloc fonction S_EQUIVALENT :

NOTE : Le passage d'un état quelconque à l'état Idle, car Activate = FALSE, n'est pas illustré. Cette transition a la priorité la plus élevée (0).

Gestion des erreurs détectées

En cas de détection d'une erreur, Error est défini sur TRUE. Le paramètre DiagCode peut présenter l'une des valeurs d'erreur détectée suivantes :

DiagCode

Nom de l'état

Description de l'état et paramètres de sortie

C001

Erreur 1

Durée DiscrepancyTime écoulée à l'état 8004 :

  • Error = TRUE

C002

Erreur 2

Voie 1 non valide :

  • Error = TRUE

C003

Erreur 3

Voie 2 non valide :

  • Error = TRUE

C004

Erreur 4

Voies 1 et 2 non valides :

  • Error = TRUE

Gestion des codes de diagnostic

Lorsqu'un message d'état est renvoyé, le paramètre Error est défini sur FALSE, et le paramètre DiagCode affiche l'une des valeurs hexadécimales suivantes :

DiagCode

Nom de l'état

Description de l'état et paramètres de sortie

0

IDLE

Le bloc fonction est inactif (état initial) :

  • Error = FALSE

8001

INIT

Le bloc détecte une activation et est désormais activé :

  • Error = FALSE

8000

OK

Out_Avg contient la moyenne des valeurs des deux voies, laquelle est inférieure au paramètre Max_Diff. Le temporisateur d'écart n'a pas démarré :

  • Error = FALSE

8003

Ecart entre les voies

La différence entre les valeurs S_Channel_1 et S_Channel_2 dépasse le paramètre Max_Diff. Le temporisateur d'écart a démarré :

  • Error = FALSE