Ankündigung

Einklappen
Keine Ankündigung bisher.

ms nicht gleich ms

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

    ms nicht gleich ms

    Hallo zusammen,

    da hier im Frankenland der Regen momentan nicht für die Bewässerung sorgt, habe ich meine Bewässerungsanlage in gang gesetzt.
    Dabei viel mir schon letzte Jahr auf, dass ms nicht gleich ms sind.

    Bsp. Strang A soll 74 min = 4.440.000 ms laufen. Variabel im Debugfenster zeigt für Strang A genau auch diese 4440000 an.
    Tatsächlich läuft der Strang A aber dann 78,47 min = 4.708.000 ms.

    Woher kommt das?

    Gruß
    Ralf

    #2
    bei sooooo vielen ms wird man sich doch wohl mal verzählen dürfen.. bitte
    Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

    Kommentar


      #3
      ja ja Verlust ist immer, in dem Fall sogar Gewinn.
      Aber...... wir sind hier in der Elektro/KNX/Computer/Programmier Ecke. Und da sollte 1 ms = 1ms sein. Wenn der eibPC das anders sieht, dann muss ihm das ja jemand so gesagt haben, von alleine macht der das nicht. Als Maschine von Grund her dumm.
      Also Fehler in der Software?
      Gruß
      Ralf

      Kommentar


        #4
        Mit wieviel Prozent der Lichtgeschwindigkeit bewegt sich denn Dein EibPC?
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          #5
          was ist jetzt der Mehrwert des Beitrages?

          Kommentar


            #6
            Keiner!

            Nimms locker, ich konnte mir nur die Anspielung auf die Relativitätstheorie nicht verkneifen.
            Viele Grüße
            Martin

            There is no cloud. It's only someone else's computer.

            Kommentar


              #7
              Jedenfalls haben wir hier jetzt noch keine sinnvolle Antwort, ich befürchte da muss sich jemand von Enertex zu Wort melden...
              Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

              Kommentar


                #8
                Zitat von Brick Beitrag anzeigen
                Jedenfalls haben wir hier jetzt noch keine sinnvolle Antwort, ich befürchte da muss sich jemand von Enertex zu Wort melden...
                Ich vermute, dass der Timer die Durchlaufzeit der Verarbeitung nicht berücksichtigt, werde das aber in die Entwicklung geben.
                EDIT: wie schaut der Code nun genau aus?
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  Habe das nun mal wie folgt getestet:
                  [highlight=epc]
                  if after(chtime(16,41,00), 74u64*60000u64) then write("InfoLEDAus-0/3/7",AUS) endif
                  [/highlight]
                  und was soll ich sagen: Um 17:55:00 Uhr hat der EibPC exakt ausgelöst, also alles wie es sein soll. Kannst Du mal eine Zeile wie oben einbauen und testen?
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar


                    #10
                    Zitat von enertegus Beitrag anzeigen
                    Habe das nun mal wie folgt getestet:
                    [highlight=epc]
                    if after(chtime(16,41,00), 74u64*60000u64) then write("InfoLEDAus-0/3/7",AUS) endif
                    [/highlight]
                    und was soll ich sagen: Um 17:55:00 Uhr hat der EibPC exakt ausgelöst, also alles wie es sein soll. Kannst Du mal eine Zeile wie oben einbauen und testen?
                    Hallo,

                    vieleicht liegt es daran, dass ich mit delay arbeite, sollte aber eigentlich bzgl. der ms keinen Unterscheid machen.
                    RasenVorn ist eine Variabel, je gößer der Wert in mas, desto größer die Abweichung nach oben
                    [highlight=epc]
                    if Bewaessern==EIN then write("C Rasen vorne-7/0/2",EIN) endif
                    if delay(VentilRasenVorn==EIN,RasenVorn) and Bewaessern==EIN then write ("C Rasen vorne-7/0/2",AUS);Schritt2=EIN endif
                    if Schritt2==EIN then write("B Rasen seitlich-7/0/1",EIN)endif
                    if delay(VentilRasenSeit==EIN,RasenSeitl) and Bewaessern==EIN then write ("B Rasen seitlich-7/0/1",AUS); Schritt2=AUS; Schritt3=EIN endif
                    [/highlight]

                    Kommentar


                      #11
                      Also ich würde ja eher dazu raten das ganze über die Treppenhausfunktion des Aktors zu lösen, denn wenn aus irgend einem Grund der EibPC während der aktiven Bewässerung nicht mehr reagiert oder du zufällig das Programm neu überträgst, dann wird es richtig schon nass auf dem Rasen. Bei den meisten Aktoren kannst du die Zeit für die Treppenhausfunktion über eine Gruppenadresse übergeben. Damit ist gewährleistet, dass der Aktor nach einer bestimmten Zeit sicher wieder auf AUS geht. Falls das nicht geht, dann die Treppenhausfunktion einfach jede Minute neu antriggern.

                      Kommentar


                        #12
                        Zitat von amazing Beitrag anzeigen
                        Hallo,
                        vieleicht liegt es daran, dass ich mit delay arbeite, sollte aber eigentlich bzgl. der ms keinen Unterscheid machen.
                        delay und after arbeiten grundsätzlich gleich, vom gleichen Systemtimer kommend. Daran liegt es per se nicht. Wenn deine Logik aber irgendwie die Variable VentilRasenVorn neu setzt, z.B. wenn du nochmal gedrückt hast etc., dann wird der Timer neu gestartet (soll er ja auch). Du kannst ja einfach mal mit after arbeiten.
                        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                        Enertex Produkte kaufen

                        Kommentar


                          #13
                          Zitat von enertegus Beitrag anzeigen
                          delay und after arbeiten grundsätzlich gleich, vom gleichen Systemtimer kommend. Daran liegt es per se nicht. Wenn deine Logik aber irgendwie die Variable VentilRasenVorn neu setzt, z.B. wenn du nochmal gedrückt hast etc., dann wird der Timer neu gestartet (soll er ja auch). Du kannst ja einfach mal mit after arbeiten.
                          Variable wurde aber nicht neu gesetzt.

                          Kommentar


                            #14
                            Zitat von amazing Beitrag anzeigen
                            Variable wurde aber nicht neu gesetzt.
                            naja, das seh ich anhand der Codezeilen so nicht. Was zeigt denn die Info-Anzeige genau an?
                            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                            Enertex Produkte kaufen

                            Kommentar


                              #15
                              Ich würde für einen Test den Code auf die hierfür notwendigen Zeilen kürzen.
                              Wenn der Timer dann immer noch falsch läuft stimmt was am eibPC nicht.

                              Sollte er dann richtig laufen, würde ich als erstes auf ein Überlast-Problem hin untersuchen. Z.B. das Chart aus diesem Posting "https://knx-user-forum.de/393336-post187.html" einbauen und mal beobachten. Sollte die Zykluszeit auf über 900ms gehen, wird es problematisch -> Code selektiv herausnehmen/hinzufügen und wieder beobachten bis der Schuldige gefunden ist. Dann den Timer erneut testen.

                              Auch den Eventspeicher auslesen. Da könnte ja was zum Problem drinnen stehen.
                              BR
                              Marc

                              Kommentar

                              Lädt...
                              X