LabVIEWForum.de
Aufruf über Referenz - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Aufruf über Referenz (/Thread-Aufruf-ueber-Referenz)

Seiten: 1 2 3


RE: Aufruf über Referenz - finalr - 29.08.2013 09:58

Vielen Dank für die Antworten.

@Jens: Hättest du vielleicht ein Beispiel?
1)while-Schleife parallel zur Event-Struktur und den Rest so lassen?
2)Finde den Knoten "Run-VI" nicht
3)Ich habe lv12_img also könnte ich alles so lassen und dann per asychronen Aufruf lösen?


Gruss Daniel

EDIT:
Ich habe jetzt den Aufruf über Referenz durch ein asynchronen Aufruf ersetzt und es scheint zu funktionieren.
Weiterhin die Option "mit Datenaufnahme" beim Erstellen der Referenz hinzugefügt.


RE: Aufruf über Referenz - jg - 29.08.2013 10:04

zu:
1) Stichwort hierzu wäre eine Producer-Consumer-Struktur, zu finden u.a. unter den VI Templates von LabVIEW. Per Notifier oder Queue löst du in einer parallelen Schleife den Start deiner Messprozedur aus.
2 )"Run VI" ist eine Methode der Klasse VI, keine Eigenschaft, vielleicht findest du es deshalb nicht?
3) Probieren geht über Studieren. Hilfe durchlesen, Beispiele im NI Example Finder anschauen, und testen. Sollte prinzipiell gehen.

Gruß, Jens


RE: Aufruf über Referenz - finalr - 29.08.2013 10:44

mit hilfe des asynchronen Aufrufs kann ich zwar das Haupt-VI nun bedienen (nicht mehr eingefroren), aber sobald ich das Prüf-VI per Referenz beenden möchte, kommt folgender Fehler:

Fehler 0 bei nicht identifizierter Position.
Mögliche Fehlerursache: Fehler beim Herstellen einer Verbindung zum GPIB-Treiber oder Gerät.


RE: Aufruf über Referenz - jg - 29.08.2013 10:56

(29.08.2013 10:44 )finalr schrieb:  mit hilfe des asynchronen Aufrufs kann ich zwar das Haupt-VI nun bedienen (nicht mehr eingefroren), aber sobald ich das Prüf-VI per Referenz beenden möchte, kommt folgender Fehler:

Fehler 0 bei nicht identifizierter Position.
Mögliche Fehlerursache: Fehler beim Herstellen einer Verbindung zum GPIB-Treiber oder Gerät.
Das kann alles Mögliche sein. KA, ich kenne deinen Code nicht.

Gruß, Jens

EDIT: Kannst du deinen Prüfablauf überhaupt sauber unterbrechen? Laut Screenshot ist das als starre Sequenz programmiert, da erfordert ein Unterbrechen immer einiges an Klimmzügen.


RE: Aufruf über Referenz - finalr - 29.08.2013 11:40

Ich frage vor jedem Aufruf eines VI's ab, ob beendet werden soll.
Aber ich bekomme leider den schon erwähnten Fehler nicht raus.

Es klappt soweit, bis der Prüfablauf auf die NI-Karte zugreift.
Im Haupt-VI werden periodisch Daten von der NI-Karte abgefragt, kann es sein, dass es dort zu einer Kollision kommt?


RE: Aufruf über Referenz - Y-P - 29.08.2013 13:55

Dann bitte Profil_ergaenzen. Da steht noch LabVIEW 2010.

Gruß Markus

(29.08.2013 09:58 )finalr schrieb:  Ich habe lv12_img



RE: Aufruf über Referenz - Trinitatis - 29.08.2013 19:54

(29.08.2013 09:46 )jg schrieb:  @Marko: Haken oder nicht, das nützt bei dem Aufbau nichts. Wie schon gesagt, Call by Reference ist identisch zu einem SubVI Aufruf. Die Node wartet also, bis das SubVI abgearbeitet ist. Erst dann wird die Event Struktur beendet und erst danach kann ein weiteres Event verarbeitet werden.

THINK Dataflow.

Gruß, Jens

@Jens,:
Dass in einer Eventstruktur ein ausgeführtes Event nicht durch ein neu aufgerufenes abgebrochen werden kann, ist schon klar. Wenn aber das gestartete SubVI durch Abfrage der glob. Var. oder der reference gestoppt werden kann, dann ist es ja auch abbrechbar. Und wenn das Problem ist, dass der Abbrechen-Knopf nicht gedrückt werden kann, dann ist ja offensichtlich das FP gesperrt.
Wenn also das Sub-VI per Referenz auf den Status eines Schalters reagierte und dann abbräche, dann wäre doch das Problem behoben, oder ?

Die glob. Variable müsste natürlich im übergeordneten VI erst geschrieben werden, was natürlich nur parallel ginge - deshalb ja auch mein Tip über die Referenz des Knopfes.


Gruß, Marko


RE: Aufruf über Referenz - jg - 30.08.2013 10:08

@Marko: THINK Dataflow: Damit dein Vorschlag funktioniert, muss auch eine Möglichkeit bestehen, dass der neue Wert des Abbruch-Button an eine globale Variable weitergegeben wird, so wir du es vorschlägst. Das geht dann aber nur, wenn der Abbruch-Button nicht in der Event-Struktur sondern in einer parallelen Schleife abgefragt wird.
Damit sind wir wieder beim Hinweis, dass lange andauernde Prozesse prinzipiell nicht in den Case einer Event-Struktur gehören. (Stichwort: Producer-Consumer o.ä.).

@finalr: Weiterhin KA, bin deinen spärlichen Information lässt sich keine eindeutige Fehleraussage treffen. Parallele Zugriffe auf eine Hardware-Resource können natürlich zu Problemen führen.

Gruß, Jens


RE: Aufruf über Referenz - Trinitatis - 30.08.2013 11:22

(30.08.2013 10:08 )jg schrieb:  @Marko: THINK Dataflow: Damit dein Vorschlag funktioniert, muss auch eine Möglichkeit bestehen, dass der neue Wert des Abbruch-Button an eine globale Variable weitergegeben wird, so wir du es vorschlägst. Das geht dann aber nur, wenn der Abbruch-Button nicht in der Event-Struktur sondern in einer parallelen Schleife abgefragt wird.

Gruß, Jens

Was könnte ich denn hiermit gemeint haben?

(29.08.2013 19:54 )Trinitatis schrieb:  Die glob. Variable müsste natürlich im übergeordneten VI erst geschrieben werden, was natürlich nur parallel ginge - deshalb ja auch mein Tip über die Referenz des Knopfes.

Ich habe lediglich 2 Möglichkeiten aufgezeigt, mit denen es ginge, die aber beide eine Anpassung des Quellcodes beinhalten.

Gruß, Marko


RE: Aufruf über Referenz - jg - 30.08.2013 11:42

@Marko: Mea culpa, deine letzte Bemerkung mit der parallelen Schleife habe ich überlesen. Wall