RSLogix 500 : transférer l’ACC d’un temporisateur vers le PRE d’un autre temporisateur
Programmation des temporisateurs RSLogix 500 : capturer la valeur ACC d’un temporisateur en cours d’exécution et la transférer dans la valeur PRE d’un autre ...
L’émulation d’un mouvement bidirectionnel dans RSLogix 500 nécessite souvent un temporisateur qui fonctionne pendant la durée déjà passée dans la direction opposée. Un système d’entraînement de porte de garage en est le cas classique : si la cellule photoélectrique se déclenche après trois secondes de descente, la montée en sens inverse doit durer trois secondes, et non les six secondes du préréglage codé en dur. Cette exigence ne peut pas être satisfaite en modifiant l’accumulateur du temporisateur source. Le mot .ACC actif est écrasé par l’instruction du temporisateur à chaque scrutation tant que le rung est vrai. Le schéma durable consiste à capturer .ACC dans un entier sur un front à impulsion unique, puis à écrire cet entier dans le .PRE du temporisateur de destination avant d’activer le mouvement inverse.
Lire .ACC, le stocker temporairement via N7, puis écrire .PRE — ne traitez jamais l’accumulateur comme un point de consigne permanent.
Architecture du fichier de temporisateurs
Chaque temporisateur SLC occupe trois mots : bits d’état (EN/TT/DN), .PRE et .ACC. Les bases de temps sont de 0,01 s, 0,1 s ou 1,0 s. Avec une base de 0,01 s, un préréglage de 600 équivaut à six secondes. La publication 1747-6.15 décrit en détail le comportement du jeu d’instructions.
| Élément | Rôle | Point de consigne accessible en écriture ? |
|---|---|---|
| T4:x.PRE | Valeur cible | Oui — destination correcte |
| T4:x.ACC | Compte écoulé | Aucun effet durable tant que EN est vrai |
| T4:x/TT | Qualificateur de temporisation | À utiliser pour conditionner la capture |
Pourquoi l’écriture de MOV dans .ACC échoue
Tant que EN est vrai, l’instruction TON/TOF/RTO met à jour .ACC à chaque scrutation. Un MOV utilisateur vers .ACC est écrasé à la scrutation suivante, voire lors de la même scrutation. Recharger .ACC ne redéfinit pas non plus la cible de comparaison ; l’instruction compare .ACC à .PRE. Écrire un nouveau .PRE et redémarrer à partir de .ACC = 0 est la méthode contrôlée pour modifier la durée.
Capture avec ONS, transfert avec MOV
Rung de capture : XIC Door_Going_Down XIC Down_Timer/TT ONS Capture_Bit MOV T4:2.ACC N7:10 Rung de chargement du préréglage : XIC Capture_Bit MOV N7:10 T4:3.PRE Rung de mémorisation : XIC Capture_Bit OTL Preset_Loaded Rung par défaut (conditionné) : XIC Door_Idle XIO Preset_Loaded MOV 600 T4:3.PRE Rung d’effacement : XIC Up_Timer/DN OTU Preset_Loaded
RSLogix 500 n’accepte pas un MOV qui utilise le même élément de temporisateur comme source et destination. Passez toujours par un mot de fichier entier, tel que N7:10. Le bit de stockage ONS maintient la capture sur le front montant de la barrière afin qu’une entrée maintenue n’écrive pas le préréglage à chaque scrutation.
Machine à états autour du transfert
| État | Condition d’entrée | Action |
|---|---|---|
| AU_REPOS | Mise sous tension / les deux terminés | Effacer les impulsions uniques et les bits de direction |
| MONTÉE_EN_COURS | Front MONTÉE | Préréglage par défaut de la montée s’il n’est pas chargé |
| DESCENTE_EN_COURS | Front DESCENTE | Préréglage par défaut de la descente |
| INVERSION | Front de la barrière pendant la descente | Capturer l’ACC → augmenter le PRE, activer l’augmentation |
Notes de migration vers Studio 5000
Les temporisateurs Logix utilisent la même sémantique .PRE / .ACC, avec des adresses basées sur des tags. Capturez la valeur dans un DINT, écrivez-la dans le .PRE du temporisateur inverse et conservez la détection de front à impulsion unique avec ONS ou un équivalent. La base de connaissances A-43402 traite du transfert des valeurs accumulées vers d’autres tags sur ControlLogix ; les rôles des éléments correspondent au modèle SLC.
Vérifications des fronts lors de la capture de l’ACC et de l’écriture du PRE
Déclenchez la barrière à un temps écoulé connu et vérifiez que le préréglage inverse est égal à l’ACC capturé, à un tick de la base de temps près. Vérifiez que les préréglages par défaut ne sont chargés que lorsque Preset_Loaded est false. Les erreurs courantes consistent à écrire dans .ACC, à omettre l’étape entière, à effectuer la capture sans qualification /TT et à laisser un rung d’initialisation écraser .PRE après la capture. Gardez la documentation des temporisateurs cohérente avec les autres normes PLC et PAC lors de la migration de la logique de formation vers Logix.
À propos de l’auteur
Mark Townsend | Ingénieur principal en automatisation – Systèmes Allen-Bradley
Mark Townsend est ingénieur principal en automatisation et possède plus de 18 ans d’expérience sur les plateformes Allen-Bradley, notamment ControlLogix, CompactLogix et les anciens systèmes SLC-500. Son travail quotidien porte sur la programmation en logique RSLogix / Studio 5000 et la mise en service d’IHM FactoryTalk View sur des parcs vieillissants et hétérogènes.