Guten morgen an alle und ein frohes neues Jahr!
Ich möchte eine Spannung in eine Geschwindigkeit und entsprechende Strecke umrechnen. Ein Beispiel ist im Anhang ist auch soweit kein Problem.
Nun ist die Frage ist es sinnvoll das mit Cases zu machen oder gibt es da noch eine andere Möglichkeit? Ich habe dann nämlich 50 verschiedene Cases.
Besten Dank
Liebe Grüße Joana
Hallo Joana,
die Werte in deiner Tabelle packt man in ein Punkte-Array (Array of Cluster of (X, Y)) und nutzt dann die Funktion 1DArrayInterpolieren:
[
attachment=51692]
Das ganze Prinzip nennt sich dann LookUpTable (LUT)…
Edit:
Alternativ kann man auch eine Interpolationsfunktion für deine Wertetabelle erstellen, deine Werte scheinen "hinreichend genau" einem Polynom erster Ordnung zu entsprechen…
Danke für die schnelle Antwort, dass klappt wunderbar. Nun noch eine kleine Frage. Wie schaffe ich es, dass die eingetragenen Werte der Tabelle dauerhaft gespeichert werden?
Hallo Joana,
in welcher Tabelle? In deinem Bild oben sieht man nur einen Ausschnitt eines Excel-Sheets…
Allgemein: Entweder hast du eine Array-Konstante im BD oder ein Array-Control auf dem FP.
- Die Array-Konstante stellt kein Problem dar.
- Beim Array-Control einen Rechtsklick und "Aktuelle Werte als Default setzen" wählen… (Grundlagenwissen: Links in meiner Signatur!)
(06.01.2015 09:16 )MoJoJo schrieb: [ -> ]Wie schaffe ich es, dass die eingetragenen Werte der Tabelle dauerhaft gespeichert werden?
Hallo Joana,
das würde ich nicht machen, das ist Quick-and-dirty!
Ändert sich irgendein Wert in dieser Vorgabenzuordnung, dann muss irgendjemand (im besten Fall DU) in deinen Quellcode kriechen und die Konstante suchen.
Schreib diese Zuordnungen in eine *.csv-Datei und lies diese beim SW-Start ein. In diese Datei kannst du dann später auch noch andere Vorgaben reinschreiben - die komen mit wachsender Größe deines Projekts bestimmt.
Gruß, Marko
Ergänzung zu dem was Marko anmerkt:
Falls die Datenerfassung mit Messkarten von NI erfolgt, kann man im MAX eine virtuelle Task anlegen und die Korrekturtabelle ebenfalls dort mit anlegen. Beim Lesen mit DAQmx Read kommen dann gar nicht erst Spannungswerte heraus, sondern direkt die Geschschwindigkeiten (z.B.). Der besondere Vorteil ist, dass die Tabelle ebenfalls nicht im Quellcode gespeichert ist und sich im MAX jederzeit editieren läßt (z.B bei Wechsel des Sensors). Das ist vielleicht die eleganteste Möglichkeit überhaupt.
Danke für eure Hilfe!
Ich habe es jetzt mit dem Einlesen der .csv Datei gemacht und es funktioniert prima und erleichtert mir die Arbeit.
Gruß Joana