# Uhrzeit aus S7-300 auslesen, was mache ich falsch?



## DannyNRW (29 Oktober 2009)

Hi Leutz,
zunächst einmal möchte ich alle herzlich grüßen, die hier unterwegs sind.
Habe das Problem, daß ich es nicht schaffe, die Uhrzeit aus meiner 313er-CPU auszulesen. Habe hier wirklich schon einiges darüber gelesen und muß dazu sagen, daß meine S7-Kenntnisse nicht gerade die besten sind.
Habe auch schon versucht, die AWL-Quelle aus der Hilfe des Simatic-Managers zu kompilieren, doch hier bricht er dann ab, einmal
bei PDT (Parameter gehört nicht zum passenden Baustein), das gleiche bei CDT.
Hab hier auch schon noch einige Beispiele gesehen, die will ich auch noch ausprobieren. Aber dazu mal eine Frage. Lässt sich die Uhrzeit nicht ganz einfach NUR mit dem SFC1 auslesen? Würde ihn gerne einfach erstmal in FUP richtig beschalten können und dann kann man darauf ja weiter aufbauen.
Danke schon mal an alle.
Beste Grüße aus NE .
Daniel


----------



## marlob (29 Oktober 2009)

Natürlich geht das mit dem SFC1. Am CDT eine Variable vom Format Date_and_Time programmieren


----------



## DannyNRW (29 Oktober 2009)

marlob schrieb:


> Natürlich geht das mit dem SFC1. Am CDT eine Variable vom Format Date_and_Time programmieren


 
Lässt sich diese Variable auch in FUP programmieren? Wenn ja, wie denn genau?


----------



## marlob (29 Oktober 2009)

Warum willst du das unbedingt in FUP programmieren? Du kannst den SFC1 in FUP genauso aufrufen wie alle anderen FCs usw. auch. Und dann schreibst du halt deine Variable am CDT


----------



## bike (29 Oktober 2009)

marlob schrieb:


> Warum willst du das unbedingt in FUP programmieren? Du kannst den SFC1 in FUP genauso aufrufen wie alle anderen FCs usw. auch. Und dann schreibst du halt deine Variable am CDT


Weil fielleicht FUP leichter ist?
Die Parameter sind bei beiden Programmierarten gleich.
Du musst die Eingangs- und Ausgangsparameter richtig definieren.
Füg dir den SFC ein und drücke dann die F1 Taste, da sagt dir der Siemens was wie beschalten werden muss oder verwende hiermal die SuFu und du wirst einige schöne Beispiel sehen, die dann einfach abtippen kannst.



bike


----------



## DannyNRW (29 Oktober 2009)

Das hab ich ja schon probiert...
Also nochmal, ich habe jetzt einfach meinen SFC1 in meinen FC1 reingepackt, an den Eingang einfach E0.0 negiert und bei ret_val eine Variable vom Typ Integer erzeugt. Das nimmt er soweit auch an.
Nun will ich gerne an Out0 eine Variable vom Typ Date_And_Time anfügen, doch dies wird immer negativ quittiert, d.h. der Text bleibt rot (Unzulässige Parameterversorgung für Out0).
Wie gesagt, ich habe nicht die besten Kenntnisse, was S7 angeht. Aber was nicht ist, das kann ja vielleicht noch werden .


----------



## Larry Laffer (29 Oktober 2009)

Hallo,
wo hast du diese Date_Time-Variable den angelegt ?
Hast du sie symbolisch an den SFC übergeben ?

Gruß
LL


----------



## MarkusP210 (29 Oktober 2009)

Danny

So wie ich das verstehe bereitet Dir der Datentyp DATE_AND_TIME wohl ein Problem.

Für Deinen Versuch kannst Du z.B. so vorgehen:

