Die Zeiten der SPS

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 Steuerungs­familie 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 Steuerungs­familie 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 begrenzt ist. Die Anzahl IEC-Timer ist dagegen nur durch die Speicher­größe der SPS begrenzt. Ein weiterer, wesentlicher Unterschied ist die Ein­schränkung hinsichtlich Zeitdauer und Auflösung.

Timer-Arten

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.

Zeitbasis Binärcode
Bit 13 Bit 12
10ms 0 0
100ms 0 1
1s 1 0
10s 1 1
Codierung Zeitbasis
15 8 7 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
Das Beispiel zeigt den Inhalt des
Zeitoperanden bei einer Zeitbasis
von 1s und einem Zeitwert von 143
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
Werte die 2 h 46 m 30s überschreiten
werden nicht akzeptiert.

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 ins­besondere 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 (Datenbaustein­struktur) 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 (Daten­baustein), 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
Beispiel 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 an­zugeben. Gültig ist z.B. T#8h30s oder LT#4d3h. Wenn nur eine Einheit an­gegeben wird, darf der ab­solute Wert von Tagen, Stunden, Minuten usw. die Grenzwerte nicht über­schreiten. Wird mehr als eine Zeiteinheit an­gegeben, darf der Wert die Einheit 24 Tage, 23 Stunden, 59 Minuten, 59 Sekunden oder 999 Milli­sekunden bei TIME und bei LTIME 106751 Tage, 23 Stunden, 59 Minuten, 59 Sekunden, 999 Milli­sekunden, 999 Mikro­sekunden oder 999 Nano­sekunden 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 zei­gen (fast) alle Parameter, die bei einer S5-Zeit pro­gram­miert wer­den können. Nur in AWL gibt es noch einen weiteren Parameter: Zeit freigeben (FR).

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

Einschaltverzögerung
Einschaltverzögerung
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

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

Der Ausgang Q wird zurück auf „0“ gesetzt, wenn der Starteingang S ausgeschaltet wird oder am Rück­setz­eingang R ein „1“- Signal ansteht. Der Ausgang Q wird nicht ein­geschaltet, falls noch während die Zeit läuft der Start­eingang aus­geschaltet wird oder am Rück­setz­eingang Signal­zustand „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 pro­gram­mierte Zeit abgelaufen ist. Der Start­eingang S benötigt nach dem Ein­schalten kein „1“- Signal mehr, kann also aus­geschaltet werden.

Der Ausgang Q wird nur dann zurück auf „0“ gesetzt, wenn am Rück­setz­eingang R ein „1“- Signal ansteht. Solange die Zeit läuft, bewirkt ein Aus- und erneutes Ein­schalten des Start­eingangs S einen Neu­start der Zeit­funktion.

Ausschaltverzögerung
Ausschaltverzögerung
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Der Ausgang Q führt nach einem Signal­wechsel (positive Flanke) am Start­eingang S den Signal­zustand „1“. Wird der Start­eingang aus­geschaltet, führt der Aus­gang Q noch solange Signal­zustand „1“ bis die pro­gram­mierte Zeit abgelaufen ist.

Der Ausgang Q wird auch zurück auf „0“ gesetzt, wenn am Rück­setz­eingang R ein „1“- Signal ansteht. Solange die Zeit läuft, bewirkt ein Aus- und er­neutes Ein­schalten des Start­eingangs S ein Anhalten der bereits ab­gelaufenden Zeit und erst beim nächsten Aus­schalten des Start­eingangs wird die Zeit neu gestartet. Liegt sowohl am Start­eingang S als auch am Rück­setz­eingang R ein „1“- Signal an, wird der Ausgang Q erst gesetzt, wenn am dominanten Rück­setz­eingang R ein „0“- Signal anliegt.

Impuls
Impuls
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Ein Signal­wechsel (positive Flanke) am Start­eingang S startet die pro­grammierte Zeit. So­lange der Signal­zustand am Ein­gang S „1“ ist führt Aus­gang Q eben­falls Signal­zustand „1“. Liegt „0“- Signal am Ein­gang S an wird die Zeit an­gehalten und Aus­gang Q wird eben­falls zu­rück auf „0“ gesetzt.

Wenn die Zeit läuft und der Signal­zustand am Rück­setz­eingang R wechselt von „0“ auf „1“, wird der aktuelle Zeit­wert auf Null gesetzt und Aus­gang Q führt wieder Signal­zustand „0“. Läuft die Zeit nicht, hat Signal­zustand „1“ am Rück­setz­eingang R keine Aus­wirkung.

Verlängerter Impuls
Ausschaltverzögerung
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Der Ausgang Q führt nach einem Signal­wechsel (positive Flanke) am Start­eingang S den Signal­zustand „1“. Wird der Start­eingang aus­geschaltet, führt der Aus­gang Q noch solange Signal­zustand „1“ bis die pro­gram­mierte Zeit abgelaufen ist.

Wenn die Zeit läuft und der Signal­zustand am Rück­setz­eingang R wechselt von „0“ auf „1“ ist es so wie bei der Zeit als Impuls. Der aktuelle Zeit­wert wird auf Null gesetzt und Aus­gang Q führt wieder den Signal­zustand „0“. Läuft die Zeit nicht, hat ein Signal­zustand „1“ am Rück­setz­eingang R keinerlei Aus­wirkungen.

IEC-Timer
Parameter
Parameter: IN
Deklaration: Eingang
Datentyp: BOOL
Speicherbereich: E,A,M,D,L,T,Z
Funktion: Starteingang
Parameter: PT **
Deklaration: Eingang
Datentyp: TIME
Speicherbereich: E,A,M,D,L,P
Funktion: Zeitdauer
** Der Wert muss positiv sein
Parameter: Q
Deklaration: Ausgang
Datentyp: BOOL
Speicherbereich: E,A,M,D,L
Funktion: Status der Zeit
Parameter: ET
Deklaration: Ausgang
Datentyp: TIME
Speicherbereich: E,A,M,D,L
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 pro­gram­mierte Zeit ab­gelaufen ist. Der Timer wird mit Signalwechsel (positive Signal­flanke) am Start­eingang IN gestartet. Aus­gang Q wird zurück­gesetzt, wenn der Signal­zustand am Start­eingang IN von „1“ auf „0“ wechselt.

Am Ausgang ET kann der aktuelle Zeit­wert ab­gefragt werden. Der Wert beginnt bei T#0s und endet mit dem Er­reichen des Wertes der pro­grammierten Zeit­dauer PT. Der Ausgang ET wird zurück­gesetzt, wenn der Signal­zustand am Start­eingang IN von „1“ auf „0“ wechselt.

Beim Programmieren eines IEC-Timer erstellt Step 7 bzw. TIA-Portal auto­matisch einen Daten­baustein (DB), wahl­weise ein Instanz- oder Multi-Instanz-DB. Die nächste freie, nicht genutzte DB-Nummer wird von Step 7/TIA-Portal vor­geschlagen. Die Nummer kann aber auch manuell frei gewählt werden. Im Bei­spiel hier ist es der DB1. An­stelle %DB1 wird in der Regel ein sym­bolischer Name vergeben. Ein Blick auf das Eigen­schafts­fenster von Timer %DB1 erklärt den Zu­sam­men­hang: 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 Firm­ware der CPU ein­gebetteter Funk­tions­bau­stein (FB), in dem alle Funk­tionen der Eins­chalt­ver­zögerung ent­halten sind. Ein Timer ist also „nur“ der Aufruf eines FBs.

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. Vor­teilhaft ist die Wieder­verwendbarkeit der Funktions­bausteine und die gute Strukturmöglichkeit für einfache Programme.
Die Daten, mit denen die Instanz arbeitet, werden in dem Instanz-Daten­baustein gespeichert. Die Struktur des Instanz-DBs wird von der Schnitt­stelle des dazu­gehörigen FB bestimmt. Die Deklarations­tabelle zeigt die Baustein­parameter mit den Ab­schnitten Input, Output und InOut. Statische Lokal­daten im Abschnitt Static dienen zum dauer­haften Speichern von Zwischen­ergebnissen über den aktuellen Programm­zyklus hinaus. Der Offset bestimmt den Versatz der Bit- oder Byte-Adresse für die Para­meter inner­halb des Daten­bausteins. Es beginnt bei Bitadresse 0.0 für den Para­meter „IN“ und Bitadresse 2.0 für Parameter „PT“. Für Para­meter „PT“ sind 4 Byte (Bit 2.0 bis 5.7) festgelegt wie auch für Para­meter „ET“ (Bit 8.0 bis 11.7). Die jeweiligen Anfangs­adressen werden beim Anlegen auto­matisch von Step 7/TIA-Portal vergeben.

Ausschaltverzögerung
IEC-Auschaltverzögerung
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Ausgang Q wird gesetzt, wenn das Signal am Start­eingang IN von „0“ auf „1“ wechselt. Wechselt der Signal­zustand am Start­eingang 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ück­gesetzt. Der Signal­zustand am Ausgang Q bleibt weiter­hin logisch „1“.
Die auf­gerufene Instanz für die Aus­schalt­verzögerung ist der SFB5 (TOF_SFB). Die Deklarations­tabelle des Instanz-DB ist gleich der Ein­schalt­verzögerung.

Impuls erzeugen
IEC-Impuls erzeugen
FUP-Darstellung
Signalzustandsdiagramm
Signalzustandsdiagramm

Der Ausgang Q führt nach Signal­wechsel von „0“ auf „1“ am Start­eingang IN sofort Signal­zustand „1“ und bleibt für die Zeitdauer PT gesetzt, unabhängigt von einem Signal­wechsel am Start­eingang IN. Der auf­gerufene Funktions­baustein ist der SFB3 (TP_SFB).

Taktmerker

In jeder Firmware einer S7-CPU sind Takt­geber mit unter­schied­lichen Fre­quenzen ein­gebettet. Im Prinzip sind dies astabile Kipp­schaltungen mit jeweils einer bestimmten Fre­quenz. Inner­halb der Eigen­schaften einer CPU kann ein Merker­byte für die Aus­wertung der Fre­quenzen zu­geordnet werden. Diese Takt­geber werden für unter­schied­liche Kontroll-, Überwachungs- und Steuerungs­aufgaben ein­gesetzt, in der Praxis z.B. als Blink­frequenz für Betriebs- oder Stör­meldungen.

Ein beliebiges Merker­byte der CPU wird durch Para­metrierung zum Takt­merker­byte. Ein Takt­merker ändert seinen binären Wert periodisch. Das ge­wählte Merker­byte kann nicht mehr für andere Zwecke verwendet werden.

Einstellung Taktmerker
Taktmerker parametrieren (z.B. MB100)
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
Jedem Bit des Takt­merker­bytes ist eine Perioden­dauer/Frequenz zu­geordnet.