Totalisateur (TOT)
Ces informations s’appliquent aux automates
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 et ControlLogix 5590.L’instruction Totalisateur (Totalizer, TOT) fournit un cumul selon une échelle de temps d’une valeur d’entrée analogique.
Langues disponibles
Diagramme à relais
Cette instruction n'est pas disponible dans la logique à relais.
Bloc fonctionnel

Texte structuré
TOT(TOT_tag)
Opérandes
Bloc fonctionnel
Opérande | Type | Format | Description |
TOT tag | TOTALIZER | Structure | Structure TOT |
Texte structuré
Opérande | Type | Format | Description |
TOT tag | TOTALIZER | Structure | Structure TOT |
Reportez-vous à
Syntaxe du texte structuré
pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.Structure TOTALIZER
Paramètre d’entrée | Type de données | Description |
|---|---|---|
EnableIn | BOOL | Activez l'entrée. Si défini sur faux, l’instruction n’est pas exécutée et les sorties ne sont pas mises à jour. La valeur par défaut est définie sur vrai. |
In | REAL | Entrée du signal analogique dans l’instruction. Valide = tout flottant Par défaut = 0,0 |
InFault | BOOL | Indicateur de mauvaise santé d'In. S’il est défini sur vrai, cela indique que le signal d’entrée présente une erreur, l’instruction définit le bit approprié dans Status, l’algorithme de contrôle n’est pas exécuté et Total n’est pas mis à jour. La valeur par défaut est fausse. |
TimeBase | DINT | Entrée de base de temps. Base de temps de la totalisation en fonction des unités d'ingénierie In. 0 = Secondes 1 = Minutes 2 = Heures 3 = Jours Par exemple, utilisez TimeBase = minutes si les unités d'In sont exprimées en gal/min. Si cette valeur n’est pas valide, l’instruction définit le bit approprié dans Status et ne met pas Total à jour. Reportez-vous aux attributs des blocs fonctionnels pour plus d’informations sur les modes de temporisation. Valide = de 0 à 3 Par défaut = 0 |
Gain | REAL | Multiplicateur de la valeur incrémentielle totalisée. L'utilisateur peut utiliser Gain pour convertir les unités de la totalisation. Par exemple, utilisez le gain pour convertir des gal/min en un total exprimé en barils. Valide = tout flottant Par défaut = 1,0 |
ResetValue | REAL | Entrée de la valeur de réinitialisation. Valeur de réinitialisation de Total lorsque OperResetReq ou ProgResetReq passe de faux à vrai. Valide = tout flottant Par défaut = 0,0 |
Target | REAL | Valeur cible de l'entrée totalisée. Valide = tout flottant Par défaut = 0,0 |
TargetDev1 | REAL | Valeur préciblée de l'écart important de Total comparée à la valeur de Target. Cette valeur est exprimée sous la forme d’un écart par rapport à la cible. Valide = tout flottant Par défaut = 0,0 |
TargetDev2 | REAL | Valeur préciblée de l'écart faible de Total comparée à la valeur de Target. Cette valeur est exprimée sous la forme d’un écart par rapport à la cible. Valide = tout flottant Par défaut = 0,0 |
LowInCutoff | REAL | Entrée de coupure d'entrée basse de l'instruction. Lorsque In atteint ou se situe en dessous de la valeur LowInCutoff, la totalisation s’arrête. Valide = tout flottant Par défaut = 0,0 |
ProgProgReq | BOOL | Demande de contrôle Programme du programme. Définissez cette valeur sur vrai pour demander le contrôle Programme. Ignoré si ProgOperReq est vrai. Le maintien de cet élément sur vrai et de ProgOperReq sur faux verrouille l'instruction dans le contrôle Programme. La valeur par défaut est fausse. |
ProgOperReq | BOOL | Demande de contrôle Opérateur du programme. Définissez cette valeur sur vrai pour demander le contrôle Opérateur. Le maintien de cet élément sur vrai verrouille l'instruction dans le contrôle Opérateur. La valeur par défaut est fausse. |
ProgStartReq | BOOL | Entrée de demande de démarrage du programme. Définissez cette valeur sur vrai pour demander le démarrage de la totalisation. La valeur par défaut est fausse. |
ProgStopReq | BOOL | Entrée de la demande d'arrêt du programme. Définissez cette valeur sur vrai pour demander l’arrêt de la totalisation. La valeur par défaut est fausse. |
ProgResetReq | BOOL | Entrée de la demande de réinitialisation du programme. Définissez cette valeur sur vrai pour demander la réinitialisation de Total à la valeur ResetValue. La valeur par défaut est fausse. |
OperProgReq | BOOL | Demande de contrôle Programme de l’opérateur. Définissez cette valeur sur vrai au moyen de l’interface opérateur pour demander le contrôle Programme. L’instruction met à zéro cette entrée sur faux. La valeur par défaut est fausse. |
OperOperReq | BOOL | Demande de contrôle Opérateur de l’opérateur. Définissez cette valeur sur vrai au moyen de l’interface opérateur pour demander le contrôle Opérateur. L’instruction met à zéro cette entrée sur faux. La valeur par défaut est fausse. |
OperStartReq | BOOL | Entrée de la demande de démarrage de l'opérateur. Définissez cette valeur sur vrai au moyen de l’interface opérateur pour demander le démarrage de la totalisation. L’instruction met à zéro cette entrée sur faux. La valeur par défaut est fausse. |
OperStopReq | BOOL | Entrée de la demande d'arrêt de l'opérateur. Définissez cette valeur sur vrai au moyen de l’interface opérateur pour demander l’arrêt de la totalisation. L’instruction met à zéro cette entrée sur faux. La valeur par défaut est fausse. |
OperResetReq | BOOL | Entrée de la demande de réinitialisation de l'opérateur. Définissez cette valeur sur vrai au moyen de l’interface opérateur pour demander la réinitialisation de la totalisation. L’instruction met à zéro cette entrée sur faux. La valeur par défaut est fausse. |
ProgValueReset | BOOL | Réinitialiser les valeurs de contrôle du programme. Lorsque ce paramètre est défini sur vrai, remet toutes les entrées de demandes du programme à zéro (faux) à chaque exécution de l’instruction. La valeur par défaut est fausse. |
TimingMode | DINT | Sélectionne le mode d'exécution de la temporisation. 0 = mode période 1 = mode sur-échantillonnage 2 = mode échantillonnage en temps réel Reportez-vous aux attributs des blocs fonctionnels pour plus d’informations sur les modes de temporisation. Valide = de 0 à 2 Par défaut = 0 |
OversampleDT | REAL | Temps d’exécution du mode suréchantillonnage. Valide = 0 à 4194.303 secondes Par défaut = 0 |
RTSTime | DINT | Période de mise à jour du module pour le mode Échantillonnage en temps réel. Valide = de 1 à 32 767 ms Par défaut = 1 |
RTSTimeStamp | DINT | Valeur d'horodatage du module pour le mode Échantillonnage en temps réel Valide = de 0 à 32 767 ms Par défaut = 0 |
Paramètre de sortie | Type de données | Description |
|---|---|---|
EnableOut | BOOL | Indique si l'instruction est activée. Mis à zéro (faux) en cas de débordement de Total. |
Total | REAL | Valeur totalisée si In. |
OldTotal | REAL | Valeur du total avant le déclenchement d'une réinitialisation. Vous pouvez surveiller cette valeur pour lire le total exact juste avant la dernière réinitialisation. |
ProgOper | BOOL | Indicateur de contrôle programme/opérateur. Vrai dans le mode de contrôle Programme. Faux dans le mode de contrôle Opérateur. |
RunStop | BOOL | Indicateur de l'état opérationnel du totalisateur. Vrai lorsque l’instruction TOT est en cours d’exécution. Faux lorsque l’instruction TOT est arrêtée. |
ProgResetDone | BOOL | Indicateur signalant que l'instruction TOT a terminé une demande de réinitialisation du programme. Défini sur vrai lorsque l’instruction se réinitialise suite à ProgResetReq. Vous pouvez surveiller cela afin de déterminer qu'une réinitialisation s'est terminée correctement. Mis à zéro (faux) lorsque ProgResetReq est faux. |
TargetFlag | BOOL | Indicateur pour Total. Défini sur vrai lorsque Total Target. |
TargetDev1Flag | BOOL | Indicateur pour TargetDev1. Défini sur vrai lorsque Total Target - TargetDev1. |
TargetDev2Flag | BOOL | Indicateur pour TargetDev2. Défini sur vrai lorsque Total Target - TargetDev2. |
LowInCutoffFlag | BOOL | Sortie de l'indicateur de coupure d'entrée basse de l'instruction. Défini sur vrai lorsque Dans £ LowInCutoff. |
DeltaT | REAL | Temps écoulé entre les mises à jour. Cela correspond au temps écoulé en seconde utilisé par l'algorithme de contrôle pour calculer la sortie du processus. |
Status | DINT | État du bloc fonctionnel. |
InstructFault (Status.0) | BOOL | L'instruction a détecté l'une des erreurs d'exécution suivantes. Il ne s'agit pas d'une erreur d'automate mineure ou majeure. Contrôlez les bits d'état restants pour déterminer la cause du problème. |
InFaulted (Status.1) | BOOL | Défaut de la valeur In. |
TimeBaseInv (Status.2) | BOOL | Valeur TimeBase non valide. |
TimingModeInv (Status.27) | BOOL | Valeur TimingMode non valide. |
RTSMissed (Status.28) | BOOL | Utilisé seulement en mode Échantillonnage en temps réel. Défini sur vrai lorsque ABS (DeltaT - RTSTime) > 1 milliseconde. |
RTSTimeInv (Status.29) | BOOL | Valeur RTSTime non valide. |
RTSTimeStampInv (Status.30) | BOOL | Valeur RTSTimeStamp non valide. |
DeltaTInv (Status.31) | BOOL | Valeur DeltaT non valide. Cela peut se produire si OversampleDT n'est pas valide en mode Temporisation du sur-échantillonnage. |
Description
Cette instruction totalise généralement la quantité d'un matériau ajoutée dans le temps, en fonction d'un signal de débit.
L'instruction TOT prend en charge les éléments suivants :
- Base de temps sélectionnable en secondes, minutes, heures ou jours.
- Vous pouvez spécifier une valeur cible et jusqu'à deux valeurs de cible prédéfinie. Les valeurs de cible prédéfinie sont généralement utilisées pour basculer vers un débit d'alimentation plus lent. Des indicateurs numériques annoncent l’atteinte des valeurs cible ou pré-cible.
- Coupure d’entrée de faible débit que vous pouvez utiliser pour éliminer la totalisation négative due à de légères inexactitudes de l’étalonnage du débitmètre lorsque le flux s’arrête.
- Possibilité pour l'opérateur ou le programme d'effectuer des opérations de démarrage/arrêt/réinitialisation.
- Valeur de réinitialisation définie de l'utilisateur.
- Intégration numérique par la méthode des trapèzes pour augmenter la précision.
- La totalisation interne est effectuée à l'aide d'opérations mathématiques en double précision afin d'améliorer l'exactitude.
Surveillance de l'instruction TOT
Une face avant opérateur est disponible pour l’instruction TOT.
Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Aucun spécifique à cette instruction. Reportez-vous à la section Attributs communs pour plus d’informations sur les défauts liés aux opérandes.
Exécution
Bloc fonctionnel
Condition/état | Action entreprise |
|---|---|
Préscrutation | Les bits EnableIn et EnableOut sont définis sur faux. |
Tag.EnableIn est faux | Les bits EnableIn et EnableOut sont définis sur faux. |
Tag.EnableIn est vrai | Les bits EnableIn et EnableOut sont définis sur vrai. L'instruction s'exécute. |
Première exécution de l'instruction | Total est défini sur ResetValue. OldTotal est réinitialisé à 0,0. ProgOper est mis à zéro (faux). |
Première scrutation de l'instruction | Toutes les entrées de demandes opérateur sont mis à zéro (faux). Si ProgValueReset est vrai, toutes les entrées de demandes de programme sont mises à zéro (faux). |
Post-scrutation | Les bits EnableIn et EnableOut sont définis sur faux. |
Texte structuré
Condition/état | Action entreprise |
|---|---|
Préscrutation | Reportez-vous à Pré-scrutation dans le tableau Bloc fonctionnel. |
Exécution normale | Reportez-vous à Tag.EnableIn est vrai dans le tableau Bloc fonctionnel. |
Post-scrutation | Reportez-vous à Post-scrutation dans le tableau Bloc fonctionnel. |
Vérifier la coupure d'entrée basse
Si (In <= LowInCutoff), l’instruction définit LowInCutoffFlag sur vrai et produit In(n-1) = 0,0.
Sinon, l’instruction définit LowInCutoffFlag sur faux.
Lorsque LowInCutoffFlag est vrai, le mode de fonctionnement est déterminé, mais la totalisation s’arrête.
Lorsque LowInCutoffFlag est faux, la totalisation continue cette scrutation.
Modes de fonctionnement
Le diagramme suivant montre comment l'instruction TOT change entre contrôle Programme et contrôle Opérateur.

