# CPU automatisch Sommer/Winterzeit umstellen



## cod3sys (8 Oktober 2005)

Hallo Freunde,
habe ein Problem: ich möchte die CPU Zeit einer z.B. S7 315 2 DP automatisch von Sommerzeit auf Winterzeit und umgekehrt einstellen können. Habe da schon mit den Standard Bausteinen FB60 und FB 61 von Step 7 etwas experementiert komme aber nicht richtig voran.
Hat jemand eine Idee ???


Gruß
Nutellla


----------



## lorenz2512 (8 Oktober 2005)

Hallo,
schau mal dort nach, da gibt es einen fertigen Baustein:http://www.familie-boch.de/sps/Simatic_S7/simatic_s7.html


----------



## Anonymous (9 Oktober 2005)

Danke lorenz für die schnelle Antwort !!!
Ich schau auf dem Link nach.

Gruß
Nutellla


----------



## Anonymous (9 Oktober 2005)

Anonymous schrieb:
			
		

> Danke Dietmar für die schnelle Antwort !!!
> Ich schau auf dem Link nach.
> 
> Gruß
> Nutellla


----------



## cod3sys (9 Oktober 2005)

Sorry Dietmar,
hatte mich vergessen einzuloggen deswegen stehen die anderen Antworten "nur mit Gast " da.

Danke nochmal...


----------



## EisenWolf (22 Oktober 2005)

Grützi .

Habe auch schon mal damit Versuche gemacht und hatte es wesentlich umständlicher,
da SPS ständig in den STOP gesprungen ist mit dem Fehler : Uhrzeitalarm  

oder so ähnlich.
musste Fehler abfangen und Auswerten usw. also nicht so einfach wie im Programm auf dem Link ,
kann es leider zurzeit nicht Prüfen wäre aber nett wenn mir jemand sagen kann ob das Programm ohne Fehler läuft.

Mfg. Mdt


----------



## cod3sys (8 November 2005)

Hallo Eisenwolf,

habe das Programm vom Link programmiert und eingesetzt.Da jetzt ja die Zeitumstellung war konnte ich am besten sehen ob es arbeitet.
Es hat wunderbar funktioniert, keine Probleme. Schreibe doch bitte genau was für ein Problem du hast vielleicht kann ich dir weiterhelfen !!!

Gruß
NUT


----------



## brunibanani (23 Januar 2007)

hallo! ich habe mit der fc von http://www.familie-boch.de versucht die zeitumstellung zu realisieren!
ich benutze eine cpu 315 2 dp (schmale bauform)
leider funktioniert die fc nicht bei mir! habe 10 mal durchgeschaut, ob alles gleich ist.... stimmt zu 100%.

was habe ich falsch gemacht?

es muss doch in den ob1 geschrieben werden: 
      CALL  FC    11

automatisch kommt dann:      

       SZ           :=
       uhr_stellen:=

was muss dort eingetragen werden?

bin ein ziemlicher newbie auf dem gebiet! dankeeee


----------



## vladi (23 Januar 2007)

*FC Uhrzeit*

Hi,
einfach: dort zwei Merker eintragen..

Gruss: V.


----------



## Springbock (18 Juli 2007)

[FONT=&quot]Bei mir funktioniert dieser Link nicht[/FONT], hat jemand diesen Baustein noch irrgendwo?? 


Thnx  Springbock


----------



## vladi (18 Juli 2007)

*Umschaltung*

Hi,
als Anhang.

Vladi


----------



## Kai (18 Juli 2007)

Springbock schrieb:


> [FONT=&quot]Bei mir funktioniert dieser Link nicht[/FONT], hat jemand diesen Baustein noch irrgendwo??


 
Ich habe den Baustein zwar auch nicht, aber vielleicht hilft das hier weiter:

*Wie kann die aktuelle Lokalzeit (Sommer- bzw. Winterzeit) in der S7-300/400 CPU berechnet und auf dem Panel als Systemzeit verwendet werden?*

