DataSel
Zurück Nach oben Vorwärts

Kurzbeschreibung Parameter Funktionsweise Ein/Ausgänge Limitierungen Querverweise Beispiele

Kurzbeschreibung
Modul zum Sammeln und selektiven Ausgeben von Daten und Cursorpositionen.
Typische Anwendung: Das Signal kann eingefroren, verschoben und gezoomt werden. Der jeweils selektierte Bereich und max. vier Cursoren werden im Plot dargestellt (siehe Beispiel).
(Plot-Parameter: Siehe Querverweise!)
Parameter
Parameter: intern (Dialog), extern (ParamConv), Datenbank (DBLoad)
Datenanzahl Max.: Ringpuffer-Größe für X-/Y-Datenspeicher
= maximale Anzahl zu sammelnder Daten (Höchstwert: 1000000)
Wird diese überschritten, so werden alte Daten gelöscht und neue Daten angefügt.
Im FREEZE-Modus wird der zum FREEZE-Zeitpunkt aktuelle Datenpuffer zwischengespeichert.
Cursor
XCursor-Steps: linear, Datenpunkt
Cursor-Auswahl: Kombination aus CX0, CX1, CY0, CY1
Cursor-Ausgabe nur im FREEZE-Modus (oder auch im CONTINUE-Modus)
Daten speichern
Dateiname
nach Stop bzw. Paketende
nach Signal am RESET -Eingang des Moduls
Funktionsweise
X-Eingang verdrahtet
ja X-Vektoren werden eingelesen, d. h. Meßwerte als X-Achse
nein   Zeit als X-Achse: wird aus Y-TypeInfo (Timestamp, Samplerate) berechnet: Zeit(s)=Y-Vektorlänge(Paket)*1000/Samplerate

 

Paket besteht aus Daten sammeln bis Daten speichern, falls in Dialog ausgewählt
1 Block beliebig viele Pakete Signal an RESET Eingang nach Stop
nach RESET
einem oder mehreren Blöcken aktuelles Paket Paketende oder Signal an RESET-Eingang nach Paketende,
nach Stop
nach RESET

 

Modus   FREEZE-Input Scroll-Inputs   Reset-Input Datenausgabe an X- und Y-Ausgang
CONTINUE wechselweises Umschalten FREEZE / CONTINUE   automatisch Umschalten auf CONTINUE-Modus aktueller Block
FREEZE automatisch Umschalten in FREEZE-Modus   mit Blättern und Zoomen selektierter Bereich

Cursoren: Ausgabe erfolgt für die im Dialog ausgewählte Teilmenge aus CX0, CX1, CY0, CY1.

Input Cursor XSteps Aktualisierung Output
Bereich:
0.0 bis 1.0

relativ zu den aktuellen Achsenbereichen
CX0, CX1 linear - neue Cursorwerte

- neue X-/Y-Daten (CONT)

- Blättern, Zoomen (FREEZE)
absolute Achsen-
positionen
Datenpunkt:
Cursor zum nächstliegenden Datenpunkt
CY0, CY1  

Ausgänge Y0 und Y1:

Y-Werte der den X-Cursorpositionen nächstliegenden Datenpunkte (unabhängig, ob XSteps linear oder Datenpunkt).
Y0 bzw. Y1 wird nur dann aktualisiert und ausgegeben, wenn Cursor CX0 bzw. CX1 bewegt wird.

Scrollen: Liegt an einem Scroll-Input ein Signal an, so wird die Ansicht automatisch eingefroren. Im eingefrorenen Bereich (max. Ringpuffergröße) kann mit Verwendung von ScrollH oder der Scroll-Inputs (siehe unten) beliebig nach links und rechts geblättert werden:

Bereich Scroll-
Input
aktuellen Achsenbereich verschieben
X < zum nächsten Datenpunkt nach links
> zum nächsten Datenpunkt nach rechts
<< eine Seite nach links
>> eine Seite nach rechts
|< zum Anfang der Meßreihe
>| zum Ende der Meßreihe
.|<.X innerhalb gesamten X-Bereich (FREEZE) verschieben, abhängig von XScrollBar-Position (0.0, .., 1.0)
Y .|<.Y innerhalb gesamten Y-Bereich (FREEZE) verschieben, abhängig von YScrollBar-Position (0.0, .., 1.0)

Zoomen: Liegt an einem XZoom-Input (|<...>|, XZoomIn, xZoomOut) ein Signal an, so wird die Ansicht automatisch eingefroren. Y-Zoom kann auch im CONTINUOUS-Mode durchgeführt werden.

Bereich Zoom-
Input
aktuellen Achsenbereich verkleinern bzw. vergrößern
X |<...>| gesamten X-Bereich darstellen
XZoomIn X-Bereich vergrößern: der sich zwischen den X-Cursoren befindende Bereich wird über der gesamten X-Achse dargestellt.
Befindet sich die Ansicht am Bereichsanfang oder -ende, so erfolgt die Verkleinerung mit entsprechender Bereichsverschiebung.
xZoomOut X-Bereich verkleinern: der gesamte X-Bereich wird so verkleinert, daß er sich zwischen den X-Cursoren befindet.
Wiederholbar bis der gesamte X-Bereich (FREEZE) dargestellt ist.
Y YZoomIn Y-Bereich vergrößern: der sich zwischen den Y-Cursoren befindende Bereich wird über der gesamten Y-Achse dargestellt.
yZoomOut Y-Bereich verkleinern: der gesamte Y-Bereich wird so verkleinert, daß er sich zwischen den Y-Cursoren befindet.
Der Y-Scrollbalken, die aktuelle Y-Position und der Y-Bereich beziehen sich auf den in der Typinformation festgelegten Bereich.

