RSLogix 500: Timer-AKK in den PRE-Wert eines anderen Timers verschieben
RSLogix-500-Timerprogrammierung: Den ACC-Wert eines laufenden Timers erfassen und an den PRE-Wert eines anderen Timers übertragen, um eine reversible Türsimu...
Die Emulation einer bidirektionalen Bewegung in RSLogix 500 erfordert häufig einen Timer, der so lange läuft, wie die Bewegung zuvor in die entgegengesetzte Richtung gedauert hat. Ein Garagentor-Trainer ist der klassische Fall: Wenn die Lichtschranke nach drei Sekunden Abwärtsbewegung auslöst, muss die Aufwärtsbewegung drei Sekunden lang laufen, nicht mit dem fest programmierten Preset von sechs Sekunden. Diese Anforderung lässt sich nicht durch Bearbeiten des Akkumulatorwerts des Quelltimers erfüllen. Das aktuelle .ACC-Wort wird von der Timeranweisung in jedem Scan überschrieben, solange der Rung true ist. Das robuste Muster besteht darin, .ACC bei einer Flanke mit einem One-Shot in eine Ganzzahl zu übernehmen und diese Ganzzahl vor der Aktivierung der Rückwärtsbewegung in das .PRE des Zieltimers zu schreiben.
.ACC auslesen, über N7 zwischenspeichern, in .PRE schreiben – den Akkumulator niemals als dauerhaften Sollwert behandeln.
Architektur der Timer-Datei
Jeder SLC-Timer belegt drei Wörter: Statusbits (EN/TT/DN), .PRE und .ACC. Die Zeitbasen sind 0,01 s, 0,1 s oder 1,0 s. Bei einer Zeitbasis von 0,01 s entspricht ein Preset von 600 sechs Sekunden. Die Publikation 1747-6.15 dokumentiert das Verhalten des Befehlssatzes ausführlich.
| Element | Funktion | Beschreibbarer Sollwert? |
|---|---|---|
| T4:x.PRE | Zielzählerstand | Ja – das ist das richtige Ziel |
| T4:x.ACC | Abgelaufener Zählerstand | Keine dauerhafte Wirkung, solange EN true ist |
| T4:x/TT | Zeitqualifizierer | Zur Steuerung der Erfassung verwenden |
Warum MOV nach .ACC fehlschlägt
Solange EN true ist, aktualisiert die TON/TOF/RTO-Anweisung .ACC in jedem Scan. Ein benutzerdefiniertes MOV nach .ACC wird im nächsten oder sogar im selben Scan überschrieben. Auch das erneute Laden von .ACC definiert das Vergleichsziel nicht neu; die Anweisung vergleicht .ACC mit .PRE. Das Schreiben eines neuen .PRE und der Neustart mit .ACC = 0 ist die kontrollierte Methode, die Dauer zu ändern.
Erfassung mit ONS, Übertragung mit MOV
Rung-Erfassung: XIC Door_Going_Down XIC Down_Timer/TT ONS Capture_Bit MOV T4:2.ACC N7:10 Rung-Preset laden: XIC Capture_Bit MOV N7:10 T4:3.PRE Rung-Veriegelung: XIC Capture_Bit OTL Preset_Loaded Rung-Standard (verriegelt): XIC Door_Idle XIO Preset_Loaded MOV 600 T4:3.PRE Netzwerk löschen: XIC Up_Timer/DN OTU Preset_Loaded
RSLogix 500 akzeptiert keinen MOV-Befehl, der dasselbe Timer-Element sowohl als Quelle als auch als Ziel verwendet. Stufen Sie den Wert immer über ein Wort in einer Ganzzahldatei wie N7:10 zwischen. Das ONS-Speicherbit hält die Erfassung auf der führenden Flanke der Lichtschranke fest, sodass ein dauerhaft anliegendes Eingangssignal den Voreinstellwert nicht bei jedem Scan erneut schreibt.
Zustandsautomat rund um die Übergabe
| Zustand | Eintrittsbedingung | Aktion |
|---|---|---|
| RUHEZUSTAND | Einschalten / beide abgeschlossen | One-Shot- und Richtungsbits löschen |
| AUFWÄRTSFAHRT | AUFWÄRTS-Flanke | Standardvoreinstellwert aufwärts, falls nicht geladen |
| ABWÄRTSFAHRT | ABWÄRTS-Flanke | Standardvoreinstellwert abwärts |
| UMKEHR | Lichtschrankenflanke während Abwärtsbewegung | ACC erfassen → PRE erhöhen, Aufwärtsbewegung aktivieren |
Hinweise zur Studio-5000-Migration
Logix-Timer verwenden dieselbe .PRE-/.ACC-Semantik mit tagbasierten Adressen. Erfassen Sie den Wert in einem DINT, schreiben Sie den Wert in .PRE des Rückwärtstimers und behalten Sie die Flankenerkennung mit ONS oder einem gleichwertigen Verfahren bei. Knowledgebase A-43402 behandelt das Verschieben von Akkumulationswerten in andere Tags unter ControlLogix; die Elementrollen entsprechen dem SLC-Muster.
Kantenprüfungen für ACC-Erfassung und PRE-Schreiben
Lösen Sie die Lichtschranke zu einer bekannten verstrichenen Zeit aus und bestätigen Sie, dass der Rückwärtsvoreinstellwert innerhalb eines Zeitbasistakts dem erfassten ACC entspricht. Bestätigen Sie, dass Standardvoreinstellwerte nur geladen werden, wenn Preset_Loaded false ist. Häufige Fehler sind das Schreiben in .ACC, das Weglassen der Ganzzahlstufe, das Erfassen ohne /TT-Qualifizierung und das Überschreiben von .PRE nach der Erfassung durch ein Initialisierungsnetzwerk. Halten Sie die Timer-Dokumentation bei der Migration der Trainerlogik zu Logix an die übrigen SPS- und PAC-Standards angepasst.
Über den Autor
Mark Townsend | Leitender Automatisierungsingenieur – Allen-Bradley-Systeme
Mark Townsend ist ein leitender Automatisierungsingenieur mit mehr als 18 Jahren Erfahrung mit Allen-Bradley-Plattformen, darunter ControlLogix, CompactLogix und das ältere SLC-500. Zu seinen täglichen Aufgaben gehören die Erstellung und Inbetriebnahme von RSLogix-/Studio-5000-Logik sowie die Inbetriebnahme von FactoryTalk-View-HMIs in veralteten und gemischten Anlagenflotten.