DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Trigger zur Messung

Hallo, ich habe eine Frage zu Triggern in Diadem View. Im Beispiel sieht man eine Messung von 60 sek. Kann ich mir über Messung in der Nachanalyse einen Trigger setzen, damit mir nur 5 sek vor und 5 sek nach m/s max angezeigt wird bzw markiert ? Wir haben deutlich längere Messungen und mehr Signale.  Dies würde uns in der Nachanalyse sehr viel Zeit sparen. Hier im Bild mit Band-Courser erwünschte Bereich zum Anzeigen bzw Markieren.Hier im Bild mit Band-Courser erwünschte Bereich zum Anzeigen bzw Markieren. 

0 Kudos
Message 1 of 3
(143 Views)

Einen Trigger im eigentlichen Sinne gibt es ein View nicht. Die Lösung, einen bestimmten Zeitbereich sichtbar zu machen, könnte z.B. darin bestehen, ein Script zu erstellen, das zunächst das Maximum ermittelt, ausgehen davon die Cursor-Fäden nach rechts in links im Abstand von 5 s positioniert und dann den Zoom aktiviert.

Holger Müller

DIAdem experience since 1996
Turn-key applications - Remote and on-site trainings - On-the-job training

| müller+krahmer GmbH | Koenitzer Straße 14, 07338 Kaulsdorf / Germany |
| Phone: +49 36733 / 2328 - 6 | Mobile: +49 160 / 287 7294 |
| Email: mueller@mueller-krahmer.de | Web: www.mueller-krahmer.de |
0 Kudos
Message 2 of 3
(84 Views)

Hallo MXCI,

 

Ich hab dir mal ein Beispielskript geschrieben. Das Skript nimmt einen Channel aus dem Data Portal und extrahiert die Daten im Bereich -5s und +5s um den max m/s Wert. Für die extrahierten Werte wird eine neue Gruppe und neuer Channel angelegt.

 

Leonard_Gartner_0-1744880586030.png

 

Um das Skript in DIAdem zu verwenden gehst du in den Skript Tab, erstellst ein neues Python Skript und kopierst den Python Quellcode (s. unten) in den Editor.

 

Du gibst im Skript den Namen der Gruppe und des Channels an, aus dem die Daten um den Max. m/s Wert extrahiert werden, und als neuer Channel gespeichert werden. Hier das Skript:

 

 

from DIAdem import Application as dd

GROUP_NAME  = "group_1"
CHANNEL_NAME = "velocity_1"
NUM_SAMPLES = 1000
MEASUREMENT_DURATION_SEC = 60

SAMPLES_PER_SEC = NUM_SAMPLES / MEASUREMENT_DURATION_SEC
SAMPLES_IN_5_SEC = round(SAMPLES_PER_SEC * 5)

channel = dd.Data.Root.ChannelGroups(GROUP_NAME).Channels(CHANNEL_NAME)
maximum = channel.Maximum
index = channel.ValueIndex(maximum)

data_start = max(1, index - SAMPLES_IN_5_SEC)
data_end = min(NUM_SAMPLES, index + SAMPLES_IN_5_SEC)
values = channel.GetValuesBlock(data_start, data_end - data_start)


group = dd.Data.Root.ChannelGroups.Add("five_sec_around_peak")
channel = group.Channels.Add(CHANNEL_NAME, dd.DataTypeChnFloat64)
channel.SetValuesBlock(values)

 

 

Grüße

Leonard

 

0 Kudos
Message 3 of 3
(59 Views)