12-08-2023 05:55 AM
Hallo. Ich Suche die Möglichkeit die folgendes kann. "Filtere die Werte aus dem Kanal X nach allen Werten z.B. 1000 und gebe dann die zugehörigen Daten des Kanals Y in einem neuen Kanal aus, alle anderen Werte sollen als No Value dargestellt werden"...
Mir fehlt da der Ansatz....
Vielen Dank für eure Tipps....
Solved! Go to Solution.
12-08-2023 07:54 AM
Hallo Stefan1606,
in DIAdem gibt es die sogenannten Ereignis-Funktionen (Event functions) mit denen gefiltert, gesucht, kombiniert und neue Kanäle basierend auf dem Ergebnis erzeugt werden können. Diese sind sehr mächtig und können in beliebigen Kominationen eingesetzt werden.
Deinen Anwendungsfall könntest du mit der Event-Funktion ChnEventDetectionWindow lösen. Um die gefundenen Stellen in einen neuen Kanal zu schreiben, rufst du anschließend die Funktion ChnEventCreateFilteredTrueChn auf.
Hier ein kleines Beispiel, bei dem alle Werte im Zeit-Kanal gesucht werden, die >= 40 und <= 41 sind und anschließend aus dem Y-Kanal Geschwindigkeit die zugehörigen Werte in den neuen Kanal FilterResult geschrieben werden.
' Beispieldatensatz zur Demonstration laden.
call Data.Root.Clear()
call DataFileLoad("EXAMPLE.TDM", "", "Load|ChnXYRelation")
const XChnName = "Example/Zeit"
const YChnName = "Example/Geschwindigkeit"
const ResultChnName = "Example/FilterResult"
ChnEventList1 = ChnEventDetectionWindow("", XChnName, 40, 41, 0, 0)
call ChnEventCreateFilteredTrueChn(ResultChnName, ChnEventList1, YChnName, NOVALUE)
' Nice to have, wenn mit XY-Kanälen gearbeitet wird:
' Ergebniskanal als XY-Kanal festlegen
Set Data.GetChannel(ResultChnName).xRelation = Data.GetChannel(XChnName)
In der Hilfe sind alle verfügbaren Ereignisfunktionen aufgelistet. Es können auch mehrere Suchen durchgeführt und diese mit AND oder OR verknüpft werden. Doch für deinen Anwendungsfall sollte das obige Beispiel ausreichen ;-).
12-08-2023 08:04 AM
Noch ein kleiner Tipp, wie man an die Namen der Funktionen für das Script kommt. Die Ereignisfunktionen sind in ANALYSIS bei den Kanalfunktionen zu finden. Aktiviere den Aufzeichnungsmodus von DIAdem im Modul SCRIPT, öffne den Dialog der Ereignisfunktion, gebe deine Werte ein und lasse das Ergebnis berechnen. Anschließend stehen die vom Dialog verwendeten Funktionen im aufgezeichneten Script :-).
Alternativ zum Aufzeichnungsmodus kann jederzeit mit der Tastenkombination CTRL+SHIFT+C ein Scriptblock in der Zwischenablage erzeugt werden, der den Inhalt eines geöffneten Dialogs wiederspiegelt.
12-12-2023 03:46 AM
Vielen Dank für die Hilfe!