Benutzer-Werkzeuge

Webseiten-Werkzeuge


logische_und_mathematische_operationen

Logische und mathematische Operationen im Universalgateway

Der Funktionstreiber für logische und mathematische Operationen stellt eine Bibliothek für das Verknüpfen von Datenpunkten bereit. Dieser Treiber muss im Gateway installiert werden, wenn Datenpunkte mit logischen oder mathematischen Operationen verknüpft werden sollen.

Aufbau der Geräteadresse

<typ> <Adresse> 

<Typ>

Typ Bedeutung
L Logische Verknüpfung
R Mathematische Verknüpfung
S Ganzzahliger Wert
Y Fließkomma-Wert

<Adresse>

Die Adresse kann ein beliebiger Wert (Zahl oder Text) sein, normalerweise werden jedoch fortlaufende Zahlen verwendet.

Anwendung

Logische und mathematische Operationen werden mit Hilfe des nomval Parameters festgelegt. Er legt fest, wie die Berechnung bzw. Auswertung zu erfolgen hat. Die Zeilenlänge eines nomval Eintrages ist auf maximal 128 Zeichen beschränkt!

Beispiel:

[L 1]

nomval = $(1.1.80.M mod status 1) || $(1.1.80.M mod status 2) 

Hier wird eine logische ODER-Verknüpfung aus zwei Modbus-Parametern erzeugt, die den Wert 'true' annimmt, wenn einer der Parameter 'true' wird.

Optionen

Für die einzelnen Operationen können mittels des format Parameters noch Optionen festgelegt werden.

Option Bedeutung Erläuterungen
cd:xx Anzugsverzögerung xx Sekunden Gibt bei logischen Verknüpfungen an, wie lange eine Wertänderung von 0 auf 1 verzögert wird, bis die Weiterleitung zum Dispatch-Mechanismus erfolgt.
gd:xx Abfallverzögerung xx Sekunden Gibt die Verzögerung für die Wertänderung von 1 auf 0 an.
rcov Neuberechnung bei jeder Wertänderung
dft:x Default WertWird verwendet, wenn bei einer Operation ein Parameter noch keinen gültigen Wert hat, die Berechnung also nicht möglich ist.

Hinweis:
cd: und gd: werden bei mathematischen Operationen identisch behandelt.

Aufbau von Operationen

Datenpunkte die in einer Operation verwendet werden sollen, müssen in der Form

$(xxx)

angegeben werden. 'xxx' steht für die Schreibweise, die auch in der dispatch.txt verwendet wird.

Beispiele:
$(1.1.40.M bac 2000.BI 0) oder
$(1.1.70.M eib 1/1),
allerdings ohne die in der dispatch.txt verwendeten eckigen Klammern.

Funktionen und Operatoren

Unäre Operatoren
+ Positiver Wert
- Negativer Wert
~ Invertierter Wert
! Negierter Wert
Duale Operatoren/Vergleiche
^ XOR (Bitoperator)
|| OR (Bitoperator)
& AND (Bitoperator)
|| OR
&& AND
== Gleich
!= Ungleich
> Größer
>= Größer oder gleich
< Kleiner
<= Kleiner oder gleich
+ Addition
- Subtraktion
* Multiplikation
/ Division
% Modulo
Funktionen ohne Parameter f()
systime(), curtime() Systemzeit ermitteln
time() Systemuhrzeit ermitteln
date() Systemdatum ermitteln
hour(), minute(), second() Stunde, Minute, Sekunde der aktuellen Uhrzeit
year(), month(), day() Jahr, Monat, Tag des aktuellen Datums
yday() Tagesnummer des laufenden Jahres
mday() Tagesnummer des laufenden Monats
wday() Tagesnummer der laufenden Woche
Funktionen mit einem Parameter f(x)
sin(x), cos(x), tan(x), asin(x), acos(x), atan(x) Winkelfunktionen
exp(x) e^x
fabs(x) Absolutwert
floor(x) Abrunden auf nächsten ganzzahligen Wert
ceil(x) Aufrunden auf nächsten ganzzahligen Wert
log(x) Logarithmus zur Basis e
log10(x) Logarithmus zur Basis 10
sqrt(x) Wurzel
Funktionen mit zwei Parametern f(x, y)
atan2(x,y)
fmod(x,y) Modulo für Fließkommawerte
pow(x,y) x^y
min(x,y) Minimum zweier Werte
max(x,y) Maximum zweier Werte
round(x,y) Kaufmännisches Runden, auf y-Nachkommastellen
Funktionen mit drei Parametern f(x, y, z)
if(x,y,z) Wenn x erfüllt ist, dann y, ansonsten z
min3(x,y,z), max3(x,y,z) Minimum bzw. Maximum dreier Werte

Datenpunktflags

Zusätzlich zu Funktionen können auch noch die Flags von Datenpunkten abgefragt werden. Hierzu wird das benötigte Flag mit einem Punkt getrennt hinter die Adresse gesetzt:

$(xxx).valid
Flag Bedeutung
actual Aktualwert, Default wenn nicht explizit angegeben
nominal Nominalwert
gst Geberstörung
bta BTA-Störung
local Wert wird vor Ort bedient
locked Sollwert verriegelt
history Historischer Wert aus letzter Verbindung
warnhigh Warngrenze überschritten
warnlow Warngrenze unterschritten
alarmhigh Alarmgrenze überschritten
alarmlow Alarmgrenze unterschritten
sethigh Stellgrenze überschritten
setlow Stellgrenze unterschritten
auto Datenpunkt im 'Automatik'-Betrieb

Weiteres

Bei Funktionen mit mehreren Parametern werden die einzelnen Parameter mittels eines Semikolon abgetrennt.

Beispiel für die Funktion if:

nomval = if($(1.1.80.M mod 1 status 1); $(1.1.80.X mod 1 input 1); $(1.1.80.X mod 1 input 2))

Imprint/Impressum Disclaimer DSGVO/Privacy Policy

logische_und_mathematische_operationen.txt · Zuletzt geändert: 13.01.2022 19:08 von oni

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki