LabVIEWForum.de - Copy File in Main VI einwandfrei, in Sub VI Error Code 1

LabVIEWForum.de

Normale Version: Copy File in Main VI einwandfrei, in Sub VI Error Code 1
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich steh vor dem nächsten Problem, ich glaube echt es ist nen Labview Bug. Ich arbeite gerade mit LV 8.5

Im Anhang findet ihr die VI´s die dazu gehören.

Folgendes: die VI updater_client_tcpserver.vi funktioniert einzeln einwandfrei. In ihr werden an einer Stelle zwei Dateien kopiert.
Da ich die VI in einer Main VI nutze kommt hier der eigentliche Clou. Dort tritt der Error Code 1 auf. Ich copy pase mal:

"Copy in updater_client_tcpserver.vi->updater_client_main_debug.vi<APPEND>
C:\temp\table.txt

Error 1 occurred at Copy in updater_client_tcpserver.vi->updater_client_main_debug.vi

Possible reason(s):

LabVIEW: An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @.
=========================
NI-488: Command requires GPIB Controller to be Controller-In-Charge.

C:\temp\table.txt"


Ich habe bei google gefunden, dass es häufig an globalen Variablen liegt. Jedoch ist dies jetzt schon eine abgeänderte Version (_debug) in der ich die globalen Variablen beseitigt habe.
Auch habe ich alle Cases mit default Output beseitigt. Ich weiß echt nicht mehr weiter...

Da ich heute mehr als 4 Stunden rumgehühnert habe und am Ende nichts rausgekommen ist, wollte ich euch nun um Rat fragen. Ich bin jetzt zwei Wochen in der Schule und hoffe nach der Schulzeit mein Programm fertigstellen zu können.

Danke jedem der sich Zeit nimmt

Gruß Martin
Hallo Martin,

Lass dir doch im subVI einfach mal die Pfade anzeigen, die da übergegeben wurden. Dann kannst du doch ruckzuck feststellen, welcher Pfad nicht in Ordnung ist und über den dann die Copy-Funktion stolpert...

Ich tippe ja auf eine RaceCondition...
Hallo Gerd,
die Pfade sind alle i.O. An welcher Stelle soll denn eine Racecondition stattfinden?
Da läuft nichts parallel weiter in der Main VI. Wenn diese SubVI aufgerufen wird, steht gänzlich der komplette Code bis die Sub VI abgearbeitet wurde. Wie gesagt ich tippe da auf einen Bug, da auch bei google manche diesen Fehler aus heiterem Himmel haben.
Gruß Martin
[quote='MartinLoreck' pid='141100' dateline='1345200261']

Folgendes: die VI updater_client_tcpserver.vi funktioniert einzeln einwandfrei. In ihr werden an einer Stelle zwei Dateien kopiert.
Da ich die VI in einer Main VI nutze kommt hier der eigentliche Clou. Dort tritt der Error Code 1 auf. Ich copy pase mal:


Hallo Martin,
vielleicht ist die Fehlerquelle eine ganz andere. (soll bedeuten, das Du mit einem Fehler in dieses sub-vi hineingehst)
Schau mal im Anhang und setze an der rot markierten Stelle eine Probe.
Vielleicht hilfts...

Gruß
Ralf
Danke für den Hinweis, das habe ich aber bereits ausprobiert. Soll heißen: an dieser Stelle liegt kein Fehler an.

Jetzt nach zwei Wochen funktioniert zumindest auf einmal die debug Version in der ich die globale Variable rausgenommen habe.

die Version mit globaler Variable funktioniert jedoch immer noch nicht. Kann mir das jemand erklären?
Das einzige was ich mit dieser mache ist parallel zu meinem Code alle 1000ms zwei Strings aus der globalen Variable auslesen und einen boolean Wert der bei True die While Schleife beenden soll in der diese globale Variable ausgelesen wird.

Und in meinem eigentlichen Code schreibe ich in diese globale Variable an ein paar Stellen. Ist im Prinzip nur eine Statusmeldung, nur da ich den Status auch in Subvis ändern möchte geht das nur über die globale Variable


Kann mir jemand sagen was es mit diesem error 1 in Zusammenhang mit der globalen Variable auf sich hat?
Hallo Martin,

Zitat:die Version mit globaler Variable funktioniert jedoch immer noch nicht. Kann mir das jemand erklären?
Vielleicht ginge das, wenn du uns an dieser Version (in ihrer aktuellen Ausprägung) teilhaben lassen würdest...

Zitat:alle 1000ms zwei Strings aus der globalen Variable auslesen und einen boolean Wert der bei True die While Schleife beenden soll in der diese globale Variable ausgelesen wird.
??? Meinst du hier eine oder mehrere globalen Variablen, wenn du von 2 Strings und einem Bool schreibst? Lesen sollte kein Problem sein...

Zitat:in meinem eigentlichen Code schreibe ich in diese globale Variable an ein paar Stellen.
Hört sich erstmal nach einer RaceCondition an...

Zitat:Kann mir jemand sagen was es mit diesem error 1 in Zusammenhang mit der globalen Variable auf sich hat?
Glas1 Mist, gerade kaputt...
Fehler 1: Ungültiger Parameter...
Also ich will das ganze wenigstens abschließen auch wenn ich immer noch nicht genau weiß woran es gelegen hat, ich habe nur Vermutungen.

Ich hatte lediglich eine globale Variable. Eine Racecondition ist ausgeschlossen, da ich nie gleichzeitig hineingeschrieben hatte. Die globale Variable habe ich jetzt jedenfalls nicht mehr, ich benutze stattdessen Referenzen.

Meine Vermutung ist mittlerweile, dass das Mappen mit net use Probleme bereitet. Man kann dazu auch im Netz Bugreporting finden, jedoch gibt es Hotfixes nicht für Windows 7. Ich benutze jetzt zwar immer noch net use, jedoch erstelle ich mir dabei kein Laufwerk auf das ich kopiere, sondern mache alle Kopiervorgänge direkt auf die Freigabe. Das funktioniert jetzt sehr gut.

Wie gesagt für mich ist das ganze immer noch Voodoo und ich bin froh das ich das jetzt so hinbekommen habe, auch wenn ich den Fehler nicht detailliert eingrenzen konnte.

Danke trotzdem an alle die helfen wollten
Referenz-URLs