07-31-2007 09:32 AM
Hallo Kollegen,
wie wird die Funktion „timer“ in Diadem verwendet?
Gibt es eine fertige Funktion wie CTNV()?
Ich muss in einem Kanal Werte 5s lang ausblenden,
nachdem eine Bedingung eintrifft.
Mit anderen Wörtern,
wenn in einem Kanal der Wert von „0“ auf „1“ springt,
sollen im anderen Kanal ab diese Zeile alle Datenwerte 5s lang auf NOVALUE gesetzt werden.
Kann ich mit ctnv() Zeitbereiche wie Wertebereiche ausschneiden?
Danke im Voraus,
a6a
08-03-2007 11:29 AM
08-07-2007 08:01 AM
Hallo Info,
habe vielen Dank für das Konzept.
habe es an meine daten angepasst (s. Anhang) und beim debuggen bekomme ich eine Fehlermeldung, die mich in Wahrnsinn treibt und jeden Spaß auf Diadem kostet.
Bitte schaue es Dir an. warum ist der Ausdruck "Zeitstempel+5" als fehlerhaft gemeldet.
Viele Grüße,
a6a
Call DATAFILELOADSEL("2007y7m13d_13h54m7s AEP1101.dat","MDF","[6]/[1]","") ' laden time kanal
call ChnAlloc("I_batt_5s") ' ein data kanal anlegen
Call DataBlCopy("[1]/I_batt",1,2000,"[1]/I_batt_5s",1) ' die original daten in ein data kanal kopieren
dim triggerZeile, zeitstempel, offset, intNo_time
offset=1
do
triggerZeile = find("ch(""[1]/B_kwdreht"")=1",offset) '- Finden der Zeile, in welcher getriggert wird. Die Startzeile ist in der ersten Iteration 1 und wird dann auf die Zeile gesetzt, in der der Triggerkanal nach einem Trigger wieder auf 0 zurückgeht.
intNo_time = CNo("[1]/time")
zeitstempel=chdx(triggerZeile, intNo_time) '- Zeitstempel des Triggers ausleden.
Anzahl_Werte=find("ch(""[1]/time"")>Zeitstempel+5", zeitstempel) '- Finden der Zeile, in dem der Zeitstempel dem Triggerzeitpunkt + 5 Sekunden enspricht.
call DataBlInsertVal(ch("[1]/I_batt_5s"),Zeitstempel, Anzahl_Werte, novalue) '- Ersetzen der Werte in D, im Bereich der gefundenen Zeilen mit NoValue.
offset = find("ch(""[1]/B_kwdreht"")=0", triggerzeile) 'bestimmen des offsets, ab welchem der Nächste Trigger gesucht werden soll
loop until triggerZeile=0
08-07-2007 08:09 AM
Matthias Alleweldt Project Engineer / Projektingenieur | Twigeater? |