LabVIEWForum.de
SubVi in TopLevelVI einfügen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA)
+---- Thema: SubVi in TopLevelVI einfügen (/Thread-SubVi-in-TopLevelVI-einfuegen)

Seiten: 1 2


RE: SubVi in TopLevelVI einfügen - cRio - 10.01.2012 09:59

Danke, genau das war das Problem, die Schleifen im SubVI. Und eben die ShiftRegister durch FeedbackNodes ersetzen, dann rennt es!


RE: SubVi in TopLevelVI einfügen - cRio - 13.01.2012 17:22

zu früh gefreut...

Hallo miteinander,
ich habe mir ein VI gebaut, in dem mehrere, separate Schleifen abgearbeitet werden. Grundkonstruktion ist immer die gleiche, in der While-Schleife ist eine Sequenz, wo wiederum die erste Sequenz den LoopTimer enthält. In den folgenden Sequenzen kommt der Code der Schleife.
Da das ganze zuletzt wirklich unübersichtlich war, habe ich je einen Schleifeninhalt in ein extra VI gepackt (ohne While Schleife) und die ShiftRegister durch Rückkopplungsknoten ersetzt. Folge: es funktioniert nicht mehr.
Grundsätzlich ist jedes ShiftRegister durch einen Rückkopplungsknoten ersetzbar und umgekehrt, aber scheinbar gibt es speziell beim FPGA von Feinheiten zu beachten. Die R-Knoten sind auch initialisiert und verzögern um 1. Auf was muss man noch achten, oder woran könnte es liegen?

Statt der R-Knoten habe ich auch schon versucht, das ShiftRegister nach "aussen" zu ziehen, (siehe Bilder) aber das war leider auch nicht des Rätsels Lösung.
Hab mal ein Beispiel gemacht um das mit Bildern zu erklären, das echte Programm ist größer.

Grüße


RE: SubVi in TopLevelVI einfügen - RoKi0815 - 14.05.2012 15:34

Hallo,
da ich mich momentan auch mit FPGA und SubVIs beschäftige, bin ich auf deinen Beitrag gestoßen.
Es könnte noch daran liegen, dass das SubVI als "reentrant" eingestellt ist. Damit wird bei jedem Aufruf das SubVI neu "initialisiert". Solltest du im SubVI also rückkopplungsknoten haben, musst du den reentrant Modus ausschalten. Das kannst du unter den VI Eigenschaften und da unter Execution.
Vielleicht hilft es ja...
[attachment=39802]