Dachte das wär schon ausreichend kommentiert ;-)
Im Datenbaustein gehören zu einem Datum folgende Adressen:
angenommen sei der DB 103 für März:
+0.0 1.3. 00:00
+2.0 1.3. 00:15
+4.0 1.3. 00:30
+6.0 1.3. 00:45
+8.0 1.3. 01:00
...
+192.0 2.3. 00:00
+194.0 2.3. 00:15
+196.0 2.3. 00:30
+198.0 2.3. 00:45
+200.0 2.3. 01:00
+202.0 2.3. 01:15
...
+5950.0 31.3. 23:45
Nun hast du einen Zeitstempel von "2.3.2008 01:05"
Es wird die Datenbausteinnummer des Monats geöffnet, also 3+100 = DB103.
Dann wird die Anfangsadresse der Tagesdaten im DB bestimmt. Da du 4 Intervalle pro Stunde hast, und der Tag
24 Stunden kommen wir auf 96 Werte pro Tag. Damit wir bei Adresse 0 im DB beginnen können, ziehen wir vom Tag die 1 ab.
Also (2 - 1) * 96 = 96.
Dann wird der Stundenoffset bestimmt. Pro Stunde gibt es 4 Werte, darum bei jeder Stunde 4 Adressschritte vorwärts.
Bei 1 ergibt sich ein Stundenoffset von 4.
Bei der Intervalloffsetbestimmung kann durch die Ganzzahldivision durch 15 nur ein Wert von 0-3 herauskommen.
Bei 5/15 ergibt sich 0.
Also von 00-14 Minuten wird der Wert zu xx:00 Uhr eingetragen, bei 15-29 Minuten zu xx:15 Uhr usw.
Gesamtstartpunkt ist somit 96 + 4 + 0 = 100
Da ein Messwert 2 Bytes belegt wird das Ganze noch mal zwei genommen, ergibt eine Adresse von DBW 200.