TIA Zeiten sammeln

DCDCDC

Level-3
Beiträge
1.807
Reaktionspunkte
377
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

stehe an diesem Nachmittag etwas auf dem Schlauch..

ich möchte wie in einem Graphen einmal eine Gesamtzeit (T) und eine aktuelle Zeit (U) sammeln.., Zeit U wird ja im Graphen angehalten sobald der Schritt einen Fehler schmeisst und mit Quittieren ja wieder neugestartet. Hab jetzt mal TOFs genommen.. für den TOF der Zeit U möchte ich aber gerne auch das so realisieren, dass die Zeit solange angezeigt wird, bis eine Quittierung erfolgt ist.. wie mache ich das am einfachsten?

Code:
REGION Step times
    // Step time summary
    #sTimerT(IN := #RTRIG_StepS1.Q,
             PT := #CONST_TIME_STEP,
             ET => #Interface.Step.T);
    // Step time undisturbed
    #sTimerU(IN := #RTRIG_StepS1.Q AND (NOT #Interface.Control.Fault),
             PT := #CONST_TIME_STEP,
             ET => #Interface.Step.U);
END_REGION

Achja.. SCL, TIA V18

Merci!
 
Zuletzt bearbeitet:
Wenn du es so machst brauchst du das für jeden Schritt… Wieviele Schritte hast du denn? Welche Fehlerzeit willst du Aufzeichnen? Benutzt du die Graph Supervision/Interlock? Was wenn zwei Schritte aktiv sind und nur einer einen Fehler hat?

Die Zeiten T und U müssten ja direkt im I-DB vorliegen oder?

PS: Wofür soll das gut sein?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... Zeit U wird ja im Graphen angehalten sobald der Schritt einen Fehler schmeisst und mit Quittieren ja wieder neugestartet.

Hab jetzt mal TOFs genommen.. für den TOF der Zeit U möchte ich aber gerne auch das so realisieren, dass die Zeit solange angezeigt wird, bis eine Quittierung erfolgt ist.. wie mache ich das am einfachsten?
:unsure: Der TOF wird mit der negativen Flanke von IN neu gestartet. Er wird nicht angehalten und kann nicht nach einer Unterbrechung ab dem erreichten Stand weiter arbeiten.
Für mein (falsches?) Vertsändnis willst Du die Zeit mit der Quittierung nicht neu starten, sondern "fortsetzen"?

Ich denke, Du solltest in einer anderen Richtung weiterdenken:
bilde als Ersatz für die zwei Timer, die Du jetzt hast (T und U), je eine BOOLesche Variable, die auf TRUE geht, sobald die Zeit gezählt/aufsummiert werden soll und die auf FALSE geht, wenn die Zeit nicht "laufen" soll.
Mit diesen beiden Bits aktivierst Du je einen "selbstgebastelten" Zähler, der z.B. jede Sekunde eine 1 auf eine statische Variable addiert.
Das Löschen dieser beiden statischen Variablen ist (vermutlich) nicht abhängig von den o.g. Bits, sondern wird durch weitere Kriterien gesteuert?
Keine Ahnung ... dazu habe ich zu wenig von Deiner Anforderung an das Programm verstanden.
 
Zurück
Oben