Die Zeiten

Timer-Arten

Zeiten (englisch Timer) spielen für die Realisierung von Steuerungsaufgaben eine wichtige Rolle. Das Starten einer Zeitfunktion erfolgt ebenso über das SPS-Programm wie die Festlegung der Zeitdauer. In der Steuerungsfamilie S7 des Marktführers Siemens gibt es (noch) zwei Timer-Arten: Die S5-Timer und die IEC-Timer. Die inzwischen veralteten S5-Timer stammen noch aus der Simatic S5-Ära. In der S7-300/400 Steuerungsfamilie sind sowohl S5- als auch IEC-Timer programmierbar. Das Gleiche gilt für die neue S7-1500 Familie, während in der Steuerungsfamilie S7-1200 nur noch IEC-Timer programmiert werden können.
Ein wesentlicher Unterschied zwischen beiden Timer-Arten ist u.a. die Menge. Die Anzahl der S5-Timer ist je nach CPU unterschiedlich, da sie durch die Firmware der jeweiligen CPU begrenzt ist. Die Anzahl IEC-Timer ist dagegen nur durch die Speichergröße der SPS begrenzt. Ein weiterer, wesentlicher Unterschied ist die Einschränkung hinsichtlich Zeitdauer und Auflösung.


S5-Timer

S5-Zeiten werden über eine Nummer absolut adressiert. Durch diese Nummernabhängigkeit sind Programmbausteine mit S5-Zeiten nicht mehrfach verwendbar. Der Wertebereich einer Zeit ist auf maximal 9990s begrenzt. Die Zeitangabe erfolgt im (veralteten) S5TIME-Format. Die Zeitangabe hat zwar technisch eine Länge von 16 Bit, ist intern aber nur eine 12 Bit BCD-Zahl (3 x 4 Bit). Bit 12 und 13 geben die Zeitbasis an, Bit 14 und 15 sind unwirksam.

Codierung Zeitbasis
Zeitbasis Binärcode
Bit 13 Bit 12
10ms 0 0
100ms 0 1
1s 1 0
10s 1 1
Das Beispiel zeigt den Inhalt des Zeitoperanden bei einer Zeitbasis von 1s und einem Zeitwert von 143
15 Bit 8 7 Bit 0
x x 1 0 0 0 0 1 0 1 0 0 0 0 1 1
1s 1 4 3
Zeitbasis Zeitwert im BCD-Format
Werte die 2 h 46 m 30s überschreiten werden nicht akzeptiert.
Auflösung Bereich
0,01s 10ms bis 9s 990ms
0,1s 100ms bis 1m 39s 900ms
1s 1s bis 16m 39s
10s 10s bis 2h 46m 30s

Die Werteingabe erfolgt in der Form S5T#5m oder S5T#3s200ms. Bei einer unzulässigen Eingabe rundet der Editor den Wert auf die nächstmögliche Eingabe. Obwohl diese S5-Timer veraltet sind, sind sie heute insbesondere wegen ihres nützlichen Reset-Einganges durchaus noch brauch- und einsetzbar.


IEC-Timer

Die IEC-Zeiten verfügen gegenüber den S5-Zeiten über eine bessere Performance, Zeitgenauigkeit und wesentlich größeren Wertebereich. IEC-Zeiten werden in dem Programmbaustein, in dem sie aufgerufen bzw. gebraucht werden deklariert. Jeder Timer benötigt eine DB-Struktur (Datenbausteinstruktur) um Zeitdaten zu speichern. Wird eine IEC-Zeit programmiert, erstellt Step 7 bzw. TIA-Portal automatisch den für die Zeit erforderlichen Datenbaustein (einen Einzel-Instanz-DB oder wahlweise Multi-Instanz-DB). Die Zeitwerte (sowohl die voreingestellte als auch abgelaufene Zeit) werden in den zugehörigen DBs mit einem Zeitwert in Millisekunden für TIME bzw. in Nanosekunden für LTime gespeichert.
Die Unterschiede zwischen einem „normalen“ DB (Datenbaustein), Instanz-DB und Multi-Instanz-DB werden im Kapitel Bausteine behandelt

