Ankündigung

Einklappen
Keine Ankündigung bisher.

Geheimnisse des EibPC: Heute f16

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

    #16
    Zitat von enertegus Beitrag anzeigen
    Warum fragst Du dann hier nicht? Zum einen würde es uns die Notwendigkeit vor Augen führen, wenn wir dies noch nicht erkannt haben und zum anderen würde das Problem sich zumindest gelöst haben.
    Hi Michael,

    falls Du mit hier das Forum meinst:

    https://knx-user-forum.de/eibpc/1958...tml#post224070

    Das Chart in dem Thread ist übrigens von der Skalierung noch schöner ...

    Drei Nachkommastellen bei der Raumtemperatur haben schon fast etwas dramatisches.

    Die Antwort auf die Frage an Dich am Ende des Threads bist Du mir ja noch schuldig.

    Ich kenne den Aufwand auf Eurer Seite für ein Release natürlich nicht, finde es aber grundsätzlich einen sehr guten Ansatz bei bestimmten Bugs ein schnelles Zwischenrelease nachzuschieben.

    Viele Grüße

    Michael

    Kommentar


      #17
      Zitat von Jambala Beitrag anzeigen
      Drei Nachkommastellen bei der Raumtemperatur haben schon fast etwas dramatisches.
      Sorry, den hatte ich überlesen.

      Es wird sicher was kommen bzw. weiterentwickelt, aber das wird nun erst mal dauern. Wir werden um das Fixen von Bugs bemüht sein und dann werden wir unseren Releaseplan und -Strategie festlegen. Ich werde hierzu auch noch was im Werkstattthread schreiben.
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #18
        Das ganze Thema ist ja auch nicht neu!

        Ich hab das hier und hier schon mal beschrieben, dass es eindeutig NICHT am KNX-Datentyp, sondern am EibPc liegt! Nicht so schön wie Bernd, aber letzlich stand da schon alles wissenswerte drin. Und die KNX mag an vielem schuld sein, daran sicher nicht!

        Zitat von enertegus Beitrag anzeigen
        Und dann teste ich das wie oben und sehe, dass 20-0.1 = 19.9 ist, schaut also gut aus.
        Dann teste doch mal dieses oder dieses Beispiel und erklär mir warum das nicht funktioniert. Selbst mit f32 wird da fast genau so falsch gerechnet wie mit f16! Und mir reicht als Erklärung nicht, dass Brüssel schuld ist!
        ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

        Kommentar


          #19
          Zitat von Uwe! Beitrag anzeigen
          Das ganze Thema ist ja auch nicht neu!
          Dann teste doch mal dieses oder dieses Beispiel und erklär mir warum das nicht funktioniert.
          Ich habe folgendes Programm getestet:

          [highlight=epc]
          [EibPC]
          a=0
          z=convert('6/7/20'f16,$$c14)
          s='6/7/21'c14
          if a<10 and cycle(0,1) then write('6/7/20'f16,(2.0*10.0f16+convert(a,1f16)/10.0f16));a=a+1 endif
          if a>9 and cycle(0,1) then write('6/7/20'f16,(2.0*10.0f16-convert(a,1f16)/10.0f16)); if a<20 then a=a+1 endif endif
          if change(z) then write('6/7/21'c14,z) endif
          [/highlight]
          Der Oiutput

          % 2012-05-15 10:37:29 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 0.00 | Typ: Text | Schreiben
          % 2012-05-15 10:37:30 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 20.1 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:30 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 20.10 | Typ: Text | Schreiben
          % 2012-05-15 10:37:31 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 20.2 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:31 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 20.20 | Typ: Text | Schreiben
          % 2012-05-15 10:37:32 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 20.3 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:32 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 20.30 | Typ: Text | Schreiben
          % 2012-05-15 10:37:33 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 20.400000000000002 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:33 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 20.40 | Typ: Text | Schreiben
          % 2012-05-15 10:37:34 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 20.5 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:34 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 20.50 | Typ: Text | Schreiben
          % 2012-05-15 10:37:35 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 20.6 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:35 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 20.60 | Typ: Text | Schreiben
          % 2012-05-15 10:37:36 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 20.7 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:36 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 20.70 | Typ: Text | Schreiben
          % 2012-05-15 10:37:37 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 20.8 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:37 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 20.80 | Typ: Text | Schreiben
          % 2012-05-15 10:37:38 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 20.900000000000002 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:38 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 20.90 | Typ: Text | Schreiben
          % 2012-05-15 10:37:39 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 21.0 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:39 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 18.900000000000002 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:39 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 21.00 | Typ: Text | Schreiben
          % 2012-05-15 10:37:39 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 18.90 | Typ: Text | Schreiben
          % 2012-05-15 10:37:40 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 18.8 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:40 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 18.80 | Typ: Text | Schreiben
          % 2012-05-15 10:37:41 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 18.7 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:41 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 18.70 | Typ: Text | Schreiben
          % 2012-05-15 10:37:42 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 18.6 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:42 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 18.60 | Typ: Text | Schreiben
          % 2012-05-15 10:37:43 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 18.5 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:43 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 18.50 | Typ: Text | Schreiben
          % 2012-05-15 10:37:44 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 18.400000000000002 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:44 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 18.40 | Typ: Text | Schreiben
          % 2012-05-15 10:37:45 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 18.3 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:45 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 18.30 | Typ: Text | Schreiben
          % 2012-05-15 10:37:46 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 18.2 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:46 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 18.20 | Typ: Text | Schreiben
          % 2012-05-15 10:37:47 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 18.1 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:47 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 18.10 | Typ: Text | Schreiben
          % 2012-05-15 10:37:48 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 18.0 | Typ: 16-Bit-Fliesskommazahl | Schreiben
          % 2012-05-15 10:37:48 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 18.00 | Typ: Text | Schreiben
          %

          Wie man erkennt, kann der EibPC "richtig" mit f16 rechnen. Der Debugger stellt das Ergebnis der Konvertierung mit seiner 32 Bit Genauigkeit dar.
          Ich setze das auf die Liste um Verwirrung zu vermeiden. Gefixt wird zeitnah (<2Wochen).
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar


            #20
            Hi Michael! :-)

            ich werd das Beispiel mal 1:1 übernehemen und sehen, was bei mir passiert. Sollte ja wohl identisch sein.

            Was kommt raus, wenn Du das "*10" und "/10" weg lässt? Es sollte ja wohl auch ohne gehen, oder?

            Kannst Du das Beispiel von mir aber bitte auch mal 1:1 übernehmen, also inkl. Anzeige im Webserver. Da funktioniert es eben bei mir nicht!

            PS: was ich grad noch sehe: Der große Unterschied zu meinem Code ist natürlich, dass Du immer nur eine einzelen Addition machst, also
            20+0.1 = 20.1
            20+0.2 = 20.2
            20+0.3 = 20.3

            DAS funktioniert selbstverständlich!

            Addier doch mal 10 mal in einer Schleife immer 0.1 zum Ergebnis aus der Vorrunde dazu und dann 10 mal subtrahieren.
            ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

            Kommentar


              #21
              Zitat von Uwe! Beitrag anzeigen
              Hi Michael! :-)
              Was kommt raus, wenn Du das "*10" und "/10" weg lässt? Es sollte ja wohl auch ohne gehen, oder?
              kalr
              Kannst Du das Beispiel von mir aber bitte auch mal 1:1 übernehmen, also inkl. Anzeige im Webserver. Da funktioniert es eben bei mir nicht!
              Dazu bräuchte ich dein Beispiel lauffähig hier.
              PS: was ich grad noch sehe: Der große Unterschied zu meinem Code ist natürlich, dass Du immer nur eine einzelen Addition machst, also
              DAS funktioniert selbstverständlich!
              Das versteh ich nicht. Ich mache eine fortlaufende Addition um 0.1 (Subtraction um 0.1), extra mit Division, um Rundungen zu provozieren.
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #22
                Zitat von enertegus Beitrag anzeigen
                Das versteh ich nicht. Ich mache eine fortlaufende Addition um 0.1 (Subtraction um 0.1), extra mit Division, um Rundungen zu provozieren.
                Du rechnest:
                x= 2*10+a/10 mit a = [0..9]
                und
                x=2*10-a/10 mit a = [10..20]

                Da gibt es keine Iteration.
                BR
                Marc

                Kommentar


                  #23
                  Zitat von saft6luck Beitrag anzeigen
                  Da gibt es keine Iteration.
                  Genau! (so hab ich den Code jedenfalls auch verstanden)

                  Du machst fortlaufend Additionen mit einem festen und einem steigenden Summanten.

                  Ich mache sinngemäß:

                  A = A + 0.1
                  A = A + 0.1
                  A = A + 0.1
                  A = A + 0.1

                  so daß sich Abweichungen mit "aufaddieren". Du macht "nur" 10 Additionen mit zwei jeweils "sauberen" Werten.
                  ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                  Kommentar


                    #24
                    Zitat von enertegus Beitrag anzeigen
                    Dazu bräuchte ich dein Beispiel lauffähig hier.
                    Bekommst Du heute Abend.

                    Da sind eh die Schwiegereltern da, da tut Ablenkung gut ;-)
                    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                    Kommentar


                      #25
                      Du machst fortlaufend Additionen mit einem festen und einem steigenden Summanten.
                      [highlight=epc]
                      [EibPC]
                      a=0
                      z=convert('6/7/20'f16,$$c14)
                      s='6/7/21'c14
                      if a<10 and cycle(0,1) then write('6/7/20'f16,'6/7/20'f16+convert(a,1f16)/10f16);a=a+1 endif
                      if a>9 and cycle(0,1) then write('6/7/20'f16,'6/7/20'f16-convert(a,1f16)/10f16); if a<20 then a=a+1 endif endif
                      if change(z) then write('6/7/21'c14,z) endif
                      [/highlight]
                      liefert nun:
                      2012-05-15 17:36:14 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 0.00 | Typ: Text | Schreiben
                      % 2012-05-15 17:36:14 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 0.1 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                      % 2012-05-15 17:36:14 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 0.10 | Typ: Text | Schreiben
                      % 2012-05-15 17:36:15 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 0.3 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                      % 2012-05-15 17:36:15 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 0.30 | Typ: Text | Schreiben
                      % 2012-05-15 17:36:16 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 0.6 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                      % 2012-05-15 17:36:16 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 0.60 | Typ: Text | Schreiben
                      % 2012-05-15 17:36:17 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 1.0 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                      % 2012-05-15 17:36:17 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 1.00 | Typ: Text | Schreiben
                      % 2012-05-15 17:36:18 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 1.5 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                      % 2012-05-15 17:36:18 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 1.50 | Typ: Text | Schreiben
                      % 2012-05-15 17:36:19 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 2.1 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                      % 2012-05-15 17:36:19 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 2.10 | Typ: Text | Schreiben
                      % 2012-05-15 17:36:20 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 2.8000000000000003 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                      % 2012-05-15 17:36:20 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 2.80 | Typ: Text | Schreiben
                      % 2012-05-15 17:36:21 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 3.6 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                      % 2012-05-15 17:36:21 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 3.60 | Typ: Text | Schreiben
                      % 2012-05-15 17:36:22 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 4.5 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                      % 2012-05-15 17:36:22 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 4.50 | Typ: Text | Schreiben
                      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                      Enertex Produkte kaufen

                      Kommentar


                        #26
                        Zitat von enertegus Beitrag anzeigen
                        liefert nun:
                        2012-05-15 17:36:14 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 0.00 | Typ: Text | Schreiben
                        % 2012-05-15 17:36:14 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 0.1 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                        % 2012-05-15 17:36:14 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 0.10 | Typ: Text | Schreiben
                        % 2012-05-15 17:36:15 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 0.3 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                        % 2012-05-15 17:36:15 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 0.30 | Typ: Text | Schreiben
                        % 2012-05-15 17:36:16 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 0.6 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                        % 2012-05-15 17:36:16 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 0.60 | Typ: Text | Schreiben
                        % 2012-05-15 17:36:17 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 1.0 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                        % 2012-05-15 17:36:17 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 1.00 | Typ: Text | Schreiben
                        % 2012-05-15 17:36:18 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 1.5 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                        % 2012-05-15 17:36:18 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 1.50 | Typ: Text | Schreiben
                        % 2012-05-15 17:36:19 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 2.1 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                        % 2012-05-15 17:36:19 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 2.10 | Typ: Text | Schreiben
                        % 2012-05-15 17:36:20 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 2.8000000000000003 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                        % 2012-05-15 17:36:20 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 2.80 | Typ: Text | Schreiben
                        % 2012-05-15 17:36:21 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 3.6 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                        % 2012-05-15 17:36:21 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 3.60 | Typ: Text | Schreiben
                        % 2012-05-15 17:36:22 | Sender: EibPC | GA: '6/7/20'f16 | Wert: 4.5 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                        % 2012-05-15 17:36:22 | Sender: EibPC | GA: '6/7/21'c14 | Wert: 4.50 | Typ: Text | Schreiben

                        Frage 1: Warum der Ausreißer > 2.8000000000000003 ?
                        Frage 2: Wo kommen die Sprünge her oder hat ihr Wert nachher aus der Logging-Liste gelöscht?

                        Gruß

                        Frank
                        Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

                        Kommentar


                          #27
                          Zitat von enertegus Beitrag anzeigen
                          Dazu bräuchte ich dein Beispiel lauffähig hier.

                          Also ich hab folgendes:


                          [highlight=epc]
                          Diff_EG_Flur="Ist EG Flur-11/0/20"-"Soll EG Flur-11/4/20"

                          if change(Diff_EG_Flur) then pdisplay(13,convert(Diff_EG_Flur,$ $) + $<br>$ + convert("Soll EG Flur-11/4/20",$ $),TEMPERATURE,INACTIVE,GREY,93) endif
                          if change("Soll EG Flur-11/4/20") then pdisplay(20,"Soll EG Flur-11/4/20",MINUS,INACTIVE,GREY,93) endif
                          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


                          page(93)[$Statusmeldungen$,$Heizungsaktoren EG$]
                          header(0)
                          footer(0)
                          pbutton(1)[STOP]$EG Flur$ pbutton(2)[TEMPERATURE]$Stellgröße$ pbutton(13)[TEMPERATURE]$Temp-Diff$ pshifter(20)[PLUS,MINUS]$Soll$[/highlight]

                          Noch wichtig zu wissen: auf 'Vorgabe EG Flur-6/7/20' schick ich dem TS2 die neue Soll-Temp, auf 'Soll EG Flur-11/4/20' meldet er die geänderte Soll-Temp zurück.

                          Im Monitor sieht das bei 2mal Plus und 2mal Minus so aus:

                          % 2012-05-15 22:05:40 | Sender: EibPC | GA: "Vorgabe EG Flur-6/7/20" | Wert: 20.09 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                          % 2012-05-15 22:05:40 | Sender: EibPC | GA: "Soll EG Flur-11/4/20" | Wert: ?% | Typ: ?% | Lesen
                          % 2012-05-15 22:05:41 | Sender: 1.2.16 | GA: "Soll EG Flur-11/4/20" | Wert: 20.09 | Typ: 16-Bit-Fliesskommazahl | Antworten
                          % 2012-05-15 22:05:42 | Sender: EibPC | GA: "Vorgabe EG Flur-6/7/20" | Wert: 20.17 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                          % 2012-05-15 22:05:42 | Sender: EibPC | GA: "Soll EG Flur-11/4/20" | Wert: ?% | Typ: ?% | Lesen
                          % 2012-05-15 22:05:42 | Sender: 1.2.16 | GA: "Soll EG Flur-11/4/20" | Wert: 20.17 | Typ: 16-Bit-Fliesskommazahl | Schreiben

                          % 2012-05-15 22:29:47 | Sender: EibPC | GA: "Vorgabe EG Flur-6/7/20" | Wert: 20.04 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                          % 2012-05-15 22:29:47 | Sender: EibPC | GA: "Soll EG Flur-11/4/20" | Wert: ?% | Typ: ?% | Lesen
                          % 2012-05-15 22:29:47 | Sender: 1.2.16 | GA: "Soll EG Flur-11/4/20" | Wert: 20.03 | Typ: 16-Bit-Fliesskommazahl | Antworten
                          % 2012-05-15 22:29:47 | Sender: 1.2.16 | GA: "Soll EG Flur-11/4/20" | Wert: 20.03 | Typ: 16-Bit-Fliesskommazahl | Schreiben
                          % 2012-05-15 22:29:48 | Sender: EibPC | GA: "Soll EG Flur-11/4/20" | Wert: ?% | Typ: ?% | Lesen
                          % 2012-05-15 22:29:49 | Sender: 1.2.16 | GA: "Soll EG Flur-11/4/20" | Wert: 19.900000000000002 | Typ: 16-Bit-Fliesskommazahl | Antworten
                          ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                          Kommentar


                            #28
                            Zitat von Uwe! Beitrag anzeigen
                            [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]
                            [highlight=epc]
                            if pbutton(20,93)==1 then write("Vorgabe EG Flur-6/7/20",("Soll EG Flur-11/4/20"/10.0f16+0.01f16)*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-0.01f16)*10.0f16) ; read("Soll EG Flur-11/4/20") endif
                            [/highlight]

                            Wenn du die "wichtigen" Stellen in die Auflösung der Mantisse bringst (20.48 bis -20.47) sollte richtig gerechnet werden, in deinem Beispiel dann auf 0.1 genau bzw. zweite Stelle nach dem Komma immer 0 und zwar im Bereich von -40,9°C bis 41,0°C.

                            Kannst du das mal testen?

                            Ps: Wenn man sich den Wertebereich der f16 Darstellung betrachtet, sollte im Bereich von -40.9 bis +41.0 (mit nur einer Nachkommastelle) beim Addieren von 0.1 kein Fehler auftreten, wenn man es richtig macht!
                            BR
                            Marc

                            Kommentar


                              #29
                              Zitat von saft6luck Beitrag anzeigen
                              Kannst du das mal testen?
                              Du meinst von z. B. 20.0 beginnend 2mal Minus/Plus, also auf 19.8 und zurück?

                              Läuft genauso falsch, aber Monitor dazu kann ich Dir erst heute Abend posten.
                              ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                              Kommentar


                                #30
                                Zitat von Uwe! Beitrag anzeigen
                                Du meinst von z. B. 20.0 beginnend 2mal Minus/Plus, also auf 19.8 und zurück?
                                Jein, du kannst die 2 Zeilen durch meine Modifikation ersetzen.

                                Man könnte auch a = (a/2 + 0,05)*2 rechnen. Wenn der Exponent größer 1 wird, wird die Darstellung der 1. Nachkommastelle bereits stellenweise gerundet, also sollte der Wert mindestens bis +41.0 exakt sein.
                                BR
                                Marc

                                Kommentar

                                Lädt...
                                X