Seite 1 von 2

Logik für Berechnungen (für 1-Wire DS2438)

Verfasst: Sa Mai 11, 2019 9:56 am
von danik
Hi

Ich habe einige 1-Wire Geräte für Luftfeuchte/Helligkeit (Baustein DS2438TV) von esera. Die gewünschten Werte müssen jedoch über eine Formel errechnet werden. Ich habe mich bei den Logiken schon mal umgesehen ob es ein Modul für Berechnungen gibt, da aber nichts gefunden. Kommt da noch was, resp. gibt es da ggf. auch einen anderen Weg die benötigen Werte zu errechnen? Ich habe gesehen, dass die entsprechenden 1-Wire Geräte von ElabNet wohl automatisch korrekt eingebunden werden und gleich die richtigen Werte liefert, ich möchte aber jetzt natürlich ungern alles neue Geräte kaufen.

Ich habe die Beta 21

Danke und Gruss
Dani

Re: Logik für Berechnungen (für 1-Wire DS2438)

Verfasst: Do Mai 16, 2019 12:05 pm
von 773H
Würde mich auch interessieren, da das den Horizont des TWS doch erheblich erweitern dürfte.

Gruss
Stephan

Re: Logik für Berechnungen (für 1-Wire DS2438)

Verfasst: Do Mai 16, 2019 1:19 pm
von S. Kolbinger
Hallo Dani,
danik hat geschrieben: Sa Mai 11, 2019 9:56 am ...
Die gewünschten Werte müssen jedoch über eine Formel errechnet werden. Ich habe mich bei den Logiken schon mal umgesehen ob es ein Modul für Berechnungen gibt, da aber nichts gefunden.
...
das sollte schon jetzt über die Logik (vermutlich mittels Polynomfunktion) möglich sein.
Hast du mal schnell die Formel parat?

Gruß,
Stefan K.

Re: Logik für Berechnungen (für 1-Wire DS2438)

Verfasst: Do Mai 16, 2019 1:35 pm
von Elkomaster91
Hallo Stafan,
S. Kolbinger hat geschrieben: Do Mai 16, 2019 1:19 pm
das sollte schon jetzt über die Logik (vermutlich mittels Polynomfunktion) möglich sein.
Hast du mal schnell die Formel parat?

Gruß,
Stefan K.
Ich müsst folgendes umrechnen:

(157,2327 * (I1 / I2 - 0,1515)) / (1.0546 - 0.00216 * I3)

I1=VAD,
I2=VDD
I3=TEMP

Gruß Hardi

Re: Logik für Berechnungen (für 1-Wire DS2438)

Verfasst: Do Mai 16, 2019 2:54 pm
von S. Kolbinger
Hallo Hardi,
Elkomaster91 hat geschrieben: Do Mai 16, 2019 1:35 pm Ich müsst folgendes umrechnen:

(157,2327 * (I1 / I2 - 0,1515)) / (1.0546 - 0.00216 * I3)
Ich habe mir erlaubt, die Formel etwas umzustellen, damit es einfacher in der Logik passt:
(157,2327 * (VAD / VDD) - 23,82) / (1.0546 - 0.00216 * TEMP)

Code: Alles auswählen

{
    "Level": [
        ["$VAD_In","float",2.0],
        ["$VDD_In","float",5.0],
        ["$VAD_Rel","float",0.4],
        ["$V_Offset","float",-23.82],
        ["$V_Gradient","float",157.2327],
        ["$V_Part","float",39.07],
        ["$TEMP_IN","float",20.0],
        ["$TEMP_Offset","float",1.0546],
        ["$TEMP_Gradient","float",-0.00216],
        ["$TEMP_Part","float",39.07],
        ["$Result","float",47.11]
    ],
    "Module": [
        ["Ratio","$VAD_In","$VAD_Rel","$VDD_In"],
        ["Polynomial","$VAD_Rel","$V_Part",["$V_Offset","$V_Gradient"]],
        ["Polynomial","$TEMP_IN","$TEMP_Part",["$TEMP_Offset","$TEMP_Gradient"]],
        ["Ratio","$V_Part","$Result","$TEMP_Part"]
    ],
    "Input": [
        ["VAD","Messspannung","$VAD_In","c"],
        ["VDD","Referenz-/Versorgungsspannung","$VDD_In","c"],
        ["TEMP","Temperatur","$TEMP_IN","c"],
        ["Offset V","Offset des Spannungsanteils","$V_Offset","c"],
        ["Steigung V","Steigung des Spannungsanteils","$V_Gradient","c"],
        ["Offset T","Offset des Temperaturanteils","$TEMP_Offset","c"],
        ["Steigung T","Steigung des Temperaturanteils","$TEMP_Gradient","c"]
    ],
    "Output": [
        ["Erbebnis","Resultierende Messgröße","$Result","c"]
    ]
}
Damit sollte du auch die konstanten Werte als Parameter anlegen können, für evtl. Feinjustierung.
Es könnte dann so aussehen:
Bild

