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!
...ich arbeite gerade an einer Robotersteuerung und möchte je nach "Können" unterschiedliche Geschwindigkeitsprofile anlegen. Für jedes Profil können je 6 unterschiedliche Werte eingestellt werden. Nun möchte ich die Profile zB. Amateur, Fortgeschritten, Profi anlegen.
Mir ist klar, dass man die Werte bspw. in ein Excel-File ablegen und beim Start des VIs wieder einlesen kann. Allerdings suche ich nach einer eleganteren Möglichkeit. Am liebsten würde ich das abspeichern der Werte für die einzelnen Profile ohne externes auslagern bewerkstelligen. Allerdings denke ich, dass ich um eine Art Datenbank nicht drum herum komme, zumal es möglich sein sollte die Anzahl der Profile dynamisch zu erweitern. Unter Dynamisch verstehe ich, dass man bei Testfahren zB. die 6 Werte für ein neues Profil ermittelt und mit einem Knopfdruck (nach Eingabe des Profilnamens) in die aktuelle Profilliste aufnimmt. Diese soll dann logischerweise beim nächsten Neustart des VIs wieder zur Verfügung stehen.
sofern die Anzahl der "Verfahrprofile" immer gleich bleibt und du VI-Scripting nutzen möchtest gäbe es eine Möglichkeit deinen Wunsch auch ohne eine externe Datenbank zu realisieren.
Hierfür einfach für jede Geschwindigkeit einen Control erstellen. Diese dann alle Unsichtbar machen und über die Eigenschaftsknoten "Wert" und "Defaultwet" (Nur bei VI-Scripting) dann den aktuellen und den Defaultwert ändern. Das zusätzliche Problem daran ist auch, dass sich das VI mit den Controls im Editmode befinden muss, weshalb du dann über eine Referenz aufs VI auf die Elemente zugreifen musst.
Ansonsten sehe ich da keine Chance, die an einer externen Datei vorbeiführt.
...ich arbeite gerade an einer Robotersteuerung und möchte je nach "Können" unterschiedliche Geschwindigkeitsprofile anlegen. Für jedes Profil können je 6 unterschiedliche Werte eingestellt werden. Nun möchte ich die Profile zB. Amateur, Fortgeschritten, Profi anlegen.
Mir ist klar, dass man die Werte bspw. in ein Excel-File ablegen und beim Start des VIs wieder einlesen kann. Allerdings suche ich nach einer eleganteren Möglichkeit. Am liebsten würde ich das abspeichern der Werte für die einzelnen Profile ohne externes auslagern bewerkstelligen. Allerdings denke ich, dass ich um eine Art Datenbank nicht drum herum komme, zumal es möglich sein sollte die Anzahl der Profile dynamisch zu erweitern. Unter Dynamisch verstehe ich, dass man bei Testfahren zB. die 6 Werte für ein neues Profil ermittelt und mit einem Knopfdruck (nach Eingabe des Profilnamens) in die aktuelle Profilliste aufnimmt. Diese soll dann logischerweise beim nächsten Neustart des VIs wieder zur Verfügung stehen.
Ich hoffe auf eure Unterstützung.
Schöne Grüße
Guten Morgen
Sofern die Anzahl der Werte gleichbleibt würde ich dir zu einem Array of Cluster raten. Dadurch hast die die Möglichkeit beliebig viele Profile ohne Mehraufwand zu verwalten. Einfach das Array of Cluster an den Binär-Write Befehl hängen und gut ist
Solltest du dir nicht sicher sein, ob du die Anzahl der Werte erweitern willst kannst du anstatt der einzelnen Zahlenwerte das Ganze auch als Array ablegen. Vorteil ist hier die Erweiterbarkeit, Nachteil ist dass die Lesbarkeit etwas eingeschränkt wird.
habe mich gerade mit deinem Profilverwaltung.vi beschäftigt. Ich verstehe nicht ganz was du mit "Typdef" meinst bzgl. deines Kommentars (2). Das Problem was ich habe ist, dass ich momentan das Schreiben und Lesen innerhalb einer While-Schleife plaziert habe. Hier bekomme ich aber ein Problem mit dem Initialisieren des Datentyps für das "Binärlesen" weshalb ich immer einen Fehler erhalte.
Unterm Strich habe ich es noch nicht geschafft, dass ich das neu beschriebene Binärfile beim nächsten Neustart des VIs einlesen kann, sprich es hat die Informationen nicht übernommen.
Fürs bessere Verständnis habe ich das VI im Anhang beigelegt (mit LabView 2011 für 2009 erstellt).
habe mich gerade mit deinem Profilverwaltung.vi beschäftigt. Ich verstehe nicht ganz was du mit "Typdef" meinst bzgl. deines Kommentars (2). Das Problem was ich habe ist, dass ich momentan das Schreiben und Lesen innerhalb einer While-Schleife plaziert habe. Hier bekomme ich aber ein Problem mit dem Initialisieren des Datentyps für das "Binärlesen" weshalb ich immer einen Fehler erhalte.
Unterm Strich habe ich es noch nicht geschafft, dass ich das neu beschriebene Binärfile beim nächsten Neustart des VIs einlesen kann, sprich es hat die Informationen nicht übernommen.
Fürs bessere Verständnis habe ich das VI im Anhang beigelegt (mit LabView 2011 für 2009 erstellt).
Vielen Dank im voraus.
Schöne Grüße
Mit Typedef meine ich, dass du den Cluster als Typedef speicherst (analog wie du es schon bei deinen Enums gemacht hast). Grund dafür ist wie bei den Enums, dass alle Elemente bei der Änderung eines angepasst werden (nicht die Daten nur die Struktur)
Im Prinzip machst du alles richtig, also mit den Daten schreiben und lesen. Welchen Fehler erhälst du denn?
Am besten machst du einen Screenshot.
Ich würde dir raten die Daten gleich auszulesen, wenn du updatest und ansonsten nur durchzuschlaufen. Die Daten ändern sich ja nach dem Update (zumindest in diesem Beispiel) nicht mehr und du machst nur unnötige Datenzugriffe. Zudem solltest du ein Wait von +/- 200ms hinzufügen, da sonst nur unnötig Prozessorleistung vertrödelt wird.
werd ich baldmöglichst probieren. Für den Fall das ich es nicht zu laufen bekomme kann ich mich da nochmals melden?
Schöne Grüße
Klar dafür ist das Forum doch da
Noch ein Gedanke, du wählst ja beim "Open File" die Option Create. Wenn du dafür einen bereits verwendeten Pfad verwendest erhälst du einen Fehler, evtl ist dass schon dein Problem.
Gruss Marc
09.02.2012, 20:33 (Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2012 20:34 von NILVuser.)
leider bekomme ich das VI nicht so zum laufen wie es sollte. "Create" sollte nicht das Problem sein, da es sich ja dann verhält als würde man nur "Open" angeben. Mit dem Typdef habe ich verschiedenste Möglichkeiten probiert, leider ohne Erfolg.
Wärst du vllt. so nett und würdest du mir ein laufendes VI zur Verfügung stellen, da ich leider zu keinem Ergebnis gekommen bin. Anbei wäre meine aktuelle Variante. Die unnötigen Datenzugriffe habe ich bis dato noch nicht abgeändert, da das Kernproblem ja woanders liegt.