Ankündigung

Einklappen
Keine Ankündigung bisher.

Bug im MDT AMS-xx16.02 ?

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

    Bug im MDT AMS-xx16.02 ?

    Mir ist heute beim Einbinden der Stromzählerfunktionen der MDT AMS Aktoren in eine übergeordnete Steuerung aufgefallen, das sie ein etwas umschönes Verhalten zeigen.
    Ich bin mir nicht sicher ob das ein Bug ist oder das ggf. schon überarbeitet wurde, es lässt sich allerdings auf allen bei mir installierten AMS Aktoren reproduzieren.

    Und zwar ist mir aufgefallen, das wenn man das Applikationsprogramm komplett oder partiell neu überträgt, die Stromverbrauchswerte nicht mehr stimmen, und zwar sind diese genau um den Faktor 10 zu hoch.

    vor dem aufspielen ...

    AMS01x.jpg

    ... nach dem aufspielen ...

    AMS02x.jpg ... nach ca. 15 min. werden die Werte wieder richtig gesendet ...

    AMS03x.jpg Dabei spielt es auch keine Rolle, ob die Werte zyklisch vom Aktor gesendet werden oder ich sie aktiv abfrage.

    Kann ich das irgendwie umgehen, da dies bei jedem Update unschöne Einträge in der Datenbank und den Graphen hinterläßt, die wieder manuell für alle Werte gelöscht werden müssen?

    AMS04.jpg

    Danke u. viele Grüße,
    Doc
    Angehängte Dateien
    You do not have permission to view this gallery.
    This gallery has 4 photos.

    #2
    War ein bekanntes Problem, wenn die Werte nach dem Start einmal aktualisiert werden, stimmen sie wieder.
    Die Geräte können über den Support auch upgedatet werden.

    Kommentar


      #3
      Hallo hjk,

      danke dir für die schnelle Antwort.

      Müssen die Geräte für das Update eingeschickt werden?

      VG,
      Doc

      Kommentar


        #4
        Ja, anders geht das nicht.

        Kommentar


          #5
          Danke dir,
          das hatte ich befürchtet.
          Ich werde mich beim Support mal melden.

          VG Doc

          Kommentar


            #6
            Schreibste Dir n kleines Skript drumrum, Hilfsvariable, fertig. Also falls Du den Aktor nicht einschicken möchtest.

            Kommentar


              #7
              Zitat von DerStandart Beitrag anzeigen
              Schreibste Dir n kleines Skript drumrum, Hilfsvariable, fertig. Also falls Du den Aktor nicht einschicken möchtest.
              ... ist doch schon längst erledigt ...

              PHP-Code:
              <?php

              // Script zum lesen der übergeordneten Variablen und schreiben in eine Ziel-Variablen
              // Script einmal direkt ausführen um Ereignisse anzulegen

              // ---------------- Konfiguration ------------------

              $ID_Ziel 11035;

              //------------- ab hier nichts mehr ändern -----------------------
              $Parent IPS_GetParent($_IPS['SELF']);

              // --- zum schnellen anlegen der Ereignisse einmal Script direkt ausführen ---
              if ($_IPS['SENDER'] == "Execute"){
                  if (
              count(IPS_GetScriptEventList($_IPS['SELF'])) == 0){                             // wenn keine Ereignisse zugewiesen
                      
              $eid IPS_CreateEvent(0);                                                      //Ausgelöstes Ereignis
                      
              IPS_SetEventTrigger($eid0$Parent);                                          // bei Variablenaktualisierung
                      
              IPS_SetParent($eid$_IPS['SELF']);                                             //Ereignis zuordnen
                      
              IPS_SetEventAction($eid"{7938A5A2-0981-5FE0-BE6C-8AA610D654EB}", []);         // Aktion zuordnen
                      
              IPS_SetEventActive($eidtrue);                                                 // Ereignis aktivieren
                  
              }
              }

              // --- in neue Variable schreiben
              if ((GetValue($ID_Ziel) > 0.1) and (GetValue($Parent)/1000 > (GetValue($ID_Ziel) * 7))) {       // prüfen ob Wert zu hoch (Bug in MDT AMS Aktoren nach Applikationsupdate)
                  
              return;                                                                                     // Script beenden ohne Wert zu schreiben
              }

              if (
              GetValue($Parent)/1000 GetValue($ID_Ziel)) {                                      // prüfen ob Wert größer geworden ist
                  
              SetValue($ID_Ziel, (GetValue($Parent)/1000));                                       // in kWh umrechnen und neuen wert schreiben
              }

              Kommentar

              Lädt...
              X