Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit der Funktion after bzw. delay

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

    [EibStudio] Probleme mit der Funktion after bzw. delay

    Hallo zusammen,

    ich versuche gerade eine Alarmanlagenfunktion mit dem eibpc zu realisieren (allerdings ist dies eher nebensächlich). Dabei möchte ich die Funktion delay zwecks Zeitverzug bestimmter Funktionen nutzen (s. Code Ausschnitt).

    //automatische Deaktivierung bei ausgelöstem Alarm nach 15 min
    if (afterc(Alarm_ausgeloest==EIN, 900000u64,xT3)) then {
    write ("OG Aussen S3 Sirene schalten schalten-9/0/200",AUS);
    Sirene_Status=AUS;
    Alarm_ausgeloest=AUS
    } endif

    Mein Problem ist, dass die bei after angegebene Zeit von 900000 ms nicht 15 min in der Realität entspricht, sondern ca. die 8 fache Zeit in Anspruch nimmt, d.h. erst nach ca. 1,5 h ausgelöst wird. Dieses Problem habe ich im gesamten Programm mit allen Funktionen die after oder delay nutzen.

    Überprüft habe ich dies durch beobachten der Variablen xT3 im Debugger, welche die verbleibende Zeit zurück gibt.

    Als Performance Einstellung des eibpc habe ich die Standardeinstellungen genutzt.

    [Performance]
    // Performance Einstellungen
    20
    250
    15

    Hat jemand eine Idee woran dies liegen kann?

    Vielen Dank im Voraus für Tipps.

    Beste Grüße
    Sven

    #2
    Zitat von Silberrot Beitrag anzeigen
    Als Performance Einstellung des eibpc habe ich die Standardeinstellungen genutzt.
    Neustart und/oder andere Performance-Einstellungen hast du schon probiert?

    Programmlauf alle ms würde ich mal probieren.

    Stimmen die Zeiten denn, wenn du die Werte einfach durch 8 geteilt verwendest?
    BR
    Marc

    Kommentar


      #3
      Hallo,

      Einen Neustart und veränderte Performanceeinstellungen habe ich schon probiert, leider ändert sich an dem Problem jedoch nichts.

      Bzgl. Dem Faktor, dieser ist nicht genau 8, jedoch sind alle Zeiten um den gleichen Faktor "langsamer".

      Gruß
      Sven

      Kommentar


        #4
        Zitat von Silberrot Beitrag anzeigen
        Bzgl. Dem Faktor, dieser ist nicht genau 8, jedoch sind alle Zeiten um den gleichen Faktor "langsamer".
        Stimmt denn die anderen Zeitfunktionen wie cycle(0,10)? Welche Zeiteinstellung (ntp) hast Du? Standard?
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          ntp habe ich nicht verändert, steht auf den Standardeinstellungen. Cycle habe ich in meinem Programm bisher nicht verwendet, daher kann ich dazu keine Aussage treffen. Diese Funktion müsste ich erst zu Testzwecken einbauen oder gibt es eine kurze Programmroutine zum testen.

          Gruß
          Sven

          Kommentar


            #6
            Zitat von Silberrot Beitrag anzeigen
            ntp habe ich nicht verändert, steht auf den Standardeinstellungen. Cycle habe ich in meinem Programm bisher nicht verwendet, daher kann ich dazu keine Aussage treffen.
            So sollte alle 10 Sekunden was geschrieben werden:
            [highlight=epc]
            If cycle(0,10) then wirte(GA, wert) endif
            [/highlight]
            Sollte das nicht der Fall sein, bitte mal nochmals das aktuelle patch drüberbügeln. Wenn das auch nicht hilft, schauen wir uns den bei uns mal an. Bitte dann mit eibpc@enertex.de Kontakt aufnehmen. Heute ist allerdings noch Feiertag in Bayern...
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              Ich habe die cycle Funktion soeben getestet.

              Speicher-Auslastung des eibpc ca. 1,8%:
              Wenn ich mein Programm nahezu komplett lösche, so dass die Speicher-Auslastung des eibpc nur ca. 1,8% beträgt, sendet die cycle Funktion alle 10 Sekunden den Befehl --> dann ist alles so wie es sein soll.

              Speicher-Auslastung des eibpc 57,5%
              Wenn ich die cycle Funktion in mein Programm einbinde, funktioniert die Abarbeitung nicht mehr korrekt. Aus den 10s Cycle werden dann 1min12s bis 1min42s, s. Ausschnitt aus dem Gruppenadressen Protokoll. Die Zykluszeit ist auch nicht mehr konstant.

              Wo sollte ich anfangen zu suchen bzw. kann ich Euch bei enertex das Programm zum check zur Verfügung stellen? Das aktuelle Patch habe ich einspielt, dies ändert jedoch nichts daran.
              Danke im Voraus.

              2014-01-06 19:49:34, EibPC, "OG Aussen S3 Sirene schalten schalten-9/0/200", Binärwert, EIN, Schreiben, bc 00 00 48 c8 e1 00 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              2014-01-06 19:50:46, EibPC, "OG Aussen S3 Sirene schalten schalten-9/0/200", Binärwert, EIN, Schreiben, bc 00 00 48 c8 e1 00 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              2014-01-06 19:52:25, EibPC, "OG Aussen S3 Sirene schalten schalten-9/0/200", Binärwert, EIN, Schreiben, bc 00 00 48 c8 e1 00 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              2014-01-06 19:54:07, EibPC, "OG Aussen S3 Sirene schalten schalten-9/0/200", Binärwert, EIN, Schreiben, bc 00 00 48 c8 e1 00 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              2014-01-06 19:55:41, EibPC, "OG Aussen S3 Sirene schalten schalten-9/0/200", Binärwert, EIN, Schreiben, bc 00 00 48 c8 e1 00 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

              Kommentar


                #8
                Zitat von Silberrot Beitrag anzeigen
                Wo sollte ich anfangen zu suchen bzw. kann ich Euch bei enertex das Programm zum check zur Verfügung stellen? Das aktuelle Patch habe ich einspielt, dies ändert jedoch nichts daran.
                Das erste, was ich empfehlen kann, ist die Ereignisse auszulesen. Wenn wir nicht die Anlage vor Ort haben, nutzt dein komplettes Programm bei uns wahrscheinlich nicht viel.

                Um den Fehler zu lokalisieren, musst du Stück für Stück das Programm abspecken, um festzustellen, welcher Code die Performance frist.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  Wie kommt man denn auf über 57% Seicherauslastung?

                  Ich habe ja schon eine umfangreiche Visu, zahlreiche Web Abfragen, mein sehr umfangreiches WP Interface, 19 1-Wire Sensoren und viele Logiken und bin bei 23%.

                  Kommentar


                    #10
                    Hallo,

                    Meine Speicherauslastung beträgt über 60%. Meine Performance geht zeitweise ziemlich in die Knie. Das Programm ist aber nicht so aufgebaut, dass der eibPC viel "gleichzeitig" erledigen muss. Ich vermute daher Fehler bei meiner Programmierung. Habe den Eventspeicher auch ausgelesen. Es wäre schön, wenn die Events irgendwo erklärt wären, damit man weiß, wo man im Code suchen soll, der zu diesem Event führt.

                    Gruß Markus

                    Kommentar


                      #11
                      Zitat von Marha Beitrag anzeigen
                      . Es wäre schön, wenn die Events irgendwo erklärt wären, damit man weiß, wo man im Code suchen soll, der zu diesem Event führt.
                      Das steht auf der Liste für das übernächste Release.
                      Derweil :
                      Wie zeigt der eibpc denn an?
                      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                      Enertex Produkte kaufen

                      Kommentar


                        #12
                        Hallo,

                        Die Speicherauslastung von 57,5% kommt bei mir von den Webserverseiten zur Visualisierung. Ich habe 31 Seiten unter vorrangiger Nutzung der enertex Makros zur Auswertung der Tasten ( pshifter, pbutton, mshifter und verschiedener Zeitschaltuhren).

                        In Hauptprogramm habe ich 1850 Programmzeilen, davon nimmt der Webserver 1100 Programmzeilen ein.

                        Auch wenn ich den kompletten Rest meines Quelltextes lösche ändert dies nichts an dem Performanceeinbruch.

                        Gibt es bestimmte Funktionen, die zu solch einem Performanceeinbruch führen können? Im Handbuch habe ich leider dazu nichts gefunden. Laut Handbuch ist eine unbegrenzte Anzahl von Zeitschaltuhren, delays etc. möglich und erlaubt, so dass das Verhalten bzw. die Gründe für den Performanceeinbruch für mich nicht erklärbar sind. Bisher bin ich davon ausgegangen, dass das Programm "stur" im 1ms Zyklus durchlaufen wird, dies war scheinbar eine falsche Annahme.

                        Die Fehlersuche in meinem Programmcode gestaltet sich auf Grund der relativ langen Übertragungs- und Startzeiten auch relativ mühselig, so dass ich gerne etwas gezielter suchen würde.
                        Weiterhin ist meine Frau nur bedingt begeistert, wenn sich abends beim Neustart immer wieder die Positionen der Rolläden etc. verändern.

                        Für einige Ansätze wäre ich daher sehr dankbar.

                        Gruß
                        Sven

                        Kommentar


                          #13
                          Für einige Ansätze wäre ich daher sehr dankbar.
                          Was zeigt denn nun der Ereignissoeicher an? Was wird beim Drücken des Infobuttons angezeigt?
                          Die Webseiten an sich sind sicher nicht das Problem, da haben andere noch mehr, auch was Timer betrifft, kann ich mir das so nicht vorstellen.
                          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                          Enertex Produkte kaufen

                          Kommentar


                            #14
                            Der Info Button zeigt folgende Werte:

                            IP-Adresse des EibPCs: 192.168.178.22
                            Firmwareversion des EibPCs: v2.400
                            Seriennummer des EibPCs: 00000579
                            Netzwerkeinstellungen: DHCP
                            Netzmaske: 255.255.255.0
                            Gateway: 192.168.178.1
                            Nameserver 1: 192.168.178.1
                            Nameserver 2: ?
                            Nameserver 3: ?
                            Patches:
                            2.314.ptc
                            Boot image:
                            Boot image fixes: 0
                            Boot image updates: 1
                            Uptime:
                            07:16:28 up 8:38, 0 users, load average: 4.20, 4.86, 5.54
                            VPN-Status:
                            The openvpn daemon is not running.
                            Konfigurierte VPN-Benutzer:
                            EIB-Schnittstelle: EIBnet/IP (Verbindung aufgebaut)

                            Der Eventspeicher zeigt folgendes:

                            % Event: "EG Wohnen Heizung Solltemperatur-3/2/0":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:08
                            % Event: "EG Essen Heizung Solltemperatur-3/2/1":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:10
                            % Event: "EG Küche Heizung Solltemperatur-3/2/2":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:11
                            % Event: "EG Gast Heizung Solltemperatur-3/2/3":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:13
                            % Event: "EG Flur Heizung Solltemperatur-3/2/4":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:14
                            % Event: "EG Gäste_WC Heizung Solltemperatur-3/2/5":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:16
                            % Event: "EG HWR Heizung Solltemperatur-3/2/6":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:17
                            % Event: "OG Schlafzimmer Heizung Solltemperatur-3/2/7":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:19
                            % Event: "OG Bad_Eltern Heizung Solltemperatur-3/2/8":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:20
                            % Event: "OG Galerie Heizung Solltemperatur-3/2/9":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:22
                            % Event: "OG Kinderzimmer Heizung Solltemperatur-3/2/10":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:23
                            % Event: "OG Bad_Kind Heizung Solltemperatur-3/2/11":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:25
                            % Event: "OG HWR Heizung Solltemperatur-3/2/12":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:26
                            % Event: "EG Wohnen Heizung Betriebsart-3/4/0":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:28
                            % Event: "EG Essen Heizung Betriebsart-3/4/1":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:29
                            % Event: "EG Küche Heizung Betriebsart-3/4/2":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:31
                            % Event: "EG Gast Heizung Betriebsart-3/4/3":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:32
                            % Event: "EG Flur Heizung Betriebsart-3/4/4":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:34
                            % Event: "EG HWR Heizung Betriebsart-3/4/6":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:35
                            % Event: "OG Bad_Eltern Heizung Betriebsart-3/4/8":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:37
                            % Event: "OG Galerie Heizung Betriebsart-3/4/9":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:38
                            % Event: "OG Kinderzimmer Heizung Betriebsart-3/4/10":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:40
                            % Event: "OG Bad_Kind Heizung Betriebsart-3/4/11":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:41
                            % Event: "OG HWR Heizung Betriebsart-3/4/12":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:43
                            % Event: "Lüftungsanlage L54 Schaltkontakt 1 schalten-3/6/0":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:46
                            % Event: "Lüftungsanlage L54 Schaltkontakt 2 schalten-3/6/1":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:48
                            % Event: "EG Wohnen L29/1 Wandleuchten_Fernseher dimmen absolu dimmen-1/2/1":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:51
                            % Event: "OG Kinderzimmer L32/1 Wandleuchte dimmen absolut dimmen-1/2/114":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:52
                            % Event: "EG Wohnen L29/2 Wandleuchten_Couch dimmen absolut dimmen-1/2/4":ERR_READ_GROUP_ADDRESS@2014-01-07 22:40:54
                            % Event: 0:ERR_EIBNET_IP_L_DATA_CON@2014-01-07 22:41:00
                            % Event: "Anwesenheit gesamt Status-1/4/220":ERR_READ_GROUP_ADDRESS@2014-01-07 22:41:02
                            % Event: 0:ERR_EIBNET_IP_L_DATA_CON@2014-01-07 22:41:02
                            % Event: "Abwesenheit gesamt status-1/4/221":ERR_READ_GROUP_ADDRESS@2014-01-07 22:41:03
                            % Event: "OG Aussen S3 Sirene schalten schalten-9/0/200":ERR_READ_GROUP_ADDRESS@2014-01-07 22:41:08
                            % Event: 0:ERR_EIBNET_IP_L_DATA_CON@2014-01-07 22:46:56
                            % Event: 0:ERR_EIBNET_IP_L_DATA_CON@2014-01-07 22:46:57
                            % Event: 0:ERR_EIBNET_IP_SENDTO_3@2014-01-08 04:52:23
                            % Event: 0:ERR_EIBNET_IP_SENDTO_0@2014-01-08 04:52:25
                            % Event: 0:ERR_EIBNET_IP_SENDTO_0@2014-01-08 04:52:27
                            % Event: 0:ERR_EIBNET_IP_SENDTO_0@2014-01-08 04:52:29
                            % Event: 0:ERR_EIBNET_IP_SENDTO_0@2014-01-08 04:52:31
                            % Event: 0:ERR_EIBNET_IP_SENDTO_0@2014-01-08 04:52:33
                            % Event: 0:ERR_EIBNET_IP_SENDTO_0@2014-01-08 04:52:35

                            Beste Grüße
                            Sven

                            Kommentar


                              #15
                              Ich habe den Ereignisspeicher ausgelesen. Ein Problem scheint durch die Verwendung des Wunderground Makros hier aus dem Forum ausgelöst zu werden.
                              Es gibt mehrere Einträge der Art:
                              sendtcparray(Wunderground.....ERR_PROC_OBJECT_MSG_ OUT Datum-Uhrzeit.
                              Jedes Ereignis taucht zweimal zur selben Uhrzeit auf.
                              Warum gibt es jeden Eintrag zweimal?
                              Was macht der eibPC, wenn erst ein solches Ereignis auslöst? Wird das Programm immernoch in 1ms verarbeitet usw?

                              Gruß Markus

                              Kommentar

                              Lädt...
                              X