Step 7 Adressbereich Date an Time

Frozen19

Level-2
Beiträge
66
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

Ich möchte mit den SFC1 die CPU Zeit auslesen und diese auf einzelne DB Variablen schreiben. Also Sekunden, Minuten, stunden, tag, Monat, Jahr alles auf eine DB Variable.
Dazu brauche ich den Addressbereich auf welches bit/byte dies adressiert ist. Weiß jemand wie das adressiert wird?

LG
Frozen
 
Du könntest Dir in der Step7-Hilfe den Aufbau des Datentyps DATE_AND_TIME anschauen, da steht genau, was auf welchem Byte gespeichert ist.

PS: Mit der Forumssuche findest Du hier auch komplette Programmbeispiele. (suche mal bitte selber, vom Handy verlinkt es sich schlecht)

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald!

Also ich habe das Step7-Hilfe durchforstet und nichts gefunden nur zum Datentyp Any. Vieleicht kannst du mir etwas verlinken oder das genau Such Kriterium nennen

LG
Frozen
 
In Step7-Hilfe gezielt finden:
- im Simatic Manager gehst Du ins Menü > Hilfe > Hilfethemen
- im Reiter "Index" suchst Du nach "DATE_AND_TIME"
- Doppelklick auf den Eintrag "DATE_AND_TIME"
- Doppelklick auf "Format des Datentyps DATE_AND_TIME ..."

Forumssuche: Suchbegriffe "DATE_AND_TIME sfc1" oder "DATE_AND_TIME stunde minute"
führen Dich z.B. zu Code-Beispielen in SCL oder AWL oder AWL

Vielleicht interessieren Dich auch noch diese Beiträge aus dem Siemens Support:
Welche Funktionen stehen jeweils in STEP 7 V5.5 und im TIA Portal für die Bearbeitung der Datentypen DT und DTL zur Verfügung?
Wie kann mit Hilfe der IEC-Funktionen das Datum und die Uhrzeit der CPU gelesen und eingegeben werden?
Toolsammlung zur Konvertierung von Datentypen, mit DT_TO_STRING

Harald
 
Hallo Harald!

Danke für deine rasche Antwort! Ich habe lediglich die unterstriche vergessen beim Suchen und deshalb nichts gefunden. Ich habe nun folgenden CODE programmiert hierbei habe ich Probleme mit dem Auslesen der Jahreszahl (NW4) wenn ich LB1 oder LB2 lade und es auf dem DB Transferiere zeigt es mir nur die hinter Stelle des Jahres an also 16. Wie bekomme ich es hin das er mir 2016 auf den DB schreibt?

LG
Frozen

Code:
NW1: Bausteinaufruf SFC1
CALL  "READ_CLK"
RET_VAL:=#Temp_Fehler
CDT    :=#Temp_Zeit_Datum
NOP   0


NW2: Herausfiltern des aktuellen Tags
L     LB     4
BTI   
T     DB100.DBW28
 
NW3: Herausfiltern der aktuellen Monats
L     LB     3
BTI   
T     DB100.DBW30
 
NW4: Herausfiltern der aktuellen Jahrs
L     LB     2
BTI   
T     DB100.DBW32
 
NW5: Herausfiltern der aktuellen Stunde
L     LB     5
BTI   
T     DB100.DBW34
 
NW6: Herausfiltern der aktuellen Minute
L     LB     6
BTI   
T     DB100.DBW36
 
NW7: Herausfiltern der aktuellen Sekunde
L     LB     7
BTI   
T     DB100.DBW38
 
Hallo Larry

Danke für deinen Verbesserungsvorschlag
Wäre der CODE

Code:
L     LB     2                          
BTI                              
T     MW    80                  
L     90                         
L     MW    80                   
<I                               
SPBN  sp1
L     1990
+I                               
 
sp1:  L     2000
+I   
T     DB100.DBW32
So richtig?

Frage: kann aus dem Date an Time Format nur die Letzten zwei stellen des Jahres ausgelesen werden?

LG
Frozen
 
Zurück
Oben