|
<< Click to Display Table of Contents >> Navigation: Komponenten > Kommunikation > Multi-IO-IP > Filter |
Datenfilter Editor
Der Datenfilter Editor dient dazu, aus den empfangenen Rohdaten vom Netzwerk bestimmte Werte zu extrahieren und über den entsprechenden dynamischen Datenpunkt auf ein EisBär-Netz zu senden. Nachdem die Daten empfangen wurden und in der Eingangsliste ein Datenfilter für einen Eintrag ausgewählt wurde, werden diese Daten von einem der ausgewählten Filter bearbeitet.
Name
Name des Filters, dieser wird in der Eintragliste in der Spalte Datenfilter zur Auswahl angezeigt.
Filtertyp
oXML
Filterausdruck
Hier wird der Filterausdruck definiert, abhängig vom gewählten Filtertyp. Bei UDP-Empfang muss ein Search_Pattern-Filter angelegt werden.
Datentyp
Der Wert des Feldes Datentyp ist eine Liste von Datentypen (siehe Unterstützte Datentypen), die zur Konvertierung auf einen extrahierten Wert angewendet werden, wenn keine Bedingung angegeben ist (siehe Bedingungen). War die Konvertierung erfolgreich, wird der Wert an den Ausgang weitergeleitet, für den diese Filterregel im Eingangsdialog ausgewählt wurde. Kann der Wert nicht konvertiert werden (z. B. der Versuch einen ASCII-Text in einen numerischen DataPointValue zu konvertieren), so wird eine Fehlertext am Fehler-Ausgang der Komponente ausgegeben.
Hinweis: Dieser Mechanismus wird nur dann verwendet, wenn keine Bedingung im Feld Bedingung eingetragen ist (siehe Bedingung).
Bedingungen
Es besteht die Möglichkeit einen durch einen Filter extrahierten Wert mit einer Bedingung zu vergleichen, erst wenn die Bedingung wahr ist, wird der Wert, der im Feld "Text Ersetzung" eingetragen ist, über den bidirektionalen Eingang als „Zeichenkette“ auf das entsprechende EisBär-Netz gesendet. Der durch den Filter extrahierte Wert wird also ersetzt.
Entscheidend ist, dass es sich bei den zu vergleichenden Werten um numerische Werte handeln muss. Es gilt also sicherzustellen, dass der durch den Filter extrahierte Wert auch wirklich ein Ganzzahl (Integer) bzw. ein Gleitpunktzahl (Double) ist. Ist dies nicht der Fall, so kann die Bedingung nicht angewendet werden und der empfangene Wert wird verworfen. Es können folgenden Bedingungen angewandt werden:
•Operatoren: <=, >=, !=, ==, <, > ,
•Intervall: a:b(Wertebereich)
Syntax Operator:
<EXTRAHIERTER_WERT> <OPERATOR> <VERGLEICHSWERT>
Syntax Intervall:
<LINKE_INTERVALL_GRENZE>:<WERT>:< RECHTE_INTERVALL_GRENZE >
Integer werden als normale ganze Zahlen geschrieben, bei einem Double-Wert trennt ein Punkt den Vor- vom Nachkommaanteil.
Beispiel 1:
Es soll nur dann der Text im Feld Text Ersetzung an das EisBär-Netz gesendet werden, wenn der empfangene Double-Wert, kleiner gleich 4.52 ist.
Bedingung: <= 4.52
Es können also anstelle des <= Zeichens alle oben erwähnten Operatoren eingesetzt werden.
Wenn Bedingung zutrifft, wird TEXT1 an das EisBär-Netz gesendet.
Beispiel 2:
Es soll nur dann der Text im Feld Text Ersetzung an das EisBär-Netz gesendet werden, wenn der empfangene Integer-Wert, größer 1000 ist.
Bedingung: > 1000
Wenn Bedingung zutrifft, wird TEXT2 an das EisBär-Netz gesendet.
Beispiel 3 (Wertebereich):
Es soll nur dann der Text im Feld Text Ersetzung an das EisBär-Netz gesendet werden, wenn der empfangene Double-Wert im Bereich von 4.1 und 4.9 liegt.
Bedingung: 4.1:4.9
Würde der Wert 4.34 beispielsweise empfangen, wird TEXT3 an das EisBär-Netz gesendet.
Text Ersetzung
Das Feld "Text Ersetzung" enthält diejenigen "Zeichenkette", die gesendet wird, wenn eine Bedingung zutrifft. (Siehe "Bedingungen")