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!
ich habe ein Problem: Ich habe eine Sequenz mit unterschiedlichen Werten, die ich als Sollwert für einen Regler verwenden will. Meine Frage: Wie bekomme ich die Werte vom einen VI (Sequenz) am einfachsten zum anderen (Regler-VI). Ich habe schon etwas im Forum rumgelesen und da kommt meines Erachtens nur die lokale Variable oder die Umgebungsvariable in Frage, wobei das zweitgenannte einfacher sein soll. Ich wär euch deswegen dankbar, wenn mir jemand erklären könnte, wie das dunktioniert. Ich muss eigentlich nur eine DBL-Zahl (,die dauernd neu beschrieben wird) vom einen VI zum anderen "schicken"
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Umgebungsvariable erstellen
Und noch was... Von einem VI zum anderen VI kommst Du nicht per lokaler Variable, sondern nur mit einer globalen- oder einer Umgebungsvariablen (wie Du schon gesagt hast). Und eine lokale Variable zu erstellen ist nicht so einfach, wie das Erstellen einer Umgebungsvariablen.
Ansonsten lad' mal Deine VIs hoch, dann sieht man, was in dem Fall am sinnvollsten (einfachsten) ist (Queue oder Variable).
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Ich habe es jetzt mal mit der Umgebungsvariablen versucht und das hat zu Beginn auch ganz ordentlich funktioniert bis auf einmal eine Fehlermeldung gekommen ist:
Fehler: -1967362042, IAK_SHARED: (Hex 0x8ABC7006) Dienst kann nicht gestartet werden.).
Verteilung mit Fehlern abgeschlossen
Seit das zum ersten mal gekommen ist, funktioniert die Verbindung über die Umgebungsvariable nicht mehr. Falls mir da jemand weiterhelfen kann, wäre ich echt dankbar.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Mehr kann ich dazu leider auch nicht sagen.
Sag doch: "Benutz eine Queue."
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Umgebungsvariable erstellen
Das mach' ich erst, wenn ich das Programm gesehen habe. Aber tendenziell hast Du schon Recht.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Ich muss eigentlich nur eine DBL-Zahl (,die dauernd neu beschrieben wird) vom einen VI zum anderen "schicken"
Und das auch noch nur innerhalb der selben Anwendung?
Nimm keine Umgebungsvariable. Das ist mit Kanonen auf Spatzen geschossen. Umgebungsvariable sind vorgesehen, um über ein Netzwerk Daten zu übertragen. Und zwar so, dass man im Blockdiagramm (fast) nichts davon sieht, dass die Daten aus einer anderen Anwendung kommen.
Du könntest eine Globale Variable nehmen. Das ist am einfachsten, hat aber den Nachteil, dass Daten verloren gehen können (das hängt davon ab, was du mit dem DBL-Wert machen willst).
Per se besser als eine Globale Variable ist ein Melder, den ich in deinem Falle bevorzugen würde. Es kommt aber auch hier auf deine Applikation an, ob nicht vielleicht doch die Globale Variable ausreichend ist. Ein Melder kann verwendet werden, wie eine globale Variable: Einfach dauernd auslesen.
Ja, und ok: Auch mit Queues kann man Daten zwischen VIs austauschen. In bestimmten Fällen muss man sogar eine Queue nehemen. Queues sind nicht so einfach wie Melder: Sie verlieren ihren Wert nach dem Auslesen.
Als vierte Möglichkeit gibt es eine Referenzen. Per Referenz kann man in dem einen VI auf Daten im anderen VI zugreifen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
habe mich gerade auch in einer Umgebungsvariable versucht, da ich Daten von einem PC über das Netzwerk zum anderen schicken will.
Bekomme folgende Fehlermeldung :
Zitat:Initialisierung...
Abhängigkeiten werden festgestellt...
Objekte werden auf Konflikte geprüft. Dieser Vorgang kann etwas länger dauern...
Vorbereiten von Objekten für das Herunterladen. Dieser Vorgang kann etwas länger dauern...
Mein Computer verteilen
Variables.lvlib verteilen\\(meine IP)\Variables Verteilung fehlgeschlagen (Fehler: -1967362042, IAK_SHARED: (Hex 0x8ABC7006) Dienst kann nicht gestartet werden.).
Verteilung mit Fehlern abgeschlossen
Hat jemand eine Lösung für das Problem gefunden? Im NI-Forum hab ich nichts gefunden. Der link oben zum NI-Forum, in dem eine Neuinstallation empfolen wurde funktioniert nicht mehr.
Sieht so aus, als ob der Dienst für die Shared Variables bei dir nicht läuft. Und du hast mglw. nicht genügend Rechte, um ihn zu starten.
Ruf doch mal den Distributed System Manager auf (unter Start -> National Instruments ->....)
Gruß, Jens
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!