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 

SUBVi über Referenz anzeigen, Problem mit dem Rücklesen von Daten



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!

28.04.2009, 19:37 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2009 19:41 von PeterLV.)
Beitrag #1

PeterLV Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2007

2010 Dev. Suite
2006
kA

70174
Deutschland
SUBVi über Referenz anzeigen, Problem mit dem Rücklesen von Daten
Derzeit bin ich dabei eine Nutzerschnittstelle zu programmieren, die es einem Anwender über ein Touchpanel ermöglichen soll ein Array zu editieren. Quelle der Daten ist ein verteiltes I/O-System.

Nun soll der Anwender Zeilen hinzufügen können und auch wieder entfernen. Dazu möchte ich ein SubVi verwenden, dass auf die kompletten Daten zugreifen kann. Dieses soll auch wiederholt und möglichst mit kleinen Aufwand an verschiedenen Stellen im HauptVi aufgerufen werden können. Daher versuchte ich Schieberegister und Ereignisstrukturen zu vermeiden.

Die Hauptanwendung muss dabei immer weiterlaufen.

Ich verwende Referenzen zum Öffnen des Frontpanls (SubVi) und auch zu dessen Start.

Um das SubVi möglichst mit kleinem Aufwand weiter verwenden zu können benutzte ich Buttons mit dem Schaltverhalten "Latsch beim Betätigen" und einfache case strukturen, in denen das Frontpanel des SubVis geöffnet wird.

Das Problem ist nun, das ich zwei Schritte (Buttons) benötige, um eine Editieraufgabe zu lösen.

Zunächst wird das SubVI aufgerufen, eine zeile gewählt und dann per "OK" dieses wieder beendet. Schließlich brauche ich es nur zum Auswählen. danach wird der nun gewonnen Index durch einen zweiten Button im Hauptgrogramm zum eigentlichen Editieren eines Index-Arrays verwendet, durch das im Hauptprogramm die zu führende Liste wiederum erstellt wird.

Auch das Auslesen des "Stopp" Buttons des SubVis brachte mich nicht weiter. Damit konnte ich keinen sicheren Betrieb realisieren. Mehrfacheinfügen oder keine Reaktion im HauptVi waren aufgrund der unterschiedlichen Taktung der beiden Schleifen die Folge.

Die Vis habe ich in der Version 8.0 abgespeichert.

Vielleicht hat einer eine bessere Idee?

Problem mit SubVis, habe ich bisher öfter im Forum gelesen aber noch nicht den richtigen Hinsweis.

Gruß,

Peter

P.S.: alle Vis in einen Ordner kopieren


Angehängte Datei(en)
Sonstige .vi  hauptVI_bedienlogig.vi (Größe: 32,78 KB / Downloads: 212)

Sonstige .vi  random.vi (Größe: 14,08 KB / Downloads: 187)

Sonstige .vi  RauschVI.vi (Größe: 7,03 KB / Downloads: 187)

Sonstige .vi  SubVI_Daten_Datenr_cklesen.vi (Größe: 16,74 KB / Downloads: 198)

Sonstige .vi  Variable_w_hlen.vi (Größe: 14,54 KB / Downloads: 192)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.04.2009, 20:32 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2009 20:41 von jg.)
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
SUBVi über Referenz anzeigen, Problem mit dem Rücklesen von Daten
Erst mal Kritik:Grrr
Dass du hier ein VI (nämlich Variable_w_hlen.vi) hochlädst, dass
1. auf Modal
2. Auf Run when Opened
3. Ohne Windows-Bar und ohne Toolbar-Anzeige
eingestellt ist, fand ich persönlich unverschämt. Denn bei dieser Gesamtkombination musste ich erst mal ganz schön tricksen, um das VI abzubrechen, um dann in den Source-Code zu kommen. Das war echt unnötige Arbeit und hat mich sehr geärgert.

Was ich nicht verstehe, wieso du freiwillig auf Event-Strukturen verzichten willst? Aber bitteschön, ist deine Wahl.

Jetzt eine mögliche Lösung:
Stell doch in deinem Variable_w_hlen -VI den OK-Button auf "Switch when pressed". Dann bekommst du in deinem RückleseVI den Status sauber mit. Und den OK-Button setzt du über z.B. über eine lokale Variable vor der For-Schleife wieder auf FALSE zurück!?

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2009, 21:47 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2009 21:52 von PeterLV.)
Beitrag #3

PeterLV Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2007

2010 Dev. Suite
2006
kA

70174
Deutschland
SUBVi über Referenz anzeigen, Problem mit dem Rücklesen von Daten
Hallo Jens,

danke schon mal für die Anregung.

Wahrscheinlich hast du das SubVi auch mit "STRG :" beendet?

Ist mir nicht aufgefallen, dass das Probleme machen könnte. Ich rief das SubVI immer aus dem HauptVI auf, um es dann mit dem OK Button zu beenden.

Werde in Zukunft ausschließlich Vis hochladen, die mit Windowsleiste und Funktionszeile ausgestattet sind.

Werde gleich mal testen, was du meinst. Nur mit der lokalen Variable wird das nicht gehen, da die auf ein Vi beschränkt ist, oder? Der OK-Button im SubVi müsste ja die Case-Strukturen im HauptVi eimal ansteuern, um die "2-Button Lösung" im HauptVi abzulösen.

Gruß,

Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2009, 22:30 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2009 22:47 von jg.)
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
SUBVi über Referenz anzeigen, Problem mit dem Rücklesen von Daten
' schrieb:Wahrscheinlich hast du das SubVi auch mit "STRG :" beendet?
Auch ich langjähriger LV-User muss zugeben, dass ich diese Tasten-Kombi noch nicht kannte. Dafür werde ich wohl jetzt nie wieder vergessen.
' schrieb:Werde gleich mal testen, was du meinst. Nur mit der lokalen Variable wird das nicht gehen, da die auf ein Vi beschränkt ist, oder? Der OK-Button im SubVi müsste ja die Case-Strukturen im HauptVi eimal ansteuern, um die "2-Button Lösung" im HauptVi abzulösen.
Ja und Nein. Ich sehe inzwischen, dass durch dein dauerndes Pollen meine Idee mit der lokalen Variablen wohl auch keine Lösung ist, da dies an 2 Stellen im Main-VI ausgelesen wird.
Weitere Idee: Du hast dein Auswahl-VI ja auf Modal gesetzt, d.h. es ist auf jeden Fall im Vordergrund. Muss während dieser Zeit eigentlich das Haupt-VI weiterlaufen? Wenn nein, dann verzichte doch auf die Einstellung "Wait until Done"=False, setze es auf True, und du weisst nach Beendigung des Sub-VI ganz genau, welche Instanz (also hinzufügen oder löschen) aufgerufen wurde. Entspricht dann im Endeffekt einem ganz normalem SubVI-Aufruf.

Gruß, Jens

EDIT: Habe doch noch eine Variante, die mit "lokaler Variable" oder auch InvokeNode "Reset To Default" funktioniert:
   
In den nicht dargestellten Cases wird einfach durchverbunden.
EDIT 2: Und natürlich wird diese True-False Konstante per Schieberegister von einem Schleifen-Durchlauf zum nächsten weitergegeben.

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2009, 22:43 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2009 23:21 von PeterLV.)
Beitrag #5

PeterLV Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2007

2010 Dev. Suite
2006
kA

70174
Deutschland
SUBVi über Referenz anzeigen, Problem mit dem Rücklesen von Daten
Hallo Jens,

mir ist aufgefallen, dass ich den zweiten Aufruf zum Löschen einer Zeile nicht brauche, da ich hier sowieso nur die aktuelle Liste an das Listboxelemtn im SubVi übergeben habe, das ich sowieso auf dem Bildschirm sehe und auch gleich da bearbeiten kann.

Also bleibt nur die Case-Struktur um neue Variablen einzuführen.

Werde das jetzt bis morgen so lassen und einen lieben Mitmenschen auf "intiuitiv" bedienbar oder eben nicht testen lassen. Eben mit der "Zweiten Bestätigung", dass man wirklich diese Zeile einfügen will.

Das HauptVi muss deshalb weiterlaufen, da hier während der Bearbeitung von so einer einfachen Liste durchaus Grenzwertüberwachung und evtl. sogar Führungsgrößenrampen an das I/O System auf den Bus geschickt werden.