1. Erstelle einen Datenbaustein (z.B. DB10) und lege eine Variable mit dem Namen z.B. "Uhrzeit" vom Datentyp DATE_AND_TIME (über die Tastatureingeben oder mit rechter Maustaste auswählen) und eine zweite Variable mit Namen "Status" vom Datentyp INT
2. Im Versuchs-FC die SFC1 aufrufen (geht natürlich auch in FUP) und am Ausgang RET_VAL die Variable DB10."Status" und am Ausgang CDT die Variable DB10."Uhrzeit" anschalten
3. beides downloaden und testen z.B. mit einer Variablentabelle.

EDIT:
Ah ja, als Tip, nimm doch die SFC1 nochmal aus der Bibliothek (damit Du eine richtige Version des Bausteins hast)

Markus


----------



## DannyNRW (29 Oktober 2009)

Danke Dir erstmal, so wie Du das beschrieben hast, hat das auch geklappt.
Wird Datum/Uhrzeit denn in der Beobachtungsansicht im DB nicht ständig von alleine aktualisiert?
Hab auch mal mit der Variablentabelle versucht, das ganze so zu beobachten, daß Datum/Uhrzeit ständig aktualisiert wird, ging leider auch nicht so ganz. Die Daten im DB werden aber ständig aktualisiert, das steht fest *freu*.
Der SFC1 aus der Bibliothek sah übrigens etwas anders aus als der SFC1 von der CPU...
Werd nun mal n bissl weiterprobieren und darauf hinarbeiten, daß ich mal nen Ausgang zu einer bestimmten Uhrzeit setzen kann.
Beste Grüße aus NE .
Daniel


----------



## DannyNRW (30 Oktober 2009)

Was soll ich sagen, wer lesen kann, ist klar im Vorteil . Habe wohl übersehen, daß es sich hier um 8 komplette Bytes handelt, die belegt werden. Habe also mittlerweile auch die Daten umwandeln können und mittels Vergleicher dann auch mal zu einer bestimmten Minute einen Ausgang gesetzt .
Vielen Dank nochmal :-D.
Daniel


----------



## MarkusP210 (30 Oktober 2009)

Toll wenn's funktioniert hat. 

Markus


----------



## DannyNRW (30 Oktober 2009)

Ja, danke Dir . Hat eigentlich jemand Erfahrungen mit den Rechenmöglichkeiten einer S7? Sin, Arcsin, Division, Multiplikation usw. ...
Muß dazu mal etwas weiter ausholen. Und zwar geht es eigentlich um ein Abschlussprojekt der Technikerschule und da haben wir also nun die Aufgabe, Straßenbeleuchtung zu bestimmten Zeiten ein- und auszuschalten, das ganze zudem visualisiert über ein Touchpanel (angebunden via Profibus). Das ganze mag vielleicht nicht sonderlich schwer klingen, auch der Ingenieur bei uns auf der Arbeit hat schon die Nase gerümpft --> *ROFL*.
Abhängig ist die Ein-und Ausschaltzeit zunächst mal von einem Dämmerungsschalter und wenn dieser nicht funktioniert, soll in zweiter Instanz eine Astrouhr greifen (Daher meine Frage nach Berechnungsmöglichkeiten der S7), die wir bis jetzt hardwaremäßig haben. Mein Ziel ist es aber, zu versuchen, das ganze auch softwaremäßig mit der S7 hinzubekommen. Hab mir die Formel für Sonnenauf- und untergang auch schon angesehen, sieht nicht gerade aus als wäre das nicht eines Technikerprojektes würdig. Hoffe ich bekomme das irgendwie hin ohne viel "rumzuklauen" .
Bin da für gute Tipps immer zu haben .
Beste Grüße aus NE .
Daniel


----------



## peter(R) (30 Oktober 2009)

Bemühe mal die Suche unter "Sonnenaufgang" da gibt es doch einiges.

peter(R)


----------



## marlob (30 Oktober 2009)

DannyNRW schrieb:


> Ja, danke Dir . Hat eigentlich jemand Erfahrungen mit den Rechenmöglichkeiten einer S7? Sin, Arcsin, Division, Multiplikation usw. ...


Das solltest du hier ein paar Infos finden
http://www.sps-forum.de/showthread.php?t=18394


----------



## Lipperlandstern (30 Oktober 2009)

