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!
10.01.2011, 11:08 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2011 11:10 von Schü.)
Guten Morgen alle miteinander,
wollte gerade weiter an meinem Projekt arbeiten, doch LabView lässt mich nicht. Sobald ich ein VI öffne und es bearbeiten will (Element hinzufügen oder löschen) bringt LabView einen durchbrochenen Pfeil, als wäre ein Fehler im Programm (selbst wenn ich nur ein Anzeigeelement hinzugefügt habe). Klick ich nun auf den Pfeil, so stürzt LabView ab und es kommt die typische Windows Fehlermeldung.
Es betrifft allerdings nur eine einzige Datei. Diese hab ich jedoch seit 23.12.2010 nicht mehr angerührt und zu dem damaligen Zeitpunkt funktionierte sie auch noch einwandfrei.
Ich hatte das Problem schon öfters, jedoch ist es so spontan wie es erschienen ist auch wieder verschwunden. Also hab ich nie wirklich die Wurzel des Problemes behoben.
Weiß einer woher das Problem kommen? Oder eine Lösung dazu?
Liebe Grüße vom Schü
Anzeige
10.01.2011, 11:33 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2011 11:33 von Y-P.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
LabView 8.6
Hab' ich noch nie gehört, dass ein VI beim Öffnen mal geht und mal nicht. Was sein könnte, ist dass ein SubVI auf dem Netzwerk liegt und Du nicht mit dem Netzwerk verbunden warst, als es nicht ging.
Gruß Markus
EDIT: Der Thementitel ist auch nicht so der Knaller.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Nein es liegen alle Daten an, allerdings greife ich auf eine DLL in meinem Programm zu. Wahrscheinlich liegt es daran, denn immerhin bringt er den Fehler beim Starten (ohne dass ich Änderungen vorgenommen hab - worauf das obige Problem beruht) "Ende der Datei".
Offtopci: Und zu dem Titel ... nunja. Erst hab ich überlegt wie ichs nennen soll, dann kam mir "LabView 8.8 am Dauerabstürzen" in den Sinn, fand ich aber nicht gut. Während dessen hab ich mich weiter aufgeregt und nur LabView 8.6 geschrieben. Dann hab ich wieder alles vergessen und meinen Beitrag gespeichert
10.01.2011, 14:41 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2011 14:52 von Schü.)
Man möge mir meinen Doppelpost entschuldigen (sofern es denn einer ist), aber ich habe das Rätsel um die Dauerhaften Abstürze gelöst. Ich habe eine neuere DLL eingebunden, bei welcher eine Funktion in zwei Funktionen aufgeteilt wurde. Dadurch war die alte Funktion als Methode nicht mehr auswählbar - im Methodenknoten also grau. Das war dann auch der Fehler. Dass LabView deswegen jedoch immer abgestürzt ist, kann ich mir nicht als normal vorstellen. Gleiches trat im Übrigen auch auf, als die entsprechende Methode gewählt war, allerdings ein Eingang nicht belegt war.
Also folgender Vorgang - neue DLL schon eingebunden:
1.
Startstand: Programm läuft einwandfrei - Ich lösche eine schon vorhandene Leitung zur entsprechenden Methode.
2.
Es wird ein Fehler angezeigt, was auch plausibel ist, da ein Eingang nicht belegt ist.
3.
Will man sich den Fehler anzeigen lassen, stürzt LabView grundlos ab - und ich war stundenlang auf der Fehlersuche - Endstand
Ist das jetzt ein Einzelfehler durch eine fehlerhafte Installation / einen fehlenden Patch? Oder kann das mit in die Bugliste.
Wenn du nur die "EP_IO_2_6" Werte bearbeiten möchtest, muss du diese nicht zuerst zusammenfügen. am einfachsten gleich in "double" ändern und dann mit dem Wert von Unten ( x 10) subtrahieren. Amschluss dann der Wert (Pegel) hinzufügen.
Beim Indexarray brauchst du nicht immer den Index anzugeben, es ist fortlaufend.
Um die Leistung zu steigern: "In Place Element Structure" in Memory Control verwenden.
11.01.2011, 08:37 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2011 09:04 von Schü.)
Danke für die informative Antwort Martin. Allerdings ist das Indizieren notwendig, da die Parameter notfalls unterschiedliche Multiplikatoren benötigen (hab das auch schon mal nachgefragt, da es mir unsinnig erschien alles zu indizieren und mit 1 zu multiplizieren). Es kann also vorkommen dass bei einigen Änderungen plötzlich der Wert auf Index 2 mit 0,4 und der Wert auf den restlichen Indizes (?) mit 1 multipliziert.
Es bringt aber dennoch eine Leistungssteierung, wenn ich die "In Place Element Structure" nutze und um die gesamte "Indizierung" herumlege, oder?
Morgendliche Grüße vom Schü
Edit: Ich versteh noch nicht so ganz, wie ich diese Structur nutzen soll. Reicht es wenn ich lediglich den Rahmen darum zieh, oder muss ich über [Rechtsklick > 'Array indizieren / Element ersetzen' hinzufügen] gehen und dann alle Berechnungen durchführen lassen? Denn eigentlich will ich ja nur die Teilarrays mit einem Faktor multiplizieren, aber bei der Array-Funktion der Struktur muss ich ja Zeile und Spalte angeben und dadurch erhalte ich doch nur ein einzelnes Element.
Anzeige
11.01.2011, 08:53 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2011 08:59 von GerdW.)
Zitat:Dass LabView deswegen jedoch immer abgestürzt ist, kann ich mir nicht als normal vorstellen.
Ehm, du rufst eine .NET-Methode auf, die nicht mehr existiert und wunderst dich über Abstürze? Du wunderst dich, dass LabVIEW einen "broken arrow" anzeigt?
Bei einem .NET-Aufruf kann LabVIEW erst bei einem Neukompilieren feststellen, ob die Methode verfügbar ist oder nicht. Lädst du ein VI (mit der gleichen LV-Version wie beim Speichern), wird nicht neukompiliert - das VI wird als "lauffähig" übernommen. Erst beim Aufruf fällt die fehlende Methode auf - und das VI (bzw. LV) stürzt ab. Sobald du am VI etwas änderst (z.B. einen Indikator hinzufügst), wird neukompiliert: wow, der Fehler fällt auf und das VI ist nicht mehr lauffähig...
Zum Indizieren:
Wenn dein Array immer 8 Zeilen hat, könntest du auch eine FOR-Schleife mit Autoindexing benutzen. Den Faktor dann als Array mit 8 Werte bereitstellen.