Ein Timer ist eine SPS-Anweisung, die die nach einem Ereignis verstrichene Zeit misst.
Timer-Anweisungen gibt es in zwei Grundtypen: Einschaltverzögerungs-Timer und Ausschaltverzögerungs-Timer. Sowohl die Einschaltverzögerungs- als auch die Ausschaltverzögerungs-Timer-Anweisungen haben einzelne Eingänge, die die zeitgesteuerte Funktion auslösen.
Ein Einschaltverzögerungs-Timer aktiviert einen Ausgang nur, wenn der Eingang für eine Mindestzeit aktiv war.
SPS-Timer-Anweisungen
Nehmen wir zum Beispiel dieses SPS-Programm, das so konzipiert ist, dass vor dem Starten eines Förderbands eine akustische Alarmsirene ertönt.
Um den Förderbandmotor zu starten, muss der Bediener die Starttaste 10 Sekunden lang gedrückt halten. Während dieser Zeit ertönt die Sirene und warnt die Personen, sich vom gleich startenden Förderband zu entfernen.
Erst nach dieser 10-sekündigen Startverzögerung startet der Motor tatsächlich (und wird „eingeschaltet“):
Ähnlich wie bei einem „Aufwärts“-Zähler erhöht sich der Wert der verstrichenen Zeit (ET) des Einschaltverzögerungstimers einmal pro Sekunde, bis die voreingestellte Zeit (PT) erreicht ist, zu der sein Ausgang (Q) aktiviert wird.
In diesem Programm beträgt der voreingestellte Zeitwert 10 Sekunden, was bedeutet, dass der Q-Ausgang erst aktiviert wird, wenn der „Start“-Schalter 10 Sekunden lang gedrückt wurde.
Der Alarmsirenenausgang, der nicht vom Timer aktiviert wird, wird sofort aktiviert, wenn der „Start“-Druckknopf gedrückt wird.
Ein wichtiges Detail in Bezug auf die Funktionsweise dieses speziellen Timers ist, dass er nicht remanent ist.
Dies bedeutet, dass die Timeranweisung ihren Wert der verstrichenen Zeit nicht beibehalten sollte, wenn der Eingang deaktiviert wird.
Stattdessen sollte der Wert der abgelaufenen Zeit jedes Mal auf Null zurückgesetzt werden, wenn der Eingang deaktiviert wird. Dadurch wird sichergestellt, dass sich der Timer selbst zurücksetzt, wenn der Bediener den „Start“-Druckknopf loslässt.
Ein remanenter Einschaltverzögerungstimer hingegen behält seinen Wert der abgelaufenen Zeit bei, selbst wenn der Eingang deaktiviert wird. Dadurch ist er nützlich, um die „laufende Gesamtzeit“ für ein bestimmtes Ereignis aufzuzeichnen.
Die meisten SPS bieten remanente und nicht remanente Versionen von Einschaltverzögerungstimeranweisungen, sodass der Programmierer die richtige Form des Einschaltverzögerungstimers für jede bestimmte Anwendung auswählen kann.
Der Programmierstandard IEC 61131-3 behandelt das Problem von remanenten und nicht remanenten Timern jedoch etwas anders.
Gemäß dem Standard IEC 61131-3 kann eine Timeranweisung mit einem zusätzlichen Aktivierungseingang (EN) angegeben werden, der bewirkt, dass sich die Timeranweisung bei Aktivierung nicht remanent und bei Deaktivierung remanent verhält.
Das allgemeine Konzept des Enable-Eingangs (EN) besteht darin, dass sich die Anweisung „normal“ verhält, solange der Enable-Eingang aktiv ist (in diesem Fall wird eine nicht remanente Zeitaktion gemäß der Norm IEC 61131-3 als „normal“ angesehen), die Anweisung jedoch die gesamte Ausführung „einfriert“, wenn der Enable-Eingang deaktiviert wird.
Dieses „Einfrieren“ des Betriebs hat zur Folge, dass der aktuelle Zeitwert (CT) beibehalten wird, selbst wenn das Eingangssignal deaktiviert wird.
Wenn wir beispielsweise unserem Förderbandsteuerungssystem einen remanenten Timer hinzufügen möchten, um die Gesamtlaufzeit des Förderbandmotors aufzuzeichnen, könnten wir dies mit einem „aktivierten“ IEC 61131-3-Timerbefehl wie diesem tun:
Wenn das Schützbit des Motors (OUT-Schütz) aktiv ist, wird der Timer aktiviert und kann die Zeit messen.
Wenn dieses Bit jedoch deaktiviert wird (auf „falsch“ gesetzt wird), wird der Timerbefehl als Ganzes deaktiviert, wodurch er „eingefroren“ wird und seinen aktuellen Zeitwert (CT) beibehält (Hinweis 1).
Dadurch kann der Motor gestartet und gestoppt werden, wobei der Timer die gesamte Motorlaufzeit protokolliert.
Hinweis 1: Das „Enable Out“-Signal (ENO) am Timerbefehl dient zur Anzeige des Status des Befehls: Es wird aktiviert, wenn der Enable-Eingang (EN) aktiviert wird, und deaktiviert, wenn entweder der Enable-Eingang deaktiviert wird oder der Befehl einen Fehlerzustand erzeugt (wie durch die interne Programmierung des SPS-Herstellers bestimmt). Das ENO-Ausgangssignal dient in diesem speziellen Programm keinem nützlichen Zweck, ist jedoch verfügbar, falls andere Programmschritte den Status des Laufzeittimers „kennen“ müssen.
Wenn wir dem Bediener die Möglichkeit geben möchten, den Gesamtlaufzeitwert manuell auf Null zurückzusetzen, könnten wir einen zusätzlichen Schalter fest mit der diskreten Eingangskarte der SPS verdrahten und dem Programm „Reset“-Kontakte wie folgt hinzufügen:
Wenn der „Reset“-Schalter gedrückt wird, wird der Timer aktiviert (EN), aber der Zeiteingang (IN) wird deaktiviert, wodurch der Timer gezwungen wird, seinen aktuellen Zeitwert (CT) (nicht remanent) auf Null zurückzusetzen.
Der andere wichtige Typ von SPS-Timerbefehlen ist der Ausschaltverzögerungstimer. Dieser Timerbefehl unterscheidet sich vom Einschaltverzögerungstyp dadurch, dass die Zeitfunktion beginnt, sobald der Befehl deaktiviert wird, und nicht, wenn er aktiviert wird.
Eine Anwendung für einen Ausschaltverzögerungstimer ist eine Kühlerlüftermotorsteuerung für einen großen Industriemotor.
In diesem System startet die SPS einen elektrischen Kühlerlüfter, sobald erkannt wird, dass sich der Motor dreht, und lässt diesen Lüfter nach dem Abschalten des Motors zwei Minuten lang laufen, um Restwärme abzuleiten:
Wenn der Eingang (IN) zu dieser Timeranweisung aktiviert wird, wird der Ausgang (Q) sofort aktiviert (ohne jegliche Zeitverzögerung), um den Schütz des Kühlerlüftermotors einzuschalten.
Dadurch wird der Motor gekühlt, sobald er sich zu drehen beginnt (wie vom Drehzahlschalter erkannt, der an den diskreten Eingang der SPS angeschlossen ist).
Wenn der Motor aufhört zu drehen, kehrt der Drehzahlschalter in seine normalerweise offene Position zurück und deaktiviert das Eingangssignal des Timers, das die Zeitsequenz startet.
Der Q-Ausgang bleibt aktiv, während der Timer von 0 Sekunden bis 120 Sekunden zählt.
Sobald 120 Sekunden erreicht sind, wird der Ausgang deaktiviert (der Kühlerlüftermotor wird abgeschaltet) und der verstrichene Zeitwert bleibt bei 120 Sekunden, bis der Eingang erneut aktiviert wird. Zu diesem Zeitpunkt wird er wieder auf Null zurückgesetzt.
Die folgenden Zeitdiagramme vergleichen Einschaltverzögerungs- und Ausschaltverzögerungstimer und stellen sie gegenüber:
Während es üblich ist, Einschaltverzögerungs-SPS-Anweisungen sowohl in remanenter als auch in nicht remanenter Form in den Befehlssätzen fast aller SPS-Hersteller und -Modelle zu finden, ist es fast unbekannt, remanente Ausschaltverzögerungstimeranweisungen zu finden. Normalerweise sind Ausschaltverzögerungstimer nur nicht remanent (Hinweis 2).
Hinweis 2: Die im Programmierstandard IEC 61131-3 angegebenen Aktivierungseingangssignale (EN) ermöglichen remanente Ausschaltverzögerungstimer (indem der Aktivierungseingang deaktiviert wird, während der „IN“-Eingang in einem inaktiven Zustand gehalten wird), aber bedenken Sie, dass die meisten SPS-Implementierungen von Timern keine separaten EN- und IN-Eingänge haben. Dies bedeutet (für die meisten SPS-Timeranweisungen), dass der einzige zum Aktivieren des Timers verfügbare Eingang der „IN“-Eingang ist. In diesem Fall ist es unmöglich, einen speichernden Ausschaltverzögerungstimer zu erstellen (da der Wert der abgelaufenen Zeit eines solchen Timers bei jeder erneuten Aktivierung des Eingangs sofort auf Null zurückgesetzt würde).