Hier sollte alles zu finden sein


OSCAT


----------



## DannyNRW (5 November 2009)

Danke Euch schon mal .
Bin inzwischen ein ganzes Stück weiter und hab nun einen Baustein, mit dem ich die Tageszahl bestimmen kann (von 1-365, Schaltjahr vernachlässigt). Nun zu der Sache mit der softwaremäßigen Astrouhr. Ich habe schon den ersten Teil der Formel ausrechnen können, die "Deklination der Sonne". Wie läuft das eigentlich mit den temporären Variablen? Können hier irgendwelche Konflikte entstehen? Er sagt mir z.B., daß eine Variable bei Adresse 0.0 anfängt... Ist diese Adresse auf Merker bezogen oder wie habe ich das zu verstehen?
Außerdem konnte ich beobachten, wenn ich den Sinus von 3,87002 ermitteln will, daß ein falsches Ergebnis herauskommt. Hat sowas auch schon jemand beobachten können? Bin das ganze dann umgangen, indem ich einfach sin durch Winkel*Pi/180 ersetzt habe. Hab also mehr oder weniger zu Fuß gerechnet. Das richtige Ergebnis kam dann auch heraus.
Bin guter Dinge, daß die Astrouhr funktionieren kann.
Gute N8@ all .
Daniel


----------



## Larry Laffer (5 November 2009)

Hallo,





DannyNRW schrieb:


> Wie läuft das eigentlich mit den temporären Variablen? Können hier irgendwelche Konflikte entstehen? Er sagt mir z.B., daß eine Variable bei Adresse 0.0 anfängt... Ist diese Adresse auf Merker bezogen oder wie habe ich das zu verstehen?


Die Lokalvariablen bitte sofern möglich niemals absolut adressieren (also = L.0.0 oder so) sondern immer symbolisch verwenden. Dann ersparst du dir auf jeden Fall Probleme. Des weiteren bitte berücksichtigen, dass dein Baustein sich deren Inhalte nicht von Zyklus zu Zyklus "merkt". Der Inhalt ist bei einem neuen Zyklus zufällig - das stellt aber kein Problem dar, wenn du sie immer zuweisst bevor du sie weiter verwendest. 



DannyNRW schrieb:


> Außerdem konnte ich beobachten, wenn ich den Sinus von 3,87002 ermitteln will, daß ein falsches Ergebnis herauskommt. Hat sowas auch schon jemand beobachten können? Bin das ganze dann umgangen, indem ich einfach sin durch Winkel*Pi/180 ersetzt habe. Hab also mehr oder weniger zu Fuß gerechnet. Das richtige Ergebnis kam dann auch heraus.l


Sinus, Cosinus etc. arbeiten im Radianten-Mass und nicht im Grad-Mass - deshalb Winkel * Pi / 180.

Gruß
LL


----------



## DannyNRW (5 November 2009)

Jetzt ist mir doch ein Fehler unterlaufen beim Rechnen, hätte die Umrechnung wohl gar nicht machen brauchen, denn das Ergebnis der "Deklination der Sonne" wird doch tatsächlich in RAD ausgegeben, wer lesen kann, ist klar im Vorteil .
Aber nochmal zu den Temporärvariablen: Wie kann ich das machen, daß ich "symbolische" Variablen verwende anstatt direkte Adressierungen?
Beste Grüße aus NE .
Daniel


----------



## Gebs (5 November 2009)

Hallo Daniel,

Du machst einfach ein "#" vor die Variable:

L #Var1
etc.

Grüße
Gebs


----------



## Larry Laffer (5 November 2009)

... und das mit dem # kannst du dir auch noch sparen. Einfach den Variablen-Namen mit der richtigen Opration eingeben (das # wird dann von Step7 automatisch gesetzt).


----------



## DannyNRW (5 November 2009)

