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 

Programmaufruf von SubVI



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!

17.05.2017, 14:30
Beitrag #1

antwort Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Nov 2016

Labview 2015
2017
DE

85659
Deutschland
Programmaufruf von SubVI
Hallo LabView Forum :-)

Ich bin gerade am Erstellen einer Prüfstandssteuerung für einen Motorenprüfstand. Bin auch soweit ziemlich fertig.

Nachdem mein Datenexport in ein Excelfile über Express-VI's ultra langsam wurde, habe ich den Datenexport ohne Express-VI's erstellt.


Dazu habe ich ein extra SubVI erstellt in dem ich vor der While Schleife den Header der Messdatei mit den Kanalnamen schreibe und in der While Schleife dann im 100ms Takt je alle aktuellen Messwerte in die Exceldatei einfüge. Nach der While Schleife schließe ich noch die Datei.


Leider stehe ich jetzt vor dem Problem, dass ich im laufenden Hauptprogramm dieses SubVI öfters aufrufen will (nämlich immer dann, wenn die Variable S_MESSUNG True wird)

Da ich das SubVI nicht in einer WHile Schleife platzieren kann, da sonst die Headerdatei bei jeden Schleifendurchgang neu geschrieben wird, weiß ich aktuell nicht wie ich das Problem lösen kann.

Könnt Ihr mir bitte Tipps geben wie man so einen Aufruf des SUBVI's am besten umsetzt ?
(Problem ist, dass das SubVI je Messvorgang nur einmal geöffnet werden darf - somit fällt ein Platzieren in einer While Schleife flach)

Vorab Vielen Dank für Eure Hilfe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.05.2017, 14:42
Beitrag #2

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Programmaufruf von SubVI
Aus eins mach drei.
  • Ein VI Datei öffnen.
  • Ein VI Daten schreiben.
  • Ein VI Datei schließen.

Jetzt kannst Du die VI zum Daten schreiben in die While Schleife einbinden.

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.05.2017, 15:05
Beitrag #3

antwort Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Nov 2016

Labview 2015
2017
DE

85659
Deutschland
RE: Programmaufruf von SubVI
Hallo Freddy :-)

Vielen Dank für Deine schnelle Antwort.

Das würde bedeuten, dass ich die Datei zum Daten schreiben in eine WHile Schleife packen kann.

Leider muss ich aber trotzdem vorher bei jedem Messdurchgang den Dateinamen neu festlegen und die neue Datei öffnen.

Gibt es da keine Möglichkeit ein SubVI einmal ausführen zu lassen?

Ich kann es aktuell nur einmal aufrufen, wenn ich es nicht in einer extra While Schleife laufen lasse.
Wenn es aber in einer While Schleife läuft kriege ich nur die Headerzeile und eine Zeile mit Messwerten, die dann bei jedem Schleifendurchgang überschrieben wird.

Hast du noch eine Idee?

Vorab Vielen Dank und viele Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.05.2017, 16:35
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Programmaufruf von SubVI
Hallo antwort,

Zitat:Leider muss ich aber trotzdem vorher bei jedem Messdurchgang den Dateinamen neu festlegen und die neue Datei öffnen.
Wieso?
Wenn du einfach die Referenz in einem Schieberegister hälst, musst du die Datei nur einmal öffnen…

Zitat:Gibt es da keine Möglichkeit ein SubVI einmal ausführen zu lassen?
Du könntest dein subVI in eine FGV (aka AE) umgestalten, dann kannst du über einen zusätzlichen State-Input festlegen, was das subVI gerade erledigen soll!

Du weißt schon, dass sich solche Fragen wesentlich besser beantworten lassen, wenn du ein VI bereitstellst!?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 09:32
Beitrag #5

antwort Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Nov 2016

Labview 2015
2017
DE

85659
Deutschland
RE: Programmaufruf von SubVI
Hallo GerdW,

