Ankündigung

Einklappen
Keine Ankündigung bisher.

X1 Logik - Wie die Uhrzeit auswerten?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    X1 Logik - Wie die Uhrzeit auswerten?

    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?


    #2
    Der Baustein Datum und Uhrzeit gibt Dir Stunde aus.
    Mit 2 Vergleichern prüfst Du auf:
    1. >= 6
    2. <=12
    Die Ausgänge der Vergleicher gibst Du auf ein Und

    Kommentar


      #3
      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


        #4
        Das ist richtig, das hatte ich vorausgesetzt. Zeit / Datum muß vom Bus kommen, was aber nicht heißt, daß das nicht auch der X1 liefern kann (NTP)

        Kommentar


          #5
          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


            #6
            mach mal am Ausgang Deines Eingangs Zeit einen Typkonverter, dann passt es auch mit nur Zeit

            Kommentar


              #7
              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


                #8
                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


                  #9
                  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


                    #10
                    So funktionierts, der Trick ist die "Ortszeit" als Gerätevariable vom X1 zu nehmen. Etwas versteckt, siehe Screenshots
                    Angehängte Dateien

                    Kommentar


                      #11
                      Mal eingeworfen: Warum nicht einfach eine Schaltuhr anlegen von 6 - 12Uhr. Dann haste doch für die Logik immer in der Zeit ne "1". Kannste dir doch Module sparen und es ist übersichtlicher.

                      Kommentar


                        #12
                        madex Wie lässt sich die Ortszeit als Vorgabewert einstellen?

                        Kommentar


                          #13
                          Zitat von pkau Beitrag anzeigen
                          Wie lässt sich die Ortszeit als Vorgabewert einstellen?
                          Die Ortszeit liefert der X1, er holt sie vom Zeitserver.
                          Da gibt es nichts einzustellen (außer den Zeitserver).

                          Kommentar


                            #14
                            Ich glaube, du meinst die Zeit einstellen ohne aktive Internetverbindung. Ich habe in Erinnerung, dass man bei den Gerätedatenpunkten die Zeit aktualisieren kann, weiß aber nicht mehr wo das genau war.
                            Viel Erfolg beim Suchen.
                            Florian

                            Kommentar


                              #15
                              Das geht im Datenpunktmonitor. Dort kann man auch schreiben...

                              Kommentar

                              Lädt...
                              X