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 gerade einige Stunden verbracht, um in einer sehr großen Applikation einen Fehler zu finden, nämlich ein nicht initialisiertes Schieberegister einer While-Schleife.
Da ich in der Applikation "zu hause" war, und nach Ausschluss aller anderen Fehlermöglichkeiten nur noch so etwas übrigblieb, hatte ich den Fehler glücklicherweise in nur einigen Stunden gefunden. Da stellte sich mir allerdings die Frage, ob es eine Möglichkeit (in LV 8.0) gibt, uninitialisierte Schieberegister zu finden, oder einem VI per Voreinstellung beizubringen, dass es keine haben darf.
ich habe gerade einige Stunden verbracht, um in einer sehr großen Applikation einen Fehler zu finden, nämlich ein nicht initialisiertes Schieberegister einer While-Schleife.
Da ich in der Applikation "zu hause" war, und nach Ausschluss aller anderen Fehlermöglichkeiten nur noch so etwas übrigblieb, hatte ich den Fehler glücklicherweise in nur einigen Stunden gefunden. Da stellte sich mir allerdings die Frage, ob es eine Möglichkeit (in LV 8.0) gibt, uninitialisierte Schieberegister zu finden,
Ich könnte mir vorstellen, dass man da etwas per VI-Scripting machen kann. Ist aber in LabVIEW 8.0 nicht offiziell freischaltbar und auch nicht nachladbar. Also IMHO nein.
(03.07.2013 16:46 )Trinitatis schrieb: oder einem VI per Voreinstellung beizubringen, dass es keine haben darf.
Nein, geht nicht. In einem FGV will ich das extra uninitialisierte Schieberegister haben!!!
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!
Zitat:eine Möglichkeit ... gibt, uninitialisierte Schieberegister zu finden
hört sich an, als wenn der VI Analyzer da helfen könnte... Da ich ihn nicht benutze, kann ich aber nicht sagen, ob dieser Test schon enthalten ist. Aber auf forum.ni.com gibt es Diskussionen, wie man weitere/eigene Tests hinzufügen kann!
Für LV8 wirst du da aber nichts bekommen. Dir bleibt ja immer noch, die VIs mit LV2011 zu laden, dort zu suchen und dir die Fundstellen zu merken, bevor du sie mit LV8 dann bearbeitest
Da du LV 2011 zur Hand hast kannst es ja trotzdem öffnen in einer Version mit Scripting. Hat Gerd mittlerweile schon geschrieben. Ich hab in der Zeit mal nen VI gebastelt was dir in allen VIs eines Pfades nach UIRs sucht und wenn er diese findet das Blockdiagramm anzeigt und die Whileschleife an dem das UIR ist anzeigt.
vielen Dank - funktioniert einwandfrei.
Da ich in LV2011 noch nicht soo viel gemacht habe und mich in deinem Beispiel schon die Farben verwirren, habe ich noch ein paar mgl.-weise blöde Fragen:
1.) Woher weiß man, dass der zu suchende Klassenname "LeftShiftRegister" heißt
2.) Wie kommt man zur Zielklassenkonstante "LinkesSchieberegister" bzw. "WhileSchleife" ?
3.) Ab wann werden Eigenschaftsknoten hellblau oder besser gesagt siemens-schriftzugfarben?
1.) die Klassennamen kannst über das Klassenauswahlkontextmenü raussuchen. Die Bezeichnungen werden genau gleich geschrieben.
2.) Da ich LeftShiftRegister suche mit dem Traverse VI sind die zurück gegebenen GObjects zwingend von der Klasse LeftShiftRegister. Somit kann ich die auch einfach darauf casten mit "To More Specific Class". Da ShiftRegister nur an Whileschleifen gehen muss der Owner des Shiftregisters entsprechend vom Klassentyp "WhileLoop" sein. Sobald du "To More Specific Class" platzierst und eine Konstante an "target class" erstellst kannst du einfach draufklicken und dort die korrekte Klassen auswählen.
3.) Hellblau wird der Knoten sobald du öffentliche Scriptingeigenschaften ausgewählt hast.
ich hatte VI scripting bei mir nicht aktiviert - deshalb die dusselige Frage nach der Klassenbezeichnerkostante. Jetzt bietet LV mir diese Konstante auch an.
Aber nochmal zur Frage mit der Stringübergabe LeftShiftRegister. In meiner deutschen LV-Version heißt die Klassenbezeichnerkonstante "LinkesSchieberegister". Der String am Eingang des Traverse-VIs muss aber "LeftShiftRegister" heißen. Woher weiß man das, wenn man es sich nicht (wie hier) denken kann.