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
TOT_FB_avail_v31
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 Greater than or equal to Target.
TargetDev1Flag
BOOL
Indicateur pour TargetDev1. Défini sur vrai lorsque Total Greater than or equal to Target - TargetDev1.
TargetDev2Flag
BOOL
Indicateur pour TargetDev2. Défini sur vrai lorsque Total Greater than or equal to 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.
TOT instruction changes.png
(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.
TOT changes between Run amd Stop modes
(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.
TOT Calculating the Totalization
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 Greater than or equal toTarget
  • TargetDev1Flag est vrai lorsque Total Greater than or equal to (Target - TargetDev1)
  • TargetDev2Flag est vrai lorsque Total Greater than or equal to (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
L5K_TOT_FB_ex_v32
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
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.
Normal