TIA Systemzeit in einzelne Bytes schieben

Chrisxx8

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Software Tia Professionel V12 SP1

Ich bin neu in der programmierung, und wollte mal fragen wie ich meine Systemzeit in einzelne Bytes wandeln kann.
Bisher habe ich mir einen FB erstellen wo ich die Systemzeit auslese (RD_SYST_T), diese ist nun in eine DT Variable abgespeichert.
Mit dieser variable gehe ich nun auf einen (T_CONV) und wandle die DT Variable in eine (DATE) Variable und (TIME_OF_DAY) Variable um.
Ich möchte nun das Datum in Bytes schieben:

2014 soll als Ganzzahl im Byte1 stehen
07 soll als Ganzzahl im Byte2 stehen
10 soll als Ganzzahl im Byte3 stehen
(Datum heute)

Das gleiche soll mit der Uhrzeit passieren.


Was ich schon geschaft habe:
Ich habe über den Instanz DB von meinen neu erstellen FB auf die einzelnen Bytes der DT Variable zugegriffen, und hatte somit den effekt wie wie oben beschieben (alle Daten und Zeiten in jeweils einzelne Bytes) allerdings wurden diese in Hex angezeigt, was mir nicht viel bringt.
Und finde diese Variante nicht so sauber.
hätte lieber einen FB wo ich 6 einzelne Bytes als Ausgang bekommte , wo der Wert als Ganzzahl hinterlegt ist.

So.. und nun bräuchte ich ein wenig hilfe ;)

Mfg Christian
 
Zuviel Werbung?
-> Hier kostenlos registrieren
allerdings wurden diese in Hex angezeigt, was mir nicht viel bringt.
Na, dann schau sie Dir doch einfach in Dezimal an ... ;)

Ich schätze aber daß Du was anderes meinst:
Vermutlich erhältst Du die einzelnen Datumsteile in den Bytes als binär codierte Dezimalzahl - Du müßtest diese dann von BCD nach Dezimal umwandeln.
Wenn Du uns den Typ Deiner CPU verrätst, dann könnte man Dir sogar verraten wie das bei Deiner CPU geht.

Wie können Sie in STEP 7 (TIA Portal) das Datum und die Uhrzeit für die CPU-Baugruppen der S7-300/S7-400/S7-1200/S7-1500 eingeben, lesen und weiter verarbeiten?
Wie erfolgt im TIA Portal die Umwandlung von Datentypen für die S7-1200/1500?
SIMATIC S7-300/400/1200/1500 Vergleichsliste Programmiersprachen


hätte lieber einen FB wo ich 6 einzelne Bytes als Ausgang bekommte , wo der Wert als Ganzzahl hinterlegt ist.
Kennt Deine CPU denn ein 8-Bit-Ganzzahlformat? Sonst bekommst Du den Inhalt der Ausgangsbytes blos wieder in hex angezeigt ;) und kannst vermutlich auch nicht mit den Werten rechnen ... als Datentyp wäre INT, UINT USINT... möglicherweise besser geeignet.

Harald
 
Hallo,

wenn es eine S7-1200 oder eine S7-1500 CPU ist, kann mann Datum und Uhrzeit auch im Format DTL auslesen. Da sind die einzelnen Daten bereits in einer Struktur hinterlegt.

Viele Grüße
Klaus
 
Zurück
Oben