# Trigger zur vollen Stunde



## Wago_ (28 September 2019)

Hey,

hat jemand eine Idee wie ich einen trigger programmieren kann der genau immer nur zur vollen Stunde auslöst?
z.B. 12:00, 13:00, 14:00 Uhr usw.

Bin über jeden Tipp dankbar.


----------



## Chräshe (29 September 2019)

Passend zu deiner Steuerung und Programmiersoftware, welche du uns noch nicht verraten hast, gibt es bestimmt ein zugehöriges Handbuch. Darin kannst du per Suchfunktion mal nach „Systemzeit“ und/oder „Schaltuhr“ suchen.


----------



## Heinileini (29 September 2019)

Chräshe schrieb:


> Darin kannst du per Suchfunktion mal nach „Systemzeit“ und/oder „Schaltuhr“ suchen.


Oder nach "Scheduler"?
Oder selber machen. Die Stunde abfragen und mit der Stunde der vorherigen Abfrage vergleichen. Wenn beide Angaben unterschiedlich sind --> triggern!


----------



## Wago_ (29 September 2019)

Hey,

also zuerst ergänzend meine Hardware:
Wago 750-831 mit CodeSys 2.3 

Bisher habe ich es so gelöst:

Aus der Systemzeit die Stunden und Minuten rausgefiltert und mit ein Array, wo alle vollen Stunden hinterlegt sind, verglichen.
Bei einen Treffer ein Impuls erzeugt.
Klappt soweit auch super, hatte nur die Vorstellung das ich es zu kompliziert gelöst hatte.


----------



## Chräshe (29 September 2019)

Da bin ich aber froh, dass du kein Schüler bist, dem am Samstag Abend noch eingefallen ist, was er am Montag als Hausarbeit abgeben muss… 

  Auf jeden Fall wäre es sinnvoll gewesen, wenn du deine bisherige Lösung eingestellt hättest, mit der Frage, ob man das Problem hätte besser lösen können!


----------



## Wago_ (29 September 2019)

Chräshe schrieb:


> Da bin ich aber froh, dass du kein Schüler bist, dem am Samstag Abend noch eingefallen ist, was er am Montag als Hausarbeit abgeben muss…
> 
> Auf jeden Fall wäre es sinnvoll gewesen, wenn du deine bisherige Lösung eingestellt hättest, mit der Frage, ob man das Problem hätte besser lösen können!



Nein ein Schüler bin ich glücklicherweise nicht mehr.
Ich werde morgen meinen Code dazu Posten, wenn ich im Büro bin.
Vielleicht hat dann jemand ein Verbesserungsvorschlag.


Bis morgen


----------



## Heinileini (29 September 2019)

Wago_ schrieb:


> hat jemand eine Idee wie ich einen trigger programmieren kann der genau immer nur zur vollen Stunde auslöst?
> z.B. 12:00, 13:00, 14:00 Uhr usw.





Wago_ schrieb:


> Bisher habe ich es so gelöst:
> Aus der Systemzeit die Stunden und Minuten rausgefiltert und mit *ein Array, wo alle vollen Stunden hinterlegt sind*, verglichen.
> Bei einen Treffer ein Impuls erzeugt.


Wenn Du zu JEDER vollen Stunde triggern willst, benötigst Du kein Array, wo alle vollen Stunden hinterlegt sind. Das Array könnte sinnvoll sein, wenn Du in einer Liste auswählen/vorgeben willst, bei welchen StundenWechseln Du triggern willst und bei welchen nicht.
Auch die Minuten brauchst Du nicht.
Filter die aktuelle Stunde aus,
vergleiche sie mit der Kopie der aktuellen Stunde, die Du im Zyklus zuvor abgespeichert hast,
sind beide Werte identisch, tust Du nichts weiter ...
sind beide Werte unterschiedlich, triggerst Du und kopierst die aktuelle Stunde für den/die nächsten Vergleich[e] in die oben als Kopie bezeichnete Variable (deren Inhalt natürlich für den/die weiteren Vergleiche erhalten bleiben muss - bis Du sie beim nächsten Triggern aktualisierst).

```
bTrigger := StundeAlt <> StundeAkt;
StundeAlt := StundeAkt;

// oder

bTrigger := StundeAlt <> StundeAkt;
IF bTrigger THEN StundeAlt := StundeAkt; END_IF;
```


----------



## PN/DP (30 September 2019)

Drüber nachdenken: Was soll passieren, wenn durch die Sommerzeit/Winterzeit-Umstellung die Uhrzeit von 02:59 auf 02:00 springt (und im umgekehrten Fall?), oder falls durch eine Uhrzeit-Synchronisation die Uhr auf eine Zeit kurz vor der vollen Stunde zurückspringt?

Harald


----------



## Heinileini (30 September 2019)

PN/DP schrieb:


> Drüber nachdenken: Was soll passieren, wenn durch die Sommerzeit/Winterzeit-Umstellung die Uhrzeit von 02:59 auf 02:00 springt (und im umgekehrten Fall?), ...


Darüber sollten mal diejenigen nachdenken, die die Umstellungen zwischen der SommerZeit und der richtigen Zeit erfunden haben bzw. beibehalten wollen!!! 
Der Wechsel von 02:59 auf 02:00 ist "unkritisch" - diese Stunde dauert nun mal 2 Stunden und wird deshalb erst nach 2 Stunden voll. 
Der umgekehrte Wechsel ist auch kein Thema - die Stunde findet nicht statt und kann somit nicht "voll" werden. Also: alles paletti!

UhrzeitSynchronisation ist allerdings der Hammer! Da muss man pfuschen. Ich würde mit dem TriggerImpuls eine AusschaltVerzögerung starten, die 30 Minuten lang die Bildung eines weiteren TriggerImpulses unterdrückt.


----------



## Holzmichl (30 September 2019)

Ich hab dieses Problem bis jetzt immer so gelöst, dass ich die Minuten der Lokalzeit mit 0 verglichen habe und mit p_trig eine Flanke gebildet habe.
Dann brauche ich keinen Stundenmerker etc und habe auch kein Problem mit Uhrzeitumstellung.


----------



## Heinileini (30 September 2019)

Holzmichl schrieb:


> Ich hab dieses Problem bis jetzt immer so gelöst, dass ich die Minuten der Lokalzeit mit 0 verglichen habe und mit p_trig eine Flanke gebildet habe.


Du bist Dir aber darüber im Klaren, dass Du damit die Befürworter der ZeitUmstellung unterstützt!?
Ich sehe es so: bei der Umstellung auf SommerZeit gewähren wir den Befürwortern einen zinslosen Kredit von 1 Stunde über die Laufzeit von 7 Monaten!!!
Kleiner Trost: da zinslos, fallen also auch keine NegativZinsen an.


----------



## Wago_ (30 September 2019)

Erstmal vielen Dank für die Ideen und Ratschläge, ich wusste doch das ich es wieder zu kompliziert umgesetzt habe.
Werde es die Woche anpassen und das Ergebnis rein stellen für den nächsten der sowas benötigt


----------