Bei Automatisierungsanlagen mit integrierter Uhrzeitsynchronisation wird keine Uhrzeitumstellung der S7-300/400 CPU-Uhr auf Sommer- oder Winterzeit durchgeführt. Industrieanlagen mit Uhrzeitsynchronisation sollten immer nach der Winterzeit gestellt sein. Um die aktuelle Lokalzeit (Sommerzeit) in der CPU ermitteln zu können, steht Ihnen der Baustein FC61 "*BT_LT*" der Standard Library "Miscellaneous Blocks" zur Verfügung. In der Online-Hilfe zum "BT_LT" finden Sie die Liste der zusätzlich notwendigen Bausteine. "BT_LT" berechnet aus einer vorgegebenen Basiszeit mittels hinterlegter Daten in einem Datenbaustein die aktuelle Lokalzeit. Die errechnete Lokalzeit kann z.B. über Uhrzeitsynchronisation als Systemzeit für Bedien- und Beobachtungsgeräte (z.B. SIMATIC HMI Panels) dienen. 

http://support.automation.siemens.com/WW/view/de/19324378

Gruß Kai


----------



## PLC JOE (18 Juli 2007)

vladi schrieb:


> Hi,
> als Anhang.
> 
> Vladi


 

Hallo Vladi 

Ich habe noch einen Buck gefunden, Das Umschalten funktioniert aber daß Sommerzeit-Bit hängt 

Hier die geänderten Zeilen

// Monat <März & >Oktober ?
L #Monat
L 3
<I 
= #HM1
TAK 
L W#16#10
>I 
O #HM1// ist neu, war mal U #HM1
SPB Wi



Ein richtig schönes kleines Prog


----------



## vladi (18 Juli 2007)

*Schönes Prog*

Hi,
der Code ist nicht von mir. War mal auf diese Webpage "familie-boch.de", zum freien Download.

Den Bug habe ich übersehen. Das Bit habe ich auch nie verwendet. Danke.

Vladi


----------



## Springbock (18 Juli 2007)

Thnx an euch 3. werd mal beide varianten durchlesen und studieren.

gruss


----------



## hugo (21 Juli 2007)

in der open source libraray von oscat findest du den baustein dst und auch gleich den source code dazu.
www.oscat.de


----------



## MarioDisketti (31 März 2008)

*Automatische Sommerzeit Umstellung*

Hat sich erledigt... Sorry, wer lesen kann... ist klar im Vorteil  ;-))


----------



## Pinguino (31 März 2008)

Für was wird der TAK Befehl gebraucht für die Umschaltung Winter/Sommerzeit?
Danke!


----------



## Ralle (31 März 2008)

L #Monat
L 3

TAK tauscht Akku1 und Akku2.

Also steht nun wieder #Monat im Akku1
und nach

L W#16#10

kann der #Monat mit W#16#10 verglichen werden.
Ohne TAK hätte nochmals ein L #Monat  vor L W#16#10 erfolgen müssen.

so:


```
L #Monat
L 3
<I 
= #HM1
[COLOR="Red"]L #Monat [/COLOR]
L W#16#10
>I 
O #HM1// ist neu, war mal U #HM1
SPB Wi
```

Geht auch so:


```
[COLOR="red"]L 3
L #Monat
>I [/COLOR]
= #HM1
L W#16#10
>I 
O #HM1// ist neu, war mal U #HM1
SPB Wi
```


----------



## mauli (30 April 2009)

Also, bei mir is das irgendwie komisch, im Simulator funktioniert die umstellung in beide richtungen, allerdings in der SPS (CPU 314) funktioniert die umstellung nur von winter auf sommerzeit.
ich hab das programm schon mehrfach durchgeschaut und mir den originalen baustein einfach kopiert... 
wenn ich die befehle im programm durchgehe, passen auch alle meiner meinung nach.
habt ihr ne idee ?
ich habe an der CPU nen OP3 dran, mit dessen hilfe ich die uhrzeit im AG ändere und wie gesagt eine richtung geht andere nicht. ich habe auch schon verschiedene jahreszahlen ausprobiert...

Ich hab das "rechen" netzwerk mal herauskopiert


