● Sie können Zyklen ohne Zeitaktualisierung haben. Es ist möglich, Ihre Zeit in einer
Funktion zu starten und diese Funktion dann für einen oder weitere Zyklen nicht mehr
aufzurufen. Wenn keine anderen Anweisungen ausgeführt werden, die die Elemente
ELAPSED oder Q der Zeitstruktur referenzieren, wird die Zeit nicht mehr aktualisiert. Eine
neue Aktualisierung tritt erst ein, wenn entweder die Zeitanweisung erneut ausgeführt
wird oder eine andere Anweisung ausgeführt wird, die ELAPSED oder Q aus der
Zeitstruktur als Parameter nutzt.
● Es ist zwar nicht gerade üblich, aber Sie können mehreren Zeitanweisungen die gleiche
DB-Zeitstruktur zuweisen. In Allgemeinen sollten Sie, um unerwartete Wechselwirkungen
zu vermeiden, nur eine Zeit (TP, TON, TOF, TONR) pro DB-Zeitstruktur verwenden.
Selbstrücksetzende Zeiten sind bei Trigger-Aktionen nützlich, die regelmäßig auftreten
sollen. Typischerweise werden selbstrücksetzende Zeiten erstellt, indem ein Öffnerkontakt,
der das Zeitbit referenziert, vor der Zeitanweisung angeordnet wird. Dieses Zeitnetzwerk
befindet sich typischerweise oberhalb eines oder mehrerer abhängiger Netzwerke, die mit
dem Zeitbit Aktionen auslösen. Wenn die Zeit abläuft (die abgelaufene Zeit erreicht den
voreingestellten Wert), ist das Zeitbit einen Zyklus lang EIN, sodass die Logik der vom Zeitbit
gesteuerten abhängigen Netzwerke ausgeführt werden kann. Bei der nächsten Ausführung
des Zeitnetzwerks ist der Öffnerkontakt AUS, wodurch die Zeit zurückgesetzt und das Zeitbit
gelöscht wird. Im nächsten Zyklus ist der Öffnerkontakt EIN, weshalb die Zeit neu gestartet
wird. Beim Erstellen von selbstrücksetzenden Zeiten wie dieser verwenden Sie das Element
"Q" der Zeitstruktur im DB nicht als Parameter für den Öffnerkontakt vor der Zeitanweisung.
Verwenden Sie hierfür stattdessen die an den Ausgang "Q" der Zeitanweisung
angeschlossene Variable. Der Grund, weshalb vermieden werden sollte, auf das Element Q
der DB-Zeitstruktur zuzugreifen, ist der, dass dadurch eine Aktualisierung der Zeit verursacht
wird. Und wenn die Zeit durch den Öffnerkontakt aktualisiert wird, setzt der Kontakt die
Zeitanweisung sofort zurück. Der Ausgang Q der Zeitanweisung ist während dieses einen
Zyklus nicht EIN und die abhängigen Netzwerke werden nicht ausgeführt.
Die Zeitspulen -(TP)-, -(TON)-, -(TOF)- und -(TONR)- müssen immer die letzte Anweisung in
einem Netzwerk sein. Wie im Beispiel für eine Zeit gezeigt, wertet eine Kontaktanweisung in
einem nachfolgenden Netzwerk das Q-Bit in den Daten des DBs IEC_Timer einer Zeitspule
aus. Ebenso müssen Sie das Element ELAPSED in den Daten des DBs IEC_Timer
adressieren, wenn Sie den Wert der abgelaufenen Zeit in Ihrem Programm verwenden
möchten.
Der Impulszeitgeber wird bei einem Wechsel von 0 nach 1 des Bitwerts von Tag_Input
gestartet. Die Zeit läuft für die vom Zeitwert Tag_Time angegebene Zeitdauer.
Solange die Zeit ausgeführt wird, ist der Zustand von DB1.MyIEC_Timer.Q = 1 und der Wert
von Tag_Output = 1. Nach Ablauf des Wertes Tag_Time ist DB1.MyIEC_Timer.Q = 0 und
der Wert von Tag_Output = 0.
Easy Book
Gerätehandbuch, 01/2015, A5E02486775-AG
6.3 Leistungsstarke Anweisungen erleichtern die Programmierung
Programmierung leicht gemacht
123