La fonction de comparaison permet de déclencher des tâches d'événement ou une sortie réflex en fonction de la valeur courante par rapport à un seuil. Le module SSI possède deux comparateurs. La comparaison est réalisée dans les deux sens (seuil supérieur et seuil inférieur).
Ces comparateurs peuvent être utilisés pour avertir qu'une position a été dépassée. Dès que la valeur courante atteint le seuil, la tâche d'événement associé au module est appelée et peut activer une alarme pour vous informer de la fin d'une manœuvre.
Le bloc de comparaison comporte deux seuils :
La valeur du seuil supérieur doit être supérieure ou égale à celle du seuil inférieur.
Si le seuil supérieur est inférieur au seuil supérieur, le bit d'erreur de seuil (%IWr.m.c.1 x9) est confirmé et toutes les fonctions de comparaison de cette voie sont désactivées.
Les valeurs par défaut de upper_th_value et lower_th_value sont 0.
Registre d'état de la comparaison
Les résultats de la comparaison sont stockés dans un mot de sortie appelé registre compare_status.
Les deux seuils peuvent être comparés avec :
-
la valeur courante du registre SSI
-
la valeur du registre de capture 0
-
la valeur du registre de capture 1
NOTE : les résultats de la comparaison des trois modes peuvent uniquement être traités par une interruption de micrologiciel, le délai de réaction dépend de la priorité d'interruption et du temps de réponse système (par exemple, 1 ms).
Les résultats possibles sont :
-
Low : la valeur est inférieure au seuil inférieur.
-
Window : la valeur se trouve entre les seuils supérieur et inférieur ou est égale à un des deux seuils.
-
High : la valeur est supérieure au seuil supérieur.
Le registre compare_status (%IWr.m.c.1) se compose des éléments suivants :
Bit de registre d'état
|
15
|
14
|
13
|
12
|
11
|
10
|
9
|
8
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
Elément comparé
|
|
|
|
|
|
|
|
Capture 1
|
Capture 0
|
Registre SSI
|
Résultat de comparaison
|
|
|
|
|
|
|
|
High
|
Window
|
Low
|
High
|
Window
|
Low
|
High
|
Window
|
Low
|
Mises à jour des registres
Lorsque le bit de validation est Faux (Low), le contenu du registre de comparaison est effacé.
Déclenchement de la mise à jour :
-
La comparaison avec les valeurs des registres de capture 0 et 1 est réalisée à chaque chargement des registres.
-
La comparaison avec le registre SSI se produit pour chaque valeur actualisée (toutes les 1 ms).
Modification des seuils pendant la phase opérationnelle
Si l'application doit modifier les seuils pendant l'exécution de l'entrée SSI, le bit de suspension de la comparaison maintient en suspens le registre d'état de la comparaison pendant l'opération.
Pour être mis à jour, le registre d'état de la comparaison nécessite que le bit d'activation de la comparaison soit actif (1) et que le bit de suspension de la comparaison soit inactif (0). Le bit d'activation de la comparaison et le bit de suspension de la comparaison sont définis au moyen du mot de sortie.
La figure ci-dessous illustre les actions du bit compare_enable (%QWr.m.c.0.5) et du bit compare_suspend (%QWr.m.c.0.6) :
Lorsque le bit d'activation de la comparaison est faux, le contenu du registre d'état de la comparaison est effacé.
Quand le bit de suspension de la comparaison est vrai, le registre d'état de la comparaison maintient le résultat précédent jusqu'à ce que le bit redevienne « 0 ».
Le seuil est mis à jour si la voie obtient le front descendant du bit de suspension de la comparaison. Par exemple, au moment où le bit de suspension de la comparaison passe de 1 à 0, le module SSI actualise le seuil au moyen de la valeur la plus récente dans %QW.
NOTE : l'utilisateur doit saisir les seuils qui reformatent (modulo, réduction, offset et sens inversé) si une fonction de reformatage est appliquée.
En cas de coupure d'alimentation du rack d'un BMXEAE0300, le bit de suspension de la comparaison doit être mis à 1 puis à 0 pour que le module puisse effectuer la comparaison.