From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Ereignissuche DIAdem 2015

Solved!
Go to solution

Hallo liebe Mitglieder des NI Forum's,

ich erstelle gerade selbst ein Skript, welches Zeitpunkte herausfinden soll, wo Sensor_X,Y,Z bestimmte Werte aufzeigt (Bsp: F_01>10; relF_01>80; B_02=0).
Habe es zunächst mit der Funktion: "Find" bzw. "ChnFind" probiert, doch leider ohne großen Erfolg. Nun bin ich zufällig auf die neue Funktion in DIAdem 2015 "Ereignissuche" gestoßen.
Nun einmal eine Frage an euch, hat schon jemand Erfahrung mit dieser Funktion im Skript oder vielleicht eine brauchbare Alternative für mein Problem?

 

Mit freundlichen Grüßen

 

Carsten

0 Kudos
Message 1 of 8
(5,181 Views)
Solution
Accepted by topic author jochenknochen

Hallo jochenknochen,

 

die Ereignissuche in DIAdem 2015 ist genau für solche Aufgaben wie der deinen entwickelt worden. Sie ist vor allem auf Performance getrimmt. Du suchst in einem Kanal nach bestimmten Ereignissen (wie F_01 > 10, mit der Fensterfunktion "ChnEventDetectionWindow", dabei ist 10 die untere Grenze, die obere ist ein sehr hoher Wert) und kannst dieses mit anderen durch "and" oder "or" verknüpfen. Es ist auch möglich zu prüfen, ob ein Ereignis für eine bestimmte Zeit in einem Kanal aufgetreten ist.

Als Ergebnis bekommst du einen zweidimensionalen Vektor, der den Anfang und das Ende der Fundstellen (Zeilennummer im Kanal) enthält. Weitere Infos findest du in der Hilfe. Da solltest du dir auch das Beispiel-Script "Ereignissuche" ansehen.

 

Gruß

Walter

Message 2 of 8
(5,145 Views)

Hallo Walter,

 

vielen vielen Dank. Hab ewig nach der passenden Syntax gesucht, aber nie gefunden. Funktioniert genau wie ich es mir vorgestellt habe.

 

MfG

Carsten

0 Kudos
Message 3 of 8
(5,138 Views)

Hallo,

 

ich hätte nochmal eine ergänzende Frage zum Thema Ereignissuche. Als Ergebnis habe ich jetzt einen simplen Rechteckverlauf, welcher mir mit Hilfe von 1 und 0 optisch zeigt, wann das zuor definierte Ereignis auftritt. Nun möchte ich in einem neuem Report Sheet alle Fundstellen mit der entsprechenden Dauer/Datumsangabe auflisten. Folgenden Ansatz habe ich aus einem anderen Skript:

 

For i= stline to enline
If Chd(i,"[8]/Fundstellen")=1 Then 'Entscheidung Kanalwert = 0
c=c+1 'ja-> Zähler um 1 erhöhen
else
if c > cmax then 'nein-> Entscheidung ob Zählung größer als bisher größte Zählung
cmax=c 'ja-> neue größte Zählung definieren
c=0 'c für nächste Zählung 0 setzen
else c = 0 'nein-> c für nächste Zählung 0 setzen
End If
End If
Next
If c > cmax then 'nochmalige Prüfung nach größter Zählung für letzten Abschnitt in Kanal
cmax=c
Else c=0
End If

 

Allerdings komme ich damit nicht zur Lösung. Könnt ihr mich vielleicht nochmal helfen?

0 Kudos
Message 4 of 8
(5,014 Views)

Hallo jochenknochen,

 

im ausgelieferten Beispiel „Ereignissuche“ gibt es im Script „EventDetection.vbs“ die Prozedur „CreateSegmentGraph“. Darin werden die gefundenen Bereiche (Anfangs- und Endwerte des X-Kanals) in einen neuen Kanal gespeichert. Wenn du das etwas umbaust und durch die Differenz ergänzt, sollte es das sein, was du suchst.

 

Gruß

Walter

0 Kudos
Message 5 of 8
(5,010 Views)

Vielen Dank für die schnelle Antwort. Alles klar ich versuche mein Glück.

0 Kudos
Message 6 of 8
(5,008 Views)

Guten Abend Walter,

 

ich probiere nun seit 3 Tagen herum, aber komme zu keinem gelungenem Ergebnis. könntest du bitte deine Idee nochmal genauer erläutern oder vielleicht sogar die Syntax dazu nennen?

 

Mit freundlichen Grüßen

 

Carsten

0 Kudos
Message 7 of 8
(4,975 Views)

Hallo jochenknochen,

 

ich habe hier ein einfacheres Beispiel gepostet

 

Gruß

Walter

0 Kudos
Message 8 of 8
(4,958 Views)