17.06.2013, 14:11
|
eb
LVF-Lernwilliger
Beiträge: 292
Registriert seit: Mar 2008
2014
2008
EN
12xxx
Deutschland
|
RE: Parallele While Schleife, oder andere Lösungsansätze?
Hallo,
Das dass Programm nicht mehr bedienbar ist, wenn der Signalviewer läuft, ist nachvollziehbar, da es ja direkt im Datenfluss liegt und es erst weitergeht, wenn der SignalViewer beendet wird.
Zu deinem Problem: Das einfachste ist es, den SignalViewer in eine eigene Schleife zu tun und eben bei Bedarf aufzurufen. Da gibt es viele Möglichkeiten, wichtig ist eben, das er nicht im "Haupt"-Fluss liegen darf, damit das Programm nicht anhält, sondern bedienbar bleibt.
Überhaupt, gibt es in dem Programm keine Parallelität: Nur eine Haupt-While-Schleife, in die alles reingepackt wurde. Datenerfassung, Dateioperationen, Datenauswertung, Datendarstellung(sSubVI), usw. Ich würde diese Sequenzstruktur mit den 12 gestapelten Sequenzen versuchen aufzulösen und dabei parallele Schleifen anzulegen, die diese Funktionen übernehmen.
Grüße
|
|
|
17.06.2013, 14:51
|
Lumberjacker
LVF-Grünschnabel
Beiträge: 19
Registriert seit: Dec 2006
2012
2005
kA
Oesterreich
|
RE: Parallele While Schleife, oder andere Lösungsansätze?
(17.06.2013 14:11 )eb schrieb: Hallo,
Das dass Programm nicht mehr bedienbar ist, wenn der Signalviewer läuft, ist nachvollziehbar, da es ja direkt im Datenfluss liegt und es erst weitergeht, wenn der SignalViewer beendet wird.
Zu deinem Problem: Das einfachste ist es, den SignalViewer in eine eigene Schleife zu tun und eben bei Bedarf aufzurufen. Da gibt es viele Möglichkeiten, wichtig ist eben, das er nicht im "Haupt"-Fluss liegen darf, damit das Programm nicht anhält, sondern bedienbar bleibt.
Überhaupt, gibt es in dem Programm keine Parallelität: Nur eine Haupt-While-Schleife, in die alles reingepackt wurde. Datenerfassung, Dateioperationen, Datenauswertung, Datendarstellung(sSubVI), usw. Ich würde diese Sequenzstruktur mit den 12 gestapelten Sequenzen versuchen aufzulösen und dabei parallele Schleifen anzulegen, die diese Funktionen übernehmen.
Grüße
ja, das ist mir schon klar, dass das programm die Haupt-While-Schleife blockiert wenn es läuft. Deshalb ist es jetzt auch parallel dazu. (While schleife ist im sub VI), darum nicht sichtbar)
Allerdings macht das extreme performance probleme, alles lässt sich nur noch ruckartig, oder teilweise garnicht mehr bedienen. Und das mit dem bei bedarf aufrufen haut auch nicht hin.
|
|
|
17.06.2013, 15:09
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Parallele While Schleife, oder andere Lösungsansätze?
(11.06.2013 12:01 )TSchAC schrieb: Hier mal ein ganz vereinfachtes Beispiel wie meine Programme so aufgebaut sind! Das Ganze ist natürlich mit Vorsicht zu genießen und ist auf keinen Fall in jeder Situation die optimale Struktur!
Sehe mir den Thread das erste Mal an, bei dem VI fehlt noch eine Kleinigkeit: Die verborgene Variable "Programm beenden" sollte bei jedem Start auf false rückgesetzt werden, sonst werden bei jedem Restart alle Scheifen außer der mit der Ereignsistruktur nur ein einziges Mal ausgeführt.
|
|
|
18.06.2013, 08:39
|
eb
LVF-Lernwilliger
Beiträge: 292
Registriert seit: Mar 2008
2014
2008
EN
12xxx
Deutschland
|
RE: Parallele While Schleife, oder andere Lösungsansätze?
(17.06.2013 14:51 )Lumberjacker schrieb: (17.06.2013 14:11 )eb schrieb: Hallo,
Das dass Programm nicht mehr bedienbar ist, wenn der Signalviewer läuft, ist nachvollziehbar, da es ja direkt im Datenfluss liegt und es erst weitergeht, wenn der SignalViewer beendet wird.
Zu deinem Problem: Das einfachste ist es, den SignalViewer in eine eigene Schleife zu tun und eben bei Bedarf aufzurufen. Da gibt es viele Möglichkeiten, wichtig ist eben, das er nicht im "Haupt"-Fluss liegen darf, damit das Programm nicht anhält, sondern bedienbar bleibt.
Überhaupt, gibt es in dem Programm keine Parallelität: Nur eine Haupt-While-Schleife, in die alles reingepackt wurde. Datenerfassung, Dateioperationen, Datenauswertung, Datendarstellung(sSubVI), usw. Ich würde diese Sequenzstruktur mit den 12 gestapelten Sequenzen versuchen aufzulösen und dabei parallele Schleifen anzulegen, die diese Funktionen übernehmen.
Grüße
ja, das ist mir schon klar, dass das programm die Haupt-While-Schleife blockiert wenn es läuft. Deshalb ist es jetzt auch parallel dazu. (While schleife ist im sub VI), darum nicht sichtbar)
Allerdings macht das extreme performance probleme, alles lässt sich nur noch ruckartig, oder teilweise garnicht mehr bedienen. Und das mit dem bei bedarf aufrufen haut auch nicht hin.
Der SignalViewer ist eben nicht parallel! Er hat zwar eine eigene while-Schleife, aber die befindet sich innerhalb der Hauptschleife. Sie muss aber parallel zur Hauptschleife, nicht innerhalb, sonst blockiert sie.
|
|
|
18.06.2013, 09:30
|
Lumberjacker
LVF-Grünschnabel
Beiträge: 19
Registriert seit: Dec 2006
2012
2005
kA
Oesterreich
|
RE: Parallele While Schleife, oder andere Lösungsansätze?
(18.06.2013 08:39 )eb schrieb: Der SignalViewer ist eben nicht parallel! Er hat zwar eine eigene while-Schleife, aber die befindet sich innerhalb der Hauptschleife. Sie muss aber parallel zur Hauptschleife, nicht innerhalb, sonst blockiert sie.
Hallo!
Der SignalViewer kommt zweimal vor in dem Programm. Der Viewer in der Haupt-While-Schleife, jedoch in einer Deaktivierungsstruktur.
Der zweite ist direkt unter der Haupt-while-Schleife, und um den geht es mir in dem fall. Der obere kann eigentlich gelöscht werden.
|
|
|
19.06.2013, 10:40
|
Lumberjacker
LVF-Grünschnabel
Beiträge: 19
Registriert seit: Dec 2006
2012
2005
kA
Oesterreich
|
RE: Parallele While Schleife, oder andere Lösungsansätze?
korrigiert mich bitte wenn ich was falsch sehe. Im Moment komm ich nicht weiter.
Danke!
|
|
|
| |