INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Control aus Datei füllen



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!

17.08.2010, 14:54
Beitrag #1

cnt_10 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2010

8.6
2010
en

01067
Deutschland
Control aus Datei füllen
Hallo,
ich habe folgendes Problem. Eine Versuchsstandöberfläche besteht aus mehr als 80 Controls (STRING und DBL) und muss bei jedem Programmstart neu von Hand beschrieben werden.
Um den Zeitaufwand zu minimieren habe ich eine Excel-Konfigurationsdatei angelegt und lese jetzt jedes Feld einzeln aus dieser Datei in einen Indikator aus.
Ich habe die Version 8.6 und unten einen Ausschnitt meines VI´s angefügt.
In der Original werden diese Felder dann im weiteren Programm verwendet.

1) Wie kann ich es gestalten das SubVI nur einmal auszuführen, jedoch für jedes Feld mit einem anderen Eingangswert?
So wie es jetzt ist werden die Ressourcen meines PC voll ausgenutzt und das geht bestimmt eleganter..Smile
2) Es hat sich herausgestellt, die Editierbarkeit der Felder wäre doch weiterhin ganz hilfreich. Gibt es eine Möglichkeit die Controls zu lassen,
diese aber trotzdem aus einer Datei auszulesen?

Vielen Dank für die Hilfe!

BG Hannes

Sorry, falls ich das Thema im falschen Bereich gepostet haben sollte.


Angehängte Datei(en)
Sonstige .vi  40_Kanal_einlesen.vi (Größe: 56,04 KB / Downloads: 203)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.08.2010, 15:08 (Dieser Beitrag wurde zuletzt bearbeitet: 17.08.2010 15:19 von TSC.)
Beitrag #2

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Control aus Datei füllen
Leider hast du dein SUB-VI nicht mit angehängt, daher kann ich nur beispielhaft Tipps geben:

1. Lege alle Zellen-Koordinaten (C9-C48) in ein Array. Dieses Array legst du an eine For-Schleife (autoindiziert). Dann führst du das SUB-VI in der For-Schleife einmal aus (in jedem Schleifendurchlauf wird dabei das nächste Element aus dem Array genommen). Das glecihe machst du dann für die Zellen D9-D48. Du kannst auch alles in einer Schleife machen. Damit die Schleife deine CPU nicht übermäßig belastest, solltest du eine kleine Wartezeit von wenigen ms einbauen.

2. Ersetze die 40 Anzeigeelemente durch Bedienelemente. Per Eigenschaftsknoten kannst du dort programmatisch einen Wert eintragen. Evtl. Reicht dir aber auch ein Array als Bedienelement? Das ist dann leichter zu erweitern, falls du mal mehr oder weniger als 40 Elemente verwenden möchtest.

(3.) Das ist schon der Richtige Bereich des Forums.

Grüße,
Torsten

Beispiel:
Lv86_img
Sonstige .vi  forschleife.vi (Größe: 7,61 KB / Downloads: 234)

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.08.2010, 15:54
Beitrag #3

cnt_10 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2010

8.6
2010
en

01067
Deutschland
Control aus Datei füllen
Super Dankeschön!!Thanx

Da wäre ich alleine nicht drauf gekommen!

Beste Grüße,

Hannes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.08.2010, 15:57
Beitrag #4

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Control aus Datei füllen
Merk dir einfach: Alles was du mehrmals von Hand machst, kann eine Schleife genausogut oder besser für dich erledigen.

