27.07.2016, 12:57
Beitrag #1
|
tooony
LVF-Grünschnabel
Beiträge: 14
Registriert seit: Mar 2015
10
2014
DE
|
Handling von Bedienelementen
Hallo in die Runde,
zu folgendem Problem brauch ich mal einen Rat:
Ich einem Projekt soll eine Rezeptverwaltung umgesetzt werden. Innerhalb eines Rezeptes habe ich 20 Ebenen. In jeder Ebene sind die gleichen Parameter einzustellen. Die Ebenenansicht soll zunächst mit einer 20-seitigen Registerkarte umgesetzt werden.
Da die zu konfigurierenden Parameter in jeder Ebene gleich sind, möchte ich nicht alle Bedienelemente 20 mal erstellen (bei ca. 100 Parametern pro Ebene). Daher meine Frage: Gibt es eine Möglichkeit das ich die Bedienelemente für eine Ebene erstelle und diese dann auf die anderen Ebenen übertrage, ohne das jedes mal ein neues Bedienelemente erstellt werden muss? Beispielsweise soll in Ebene 1 ein Spannungswert A eingetragen werden können, in Ebene 2 ein Spannungswert B usw. Mir fehlt hier gerade ein bisschen der Ansatz. Danke für eure Mühe!
Gruß,
Tony
|
|
|
27.07.2016, 13:10
Beitrag #2
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
RE: Handling von Bedienelementen
Ich würde die Daten die pro Ebene benötigt werden als Cluster in einem CTL definieren. Dann kannst du dir einmalig deine 100 Parameter auf der GUI platzieren, wenn das Cluster ordentlich ist, auch einfach nur das Cluster auf der GUI platzieren. Zusätzlich baust du dir ne ENUM die deine Ebenen representiert. Im Hintergrund hast du dann ein verstecktes Array von Clustern. Da kannste dann je nach ENUM-Auswahl den passenden Index auf die GUI laden oder eben Änderungen auf der GUI in dein Array wegschreiben.
War das als Ansatz verständlich genug?
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
27.07.2016, 13:21
Beitrag #3
|
Freddy
Oldtimer
Beiträge: 729
Registriert seit: Aug 2008
2019, 2020, 2021
1996
DE
76275
Deutschland
|
RE: Handling von Bedienelementen
Ich würde die Daten in eine Datenbank schreiben. Dann hat man am nächsten Tag auch noch was davon.
Die Anzeige mit einer mehrspaltigen Tabelle. Da kann man in der Tabelle die Daten ändern.
Gruß
Freddy
|
|
|
27.07.2016, 13:32
Beitrag #4
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
RE: Handling von Bedienelementen
Eine Datenbank ist da durchaus interessant. Evtl mit meinem Ansatz kombiniert?
Hier mal ein flottes Beispiel zu meinem Ansatz.
Example.vi (Größe: 10,08 KB / Downloads: 216)
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
27.07.2016, 13:41
Beitrag #5
|
tooony
LVF-Grünschnabel
Beiträge: 14
Registriert seit: Mar 2015
10
2014
DE
|
RE: Handling von Bedienelementen
Hallo,
vielen Dank für eure Antworten! Die Daten werden sowieso in einer Datenbank abgelegt. Es geht grundlegend darum, das ich im Blockdiagramm nicht mit 20 mal 100 Bedienelementen hantieren muss, sonder das ich eben dies vereinfache. Der Ansatz von TSC gefällt mir sehr gut. Werde ich gleich mal probieren. Das man das in einer CTL angelegte auch als Ansicht laden kann war mir noch nicht bekannt.
|
|
|
27.07.2016, 13:45
Beitrag #6
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
RE: Handling von Bedienelementen
Ein CTL ist nichts anderes als ein "numerisches"-, "boolsches"-, "sonstwas"-Element. Nur eben mit einem benutzderdefinierten Datentypen im Hintergrund. Du kannst dem entsprechend natürlich ein Anzeige- oder Bedienelement deines Datentyps erstellen. Oder auch eine Konstante.
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
27.07.2016, 13:59
Beitrag #7
|
tooony
LVF-Grünschnabel
Beiträge: 14
Registriert seit: Mar 2015
10
2014
DE
|
RE: Handling von Bedienelementen
Funktioniert soweit wunderbar! Hätte ich auch selber drauf kommen können...
In einer CTL lege ich jetzt mein Parameter in einem Cluster an. Das Cluster in dem CTL hole ich mir dann 20 mal in mein VI, jeweile eins auf eine Seite der Registerkarte. Damit habe ich 20 gleiche Cluster die ich mit der Seitenzahl indizieren kann und dies dann für Anzeige und Eingabe nutzen. Ich bau dies mal weiter aus und melde mich nochmal wenn ein weiteres Hindernis auftritt. Vielen Dank nochmal!
|
|
|
27.07.2016, 14:07
Beitrag #8
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
RE: Handling von Bedienelementen
Ich würde die einzelnen CTLs dann trotzdem in einem Array bunkern,.. Das machts später leichter, zum Beispiel beim Wegschreiben in deine DB. Einfach eine For-Schleife drüber laufen lassen anstatt 20 mal die selbe DB-Schreiben-Funktion ins Blockdiagramm zu legen,..
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
27.07.2016, 14:17
Beitrag #9
|
wladimir s
LVF-Gelegenheitsschreiber
Beiträge: 79
Registriert seit: Mar 2015
2011, 2015
2010
DE
Deutschland
|
RE: Handling von Bedienelementen
Mach das Cluster gleich als Typ-Def. oder Strikte Typ-Def. dann muss du die 20 Elemente per Hand ändern, wenn ein neues Element in den Cluster dazukommt.
|
|
|
| |