INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Kalibrierdaten / Kennlinie / Skalierung speichern wie am elegantesten



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

22.10.2010, 22:07
Beitrag #1

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
Kalibrierdaten / Kennlinie / Skalierung speichern wie am elegantesten
Heyho!

Ich hab's mal ins allgemeine Forum und nicht DAQ gepackt, weil man "sowas" ja doch recht universell einsetzen kann - nicht, dass der nächste Suchende den Thread nicht findet...Smile

Ja, wie schon angedeutet möchte ich so etwas wie eine Kennlinie speichern. Genau geht es um 6 Spannungen, welche Pt-100 (leider schon analog verdreht, daher RTD-VI nicht nutzbar) und vier Spannungen, welche U's und I's zweier Heizungen darstellen. Für Temperatur und Leistung habe ich Referenzen, entsprechende Werte zuzuordnen dürfte also kein Problem sein.
Aber wie macht man so etwas am elegantesten? Am liebsten würde ich eine große Maske haben, wo man die zu lesenden Kanäle markiert, irgendwo die Referenz einträgt und per Button die jeweiligen Messwerte mit zugehöriger Referenz in eine Datei speichert. Diese wird entsprechend bei jedem Programmstart eingelesen, sagen wir 5. Ordnung polynomisch interpoliert und sollte so zu recht präzisen Werten über den gesamten Bereich führen.

Mein Ansatz war, pro Kanal ein Array zu füllen (oder eben nicht, wenn nicht markiert) und im Anschluss alles mit separatem Button in eine Datei zu schreiben. Dies hat aber leider nur zu Frust und keinem brauchbaren Ergebnis geführt, so dass ich jetzt alle Hoffnung auf euch setze. Vielleicht hat jemand ja schonmal ein ähnliches Problem gehabt?!

Viele Grüße,
Dennis

PS: LV2009/SP1 und alle Addons verfügbar.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.10.2010, 13:40
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Kalibrierdaten / Kennlinie / Skalierung speichern wie am elegantesten
Wie wäre es mit einer Datenbank?
Toolkits dazu hast Du ja, wie Du schreibst.
Und bitte Profil_ergaenzen, wenn Du LabVIEW 2009 hast.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2010, 15:26
Beitrag #3

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
Kalibrierdaten / Kennlinie / Skalierung speichern wie am elegantesten
Heyho!

Ich wollte gerade fragen mit welchem Toolkit aber wenn ich recht entsinne hat nur eines davon MySQL installiert. Wäre das aber nicht etwas mit Kanonen auf Spatzen geschossen? Ich meine, es geht um 10 Kanäle mit jeweils nicht mehr als 10 X/Y Koordinaten. Da der Rechner u.A. auch sekündlich eine FFT machen muß hätt' ich doch Sorge, dass er von einem SQL im Hintergrund gebremst wird.

Gruß,
Dennis
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2010, 23:20
Beitrag #4

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
Kalibrierdaten / Kennlinie / Skalierung speichern wie am elegantesten
Okaaay... Latein am Ende und ich muss euch mal wieder nerven. Hoffentlich habt ihr zumindest noch 1..2 Tipps parat damit es weiter gehen kann. Die Arbeit mach' ich gern selbst aber wie gesagt: Die Ideenflasche ist leider leerSad

Vorweg: Ich hab' da vorhin was gefunden, was in die richtige Richtung geht:
http://zone.ni.com/devzone/cda/epd/p/id/3867
...Leider ist mein LV-Wissen zu begrenzt, um es in akzeptabler Zeit zu durchschauen und zu modifizieren. Alles was ich weiß ist, dass sie es dort wohl auch mit Arrays machen und das Ganze zum Schluss als Tabelle schreiben. So wäre ich es auch angegangen bzw hatte es ja schon im ersten Versuch, also nochmal auf ein Neues:

Das VI liest alle 6 Kanäle und stellt sie dar. Der "Save" Knopf aktiviert dann einen case, der das gerade anliegende 1D-Array an ein 2D-Array anhängt, die grüne LED als Bestätigung kurz aufblinken lässt und den Save-Knopf wieder auf 0 setzt. Mein aktuelles Problem ist nun der false-case, der ja innen auch nach Anschluss verlangt. Was hänge ich dort dran? Oder besser das ganze in eine Schleife mit Schieberegister verpacken und dort drin per case das Array ergänzen einfach nur durchschleifen?! Nee - dann wäre das case-Problem gelöst aber die innere while-Schleife blockiert die äußere... Könnt ihr euch denken, dass ich langsam verzweifle, oderWink

Viele Grüße,
Dennis

LV9


Angehängte Datei(en)
Sonstige .vi  cal.vi (Größe: 18,42 KB / Downloads: 225)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2010, 07:09
Beitrag #5

