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 

Globale Variable mit Excel



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!

29.01.2014, 10:34
Beitrag #1

Banick Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Sep 2013

2012
2013
EN


Deutschland
Globale Variable mit Excel
Hallo,
meine Name ist Stefan. Mittlerweile beschäftige ich mich seit Oktober mit LabVIEW und bin nun auf ein Problem gestoßen, welches ich nicht alleine bis jetzt beheben konnte.
Im Laufe meiner Arbeit habe ich einige VI zur Kommunikation mit dem Controller MCP2210 programmiert. Dafür verwendete ich eine vorgefertige DLL von Microchip.
(MCP2210 Breakout Modul)
Folgende VI's habe ich programmiert:
- SPI_Initialize (wird einmal am Start aufgerufen)
- SPI_WriteReadData (kann mehrfach aufgerufen)
- SPI_Close (wird am Ende ausgeführt)
In SPI_Initialize werden net Referenzen erzeugt und in eine Globale Variable geschrieben.
Wenn ich diese VI in LabVIEW zusammennutze funktioniert alles.
Meine aktuelle Aufbaue besteht darin aus Excel herraus LabVIEW Programme auszuführen. Wenn ich nun die 3 Programme nach einander ausführe, erhalte ich bei SPI_WriteReadData die Fehlermeldung, dass das Argument der Funktionen nicht "null" sein darf.
Der gleich Fehler tritt auf wenn das VI SPI_WriteReadData einzeln ausgeführt wird.
Meine Vermutung ist nun, dass die Global Variable nicht richtig beschrieben bzw. gelesen wird oder nach abschließen von SPI_Initialize gelöscht wird.
Kommt jemand dieses Problem bekannt vor?

Gruß Stefan

lv12_img
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.01.2014, 10:43 (Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2014 10:45 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Globale Variable mit Excel
Hallo Stefan,

Zitat:Meine Vermutung ist nun, dass die Global Variable … nach abschließen von SPI_Initialize gelöscht wird.
Genau!

Eine globale Variable bleibt nur solange im Speicher, wie sie von irgendeinem ebenfalls noch im Speicher befindlichen VI referenziert wird. Gehen die VIs aus dem Speicher, ist auch die globale Variable weg!

- Warum überhaupt dieser Umweg, die VIs aus Excel heraus aufzurufen? Warum nicht alles in LabVIEW?
- Globale Variablen entsprechen nicht dem DATAFLOW-Prinzip von LabVIEW, wo das hinführt, hast du ja gerade gemerkt…

Zitat:Meine aktuelle Aufbaue besteht darin aus Excel herraus LabVIEW Programme auszuführen.
Wie machst du das momentan genau? Falls jedes VI eine eigene EXE darstellt, benutzen die sowieso nicht die identische globale Variable, sondern jeweils eine andere in ihrem eigenen Kontext…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.01.2014, 10:44 (Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2014 10:48 von jg.)
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Globale Variable mit Excel
Wie rufst du VIs von Excel aus auf? Was hast du da gemacht? Aus jedem VI eine Exe oder was?

Gehen wir mal vom Bsp., dass du aus jedem VI eine Exe gemacht hast. Dann rufst du "Init" auf. Wenn das fertig ist, ist die Instanz beendet und damit auch die Globale Variable weg. "WriteRead" erzeugt dann logischerweise einen Fehler.

Gruß, Jens

EDIT: Mögliche Lösung: Ein VI/Exe erstellen, die Init + Write/Read + Close enthält und das starten.
Und nicht überraschend, Gerd hat dieselben Ideen. Smile

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
29.01.2014, 11:15
Beitrag #4

Banick Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Sep 2013

2012
2013
EN


Deutschland
RE: Globale Variable mit Excel
Zitat:- Warum überhaupt dieser Umweg, die VIs aus Excel heraus aufzurufen? Warum nicht alles in LabVIEW?
Der Grund für die Nutzung mit Excel ist, ich soll mir eine Alternative zu TestStand überlegen.
Das bedeutet, der spätere Sinn besteht darin möglichst einfach verschiedene Test-Cases nach einander auszuführen.
Laut meinen Kollegen ist die Erstellung einer Sequenz mit TestStand relativ unübersichtlich im Vergleich zur Script basierder Variante.

Zitat:Wie rufst du VIs von Excel aus auf? Was hast du da gemacht? Aus jedem VI eine Exe oder was?
Die VI werden direkt ausgeführt.
Zm Aufruf verwenden ich zum Beispiel folgenden Code in Excel:
Set lvapp = CreateObject("Labview.Application")
Set viref = lvapp.GetVIReference("Pfad zum VI")
viref.ShowFPOnCall = True
Call viref.call(paramNames, paramVals)
paramNames und paramVals sind Arrays mit der Größe der Anzahl aller Ein -und Ausgang, welche im Frontpaneldefiniert sind.
Das gleiche Prinzip wird auch von einen LabVIEW Beispiel genutzt.
Bei mir ist es unter "C:\Program Files\National Instruments\LabVIEW 2012\examples\comm\freqresp.xls" zu finden.

Zitat:EDIT: Mögliche Lösung: Ein VI/Exe erstellen, die Init + Write/Read + Close enthält und das starten.
Wäre vom prinzip erstmal möglich, dann müsste ich aber die Ini + Close jedesmal aufrufen, wenn ich etwas schreiben oder lesen möchte.

Gibt es vielleicht eine Möglichkeit die Variablen im Speicher zu halten, weil mit TestStand muss es ja auch irgendwie möglich sein?

Gruß Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.01.2014, 11:18
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Globale Variable mit Excel
Hallo Stefan,

Zitat:Gibt es vielleicht eine Möglichkeit die Variablen im Speicher zu halten, weil mit TestStand muss es ja auch irgendwie möglich sein?
Nicht in deiner Variante, da du jedesmal explizit eine neue LabVIEW-Instanz aufmachst (CreateObject("LabVIEW.Application"))…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.01.2014, 11:44
Beitrag #6

Banick Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Sep 2013

2012
2013
EN


Deutschland
RE: Globale Variable mit Excel
Danke erstmal für eure schnelle Antwort.
Ich werde mir dann mal eine alternative Lösung überlegen.
Gruß Stefan
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
  Globale Variablen Edi70 7 4.492 08.10.2021 17:01
Letzter Beitrag: GerdW
  Boolean als globale Variable ares2013 12 11.368 06.09.2019 13:57
Letzter Beitrag: GerdW
  Übergabe Anzeigeelement zwischen VIs (Referenz/globale Variable?) lipster 1 4.308 03.02.2017 14:27
Letzter Beitrag: GerdW
  globale Konstanten? Nordvestlys 6 5.931 20.02.2015 09:35
Letzter Beitrag: Nordvestlys
  Globale Variable, maximale Größe, Daten anhängen. dieseldunst 10 10.733 18.04.2014 09:00
Letzter Beitrag: Lucki
  FGV Funktionale Globale Variable cabua 30 52.398 08.11.2013 10:33
Letzter Beitrag: mate Ria

Gehe zu: