Ankündigung

Einklappen
Keine Ankündigung bisher.

convert Funktion

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

    convert Funktion

    Hallo,

    habe noch ein Problem mit convert oder convert mit mir. Macht mich noch ganz kirre.

    Ich habe einen MDT Schaltaktor mit Stromerkennung (MDT-0816.01 ) im Einsatz.
    Irgendwie werden die Betriebsstunden nicht korrekt angezeigt, d. h viel zu wenige Stunden.
    Geliefert wird der Wert 00 00 24 72 | 1,307411E-41 (s. Bild2) angezeigt wird 1,63 h (s. Bild3), was aber nicht stimmen kann. Beim Schaltaktor ist nicht viel einzustellen, s. Bild 1
    [highlight=epc]
    if stime(0) then pdisplay(5,convert("Wachmaschine Betrieb-6/1/2",0f16),INFO,INACTIVE,GREEN,11) endif
    [/highlight]

    Liefert jetzt der Schaltaktor keinen richtigen Wert oder habe ich falsch konvertiert 0f16? Egal wie, warum wird nicht einfach die tatsächliche Stundenzahl zurückgeliefert und fertig.

    Gruß
    Ralf
    Angehängte Dateien

    #2
    Das Problem hatte ich zunächst auch. Ich lese den MDT Aktor stündlich aus weise der GA dabei explizit u16 zu - damit funktioniert es bei mir.

    Code:
    if mtime(05,00) then read("Lüftung-Betriebsstunden-1/6/12"u16) endif
    Gruß

    Kommentar


      #3
      Zitat von amazing Beitrag anzeigen
      habe noch ein Problem mit convert oder convert mit mir.
      "Wachmaschine Betrieb-6/1/2"
      Das Problem wird sein, dass die GA vom Typ u16 ist, wie meisten Aktoren mit Stromzähler. Leider macht die ETS ja den Export nicht so "genau", und gibt nur 16 Bit an. Der Compiler geht bei 16 Bit als default von fliesskomma aus, und daher werden deine Daten falsch interpretiert, das hat mit Convert nix zu tun.
      Du musst also dem Compiler mitteilen, dass das eine Ganzzahl ist. Das machst du so, indem Du an einer Stelle irgendwo im Programm eine u16 an die GA anhängst.

      if stime(0) then pdisplay(5,convert("Wachmaschine Betrieb-6/1/2"u16,0f16),INFO,INACTIVE,GREEN,11) endif
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #4
        ok probiere aus,

        gilt dann bei mir aber nur für mdt, bei merten habe ich das Problem nicht.

        Gruß
        Ralf

        Kommentar


          #5
          so... sobald ich u16 dort ergänze wo noch mit einem Wert geteilt werden soll kommt eine Fehlermeldung

          Datei: "E:/EibStudio-win/EibstudioData/tmpMacroOut.txt" wurde geschrieben
          Laufzeitfehler in Zeile:[568]
          >if stime(0) then pdisplay(1,convert("Waschmaschine Energieverbrauch-6/1/1"u16,0f16)/1000f16,INFO,INACTIVE,GREEN,11) endif< in der Datei "E:/EibStudio-win/EibstudioData/tmpApp.txt"
          Falscher Datentyp in >"Waschmaschine Energieverbrauch-6/1/1"u16< in >convert(< in >/< in >pdisplay(1< in >if_then stime(0)<
          ID:12
          EibParser wurde mit Fehler beendet.


          Ergänzung von u16 macht nur bei Stunden Siin, bei Strom (mA) kommen viel zu große Zahlen raus, Berechnung von Watt funktioniert dann auch nicht

          Ich beobachta mal

          Kommentar


            #6
            Zitat von amazing Beitrag anzeigen
            Ergänzung von u16 macht nur bei Stunden Siin, bei Strom (mA) kommen viel zu große Zahlen raus, Berechnung von Watt funktioniert dann auch nicht
            Es kommt natürlich auf den Aktor an, und wie die intern den Wert skaliert ausgibt. Welcher Aktor (Link auf dessen Applikationsbeschreibung).
            Der Syntaxfehler kann auch durch folgendes entstehen:
            [highlight=epc]
            // x ist vom Typ f16. Auch meine GA wird durch die Summe, die nur gleiche Datentypen
            // verarbeiten kann, festgelegt:
            x="MeineGA-1/2/3"+3.45f16
            ...
            // Ausgabe
            // Hier wird im Widerspruch zu oben nun MeineGA als u16 definiert. Also wird der
            // Compiler einen Fehler schmeissen.
            if stime(0) then pdisplay("MeineGA-1/2/3"u16 ....) endif
            [/highlight]
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              also habe mal folgendes getestet:

              [highlight=epc]
              if stime(0) then pdisplay(5,convert("Wachmaschine Betrieb-6/1/2"u16,0f16),INFO,INACTIVE,GREEN,11) endif
              [/highlight]

              GA ist lt. Anzeige re. im Fenster u16
              Ergebnisanzeige im Webserver nachdem die WM ca. 1,5h gelaufen ist: 168h, s. Bild 4
              Wert in ETS s. Bild 5
              Die Wattberechnung funktioniert bei hohen mA Werten auch nicht, (s. anderer Thread), bei niedrigeren schon, echt komisch.

              Noch eine Idee, was ich im eibPC einstellen muss, damit der Wert korrekt angezeigt wird?
              Angehängte Dateien

              Kommentar


                #8
                Zitat von amazing Beitrag anzeigen
                Die Wattberechnung funktioniert bei hohen mA Werten auch nicht, (s. anderer Thread), bei niedrigeren schon, echt komisch.
                Wenn die GA schon f16 ist, was der Screenshot vermuten lässt, dann wird das convert überflüssig (aber auch nicht schaden).
                Das Problem wird dann tatsächlich der Wertebereich von f16 sein.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  hat sich alles erledigt, momentan werde die Werte korrekt angezeigt.
                  Ich beobachte.

                  Kommentar


                    #10
                    Zitat von Kahler Beitrag anzeigen
                    Das Problem hatte ich zunächst auch. Ich lese den MDT Aktor stündlich aus weise der GA dabei explizit u16 zu - damit funktioniert es bei mir.

                    Code:
                    if mtime(05,00) then read("Lüftung-Betriebsstunden-1/6/12"u16) endif
                    Gruß
                    Moin,

                    also irgendwie stimmt es doch noch nicht.

                    ets zeigt 1,7 an
                    bei u16 wird im eibPC 170 angezeigt
                    bei f16 wird im eibPC 1,7 angezeigt

                    Generell stimmt der Wert aber nicht. D.h. mdt schickt keine Zahl mit dem tatsächlichen Stunden.
                    Muss ich evtl. die 1,7 in Stundenformat umrechen/konvertieren.

                    Was für Zahlen bei Betriebsstunden zeigt denn der mdt Aktor bei Dir an?

                    Kommentar

                    Lädt...
                    X