TIME
Operandenlänge 32 Bit
Wertebereich
T#-24d_20h_31m_23s_648ms bis
T#+24d_20h_31m_23s_647ms
Beispiele für Werteeingabe
T#8d_16h_30m_10s_500ms,
TIME#8d_16h_30m_10s_500ms
LTIME
Operandenlänge 64 Bit
Wertebereich
LT#-106751d_23h_47m_16s_854ms_775us_808ns bis
LT#+106751d_23h_47m_16s_854ms_775us_807ns
Beispiele für Werteeingabe
LT#11350d_20h_25m_14s_830ms_652us_315ns,
LTIME#11350d_20h_25m_14s_830ms_652us_315ns

Es ist nicht erforderlich, alle Zeiteinheiten anzugeben. Gültig ist z.B. T#8h30s oder LT#4d3h. Wenn nur eine Einheit angegeben wird, darf der absolute Wert von Tagen, Stunden, Minuten usw. die Grenzwerte nicht überschreiten. Wird mehr als eine Zeiteinheit angegeben, darf der Wert die Einheit 24 Tage, 23 Stunden, 59 Minuten, 59 Sekunden oder 999 Millisekunden bei TIME und bei LTIME 106751 Tage, 23 Stunden, 59 Minuten, 59 Sekunden, 999 Millisekunden, 999 Mikrosekunden oder 999 Nanosekunden nicht überschreiten.

Es sei einmal dahingestellt, ob jemals eine Zeit von bis zu rund 292 Jahren benötigt wird, die Zeitbereiche Mikrosekunden oder Nanosekunden dürften für den einen oder anderen Anwendungsfall möglicherweise ebenso von Interesse sein wie der LTIME-Bereich über 24 Tage. Als Beispiel dafür sei hier nur ein Betriebsstundenzähler genannt. Notwendig ist der riesige Zeitbereich nicht unbedingt, da längere Zeiten durchaus noch anders realisiert werden können. Der Operand LTIME 64-Bit ist, zumindest im Moment, nur mit S7-1500 CPUs möglich.

S5-Timer

Parameter

Die nachfolgenden Tabellen zeigen (fast) alle Parameter, die bei einer S5-Zeit programmiert werden können. Nur in AWL gibt es noch einen weiteren Parameter:
Zeit freigeben (FR).

* Anzahl Timer ist CPU abhängig
Parameter: <Zeit_nr> *
Deklaration: EinAus/Eingang
Datentyp: Timer
Funktion: Zeit der Anweisung
* (Dualcodiert)
Parameter: DUAL
Deklaration: Ausgang
Datentyp: Word
Funktion: Aktueller Zeitwert *
* (BCD-Format)
Parameter: DEZ
Deklaration: Ausgang
Datentyp: Word
Funktion: Aktueller Zeitwert *
Parameter: Q
Deklaration: Ausgang
Datentyp: BOOL
Funktion: Status der Zeit
Parameter: S
Deklaration: Eingang
Datentyp: BOOL
Funktion: Starteingang
Parameter: R
Deklaration: Eingang
Datentyp: BOOL
Funktion: Rücksetzeingang
Parameter: TW
Deklaration: Eingang
Datentyp: S5TIME,WORD
Funktion: Zeitdauer

Einschaltverzögerung

Einschaltverzögerung
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Der Ausgang Q führt nach den Starten erst dann Signalzustand „1“, wenn die programmierte Zeit abgelaufen ist. Das Einschalten von Starteingang S bewirkt nach Ablauf der programmierten Zeitdauer TW das Einschalten des Ausgangs Q.

Der Ausgang Q wird zurück auf „0“ gesetzt, wenn der Starteingang S ausgeschaltet wird oder am Rücksetzeingang R ein „1“- Signal ansteht. Der Ausgang Q wird nicht eingeschaltet, falls noch während die Zeit läuft der Starteingang ausgeschaltet wird oder am Rücksetzeingang Signalzustand „1“ anliegt.


Speichernde Einschaltverzögerung

Speichernde Einschaltverzögerung
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Der Ausgang Q führt nach den Starten erst dann Signalzustand „1“, wenn die programmierte Zeit abgelaufen ist. Der Starteingang S benötigt nach dem Einschalten kein „1“- Signal mehr, kann also ausgeschaltet werden.

Der Ausgang Q wird nur dann zurück auf „0“ gesetzt, wenn am Rücksetzeingang R ein „1“- Signal ansteht. Solange die Zeit läuft, bewirkt ein Aus- und erneutes Einschalten des Starteingangs S einen Neustart der Zeitfunktion.


Ausschaltverzögerung

