Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Neue HS Logik erstellen

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

    HS/FS - √ - Neue HS Logik erstellen

    Hallo Zusammen.

    Ich habe eine Idee für einen Logikbaustein, der aus der Differenz von 2 Werte einen Prozentwert und den Restwert errechnet. Der Baustein bräuchte 2 Eingäng (Endwert und Aktualwert) dann bräuchte er noch 2 Ausgänge (Prozent positiv und Prozent negativ) Damit könnte man viele Funktionen realisieren wie z.B. Füllstände, Ventielzustände oder Vortschritte eines TV Programms in % ausgeben.

    Nun zu meiner Frage. Könnte mir jemand beim erstellen der Logik etwas helfen. Ich habe zwar das How To von MarkuL gelesen aber irgendwie weiss ich nicht wie ich mehrere Rechenschritte innerhalb eines Logikbausteins erstellen kann. Und auch sonst scheint mein Vorhaben etwas kompliziert zu sein.

    Ich habe das ganze mal mit konvenzioneller Loglik realisiert (Siehe Anhang) aber ein Logikbaustein wäre mir viel lieber und würde alles etwas übersichtlicher machen. Vor allem wenn ich viele Vortschritte berechnen möchte.

    Ich hoffe jemand kann und will mir dabei helfen
    Angehängte Dateien
    Gruss Patrik alias swiss

    #2
    Ich werd mich morgen mal bei Dir melden ....



    Sent from my iPhone using Tapatalk

    Kommentar


      #3
      Hallo swiss,

      deine Logik berechnet aber nicht das was du beschrieben hast.

      der aktuelle Prozent wert berechnest du mit:
      "aktueller Wert" dividiert durch "maximaler wert"

      was soll der negative Prozentwert aussagen?

      gruss
      Marcel
      seit: 11'08 KNX / 04'09 HS3 / 12'09 WG mit 21 Temp & 4 Feuchtesensoren / 10'10 Enocean mit 15 Fenstergriffe Hoppe / 02'11 MBus2Serial Gas-Wasserzähler
      HS3: 99% / VISU: PV 99%, iPad 99%
      60 Akt. Linie1 / 14 Akt. Linie2

      Kommentar


        #4
        Hallo Micha.

        Danke. Ist mir fast nirgends recht, dass ich dich schon wieder bemühe Hab jetzt endlich auch skype.


        @Marcel: Oo Jetzt sehe ich es auch gerade. Die Eingänge sin natürlich vertauscht. Es müsste so funktionieren:

        Der Maximalwert wird durch 100 geteilt. Also z.B.

        Maximalwert = 6000
        Aktualwert = 2000

        6000 : 100 = 60
        2000 : 60 = 33,333333% => Soll auf 33% gerundet werden

        danach für den Kehrwert noch:

        100 - 33,333333 = 66,666667 => Soll auf 67% gerundet werden

        Die Ausgänge sollten den Datentyp 8 Bit oder Integer bekommen.
        Gruss Patrik alias swiss

        Kommentar


          #5
          wenn du rundest, dann wäre doch 8-bit (0..100%/EIS6) der Richtige oder?
          EPIX
          ...und möge der Saft mit euch sein...
          Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

          Kommentar


            #6
            Hallo EPIX

            Ja ich dachte auch an den 8Bit Datenpunkt Typ 0 - 100%. Ich wusste aber nicht ob das so einfach möglich wäre. Desshalb der zweite Vorschlag mit Integer.
            Gruss Patrik alias swiss

            Kommentar


              #7
              Ok hier mal der Vollständigkeit hallber:

              E1 100% Wert
              E2 Istwert

              A1 %
              A2 Kehrwert

              Code:
              5012|1|"(int(EN[2]))>(int(EN[1]))"|""|""|0|0|0|0
              
              5012|0|""|"((int(EN[2])*1000)*100)/(int(EN[1])*1000)"|""|1|0|0|0
              5012|0|""|"100-(((int(EN[2])*1000)*100)/(int(EN[1])*1000))"|""|2|0|0|0

              Kommentar


                #8
                nur zu meinem Verständnis:
                wie wird der (Fehler)Fall abgefangen, wenn EN(1) = 0?
                EPIX
                ...und möge der Saft mit euch sein...
                Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                Kommentar


                  #9
                  EN 1 = 0 dann A1 = 0 Weil Division durch 0

                  wenn E2 grösser E1 dann Abbruch.....

                  Kommentar


                    #10
                    *netversteh*
                    EN 1 = 0 dann A1 = 0 Weil Division durch 0
                    wo hast du das definiert?
                    Division durch 0 ist doch NICHT 0 sondern unendlich oder "verboten"

                    *schonversteh*
                    wenn E2 grösser E1 dann Abbruch.....
                    EPIX
                    ...und möge der Saft mit euch sein...
                    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                    Kommentar


                      #11
                      Danke Micha

                      Ich glaube so krieg ich das gebacken. Mal sehen ob ich die hsl so zusammen schustern kann, das sie funktioniert

                      Wird aber später Nachmittag, weil ich heute noch einiges vor habe. Wenn es nicht funktionieren sollte wede ich mit meinem Quelltext nochmal hier nachfragen

                      Danke für die Hilfe.
                      Gruss Patrik alias swiss

                      Kommentar


                        #12
                        Wenn wir das ganze drumherum mal weglassen macht der Baustein:

                        (E2*100) / E1

                        Wenn E1 = 0 und E2 = 0 dann ergibt das

                        (0*100)/0

                        Die Division Durch Null wird aber (scheinbar) im HS abgefangen, da ja ein Divisionsbaustein am 2. Eingang auch mal ne 0 haben kann.

                        Kommentar


                          #13
                          Zitat von swiss Beitrag anzeigen
                          Danke Micha

                          Ich glaube so krieg ich das gebacken. Mal sehen ob ich die hsl so zusammen schustern kann, das sie funktioniert
                          *netversteh*

                          Schon mal in einem Posteingang geschaut? Da sollte seit 2 Stunden der Baustein rumliegen.
                          Ich hab das hier nur mal gepostet, damit der Tread auch ne Lösung, und Epix ein paar Fragen hat

                          Kommentar


                            #14
                            @vento:
                            danke, die Frage hab ich schon vorher gehabt...
                            Nur keinen Anlaß sie zu stellen
                            Es würgt mich nämlich seit gestern so ein Thema und ich glaube ich werde mich mit der Logikerstellung detaillierter herumschlagen müssen
                            EPIX
                            ...und möge der Saft mit euch sein...
                            Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                            Kommentar


                              #15
                              @Micha

                              Nö ist nichts im Posteingang.
                              Gruss Patrik alias swiss

                              Kommentar

                              Lädt...
                              X