Hi,
gibt es die Möglichkeit eine TypenDefinition von zwei Typendefinionen zu machen, die sich entsprechend bei Veränderungen automatisch aktualisiert?
Hintergrund: In eine TDMS sollen Messdaten gespeichert werden. Zu beginn des Projektes ist nicht ganz klar, welche Sensoren alles verbaut werden (DI, DO, AI, AO etc.) daher hätte ich jetzt für alle Inputdaten ein Cluster angelegt und dieses mittels Typendefinition festgelegt (damit es für SUBVIs weniger Aufwand ist es einzufügen bzw. Fehler schneller entdeckt werden) dass ganze dann auch für die Outputs.
Und dann eben ein "Geclustertes" Cluster aus denen beiden dass sich automatisch an die beiden anpasst.
Oder gibt es da bessere Alternativen?
Hallo LV-New,
du kannst einen (typdefinierten) Cluster erstellen, der wiederum 2 weitere (typdefinierte) Cluster enthält.
Wo genau ist das Problem?
Das kann mit Klassen realisiert werden.
Sie Dir mal die Datenstruktur in dem Projekt
AF-HelloWorld an.
Gruß Holger
So etwas wie Unions in C++ gibt es in LabVIEW nicht.
Du kannst:
- Eine Typdefinition mit Unterclustern für jeden Typ sowie einem Typfeld und nur den Untercluster ausfüllen, den der aktuelle Typ hat.
- Einzelne Typdefinitionen für jeden Typ und einen Cluster mit jeweils einem Array of Cluster pro Typ.
[
attachment=60991]
Es gibt noch elegantere Möglichkeiten (Klassen wie Holger vorgeschlagen hat oder Variantattribute), die aber aufwändiger sind und sich bei größeren Projekten lohnen.
(02.06.2020 09:00 )th13 schrieb: [ -> ]die aber aufwändiger sind und sich bei größeren Projekten lohnen.
Dem möchte ich widersprechen. Die Klassen in meinem Beispiel sind fertig und sind unter EUPL veröffentlicht und können einfach kopiert oder nachprogrammiert werden. Das ist nun wirklich nicht aufwändig, sondern sehr effizient.
Gruß Holger
(02.06.2020 09:12 )BNT schrieb: [ -> ]Das ist nun wirklich nicht aufwändig, sondern sehr effizient.
Das kommt meiner Meinung nach auf die Erfahrung an. Wenn der OP noch nie mit Klassen gearbeitet hat, ist der Aufwand natürlich größer, um sich einzuarbeiten und die Beispiele zu verstehen.
Ich stimme dir vollkommen zu, dass Klassen eleganter sind (benutzen wir auch), aber wenn es nur um ein kleines Projekt mit wenigen VIs geht, reicht evtl. auch eine einfache Lösung. Dazu müsste man aber mehr Kontext haben, um das zu beurteilen.
Wer eine Typdefinition und ein VI erstellen kann, kann auch mit Klassen arbeiten. Da ist nichts geheimnisvolles dabei. Nur Mut!
Gruß Holger
Auf die Schnelle kann man auch Varianten Attribute verwenden.
Der Variante kann man jederzeit ein weiteres Attribut anhängen.
Irgendwie kommen wir von der Frage des OP ab
(29.05.2020 15:37 )LV-New schrieb: [ -> ]gibt es die Möglichkeit eine TypenDefinition von zwei Typendefinionen zu machen, die sich entsprechend bei Veränderungen automatisch aktualisiert?
die Gerd schon längst beantwortet hat.
Natürlich ist es möglich, dass in einem typ-definiertem Cluster weitere typ-defininierte Elemente (z.B. Enums, weitere Cluster) enthalten sind. Ändert man die tieferliegende Typ-Definition, dann werden die darüberliegenden Typ-Definitionen automatisch aktualisiert.
Ich kann dieses Vorgehen sogar sehr empfehlen, ich mach das das andauernd. Enums und Cluster sind bei mir grundsätzlich Typ-Definitionen, und da ein Enum häufig auch Teil eines Clusters ist, passiert mir das ständig.
Gruß, Jens