<< Click to Display Table of Contents >> Navigation: Plug-ins > Mitgelieferte User-Plug-ins > Formel > Formel-Editor > Operatoren und Funktionen |
Das Formel Plug-in kennt eine Reihe mathematischer, logischer und bitweiser Operatoren. Weiterhin werden einige mathematische sowie CanEasy-spezifische Funktionen unterstützt.
Mathematische Operatoren
Operator |
Alternativ-Schreibweise |
Beschreibung |
+ |
ADD |
Addition |
- |
SUB |
Subtraktion |
* |
MUL |
Multiplikation |
/ |
DIV |
Division |
% |
MOD |
Rest einer Ganzzahldivision |
! |
Fakultät |
Logische Operatoren
Operator |
Alternativ-Schreibweise |
Beschreibung |
== |
EQ |
Gleichheit |
!= |
NE |
Ungleichheit |
> |
Größer als |
|
>= |
GE |
Größer oder gleich |
< |
Kleiner als |
|
<= |
LE |
Kleiner oder gleich |
|| |
OR |
ODER |
&& |
AND |
UND |
! |
NOT |
NICHT |
Bitweise Operatoren
Operator |
Alternativ-Schreibweise |
Beschreibung |
! |
BNOT |
Bitweise Negierung |
| |
BOR |
Bitweises ODER |
& |
BAND |
Bitweises UND |
^ |
BXOR |
Bitweises Exklusiv-ODER |
Mathematische Funktionen
Funktion |
Beschreibung |
abs(Wert) |
Absolutwert |
arcosh(Wert) |
Areacosinus Hyperbolicus |
arccos(Wert) |
Arcuscosinus |
arcsin(Wert) |
Arcussinus |
arsinh(Wert) |
Areasinus Hyperbolicus |
arctan(Wert) |
Arcustangens |
artanh(Wert) |
Areatangens Hyperbolicus |
sin(Wert) |
Sinus |
sinh(Wert) |
Sinus Hyperbolicus |
cos(Wert) |
Cosinus |
cosh(Wert) |
Cosinus Hyperbolicus |
tan(Wert) |
Tangens |
tanh(Wert) |
Tangens Hyperbolicus |
deg(Wert) |
Radianten in Grad |
ln(Wert) |
Logarithmus naturalis |
log(Wert) |
Logarithmus decimalis |
rad(Wert) |
Grad in Radianten |
sqr(Wert) |
Quadratwurzel |
Die trigonometrischen Funktionen erwarten das Argument in Radianten (0 bis 2π)
CAN-Funktionen
Funktion |
Beschreibung |
Sig(Pfad) |
Dieser Funktion wird der komplette Pfad eines Signals übergeben. Beim Lesezugriff erhält man als Rückgabewert den Wert des Signals, beim Schreibzugriff (Zuweisung) wird der Wert des Signals verändert. |
MsgByte(Pfad, Byteposition) |
Mit dieser Funktion wird ein komplettes Byte der Botschaft (Pfad) an die Position Byteposition übergeben oder von der angegebenen Position gelesen. |
MsgId(Pfad) |
Diese Funktion gibt die Botschafts-ID der in Pfad genannnten Botschaft zurück. |
UV,Var,Env |
Dieser Funktion wird der komplette Pfad einer Umgebungs-Variablen übergeben. Beim Lesezugriff erhält man als Rückgabewert den Wert der Variable, beim Schreibzugriff (Zuweisung) wird der Wert der Variable geändert. |
Attribute,Property, |
Dieser Funktion wird der komplette Pfad eines Attributes übergeben. Beim Lesezugriff erhält man als Rückgabewert den Wert des Attributs, beim Schreibzugriff (Zuweisung) wird der Wert des Attributs geändert. |
Val |
Dieser Funktion wird der komplette Pfad eines beliebigen Werte-Objekts übergeben. (Beispiel: Signal, Variable, Attribut). |
Rechenregeln
Es gelten die allgemeinen mathematischen Rechenregeln (Punkt vor Strich etc.). Durch das Setzen runder Klammern können davon abweichende Auswertungsreihenfolgen definiert werden.
Beispiele: |
a = 5 + 3 * 2; |
/* a erhält den Wert 11 */ |
b = (5 + 3) * 2; |
/* b erhält den Wert 16 */ |
Cast-Operatoren
Weiterhin gibt es einen expliziten Cast-Operator für die Datentypen bool, int und double.
Beispiele: |
a = bool (n); |
/* a wird zu 1 wenn n ungleich 0 ist, sonst 0 */ |
b = int (d); |
/* b wird zum ganzzahligen Anteil von d */ |
|
c = double (b); |
/* c wird zur nächst möglichen Darstellung von b im Datentyp double */ |
Variablen
Alle Worte, die keine Schlüsselworte sind, können als Bezeichner für Variablen genutzt werden. Eine solche Variable behält ihren letzten Wert bei, auch über Simulationsstarts hinweg, d.h. es ist eine explizite Initialisierung notwendig, damit ein definierter Wert vorliegt.