Jetzt bin ich ein gutes Stück weiter, die Formeln habe ich jetzt um komplexität rauszunehmen wieder auf den ursprünglichen 5 gelassen und habe einfach vor jeder Formel einen Multiplexer gebaut.
Leider kann ich die Formeln wohl nicht wie benötigt umbauen.
28.12.2023 10:35:21 Logic_24 Taupunktrechner calc_formula3 Error while analyzing formula "6.1078 * 10^(7."
Code: Alles auswählen
/**
* New custom logic
*
*
*/
{
"_Meta": { // Optional
"Description": "",
"Version": "1.00",
"Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
},
"Input": [
["Temperatur","Temperatur","$temp","c" ],
["feuchtefeuchte","feuchtefeuchte","$feuchte","c" ]
],
"Output": [
["Taupunkt","Berechneter Taupunkt","$taupunkt","a"],
["Comperator","True postiv, False, negativ","$comp","a"],
["Multi","True postiv, False, negativ","$multi","a"],
["IFElse","True postiv, False, negativ","$schwellwertueberschreitungint","a"]
],
"Level": [
//Ein/Ausgänge
["$temp","float",0.0],
["$feuchte","float",0.0],
["$taupunkt","float",0.0],
//Formeln
//["$formelminusgrade","string","((240.7*(log10(((6.1078 * (10^(7.6*X1)/(240.7+X1))) * (X1/100))/6.1078))) / (7.6-(log10(((6.1078 * (10^(7.6*X2)/(240.7+X2))) * (X2/100))/6.1078))))*100/100"],
// ["$formelminusgrade","string","X1+X2"],
// ["$formelplusgrade","string","((237.3*(log10(((6.1078 * (10^(7.5*X1)/(237.3+X1))) * (X1/100))/6.1078))) / (7.5-(log10(((6.1078 * (10^(7.5*X2)/(237.3+X2))) * (X2/100))/6.1078))))*100/100"],
//["$formelplusgrade","string","X1*X2"],
["$formelinbenutzung","string",""],
["$formeltointeger","string","(X1==true)?1:0"],
//neue Formeln
//var sdd = 6.1078 * Math.pow(10, (a*t)/(b+t));
["$formel1plus","string","6.1078 * 10^(7.5*X1)/(237.3+X1)"],
["$formel1minus","string","6.1078 * 10^(7.6*X1)/(240.7+X1)"],
//var dd = sdd * (r/100);
["$formel2plus","string","X1 * (X2/100)"],
["$formel2minus","string","X1 * (X2/100)"],
//var af = Math.pow(10,5) * mw/gk * dd/tk;
["$formel3plus","string","10^5 * 18.016/8314.3 * X1/(X2 + 273.15)"],
["$formel3minus","string","10^5 * 18.016/8314.3 * X1/(X2 + 273.15)"],
//var v = Math.log10(dd/6.1078);
["$formel4plus","string","log10(X1/6.1078)"],
["$formel4minus","string","log10(X1/6.1078)"],
//tp = Math.round( ((b*v) / (a-v))*100)/100;
["$formel5plus","string","((237.3*X1) / (7.5-X1))*100/100"],
["$formel5minus","string","((240.7*X1) / (7.6-X1))*100/100"],
//Variablen für die Berechnungen
["$schwellwert","float",0.0],
["$schwellwertueberschreitung","bool",false],
["$schwellwertueberschreitungint","integer",0],
["$sdd","float",0.0],
["$dd","float",0.0],
["$af","float",0.0],
["$v","float",0.0],
//Troubleshooting
["$comp","bool",false],
["$multi","bool",false]
],
"Module": [
//Comparator, prüft ob die Temp postiv oder negativ ist, True bei Plusgraden, False bei Minusgraden
["Comparator" , "$temp" , "$comp" , "$schwellwert"], //nur für Fehlersuche
["Comparator" , "$temp" , "$schwellwertueberschreitung" , "$schwellwert"],
//["CalcFormula",["$schwellwertueberschreitung"], "$schwellwertueberschreitungint", "$formeltointeger"],
["Multiplexer", ["$formel1minus", "$formel1plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
["CalcFormula",["$temp"], "$sdd", "$formelinbenutzung"],
["Multiplexer", ["$formel2minus", "$formel2plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
["CalcFormula",["$sdd","$feuchte"], "$dd", "$formelinbenutzung"],
["Multiplexer", ["$formel3minus", "$formel3plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
["CalcFormula",["$dd","$temp"], "$af", "$formelinbenutzung"],
["Multiplexer", ["$formel4minus", "$formel4plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
["CalcFormula",["$dd"], "$v", "$formelinbenutzung"],
["Multiplexer", ["$formel5minus", "$formel5plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
["CalcFormula",["$v"], "$taupunkt", "$formelinbenutzung"]
//Mulitplexer, speichert die richtige Formel in der Variable "formelinbenutzung", diese soll dann der freien Berechnung übergeben werden
//["Multiplexer", ["$formelminusgrade", "$formelplusgrade"],"$multi","$schwellwertueberschreitung"], //Nur für Fehlersuche
//["Multiplexer", ["$formelminusgrade", "$formelplusgrade"],"$formelinbenutzung","$schwellwertueberschreitung"],
//Berechnung des Taupunkts
//["CalcFormula",["$temp","$feuchte"], "$taupunkt", "$formelinbenutzung"]
]
}