DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Skript zum Exportieren bestimmer Messwerte in bestehende Exceldatei

Solved!
Go to solution

Hallo liebe Community,

 

mein Anliegen ist wahrscheinlich für einen Pro ein leichtes Unterfangen und in ein paar Zeilen abgehandelt, als kompletter Neuling in Sachen Diadem und Skriptschreiberei für mich allerdings erstmal eine hohe Hürde. Daher wäre ich über Hilfe sehr dankbar und möchte mich an dieser Stelle bereits herzlich bedanken!

 

Im Rahmen meiner Masterthesis liegen zwölf Gruppen in DIAdem vor mit jeweils unterschiedlichem Namen, und jede Gruppe enthält genau zwei Kanäle: Kanal 1 "Time" enthält die x-Werte, Kanal 2 "Preload" den entsprechenden y-Wert. Ziel ist es nun ganz bestimmte Messwerte auszulesen, von den über eine Million vorhandenen Messwerten werden nur 83 benötigt.

 

Ich bräuchte also ein Skript welche die Gruppen nacheinander abarbeitet und die entsprechenden y-Werte in eine bestehende Excel-Datei spaltenweise schreibt (eine neue Exceldatei wäre auch ok). Also beispielsweise beginne mit der ersten Gruppe, x-Wert = 3 Sekunden, schreibe mir den dazugehörigen y-Wert in Zelle A1, dann x-Wert 10 Sekunden, y-Wert in Zelle A2 usw. Die x-Werte sind dabei für alle Gruppen gleich.

 

Das sollte doch als Skript ein leichtes sein, oder? Ich habe auch schon ein paar Code-Fragmente gefunden, aber so richtig erschließt sich mir noch nicht die Sprache. Als nächstes Problem kommt manchmal aufgrund der Messtechnik vor, dass beispielsweis nicht exakt 3s im Kanal stehen, sondern 3,02 s. Sollte der exakte Wert nicht vorliegen wäre eine lineare Interpolation der zwei benachbarten Werte natürlich am besten!

 

Vielen Dank für die Hilfe!

 

0 Kudos
Message 1 of 5
(4,467 Views)

Hallo Chris,

 

ich denke, den Skript Befehl, den Du suchst ist "CHD":

 

Variable: CHD - DIAdem 2015 Hilfe - National Instruments
http://zone.ni.com/reference/de-XX/help/370858M-0113/varoff/chd/

 

D.h. Du würdest CHD gleich zweimal benutzen: einmal lesend, um den entsprechenden Wert aus den Gruppe auszulesen (siehe 1. Skriptbeispiel aus dem Link). Und dann noch einmal schreibend, um den Wert in z.B. einen neuen kanal hineinzuschreiben (siehe 2. Skript).

Was Du dann noch benötigst ist folgende KB:

 

How can I Programmatically Import My Data from Excel to DIAdem or Export it From DIAdem to Excel? - National Instruments
http://digital.ni.com/public.nsf/allkb/C9423530C340B77386256F5E0048F369?OpenDocument

 

bzw hier:

Solved: Re : How to export diadem channels to an existing excel file with a certain configuration - Discussion Forums - National Instruments
http://forums.ni.com/t5/DIAdem/How-to-export-diadem-channels-to-an-existing-excel-file-with-a/m-p/13...

Ich hoffe das hilft Dir weiter!

LG, Niko

Niko NR
Systems Engineer, National Instruments
0 Kudos
Message 2 of 5
(4,421 Views)
Solution
Accepted by topic author Chris_____

Kurzer Nachtrag, nachdem ich meinen Post oben nicht mehr editieren kann:

nach einem Hinweis von unsrem Spezialisten wäre die wesentlich elegantere und vor allem auch schnellere Möglichkeit über die Objekt orientierte Data API zu gehen. Mehr dazu ist in der DIAdem Hilfe zu finden:

Help >> Programming Reference >> Object Oriented Script Interfaces >> Internal Data >> Objects >> Object: Data

Ein Beispiel um den 3. Wert aus einem neu angelegten Channel anzeigen wäre folgendermassen:

 

Dim oMyGrp, oMyChn, i
Set oMyGrp = Data.Root.ChannelGroups.Add("MyChannelGroup")
Set oMyChn = oMyGrp.Channels.Add("MyChannel",DataTypeFloat64)
For i = 1 to 100
oMyChn.Values(i) = CDbl(i/100000)
Next
MsgBox(oMyChn.Values(3))

 

Gruss, Niko

Niko NR
Systems Engineer, National Instruments
Message 3 of 5
(4,409 Views)

Perfekt und vielen lieben Dank für die ausführliche und schnelle Antwort, genau danach habe ich gesucht! Sie haben mir sehr geholfen! 🙂

0 Kudos
Message 4 of 5
(4,405 Views)

Super, das es klappt! Wenn der vorherige Post stimmt, dann gerne als Lösung markieren oder einen Kudo dafür geben 😉

Merci

Niko NR
Systems Engineer, National Instruments
0 Kudos
Message 5 of 5
(4,403 Views)