Gruß,

Peter

Edit: Da die Hauptschleife bei der Anwendung immer schneller läuft als das SubVi, hatte ich als erstes eine Lösung mit Flankenerkennung. Eben mit Schieberegister. Dabei ließ ich prüfen, ob zwischen einem und dem nächsten Durchlauf der Case-Struktur ein negativer Flankenwechsel stattgefunden hat. Damit ging es auch recht gut. Erst bei völlig ungebremsten Schleifen gings damit auch deneben. Wollte aber kein Schieberegister oder Rückkopplungknoten verwenden. Der Übersicht halber.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.04.2009, 08:06
Beitrag #6

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
SUBVi über Referenz anzeigen, Problem mit dem Rücklesen von Daten
' schrieb:Wahrscheinlich hast du das SubVi auch mit "STRG :" beendet?
ctrl-. ist es richtig Wink

LabVIEW Quick Reference Card
Hier steht das wichtigste drinn.

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.04.2009, 19:15
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
SUBVi über Referenz anzeigen, Problem mit dem Rücklesen von Daten
' schrieb:Edit: Da die Hauptschleife bei der Anwendung immer schneller läuft als das SubVi, hatte ich als erstes eine Lösung mit Flankenerkennung. Eben mit Schieberegister. Dabei ließ ich prüfen, ob zwischen einem und dem nächsten Durchlauf der Case-Struktur ein negativer Flankenwechsel stattgefunden hat. Damit ging es auch recht gut. Erst bei völlig ungebremsten Schleifen gings damit auch deneben. Wollte aber kein Schieberegister oder Rückkopplungknoten verwenden. Der Übersicht halber.
Ja also wenn du nach Event-Struktur auch noch unbedingt auf Shift-Register (was ist daran unübersichtlich? Ich finde die mit das Beste, was es in LV gibt) unbedingt verzichten willst, dann ist dir langsam nicht mehr zu helfen. Du kannst natürlich noch mit Meldern/Notifiers oder Queues arbeiten, um ein Event aus dem SubVI an das Main-VI weiterzugeben.

Da du es dir also selber unbedingt schwer machen willst, steige ich hier erst mal aus. Vielleicht hat jemand anders eine Idee, ich sonst nicht...

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.04.2009, 08:13 (Dieser Beitrag wurde zuletzt bearbeitet: 30.04.2009 08:16 von PeterLV.)
Beitrag #8

PeterLV Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2007

2010 Dev. Suite
2006
kA

70174
Deutschland
SUBVi über Referenz anzeigen, Problem mit dem Rücklesen von Daten
@RoLe ...."STRG ." natürlich. Zum Glück macht meine Hand das immer richtig...


Hallo Jens,

danke für die Hilfe. Gestern hatte ich zusätzlich zwei Lösungen ohne SubVi realisiert. Einmal mit Eventstruktur und einmal ohne. Werde die noch posten, da ich gerade nicht am LabVIEW Rechner bin.

Problematisch war allerdings bei dem Ereignis: Maus up, da ich die Maustaste ja auch über dem Scrollbar bediene. Evtl. gibt’s da besser geeignete Events.

Werde mich Heute Abend noch mal den Vis widmen.

Gruß,

Peter
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
  Arduino Daten über UDP auslesen Mechatroniker28 3 3.658 11.02.2022 19:29
Letzter Beitrag: GerdW
  GPS-Daten aus ublox über serielle Schnittstelle mughy 1 3.648 28.07.2016 07:32
Letzter Beitrag: Lucki
  Menüreferenz über VI-Referenz auslesen Trinitatis 4 4.531 18.05.2015 15:33
Letzter Beitrag: Trinitatis
  Übergabe einer Referenz vom HauptVI in das SubVI alan 1 3.757 09.03.2015 16:11
Letzter Beitrag: jg
  Datengenerierung über SubVI BollerJan 5 4.184 09.12.2014 14:04
Letzter Beitrag: BollerJan
  SubVi - Referenz Refnum vescon 2 5.299 01.10.2014 08:44
Letzter Beitrag: vescon

Gehe zu: