Ich möchte im X1 eine Logik erstellen, die bei einer Aktion ("1") vergleicht, ob es gerade zwischen z.B. 6:00 und 12:00 Uhr ist und nur im positiven Fall eine "1" ausgibt. Ich wollte dazu den "Vergleicher" und den Baustein "Datum und Uhrzeit" verwenden. Mir ist aber leider nicht klar, wie ich die aktuelle Zeit mit Hilfe des Bausteins "Datum und Uhrzeit" auswerten kann. Hat jemand einen Tipp für mich?
Ankündigung
Einklappen
Keine Ankündigung bisher.
X1 Logik - Wie die Uhrzeit auswerten?
Einklappen
X
-
So habe ich es mir auch gedacht, bekomme es aber nicht hin. Was mache ich mit dem Eingang dieses Bausteins? Ich dachte, ich müsste hier vielleicht triggern oder einen Eingang mit dem Datum/Zeit Wert des Busses verknüpfen, dessen Wert dieser Baustein dann in die Einzelwerte zerlegt. Komme an dieser Stelle nicht weiter.
Kommentar
-
Mein Problem ist es, die Zeit vom Bus in den Baustein "Datum und Uhrzeit" zu bekommen. Ich habe es so versucht, dass ich einen Eingangsbaustein mit der Gruppenadresse für die Zeit (Datentyp 10.001) verknüpft habe und dessen Ausgang auf den Eingang des Bausteins "Datum und Uhrzeit" gelegt habe. Dann meldet der Simulator aber, dass dies so nicht zugeordnet werden kann. Mache ich das Gleiche mit dem der Gruppenadresse für das Datum (Datentyp 11.001), wird es von Simulator akzeptiert. Aber ich benötige in dem Baustein ja die Zeit, nicht das Datum.
Kommentar
-
Der Typkonverter gibt (zumindest in der Simulation) nur das aktuelle Datum aus, die Zeit verwirft er einfach. Die notwendige Konversion von Typ 10.001 (Wochentag und Uhrzeit) nach 19.001 (Datum und Uhrzeit) beherrscht er nicht. Das ist in der Hilfe zum Projektassistenten auch so dokumentiert.
Kommentar
-
Der Datentyp 10.001 ist wie folgt codiert:
1. Byte: DDDHHHHH - D ist der Wochentag: 0 = unbestimmt; 1 = Mo .. 7 = So; H ist die Stunde 0..23
2. Byte: 00MMMMMM - M ist die Minute im Bereich 0..59
3. Byte: 00SSSSSS - S ist die Sekunde im Bereich 0..59
Wenn in Deiner Zeit kein Wochentag codiert ist, geht deshalb folgendes (zumindest in der Simulation, wo ich für den Eingang ohnehin keinen Wochentag eingeben kann):- Den Eingang (Typ 10.001) direkt (ohne den Baustein "Datum und Uhrzeit") auf die beiden Vergleicher geben.
- Der Vergleichswert muss dann als Zahl angegeben werden, die sich aus der obigen Codierung ergibt. Für 6:00 Uhr ist das z. B. 21600
Sieht dann z. B. für die Zeit von 6:00 bis 12:00 Uhr so aus:
pcinfo.png
Kommentar
-
Ich habe es so umgesetzt und es scheint zu funktionieren. Vielen Dank für die detaillierte Beschreibung! Die Lösung ist auch viel simpler als mein Ansatz - das ist immer besser. :-)
Wenn der X1 Typ 10.001 und 11.001 ausgibt, der Baustein "Datum und Uhrzeit" aber 10.001 nicht akzeptiert (zumindest hat der Simulator bei mir gemeckert) und der Konverter, wie du schreibst, nicht in 19.001 konvertieren kann, frage ich mich weiterhin, wie man die Uhrzeit in diesen Baustein bekommt.
Edit: Habe mir gerade noch mal #6 durchgelesen und den Typ-Konverter, wie vorgeschlagen, aktiviert. Das funktioniert auch, er zeigt mir im Simulator aber auch das Datum an, obwohl ich nur die Zeit setze!?Zuletzt geändert von Elo; 15.11.2017, 16:10.
Kommentar
-
Zitat von pkau Beitrag anzeigenWie lässt sich die Ortszeit als Vorgabewert einstellen?
Da gibt es nichts einzustellen (außer den Zeitserver).
Kommentar
Kommentar