10.01.2011, 11:08
(Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2011 11:10 von Schü.)
Beitrag #1
|
|
|
10.01.2011, 11:33
(Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2011 11:33 von Y-P.)
Beitrag #2
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
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 !!
--------------------------------------------------------------------------
|
|
|
10.01.2011, 11:44
Beitrag #3
|
|
|
10.01.2011, 14:41
(Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2011 14:52 von Schü.)
Beitrag #4
|
Schü
LVF-Gelegenheitsschreiber
Beiträge: 68
Registriert seit: Sep 2010
2010 Student, 2010, 2012 SP1
2010
DE_EN
08427
Deutschland
|
LabView 8.6
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.
Liebe Grüße vom Schü
|
|
|
10.01.2011, 15:15
Beitrag #5
|
Martin Heller
LVF-Stammgast
Beiträge: 250
Registriert seit: Feb 2010
2011 SP1
2008
EN
5232
Schweiz
|
LabView 8.6
hmmm, du hast einwenig zuviel in deinem Code!
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ü.)
Beitrag #6
|
Schü
LVF-Gelegenheitsschreiber
Beiträge: 68
Registriert seit: Sep 2010
2010 Student, 2010, 2012 SP1
2010
DE_EN
08427
Deutschland
|
LabView 8.6
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.
|
|
|
11.01.2011, 08:53
(Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2011 08:59 von GerdW.)
Beitrag #7
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
LabView 8.6
Hallo Schü,
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.
|
|
|
| |