(1) L’instruction reste en mode de contrôle Opérateur lorsque ProgOperReq est défini sur vrai.
Le diagramme suivant montre comment l'instruction TOT réalise la transition entre les modes Exécution et Arrêt.

(1) Les demandes d’arrêt ont priorité sur les demandes de démarrage
(2) La première scrutation est exécutée après un arrêt, la totalisation n’est pas évaluée, mais l’entrée
n-1
est mise à jour.Au cours de la scrutation suivante, la totalisation reprend.
Toutes les entrées de demandes opérateur sont mis à zéro (faux) à la fin de chaque scrutation. Si ProgValueReset est vrai, toutes les entrées de demandes de programme sont mises à zéro (faux) à la fin de chaque scrutation.
Réinitialisation de l'instruction TOT
Lorsque ProgResetReq passe à l’état vrai alors que ProgOper est vrai, il se passe des choses suivantes :
- OldTotal = Total
- Total = ResetValue
- ProgResetDone est défini sur vrai.
Si ProgResetReq est faux et que ProgResetDone est vrai, ProgResetDone est mis à zéro (faux)
Lorsque OperResetReq passe à l’état vrai alors que ProgOper est faux, il se passe des choses suivantes :
- OldTotal = Total
- Total = ResetValue
Calcul de la totalisation
Lorsque RunStop est vrai et que LowInCutoffFlag est faux, l’équation suivante effectue le calcul de la totalisation.

