Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem bei Start mit Logik -> Multiplexer

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

    Problem bei Start mit Logik -> Multiplexer

    Multiplexer Demo.png
    Liebe Forumsleser,
    sehr geehrte Mitarbeiter von Enertex:

    Beim Multiplexer ist mir in der Logikfunktion eine Anomalie aufgefallen, die vermutlich so nicht beabsichtigt ist:
    Wenn ich obige Funktion nach dem Neustart des EIB-PCs mit der Debugfunktion den Wert auslese haben beide Multiplexer den Wert von 200, obgleich ich in der Funtion nur die Testwerte 111 oder 222 zugelassen habe. Auftreten tut diese Anomalie bei Werten mit u16 - zumindest nur dort ist mir diese aufgefallen.

    Eigentlich wollte ich mit der Funktion einen anderen Fehler dokumentieren: Daher habe ich die Werte für den zweiten Fehler im zweiten Beispiel auf c1400 umgestellt und das Demo angepasst, da es nicht so trivial war den eigentlichen Fehler nachzustellen.


    Multiplexer Demo2.png


    Heute ist der 19.2. also würde das Demo den Wert 111 erwarten lassen, das Ergebnis des Multiplexers ist jedoch 222.
    Morgen früh würde er jedoch bei 222 bleiben und am 22.2 auf 111 zurück wechseln.
    Für dieses Demo habe ich Konstanten mit dem Wert String C1400 verwendet.


    Viele Grüße
    Stefan Haßfurter


    #2
    Hallo,

    könnte sich bitte jemand meinen Fall anschauen und kommentieren. Habe den Eindruck er wurde von Enertex übersehen

    Danke

    Kommentar


      #3
      Hi,

      Wie hast du denn die Tagesschaltuhren konfiguriert? Als "Datum" vermutlich?

      Habe das mal versucht nachzustellen. Zunächst zum ersten Beispiel. Bist du sicher, dass du neu kompiliert und das Programm übertragen hast, bevor du den Multiplexer-Ausgang abgefragt hast? Gerade der Wert 200, der sonst nirgends auftaucht, deutet eher darauf hin, dass ein anderes Objekt abgefragt wird.

      Beim Start steht der Mux-Ausgang immer auf dem ersten Wert. Wird eine der weiteren Bedinungen wahr, ändert sich die Auswahl (interne Variable INT_N_...._selected).
      Beim Test mit dem heutigen Datum liefern die beiden Multiplexer die erwarteten Ausgaben 222 links und 111 rechts. Schalte ich auf gestern so tauschen die Werte wie erwartet.

      Beim Unteren habe ich den 2.3 und den 4.3 als Zeitraum gewählt:
      Am 1.3 ist der Ausgang 222,
      Am 2.3 ist der Ausgang 222,
      Am 4.3 ist der Ausgang 111.

      Beide Beispiele sowohl nach dem Stellen während das Programm läuft als auch wenn das Programm mit einem neuen Datum neu gestartet wurde.

      Wie hast du den Datumswechsel getestet?

      Kommentar


        #4
        Hallo,

        Danke Foobar fürs anschauen.
        die Tagesschaltuhren sind als Datum mit dem jeweils angegbenen Datum konfiguriert.
        Die Werte im aktuellen Beispiel hier jeweils u16.
        Ich habe selbst mein Demo gerade nochmals nachgebaut, um die Vermutung zu überprüfen, dass es ggf. nicht richtig übertragen wurde.
        Ich wähle zum Start des Programmes immer die F3-Taste - Kompilieren und starten aus.

        Multiplex Err.png

        Etwas komisches ist mir diesmal tatsächlich aufgefallen. Beim oberen Bild (hier in diesem Post) beim ersten Mal kompilieren, war der obiger Wert zu anfang 222 (ggf. auch 111 möglich, denke aber mich an die 222 zu erinnern) und ist dann nach ein paar Minuten, in denen ich dieses Bildschirmfoto aufgenommen habe ist er auf 200 gewechselt. Durch weitere Neustarts konnte ich diesen Effekt jedoch nicht mehr reproduzieren. Nun zeigt mir der Debugger nach jedem Neustart mit Kompilierung von Anfang an 200 als Wert

        Wenn das erste mal die Werte geändert werden, ist dieser Fehler weg. Er tritt nur so lange auf, bis zum ersten mal eine Aktualisierung durchgeführt wurde. Also immer vom Neustart bis zur erstmaligen Änderung durch den gesetzten Trigger.

        Getestet hatte ich damals den Datumswechsel durch blosses warten. Diesmal habe ich dieses nicht mehr erneut verifiziert, daher habe ich das Datum belassen.

        Wie gesagt dies ist hier das Beispiel mit den u16 Werten, d.h. Multiplexer und Constanten sind alles u16er.

        Auf das Problem (Urspungspost) mit den c1400 Werten (untere Graphik beim ursprungspost) komme ich später zurück, da ich dann meine Demo wieder entsprechend anpassen muss um den Fehler noch besser beschreiben zu können.

        Danke
        Freundliche Grüße
        Stefan Haßfurter
        Zuletzt geändert von stefan316; 04.03.2022, 07:18.

        Kommentar


          #5
          Kannst du uns bitte mal einen Support-Export deines Projektes per Mail mit Verweis auf diesen Thread senden (über das Fenstermenü->Hilfe)?

          Kommentar

          Lädt...
          X