Ankündigung

Einklappen
Keine Ankündigung bisher.

%-Werte sauber darstellen

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

    #16
    Zitat von salixer Beitrag anzeigen
    Das liegt am Pentium-Bug
    Aha!
    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

    Kommentar


      #17
      Hallo EibPC-Gemeinde!

      Ich möchte das alte Thema gern noch mal aufgreifen, weil ich mal wieder über das gleiche Problem gestoßen bin. :-(

      Diesmal ist es ein WebButton um die Solltemperatur in 0,1° Schritten erhöhen/verringern zu können. Spätestens nach 3 Klicks auf den Plus-Knopf steht da bei Startwert 20.0 nicht 20.3 sondern 20.29 :-(

      Ich glaub ja nach wie vor, dass das besser geht! Vorallem mit Michaels Aussage, dass intern eigentlich alles als f32 gerechnet wird.
      Wenn dem so wäre, wie kann es dann sein, dass das Ergebnis nach drei Additionen schon falsch ist? Und kommt mir nicht mit dem KNX-Standard, daran liegt es nicht! Wenn ich am TS2+ den Plus-Knopf drücke kann ich das bis zum Anschlag machen und es wird immer sauber um 0.1 erhöht.

      Das geht mit f16 und wenn intern vorher eh alle Werte in f32 gerechnet werden, geht das erst recht!

      Ich bau jetzt halt wieder 35 convert-Funktionen ein, aber schaut euch das bitte doch noch mal an! Da kann irgend was nciht stimmen!

      Danke!

      Uwe
      ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

      Kommentar


        #18
        Zitat von Uwe! Beitrag anzeigen
        Ich glaub ja nach wie vor, dass das besser geht! Vorallem mit Michaels Aussage, dass intern eigentlich alles als f32 gerechnet wird.
        Wenn dem so wäre, wie kann es dann sein, dass das Ergebnis nach drei Additionen schon falsch ist?
        Weil er von f16 auf f32 konvertiert, dort genauer rechnet und dann von f32 auf f16 zurückrundet. Ich kann das gerne noch einmal an die Firmewaretruppe weitergeben.
        Das geht mit f16 und wenn intern vorher eh alle Werte in f32 gerechnet werden, geht das erst recht!
        Die Krux ist das Umsetzen auf die f16 und dann rechnen in f32, sowie ich das verstanden habe.
        Ich bau jetzt halt wieder 35 convert-Funktionen ein, aber schaut euch das bitte doch noch mal an! Da kann irgend was nciht stimmen!
        versprochen!
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #19


          Aktueller Versuch mit f32:
          [highlight=epc]
          if pbutton(20,93)==1 then write("Vorgabe EG Flur-6/7/20",convert(convert("Soll EG Flur-11/4/20",0.0f32)+0.1f32,0.0f16)) ; read("Soll EG Flur-11/4/20") endif
          if pbutton(20,93)==2 then write("Vorgabe EG Flur-6/7/20",convert(convert("Soll EG Flur-11/4/20",0.0f32)-0.1f32,0.0f16)) ; read("Soll EG Flur-11/4/20") endif
          [/highlight]

          zweimal auf "+" und ich bin statt bei 20,2 bei 20,19
          ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

          Kommentar


            #20
            Und was passiert, wenn du es ganzzahlig rechnest mit +1 und dann für die Anzeige bzw. den Regler /10 dividierst?

            Oder richtig runden mit +0,4 * 10 und convert in Ganzzahl und dann /10 dann müßten auch immer richtige Werte mit nur 1 Nachkommastelle rauskommen.

            PS: Was passiert, wenn du den Wert nicht über read zurückliest, bzw. welcher Wert wird im BUS-Monitor angezeigt, der vom Bus zurück kommt. Den read-Befehl könntest du an der Stelle komplett löschen.
            Der schöne Niederrhein läßt Grüssen

            Andreas


            Alter Hof mit neuer Technik

            Kommentar


              #21
              Zitat von anlo007 Beitrag anzeigen
              Und was passiert, wenn du es ganzzahlig rechnest mit +1 und dann für die Anzeige bzw. den Regler /10 dividierst?
              probier ich spaßeshalber aus

              Zitat von anlo007 Beitrag anzeigen
              Oder richtig runden mit +0,4 * 10 und convert in Ganzzahl und dann /10 dann müßten auch immer richtige Werte mit nur 1 Nachkommastelle rauskommen.
              das würde dann funktionieren, wenn es tatsächlich Rundungsprobleme wären, aber bei 20+0,1+0,1=20,19 läuft einfach was falsch. Außerdem wäre richtig runden doch +0,5 oder?

              Zitat von anlo007 Beitrag anzeigen
              PS: Was passiert, wenn du den Wert nicht über read zurückliest, bzw. welcher Wert wird im BUS-Monitor angezeigt, der vom Bus zurück kommt. Den read-Befehl könntest du an der Stelle komplett löschen.
              Der Read ist nötig, weil der TS2+ zwei getrennte Objekte (und GA) für das Setzen des Sollwertes und des Auslesen des Sollwertes hat. Ich schreibe also den neuen Sollwert an GA1 und lese für die Anzeige den Wert von GA2.
              ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

              Kommentar


                #22
                also dieser Code:
                [highlight=epc]
                if pbutton(20,93)==1 then write("Vorgabe EG Flur-6/7/20",("Soll EG Flur-11/4/20"*10.0f16+1f16)/10.0f16) ; read("Soll EG Flur-11/4/20") endif
                if pbutton(20,93)==2 then write("Vorgabe EG Flur-6/7/20",("Soll EG Flur-11/4/20"*10.0f16-1f16)/10.0f16) ; read("Soll EG Flur-11/4/20") endif
                [/highlight]
                liefert:
                20.0 + 0.1 = 20.09 + 0.1 = 20.17

                ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                Kommentar


                  #23
                  Zitat von Uwe! Beitrag anzeigen
                  also dieser Code:
                  20.0 + 0.1 = 20.09 + 0.1 = 20.17
                  Tipp mal auf den Taschenrechner 10x die Wurzel und dann 10x Quadrat...
                  Aber beruhigt Euch wieder. Wir werden das nochmals eingehend prüfen und dann hier ggf. erklären oder fixen.
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar


                    #24
                    Zitat von Uwe! Beitrag anzeigen

                    Der Read ist nötig, weil der TS2+ zwei getrennte Objekte (und GA) für das Setzen des Sollwertes und des Auslesen des Sollwertes hat. Ich schreibe also den neuen Sollwert an GA1 und lese für die Anzeige den Wert von GA2.
                    Und welcher Wert kommt vom TS2+ auf GA2 zurück laut Monitor?

                    Bei dem Ganzzahlig rechnen meinte ich nicht mit F16 Zahlen sondern U08 Zahlen rechnen um die weiteren Nachkommastellen abzuschneiden.
                    Der schöne Niederrhein läßt Grüssen

                    Andreas


                    Alter Hof mit neuer Technik

                    Kommentar


                      #25
                      Zitat von enertegus Beitrag anzeigen
                      Tipp mal auf den Taschenrechner 10x die Wurzel und dann 10x Quadrat...
                      Aber beruhigt Euch wieder. Wir werden das nochmals eingehend prüfen und dann hier ggf. erklären oder fixen.
                      Also Michael,

                      Wenn ich 1+1 rechne ist alles als 2(,0000) einfach falsch.
                      Das Ergebnis von Uwe! 20.0 + 0.1 = 20.09 + 0.1 = 20.17 ist etwas arg daneben, oder? Es geht ja hier nicht um die 10 Nachkommastelle, sondern...

                      Aber das ist natürlich nur meine persönliche Meinung!

                      Mit den 10fach-Wurzeln: Das kommt auf den Taschen-Rechner (HP!) an...

                      Grüße,
                      Markus

                      Kommentar


                        #26
                        Zitat von enertegus Beitrag anzeigen
                        Tipp mal auf den Taschenrechner 10x die Wurzel und dann 10x Quadrat...
                        Aber beruhigt Euch wieder.
                        Also zum einen bin ich ganz ruhig (oder hattest Du gestern einen anderen Eindruck)
                        Zum anderne ist 10x Wurzel/Quadrat ist halt nicht ganz vergleichbar mit einer einfachen Addition...Und weder 20.0 noch 20.1 noch 20.2 noch 0.1 sind Zahlen, die mit f16 nicht verlustfrei abbildbar wären!

                        Wenn ich 1/3*3 rechne und dann kein 1.000 bekomme, dann hab ich dafür Verständnis.
                        ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                        Kommentar


                          #27
                          Zitat von anlo007 Beitrag anzeigen
                          Und welcher Wert kommt vom TS2+ auf GA2 zurück laut Monitor?.
                          Der Wert, den der EIbPC schreibt, also z. B. die 20.17

                          Zitat von anlo007 Beitrag anzeigen
                          Bei dem Ganzzahlig rechnen meinte ich nicht mit F16 Zahlen sondern U08 Zahlen rechnen um die weiteren Nachkommastellen abzuschneiden.
                          Schon klar! Die Version hab ich noch nicht durch, mach ich auch noch und berichte.
                          ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                          Kommentar

                          Lädt...
                          X