du hast recht. Hatte ich vergessen. Im Anhang mein SubVI die mir alle Variablen in eine Exceldatei schreibt. (Jetzt endlich auch schnell genug, nachdem die blö*** Express VI's alle weg sind - Als Neuling schauen die Dinger sehr sehr verlockend aus, da sie auch in der Konfiguration sehr einfach sind.. aber die sind wirklich absolut unbrauchbar.. Da hattest Du von Anfang an Recht :-) )

Der Pfad+Dateiname wird über die Variable SG_Dateiname in das SubVI übergeben.

Ich wollte, dass ich in der Prüfstandssteuerung (Hauptprogramm) auf den Knopf "Messung aktiv" drücke und dann das SUBVI gestartet wird.

   

Im SubVI Ist nur die Datenspeicherung in einer Schleife, da dies ja in einem sehr schnellen Takt erfolgen soll. Das Anlegen der Datei, Öffnen und Schließen ist in keiner Schleife, da dies ja nur einmal erfolgen soll.

Mit den anderen Funktionen funktioniert das ganz gut da schalte ich einfach eine Case Struktur an und aus aber das Problem bei dem SubVI Datenexport.vi ist, dass es nicht in einer weiteren Schleife sein darf, da sonst jedes mal die Datei neu angelegt wird. Wenn es aber in keiner extra Schleife ist, wird nur einmal diese Case Struktur angeschaut und wenn dann der Schalter "Messung aktiv" nicht aktiviert ist, wird einfach nie wieder aufgezeichnet.

Wisst Ihr eine Lösung wie ich den Programmaufruf für das SubVI machen kann ohne es in einer weiteren Schleife einbauen zu müssen?

Vorab Vielen Dank für Eure Hilfe.


Angehängte Datei(en)
15.0 .vi  Datenexport.vi (Größe: 63,96 KB / Downloads: 119)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 11:01
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Programmaufruf von SubVI
Hallo antwort,

so wie dein VI momentan aussieht, musst du es parallel zu deinem mainVI aufrufen. Dummerweise hast du keinerlei Möglichkeiten programmiert, mit denen du dieses subVI von außen steuern könntest!

Ich verwende für sowas auch gern eine QMH-Struktur (Queued message handler) und (glaube ich schon mal erwähnt) Statemachines…

Wenn du etwas parallel zu deinem mainVI erledigen willst, dann musst du es auch entsprechend programmieren!
Einfach so ein subVI aufrufen und sich dann wundern, warum es das mainVI blockiert, ist reichlich "unüberlegt"…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 16:33
Beitrag #7

antwort Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Nov 2016

Labview 2015
2017
DE

85659
Deutschland
RE: Programmaufruf von SubVI
Hallo GerdW,

ich habe es jetzt mal mit einer StateMachine versucht.
Starten und Beenden des VI's funktioniert auch.

   
   

Leider wird das SUBVI aber trotzdem im Schleifentakt der Statemachine geöffnet. (Sprich ich bekomme nur eine Zeile mit Messwerten, dann wird die Datei neu angelegt und wieder eine Zeile mit Messwerten rein geschrieben)

Kann man der Whileschleife sagen sie soll solange nix machen, bis das Sub VI komplett fertig ist?

Also dass die StateMachine nicht 10mal pro Sekunde neu durchlaufen wird und das SubVI dementsprechend nur einmal aufgerufen wird?

Vorab Vielen Dank und viele Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 16:50
Beitrag #8

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Programmaufruf von SubVI
Du musst das VI "Dateiposition festlegen" mit Position ENDE vor dem Schreib VI setzen.
Dann hängt er die nächsten Daten an. Wenn Du das nicht machst, beginnt das Schreiben immer am Anfang. Damit überschreibst du die entsprechenden Zeichen.

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.06.2017, 09:16
Beitrag #9

antwort Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Nov 2016

Labview 2015
2017
DE

85659
Deutschland
RE: Programmaufruf von SubVI
Hallo Zusammen,

jetzt habe ich es nach Euren Empfehlungen gelößt und mich mit State Machine's beschäftigt.

Habe nun drei SubVI's (Messdatei anlegen, Messen, Messdatei schließen) und arbeite diese nacheinander in einer StateMachine ab.
Nach schließen der Messdatei gehe ich wieder in den "Warten State", solange ich wieder auf Messen drücke. Dann startet das Messprozedere in einer neuen Messdatei von vorne.

Das war jetzt der letzte Schritt für meien Motorenprüfstandssteuerung.

Jetzt läuft alles sehr performant und funktioniert alles wie es soll.

Vielen Dank für Eure Hilfe :-) Ohne Eure Hilfe hätte ich das nicht geschafft.
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
  SubVI Funktionen verwenden, ohne SubVI Frontpanel (AVT Kamera) Allyoucaneat 3 7.959 25.08.2011 15:18
Letzter Beitrag: GerdW
  Mehrfacher Programmaufruf unter Windows 7 Albert1982 3 3.003 21.06.2011 17:40
Letzter Beitrag: Albert1982

Gehe zu: