Kurzbeschreibung
Parameter Funktionsweise Ein/Ausgänge Limitierungen Querverweise Beispiele
 | Kurzbeschreibung
Das Modul speichert Daten sortiert
nach einem Index in einer Tabelle. Eine sehr schnelle Suchfunktion ermöglicht das
Auffinden von Einträgen. |
 | Parameter
 | Parameter: Parameterquelle
intern, extern oder Datenbank. |
 | Index
 | Signaltyp: Auswahl zwischen den Datentypen SWORD, SWORD[1], DOUBLE, DOUBLE[1]
und UBYTE[]. |
 | Bezeichner: Zusatzinformation für den Signaltyp, z.B. TIME_DOMAIN
|
|
 | Daten
 | Signaltyp: Auswahl zwischen den Datentypen SWORD, SWORD[1], DOUBLE, DOUBLE[1]
und UBYTE[]. |
 | Bezeichner: Zusatzinformation für den Signaltyp, z.B. TIME_DOMAIN
|
|
 | Bei Vergleich Daten übernehmen: Die
Daten am Compare-Eingang werden nach Verarbeitung in die Tabelle mit
aufgenommen/aktualisiert. |
|
 | Funktionsweise
Das Modul stellt eine sehr schnelle Möglichkeit dar, Daten in einer
Tabelle zu speichern und wiederzufinden. Die Daten können mit oder ohne einen Index
gespeichert werden. Ist ein Index vorhanden, wird nach diesem sortiert, ansonsten nach dem
Datum. Die Suche nach dem sortierten Eintrag erfolgt sehr schnell ( o= ld(n) ), nach dem
unsortierten Eintrag sequentiell.
Ob ein Index verwendet wird, wird über die Verdrahtung festgelegt. An jedem
verdrahteten Eingang müssen auch Daten anliegen. Folgende Verdrahtungsmöglichkeiten
stehen zur Verfügung:
UpdateIndex |
UpdateData |
CompareIndex |
CompareData |
Sortierung |
Found |
Different |
|
|
|
X |
Data |
0/1 |
0 |
|
|
X |
X |
Index |
0/1 |
0/1 |
|
X |
|
X |
Data |
0/1 |
0 |
X |
X |
|
X |
Index, sequentielle Suche |
0/1 |
0 |
X |
X |
X |
|
Index |
0/1 |
0 |
X |
X |
X |
X |
Index |
0/1 |
0/1 |
Die ersten beiden Möglichkeiten sind nur dann
sinnvoll, wenn "Bei Vergleich Daten übernehmen" aktiviert ist, da sonst keine
Einträge in die Tabelle eingefügt werden können.
Damit eine schnelle Suche möglich ist, müssen die entsprechenden Felder (Index
oder Data) eindeutig sein, d.h. doppelte Einträge können nicht vorkommen. Wird ein Index
am Update-Eingang ein zweites Mal geschickt, wird er nicht doppelt in die Tabelle
aufgenommen, sondern das Data-Feld wird mit dem neuen Eintrag aktualisiert.
Um die Tabelle zu füllen, werden an den Update-Eingängen Daten geschickt (bzw.
wenn "Bei Vergleich Daten übernehmen" aktiviert ist, können die Daten auch
über die Compare-Eingänge kommen). Um die Tabelle zu leeren, ist am Reset-Eingang eine
"1" zu schicken.
Wenn ein Eintrag in einer Tabelle gesucht/verglichen/gelesen werden soll, so sind
an den Compare-Eingängen Daten zu schicken. Der entsprechende Datensatz wird an den
Ausgängen Index und Data ausgegeben. Am Found-Ausgang wird ein Signal ausgegeben, ob er
gefunden wurde, und (falls er gefunden wurde) am Different-Ausgang, ob er unterschiedlich
ist (siehe obige Tabelle). Im 4. Fall (sequentielle Suche) können mehrere Einträge auf
das Suchkriterium passen, hier wird dann der erste Eintrag genommen.
|
 | Ein-/Ausgänge
Eingänge
|
EXT, DB |
SWORD{update_compare} |
Parametrierung des Moduls über
externe Quellen wie ParamConv oder DBLoad |
UpdateIndex |
je nach eingestelltem Index-Datentyp
Default:
TYPEINFO{TypeInfo}
SWORD[1]{SCALAR} |
Indexeingang für Datenübernahme |
UpdateData |
je nach eingestelltem Daten-Datentyp
Default:
TYPEINFO{TypeInfo}
UBYTE[]{Text} |
Dateneingang für Datenübernahme |
CompareIndex |
je nach eingestelltem Index-Datentyp
Default:
TYPEINFO{TypeInfo}
SWORD[1]{SCALAR} |
Indexeingang für
Datenvergleich/Suche |
CompareData |
je nach eingestelltem Daten-Datentyp
Default:
TYPEINFO{TypeInfo}
UBYTE[]{Text} |
Dateneingang für
Datenvergleich/Suche |
Reset |
TYPEINFO{TypeInfo}
SWORD[1]{BIN} |
Reset-Eingang zum löschen der
Tabelle |
Ausgänge |
Index |
je nach eingestelltem Index-Datentyp
Default:
TYPEINFO{TypeInfo}
SWORD[1]{SCALAR} |
Indexausgang für gefundene Daten |
Data |
je nach eingestelltem Daten-Datentyp
Default:
TYPEINFO{TypeInfo}
UBYTE[]{Text} |
Datenausgang für gefundene Daten |
Found |
TYPEINFO{TypeInfo}
SWORD[1]{BIN} |
Binärausgang für Gefunden |
Different |
TYPEINFO{TypeInfo}
SWORD[1]{BIN} |
Binärausgang für Unterschiedlich |
|
 | Limitierungen
Im Augenblick wird die Tabelle nicht gespeichert, d.h. sie muß nach
jedem Start des Signalgraphen neu aufgebaut werden. |
 | Querverweise
Buffer, ParamBuf
|
 | Beispiele
- |
|