TapHome

Mathematische Funktionen

Mathematische Funktionen der TapHome-Skripte — MIN, MAX, AVG und ihre Varianten STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN und DEWPOINT.

Funktionen zum Zusammenfassen von Werten und für grundlegende Arithmetik. ROUND, CEIL, FLOOR, RAND und RANDINT stehen auf Runden und Zufallszahlen. Operatoren wie +, -, * und / stehen auf Operatoren; es gibt keinen Operator % oder ** — verwenden Sie MOD und POWER.

MIN

MIN gibt den kleinsten der angegebenen Werte zurück und überspringt unbekannte Werte (Null und NaN).

1
2
MIN(value1, value2, ...)
MIN(collection)

Parameter — 1 bis 100 Werte oder genau eine Sammlung. Die Werte müssen keine Zahlen sein, aber sie müssen miteinander vergleichbar sein, zum Beispiel Werte vom Typ datetime.

Rückgabewert — der kleinste bekannte Wert. Ist kein Wert bekannt, ist das Ergebnis NaN (Null, wenn jede Eingabe Null ist).

Beispiel

MIN(40, 80, NaN);
# Result: 40
MIN({1, NaN, 3});
# Result: 1
VAR d1 := DATETIME(2014, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
VAR d2 := DATETIME(2015, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
MIN(d1, d2);
# Result: the value of d1

Fehler — Collection is empty bei einer leeren Sammlung.

MINSTRICT

MINSTRICT gibt den kleinsten der angegebenen Werte zurück, sobald es aber auf einen unbekannten Wert (Null oder NaN) trifft, gibt es stattdessen diesen Wert zurück — verwenden Sie es, wenn eine einzige fehlende Eingabe das ganze Ergebnis ungültig machen muss.

1
2
MINSTRICT(value1, value2, ...)
MINSTRICT(collection)

Beispiel

MINSTRICT(40, 80);
# Result: 40
MINSTRICT(80, NaN);
# Result: NaN
MINSTRICT({1, NaN, 3});
# Result: NaN

Argumente und Fehler sind dieselben wie bei MIN.

MAX

MAX gibt den größten der angegebenen Werte zurück und überspringt unbekannte Werte (Null und NaN); es akzeptiert dieselben Argumente wie MIN.

1
2
MAX(value1, value2, ...)
MAX(collection)

Beispiel

MAX(40, 80, NaN);
# Result: 80
MAX({1, NaN, 3});
# Result: 3

MAXSTRICT

MAXSTRICT gibt den größten der angegebenen Werte zurück oder den ersten unbekannten Wert (Null oder NaN), auf den es trifft.

1
2
MAXSTRICT(value1, value2, ...)
MAXSTRICT(collection)

Beispiel

MAXSTRICT(2, 2, 6);
# Result: 6
MAXSTRICT({1, NaN, 3});
# Result: NaN

AVG

AVG gibt das arithmetische Mittel der angegebenen Werte als double zurück und überspringt Null und NaN.

1
2
AVG(value1, value2, ...)
AVG(collection)

Rückgabewert — double; NaN, wenn kein Wert bekannt ist. Bei Zeichen wird über ihre Zeichencodes gemittelt, daher ist AVG('a', 'c') die Zahl 98, nicht das Zeichen 'b'.

Beispiel

AVG(40, 80, NaN);
# Result: 60
AVG({1, NaN, 3});
# Result: 2
AVG('a', 'c');
# Result: 98

AVGSTRICT

AVGSTRICT gibt das arithmetische Mittel der angegebenen Werte zurück oder NaN, sobald einer von ihnen NaN ist.

1
2
AVGSTRICT(value1, value2, ...)
AVGSTRICT(collection)

Rückgabewert — double. Eine Eingabe Null ist ein Laufzeitfehler, kein übersprungener Wert.

Beispiel

AVGSTRICT(40, 80);
# Result: 60
AVGSTRICT(80, NaN);
# Result: NaN

ABS

ABS gibt den Absolutbetrag einer Zahl als double zurück.

ABS(-100);
# Result: 100

SIGN

SIGN gibt -1 für eine negative Zahl, 0 für null und 1 für eine positive Zahl zurück, als int.

SIGN(-22.5);
# Result: -1

SQRT

SQRT gibt die Quadratwurzel einer Zahl zurück, die 0 oder größer ist.

SQRT(25);
# Result: 5

Fehler — Argument for SQRT cannot be less than 0.

POWER

POWER potenziert eine Zahl mit dem angegebenen Exponenten; der Exponent darf negativ oder ein Bruch sein.

1
POWER(number, exponent)

Beispiel

POWER(2, 3);
# Result: 8
POWER(10, -3);
# Result: 0.001
POWER(25, 0.5);
# Result: 5

MOD

MOD gibt den Rest der Division einer Zahl durch eine andere zurück; auch Dezimalzahlen funktionieren.

1
MOD(dividend, divisor)

Rückgabewert — double mit dem Vorzeichen des Dividenden, ein negativer Dividend ergibt also einen negativen Rest (anders als MOD in Excel). Ein Divisor 0 ergibt NaN, keinen Fehler.

Beispiel

MOD(6, 4);
# Result: 2
MOD(6, 2.5);
# Result: 1
MOD(-7, 3);
# Result: -1

LOG

LOG gibt den Logarithmus einer positiven Zahl zur angegebenen Basis zurück, oder zur Basis 10, wenn die Basis fehlt.

1
2
LOG(number)
LOG(number, base)

Beispiel

LOG(100);
# Result: 2
LOG(4, 0.5);
# Result: -2

Fehler — Arguments for LOG cannot be less or equal to 0; Second argument for LOG cannot be less or equal to 0 or 1.

LN

LN gibt den natürlichen Logarithmus (Basis e) einer positiven Zahl zurück.

LN(100);
# Result: 4.605 (rounded)

Fehler — Argument for LN cannot be less or equal to 0.

DEWPOINT

DEWPOINT gibt den Taupunkt in °C aus der Lufttemperatur in °C und der relativen Luftfeuchtigkeit zurück, angegeben als Bruchteil von 0 bis 1 (0.5 bedeutet 50 %).

1
DEWPOINT(temperature, relativeHumidity)

Rückgabewert — double, berechnet mit der Magnus-Formel (Gleichung). Ist ein Argument überhaupt keine Zahl (zum Beispiel Null oder Text), ist das Ergebnis -40.

Beispiel

DEWPOINT(20, 0.5);
# Result: 9.26 (rounded)
DEWPOINT(0, 1);
# Result: 0

Geben Sie die Luftfeuchtigkeit als Bruchteil an. DEWPOINT(20, 50) gibt ohne jeden Fehler 103.17 zurück, einen sinnlosen Wert. Eine Luftfeuchtigkeit in Prozent, zum Beispiel ein aus einem Modbus-Register gelesener Rohwert, muss zuerst durch 100 geteilt werden.