16.06.2016, 06:08
Beitrag #1
|
positronenstrahlung
LVF-Neueinsteiger
Beiträge: 8
Registriert seit: Jun 2016
2009, 2010, 2011,2012, 2013, 2014, 2015
2009
DE
|
Meldung an Benutzer Express VI
Hallo,
ich bin neu hier und habe ein kleines Problem. Ich habe ein VI zur Steuerung einer Syntheseapparatur, mit While-Schleife und Case-Struktur, programmiert. Innerhalb der While-Schleife sind noch zwei Sub-VIs zur Temperatursteuerung und ein kleines Programm mit grafischer Ausgabe zur Aktivitätsüberwachung (analoge Spannungsmessung). Die Case-Struktur wird mit einer Enum Konstanten selektiert. In mehreren "Wait" Fenstern ist das Express VI -Meldung an Benutzer- implementiert, wenn der Programmablauf dort ankommt erscheint die Meldung, die kommen soll, mit den beiden Schaltflächen OK und Abbrechen. Während das Fenster auf dem Bildschirm ist, kann man leider die Temperaturanzeigen und die Spannungsmessung nicht mehr verfolgen, da die Anzeigen "eingefroren sind. Das Programm an sich läuft allerdings im Hintergrund weiter. Das erkennt man daran das die Spannungsmessung auf der Zeitachse einen Sprung in der Zeit macht der der Wartezeit entspricht, auch die Spannungswerte werden gemessen.
Mein Problem bzw. meine Frage ist nun, wie man verhindern kann das bei erscheinen der Meldung die Programmoberfläche einfriert. Ich möchte nämlich bei diesen Meldungen auf das Erreichen einer bestimmten Temperatur oder einer bestimmten Spannung warten.
Kann mir dabei jemand helfen.
|
|
|
16.06.2016, 07:31
Beitrag #2
|
F.Bi
LVF-Gelegenheitsschreiber
Beiträge: 152
Registriert seit: Oct 2007
LabView 2016
2007
EN
55218
Deutschland
|
RE: Meldung an Benutzer Express VI
Du darfst halt nicht mit Wait Fenstern arbeiten, sondern mit einer Statuszeile und, falls Eingaben durch den Benutzer nötig sein sollten, mit einer Eventstruktur zur Abfrage von Buttons.
|
|
|
16.06.2016, 09:06
Beitrag #3
|
positronenstrahlung
LVF-Neueinsteiger
Beiträge: 8
Registriert seit: Jun 2016
2009, 2010, 2011,2012, 2013, 2014, 2015
2009
DE
|
RE: Meldung an Benutzer Express VI
Hallo Frank,
danke für den Tipp, aber das Programm von Case mit Wait auf Ereignis-Struktur zu ändern dauert etwas. Ich melde mich ob es funktioniert hat.
VG
Thomas
|
|
|
16.06.2016, 11:45
Beitrag #4
|
Trinitatis
LVF-Guru
Beiträge: 1.694
Registriert seit: May 2008
7.1 / 8.0 /2014-1, 18
2002
DE
18055
Deutschland
|
RE: Meldung an Benutzer Express VI
Hallo Thomas,
wenn du schon beim umbauen bist, dann fasse deine Meldungen gleich an EINER Stelle zusammen. Du kannst überall dort, wo du im Code eine Meldung auslösen willst, diese Meldung in eine Queue schreiben, die in einer Parallelschleife ausgelesen und zur Anzeige gebracht wird. Als Datenformat dieser Queue ist es hilfreich, nicht nur einen String für die Meldungen zu wählen, sondern beispielsweise einen Cluster, der zum Einen die Meldung, zum anderen eine Anzeigezeit für die Meldung, ggf. noch eine Meldungspriorität und ein Flag, das entscheidet, ob diese Meldung bestätigt werden soll oder nicht. Dieses Meldungspanel für nicht zu bestätigende Meldungen müsstest du sir dann allerdings selbst basteln.
Später kannst du dann immernoch entscheiden, ob du die Meldungen als Popup oder als Statuszeile oder auch mal unangezeigt lassen willst, da du diese Änderungen nur an einer Stelle machen musst.
Gruß, Marko
|
|
|
17.06.2016, 12:41
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2016 12:45 von positronenstrahlung.)
Beitrag #5
|
positronenstrahlung
LVF-Neueinsteiger
Beiträge: 8
Registriert seit: Jun 2016
2009, 2010, 2011,2012, 2013, 2014, 2015
2009
DE
|
RE: Meldung an Benutzer Express VI
Hallo,
mit einer Ereignis Struktur ist es das gleiche Problem, da hören sogar die Messungen im Hintergrund auf.
VG
Thomas
Hallo Marko,
habe gestern nicht mehr hier rein geschaut. Werde ich probieren, danke.
VG
Thomas
p.s. Ich programmiere nur "nebenbei", denn ich habe eigentlich einige andere Aufgaben in meinem Job.
|
|
|
17.06.2016, 13:01
Beitrag #6
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Meldung an Benutzer Express VI
Tinitatus hat ja die richtige profesionelle Lösung schon beschrieben.
Die einfachste, aber nicht so hilfreiche Antwort wäre gewesen: Ja, es geht, aber nur mit parallelen Schleifen (Das ist in der Antwort von Trinitatis auch schon drin). Hier ein simples Beispiel:
Dialogfeld.vi (Größe: 11,74 KB / Downloads: 221)
|
|
|
20.06.2016, 08:54
Beitrag #7
|
positronenstrahlung
LVF-Neueinsteiger
Beiträge: 8
Registriert seit: Jun 2016
2009, 2010, 2011,2012, 2013, 2014, 2015
2009
DE
|
RE: Meldung an Benutzer Express VI
Hallo Lucki,
danke, das sieht schon mal richtig gut aus. Mein ursprüngliches Problem ist damit aber leider nicht behoben. Ich möchte nämlich nicht das der Anwender eine Taste drückt. Ich habe diese Funktion, wie beschrieben, im Moment in einem "Wait" in einer Case-Struktur. So soll es auch funktionieren. Man startet das Programm, es beginnen mehrere Messungen, dann macht das Programm eine Pause solange bis der Benutzer OK drückt oder aus welchem Grund auch immer abbricht. Während dieser Wartezeit möchte ich die fortlaufenden Messungen sehen.
LG
Thomas
|
|
|
20.06.2016, 10:00
(Dieser Beitrag wurde zuletzt bearbeitet: 20.06.2016 10:01 von GerdW.)
Beitrag #8
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Meldung an Benutzer Express VI
Hallo Thomas,
Zitat:Während dieser Wartezeit möchte ich die fortlaufenden Messungen sehen.
Wenn du willst, das etwas parallel läuft, dann musst du das auch so programmieren!
Schau dir doch einfach noch mal Beitrag #4 an…
|
|
|
20.06.2016, 11:40
Beitrag #9
|
|
|
| |