LabVIEWForum.de
LabView Scripting - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: LabView Scripting (/Thread-LabView-Scripting--29842)

Seiten: 1 2


LabView Scripting - Andi88 - 27.02.2017 09:59

Hallo Zusammen,

diesmal habe ich eine Frage bezüglich LV-Scripting (LV 2015)

Ich habe ein LV übergeordnetes Hauptsystem, dass LV über ActiveX steuern soll. Dabei soll es nur eine Schnittsetlle zwischen den beiden Programmen geben (ein "kommunikations vi"). Diesem VI werden Informationen zur Verfügung gestellt wie die Auswahl des Messgerätes, Auswahl der Datenanalyse,... Anhand dieser Informationen werden dann entsprechende sub-vi´s ausgewählt un verschaltet. Bis dahin sehe ich kein Problem und hab das anhand eines sehr einfachen Beispieles per scripting umgesetzt. Jetzt komme ich aber an einem Punkt nicht weiter:

Durch das Scripting wird ja ein neues VI erzeugt. Wie schaffe ich es, dieses VI nun automatisch zu speichern, um anschließend das VI auch automatisch wieder auszuführen? (Bei der Ausführung sehe ich wenig schwierigkeiten) aber am abspeichern scheitert es, um dann auf das gespeicherte vi zuzugreifen.

Ich hoffe ich konnte es einigermaßen erklären worauf ich hinaus will.

Bei Fragen stehe ich natürlich gerne zur Verfügung, es kann nur sein, dass es etwas dauert bis ich zurückschreiben kann.


VG Andi


RE: LabView Scripting - jg - 27.02.2017 11:36

Einfach die Speichern-Methode aufrufen?!
[attachment=57401]
Geht natürlich nur in der Entwicklungsumgebung.

Gruß, Jens


RE: LabView Scripting - Andi88 - 27.02.2017 13:58

Hallo Jens, danke für die Antwort.

So was habe ich gesucht, aber bisher nicht gefunden. Mein Fehler war, dass ich den Methodenknoten auf der falschen Ebene aufgerufen habe und mir das speichern:Insturment somit nie zur Auswahl stand...


Ich kann die Methode jetzt zwar Aufrufen, wird aber mit Fehler 8 gestoppt...

Fehler 8 bei Methodenknoten in Scripting_VI_Change.vi

Mögliche Ursachen:

LabVIEW: Dateiberechtigungsfehler. Sie haben nicht die erforderlichen Zugriffsrechte für die Datei.
=========================
NI-488: DMA-Hardwarefehler festgestellt.

Methodenname: Speichern:Instrument


Ich werde heute selbst noch ein wenig suchen und wenn ich bis morgen nicht erfolgreich bin, mein Beispielprogramm mal hochladen.

Danke und vlt. bis morgen


RE: LabView Scripting - jg - 27.02.2017 14:11

Hast du auch einen gültigen Pfad angeschlossen?

Gruß, Jens


RE: LabView Scripting - Andi88 - 28.02.2017 15:04

Hallo Jens,

sorry dass ich mich erst so spät wieder melde, aber heute gings nicht früher...

Ja ich habe nen gültigen Pfad drin und bin mittlerweile auch vom Netztlaufwerk mal auf ein Lokales Verzeichnis umgestiegen, der Fehler bleibt jedoch der selbe.

Ich habe den Methodenknoten (Speichern:Instrument) inzwischen auch an verscheidenen Ebenen ausprobiert, auch das erfolglos.

Und auch sonst habe ich versucht alle laufenden Referenzen zu schließen, bevor ich das VI speichern will...


Für weitere Tipps bin ich sehr dankbar

Im Anhang ist jetzt mal meine aktuelle Datei, nur leider durch das probieren nicht mehr ganz so schön... ich bitte darüber hinweg zu sehen Smile Die Datein ist in LB 2015 SP1 entstanden.

VG Andreas


RE: LabView Scripting - jg - 28.02.2017 16:51

Seit wann ist ein Verzeichnis-Pfad ein gültiger Dateiname?

Und gaaanz blöd, wenn man mit einem Error und einer ungültigen VI-Refnum in die Save-Node reingeht.

Außerdem sorg per Datenfluss dafür, dass die Save-Node erst abgearbeitet wird, wenn du fertig mit dem Scripting bist.

Hier eine verkürzte, aber funktionierende Variante:
[attachment=57408]

Gruß, Jens

