Temporisateur de rémanence activé avec réinitialisation (Retentive Timer On with Reset, RTOR)
L'instruction RTOR est un temporisateur rémanent qui accumule le temps lorsque TimerEnable est défini.
Détails du support d’architecture et de sécurité
Ce tableau répertorie les automates et les applications qui prennent en charge cette instruction.
Architecture | Applications standard | Applications de sécurité |
|---|---|---|
CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370, GuardLogix 5570 | Oui | Non |
CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580, ControlLogix 5590 | Oui | Oui |
Langues disponibles
Diagramme à relais
Cette instruction n’est pas disponible dans un diagramme à relais.
Bloc fonctionnel

Texte structuré
RTOR(RTOR_tag)
Opérandes
Texte structuré
Variable | Type | Format | Description |
|---|---|---|---|
RTOR tag | FBD_TIMER | Structure | Structure RTOR |
Reportez-vous à pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.
Bloc fonctionnel
Opérande | Type | Format | Description |
|---|---|---|---|
RTOR tag | FBD_TIMER | Structure | Structure RTOR |
Structure FBD_TIMER
Paramètre d’entrée | Type de données | Description |
|---|---|---|
EnableIn | BOOL | Si mis à zéro, l'instruction n'est pas exécutée et les sorties ne sont pas mises à jour. Si définir, l'instruction s'exécute. La valeur par défaut est définie. |
TimerEnable | BOOL | Si défini, cela permet au temporisateur de fonctionner et d'accumuler du temps. La valeur par défaut est mise à zéro. |
PRE | DINT | Valeur prédéfinie du temporisateur. Correspond à la valeur par incrément de 1 ms qu'ACC doit atteindre avant la fin de la temporisation. Si non valide, l'instruction définit le bit approprié dans Status et le temporisateur ne s'exécute pas. Valide = de 0 à l'entier positif maximal. |
Reset | BOOL | Demande de réinitialisation du temporisateur. Si définir, le temporisateur se réinitialise. Lorsque le paramètre d'entrée Reset est défini, l'instruction met EN, TT et DN à zéro, et définit ACC = 0. |
Paramètre de sortie | Type de données | Description |
|---|---|---|
EnableOut | BOOL | L'instruction a produit un résultat valide. |
ACC | DINT | Temps accumulé en millisecondes. Cette valeur est conservée même si l'entrée TimerEnable est mise à zéro. |
EN | BOOL | Sortie d’activation du temporisateur. Indique que l'instruction du temporisateur est activée. |
TT | BOOL | Sortie de temporisation du temporisateur. Lorsque la valeur est définie, une opération de temporisation est en cours. |
DN | BOOL | Sortie de temporisation terminé. Indique à quel moment le temps accumulé est supérieur ou égal à la valeur prédéfinie. |
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. |
PresetInv (Status.1) | BOOL | La valeur prédéfinie n'est pas valide. |
Description
L'instruction RTOR accumule le temps jusqu'à ce qu'elle est fausse. Lorsque l'instruction RTOR est égale à faux, elle conserve sa valeur ACC. Vous devez mettre la valeur .ACC à zéro en utilisant l'entrée Reset.
La base de temps est toujours de 1 milliseconde. Par exemple, pour un temporisateur de 2 secondes, entrez 2 000 comme valeur PRE.

Définir le paramètre d'entrée Reset pour réinitialiser l'instruction. Si TimerEnable est défini lorsque Reset est vrai, l'instruction RTOR recommence la temporisation lorsque Reset est mis à zéro.
Fonctionnement d'un temporisateur
Un temporisateur fonctionne en soustrayant le temps de sa dernière scrutation du temps actuel :
- ACC = ACC + (current_time - last_time_scanned)
- Après avoir mis à jour ACC, le temporisateur définit last_time_scanned= current_time. Cela rend le temporisateur disponible pour la scrutation suivante.IMPORTANT: Veillez à scruter le temporisateur au moins toutes les 69 minutes lorsqu'il fonctionne. Sinon, la valeur ACC ne sera pas correcte.
La valeur last_time_scanned dispose d'une plage allant jusqu'à 69 minutes. Le calcul du temporisateur recommence si vous ne le scrutez pas dans les 69 minutes. La valeur ACC ne sera pas correcte si cela se produit.
Pendant qu'un temporisateur fonctionne, scrutez-le pendant la période de 69 minutes si vous l'avez placé dans l'un des éléments suivants :
- Sous-routine
- Section de code comprise entre les instructions JMP et LBL
- Graphe de fonctionnement séquentiel (SFC)
- Événement ou tâche périodique
- Routine d’état d’une phase
Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Aucun spécifique à cette instruction. Reportez-vous à la section pour consulter 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. Lorsque le paramètre d'entrée Reset est défini, l'instruction met EN, TT et DN à zéro, et définit ACC = 0. |
Première exécution de l'instruction | EN, TT et DN sont définis sur faux. L'instruction s'exécute. |
Première scrutation de l'instruction | N/A |
Reset | Les bits .EnableIn et .EnableOut sont définis sur vrai. L’algorithme d’instruction principal est exécuté et les sorties sont mises à jour. |
Post-scrutation | EnableIn et EnableOut sont définis sur faux. |
Texte structuré
Dans Texte structuré, EnableIn est toujours Vrai lors d’une scrutation normale. Si l’instruction se trouve dans le chemin d’accès de commande activé par la logique, elle est exécutée.
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. |
Exemple
Bloc fonctionnel

Texte structuré
RTOR_01.PRE := 500;
RTOR_01.Reset := Reset;
RTOR_01.TimerEnable := Input;
RTOR(RTOR_01);
timer_state := RTOR_01.DN;
Fournir une réponse