04-08-2013 07:14 AM
Hallo,
bin absoluter DIADEM-Neuling und habe folgendes Problem: Ich möchte
"Ausreißer" einer Drehzahlmessung für eine Maschine löschen. Dabei soll nicht nur das fehlerhafte Drehzahlsignal auf NOTVALUE gesetzt oder gelöscht werden, sondern auch das zugehörige Zeitsignal, sodass am Ende gleich viele "saubere" Zeit- und Drehzahlsignale vorhanden sind.
Bisher habe ich meist mit der erweiterten Taschenrechnerfunktion agiert.
Wäre super, wenn da jemand helfen könnte.
Danke
04-09-2013 01:38 AM - edited 04-09-2013 01:40 AM
Hallo DiademNeuling,
ein einfacher Weg ist in VIEW die Daten als Tabelle anzeigen zu lassen den Bereich zu markieren und zu löschen.
Wenn es im Script passieren soll gibt es die Funktion
Dim oMyChannelList
Set oMyChannelList = Data.GetChannels("[1]/Channel*")
Call oMyChannelList.Add(Data.Root.ChannelGroups(2))
Call DataBlDel(oMyChannelList, 5, 10)
04-11-2013 02:45 AM
Vielen Dank erst einmal für die schnelle Hilfe. Die Daten in der Tabellenansicht per Hand zu löschen ist sicherlich die einfachste Methode. Problem dabei ist nur, dass es sich bei besagter Problemstellung um mehrere tausend Messwerte handelt. Wenn ich nun also die fehlerhaften Werte auf NOVALUE setze, müsste ich ja dann all diese Werte aufsuchen und per Hand löschen. Ein Skript, welches dann automatisch den fehlerhaften Wert inklusive zugehöriger Zeitangabe löscht, wäre da sehr hilfreich
Gruß, diademneuling
04-11-2013 09:01 AM
Hallo DiademNeuling,
wie heißen die Parameter die einen fehlerhaften Wert deklarieren?
Wie schaut die Datei aus müssen dann alle Werte in einer Zeile entfernt werden, oder nur die
der betroffenen Spalte was passiert mit dem Zeitstempel bei den anderen Zeilen?
Script
Fehlerhaften Wert suchen
Index auslesen
Zeile löschen
04-11-2013 03:10 PM
04-12-2013 01:08 AM
Hallo Duffy2007,
der oder die fehlerhaften Werte befinden sich in der Spalte "Drehzahl" und ich möchte nun diesen fehlerhaften Wert, samt des zugehörigen Wertes in der Spalte "Zeit" löschen. Es soll, wie du bereits bemerkt hast, eben die komplette Zeile des fehlerhaften Wertes eliminiert werden. Das funktioniert mit dem Hinweis in untenstehendem Link meiner Meinung nach nicht, da doch dort nur der fehlerhafte Wert auf NoValue gesetzt wird? (habs schon ausprobiert).
Danke für deine Hilfe
04-12-2013 01:16 AM
Hallo Diadem Neuling,
nachdem die Werte auf NoValue gesetzt sind kann folgendes gemacht werden:
Das folgende Beispiel untersucht den Kanal Group/Channel1 auf NoValues. DIAdem entfernt die in diesem Kanal enthaltenen NoValues und löscht die entsprechenden Zeilen des Kanals Group/Channel2 ebenfalls. DIAdem legt die Ergebnisse in neuen Kanälen ab.
Call ChnNovHandle("Group/Channel1","Group/Channel2","Delete","X",False,False)
04-13-2013 03:43 AM
Hallo DiademNeuling
das Script könnte wie folgt aussehen
'Werte größer 5000 auf NoValue setzen
Call Calculate("Ch(""[1]/Test"") =Ch(""[1]/[3]"")*(1+CTNV(Ch(""[1]/[3]"")>5000))")
'NoValue Kanäle mit + Zeit löschen
Call ChnNovHandle("[1]/Zeit","[1]/Test","Delete","XY",False,False)
'Dummy Kanal Test löschen
CAll ChnDel("[1]/Test")