LabVIEWForum.de - Initialisieren nach abspeichern in Excel

LabVIEWForum.de

Normale Version: Initialisieren nach abspeichern in Excel
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Zusammen

Zitat:LabVIEW kompensiert da überhaupt nichts: wenn euer Programm langsam läuft, dann wegen ineffizienter Programmierung!

Ja das kann gut möglich sein, aber wird sind ratlos wie wir unseren Programmiercode schneller und effizienter machen können. Liegt es an der grundsätzlichen Problematik 8 identische dennoch unabhängig von einander arbeiten Programmteile parallel abarbeiten zulassen... Oder dürfen wir uns nicht aus dies versteifen und müssen einen anderen Lösungsansatz suchen.???

Zitat:Schon mal gehört, dass man gleiche Abläufe in subVI packen kann und in einer Schleife aufrufen kann?
Die identischen Programmteil haben wir ja in SubVi (Reentrant) gepackt. "in einer Schleife aufrufen" machen wir dies nicht?

Zitat:Etliche eurer "Puffer-Zähler" ließen sich mit einem Q&R wesentlich effizienter erreichen...
Wie wäre dies möglich??? En kleiner Tipp wäre nett..

Das wäre kein Problem die Daten nur in ein Excel Blatt zu schreiben..Nur die Verarbeitung der Daten in einem Array müssen wir nochmal überdenken, da die Arrays in der realität unterschiedlich schnell befüllt werden.....



Da das Programm für eine 8-fache parallele Verarbeitung ungeeignet ist, haben wir uns überlegt, einen Verarbeitung mit Hilfe der jeweiligen Triggersignale anzusteuern.

Der Nachteil ist das sich der kopmlette Ablauf verlangsamt und nur noch ein Taster gedrückt werden kann nicht mehr 2 oder 3 gleichzeitig.

Bsp.Beim Digitaltrigger vom ersten Taster zeichnet der Verarbeitungsteil Werte für den ersten Taster auf. Kommt das Triggersignal für den zweiten Taster, zeichnet das selbe Programm Werte für den zweiten Taster auf. Die Struktur ist ähnlich einer MUX und DMUX. (Eine Verarbeitungsteil für 8 Taster welcher die Daten nicht parralel sondern nach der reihe verarbeitet)

Wäre dies eine Möglichkeit? Kann uns jemand einen Tipp geben wie wir das umsetzten da wir im Example Finder kein passendes Beispiel gefunden haben.

MfG JackBlack
Hallo JackBlack,

mal ein paar Vereinfachungen:
- In Stufe1.vi zerlegt ihr euer Datenarray recht umständlich in Zeilen/Spalten (warum nicht einfach per IndexArray?), um dann einzelne Werte in den Einzelspalten zu ersetzen und diese Spalten dann wieder zu einem 2D-Array zusammenzusetzen? Wozu das alles? Warum nicht direkt Einzelwerte im 2D-Array ersetzen? ReplaceArraySubset erlaubt das Anschließen beider Indizes bei einem 2D-Array!
- Eure 4 "Max/Min NC/NO" lassen sich zu einem einzigen (reentranten) subVI zusammenfassen:
[attachment=32613]
- Zähler mit Q&R:
[attachment=32614]
- Wenn ihr das Excel-SetCellValue anpasst, könntet ihr auch mit einem DBL-2D-Array arbeiten und das Umwandeln nach String würde entfallen...
- Wenn ihr einen größeren Range auf einmal an Excel übergebt, könntet ihr euch (mind.) eine FOR-Schleife einsparen (und jede Menge Einzel-ActiveX-Aufrufe durch einen einzigen ersetzen)!
- Das, was ihr für einen Taster realisiert habt, habt ihr danach einfach 8mal kopiert und nebeneinander gepackt. Warum hier kein subVI?
Hallo zusammen,

Erst mal großes Dankeschön an Gerd W.!!!

Zitat:- Wenn ihr das Excel-SetCellValue anpasst, könntet ihr auch mit einem DBL-2D-Array arbeiten und das Umwandeln nach String würde entfallen...

Die Umwandlung in String haben wir aus dem Grund gemacht, damit wir in das Array bzw.
in die Excel Tabelle in Felder das Wort "OK" schreiben können.

Wir haben nun einige der Änderungsvorschläge realisiert.


Zitat:- Zähler mit Q&R:

Wir erkennen die Vorteile der andern Zählervariante nicht. Ist er schneller in der Abarbeitung??
[Bild: attachment.php?aid=32614]

Wenn ein Vi als reentrant erstellt worden ist, sind dann die im ihn enthaltenen SubVI
´s automatisch reentrant, oder müssen dies extra eingestellt werden??

Was geschieht mit Programmteilen (SubVi´s) die nicht aktiv angesprochen werden, wie in unserm Fall der Digitrigger, dessen Abarbeitung erst beginnt wenn ein Steuersignal (Boolescher Wert) anliegt. Wird dieser trotzdem aufgerufen??


Wie ist es eigentlich mit der Idee des MUX und DMUX, ist das Grundsätzlich eine
schlechte Idee??

Das Programm ist nun schon ein bisschen schneller geworden, dennoch leider nicht ausreichend.

Zitat:- Wenn ihr einen größeren Range auf einmal an Excel übergebt, könntet ihr euch (mind.) eine FOR-Schleife einsparen (und jede Menge Einzel-ActiveX-Aufrufe durch einen einzigen ersetzen)

Sind leider unsere Vorgabe in 8 verschiede Tabellen zu schreiben.


MFG JackBlack
Hallo JackBlack,

Zitat:Wir erkennen die Vorteile der andern Zählervariante nicht.
Auf alle Fälle ist meine Variante besser aufgeräumt und leichter zu "lesen" Smile

Zitat:Sind leider unsere Vorgabe in 8 verschiede Tabellen zu schreiben.
Das bestreite ich ja nicht. Aber müsst ihr in jedes dieser 8 Sheets jeden Einzelwert auch wirklich einzeln eintragen? Man kann auch gleich komplette 2D-Arrays in einem ActiveX-Befehl übertragen...
Seiten: 1 2
Referenz-URLs