Freie Formel (Logik-Modul)
Logiksymbol | Kurzbeschreibung |
---|---|
Auswertung komplexer mathematischer Formeln. |
Funktionsbeschreibung
Berechnungen einer beliebigen Formel mit mehreren Variablen und den klassischen mathematischen Funktionen wie sin / cos / tan / cot.
Eingänge
Variable X 1-n (float): Variable, die der Formel als X1, X2, … Xn übergeben werden kann.
Formel (string): Mathemathische Formel
(Optional) Inhibit 1-n (boolean): (Optionale) Sperreingänge, lösen die Abbruchfunktion aus.
(Optional) Trigger 1-n (boolean): (Optionale) Triggereingänge, lösen die Triggerfunktion aus.
Ausgänge
Ergebnis (float): Ergebnis der Formel.
(Optional) Fehler (boolean): (Optionale) Fehlerausgänge
Hinweise
Die Formel wird als Eingangswert des Logik-Modus erwartet, dies bietet maximale Flexibilität. Oft wird aber keine dynamische Änderung der Formel benötigt, dann kann der Formel Eingang auf Parameter gestellt werden und die Formel direkt eingeben werden.
Dezimalzahlen werden zwingend mit .(Punkt) und nicht mit ,(Komma) getrennt.
Die Schreibweise der Variablen in der Formel ist case sensitiv, also X1 (und nicht x1)
Ein Fehler in der Formel führt zu dem Ergebnis = 0 und einem True auf dem Fehler-Ausgang
Ein vorhandener Eingangsparameter muss nicht in der Formel genutzt werden (das ist beim Suchen von Formelfehlern hilfreich).
Mathematische Zeichen müssen gesetzt werden, z.B. 2*X1 (und nicht 2X1)
Zahlen zwischen 0 und 1 dürfen ohne die vorangehende 0 geschrieben werden (0.2 = .2), aber das ist eine sehr unschöne Schreibweise und sollte vermieden werden
Leerzeichen in Formeln sind erlaubt und haben keine Auswirkung
Wird der Fehlerausgang aktiv und es werden weitere Informationen benötigt warum die Berechnung nicht ausgeführt werden konnte können diese im Logik-Manager über die Schaltfläche Warnungen und Fehler abgerufen werden.
Nutzbare Funktionen
Die Verwendung der folgenden Funktionen erfolgt immer nach dem folgenden Schema: Funktion(Variable oder weitere Formel) → z.B. sin(X1/X2)
Name | Funktion |
sin | Sinusfunktion (Bogenmaß) |
cos | Kosinusfunktion (Bogenmaß) |
tan | Tangensfunktion (Bogenmaß) |
asin | Arcus-Sinus-Funktion (Bogenmaß) |
acos | Bogenkosinusfunktion (Bogenmaß) |
atan | Bogen-Tangens-Funktion (Bogenmaß) |
sinh | hyperbolische Sinusfunktion |
cosh | hyperbolische Kosinusfunktion |
tanh | hyperbolische Tangensfunktion |
asinh | hyperbolische Arcus-Sinus-Funktion |
acosh | hyperbolische Bogenkosinusfunktion |
atanh | hyperbolische Arcustangensfunktion |
log2 | Logarithmus zur Basis 2 |
log10 | Logarithmus zur Basis 10 |
log | natürlicher Logarithmus (Basis e) |
ln | Logarithmus zur Basis e (2,71828...) |
exp | e erhöht mit der Potenz von x |
sqrt | Quadratwurzel eines Wertes |
sign | Vorzeichenfunktion: -1 wenn x<0; 1 wenn x> 0 |
rint | Auf- oder Abrunden auf die nächste ganze Zahl |
abs | absoluter Wert |
arg | Argument - Winkel in Grad |
real | gibt den Realteil zurück |
imag | gibt den Imaginärteil zurück |
rnd | gibt eine Zufallszahl zurück FIRMWARE: Um rnd nutzen zu können wird Firmware V 4.0 IP 6 oder höher benötigt. |
Wenn-Dann-Sonst Funktion
Die aus einigen gänigigen Programmiersprachen bekannten Wenn-Dann-Sonst Schreibweise ?: ist nutzbar.
Beispiel
X1<=2?50:100 → Wenn die Eingangsvariable X1 kleiner oder gleich dem Wert 2 ist, dann gebe dene Wert 50 aus, andernfalls gebe den Wert 100 aus.
Nutzbare Operanden
Operator | Bedeutung |
&& | logisches UND |
|| | logisches OR |
<= | kleiner oder gleich |
>= | größer oder gleich |
!= | ungleich |
== | gleich |
> | größer als |
< | weniger als |
+ | Addition |
- | Subtraktion |
* | Multiplikation |
/ | Division |
^ | x mit y potenzieren |
Nutzbare Konstante
Name | Erklärung |
_e | e (2.71828...) |
_pi | pi (3.1415...) |
Praktische Anwendungsbeispiele
Eintreffwinkel der Sonne auf einen Solarkollektor berechnen
Anwesenheitssimulation auf Basis von Zufallszahlen
Berechnung von Wassermenge von Pegelstand
Habe den Verweis auf MuParser hier rausgenommen. Ich würde den ausschließlich bei der Erklärung im Abschnitt Custom Logik machen. Für einen Einsteiger ist es nicht wichtig zu wissen, dass es eine MuParser Bibliothek / Fukntionalität ist.