Jochen Kühner
Level-3
- Beiträge
- 4.299
- Reaktionspunkte
- 529
-> Hier kostenlos registrieren
Hab da mal ne Funtkion Programmiert die sagt ob Sommer oder Winterzeit ist, und dmenetsprechend die Zeit Korregiert...
Hab zwar auch gesehen das es hier im Forum schon ein paar Sachen dazu gibt, doch bei dem Was Ich gefunden habe wurde die Zeit der SPS umgestellt und das will Ich nicht machen...
Ist ein FB.
Im ersten Date_AND_TIME an der Adresse 0 liegt die Korregierte Uhrzeit, an der Adresse 18 liegt die von der SPS gelesene DATE_AND_TIME Struktur, falls das jemand anderst hat kann er es ja anpassen..
Zusätzlich gibt es noch die Lokalvariablen Jahr, Monat, Tag und Stunde vom Typ Int!
Hab zwar auch gesehen das es hier im Forum schon ein paar Sachen dazu gibt, doch bei dem Was Ich gefunden habe wurde die Zeit der SPS umgestellt und das will Ich nicht machen...
Ist ein FB.
Im ersten Date_AND_TIME an der Adresse 0 liegt die Korregierte Uhrzeit, an der Adresse 18 liegt die von der SPS gelesene DATE_AND_TIME Struktur, falls das jemand anderst hat kann er es ja anpassen..
Zusätzlich gibt es noch die Lokalvariablen Jahr, Monat, Tag und Stunde vom Typ Int!
Code:
CALL "BLKMOV"
SRCBLK :=#SPSZEIT
RET_VAL:=#RET_VAL_TEMP
DSTBLK :=#SYSTEMZEIT
//Umstellung auf Sommerzeit
L DIB 18
BTD
L 4
/D
L DIB 18
BTD
+D
+ L#5
L L#7
MOD
L L#-1
*D
+ L#31
T #TAG_IM_MAERZ
//Zurückstellung
L DIB 18
BTD
L L#4
/D
L DIB 18
BTD
+D
+ L#2
L L#7
MOD
L L#-1
*D
+ L#31
T #TAG_IM_OKTOBER
//Prüfung ob Zeit im Bereich
SET
R #SOMMERZEIT
L DIB 19
BTI
T #MONAT
L DIB 20
BTI
T #TAG
L DIB 21
BTI
T #STUNDE
//Monat <3 oder 10<
U(
L 3
L #MONAT
<I
)
U(
L 10
<I
)
SPB ja
//Tag im März > TAG_IM_MÄRZ
U(
L #MONAT
L 3
==I
)
U(
L #TAG_IM_MAERZ
L #TAG
<I
)
SPB ja
//Prüfung der Stunde im März
U(
L #MONAT
L 3
==I
)
U(
L #TAG_IM_MAERZ
L #TAG
==I
)
U(
L #STUNDE
L 2
>=I
)
SPB ja
//Tag im Oktober < TAG_IM_OKTOBER
U(
L #MONAT
L 10
==I
)
U(
L #TAG
L #TAG_IM_OKTOBER
<I
)
SPB ja
//Prüfung der Stunde im Oktober
U(
L #MONAT
L 10
==I
)
U(
L #TAG_IM_OKTOBER
L #TAG
==I
)
U(
L #STUNDE
L 2
<I
)
SPB ja
SPA nee
ja: SET
S #SOMMERZEIT
L DIB 3
BTI
+ 1
ITB
T DIB 3
nee: NOP 0