Ausschaltverzögerung
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Der Ausgang Q führt nach einem Signalwechsel (positive Flanke) am Starteingang S den Signalzustand „1“. Wird der Starteingang ausgeschaltet, führt der Ausgang Q noch solange Signalzustand „1“ bis die programmierte Zeit abgelaufen ist.

Der Ausgang Q wird auch zurück auf „0“ gesetzt, wenn am Rücksetzeingang R ein „1“- Signal ansteht. Solange die Zeit läuft, bewirkt ein Aus- und erneutes Einschalten des Starteingangs S ein Anhalten der bereits abgelaufenden Zeit und erst beim nächsten Ausschalten des Starteingangs wird die Zeit neu gestartet. Liegt sowohl am Starteingang S als auch am Rücksetzeingang R ein „1“- Signal an, wird der Ausgang Q erst gesetzt, wenn am dominanten Rücksetzeingang R ein „0“- Signal anliegt.


Impuls

Impuls
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Ein Signalwechsel (positive Flanke) am Starteingang S startet die programmierte Zeit. Solange der Signalzustand am Eingang S „1“ ist führt Ausgang Q ebenfalls Signalzustand „1“. Liegt „0“- Signal am Eingang S an wird die Zeit angehalten und Ausgang Q wird ebenfalls zurück auf „0“ gesetzt.

Wenn die Zeit läuft und der Signalzustand am Rücksetzeingang R wechselt von „0“ auf „1“, wird der aktuelle Zeitwert auf Null gesetzt und Ausgang Q führt wieder Signalzustand „0“. Läuft die Zeit nicht, hat Signalzustand „1“ am Rücksetzeingang R keine Auswirkung.


Verlängerter Impuls

Ausschaltverzögerung
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Der Ausgang Q führt nach einem Signalwechsel (positive Flanke) am Starteingang S den Signalzustand „1“. Wird der Starteingang ausgeschaltet, führt der Ausgang Q noch solange Signalzustand „1“ bis die programmierte Zeit abgelaufen ist.

Wenn die Zeit läuft und der Signalzustand am Rücksetzeingang R wechselt von „0“ auf „1“ ist es so wie bei der Zeit als Impuls. Der aktuelle Zeitwert wird auf Null gesetzt und Ausgang Q führt wieder den Signalzustand „0“. Läuft die Zeit nicht, hat ein Signalzustand „1“ am Rücksetzeingang R keinerlei Auswirkungen.

IEC-Timer

Parameter

Parameter: IN
Deklaration: Eingang
Datentyp: BOOL
Funktion: Starteingang
* Der Wert muss positiv sein
Parameter: PT *
Deklaration: Eingang
Datentyp: TIME
Funktion: Zeitdauer
Parameter: Q
Deklaration: Ausgang
Datentyp: BOOL
Funktion: Status der Zeit
Parameter: ET
Deklaration: Ausgang
Datentyp: TIME
Funktion: Aktueller Zeitwert

Einschaltverzögerung

IEC-Einschaltverzögerung
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Der Ausgang Q führt nach den Starten erst dann Signalzustand „1“, wenn die programmierte Zeit abgelaufen ist. Der Timer wird mit Signalwechsel (positive Signalflanke) am Starteingang IN gestartet. Ausgang Q wird zurückgesetzt, wenn der Signalzustand am Starteingang IN von „1“ auf „0“ wechselt.

Am Ausgang ET kann der aktuelle Zeitwert abgefragt werden. Der Wert beginnt bei T#0s und endet mit dem Erreichen des Wertes der programmierten Zeitdauer PT. Der Ausgang ET wird zurückgesetzt, wenn der Signalzustand am Starteingang IN von „1“ auf „0“ wechselt.

Beim Programmieren eines IEC-Timer erstellt Step 7 bzw. TIA-Portal automatisch einen Datenbaustein (DB), wahlweise ein Instanz- oder Multi-Instanz-DB. Die nächste freie, nicht genutzte DB-Nummer wird von Step 7/TIA-Portal vorgeschlagen. Die Nummer kann aber auch manuell frei gewählt werden. Im Beispiel hier ist es der DB1. Anstelle %DB1 wird in der Regel ein symbolischer Name vergeben. Ein Blick auf das Eigenschaftsfenster von Timer %DB1 erklärt den Zusammenhang: DB1 ist der Instanz-DB von SFB4.

IEC-Einschaltverzögerung
Eigenschaftsfenster von Timer „%DB0“

