29.07.2009, 11:07
Beitrag #1
|
|
|
29.07.2009, 11:15
Beitrag #2
|
|
|
30.07.2009, 14:28
Beitrag #3
|
wohl
LVF-Gelegenheitsschreiber
Beiträge: 78
Registriert seit: Oct 2008
2010
2008
DE
68723
Deutschland
|
Programm Stop
Aha!
Das ist mir aber jetzt ein zu großer Aufwand, das ganze Programm dahingehend umzumodeln, damit die Reaktion auf die Stop-Taste schneller geht.
Ich habe inzwischen noch einen anderen Beitrag gefunden, der auch über dieses problem handelte. Auch hier war nur die Rede davon, kürzere Iterations-Zeiten zu verwenden. Offensichtlich muß man schon beim Design das Anhalten des Programmes genauer ins Auge fassen, insbesondere bei langsamen Anwendungen.
Eventuell wäre da Handlungsbedarf seitens National Instruments.
|
|
|
30.07.2009, 14:38
Beitrag #4
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
Programm Stop
Es gehört allgemein zum guten Programmierstil sich VORHER gedanken zu machen, welche Funktion das Programm haben soll. Was kann NI dafür, wenn man erst später merkt, dass man das Programm auch zwischendurch beenden möchte?
Das es dir so vorkommt als würde die Schleife noch zweimal durchlaufen ist auch nur natürlich:
In jedem Schleifendurchlauf werden alle Funktionen innerhalb der Schleife in beliebiger Reihenfolge abgearbeitet. Es sei denn, sie sind durch den Datenfluss sequenziert. Eine Aufgabe die innerhalb der Schleife erledigt werden muss, ist zum Beispiel den aktuellen Wert des Stopp-Buttons an deine ODER-Verknüpfung zu übergeben. Wenn du erst danach den Stoppbutton drückst, hat das auf den aktuellen Schleifendurchlauf ekine Auswirkungen. LabVIEW arbeitet also zunächst den aktuellen Schleifendurchlauf ab und beginnt dann den nächsten. Diesesmal ist der Button gedrückt worden, trotzdem muss der Schleifendurchlauf vollständig abgearbeitet werden. Dadurch können fast zwei vollständige Durchläufe nach dem Drücken von Stopp entstehen.
LG
Torsten
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
31.07.2009, 10:53
Beitrag #5
|
wohl
LVF-Gelegenheitsschreiber
Beiträge: 78
Registriert seit: Oct 2008
2010
2008
DE
68723
Deutschland
|
Programm Stop
Sag ich ja: Beim nächten Mal mache ich es besser!
Aber Dein erstes Programm war sicher auch nicht perfekt!
Aber mein Programm (While-Schleife) durchläuft offensichtlich eine zweite Schleife!
Ich denke, ich werde noch einen großen Case einsetzen, in dem mein ganzes Programm sitzt, und der ist durch die Stop-Funktion gesteuert.
|
|
|
31.07.2009, 11:04
Beitrag #6
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
Programm Stop
' schrieb:Sag ich ja: Beim nächten Mal mache ich es besser!
Sehr löblich!
Zitat:Aber Dein erstes Programm war sicher auch nicht perfekt!
Natürlich war es das. Mein erstes Programm hieß HelloWorld und wurde damals in Basic programmiert. Und es läuft heute noch einwandfrei ohne jegliche Fehler.
Zitat:Ich denke, ich werde noch einen großen Case einsetzen, in dem mein ganzes Programm sitzt, und der ist durch die Stop-Funktion gesteuert.
Du kannst auch einfach sicherstellen, dass der Stoppbutton erst am Ende der Schleife ausgelesen wird. Dann hast du eine maximale Reaktionszeit von einem Schleifendurchlauf. und den bekommst du auch nicht mit der umfassenden Casestruktur weg.
Ansonsten wäre es eben eine gute Alternative, die große Schleife in viele kleine parallele aufzuteilen. Aber das bedeutet Arbeit und ist nicht immer möglich.
Viel Spaß noch mit deinem Programm,
Torsten
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
31.07.2009, 11:59
Beitrag #7
|
|
|
31.07.2009, 12:05
Beitrag #8
|
|
|
31.07.2009, 14:33
Beitrag #9
|
|
|
| |