NEU! UPGRADE IP 10 verfügbar!
Optimierte Darstellung von VISU Editor und VISU Client - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/8HzePCm3

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur IP 10
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Gelöst] Logik für Berechnungen (für 1-Wire DS2438)

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
danik
Reactions:
Beiträge: 392
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 266 Mal
Danksagung erhalten: 266 Mal

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

#1

Beitrag 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
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache
Benutzeravatar

773H
Reactions:
Beiträge: 428
Registriert: Mo Okt 15, 2018 9:24 pm
Hat sich bedankt: 103 Mal
Danksagung erhalten: 208 Mal

#2

Beitrag von 773H »

Würde mich auch interessieren, da das den Horizont des TWS doch erheblich erweitern dürfte.

Gruss
Stephan
TWS 2500 ID:677, PBM ID:495 & ID:632, TWS 2500 ID:574, TWS 2500 ID:220, PBM ID:1022, VPN offen, Neustart kein Problem

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 559 Mal

#3

Beitrag 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.
Gruß,
Stefan K.

Elkomaster91
Reactions:
Beiträge: 52
Registriert: So Sep 23, 2018 11:19 pm
Hat sich bedankt: 8 Mal
Danksagung erhalten: 15 Mal

#4

Beitrag 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
"TWS 950Q ID:351, VPN offen, Reboot erlaubt" im Moment, wegen Umbauarbeiten, nicht immer erreichbar

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 559 Mal

#5

Beitrag 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.
Gruß,
Stefan K.

Ersteller
danik
Reactions:
Beiträge: 392
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 266 Mal
Danksagung erhalten: 266 Mal

#6

Beitrag 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
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache

Ersteller
danik
Reactions:
Beiträge: 392
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 266 Mal
Danksagung erhalten: 266 Mal

#7

Beitrag 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.
Zuletzt geändert von danik am So Mai 19, 2019 10:23 am, insgesamt 1-mal geändert.
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 559 Mal

#8

Beitrag 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.
Zuletzt geändert von S. Kolbinger am So Mai 19, 2019 1:28 pm, insgesamt 1-mal geändert.
Gruß,
Stefan K.

Ersteller
danik
Reactions:
Beiträge: 392
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 266 Mal
Danksagung erhalten: 266 Mal

#9

Beitrag von danik »

Danke, jetzt klappt es soweit wie gewünscht.

Gruss
Dani
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache

Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1171 Mal
Danksagung erhalten: 2076 Mal

#10

Beitrag von Robert_Mini »

Verschoben in das Logik Unterforum, nachdem es um keinen Fehler der Logik-Engine geht.
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „Logikengine & Logik-Editor“