où TimeBase est :
Value | Condition |
|---|---|
1 | TimeBase = 0 (secondes) |
60 | TimeBase = 1 (minutes) |
3600 | TimeBase = 2 (heures) |
86400 | TimeBase = 3 (jours) |
Déterminer si les valeurs cibles ont été atteintes
Une fois que la totalisation a été calculée, les règles suivantes déterminent si les valeurs de cible ou de cible prédéfinie ont été atteintes :
- TargetFlag est vrai lorsque Total
Target - TargetDev1Flag est vrai lorsque Total
(Target - TargetDev1) - TargetDev2Flag est vrai lorsque Total
(Target - TargetDev2)
Exemple
Dans cet exemple, l'instruction TOT règle le débit d'une quantité d'eau cible dans un réservoir et arrête le débit dès que la quantité d'eau correcte a été ajoutée. Après un appui sur le bouton-poussoir AddWater, l'instruction TOT effectue une réinitialisation et commence à totaliser la quantité d'eau qui s'écoule dans le réservoir. Une fois que la valeur cible est atteinte, l’instruction TOT définit la sortie TargetFlag, ce qui provoque la fermeture de l’électrovanne. Pour cet exemple, l’instruction TOT était « verrouillée » dans l’Exécution du Programme par la définition des entrées ProgProgReq et ProgStartReq. Cette option a été prise pour cet exemple, car l'opérateur n'a jamais besoin de contrôler directement l'instruction TOT.
Bloc fonctionnel

Texte structuré
TotalWaterFlow.In := WaterFlowRate;
TotalWaterFlow.ProgProgReq := 1;
TotalWaterFlow.ProgStartReq := 1;
TotalWaterFlow.ProgResetReq := AddWater;
TOT(TotalWaterFlow);
RESD_01.Set := AddWater;
RESD_01.Reset := TotalWaterFlow.TargetFlag;
RESD(RESD_01);
WaterSolenoidValve := RESD_01.Out;
Fournir une réponse