M Nussbaumer Offline
Zarathustra
****


Beiträge: 654
Registriert seit: Sep 2009

2009 SP1
2009
EN

6300
Schweiz
Kalibrierdaten / Kennlinie / Skalierung speichern wie am elegantesten
Guten Morgen Dennis

Wieso verwendest du nicht einfach ein Schieberegister in deiner akutellen Schleife?
Du brauchst ja eh etwas in der Richtung um dein Array zu füllen, wieso nicht auch gleich für den False-Case verwenden?Wink

Hab mal den Feedback-Node durch ein Schieberegister ersetzt.

LabVIEW 2009:


Sonstige .vi  Schieberegister.vi (Größe: 18,61 KB / Downloads: 223)


Hoffe das hilft dir weiter.
Gruss Marc
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2010, 14:50
Beitrag #6

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
Kalibrierdaten / Kennlinie / Skalierung speichern wie am elegantesten
Hey Marc,

*batz* wie war das gleich mit dem Wald und den Bäumen...Wink. Hast vollkommen recht - das mit while in 'ner while wäre doppelt gemoppelt und überflüssig. Ich muss jetzt noch ein bißchen am Theorieteil der Diss feilen und werde gleich die nächste Pause nutzen, um mit deinem Tipp weiter zu basteln, bis das nächste Problem auftaucht oder die Kalibrierung endlich gelöst ist. Das 2D-Array abzulegen, anderswo wieder aufzurufen und die Kurven anzufitten kann ja sooo schwer nicht sein. Das meiste hab' ich zwar noch nie gebraucht aber die Tools dafür sind eigentlich alle bekannt.

...Nur zum Verständnis noch zwei Fragen:

- Ein Schieberegister schiebt immer nur von rechts nach links, damit die Daten für den nächsten Durchlauf dort anliegen, richtig? Ein Tunnel aus einer While produziert ja selbst schon ein Array - nicht, dass hier auch so etwas passiert.

- Indizieren mit leerem Array ist richtig, weil ist das ja erst in der Schleife mit Daten gefüllt wird - auch richtig so? In der Schleife wird dann immer ein Array-Satz von Daten zusammengesetzt und diese wiederum auf Knopfdruck in eine weitere Dimension aneinander gereiht. Hinten müsste also so etwas wie eine Tabelle raus kommen - ob die Referenzwerte nun in der ersten Zeile oder Spalte stehen übersteigt meine Erfahrung. Im Zweifel gibt's aber ja nette Tools, um das komplette Array zu drehen...

Viele Grüße,
Dennis
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.10.2010, 16:24 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2010 16:32 von Lucki.)
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Kalibrierdaten / Kennlinie / Skalierung speichern wie am elegantesten
Hier mal kleine Anregung zum Lesen/Speichern der Sensorkoeffizienten (ausbaufähig).
lv90
Sonstige .vi  Data.vi (Größe: 13,37 KB / Downloads: 280)

Anmerkung zu Deinem VI: Bei den Diagr. gibt es Rechtsklick/Sichtbare Elemente/Zahlenanzeige. Die könnten die anderen Zahlenanzeigen ersetzen.
Zur Approximation der PT100 Kennlinie werden normalerweise im Höchstfall 4 Koeffizienten verwendet, wabei sich das auf den Widerstandverlauf bezieht. (s. Wikipedia) Du glaubst doch nicht etwa, daß Du mit 10 Koeffizienten genauere Gesamtergebnisse bekommst als mit 4?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2010, 16:45 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2010 16:54 von Cruzaderz.)
Beitrag #8

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
Kalibrierdaten / Kennlinie / Skalierung speichern wie am elegantesten
Zum letzten Tipp: Wo holst du die eigentlich immer her - oder liest du Gedanken?! Ich habe schon öfters ne Zahl in ein Diagramm gebracht aber immer mit einem überlagerten Indicator gelöst. Genial - danke für den TippBig Grin

...das O2-VI werde ich auf jeden Fall für die Speicherung als Ideenspender gebrauchen können. Danke auch dafürSmile

Gruß,
Dennis