Jetzt nur noch die richtigen (1W-)Objekte mittels DOS oder Objekt-Verwaltung an die Ein-/Ausgänge verbinden.

Viel Spaß beim Ausprobieren.

Gruß,
Stefan K.

Re: Logik für Berechnungen (für 1-Wire DS2438)

Verfasst: Do Mai 16, 2019 10:10 pm
von danik
Hallo Stefan K.

Vielen dank für die Formel. Das ganze passt und funktioniert bei mir für die Luftfeuchte.

Es grüsst
Dani

Re: Logik für Berechnungen (für 1-Wire DS2438)

Verfasst: So Mai 19, 2019 10:22 am
von danik
S. Kolbinger hat geschrieben: Do Mai 16, 2019 2:54 pm
Jetzt nur noch die richtigen (1W-)Objekte mittels DOS oder Objekt-Verwaltung an die Ein-/Ausgänge verbinden.

Viel Spaß beim Ausprobieren.
Hallo Stefan K.

Ich habe die Logik so im Einsatz, funktioniert soweit auch gut (einzig beim Update auf Beta 22 passte es irgendwie nicht mehr, habe dann aber die Logik nochmals angelegt). Das Ergebnis vom Ausgang ist ein Wert mit Nachkommastellen. Gibt es einen Möglichkeit, den Ausgang gleich auf einen Wert ohne Nachkommastelle zu formatieren?

Danke und Gruss
Dani

Hinzugefügt nach 33 Minuten 35 Sekunden:
Irgendwie klappt es doch noch nicht. Jetzt sind wieder die Eingänge vertauscht (VAD, VDD und Temp passen nicht mehr), obwohl ich nur den Trigger erstellt habe. Damit passt das Ergebnis dann wieder nicht mehr. Vermutlich noch ein Problem mit dem aktuellen Beta-Status.

Re: Logik für Berechnungen (für 1-Wire DS2438)

Verfasst: So Mai 19, 2019 1:11 pm
von S. Kolbinger
danik hat geschrieben: So Mai 19, 2019 10:22 am ...
Das Ergebnis vom Ausgang ist ein Wert mit Nachkommastellen. Gibt es einen Möglichkeit, den Ausgang gleich auf einen Wert ohne Nachkommastelle zu formatieren?
...
Klar geht das. Dazu must du nur den Typ und Defaultwert für das Ergebnis in der Definition der Custom-Logik ändern:
["$Result","float",47.11] =>> ["$Result","int",47]
Im Debug-Modus wird der Wert zwar noch als float angezeigt, aber mit obiger Änderung sind die Nachkommastellen immer .00
danik hat geschrieben: So Mai 19, 2019 10:22 am Irgendwie klappt es doch noch nicht. Jetzt sind wieder die Eingänge vertauscht (VAD, VDD und Temp passen nicht mehr), obwohl ich nur den Trigger erstellt habe. Damit passt das Ergebnis dann wieder nicht mehr. Vermutlich noch ein Problem mit dem aktuellen Beta-Status.
Danke für die Info, ich konnte diesen Fehler bei mir nachstellen.
Da haben wir wohl noch einen Bug im Logik-Editor. Das muss ich mir mit den Kollegen genauer anschauen.
Ich habe auf deinem TWS321 gesehen, dass das Mapping noch immer falsch ist.
Da der Logik-Editor offensichtlich in manchen Fällen etwas eigenwillig ist, kann du das Mapping am besten über die Objekt-Verwaltung korrigieren.

Gruß,
Stefan K.

Re: Logik für Berechnungen (für 1-Wire DS2438)

Verfasst: So Mai 19, 2019 2:15 pm
von danik
Danke, jetzt klappt es soweit wie gewünscht.

Gruss
Dani

Re: Logik für Berechnungen (für 1-Wire DS2438)

Verfasst: Mo Mai 20, 2019 10:19 pm
von Robert_Mini
Verschoben in das Logik Unterforum, nachdem es um keinen Fehler der Logik-Engine geht.
Robert