Home » LVUG » LVUG - Technische Fragen » Uebertragungsfehler im Datenfluss von Labview
Uebertragungsfehler im Datenfluss von Labview [message #661] |
Wed, 07 July 2004 18:08 |
Maria Marinova
Messages: 5 Registered: July 2004 Location: Frankfurt/Main, Institut ...
|
occasional visitor |
From: *ikf.physik.uni-frankfurt.de
|
|
Hallo,
<Hintergrund>
Wir, eine Arbeitsgruppe im Institut fuer Kernphysik Frankfurt/Main, beschreiben und lesen ueber Labview eine speziell hergestellte Karte, die einen internen Speicher hat, und zur digitalen Auslese von eingehenden analogen Signalen dient. Nun testen wir die Karte.
<Umgebung>
Red Hat Linux 7.2, Kernel 2.4.20, Labview 6i
<Problem>
Ich habe eine Sequenz, die zu Beginn ein 1D U16-Array 0,1,2,..,7 erhaelt.
Wenn ich dieses Array auf drei verschiedene Weisen in die Sequenz einliefere, kommt am Ende ein anderes Ergebnis heraus.
1) konstantes Array benutzen;
2) Array als Output vom VI "Find_Cards";
3) Das Output vom VI "Find_Cards" erstmal in eine lokale Variable speichern, dann die lokale Variable lesen.
Die 2) funktionierte ok, dann geaendert zu 3), funktionerte es teilweise (Ergebnis teilweise richtig), dann zurueckgeaendert zu 2) funktionierte es nicht mehr, und 1) hat nie funktioniert.
Merkwuerdig: Zwei VIs, die IDENTISCH sind, und beide dieses Array ueber Variante 2) bekommen => das eine VI funktioniert teilweise, und das andere nicht.
Sie koennen sich die VIs anschauen, aber leider nicht testen, weil sie auf der speziellen Karte zugeschnitten sind. Dennoch: alle uebrigen Routinen sind getestet und funktionieren, nur hier liegt der Fehler.
Ich hoffe, Sie koennen sich ein Bild machen, und mir weiterhelfen, denn ich muss das VI fuer weitere Tests wieder zum Laufen bringen.
Bin dankbar fuer jeden Hinweis.
Gruesse,
Maria Marinova
|
|
|
Globale Variablen in LV [message #665 is a reply to message #661] |
Fri, 09 July 2004 11:34 |
|
Brand
Messages: 180 Registered: January 2004 Location: GSI - SB2 2.256
|
first-grade participant |
From: depc154.gsi.de
|
|
Hallo Frau Marinova,
ich denke, dass Ihre Problem durch Timing-Probleme verursacht werden. Bei der Benutzung von lokalen und globalen Variablen werden von der LV-Engine Kopien angelegt. Dabei vergeht natürlich Zeit.
Wenn nun Ihre Sequence schneller abgearbeitet wird als die Kopien der Daten der lokalen/globalen Variablen, greifen Sie möglicherweise auf alte Daten zu.
Sie können diese Probleme durch Benutzen von "Functional Global Variables" vermeiden. Ich habe als Beispiel mal ein "Global Stop" angehängt. Diese Art garantiert wechselseitigen Zugriffsschutz und immer aktuelle Daten (natürlich nur solange das VI nicht reentrant ist).
Gruß Holger
[Updated on: Fri, 09 July 2004 11:34] Report message to a moderator
|
|
|
Goto Forum:
Current Time: Wed Dec 04 23:45:01 CET 2024
Total time taken to generate the page: 0.00666 seconds
|