TON_SFB[SFB4] ist ein System Function Block, ein in der Firmware der CPU eingebetteter Funktionsbaustein (FB), in dem alle Funktionen der Einschaltverzögerung enthalten sind. Ein Timer ist also „nur“ der Aufruf eines FB's.

Signalzustandsdiagramm
Deklarationstabelle Instanz-Datenbaustein DB1

Der Aufruf eines Funktionsbausteins (FB) wird als Instanz bezeichnet. Im Beispiel wird dem Funktionsbaustein SFB4, der IEC-Einschaltverzögerung, ein eigener Instanz-DB, der DB1 zugeordnet. Diese Zuordnung wird als Einzelinstanz bezeichnet. Vorteilhaft ist die Wiederverwendbarkeit der Funktionsbausteine und die gute Strukturmöglichkeit für einfache Programme.
Die Daten, mit denen die Instanz arbeitet, werden in dem Instanz-Datenbaustein gespeichert. Die Struktur des Instanz-DBs wird von der Schnittstelle des dazugehörigen FB bestimmt. Die Deklarationstabelle zeigt die Bausteinparameter mit den Abschnitten Input, Output und InOut. Statische Lokaldaten im Abschnitt Static dienen zum dauerhaften Speichern von Zwischenergebnissen über den aktuellen Programmzyklus hinaus. Der Offset bestimmt den Versatz der Bit- oder Byte-Adresse für die Parameter innerhalb des Datenbausteins. Es beginnt bei Bitadresse 0.0 für den Parameter „IN“ und Bitadresse 2.0 für Parameter „PT“. Für Parameter „PT“ sind 4 Byte (Bit 2.0 bis 5.7) festgelegt wie auch für Parameter „ET“ (Bit 8.0 bis 11.7). Die jeweiligen Anfangsadressen werden beim Anlegen automatisch von Step 7/TIA-Portal vergeben.


Ausschaltverzögerung

IEC-Auschaltverzögerung
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Ausgang Q wird gesetzt, wenn das Signal am Starteingang IN von „0“ auf „1“ wechselt. Wechselt der Signalzustand am Starteingang IN von „1“ auf „0“, läuft die programmierte Zeit PT ab. Ausgang Q bleibt noch solange „1“, solange die Zeitdauer PT läuft.

Wechselt der Signalzustand am Starteingang IN wieder von „0“ auf „1“ , bevor die programmierte Zeit PT abgelaufen ist, wird die Zeit zurückgesetzt. Der Signalzustand am Ausgang Q bleibt weiterhin logisch „1“.
Die aufgerufene Instanz für die Ausschaltverzögerung ist der SFB5 (TOF_SFB). Die Deklarationstabelle des Instanz-DB ist gleich der Einschaltverzögerung.


Impuls erzeugen

IEC-Impuls erzeugen
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Der Ausgang Q führt nach Signalwechsel von „0“ auf „1“ am Starteingang IN sofort Signalzustand „1“ und bleibt für die Zeitdauer PT gesetzt, unabhängigt von einem Signalwechsel am Starteingang IN. Der aufgerufene Funktionsbaustein ist der SFB3 (TP_SFB).

Taktmerker

In jeder Firmware einer S7-CPU sind Taktgeber mit unterschiedlichen Frequenzen eingebettet. Im Prinzip sind dies astabile Kippschaltungen mit jeweils einer bestimmten Frequenz. Innerhalb der Eigenschaften einer CPU kann ein Merkerbyte für die Auswertung der Frequenzen zugeordnet werden. Diese Taktgeber werden für unterschiedliche Kontroll-, Überwachungs- und Steuerungsaufgaben eingesetzt, in der Praxis z.B. als Blinkfrequenz für Betriebs- oder Störmeldungen.

Ein beliebiges Merkerbyte der CPU wird durch Parametrierung zum Taktmerkerbyte. Ein Taktmerker ändert seinen binären Wert periodisch. Das gewählte Merkerbyte kann nicht mehr für andere Zwecke verwendet werden.

Jedem Bit des Taktmerkerbytes ist eine Periodendauer bzw. Frequenz zugeordnet.
Bit: 7 6 5 4 3 2 1 0
Periodendauer (s) 2 1,6 1 0,8 0,5 0,4 0,2 0,1
Frequenz (Hz) 0,5 0,625 1 1,25 2 2,5 5 10
Einstellung Taktmerker
Taktmerker parametrieren (z.B. MB100)