```
L     LB     0
      T     #Jahr

      L     LB     1
      T     #Monat

      L     LB     2
      T     #Tag

      L     LB     3
      T     #Stunde

      L     LB     7                    // Low-Byte = Wochentag
      L     W#16#F
      UW    
      T     #Wochentag

// Monat <März & >Oktober ?   

      L     #Monat
      L     3
      <I    
      =     #HM1
      TAK   
      L     W#16#10                     // 10 hex = 10 BCD
      >I    
      O     #HM1
      SPB   Wi                          // Wi = Winter

// Monat >März & <Oktober ?   

      L     #Monat
      L     3
      >I    
      =     #HM1
      TAK   
      L     W#16#10
      <I    
      U     #HM1
      SPB   So                          // So = Sommer

// Ist März?   
      L     #Monat
      L     3
      ==I   
      SPBN  Okt

// --------------- Sommerzeit-Umstellung ---------------   
// Es ist März! Ist es später als der 24.März?   

      L     #Tag

      L     W#16#24                     //24 hex = 24 BCD
      >I    
      SPBN  Wi

// Es ist später als der 24.März! Kommt noch ein Sonntag?   
      TAK   
      L     #Wochentag
      -I    
      L     W#16#24
      <I    
      SPB   Wi

// Es ist entweder der letzte So. im März oder danach!   

      L     #Wochentag
      L     1                           // Sonntag?
      ==I   
      SPBN  So

// Ist es 3 Uhr oder später ?   
      L     #Stunde
      L     3
      >=I   
      SPB   So

// Ist es 2 Uhr (nur Stunde)?   
      TAK   
      L     2
      ==I   
      SPBN  Wi

// Aktuelle Zeit +1h!   
      TAK   
      INC   1
      T     LB     3                    // LokalByte 3 = Stunde
      S     #UhrStellen
      SPA   So

// --------------- Winterzeit-Umstellung ---------------   
// Es ist Oktober! Ist es später als der 24.?   

Okt:  L     #Tag
      L     W#16#24                     // 24 hex = 24 BCD
      >I    
      SPBN  So

// Es ist später als der 24.Oktober! Kommt noch ein Sonntag?   
      TAK   
      BTI   
      L     #Wochentag
      -I    
      L     24
      <I    
      SPB   So

// Es ist entweder der letzte So. im Oktober oder danach!   

      L     #Wochentag
      L     1                           // Sonntag?
      ==I   
      SPBN  Wi

// Ist es vor 2 Uhr (nur Stunde)?   
      L     #Stunde
      L     2
      <I    
      SPB   So

// Steht #SZ noch auf Sommerzeit?   

      U     #SZ
      SPBN  Wi

// Ist es 3 Uhr oder später?   
      L     #Stunde
      L     3
      >=I   
      SPBN  So

// Aktuelle Zeit -1h!   
      TAK   
      DEC   1
      T     LB     3                    // LokalByte 3 = Stunde
      S     #UhrStellen
      SPA   Wi

// -----------------------------------------------------   
So:   S     #SZ
      SPA   Uhr

Wi:   R     #SZ

Uhr:  NOP   0
```


----------



## svenhuber (4 Juli 2014)

Auf den Merker HM_1 sowie das TAK kann komplett verzichtet, wenn man die  Operanden in der ersten Abfrage dreht und die zweite Abfrage gleich  oderverknüpft an die erste anhängt.

```
// Monat <März & >Oktober ?
      [COLOR=#ff0000]L     3; 
      L     #Monat; [/COLOR]
      [COLOR=#ff0000]>[/COLOR]I    ; 
   [COLOR=#ff0000]   O(    ;[/COLOR]
      L     W#16#10; 
      >I    ; 
[COLOR=#ff0000]      )     ;[/COLOR]
      SPB   Wi; 
// Monat [COLOR=#ff0000]>[/COLOR]März & [COLOR=#ff0000]<[/COLOR]Oktober ?
     [COLOR=#ff0000] L     3; 
      L     #Monat; [/COLOR]
      [COLOR=#ff0000]<[/COLOR]I    ; 
     [COLOR=#ff0000] O(; [/COLOR]
      L     W#16#10; 
      <I    ; 
     [COLOR=#ff0000] )     ;[/COLOR]
      SPB   So;
```

Bei  der Umstellung auf Sommerzeit fehlt noch ein BTI, warum es  wahrscheinlich bei mauli nicht funktioniert hat. Für den Vergleich ist  das egal, aber bei der Subtraktion kommt sonst Mist raus.

```
// Sommerzeit: Umstellung[COLOR=#ff0000][/COLOR]
// Es ist März! Ist es später als der 24.März?
      L     #Tag; 
      L     W#16#24; 
      >I    ; 
      SPBN  Wi; 
// Es ist später als der 24.März! Kommt noch ein Sonntag?
      TAK   ; 
      [COLOR=#ff0000]BTI   ;[/COLOR] 
      L     #Wochentag;
      -I    ; 
      L     W#16#24;
      <I    ; 
      SPB   Wi;
```


----------

