TIA Portal Instruktioner

Datum och tid
Temporal logik

Bemästra din PLC:s klocka. Från exakt händelsetidsstämpling till komplexa tidsberäkningar och formatkonverteringar, kontrollera varje millisekund.

Varför hantera tid i en PLC?

Tidshantering är avgörande för industriell automation. Det möjliggör exakt loggning av produktionshändelser, utlösning av schemalagda underhållsuppgifter, beräkning av maskincyklustider och synkronisering av distribuerade system via NTP-protokoll.

Moderna Siemens PLC:er erbjuder avancerade datatyper som DTL (Date and Time Long) vilket ger direkt åtkomst till enskilda komponenter (år, månad, dag, timme) utan komplex bitmanipulation, vilket förenklar programmeringen avsevärt jämfört med äldre DT-format.

Läsa tid

Åtkomst till system- och lokalklockor

T_CONV — Extraktion av systemtid

T_CONV

Vad den gör

Extraherar specifika komponenter från ett datum/tidsvärde eller konverterar mellan format. Det är nödvändigt för att få läsbara timmar/minuter från en rå tidsstämpel.

När den ska användas

När du behöver visa endast tiden på ett HMI från en komplett Date_And_Time-tagg.

Proffstips

Använd T_CONV för att konvertera en TOD (Time_Of_Day) till en String för enkel loggning.

Se till att indata- och utdatatyperna är kompatibla för att undvika spillfel.

I SCL hanteras denna instruktion ofta implicit genom enkla tilldelningar.

RD_SYS_T — Läs systemtid

RD_SYS_T

Vad den gör

Läser den aktuella systemtiden för CPU (UTC). Till skillnad från RD_LOC_T inkluderar den inte sommartid eller tidszonsförskjutningar.

När den ska användas

Idealisk för intern loggning där en kontinuerlig tidsreferens utan hopp krävs (undviker problem vid ändringar av sommartid).

Proffstips

Använd alltid UTC för databaslagring för att säkerställa global konsekvens.

RET_VAL-utgången ger statusinformation (t.ex. om klockan är synkroniserad).

Kombinera med RD_LOC_T om du behöver visa både 'teknisk' och 'mänsklig' tid.

Aritmetik

Beräkningar på varaktigheter och tidsstämplar

T_ADD — Addera tid

T_ADD

Vad den gör

Adderar en varaktighet (Time eller LTime) till en specifik datum/tidpunkt. Den hanterar korrekt spill av minuter, timmar och dagar.

När den ska användas

Beräkna en utgångstid eller en schemalagd återstartspunkt (t.ex. aktuell tid + 24 timmar).

Proffstips

Mycket användbart för att implementera anpassade watchdogs med dynamiska varaktigheter.

Använd LTime-typer för nanosekundprecision på S7-1500 CPU:er.

Om resultatet överskrider det maximala datumet (år 2262), sätter CPU:n en felstatus.

T_DIFF — Tidsskillnad

T_DIFF

Vad den gör

Beräknar skillnaden mellan två tidsstämplar och returnerar resultatet som en varaktighet (Time eller LTime).

När den ska användas

Mäta den exakta varaktigheten av ett processteg eller beräkna drifttiden för en maskin.

Proffstips

Perfekt för OEE-beräkningar (Overall Equipment Effectiveness).

Att subtrahera ett större datum från ett mindre returnerar ett negativt Time-värde.

På S7-1200/1500, använd DTL-taggar för enklare åtkomst till skillnadskomponenterna.

Konvertering

Formatändringar och String-hantering

T_CONV — DT till DTL konvertering

T_CONV

Vad den gör

Konverterar äldre DATE_AND_TIME (8 byte) till det moderna DTL-formatet eller vice versa.

När den ska användas

Vid gränssnitt mot äldre kod eller kommunikationsblock med ny S7-1500-optimerad logik.

Proffstips

Föredra DTL för alla nya projekt för att undvika BCD-komplexitet (Binary Coded Decimal).

Konvertering till DTL gör att du kan skriva 'MyTag.MONTH' direkt i din kod.

Var försiktig med millisekundprecision som kan trunkeras i vissa format.

DT_TO_STRING — Serialisering av tid

DT_TO_STR

Vad den gör

Konverterar ett datum/tidsvärde till ett läsbart String-format. STRING_TO_DT gör det omvända.

När den ska användas

Skicka tidsstämplar till en CSV-fil på ett minneskort eller kommunicera med ett webb-API.

Proffstips

Utdatasträngen följer ISO 8601-formatet (YYYY-MM-DD-HH:MM:SS.ms).

Använd STRING_TO_DT för att tolka datum som tas emot från en extern SQL-databas.

Observera att String-operationer är mer CPU-intensiva; använd dem sparsamt i snabba loopar.

DATE_AND_TIME mot DTL

Välja rätt temporal struktur

FunktionDATE_AND_TIME (Äldre)DTL (Modern)
Storlek8 byte12 byte
KodningBCD (Komplex att läsa)Heltal (Direkt läsbara)
KomponentåtkomstKräver bitmaskeringStrukturell (Tag.Month)
Omfång1990 till 20891970 till 2262
S7-1200/1500-stödEndast kompatibilitetInbyggd & Rekommenderad
Precision10 ms1 nanosekund

Vanliga frågor

Vad är skillnaden mellan systemtid och lokaltid?

Systemtid (RD_SYS_T) är alltid UTC, vilket ger en stabil referens. Lokaltid (RD_LOC_T) anpassas efter din specifika tidszon och reglerna för sommartid (DST) som konfigurerats i CPU-egenskaperna.

Hur synkroniserar man PLC-klockan med en server?

Aktivera NTP (Network Time Protocol) i CPU:ns hårdvarukonfiguration. Ange IP-adressen till din tidsserver, så justerar PLC:n automatiskt sin interna klocka.

Varför visar min DATE_AND_TIME konstiga värden i Hex?

Äldre DT använder BCD-kodning. Ett värde på 25 i decimalform lagras som 16#25 i BCD. Använd alltid konverteringsinstruktioner eller DTL för att läsa värden korrekt.

Kan jag beräkna skillnaden mellan två DTL taggar direkt?

I SCL kan du helt enkelt använda '-'-operatorn mellan två DTL-taggar. TIA Portal anropar automatiskt T_DIFF-instruktionen åt dig.

Automatisera din tidshantering

Behöver du generera produktionsrapporter med exakta tidsstämplar eller synkronisera 50 PLC:er? T-IA Connect automatiserar generering av temporal logik.