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!
gibt es eigentlich eine "elegante" Möglichkeit Cluster zu erstellen, die projektweit nur an genau einer Stelle verändert werden können?
Aktuell fällt mir dazu nur ein, eine Typdefinition in einem extra VI zu verpacken. Je nachdem wie der Inhalt später benutzt werden soll, ist das aber nicht mehr elegant.
Schöner fände ich es wenn man z.B. die Typdefinition "normal" für ein Bedienelement verwendet, aber ein zwingendes Autoupdate der Standardwerte (aus der Typdef) einstellen könnte.
(Die strikten Typdefinitionen beziehen sich doch nur auf's Design, oder?)
Irgendwelche Vorschläge / Ideen oder sogar Standardlösungen?
Könntest Du mal ein konkretes Beipiel bringen, welches das Problem illustriert? Ich verstehe es deshalb nicht, weil doch ein Programmierer es jederzeit einrichten kann, dass irgendeine Variable, die an mehreren Stellen gelesen werden muss, nur an einer Stelle im Programm beschrieben wird. Wieso wird daraus ein Problem?
18.02.2015, 20:58 (Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2015 21:00 von GerdW.)
im NI-Forum läuft das unter WORM (write once, read many)…
Andere Option: ein Notifier, der beim Erstellen gleich beschrieben wird und danach nur noch gelesen (wie Lucki sagte: der Programmierer ist verantwortlich!)
zunächst einmal zur "Schwere" des Problems: Es geht nicht darum, dass ich so eine Funktionalität unbedingt brauche - sondern mehr um die Überlegung, dass es doch bestimmt schon einen einfachen Weg für solche globalen Konstanten gibt, den ich bisher noch nicht kannte.
Insofern, kein echtes Problem. Eher ein "Luxusproblem".
Dann mal ein konkretes Beispiel:
Aktuell bin ich dabei eine umfangreiche Messanlagensteuerung zu programmieren. (Im wesentlichen sind das mehrere Statemachines.) Die meisten Einstellungen werden aus irgendwelchen Textdateien zur Laufzeit zugeordnet.
Ein paar Vorgaben brauche ich später jedoch nie wieder anzufassen. Beispielsweise habe ich eine Zuordnung welcher Zustand (z.B. Standby, Prüfling geladen, Messbereit) welche Ventilstellungen auslöst und welche Positionsschalterstellungen erwartet werden.
Es war ganz praktisch das alles in einem Cluster zu "verpacken" weil man dadurch relativ übersichtlich und schnell Variationen einstellen, anzeigen und testen kann.
(Dabei entspricht jeder State einem von ca. 20 gleich aufgebauten Bedienelementen. Jedes Bedienelement ist ein Array mit den aktuell relevanten Komponenten-Zuständen. Also ein Cluster mit Arrays aus identischen Clustern.)
Dieser Cluster wird "nur" an zwei oder drei Stellen benötigt und später eigentlich nicht mehr angefasst. Natürlich kann man das auch anders lösen (s.o.) aber ich wollte es ja einfach....
Ich habe kein Problem damit, die Änderungen während der Entwicklungszeit an besagten 2 oder 3 Stellen vorzunehmen. Aber wenn man die Standardwerte z.B. fest an die Typdefinition koppeln könnte, wäre das schon nett...
Ich möchte bei *diesem* Einsatzzweck auch ungern von den Clustern weg, weil sie von Übersichtlichkeit und Flexibilität perfekt passen.
Umwege über zwischengeschaltete VIs, Klassen, Zuordnungen aus Textdateien oder Notifiern wären alle denkbar, sind mir an *dieser* Stelle aber nicht "einfach" genug.
...ich vermute also, dass ich keine einfache Einstellmöglichkeit oder LV-Funktion übersehen habe, und nehme das mal so hin.
(Uiih - schon viel zu viel Text. In dieser Zeit hätte ich meine Cluster locker dreimal kontrollieren können...)
(19.02.2015 09:39 )Nordvestlys schrieb: Ich möchte bei *diesem* Einsatzzweck auch ungern von den Clustern weg, weil sie von Übersichtlichkeit und Flexibilität perfekt passen.
Umwege über zwischengeschaltete VIs, Klassen, Zuordnungen aus Textdateien oder Notifiern wären alle denkbar, sind mir an *dieser* Stelle aber nicht "einfach" genug.
Wirklich? Nicht einfach genug?
Eine Klasse ist nur ein container fuer einen Cluster.
Und auf eine Singleton Klasse hast du ueberall Zugriff ohne deinen Cluster durch 4 connector panes durch zu zwaengen.
Das angehaengte Projekt hab ich in 5 Minuten zusammengehackt. Ich weiss nicht, ob es noch viel einfacher geht...
(19.02.2015 22:26 )teegee schrieb: Wirklich? Nicht einfach genug?
Yepp :-)
(Zumindest in diesem speziellen Fall)
teegee schrieb: [...]Das angehaengte Projekt hab ich in 5 Minuten zusammengehackt. Ich weiss nicht, ob es noch viel einfacher geht...
Trotzdem danke. Ich werde bei komplexeren Anforderungen darauf zurück kommen.
Der aktuelle Anlaß für meine Frage war ja auch kein echtes "Problem" sondern einfach die Überlegung ob es eine kleine vermisste Funktionalität nicht vielleicht schon gibt. Kommt ja öfters vor, dass es nette Arbeitserleichterungen gibt, die man selber noch nicht kennt.