Edit zu deinem EditWink: Da reden wir von zwei unterschiedlichen Kennlinien. Du meinst die Umrechnung U->T, wofür man je nach Temperatur bis zu 4 Koeffizienten bemühen muss. Wäre schön, wenn dem so wäre (zumal in LV integriertWink) aber ich habe leider einen 20 Jahre alten Analogverstärker, der eben diese Anpassung auch analog macht - keine Ahnung wie genau aber der ausgegebene Spannungsverlauf ist relativ gerade. Und gerade da ist das Problem: Es ist "relativ" gerade aber wir messen Temperaturänderungen von wenigen °C . Wenn wir da gerade mal in ner Beule drin sind, ist die Messung Nonsens und wir suchen im Zweifel an der falschen Stelle. Daher nehme ich seit jeher lieber einen guten Thermostaten, einen Satz Quecksilber-Referenzthermometer und verbiege die analog erzeugte Kennlinie quasi zu den richtigen Absolutwerten. Bisher hab' ich das immer händisch und nur mit Achsenabschnitt und Steigung gemacht, was immer etwas besser als R=0.99 war. Nun gehen uns aber die Verstärker aus und auf dem letzten steht "nicht angep.", weshalb ich eine wellige Kennlinie fürchte. Da ich es schon lange in LV einpflegen wollte wird das Ganze nun kurzerhand 3. oder gar höherer Ordnung angefittet und gut. Bei einem Mal Rechnen pro Sekunde sollte das den 2800er Athlon nicht weiter juckenWink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2010, 18:09
Beitrag #9

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
Kalibrierdaten / Kennlinie / Skalierung speichern wie am elegantesten
Sooooo... in Sachen Werte wegspeichern soll's das gewesen sein und es tut recht schön, was es soll *freu*. Den Tipp von Lucki mit den Charts setze ich aus Faulheit (ne, in Wirklichkeit ist es richtig fieser Zeitdruck) erst beim nächsten VI um. Die paar Objekte stören nun auch nicht weiterWink

Im Anhang das Endergebnis. Erstellen von Kalibrierung für 6*RTD, beliebig viele Wertepaare mit vorgegebenem Dateinamen.

Btw: Wie wichtig bei LV die kleinigkeiten sind habe ich eben wieder gemerkt, als das Array trotz "build array" immer nur 1D blieb. Tjaaa, die Konstante vorn muss 2D sein, sonst klappt das auch nicht. Aber da als Laie erstmal drauf zu kommen war nicht einfachWink


...Und nun stürze ich mich auf's Einlesen, Fitten und die Fits entsprechend it den Werten vom ADC verwursten. Auha - langsam wirds komplexSad

Gruß,
Dennis

LV9


Angehängte Datei(en)
Sonstige .vi  cal.vi (Größe: 26,39 KB / Downloads: 190)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2010, 22:30
Beitrag #10

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
Kalibrierdaten / Kennlinie / Skalierung speichern wie am elegantesten
Wow - nur 4 Stunden (gefühlte 10Wink) mit Essen zwischendurch. Und das ganz ohne euch zu nerven. Ich glaub', ich werde langsam auch etwas besser Lol

So, und nun möchte ich euch natürlich an meiner Freude teilhaben lassen. Das VI liest die oben erzeugte Datei ein, fittet als Polynom 3. Ordnung, stellt alles schön dar und übergibt die Polynome an das Haupt-VI. Dort brauche ich sie nur noch an "evaluate polynom" anzuschließen und *bingo* hinten kommt die Temperatur raus, die genauer bei uns nicht gehtSmile

Und bevor es jetzt Haue wegen des engen Programmierstils gibt: Das Ganze muss später in den Anhang eines A5-Büchleins und wenn man nicht nur die Linien sehen will, muss alles halt etwas dichter gepackt werden. Außerdem mag' ich es sowieso, wenn man das VI ohne scrollen überblicken kann.

Btw: Gibts eigentlich eine elegantere Möglichkeit für die 6 Graphen/Residuen? Ich meine etwas, was man z.B. in eine Schleife packen könnte, damit der Index-Part nur einmal vorkommt. Aber wie weist man dann die einzelnen Graphen und Indicator zu?! Naja - durch das Bündeln in der Schleife konnte ich ja zumindest schonmal einen Indizierer einsparen. Immerhin etwas...Wink

Viele Grüße,
Dennis

LV9


Angehängte Datei(en)
Sonstige .txt  Cal_RTD.txt (Größe: 368 Bytes / Downloads: 221)

Sonstige .vi  Lesen_RTD_Cal.vi (Größe: 37,2 KB / Downloads: 198)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  XY-Kennlinie, Y-Werte in Abhängigkeit von X ausgeben Daniel90 3 3.927 04.01.2016 18:11
Letzter Beitrag: GerdW
  Kennlinie Abfahren mittels Linearer Interpolation David_Lab 15 11.672 24.02.2014 12:18
Letzter Beitrag: jg
  Vertikale Kennlinie in Diagramm anzeigen lassen Excalibour 2 5.583 04.07.2007 18:54
Letzter Beitrag: Excalibour
  Kennlinie / Vorsteuerkurve grafisch vorgeben? PeterLV 0 3.169 21.03.2007 14:27
Letzter Beitrag: PeterLV
  Kennlinie im Diagramm anzeigen rene 11 8.837 19.10.2006 07:48
Letzter Beitrag: rene

Gehe zu: