TIA Portal Anweisungen

Datum und Uhrzeit
Zeitliche Logik

Meistern Sie die Uhr Ihrer PLC. Von präzisen Ereignis-Zeitstempeln bis hin zu komplexen Zeitberechnungen und Formatkonvertierungen, kontrollieren Sie jede Millisekunde.

Warum Zeit in einer PLC verwalten?

Zeitmanagement ist entscheidend für die industrielle Automatisierung. Es ermöglicht die präzise Protokollierung von Produktionsereignissen, das Auslösen geplanter Wartungsaufgaben, die Berechnung von Maschinenzykluszeiten und die Synchronisierung verteilter Systeme über NTP-Protokolle.

Moderne Siemens PLCs bieten fortschrittliche Datentypen wie DTL (Date and Time Long), die direkten Zugriff auf einzelne Komponenten (Jahr, Monat, Tag, Stunde) ohne komplexe Bitmanipulation ermöglichen, was die Programmierung im Vergleich zu älteren DT-Formaten erheblich vereinfacht.

Zeit lesen

Zugriff auf System- und Lokaluhren

T_CONV — Systemzeit-Extraktion

T_CONV

Was es tut

Extrahiert spezifische Komponenten aus einem Datum/Zeit-Wert oder konvertiert zwischen Formaten. Es ist essenziell, um lesbare Stunden/Minuten aus einem rohen Zeitstempel zu erhalten.

Wann man es verwendet

Wenn Sie nur die Uhrzeit auf einem HMI aus einem vollständigen DATE_AND_TIME-Tag anzeigen müssen.

Profi-Tipps

Verwenden Sie T_CONV, um eine TOD (Time_Of_Day) in einen String für einfaches Logging zu konvertieren.

Stellen Sie sicher, dass Eingangs- und Ausgangstypen kompatibel sind, um Überlauffehler zu vermeiden.

In SCL wird diese Anweisung oft implizit durch einfache Zuweisungen behandelt.

RD_SYS_T — Systemzeit lesen

RD_SYS_T

Was es tut

Liest die aktuelle Systemzeit der CPU (UTC). Im Gegensatz zu RD_LOC_T enthält sie keine Sommerzeit- oder Zeitzonen-Offsets.

Wann man es verwendet

Ideal für internes Logging, bei dem eine kontinuierliche, nicht springende Zeitreferenz erforderlich ist (vermeidet Probleme bei Sommerzeitumstellungen).

Profi-Tipps

Verwenden Sie immer UTC für die Speicherung in Datenbanken, um globale Konsistenz zu gewährleisten.

Der RET_VAL-Ausgang liefert Statusinformationen (z. B. ob die Uhr synchronisiert ist).

Kombinieren Sie es mit RD_LOC_T, wenn Sie sowohl die 'technische' als auch die 'menschliche' Zeit anzeigen müssen.

Arithmetik

Berechnungen an Zeitdauern und Zeitstempeln

T_ADD — Zeit addieren

T_ADD

Was es tut

Addiert eine Dauer (Time oder LTime) zu einem bestimmten Datum/Zeit-Punkt. Es verarbeitet Überläufe von Minuten, Stunden und Tagen korrekt.

Wann man es verwendet

Berechnung einer Ablaufzeit oder eines geplanten Neustartpunkts (z. B. aktuelle Zeit + 24 Stunden).

Profi-Tipps

Sehr nützlich für die Implementierung benutzerdefinierter Watchdogs mit dynamischen Laufzeiten.

Verwenden Sie LTime-Typen für Nanosekunden-Präzision auf S7-1500 CPUs.

Wenn das Ergebnis das maximale Datum (Jahr 2262) überschreitet, setzt die CPU einen Fehlerstatus.

T_DIFF — Zeitdifferenz

T_DIFF

Was es tut

Berechnet die Differenz zwischen zwei Zeitstempeln und gibt das Ergebnis als Dauer (Time oder LTime) zurück.

Wann man es verwendet

Messung der exakten Dauer eines Prozessschritts oder Berechnung der Uptime einer Maschine.

Profi-Tipps

Perfekt für OEE-Berechnungen (Overall Equipment Effectiveness).

Subtrahieren eines größeren Datums von einem kleineren gibt einen negativen Time-Wert zurück.

Auf S7-1200/1500 verwenden Sie DTL-Tags für einen einfacheren Zugriff auf die Differenzkomponenten.

Konvertierung

Formatänderungen und String-Verarbeitung

T_CONV — DT zu DTL Konvertierung

T_CONV

Was es tut

Konvertiert klassische DATE_AND_TIME (8 Bytes) in das moderne DTL-Format oder umgekehrt.

Wann man es verwendet

Bei der Schnittstellenbildung von Legacy-Code oder Kommunikationsbausteinen mit neuer S7-1500 optimierter Logik.

Profi-Tipps

Bevorzugen Sie DTL für alle neuen Projekte, um die BCD-Komplexität (Binary Coded Decimal) zu vermeiden.

Die Konvertierung in DTL ermöglicht es Ihnen, 'MyTag.MONTH' direkt in Ihrem Code zu schreiben.

Seien Sie vorsichtig mit der Millisekunden-Präzision, die in einigen Formaten abgeschnitten werden kann.

DT_TO_STRING — Zeit serialisieren

DT_TO_STR

Was es tut

Konvertiert einen Datum/Zeit-Wert in ein lesbares String-Format. STRING_TO_DT führt die Umkehrung durch.

Wann man es verwendet

Senden von Zeitstempeln an eine CSV-Datei auf einer Speicherkarte oder Kommunikation mit einer Web-API.

Profi-Tipps

Der Ausgangs-String folgt dem ISO 8601 Format (YYYY-MM-DD-HH:MM:SS.ms).

Verwenden Sie STRING_TO_DT, um Daten zu parsen, die von einer externen SQL-Datenbank empfangen wurden.

Beachten Sie, dass String-Operationen CPU-intensiver sind; verwenden Sie sie sparsam in schnellen Schleifen.

DATE_AND_TIME vs DTL

Die richtige Zeitstruktur wählen

MerkmalDATE_AND_TIME (Legacy)DTL (Modern)
Größe8 Bytes12 Bytes
KodierungBCD (Komplex zu lesen)Ganzzahlen (Direkt lesbar)
KomponentenzugriffErfordert BitmaskierungStrukturell (Tag.Month)
Bereich1990 bis 20891970 bis 2262
S7-1200/1500 UnterstützungNur KompatibilitätNativ & Empfohlen
Präzision10 ms1 Nanosekunde

Häufig gestellte Fragen

Was ist der Unterschied zwischen Systemzeit und Lokalzeit?

Die Systemzeit (RD_SYS_T) ist immer UTC und bietet eine stabile Referenz. Die Lokalzeit (RD_LOC_T) passt sich an Ihre spezifische Zeitzone und die in den CPU-Eigenschaften konfigurierten Sommerzeitregeln (DST) an.

Wie synchronisiert man die PLC-Uhr mit einem Server?

Aktivieren Sie NTP (Network Time Protocol) in der CPU-Hardwarekonfiguration. Geben Sie die IP Ihres Zeitservers an, und die PLC wird ihre interne Uhr automatisch anpassen.

Warum zeigt mein DATE_AND_TIME seltsame Werte in Hex an?

Legacy DT verwendet BCD-Kodierung. Ein Wert von 25 in Dezimal wird als 16#25 in BCD gespeichert. Verwenden Sie immer Konvertierungsanweisungen oder DTL, um Werte korrekt zu lesen.

Kann ich die Differenz zwischen zwei DTL-Tags direkt berechnen?

In SCL können Sie einfach den '-'-Operator zwischen zwei DTL-Tags verwenden. TIA Portal wird automatisch die T_DIFF-Anweisung für Sie aufrufen.

Automatisieren Sie Ihr Zeitmanagement

Müssen Sie Produktionsberichte mit präzisen Zeitstempeln erstellen oder 50 PLCs synchronisieren? T-IA Connect automatisiert die Generierung zeitlicher Logik.