Bereichsangaben zur Steuerung von Scroll-Balken
Ausgänge für X-Position (.|<X), X-Bereich (.|X|.) und Y-Position (.|<Y), Y-Bereich (.|Y|.)

Bereichsangabe Output für Scrollbar-Steuerung
Bereich:
0.0 bis 1.0

relativ zur gesamten Achse
.|<X relative X-Position innerhalb des gesamten Bereichs
.|X|. relative Größe des dargestellten X-Bereichs zum Gesamtbereich
.|<Y relative Y-Position innerhalb des gesamten Bereichs
.|Y|. relative Größe des dargestellten Y-Bereichs zum Gesamtbereich
Ein-/Ausgänge
Eingänge
EXT, DB     SWORD{SaveOnStop}
SWORD{SaveOnReset}
UBYTE[]{FileName}
Parameter, die extern oder über Datenbank zur Laufzeit angegeben werden
X     TYPEINFO{TypeInfo}
DOUBLE[]{TIME_DOMAIN}
X-Daten
Y TYPEINFO{TypeInfo}
DOUBLE[]{TIME_DOMAIN}
Y-Daten - obligatorisch !
FREEZE TYPEINFO{TypeInfo}
SWORD[1]{BIN}
Ansicht
einfrieren/aktualisieren
RESET TYPEINFO{TypeInfo}
SWORD[1]{BIN}
Datenpuffer löschen
CX0 TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
X-Cursor Position 0
CX1 TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
X-Cursor Position 1
CY0 TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Y-Cursor Position 0
CY1 TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Y-Cursor Position 1
< TYPEINFO{TypeInfo}    
SWORD[1]{BIN}
Scrollen um einen Datenpunkt nach links
> TYPEINFO{TypeInfo}
SWORD[1]{BIN}
Scrollen um einen Datenpunkt nach rechts
<< TYPEINFO{TypeInfo}
SWORD[1]{BIN}
Scrollen um eine Seite nach links
>> TYPEINFO{TypeInfo}
SWORD[1]{BIN}
Scrollen um eine Seite nach rechts
|< TYPEINFO{TypeInfo}
SWORD[1]{BIN}
Scrollen zum Anfang
>| TYPEINFO{TypeInfo}
SWORD[1]{BIN}
Scrollen zum Ende
.|<.X TYPEINFO{TypeInfo}
DOUBLE[1]{BIN}
X-Achsen - Beginn (ScrollBar)
.|<.Y TYPEINFO{TypeInfo}
DOUBLE[1]{BIN}
Y-Achsen - Beginn (ScrollBar)
|< ... >| TYPEINFO{TypeInfo}
SWORD[1]{BIN}
Gesamten X-Bereich zeigen
XZoomIn    TYPEINFO{TypeInfo}
SWORD[1]{BIN}
X-Achsen - Zoom-In
xZoomOut    TYPEINFO{TypeInfo}
SWORD[1]{BIN}
X-Achsen - Zoom-Out
YZoomIn    TYPEINFO{TypeInfo}
SWORD[1]{BIN}
Y-Achsen - Zoom-In
yZoomOut    TYPEINFO{TypeInfo}
SWORD[1]{BIN}
Y-Achsen - Zoom-Out
Ausgänge
X TYPEINFO{TypeInfo}
DOUBLE[]{TIME_DOMAIN}
X-Daten
obligatorisch für Modul Plot
Y TYPEINFO{TypeInfo}
DOUBLE[]{TIME_DOMAIN}
Y-Daten
obligatorisch für Modul Plot
CX0 TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
X-Cursor Position 0
CX1 TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
X-Cursor Position 1
CY0 TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Y-Cursor Position 0
CY1 TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Y-Cursor Position 1
Y0 TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Y-Wert nahe Cursor Position CX0
Y1 TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Y-Wert nahe Cursor Position CX1
XPOS TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Aktuelle X-Position relativ zum Bereich
XPAGE TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Aktueller X-Bereich relativ zum Gesamtbereich
XLINE TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Aktuelle X-Schrittgröße entspricht dem Abstand von zwei Datenpunkten
YPOS TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Aktuelle Y-Position relativ zum TypeInfo-Bereich
YPAGE TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Aktueller Y-Bereich relativ zum TypeInfo-Bereich
YLINE TYPEINFO{TypeInfo}
DOUBLE[1]{TIME_DOMAIN}
Aktuelle Y-Schrittgröße (Zeile) entspricht 10% der aktuellen Seitengröße
Limitierungen
Y-Eingang obligatorisch,
TypeInfo Range Min und Max werden übernommen sobald sich der Bereich ändert, dabei wird der Y-Zoom-Bereich initialisiert.
Querverweise
DataSel eignet sich als Vorgänger von Modul Plot.
Plot:
Verdrahtung von X und Y obligatorisch (notwendig zur Cursor-Darstellung)
Dialogeinstellungen
X-Achse und Y-Achse fest, keine Werte (=TypeInfo)
Blöcke setzen (nicht anfügen !!!, da DataSel ausgewählte Daten liefert
Beispiele
...Iconnect\Examples\advanced\Zoom.tc2
...Iconnect\Examples\demo\Zoom.tc2


datasel_beispielgraph.jpg (106014 bytes)

datasel_beispiel.jpg (37127 bytes)

datasel_beispiel_plot.jpg (33339 bytes)

datasel_beispiel_digitaldisp.jpg (51407 bytes)