# Systemzeit auslesen



## Reto (2 April 2009)

Hallo zusammen

Ich versuche gerade verzweifelt, die Systemzeit in einen DB zu schreiben. Doch leider wird ausser nullen nichts geschrieben 

Aktuell hab ich folgendes Programmiert:

```
CALL  "READ_CLK"
       RET_VAL:=MW34
       CDT    :=#DAT

      L     LD     6
      T     DB198.DBD    0
      L     LB    10
      T     DB198.DBD    4
```
#DAT ist eine Temp-Var vom Typ Date_And_Time ab Adresse 6.0
DB198.DBD0 ist eine Variable vom Typ Date_And_Time ab Adresse 0.0

In der HW-konfig habe ich eine 315-2DP eingesetzt und bin aktuell mit PLCSIM am testen.

Jemand eine Idee, was ich hier falsch mache?
Danke und Gruss


----------



## rkoe1 (2 April 2009)

Hallo,

ich lese bei einer 315-2DP die Uhrzeit so ein:

   CALL  "READ_CLK" (SFC1)
       RET_VAL:="wzu_db".time_err
       CDT    :="wzu_db".date_time_akt// P#DB13.DBX0.0-DATE_AND_TIME

Das Datum und die Uhrzeit stehen dann im DB13 ab DBB0.
Könnte vielleicht an der Variablen #Dat liegen?!

Viele Grüße
rkoe1


----------



## Move (2 April 2009)

Hi Reto,

so ist besser 

 CALL  SFC    1
       RET_VAL:=#Dummy
       CDT    :=#Date_Time
      NOP   0

LAR1  P##Date_Time
      L     B [AR1,P#0.0]
      T     #Jahr

  L     B [AR1,P#1.0]
  T     #Monat

  L     B [AR1,P#2.0]
  T     #Tag

  L     B [AR1,P#3.0]
  T     #Stunde

  L     B [AR1,P#4.0]
  T     #Minute

  L     B [AR1,P#5.0]
  T     #Sekunde

  L     W#16#FFF0
  L     W [AR1,P#6.0]
  UW    
  T     #MilliSek

  BE


----------



## vierlagig (2 April 2009)

http://sps-forum.de/showpost.php?p=171541&postcount=11


----------



## Reto (2 April 2009)

Danke für euere Auskünfte.

Mit diesen Funktionen wird das Datum aber immer aufgesplittet. Geht das nicht auch als Date_And_Time ?!?

@rkoe1: Direkt in den DB hab ich auch versucht, geht genau gleich wenig.


----------



## Ralle (2 April 2009)

Reto schrieb:


> Danke für euere Auskünfte.
> 
> Mit diesen Funktionen wird das Datum aber immer aufgesplittet. Geht das nicht auch als Date_And_Time ?!?
> 
> @rkoe1: Direkt in den DB hab ich auch versucht, geht genau gleich wenig.



Läuft die Uhr der SPS überhaupt?


----------



## Reto (2 April 2009)

Ja, denke schon ... also wenn ich via Diagnose das Zeitsystem anschaue, hat's halbwegs die richtige Zeit.

Wenn ich's teile in Jahre, Monate, etz ... dann geht's ... zusammen geht's nicht.


----------



## crash (2 April 2009)

warum nimmst du nicht die lokaldaten vom OB1?


```
L     LD    12
      T     DB198.DBD    0

      L     LD    16
      T     DB198.DBD    4
```
fertig ist die Laube. 
so mach ich das immer.
einfacher und schneller bekommst du die Daten nicht in deinen DB.

ich hab mir mal nen fc geschrieben dem übergebe ich die zeit vom ob1
und der friemelt mir das auseinander und gibt alles als INT zurück.

*FC200-Extrahiert Datum und Uhrzeit aus den Startinformationen des OB1*

also 
Jahr
Monat
Tag
Stunde
Minute
Sekunde
Millisekunde
Wochentag
alles als INT
damit kann man dann schön weiterarbeiten
z.B. Zeitschaltuhr...


----------



## joerg491 (2 November 2009)

Habe folgendes Problem, ich will eine Lampe den ganzen Monat April und Septemper für 1 Stunde leuchten lassen. Habe es jetzt so weit hinbekommen das sie täglich in der gewünschten Zeit leuchtet nur weis ich leider nicht wie ich aus der Systemzeit den Monat 04 und 09 heraus lesen kann.
Ich hoffe mir kann jemand weiter helfen.


----------



## crash (2 November 2009)

Sieh dir mal in der Step7-Hilfe den Aufbau des *DATE_AND_TIME* Datentyps an.
Da siehst du dann wo was steht und was du dir da raus ziehen musst.


----------



## joerg491 (2 November 2009)

Das verstehe ich trotzdem nicht so ganz. Ich weiß echt nicht wie das gehen soll.


----------



## volker (2 November 2009)

saug dir hier mal *split_dt.zip*
http://lischis-home.dyndns.org/files/SPS/S7_Bausteine/dirindex.php


----------



## Larry Laffer (2 November 2009)

... und mit dem Beispiel von Move im Beitrag #3 dieses Thread kannst du auch nichts anfangen ...?


----------



## volker (2 November 2009)

anmerkung zu beitrag 3
die werte der variablen sind bcd-codiert


----------



## vierlagig (2 November 2009)

beitrag 4 sollte ähnlich funktionieren wie beitrag 12


----------



## volker (2 November 2009)

jup.
hatte den link nicht angesehen


----------



## joerg491 (2 November 2009)

Ja, so weit klar. Aber wie schreibe ich zum Beispiel das im OB im 4. und 8. Monat jeden Jahres der Ausgang A1.0 kommt?


----------



## Larry Laffer (2 November 2009)

lies dir in der Step7-Hilfe doch mal durch, was da zum Thema "Vergleicher" drinsteht ...


----------



## joerg491 (2 November 2009)

Ich bekomme das einfach nicht hin


----------



## volker (2 November 2009)

eigentlich ist es mir schon fast zu blöd hierauf zu antworten.

ich empfehle dir dringend diesen link durchzuarbeiten
http://www.automation.siemens.com/fea/html_00/down_module.htm
auf jeden fall davon anhang 1-3


----------



## redscorpion (5 September 2011)

Hallo Vierlagig,

möchte gerne ein Systemzeit einfügen also Datum und aktuelle Uhrzeit. es ist schon gut erklärt aber ich steig da nicht ganz durch , Sfc0 und Sfc1 habe ich schon kapiert aber.

Danke im Voraus


----------



## vierlagig (5 September 2011)

redscorpion schrieb:


> Hallo Vierlagig,
> 
> möchte gerne ein Systemzeit einfügen also Datum und aktuelle Uhrzeit. es ist schon gut erklärt aber ich steig da nicht ganz durch , Sfc0 und Sfc1 habe ich schon kapiert aber.
> 
> Danke im Voraus



ich versteh nicht, was ich mit deinem problem zu tun habe und dein aber erschliesst sich mir auch nicht. wenn die funktion von SFC0 und SFC1 klar ist, wo ist dann das problem?

7


----------

