LabVIEWForum.de - Anzeigeproblem

LabVIEWForum.de

Normale Version: Anzeigeproblem
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe das angehängte VI für den FPGA erzeugt und lasse es einmal mit der Debugeinstellung "Execute VI on Development Computer with Simulated I/O" laufen und einmal mit "Execute VI on FPGA Target".
Wenn ich es im Simulationsmodus betreibe, bekomme ich in meinem Status-Anzeigeelement - wie erwartet - die Zahlen 1.... 2.... 3.... 1.... 2.... usw. mit dem eingestellten Delay ( hier 300ms ) angezeigt. Wenn ich das VI aber auf dem FPGA laufen lasse, dann bekomme ich nur eine 3 angezeigt.

Dieser Effekt ist von dem Count(mSec)-Wert unabhängig, so dass ich glaube, einen grundsätzlichen Denkfehler zu begehen.

Meine Frage ist nun: Warum funktioniert es im FPGA Modus nicht , bzw. was muss ich machen, damit es funktioniert ?

Die Grundidee hinter diesem kleinen VI ist, dass ich in einem größeren VI eine Anzeige haben möchte, die zeigt in welchem Teil der Sequenz ich mich gerade befinde. Für andere Lösungsansätze bin ich auch dankbar.

Merci vorab
Peter

FPGA: NI PCIe 7852R Virtex 5

[attachment=37727]
Hallo,

mittlerweile habe ich das Verhalten verstanden.

Es wird 3x der "Loop Timer" verwendet und nicht "Wait".
Die 3 "Loop Timer" speichern beim ersten Durchlauf die aktuelle Zeit und machen sofort weiter.
Da zwischen den 3 "Loop Timern" kaum Zeit vergeht, haben alle "loop Timer" nahezu identische Basiszeiten.

Wenn nun der zweite Durchlauf beginnt, muss der erste "Loop Timer" warten, bis die gewünschte Intervallzeit erreicht ist ( hier 300 ms ). Während dieser Zeit wird die "3" im Status-Ausgabefeld angezeigt.
Ist nun der erste "Loop Timer" mit Warten fertig, so wird ganz kurz die 1 angezeigt ( theoretisch zumindest ) und dann kommt der mittlere "Loop Timer" dran. Dieser wartet aber nicht 300 ms ( das war mein Denkfehler !!! ) sondern macht quasi gleich weiter, da der erste "Loop Timer" bereits die erforderliche Zeit gewartet hat. D.h. die "2" wird angezeigt und die "1" im Status-Ausgabefeld überschrieben. D.h. die "1" ist quasi nicht zu sehen.
Das gleiche gilt für die "2", die gleich von der "3" überschrieben wird.
Dann geht es wieder von vorne los und der erste "Loop Timer" wartet wieder knapp 300 ms und während dieser Zeit ist die "3" zu sehen.

Wahrscheinlich ist es einfach ein Effekt der Simulation, die natürlich ein anderes Timing-Verhalten hat, dass da trotzdem die Sequenz 1... 2... 3... 1... 2... usw. im Status-Ausgabefeld erscheint. Davon habe ich mich reinlegen lassen.

Danke an alle, die darüber gegrübelt haben

Peter
Referenz-URLs