Ankündigung

Einklappen
Keine Ankündigung bisher.

DPT konvertieren

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

    DPT konvertieren

    Hallo zusammen,

    habe aktuell ein Projekt, bei dem DPT's konvertiert werden müssen.
    Beispiel: (2Byte DPT 9.001(Temperatur)) soll in (1Byte DPT 5.001(Prozent)) konvertiert werden.

    1. Ist das mit dem EibPC möglich?
    2. Gibt's dafür ein fertiges Makro?
    3. Die Sache mit "convert" im Handbuch hab ich mir angeschaut, kann es aber aufgrund eines fehlenden Beispiels nicht nachvollziehen.

    Wäre denn "convert" der richtige Weg und wenn ja, kann jemand ein fertiges Beispiel posten?

    Vielen Dank

    Viele Grüße
    Frank

    #2
    Zitat von frankthegreat Beitrag anzeigen
    Hallo zusammen,
    habe aktuell ein Projekt, bei dem DPT's konvertiert werden müssen.
    Beispiel: (2Byte DPT 9.001(Temperatur)) soll in (1Byte DPT 5.001(Prozent)) konvertiert werden.
    Wie soll das vollzogen werden: 30°C == 100% , 0°C = 0% oder wie meinst Du das?

    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Ja, in die Richtung soll es gehen. Die Temperaturen sollten aber einfach anzupassen sein.

      Kommentar


        #4
        das ist eine simple mathematische Gleichung "lineare Funktion" https://www.schulminator.com/mathema...neare-funktion

        damit kannst du Skalierungen umrechnen und auch um einen Wert verschieben x=k*y

        also zB 10°C = 0% und 30°C=100%

        die Differenz ist 20° bzw 100% somit ist die Steigung (k) 100[%]/20 ->5
        und die Verschiebung wäre c=-10°K

        wenn du jetzt einen beliebigen Temperaturwert nimmt: zB 20°C so erhält man y=k*(y-c) -> 5*(20-10) = 50 [%]

        der DTP für Prozent ist aber eigentlich eine Trickserei: in "Wirklichkeit" ist 100% nämlich der (digitale) Wert 255....
        Zuletzt geändert von EPIX; 14.06.2016, 15:32.
        EPIX
        ...und möge der Saft mit euch sein...
        Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

        Kommentar


          #5
          Ok, das ist einfach
          Code:
          [EibPC]
          // Datentyp f16
          Temp="MeineGA-1/2/3"
          // Skaliere 30° bis 0° auf 255 bis 0 (der Prozenttyp ist 0 bis 255))
          Prozent= convert(Temp* (255.0-0.0)/(30.0-0.0) ,0%)
          if change(Prozent) then write("MeineGAProzent-1/2/4",Prozent) endif
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar


            #6
            Sorry, konnte erst heute testen. Hat auf Anhieb funktioniert.

            Fazit: "Chefarztbehandlung" erfolgreich

            Danke

            Kommentar

            Lädt...
            X