Achso, das klingt genauso als hätte ich das so gemacht. Kann die nächsten Tage gerne mal ein Screenshot einstellen, sofern das hier möglich ist...
Jetzt bin ich mit meinen Rechenoperationen am Ende und habe Ergebnisse rausbekommen. Allerdings stellt sich mir jetzt das Problem (ich hab's mir eigentlich schon fast gedacht), daß ich die Zahlen aufbereiten muß um diese mit der aktuellen Uhrzeit vergleichen zu können. Natürlich liegen alle Zahlen im Gleitpunktformat vor und sehen als Uhrzeit nun z.B. so aus:
17.8223 Uhr. Kann mir jemand sagen, ob es eine Möglichkeit gibt,
erstens: die Zahl auf zwei Stellen nach dem Komma zu runden?
und zweitens: Die Zahlen 17 und 82 zu splitten, um diese dann getrennt weiterverarbeiten zu können?
Beste Grüße aus NE .
Daniel


----------



## DannyNRW (6 November 2009)

So, jetzt sind mir doch noch einige kleine Tricks eingefallen, um die Zahlen so zu splitten, wie ich sie gern hätte...
-Zuerst wird die ganze Zahl 17.8223 abgerundet, so erhalte ich schon mal die 17. 
-Dann wird die 17 von der 17.8223 abgezogen, als Ergebnis bleibt dann 0.8223.
-Die 0.8223 dann mit 60 multipliziert (zuerst mit 100 und dann mit 60 ginge auch), bleibt als Ergebnis 49.338.
-Die 49.338 wieder als ganze Zahl gerundet und schon hab ich meine Zahlen, wie ich sie (hoffentlich) mit der Uhrzeit erfolgreich vergleichen kann, um einen Ausgang zu setzen. Als Rundungsergebnis würde in diesem Fall die 49 stehenbleiben.
Wünsche allen eine gute N8, nun kann ich auch wieder schlafen .
Daniel


----------



## DannyNRW (6 November 2009)

Jetzt hab ich schon gedacht, daß ich fast am Ziel bin und nun das...
Rechne ich die Sonnenauf- und untergangszeiten für den 30.Juni aus, so komme ich für den Aufgang auf irgendwas mit 4.30Uhr, das mag ja evtl. noch gehen. Aber der Untergang ist um 21Uhr, da ist es noch taghell und zu dieser Zeit schaltet sich NIRGENDWO die Straßenbeleuchtung ein.
Kennt da niemand eine Seite, wo ich eine genauere Formel finde?
Oder eine Formel für die bürgerliche Dämmerung zB?
Wäre mir echt wichtig!


----------



## vierlagig (6 November 2009)

DannyNRW schrieb:


> Oder eine Formel für die bürgerliche Dämmerung zB?



von bürgerlicher Dämmerung spricht man, wenn die Horizonthöhe h = -6° ist. du rechnest wahrscheinlich noch mit -0,0145°?!

siehe dazu: http://lexikon.astronomie.info/zeitgleichung/


----------



## Larry Laffer (6 November 2009)

Hast du Sommer- und Winterzeit berücksichtigt ?


----------



## DannyNRW (6 November 2009)

vierlagig schrieb:


> von bürgerlicher Dämmerung spricht man, wenn die Horizonthöhe h = -6° ist. du rechnest wahrscheinlich noch mit -0,0145°?!
> 
> siehe dazu: http://lexikon.astronomie.info/zeitgleichung/


 
Genau so ist es, hab die Formel von dieser Seite hier übernommen:
http://lexikon.astronomie.info/zeitgleichung/
und hier der entsprechende Auszug aus der Formel:
"Sonnenaufgang h=-50 Bogenminuten = -0.0145 "

Setze ich dann einfach die -6° ein anstatt -0,0145°?
Beste Grüße aus NE .
Daniel


----------



## vierlagig (6 November 2009)

DannyNRW schrieb:


> Setze ich dann einfach die -6° ein anstatt -0,0145°?



genau, damit erhälst du dann die zeit, wenn die sonne schon 6° unterm horizont ist, was eben jener "bürgerlichen dämmerung" entspricht ...


----------



## DannyNRW (6 November 2009)

Das hört sich ja gut an ... Muß ich denn die -6° noch irgendwie umrechnen oder kann ich die einfach so als Zahl in mein Programm einsetzen?


----------



## DannyNRW (6 November 2009)

So, hab jetzt einfach mal die sin(-6°)=0,27942 eingesetzt und habe mal eine Liste gemacht:
06.03.: 8.35h Aufgang, 16.54h Untergang
06.06.: 6.25h Aufgang, 18.41h Untergang
21.06.: 6.25h Aufgang, 18.45h Untergang
06.11.: 9.34h Aufgang, 16.05h Untergang

die gleichen Werte mit der Konstante -0,0145:
06.03.: 7.04h Aufgang, 18.25h Untergang
06.06.: 4.51h Aufgang, 20.18h Untergang
21.06.: 4.47h Aufgang, 20.23h Untergang
06.11.: 7.51h Aufgang, 17.48h Untergang

und das sagt CalSky dazu:
06.03.: 7.07h Aufgang, 18.22h Untergang
06.06.: 5.20h Aufgang, 21.44h Untergang
21.06.: 5.17h Aufgang, 21.52h Untergang
06.11.: 7.34h Aufgang, 16.58h Untergang


----------



## DannyNRW (6 November 2009)

Die oberen Werte sind gültig für Neuss (51,2° Breite und 6.69° Länge).
Ich weiß nicht, ob es vielleicht etwas damit zu tun haben könnte, aber hier mal ein Auszug aus eine der letzten Formeln im Beispiel, die auch das Endergebnis gut verfälschen können.
= 7.840 Uhr in MEZ für Berlin weil 7.840 = 7.740 + (15 - 13.5)*4/60

Statt der 15-13,5 in den Klammern habe ich 15-6,69 eingesetzt wegen des Neusser-Längengrades. Richtig oder falsch?


----------



## DannyNRW (6 November 2009)

So, hab nochmal n bissl geschaut und hab gesehen, daß sich bei mir wohl ein Fehlerteufel eingeschlichen hat...
"(cos(0.9163)*cos(-0.30677)))/Pi"
Anstatt hier mit dem Cosinus von 0,9163 (bei mir 0,8936) zu arbeiten, habe ich fälschlicherweise den Sinus genommen. Mittlerweile sehen die Ergebnisse besser aus und man kann deutlich sehen, wo die Sommerzeit im Spiel ist. Hier mal meine jetzigen Ergebnisse, allerdings kann ich immer noch beobachten, daß gerade in den Monaten Oktober und November die Abweichungen meiner Werte bei durchschnittlich einer halben Stunde zu den Werten von CalSky liegen...
Hier meine Werte (die Sommerzeit muß noch aufaddiert werden):
30.01.: 8.13h Aufgang, 17.19h Untergang
06.03.: 7.09h Aufgang, 18.20h Untergang
06.06.: 4.23h Aufgang, 20.46h Untergang
21.06.: 4.17h Aufgang, 20.52h Untergang
06.11.: 8.07h Aufgang, 17.32h Untergang

und CalSky:
30.01.: 8.13h Aufgang, 17.20h Untergang
06.03.: 7.07h Aufgang, 18.22h Untergang
06.06.: 5.20h Aufgang, 21.44h Untergang
21.06.: 5.17h Aufgang, 21.52h Untergang
06.11.: 7.34h Aufgang, 16.58h Untergang


Jetzt fragt sich, ob ich mit dieser halben Stunde in den Monaten Oktober und November leben kann oder ob dort Korrekturwerte eingefügt werden müssen. Hat schon mal jemand mit dieser Formel seine Beleuchtung gesteuert und mal nachgehalten (über längere Zeit), wann es hell und dunkel wird? Vielleicht gibt es auch Listen von Beobachtern (möglichst im Raum Düsseldorf), die sich mal über längere Zeit den Sonnenauf- und untergang angesehen haben?
Beste Grüße aus NE .
Daniel


----------



## DannyNRW (7 November 2009)

So, aller guten Dinge sind 3!!! Jetzt schlug der Fehlerteufel doch noch gleich 2x zu, daher auch die komischen Ergebnisse im Oktober und im November. So ist das, wenn Mathematik-Bastler am Werk sind .
Dort wo die Formel -0,217 = WOZ-MOZ nach MOZ umgestellt wird, wird ja das Vorzeichen des errechneten Wertes (in dem Fall -0,217) gewechselt. Anstatt mit der S7 das Vorzeichen zu wechseln, habe ich einfach den Absolutwert gebildet. Das geht auch gut, solange das Vorzeichen noch positiv ist. Wird es aber negativ, so bekomme ich falsche Ergebnisse. Jetzt stimmen auch die Werte, die ich danach überprüft habe auf max. ein paar Minuten genau . Gleichzeitig habe ich gemerkt, daß heute laut meinem Programm die Sonne um 16.60h untergeht... Schwerer Ausnahmefehler sag ich da nur :sm10:. Habe also statt der round-Funktion die Floor-Funktion genutzt und somit sollte das Problem auch behoben sein *freu*. Morgen werd ich probieren, die Sommerzeit möglichst genau mit einzubauen und dann denke ich, wird die Astrouhr hoffentlich die nächsten Tage fertig sein.


----------



## DannyNRW (9 November 2009)

Hab mittlerweile auch die Sommerzeit in die Astrouhr integriert und fahre nun die einen oder anderen Tests. Was mir aber ein wenig kriminell vorkommt ist folgende Tatsache: Ich habe ja die Ergebnisse von der Zeit für den Sonnenauf- und untergang aufbereitet (Minuten und Stunden gesplittet und jeweils in Int umgewandelt) und dann in ein Merkerwort X geschrieben. Die Geschichte mit der Zugabe von +1Std (Sommerzeit) habe ich in einen anderen Baustein geschrieben und wenn es soweit ist mit der Umstellung auf Sommerzeit, überschreibe ich einfach das Merkerwort X indem ich jeweils für Sonnenauf- und untergang die Stunde dazurechne. (Hoffe ich habe das nun verständlich umschrieben) Kann es nun Probleme geben, wenn ich den Baustein mit der Sommerzeit VOR dem anderen Baustein im OB1 aufrufe? Ich schreibe ja quasi zwei mal etwas in das gleiche Merkerwort, wenn der Fall für Sommerzeit denn nun eingetreten ist.
Ansonsten funktioniert die Astrouhr soweit *freu*.
Habe allerdings noch einige allgemeine Fragen. Was ist nun besser?
- Die ganzen Zwischenergebnisse in Datenbausteinen abzulegen ODER
- für Zwischenergebnisse jeweils Merkerbytes, -worte, -doppelworte
zu belegen?
Arbeite bislang INNERHALB eines Bausteines auch viel mit temporären Variablen, was ja auch Merker einspart. Ist das so legitim?
Das ganze Programm soll ja schon recht strukturiert sein und einen professionellen Eindruck machen. Dazu gehören natürlich auch die ganzen Fehler-OBs usw. ...
Bin da also weiterhin für jeden guten Tipp zu haben.
Danke auch nochmal an dieser Stelle für die guten Hilfestellungen und Denkanstöße .
Ein gutes Forum ist das, hier bleib ich :icon_wink:.
Nur schade, daß ich kein Haus habe, sonst wäre das ne Überlegung als Rolladensteuerung gewesen.
Wünsche allen eine gute N8 .
Daniel


----------



## glauterb (19 November 2009)

Hallo Daniel,
ich habe Deinen Beitrag interessiert verfolgt, denn ich habe ein Haus, elektrische Rolladenantriebe, eine SPS und weigere mich eine externe Astro-Uhr zu installieren.
Meine Frage, wie läuft Dein Projekt? und da ich sowas nicht alleine hin bekomme, kannst Du mir Dein Programm zur Verfügung stellen?

Gisbert


----------



## DannyNRW (19 November 2009)

Hi, das Programm läuft soweit. Die Uhrzeit von Sonnauf- und untergang lassen sich auswerten und danach einen Ausgang setzen. Das Programm kannst gerne haben.


----------



## Wene (30 November 2009)

Hallo Daniel

Ich hätte den Code auch gerne für meine rolläden.

honse1@directbox.com

Vielen Dank

Werner


----------



## scheffi83 (28 August 2016)

Hallo habe im forum gelesen das ihr ein Programm für eine Astro Steuerung S7 habt. Ich würde gerne meine ausen Lampen so wie Rolladen damit steuern habe eine S7 300. 
Es wäre schön wenn ihr mir es senden könntet.

Danke


----------



## zako (30 August 2016)

scheffi83 schrieb:


> Hallo habe im forum gelesen das ihr ein Programm für eine Astro Steuerung S7 habt. Ich würde gerne meine ausen Lampen so wie Rolladen damit steuern habe eine S7 300.
> Es wäre schön wenn ihr mir es senden könntet.
> 
> Danke



Für die S7-1x00 gäbe es auch schon fertig schön nach Styleguide :
https://support.industry.siemens.com/cs/de/de/view/109479728

siehe: FB LGF_Astro


----------



## scheffi83 (2 September 2016)

Danke für die Antwort habe aber leider noch eine S7 300 :-( 
oder kann ich das S7-1x00 in die Klassikwelt übernehmen ? 

Ich hoffe mir kann Jemand dazu weiterhelfen oder mir das Programm senden. Einfach mal melden. Danke euch.


----------



## scheffi83 (13 September 2016)

Hallo nochmal leider habe ich noch keine Infos bekommen ob jemand einen ASTRO Baustein für die Klassikwelt hat. Ich würde euch bitten sich bei mir kurz per Mail zu melden.
Zu dem Thema FB LGF_Astro das habe ich ausprobiert. Bei meiner IM151 geht das nicht. Da müsste ich mir eine neue CPU besorgen.

Siemens Infos : FB LGF_Astro
Alle Bausteine in der Bibliothek sind universell mit folgenden Steuerungen einsetzbar: 


S7-1200 und S7-1200F Produktfamilie
S7-1500 und S7-1500F Produktfamilie
Simulation mit S7-PLCSIM (ab V13 SP1)
Die Bibliothek ist ab STEP 7 V13 SP1 Update 8 einsetzbar.


----------



## Riebi (14 Oktober 2017)

Hallo, ich bin auch auf der Suche nach einer Astro Uhr. Könntest du mir dein Programm auch zur Verfügung stellen? Gruß Olaf


----------



## bmwled (7 Februar 2018)

Hallo zusammen,

trotz aller Astronomie, heißt der Thread "Uhrzeit aus S7-300 auslesen". 
Dazu hätte ich eine Frage. Ich möchte die Uhrzeit der S7-300 mit Hilfe des SFC0 und einer übergeordneten Steuerung synchronisieren.
Die Steuerung gibt mir dazu:

DATE - IT System DATE - 2 Bytes
TIME_OF_DAY - IT System TIME - 4 Bytes


Der SFC0 verlangt allerdings das Format DATE_TIME. Kann man das ganz konvertieren?

Grüße


----------



## Azrael666 (7 Februar 2018)

Antwort aus einem anderen Forum stibitzt:


```
[COLOR=#333333][FONT=Arial]Im einzelnen ist das Format DATE_AND_TIME wie folgt aufgebaut:[/FONT][/COLOR]

[COLOR=#333333][FONT=Arial]1. DATE#1990-01-01 --> (W#16#0000)[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]D#2168-12-31--> (W#16#FF62)[/FONT][/COLOR]

[COLOR=#333333][FONT=Arial]Eine Variable mit Typ DATE wird in einem Wort als vorzeichenlose Festpunktzahl abgelegt. Der Inhalt dieser Variable entspricht der Anzahl der seid dem 1.1.1990 verstrichenen Tage.[/FONT][/COLOR]


[COLOR=#333333][FONT=Arial]2. TIME_OF_DAY#00:00:00 --> (W#16#0000_0000)[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]TOD#23:5:.59.999 -->(W#16#0526_5BFF)[/FONT][/COLOR]

[COLOR=#333333][FONT=Arial]Dieser Typ belegt ein Doppelwort und beinhaltet die anzahl der Millisekunden seid Tagesbeginn [/FONT][/COLOR]
[COLOR=#333333][FONT=Arial](0:00 Uhr).[/FONT][/COLOR]


[COLOR=#333333][FONT=Arial]Zusammengesetzt würde das ganze dann wie folgt aussehen:[/FONT][/COLOR]

[COLOR=#333333][FONT=Arial]3. DATE_AND_TIME#2089-12-31-23:59:59.999[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]DT#1990-01-01-00:00:00 (die Angabe der Millisekunden kann entfallen.)[/FONT][/COLOR]


[COLOR=#333333][FONT=Arial]Zur bearbeitung kann der SFC1 (READ_CLK) verwendet werden.[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dieser teilt das Format dann in acht Bytes auf. Dieser werden dann im BCD-Format gespeichert![/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Hier eine kurze Tabelle:[/FONT][/COLOR]

[B]Byte Inhalt Bereich[/B]

[COLOR=#333333][FONT=Arial]0 Jahr 1990.....2069[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]1 Monat 1....12[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]2 Tag 1....31[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]3Stunde 0...23[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]4 Minute 0....59[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]5 Sekunde 0....59[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]6MSD v. ms 00...99[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]7(MSB) LSV v. ms0....9[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]7(LSB) Wochentag1....7 (1 = Sonntag)
[/FONT][/COLOR]
```


----------



## DeltaMikeAir (7 Februar 2018)

Vielleicht hilft dir dass weiter:

https://support.industry.siemens.co...-(set_clk)-eingestellt-werden-?dti=0&lc=de-WW


----------



## bmwled (7 Februar 2018)

...hat sich mit der Antwort von *DeltaMikeAir* überschnitten


----------



## bmwled (7 Februar 2018)

DeltaMikeAir schrieb:


> Vielleicht hilft dir dass weiter:
> 
> https://support.industry.siemens.co...-(set_clk)-eingestellt-werden-?dti=0&lc=de-WW



Perfekt, danke!


----------



## PN/DP (7 Februar 2018)

bmwled schrieb:


> Ich möchte die Uhrzeit der S7-300 mit Hilfe des SFC0 und einer übergeordneten Steuerung synchronisieren.


Ist die übergeordnete Steuerung auch eine S7? Dann brauchst Du nichts ungenaues und fehleranfälliges selber programmieren sondern kannst in den Eigenschaften der CPU einfach eine Uhrzeitsynchronisation aktivieren.
Wie wird die SIMATIC S7-300 als Uhrzeit-Master oder Uhrzeit-Slave für die Uhrzeitsynchronisation über Industrial Ethernet mit dem SIMATIC Verfahren konfiguriert?
Wie projektieren Sie eine Uhrzeitsynchronisation?
Große Linkliste: Uhrzeitsynchronisation - Zeitsynchronisation im Automatisierungsumfeld

Harald


----------



## bmwled (7 Februar 2018)

PN/DP schrieb:


> Ist die übergeordnete Steuerung auch eine S7? Dann brauchst Du nichts ungenaues und fehleranfälliges selber programmieren sondern kannst in den Eigenschaften der CPU einfach eine Uhrzeitsynchronisation aktivieren.
> Wie wird die SIMATIC S7-300 als Uhrzeit-Master oder Uhrzeit-Slave für die Uhrzeitsynchronisation über Industrial Ethernet mit dem SIMATIC Verfahren konfiguriert?
> Wie projektieren Sie eine Uhrzeitsynchronisation?
> Große Linkliste: Uhrzeitsynchronisation - Zeitsynchronisation im Automatisierungsumfeld
> ...



Eine sehr interessante Funktion. Bei der Anlage kommuniziert der Leitrechner über eine CP343-1.
Das mit dem DB funktioniert bereits. Dank dem klassen Forum!


----------