P.S.: Es ist IMHO kein guter Stil, einen Dateinamen-Pfad mit String-Funktionen zusammenzubauen. Dafür gibt es entsprechende VIs unter der Palette der File-VIs.


RE: LabView Scripting - Andi88 - 28.02.2017 17:08

Vieelen Dank...

Ich muss mir in LV echt noch angewöhnen das ganze besser zu lesen und verstehen...

Ich dachte, dass ich nur den Ordner angeben muss und er sich den Namen über mein Eingabefeld "VI-Name" holt...

Zu deinem zweiten Punkt muss ich mir erst nochmal mein Programm anschauen um es zu verstehen. Ich weiß, dass mein Fehlerhandling gerade noch ziemlich bescheiden aussieht, aber dass ich mit nem Fehler in die Safe Node rein bin ist mir bisher noch nicht aufgefallen. Bei der Vi_Refnum dachte ich eigentlich, dass ich mit dem Eigenschaftsknoten "ÜbergeordnetesVI" wieder in der richtigen Ref bin...

Dass mit dem Datenfluss hatte ich sogar schon mal richtig, nur hat auch das nicht zum erfolg geführt.

Wahrscheinlich war es einfach das Ergebnis unsauberer Programmierung - bin in der LV Welt nocht nicht so ganz zuhause Smile


Viele Grüße


RE: LabView Scripting - jg - 28.02.2017 17:19

(28.02.2017 17:08 )Andi88 schrieb:  Vieelen Dank...

Ich muss mir in LV echt noch angewöhnen das ganze besser zu lesen und verstehen...

Ich dachte, dass ich nur den Ordner angeben muss und er sich den Namen über mein Eingabefeld "VI-Name" holt...

Zu deinem zweiten Punkt muss ich mir erst nochmal mein Programm anschauen um es zu verstehen. Ich weiß, dass mein Fehlerhandling gerade noch ziemlich bescheiden aussieht, aber dass ich mit nem Fehler in die Safe Node rein bin ist mir bisher noch nicht aufgefallen. Bei der Vi_Refnum dachte ich eigentlich, dass ich mit dem Eigenschaftsknoten "ÜbergeordnetesVI" wieder in der richtigen Ref bin...
Wenn halt aus dem OpenNode, was du verwendet hast, nicht schon ein Fehler rausgekommen wäre. Somit gab es auch kein übergeordnetes VI...
Sieht man ja auch daran, dass das Verknüpfen mit dem Connector Pane (ich nehme an, das wollest du machen?!) nicht funktioniert hat. Such einmal im NI Example Finder, da ist ein Beispiel, wie das richtig geht.

Gruß, Jens


RE: LabView Scripting - Andi88 - 02.03.2017 09:25

Hallo nochmal Smile


Also ich hab das Programm nochmal neu aufgesetzt, versucht auf alle Tips zu achten und siehe da es funktioniert Smile

Allerdings weiß ich nicht genau, was du mit dem "Verknüpfen mit dem connector Pane" meinst, ich habe daran jetzt nichts geändert und trotzdem funktioniert es... Habe mir auch die Beispiele angeschaut und eigentlich keinen Unterscheid gefunden.


Im Anhang ist noch einmal mein aktuelles Beispiel, falls noch einmal jemand danach sucht. Und wenn es hierfür noch verbesserungsvorschläge gibt, bin ich für alles offen Smile

VG


RE: LabView Scripting - jg - 02.03.2017 10:07

(02.03.2017 09:25 )Andi88 schrieb:  Also ich hab das Programm nochmal neu aufgesetzt, versucht auf alle Tips zu achten und siehe da es funktioniert Smile

Allerdings weiß ich nicht genau, was du mit dem "Verknüpfen mit dem connector Pane" meinst, ich habe daran jetzt nichts geändert und trotzdem funktioniert es... Habe mir auch die Beispiele angeschaut und eigentlich keinen Unterscheid gefunden.
Das Problem ist, das dein VI zwecks der fest codierten Pfade mit deinem Usernamen nur auf deinem Rechner ausführbar ist. Ich habe deshalb nicht verstanden, dass du ein SubVI in dein VI einsetzt und gedacht, dass du deine beiden Numerics mit dem ConnectorPane des erzeugten VI verbinden wolltest.
(02.03.2017 09:25 )Andi88 schrieb:  Im Anhang ist noch einmal mein aktuelles Beispiel, falls noch einmal jemand danach sucht. Und wenn es hierfür noch verbesserungsvorschläge gibt, bin ich für alles offen Smile
Pfad VIs wie z.B. Build Path verwenden!

Gruß, Jens