LabVIEWForum.de
Script zur Selektierung gesucht - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: Weitere NI Software (/Forum-Weitere-NI-Software)
+---- Forum: DIAdem (/Forum-DIAdem)
+---- Thema: Script zur Selektierung gesucht (/Thread-Script-zur-Selektierung-gesucht)



Script zur Selektierung gesucht - MP_79 - 21.08.2008 11:58

Hallo,

ich nutze DIAdem 10.2 um LabVIEW .tdms Messwerte zu visualisieren.
Nun bin ich auf der Suche nach einem script welches mir jeden 100(Bsp.) Messwert aus dem Kanal rauskopiert und in einem neuen ablegt.

Danke für die Hilfe!

Malte


Script zur Selektierung gesucht - Carpe_DIAdem - 21.08.2008 12:53

Hallo Malte,

hier das Script.

Dim saChnName, iChnNo, iSourceNo, iChnLen, iCurrCount, iChnIdx, iStepWidth

iStepWidth = 100

saChnName = ChnAlloc("NewChn", 1024)
iChnNo = cno(saChnName(0))

iSourceNo = cno("[1]/Drehmoment")
iChnLen = ChnPropValGet(iSourceNo, "length")

iCurrCount = 1
iChnIdx = 0
do while iCurrCount <= iChnLen
iChnIdx = iChnIdx + 1
chdx(iChnIdx, iChnNo) = chdx(iCurrCount,iSourceNo)
iCurrCount = iCurrCount + iStepWidth
loop

Call ChnPropValSet(saChnName(0), "length", iChnIdx)
call ChnCharacter(saChnName(0))


Du kannst aber auch eiinfach beim Laden die Daten reduzieren.

Carpe DIAdem


Script zur Selektierung gesucht - MP_79 - 21.08.2008 13:25

Hallo CarpeDIAdem,

danke für die sehr schnelle und auch zielführende Antwort.

-----------------------------
2.)

Also, ich habe jetzt eine Ventilöffnung (gesampelt mit 1kHz; ca. 4000 Samples) in 40 Samples abgebildet.
Um nun eine Aussage treffen zu können welchen Fehler ich bei einer solchen "undersamplingrate" machen werde müsste ich noch:

- die Werte um 1000 "auseinanderziehen" (evtl. mit timestamp?)
- eine Integration der Fläche unter der Kurve vornehmen

Für Tipps und Vorschläge bin ich dankbar.

Gruss,

Malte


Script zur Selektierung gesucht - Carpe_DIAdem - 22.08.2008 14:54

Hallo Malte,

um die Daten richtig vergleichen (darstellen) zu können, benötigst du sicherlich auch die zugehörigen Zeiten. Hier das entsprechend modifizierte Script:

Option Explicit 'Erzwingt die explizite Deklaration aller Variablen in einem Skript.

Dim saChnTName, iChnTNo, saChnName, iChnNo, iSourceTNo, iSourceNo, iChnLen, iCurrCount, iChnIdx, iStepWidth

iStepWidth = 50

saChnTName = ChnAlloc("NewChn", 1024)
iChnTNo = cno(saChnTName(0))

saChnName = ChnAlloc("NewChn", 1024)
iChnNo = cno(saChnName(0))

iSourceTNo = cno("[1]/Zeit")
iSourceNo = cno("[1]/Drehmoment")
iChnLen = ChnPropValGet(iSourceNo, "length")

iCurrCount = 1
iChnIdx = 0
do while iCurrCount <= iChnLen
iChnIdx = iChnIdx + 1
chdx(iChnIdx, iChnTNo) = chdx(iCurrCount,iSourceTNo)
chdx(iChnIdx, iChnNo) = chdx(iCurrCount,iSourceNo)
iCurrCount = iCurrCount + iStepWidth
loop

Call ChnPropValSet(saChnTName(0), "length", iChnIdx)
call ChnCharacter(saChnTName(0))

Call ChnPropValSet(saChnName(0), "length", iChnIdx)
call ChnCharacter(saChnName(0))


Richtig sichtbar wird der Fehler aber erst wenn die beiden Kanäle subtrahiert werden. Dazu musst du den kurzen Kanal zunächst auf die gleiche Länge wie den Originalkanal bringen (Lineare Interpolation, über der Originalzeit). Danach kannst du die Kanäle subtrahieren. Wenn du das anzeigst siehst zu den Fehler. Die tatsächliche Abweichung vom Original ist die Summe vom Absolutwert dieses Kanals.

Carpe DIAdem


Script zur Selektierung gesucht - MP_79 - 25.08.2008 12:27

Hallo CarpeDIAdem,

danke für das Script.

Habe mir ein Script aus deinen Vorlagen und der DIAdem-Hilfe erstellen können, welches mir eine Menge Fleißarbeit abnimmt.

Die Ergebniss sind vertretbar, wunderbar!

Gruss,

Malte