Umwandeln Format DATE in 3 bytes für Auftragsfach zum OP 7

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
halllo leute,
es geht um uhrzeitübertragung nach stromausfall von einer s7 zu
einem op7,
also ich habe fast das problem schon fast gelöste,
aber wenn ich mit dem SFC1 das Datum +Uhrzeit auslese und mit FC6
das Datum im Format DATE ( 2 Byte) selektiere brauche ich aber
für das Auftragsfach zum OP7 1 byte für Tag + 1 byte für Monat +
1 byte für Jahr,
ich habe schon alles probiert, aber es -furzt- nicht,
vielen Dank im Voraus,
Tom
 
Hallo, die aktuelle Zeit mit SFC1 einlesen und in einen DB ab Datenbyte 0 schreiben.

Format von DATE_AND_TIME
Byte Inhalt Bereich
0 Jahr 1990...2089
1 Monat 01...12
2 Tag 01...31
3 Stunde 00...23
4 Minute 00...59
5 Sekunde 00...59
6 obere 2 Dezimalstellen von ms 00...99
7(High Nibble) untere Dezimalstelle von ms 0...9
7(Low Nibble) Wochentag (1=Sonntag) 1...7

alle Bytes als BCD-Darstellung


Unter der Annahme das das Auftagsfach vom OP ab Byte 86 im DB50 liegt folgendes machen:

1. Uhrzeit stellen

l dbxx.dbb3 // Stunde
t db50.dbb89
l dbxx.dbb4 // Minute
t db50.dbb90
l dbxx.dbb5 // Sekunde
t db50.dbb91
l 14 // Auftrag Uhrzeit stellen
t db50.dbw86

2. warten (OP braucht Zeit zum verarbeiten)

3. Datum stellen

l dbxx.dbb7 // Wochentag und ein Teil der Millisekunden
l B#16F
uw // Millisekunden ausmaskieren
t db50.dbb89
l dbxx. dbb2 // Tag
t db50.dbb90
l dbxx.dbb1 // Monat
t db50.dbb91
l dbbxx.dbb0 // Jahr
t db50.dbb92
l 15 // Auftrag Datum stellen
t db50.dbw86

Es ist wichtig, dass das OP den Wochentag im richtigen Format bekommt, weil der Auftrag sonst nicht richtig abgearbeitet wird.

Viel Spaß
 
Zurück
Oben