11.05.2010, 13:01
Beitrag #1
|
Ruthenium-Jan
LVF-Grünschnabel
Beiträge: 29
Registriert seit: Feb 2010
8.2; 9.0,11,12
2009
DE_EN
106xx
Deutschland
|
Shared Variables - Kommunikationsprobleme im Netzwerk
Hallo liebe Forumsgemeinde,
ich habe ein mehr oder minder unübersichtlich großes LabVIEW-Projekt (LV 8.2.1) "geerbt" und soll dieses für Experimente verwenden / bzw. weiterentwickeln.
Das Projekt besteht aus 3 Modulen, die von unterschiedlichen PCs miteinander kommunizieren (Kamerabilder und Einstellungen).
Die meisten Funktionen sind mir schon klar geworden. Allerdings gibt es ein paar Bugs, deren Ursprung sich meiner Suche entzieht.
Diese stehen vor allem im Zusammenhang mit Shared Variables.
Das Problem ist wie folgt: Ein PC schreibt die Kameradaten und verschiedene Booleans (Bereitschaft, Aufnahme, etc) in Shared Variables und überträgt diese an den Steuercomputer zur weiteren Auswertung. Dabei kommt es allerdings dazu, dass - obwohl die Shared Variable Library deployed wurde - die Daten nicht in die Shared Variables geschrieben wurden.
Das merkwürdigste ist, dass dieser Fehler nur in einem geringen Maße reproduzierbar ist:
Beim 1. Starten der Module werden die Werte nie in die SV's geschrieben.
Nach wiederholtem Starten und Fehlersuche/ Abfrage der Werte der SV's in anderem VI werden die Werte plötzlich aus dem Modul in die SV's übertragen. Allerdings weiß ich nicht, welche Handlung genau für die Übertragung verantwortlich ist.
Ich bin momentan absolut ratlos und wollte fragen, ob jemand von euch vllt wüsste wie Probleme mit Shared Variables am intelligentesten anzugehen sind.
Desweiteren habe ich überlegt, ob sich ein Update auf die neueste LV-Version lohnen würde (momentan arbeiten wir mit LV 8.2.1), da ich gelesen hatte, dass das DSC-Modul in späteren Versionen eine erhebliche Verbesserung erhalten haben sollte. Was meint ihr dazu? Auf einem PC habe ich die neueste Version schon einmal installiert, aber die gleichen Probleme treten auch mit der neuesten Version auf...
Vielen Dank schon mal im Voraus,
Jan
|
|
|
11.05.2010, 16:44
Beitrag #2
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Shared Variables - Kommunikationsprobleme im Netzwerk
Hast Du in einem Rechner zwei aktive Netzwerkkarten? Wenn ja, dann liegt es daran. Das Problem hatte ich auch schon.
Wenn nicht, dann lad' doch mal Dein Bsp. hoch. Irgendwas wird da wohl falsch synchronisiert, d.h. Du liest schon, bevor Du was reingeschrieben hast.
Gruß Markus
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
11.05.2010, 23:47
Beitrag #3
|
Ruthenium-Jan
LVF-Grünschnabel
Beiträge: 29
Registriert seit: Feb 2010
8.2; 9.0,11,12
2009
DE_EN
106xx
Deutschland
|
Shared Variables - Kommunikationsprobleme im Netzwerk
Das mit den Netzwerkkarten werde ich mal überprüfen müssen, aber ich glaube nicht, dass das Problem ist.
Wenn doch womit hängt das zusammen? Teilen die Netzwerkkarten die Daten unter sich auf und versenden sie unregelmäßig?
Ich bin mir ziemlich sicher, dass du das Beispiel nicht sehen willst, da es extrem groß und unübersichtlich ist. Ich würde schätzen, dass das ganze Programm nicht auf eine 4x4m Wand passt. Man kannt sich dadrin wirklich verlaufen
Hättest du vllt einen Tipp wie ich die fehlerrelevanten Stellen isolieren könnte, um so ein handhabbares Beispiel zu haben?
|
|
|
12.05.2010, 00:12
Beitrag #4
|
|
|
12.05.2010, 06:38
Beitrag #5
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Shared Variables - Kommunikationsprobleme im Netzwerk
Als ich meine 2. Netzwerkkarte im Rechner deaktiviert hatte, hat es funktioniert. Das steht auch irgendwo auf der NI-Homepage und das hatte mir auch ein Mitarbeiter von NI bestätigt, dass es mit 2 Netzwerkkarten nicht wirklich klappt.
Wenn Du Deine zweite Netzwerkkarte deaktiviert hast, dann solltest Du mit Hilfe einer "Hilfs-SV" (boolean) eine Synchronisierung erstellen, also z.B. setzt Du die boolsche Hilfs-SV auf True, wenn Du lesen möchtest. Auf Deinem anderen Rechner fragst Du diese Variable ab und schreibst (wenn sie "True" ist) in einem Case in die eigentliche Variable, die Du möchtest. Im Gegenzug kannst Du es auch so machen, dass Du erst lesen kannst, wenn Du durch eine andere Hilfs-SV ein True bekommst, die Dir mitteilt, dass jetzt gültige Daten anstehen.
Mehr kann ich Dir nicht sagen....
Gruß Markus
' schrieb:Das mit den Netzwerkkarten werde ich mal überprüfen müssen, aber ich glaube nicht, dass das Problem ist.
Wenn doch womit hängt das zusammen? Teilen die Netzwerkkarten die Daten unter sich auf und versenden sie unregelmäßig?
Ich bin mir ziemlich sicher, dass du das Beispiel nicht sehen willst, da es extrem groß und unübersichtlich ist. Ich würde schätzen, dass das ganze Programm nicht auf eine 4x4m Wand passt. Man kannt sich dadrin wirklich verlaufen
Hättest du vllt einen Tipp wie ich die fehlerrelevanten Stellen isolieren könnte, um so ein handhabbares Beispiel zu haben?
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
| |