Grüße,
Torsten

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.08.2010, 16:36 (Dieser Beitrag wurde zuletzt bearbeitet: 17.08.2010 16:39 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Control aus Datei füllen
Habe mirs auch mal angesehen, im Prinzip würde ich es genau so machen wie Tschac. Lediglich die Einführung von Bedienementen als Anzeigen und die damit verbunde Wertzuweisung über lokale Variablen kann ich nicht nachvollziehen. (Und darüber, daß die CPU "übermäßig belastet" wird, muß man sich hier wirklich keine Sorgen machen und deswegen ein Wait in die For Schleife stellen)
Mit dem 40-elementigen Array auf dem FP wirst Du nicht glücklich. Wenn man alle Elemente immer sehen soll, ist die Darstellung in Clustern sinnvoller. Habe hier als Beispiel doch das Array gelassen, aber dieses in 2 Teile zerlegt. Ansonsten ist es das VI von Tschac.

Lv86_img
Sonstige .vi  forschleife.vi (Größe: 7,8 KB / Downloads: 223)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.08.2010, 16:44
Beitrag #6

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Control aus Datei füllen
@lucki:
ich habe keine lokalen Variablen verwendet sondern Eigenschaftsknoten (ob das nu ein besonderer Vorteil oder Nachteil ist, sei dahingestellt). Die Anforderung Bedienelemente zu verwenden, kam von cnt_10 selbst. Ob das Programm die CPU lahmlegt oder nicht, kann ich nicht beurteilen, da ich nicht sehe, was in den SUB-VIs so alles passiert. Eine ungebremste Schleife ist allerdings immer eine Belastung für die CPU und bremst parallele Prozesse aus (40 mal Datei IO sollte allerdings schnell vorbei sein, da gebe ich dir recht).

Grüße,
Torsten

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.08.2010, 17:23
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Control aus Datei füllen
@Thorsten
die Forderung nach Editierbarkeit hatte ich glatt übersehen. Hier also schnell die Korrektur:
   
Wenn eine riesengroße For-Schleife andere Prozesse blockiert, dann ist Wait schon richtig, und man muß damit nicht einmal die Geschwindigkeit ausbremsen. In der Hilfe zur Wait-Funktion steht:
Bei Wait= 0 wird der aktuelle Thread zur Abgabe der CPU-Steuerung gezwungen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.08.2010, 17:32
Beitrag #8

cnt_10 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2010

8.6
2010
en

01067
Deutschland
Control aus Datei füllen
Danke Lucki für deine Hilfe, aber die Bedienelemente am Ende sind schon ideal.

Ich habe jetzt das SubVI integriert und es funktioniert auch wunderbar im Highlight Execution-Modus.
Wenn ich es aber normal ausführen möchte kommt die Fehlermeldung:

"Error -2147417846 occurred at Durch den Messagefilter wurde angezeigt, dass die Anwendung ausgelastet ist.
in Excel_Zelle_auslesen DBL.vi->Excel_Zelle_auslesen String&DBL.vi
This error code is undefined. No one has provided a description for this code, or you might have wired a number that is not an error code to the error code input."

Das ist übrigens die selbe Fehlermeldung wie in meinem ursprünglichen umständlichen Programm.
Ich hänge noch das SubVI an, damit ihr den vollen Einblick bekommt.
Bestimmt ist es nur ein kleiner dümmlicher Fehler, bei dem NI nicht mal dran gedacht hat einen Code zu hinterlegen. Blush

Danke für eure Hilfe!

LV-Version 8.6


Angehängte Datei(en)
Sonstige .vi  Excel_Zelle_auslesen_String_DBL.vi (Größe: 26,35 KB / Downloads: 188)

Sonstige .vi  Excel_Zelle_auslesen_DBL.vi (Größe: 13,67 KB / Downloads: 180)

Sonstige .vi  Excel_Zelle_auslesen_STRING.vi (Größe: 12,67 KB / Downloads: 195)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.08.2010, 18:48 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2010 07:31 von jg.)
Beitrag #9

cnt_10 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2010

8.6
2010
en

01067
Deutschland
Control aus Datei füllen
Ich habe jetzt eine Möglichkeit gefunden wie es funktioniert. Idee

Meine Erklärung ist, das Auslesen läuft jetzt nicht mehr parallel, sondern in Reihe und
das führt nicht mehr zur Auslastung der Anwendung.

Vielleicht kann ja nochmal jemand einen Blick drauf werfen und mir sagen falls ich mich irre.

Besten Dank jedenfalls für alle Hilfe!

Grüße,

Hannes

Lv86_img


Angehängte Datei(en)
Sonstige .vi  Excel_Zelle_auslesen_String_DBL.vi (Größe: 26,44 KB / Downloads: 194)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Wordtabelle mit Werten füllen gandi 0 3.221 16.05.2011 15:01
Letzter Beitrag: gandi

Gehe zu: