Saturday 14 October 2017

Gleitender Durchschnitt Mit Labview


Berechnen des gleitenden Durchschnitts Dieses VI berechnet und zeigt den gleitenden Durchschnitt mit einer vorgewählten Zahl an. Zunächst initialisiert das VI zwei Schieberegister. Das obere Schieberegister wird mit einem Element initialisiert und fügt dann kontinuierlich den vorherigen Wert mit dem neuen Wert hinzu. Dieses Schieberegister hält die Summe der letzten x Messungen. Nach dem Teilen der Ergebnisse der Add-Funktion mit dem vorgewählten Wert berechnet das VI den gleitenden Mittelwert. Das untere Schieberegister enthält ein Array mit der Dimension Average. Dieses Schieberegister hält alle Werte der Messung. Die Ersatzfunktion ersetzt nach jeder Schleife den neuen Wert. Dieses VI ist sehr effizient und schnell, weil es die replace-Element-Funktion innerhalb der while-Schleife verwendet, und es initialisiert das Array, bevor es die Schleife eintritt. Dieses VI wurde in LabVIEW 6.1 erstellt. Lesezeichen amp ShareSimple Moving Average VI In der Regel, wenn Leute über einen Moving Average sprechen, bedeuten sie den Punkt N mit dem Durchschnitt der M Punkte um den Punkt N. Angenommen, ich habe 100 Punkte, deren Werte 1, 2, 3. 100 sind, und das möchte ich Tun Sie einen 5-Punkt Moving Average. Das erste, was zu beachten ist, dass es einen gleitenden Durchschnitt des dritten Punktes ist der Durchschnitt von 1, 2, 3, 4, 5 3. Der Durchschnitt des vierten Punktes ist der Durchschnitt von 2, 3, 4, 5, 6 4. Dies ist jedoch vielleicht ein zu einfaches Beispiel. Wie wäre es mit dem Durchschnitt einer Step-Funktion, 0 von 1 bis 10, dann 20 danach. Wieder, werfen Punkte 1 und 2. Der Mittelwert der Punkte 1-5 (in Punkt 3 gehen) 0 (da alle Punkte sind 0). Ähnlich wie bei Punkt 4, 5, 6,7 und 8. Jedoch ist Punkt 9 der Durchschnitt von 0, 0, 0, 0, 20 4. Wie wäre es mit Punkt 10 Nun, es sollte der Durchschnitt von 0, 0, 0 sein , 20, 20 8, aber haben Sie daran gedacht, nicht überschreiben Punkt 9 Hmm, scheint, wie müssen wir zwei Kopien der Array (die in der Regel teuer ist) zu halten. Es gibt mehrere Möglichkeiten, dies zu vermeiden. Verstehen Sie, wo das Problem im vorigen Absatz auftritt Wenn nicht, versuchen Sie dies mit Bleistift und Papier (oder versuchen Sie es in LabVIEW Codierung). Ill geben Ihnen die Antwort, so dass Sie überprüfen können - der gleitende Durchschnitt der Schrittfunktion ist -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20 , 20. -, - (wobei - die leeren Werte an den Enden des Arrays sind, die Punkte, die Sie nicht genügend Nachbarn haben). P. S. - es würde mich nicht wundern, wenn es werent eine LabVIEW-Funktion, die dies für Sie tut. Aber wenn Sie LabVIEW lernen und ein besseres Verständnis davon haben wollen, wie die Algorithmen, die Sie in Arbeit stecken, es nie schaden, zu spielen und es selbst auszuprobieren. Sie könnten sogar kommen mit einer Verbesserung (mehrere von uns haben das getan.). Dank für die Sensibilisierung in Bezug auf die feineren Punkte der Moving Average Methode. Dieses ist schließlich ein statistisches Werkzeug, das hilft, zu sehen, was Sie die Abstraktion der Distraktoren sehen möchten. So ist die Methode verpflichtet, einige Defizite in einigen Situationen oder Kontext haben. Aber ich denke, seine perfekt geeignet für meine Art dof Datenlogging - es ist ein Druck-oder Temperatur-oder Flow-Signal - und ich erwerben bei etwas wie 400 Proben s und verwenden Sie dann eine gemittelte einzelne Probe. Und der Prozess ist ziemlich langsam, da mein Haupt-Code läuft bei nicht mehr als 20 Hz. Also, wenn ich ein 5 Beispiel Mähen durchschnittlich, meine erste Probe kommt 5 x 50ms später, dann für alle 50ms bekomme ich eine gültige Probe. Grundsätzlich bin ich mehr auf Trends und nicht vor Ort Werte betroffen. In diesem gibt es wenig Sorgen über verpasste Proben oder Schurkenwerte. Natürlich würde ich nicht wagen, dies für eine Step-Funktion zu verwenden. Das wäre grausam. Raghunathan LV2012 zur Automatisierung von Hydraulikprüfständen. Nachricht 4 von 15 (813 Ansichten) Re: Simple Moving Average VI 03-30-2016 11:58 PM Es gibt mittleres ptbypt welches das gleiche macht. Sie können den Code überprüfen, wenn Sie möchten. Ein großer Fehler in Ihrem Code ist die Tatsache, dass Sie ständig wachsen und schrumpfen eine bestehende Array. Sie sollten versuchen, eine Lösung zu finden, die an Ort und Stelle auf einem Array mit fester Größe arbeitet. Mai-Beispiele wurden auf dem Forum im Laufe der Jahre bekannt (siehe hee zum Beispiel). Das Mittel interessiert nicht, wenn die Elemente außer der Ordnung sind, also können Sie das älteste Element einfach ersetzen, egal wo es lokalisiert wird. Außerdem wird das neue Element dem Anfang eines vorhandenen Arrays vorangestellt, das immer viel teurer ist als das Anhängen an das Ende. Kann Ihre Probengröße nicht ändern, sobald das VI ausgeführt wird. Ihr Schieberegister sollte mit einem leeren Array initialisiert werden, kein Array, das bereits ein einzelnes Element enthält, das Null ist. (Diese zusätzliche Null gibt falsche Mittelwerte) Ihr Code sollte in ein subVI gemacht werden, so dass es wieder verwendet werden kann (ähnlich wie die ptbypt-Version). Ihr VI kann nie gestoppt werden, nur abgebrochen. Gute Optimierungstipps. Der Punkt bei der Initialisierung mit Zero hat mich verpasst. Und ja der Benutzer sollte nicht ändern Sie die Stichprobengröße, sobald es läuft. Schließlich werde ich ein SubVI machen und behandeln Dinge wie Stoppen etc .. Was den Punkt der Vorhersage als Anfügen des neuen Wertes auf Array, vielleicht gibt es eine Performance-Strafe, aber angesichts der Größe meiner Array Ich bin mir sicher, dass die CPU kümmert sich nicht anwyay . Aber für mich muss es so sein, wie ich die endgültigen Daten für die Darstellung eines Tendenz eines physikalischen Parameter. Dank für Ihre Zeit. Raghunathan LV2012 zur Automatisierung von Hydraulikprüfständen. Dank für die Sensibilisierung in Bezug auf die feineren Punkte der Moving Average Methode. Dieses ist schließlich ein statistisches Werkzeug, das hilft, zu sehen, was Sie die Abstraktion der Distraktoren sehen möchten. So ist die Methode verpflichtet, einige Defizite in einigen Situationen oder Kontext haben. Aber ich denke, seine perfekt geeignet für meine Art dof Datenlogging - es ist ein Druck-oder Temperatur-oder Flow-Signal - und ich erwerben bei etwas wie 400 Proben s und verwenden Sie dann eine gemittelte einzelne Probe. Und der Prozess ist ziemlich langsam, da mein Haupt-Code läuft bei nicht mehr als 20 Hz. Also, wenn ich ein 5 Beispiel Mähen durchschnittlich, meine erste Probe kommt 5 x 50ms später, dann für alle 50ms bekomme ich eine gültige Probe. Aha So wollen Sie nicht einen gleitenden Durchschnitt, sondern nur einen einfachen Durchschnitt. Das ist viel einfacher. Heres die Idee (die funktioniert besser mit einem ProducerConsumer Design) - Sagen Sie, dass Sie bei 400Hz abtasten, wollen die Daten bei 400 Hz speichern (dh alle Daten auf Festplatte speichern), wollen aber bei 20 Hz anzeigen (weil Sie Trends, eine längere Zeitbasis usw. sehen wollen). Richten Sie Ihr AD-System, um 20 Samples bei 400 Hz zu sammeln (beachten Sie, können Sie N Kanäle zur gleichen Zeit sammeln, so dass Sie ein 2D-Array von Samples. Sie erhalten die Daten (bei 20 Hz) von der AD (so dass die Producer) , Enqueue es an den Verbraucher. Der Verbraucher beginnt mit dem Schreiben der Daten auf Festplatte (sollte nicht viel Zeit) Nun haben Sie ein 2D-Array - in einem For-Loop, auf einer Kanal-für-Kanal-Basis, durchschnittlich die 20 Punkte. Es ist zu beachten, dass dieses Schema (a) alle Daten verwendet, (b) handhabt Multi-Kanal-Daten mit aplomb (und, wenn Sie sind Aus dem Nahen Osten, wo sie wachsen, können Sie auch Ihre Daten mit einer saftigen Pflaume), und (c) können Sie sammeln Sie Ihre Daten aus dem AD-Gerät, speichern Sie Ihre Daten auf der Festplatte halten alle Punkte, und zeigen Sie Ihre Daten auf Den Bildschirm mit allen Ihren Punkten, sondern auch Mittelung zur Verbesserung der visuellen Signal-zu-Rausch-Verhältnis, alle ohne Datenverlust (Ive getan genau dies mit 24 Kanälen bei 1KHz, mit den Daten auf einem Remote-System genommen und an den PC geschickt Über TCPIP, so haben wir auch TCP-Verarbeitung in der Schleife). Willkommen in der spannenden Welt der Datenerfassung und - verarbeitung mit LabVIEW. Vertrauen Sie mir, dies ist ein wunderbares System für diese Art von Arbeit Basierend auf dem Feedback, das ich auf meinem ursprünglichen VI Ich habe die Moving Average Code in einem SubVI verfeinert. Ich habe es dann verwendet, um eine simulierte 10Channel-Daten Durchschnitt - nur um die Dinge einfach zu halten Ich sorgte dafür, dass alle10 Kanäle identische Daten. Man würde dann erwarten, den gleichen gleitenden Durchschnitt für alle 10 Kanäle zu erhalten. Ich bin überrascht, die kleine Varianz merke ich zwischen den Kanälen - im Allgemeinen sind sie in der Nähe, aber nicht genau. Und nur um den Prozess zu erklären, den ich versuche, habe ich auch ein XLS enclsoed. Woher kommt die Variation? Das unitialisierte Schieberegister im Sub VI. Raghunathan LV2012 zur Automatisierung von Hydraulikprüfständen. Missbrauch bei Moderator melden Missbrauch bei Moderator melden Nachricht 9 von 15 (716 Ansichten) Re: Simple Moving Average SInce Sie den subVI ein Skalar zu einer Zeit aufrufen, sind Sie nicht bekommen, was Sie wollen, weil das Schieberegister nur erinnert sich die letzten N Skalaren, egal aus welchem ​​Kanal es ist. Ihr Code ist noch sehr ineffizient und gewunden. (Zum Beispiel, warum Sie immer noch mit Insert in Array zu append (sowohl in der mani nad in der sub). (Sie könnten ein reenetrant subVI und eine parallele innerste FOR-Schleife verwenden, aber das scheint übermäßig kompliziert zu) Wenn Sie eine Nachricht 10 von 15 (700 Ansichten) MGI-Bibliothek MGI hat eine Bibliothek von VIs, die wir bei der Entwicklung von Kundenprojekten wiederverwenden Die Bibliothek wird als VIPM-Paket gespeichert, daher benötigen Sie den VI-Paket-Manager, um es zu installieren Einige der MGI-VIs hängen von anderen OpenG-Paketen ab Der Inhalt der MGI-Bibliothek wird durch das Erweitern der Elemente unterhalb der Array-Funktions-VIs überprüft MGI Durchschnittlich Dies ist ein polymorphes VI Dieses VI berechnet und gibt den Durchschnittswert des gegebenen Doubles zurück MGI Zentrierter gewichteter gleitender Durchschnitt Führt einen zentrierten gewichteten gleitenden Durchschnitt auf einem Array nach Größe und Gewichtung durch Werden. MGI Running Average PolyVI: Halten Sie die laufenden Mittelwerte für jeden der Eingabewerte. Infinite Impulse Response erfordert weniger Verarbeitung, aber es braucht unbegrenzte Zeit, um einen stationären Wert zu erreichen. Finite Impulse Reponse unterhält ein Array der angegebenen Größe, ist aber in der Lage, Ausgabe-Mittel. Dieses VI ist ein reentrant funktionale global. MGI Running Maximum Maximales laufendes Maximum. MGI Läuft Minimum Halten Sie ein laufendes Minimum effizient. MGI Interpolation 1D Array Extended Erweiterte Version von Interpolate 1D Array, die außerhalb der Array-Grenzen extrapolieren kann. Eine lineare Erweiterung, die auf dem ersten oder letzten Array-Element basiert, wird für außerhalb des Bereichs liegende Werte verwendet. MGI Threshold 1D Array Extended Eine erweiterte Version der Schwelle, die Fraktionsindizes außerhalb der Arraygrenzen erzeugen kann. Eine lineare Erweiterung, die auf dem ersten oder letzten Array-Element basiert, wird für außerhalb des Bereichs liegende Werte verwendet. MGI Berechnen von Spitzenmomenten Berechnen Sie Spitzenmomente für ein gleichmäßig abgetastetes Signal. 0. Moment ist die Fläche unter der Spitze, d. h. die Summe der Signale 1. Moment ist die Position des Peakcentroidzentrums der Masse. Berechnet durch die Summe (iyi) Summe (yi), es8217s in Einheiten des Abstandes zwischen den Signalen, wobei 0 dem ersten Element des Arrays entspricht. 2. Moment ist die RMS-Peakbreite, auch in Indexeinheiten. MGI Linear Fit Findet die kleinsten Quadrate linearen Anpassungsparameter für die bereitgestellten Daten. Wenn der Bereich der x-Werte nicht größer als der Bereich der y-Werte ist, wird die Anpassung durchgeführt, wobei die x - und y-Werte umgekehrt sind, wobei die Ausgangssignale zurück in die ursprüngliche Orientierung umgewandelt werden. Wenn der optionale Gewichteingang leer oder unbenutzt ist, werden die in der Passung verwendeten Gewichte auf 1 (gleiche Gewichtung) gesetzt. MGI Statistisches Histogramm Erstellen Sie ein Histogramm basierend auf -3 Standardabweichungen und Ausreißern. MGI berechnen Array Differences Dies ist ein polymorphes VI. Berechnen Sie Differenzen zwischen aufeinanderfolgenden Arrayelementen. 0-Ausgangssignal gleich x (0) - x (-1) ist, wobei x (-1) ein optionaler skalarer Eingang ist, der auf Null zurückgeht. MGI berechnen Array Summen Dies ist eine polymorphe VI. Berechnen Sie die Summe der aufeinanderfolgenden Arrayelemente. 0-Element des Ausgangs gleich x (0) x (-1) ist, wobei x (-1) ein optionaler skalarer Eingang ist, der auf Null zurückgeht. MGI Shift Array Verschiebt ein 1-D-Array um eine bestimmte Menge nach oben oder unten, füllt mit NaN. MGI Decimate Array mit Offset Dies ist ein polymorphes VI. Dezimiert das angegebene Array um den angegebenen Wert. Ein Fehler wird ausgegeben, wenn die Array-Länge kein ganzzahliges Vielfaches der Dezimation ist. 8220Offset8221 legt fest, welche Dezimation ausgegeben wird. Wenn Offset größer oder gleich Dezimierung ist, wird ein Fehler ausgegeben. MGI Get Slope at Point Ruft die Einheitslängensteigung der Kurve ab, die durch die Eingabefelder am angegebenen Index definiert ist. 2D-Array-VIs arbeiten auf 2-dimensionalen Daten (wie das, was an ein Intensitätsdiagramm gesendet wird). MGI Edge Enhance 2D Array Führen Sie eine Edge Enhancement Operation auf einem 2D Array basierend auf dem absoluten Wert der Differenzen zwischen Nachbarn eines Punktes in entgegengesetzte Richtungen durch. Es doesn8217t schärfen Kanten, aber es dämpft konstante Regionen. MGI Gaussian Smooth Anwenden einer Gaußschen Glättungsfunktion in einer Richtung auf einem 2D-Array von Daten. Smooth Skala ist die e-fach Länge in Array-Index-Einheiten. Genauigkeitsfaktor ist das Verhältnis des kleinsten enthaltenen Begriffs zum größten Ausdruck. Die Daten werden effektiv von null8217s an der Grenze umgeben. MGI Smooth 2D Array Führen Sie einen Glättungsvorgang auf einem 2D-Array mit einem Kernel wie folgt aus: 0 1 0 1 1 1 0 1 0 Element-Summen werden durch die Anzahl der gültigen Quell-Elemente normalisiert, so dass ein konstantes Array unverändert bleibt. MGI XY-Größen Bestimmen Sie Array-Dimensionen und setzen Sie das Ergebnis in einen XY-Cluster. Anwendungssteuerungs-VIs verwenden LabVIEW VI Server oder führen Aufgaben aus, die mit ausführbaren Programmen oder einer Benutzeroberfläche zusammenhängen. MGI-VI-Referenz Dies ist die polymorphe Version für die Aufrufer-, aktuelle und Referenzniveaus. Das VI verfügt auch über eine ebene Version, die es erlaubt, die gewünschte Referenz genau zu bestimmen. MGI Change Detector Bericht, wenn die Eingabe seit dem letzten Aufruf geändert wurde. Dieses VI ist polymorph und der erste Aufruf dieses VIs wird basierend auf der ausgewählten Instanz auf True oder False zurückgesetzt. MGI Gray if Dieses polymorphe VI ist so konstruiert, dass es die 8220Disabled8221-Eigenschaft der Steuerelemente speist. Abhängig von der Bedingung gibt es entweder 8220Enabled8221 oder 8220Disabled und Grayed Out.8221 MGI Origin an den oberen linken Punkten aus, wobei die referenzierte VI8217s front panel8217s am oberen linken Rand des Bereichs liegen. MGI Save 038 Wiederherstellen von Einstellungen Speichert oder stellt die mit einem VI verknüpften Einstellungen wieder her, einschließlich Feldbegrenzungen, Spaltenbreiten für Listenfelder und Diagrammdiagramme. Die Einstellungen werden in einer Ini-Datei am angegebenen Pfad gespeichert. Bei Tabellenstil-Steuerelementen werden nur die Spalten mit Kopfzeilen gespeichert. MGI Exit if Runtime Dieses VI wurde entwickelt, um am Ende einer Anwendung, die als ausführbare Datei ausgeführt wird, verwendet zu werden. Sie schließt die Vorderseite der ausführbaren Datei, bevor sie LabVIEW beendet, wodurch das lästige Flimmern beseitigt wird, wenn sich die Frontplatte in den nicht laufenden Zustand bewegt. Im Quellcode hat dieses VI keine Wirkung. MGI Get Executable Version Wenn dieses VI in eine ausführbare Datei integriert ist, gibt es die Dateiversion (anders als die Produktversion) der ausführbaren Datei zurück. Wenn es in der Entwicklungsumgebung ausgeführt wird, gibt es einfach 8220Development8221 zurück. Ausführbare Dateien, die mit LabVIEW-Versionen vor 8.0 erstellt wurden, enthalten nicht die notwendigen Informationen in der ausführbaren Datei dieses VIs, um die Version zurückzusenden. MGI For Loop Progress Bar Dieses VI ist ein Fortschrittsbalken für For Loops. Wenn die 8220Wait-Zeit8221 abgelaufen ist und die Schleife weniger als halb durch ihre Gesamt-Iterationen ist, öffnet sich dieses VI und zeigt eine Fortschrittsanzeige für die For-Schleife an. Wenn 8220Show Time8221 True ist, zeigt dieses VI eine Annäherung für die verbleibende Zeit an. Ein gleitender Durchschnitt wird verwendet, um die Approximation zu glätten, um Nichtlinearitäten bei der Codeausführung zu kompensieren. MGI ist Runtime Das VI gibt einen Booleschen Wert zurück, der angibt, ob er in einer ausführbaren Datei oder in der Entwicklungsumgebung ausgeführt wird. MGI Get Value Dies ist ein polymorphe VI. Es wird der Wert des Steuerelements durch Verweis angegeben. Es fungiert als ein kleiner Knoten 8220Value8221. MGI Button Dialog Erweiterte Version des eingebauten drei Schaltfläche Dialog für die ursprüngliche Hilfe, klicken Sie auf Link unten). Es wurde ein boolescher Ausgangswert für den Drop-in-Ersatz von Ein - oder Zwei-Tasten-Dialogen verwendet, die, wie im Original, durch Verkabelung leerer Zeichenfolgen für Schaltflächentext erhalten. Eine Option hinzugefügt, um dies zu einem nicht-modalen Dialog zu machen, aber das aufrufende VI zu verbergen, was nützlich ist, wenn Sie ein Fenster, aber nicht alle Fenster blockieren möchten. Dieses VI ist wiederbelebt, um diese Situation zu unterstützen. MGI Defer Panel-Updates Defers oder Restore Panel-Updates für das angegebene VI. Dieses VI verfolgt die Anzahl, wie oft ein Deferrestore für jedes VI erstellt wird, so dass mehrere Defers mit mehreren Wiederherstellungen übereinstimmen müssen. Ein Defer - oder Wiederherstellungsversuch wird versucht, auch wenn bei der Eingabe ein Fehler auftritt. MGI Dirty Dot Setzt, löscht oder liest einen schmutzigen Punkt auf dem Frontpanel Titel des referenzierten VIs. MGI Get VI Control Ref Gibt Refnums aller Bedienelemente auf einem Frontpanel zurück. Wenn die Registerkarte Eingabemasken-Steuerelemente wahr ist, sind alle Steuerelemente auf den Registerkarten rekursiv enthalten. Die Art der zurückgegebenen Refnum wird auch in Control Typei ausgegeben. Control Labeli enthält das Label jedes Controls. MGI Center Callee in Caller Dieses VI ist so konzipiert, dass es ein VI8217s Fenster in einem Anrufer VI8217s zentriert. MGI Fade In 038 Out Dieses VI setzt iterativ die Transparenz des referenzierten VIs von vollständig transparent auf voll undurchsichtig und umgekehrt, so dass eine visuelle 8220Fade In8221 oder 8220Fade Out8221 zur Verfügung steht. Der Standardwert 8220Speed8221 ist auf eine beliebige 821638217 eingestellt. Eine höhere Anzahl führt zu einem schnelleren Fade. MGI Coerce-Panel-Bounds auf sichtbarem Bereich Stellen Sie die angegebenen Panel-Grenzen so ein, dass sie auf den Bildschirm passen. Wenn mindestens ein Pixel mit 50 Pixeln des oberen linken oder oberen rechten Rechtecks ​​auf einem der Monitore angezeigt wird, wird die ursprüngliche Bereichsgrenze ausgegeben. Andernfalls werden die Panel-Schranken so geändert, dass sie auf dem primären Monitor erscheinen. MGI Einstellen der Frontpanelfarbe Stellt die Frontpanelfarbe des referenzierten VIs ein. MGI Set Frontpanel-Titel Stellt den Frontpanel-Titel des referenzierten VIs ein. MGI Scrollbar einstellen Dieses Polymorphe VI zeigt oder blinkt die Scrollbar (en) für die angegebene Steuerreferenz. Weitere Informationen finden Sie in der Instanz VI-Hilfe. MGI Save Front Panel Data Speichert die Steuer - und Indikatordaten in einer MGI ReadWrite Anything-Datei unter dem angegebenen Abschnitt in der angegebenen Datei. Kontroll - und Indikatornamen müssen eindeutig sein. MGI Restore Front Panel Daten Stellt die Steuer - und Indikatordaten aus der angegebenen MGI ReadWrite Anything-Datei wieder her. Kontroll - und Indikatornamen müssen eindeutig sein. MGI Disable Enum Merge VI Dies ist ein Merge-VI für das Enum-Enable-Steuerelement. MGI VI Property Node Dieses VI enthält einen Property Node, der mit der Front Panel: Open-Eigenschaft der VI-Klasse verknüpft ist. Dieses VI dient zum Zusammenführen eines Objektknotens, der bereits als VI-Klassen-Typ verknüpft wurde. MGI Disable Enum Grayed Merge VI Das Disable Enum. vi ist kleiner als das Enum 8220Disabled und Greyed out8221 und kann auf Blockdiagrammen fallengelassen werden, um Platz zu sparen. MGI Disable Enum (Small) Dieses Polymorphic VI enthält eine Instanz für jeden deaktivierten Zustand eines Controls (Enabled, Disabled, Disabled 038 Grayed). Sie benötigt weniger Platz als eine Aufzählungskonstante im Blockdiagramm. Bezier VIs führen Berechnungen auf der Basis von Bezierkurven durch, die den kubischen Splines ähnlich sind, jedoch mit einigen wichtigen Unterschieden. MGI Bezier Find k Suchen Sie das Bézier Control Points-Array für den Block, der y enthält. Y wird gegen y (erstes k 3 4n) getestet, wobei n 0, 1, 8230. Der Rückgabewert ist (erster k 4n), der für die Eingabe in Bezier Inverse geeignet ist. MGI Bezier Suchen nach rückwärts Suchen Sie das Bündel-Kontrollpunkt-Array für den Block, der y enthält. Y wird gegen y (erster k 8211 4n) getestet, wobei n 0, 1, 8230 ist. Der Rückgabewert ist (erster k 8211 4n), der für die Eingabe in Bezier Inverse geeignet ist. MGI Bezier Inverse Multiple Solutions Berechnet die Bezier-Parameter 0..1 aus y, ein Ergebnis der Bezierfunktion. Alle Lösungen im Bereich 0..1 werden in aufsteigender Reihenfolge zurückgegeben. MGI Bezier Inverse Time Berechnet eine Zeit aus einem Blockindex und einem Parameter 0..1. Tatsächlich führt eine inverse Bezier-Funktion statt einer Vorwärts-Eins aus, so dass u zuerst linear auf den Zeitbereich abgebildet wird, dann wird eine inverse Bezier berechnet, und dann wird das Ergebnis in den Zeitbereich neu zugeordnet. MGI Bezier Inverse Berechnen Sie einen Bezier-Parameter 0..1 aus y, ein Ergebnis der Bezierfunktion. MGI Bezier Scalar Berechne einen Bezier-Punkt, der ein Array von Kontrollpunkten, den Index des Anfangs des Blocks von 4 zu verwendenden Punkten und den gewünschten 0-1-Wert enthält. MGI Bezier-Slope-Vektor Berechnen Sie einen N-dimensionalen Bezier-Vektor, der Sätze von 4 Kontrollpunkten in jeder der N Dimensionen und dem gewünschten 0-1 Wert gibt. MGI Bézier Slope Weights Berechnet ein Array aus vier Gewichten, (1-u) 3, u (1-u) 2, u2 (1-u) und u3 gegeben u. U sollte zwischen 0 und 1 liegen. MGI Bezier Time Berechne einen Bezier 0..1 Parameter aus t. Tatsächlich verwendet ein Vorwärts-Bezier anstelle eines Inversen, so dass die Endpunktzeiten zuerst verwendet werden, um t zu einem Parameter 0..1 zuzuordnen, dann wird der Bezier berechnet, dann werden die Endpunkte verwendet, um das Ergebnis wieder auf 0..1 abzubilden. MGI Bezier-Vektor Dies ist ein polymorphes VI, das einen N-dimensionalen Bezier-Vektor berechnet, der Sätze von 4 Kontrollpunkten in jeder der N Dimensionen und dem gewünschten 0-1 Wert angibt. MGI Bezier-Gewichte Dies ist ein polymorphes VI, das ein Array aus vier Gewichten berechnet, (1-u) 3, 3u (1-u) 2, 3u2 (1-u) und u3 gegeben u. U sollte zwischen 0 und 1 liegen. MGI Bezier Optimizer Modifikation des Downhill Simplex nD für die Modellberechnung und eine interaktive Anzeige. Boolesche VIs arbeiten auf booleschen Daten. MGI Boolean Debounce Output ist nur wahr, wenn Eingang für die vorherigen Filter Length-Aufrufe wahr ist. Wiedereintritt. MGI Rücksetzbarer Trigger (Wiedereintritt) Dieses VI setzt den Ausgang 8220Trigger8221 nur einmal an einer steigenden Flanke des Eingangssignals 8220State8221 hoch. Der Ausgang 8220Triggered8221 ist nach dem ersten Mal am Eingang 8220State8221 ansteigend. Der Trigger ist über den Eingang 8220Reset (F) 8221 rücksetzbar. Dieses VI ist ein reentrant funktionale global, so dass jede Instanz dieses VI bezieht sich auf einen anderen Trigger. Cluster-VIs führen Operationen auf Clustern durch, indem sie ein Element in einem Cluster ersetzen oder den Index eines Elements erhalten. MGI Get Cluster Elements Dieses VI wurde für die Verwendung mit den ReadWrite Anything-VIs erstellt. Es bricht ein Cluster in seine einzelnen Elemente und übergibt die Elemente in einer Reihe von Varianten. MGI Get Cluster Index Dieses VI gibt den Tabulatorreihenfolgeindex des Elements oder Unterelements in Cluster In mit Name zurück. Wenn das Element nicht gefunden wird, wird ein -1 zurückgegeben. Was Index bedeutet, hängt vom Modus ab: Alle Elemente und Unterelemente einschließen: Wiederholt alle Cluster und Subcluster und Inkremente für jeden Cluster oder jeden anderen Datentyp. Index gibt die Reihenfolge element8217s unter allen Elementen unabhängig von der Ebene zurück. Nur Erstniveau: Betrachtet nur die Elemente von Cluster In. Wird auf keinen Unterclustern von Cluster In wiederholt. In diesem Fall bezieht sich Index auf die Tabulatorreihenfolge von Cluster In. Index in der untersten Ebene: Sobald ein Element mit Namen gefunden wird, wird der Index der Indexreihenfolge in seinem Besitzcluster in Index zurückgegeben. MGI Get Cluster Value Dieses VI soll den Wert eines Elements in einem Cluster (als Variante) basierend auf dem bereitgestellten Namen zurückgeben. Wenn mehrere Felder mit demselben Namen vorhanden sind, wird nur der erste zurückgegeben. Die Einstellung "Flat to True" vermeidet die Suche in Unterclustern. MGI Cluster-Element ersetzen Dieses VI sucht nach einem Element oder Unterelement in Cluster In mit Name und ersetzt es mit Data. Wenn Data die falsche Größe ist oder wenn ein Element mit Name nicht gefunden werden kann, wird Cluster In für Cluster Out zurückgegeben. Diese VIs werden von National Instruments verteilt, aber nicht auf eine Palette gesetzt. Sie sind nützlich, um den Datentyp einer Variante zu prüfen. Sie geben nicht die Daten auf dem Draht, sondern nur die Art des Drahtes. GetArrayInfo Informationen über den in Variant gespeicherten Array-Datentyp abrufen. Wenn Variant8217s Datentyp nicht ein Array ist, wird ein Fehlercode von 1 zurückgegeben. NDims ist die Dimensionalität des Arrays. Für jede Dimension enthält Array Lengths ein Element, das beschreibt, wie der Arrayspeicher zugeordnet ist. ArrayElement gibt den Datentyp des Array-Elements (in einer Variante) zurück. GetClusterInfo Holen Sie sich Informationen über den in Variant gespeicherten Cluster-Datentyp. Wenn Variant8217s Datentyp nicht ein Cluster ist, wird ein Fehlercode von 1 zurückgegeben. Cluster-Elemente enthält einen Datentyp für jedes Cluster-Element. GetNumericInfo Gibt numerische Informationen über den in Variant gespeicherten numerischen Datentypen zurück. Wenn Variant8217s Datentyp nicht numerisch ist, wird ein Fehler ausgegeben. Wenn der Datentyp ein Enum ist, enthält EnumNames die Elemente. Einheiten beschreibt alle Geräteinformationen. GetPolyVIInfo Holen Sie sich Informationen über den in Variant gespeicherten PolyVI-Datentyp. Wenn Variant8217s Datentyp keinen PolyVI beschreibt, wird ein Fehlercode von 1 zurückgegeben. Zeitstempel ist ein numerischer Wert, der angibt, wann das PolyVI zuletzt bearbeitet wurde. GetRefnumInfo Holen Sie sich Informationen über den in Variant gespeicherten Refnum-Datentyp. Wenn Variant8217s Datentyp nicht ein refnum ist, wird ein Fehlercode von 1 zurückgegeben. ReferenceType beschreibt den Typ von Refnum StrictType beschreibt alle mit dem refnum verknüpften Daten. Für strikte VI-Referenzen handelt es sich um einen VI-Datentyp, der das VI beschreibt. Bei Datalogs ist es der Datentyp, der gespeichert wird. VI Server Generic Type gibt den spezifischen VI Server-Klassentyp an, wenn ReferenceType 8220LVObjUnknown8221 ist. GetStringInfo Holen Sie sich Informationen über den in Variant gespeicherten String-Datentyp. Wenn Variant8217s Datentyp nicht eine Zeichenfolge ist, wird ein Fehlercode von 1 zurückgegeben. MemoryType beschreibt den Speicher, der verwendet wird, um die Zeichenfolge zu speichern, nicht die Zeichenfolgenlänge. GetTagInfo Holen Sie sich Informationen über den Tag-Datentyp, der in Variant gespeichert ist. Wenn Variant8217s Datentyp nicht ein Tag ist, wird ein Fehlercode von 1 zurückgegeben. MemoryInfo beschreibt den Speicher, der verwendet wird, um das Tag zu speichern, nicht die Taglänge. GetTypeInfo Geben Sie Informationen über den in Variant gespeicherten Datentypen zurück. Typ Enum ist der Datentyp Name ist der Name der Daten Wenn die Daten durch eine Typdefinition definiert werden, ist HasTypedef wahr und Typedef enthält Informationen über die Typdefinition. GetVIInfo Holen Sie sich Informationen über den in Variant gespeicherten VI-Datentyp. Wenn Variant8217s Datentyp nicht ein VI ist, wird ein Fehlercode von 1 zurückgegeben. VI Info gibt die vermuteten Merkmale des VIs zurück. VI-Terminaltypen enthält einen Eintrag für jedes Terminal im VIs-Connectorbereich. Unverdrahtete Endgeräte haben einen Void-Datentyp. GetWaveformInfo Holen Sie sich Informationen über den in Variant gespeicherten Waveform-Datentyp. Wenn Variant8217s Datentyp nicht eine Wellenform ist, wird ein Fehler ausgegeben. YArrayType gibt den Datentyp des waveform8217s YArray-Elements als Variant zurück. SetArrayInfo Setzt die Attribute eines Array-Typ-Deskriptors. Variant In ist der Array-Typ-Deskriptor, dessen Attribute gesetzt werden. Wenn bereits vorhandene Attribute vorhanden sind, werden sie gelöscht, bevor die neuen Attribute hinzugefügt werden. Array-Element ist der Elementtyp-Deskriptor, der auf dem Array-Typ-Deskriptor gesetzt wird. Array Lengths ist ein Array von Dimensionslängen. Für jede Dimension im Array wird ein Array-Längeneintrag vorhanden sein. Variant Out gibt den Array-Typ-Deskriptor zurück, nachdem Array-Element und Array-Längen zu Variant hinzugefügt wurden. SetClusterInfo Setzt die Attribute eines Clustertyp-Deskriptors. Variant In ist der Clustertyp-Deskriptor, dessen Elemente gesetzt werden. Wenn bereits vorhandene Elemente vorhanden sind, werden diese gelöscht, bevor die neuen Elemente hinzugefügt werden. Cluster-Elemente ist ein Array von Elementtyp-Deskriptoren, die auf dem Clustertyp-Deskriptor gesetzt werden. Variant Out gibt den Clustertyp-Deskriptor zurück, nachdem Cluster-Elemente zu Variant hinzugefügt wurden. SetNumericInfo Setzt die Attribute eines Deskriptors vom Typ des numerischen Typs. Variant In ist der numerische Typdeskriptor, dessen Elemente gesetzt werden. Wenn bereits vorhandene Attribute vorhanden sind, werden diese gelöscht, bevor die neuen Attribute hinzugefügt werden. Enum Names ist ein Array von Namen, die verwendet werden, um eine Aufzählung für die numerische zu erstellen. Diese Eingabe ist optional und darf nur mit ganzzahligen numerischen Typen verwendet werden. Units ist ein Array von Basiseinheit, Exponentpaaren, die verwendet werden, um Einheiten für die numerische zu erstellen. Dieser Eingang ist optional und darf nur mit Fließkommazahlen verwendet werden. Variant Out gibt den numerischen Typdeskriptor zurück, nachdem Enum-Namen und Units zu Variant hinzugefügt wurden. SetRefnumContainedType Legt die Attribute eines Array-Typ-Deskriptors fest. Variant In ist der Array-Typ-Deskriptor, dessen Attribute gesetzt werden. Wenn bereits vorhandene Attribute vorhanden sind, werden sie gelöscht, bevor die neuen Attribute hinzugefügt werden. Array-Element ist der Elementtyp-Deskriptor, der auf dem Array-Typ-Deskriptor gesetzt wird. Array Lengths ist ein Array von Dimensionslängen. Für jede Dimension im Array wird ein Array-Längeneintrag vorhanden sein. Variant Out gibt den Array-Typ-Deskriptor zurück, nachdem Array-Element und Array-Längen zu Variant hinzugefügt wurden. SetRefnumInfo Setzt die Attribute eines Array-Typ-Deskriptors. Variant In ist der Array-Typ-Deskriptor, dessen Attribute gesetzt werden. Wenn bereits vorhandene Attribute vorhanden sind, werden sie gelöscht, bevor die neuen Attribute hinzugefügt werden. Array-Element ist der Elementtyp-Deskriptor, der auf dem Array-Typ-Deskriptor gesetzt wird. Array Lengths ist ein Array von Dimensionslängen. Für jede Dimension im Array wird ein Array-Längeneintrag vorhanden sein. Variant Out gibt den Array-Typ-Deskriptor zurück, nachdem Array-Element und Array-Längen zu Variant hinzugefügt wurden. SetTypeInfo Setzt den Namen und die typedef-Attribute eines Typdeskriptors. Variant In ist der Typdeskriptor, dessen Name und typedef Attribute gesetzt werden. Wenn bereits vorhandene Attribute vorhanden sind, werden diese gelöscht, bevor die neuen Attribute hinzugefügt werden. Name ist eine Zeichenfolge, die zum Erstellen eines Namens für den Typdeskriptor verwendet wird. Typedef Info ist ein Cluster aus einem VI-Namen und einem Zeitstempel, der verwendet wird, um ein typedef für die numerische zu erstellen. Variant Out gibt den Typdeskriptor zurück, nachdem Name und Typedef Info Variant in SetVIInfo hinzugefügt wurden Informationen zum VI-Datentyp, der in Variant gespeichert ist. Wenn Variant8217s Datentyp nicht ein VI ist, wird ein Fehlercode von 1 zurückgegeben. VI Info gibt die vermuteten Merkmale des VIs zurück. VI-Terminaltypen enthält einen Eintrag für jedes Terminal im VIs-Connectorbereich. Unverdrahtete Endgeräte haben einen Void-Datentyp. MGI-Code verwendet Standard-LabVIEW-Fehlercluster, sodass er problemlos mit integrierten LabVIEW-Funktionen integriert werden kann. MGI Insert Reserved Error Wire 8220Reserved Error Code8221 mit einer Fehler-Ring-Konstante eingefügt werden, es sei denn, es8217s ein Upstream-Fehler oder 8220Error8221 ist false. Der Quellstring wird aus der aufrufenden Kette aufgebaut, beginnend mit diesem Aufrufer vi8217s, und wird mit dem Eingang 8220Error Description8221 vorangestellt. MGI Anfügen einer Zeichenfolge an eine Fehlerquelle Anhängen oder Voranstellen der angegebenen Meldung an den Eingabefehlerquellenstring, falls ein Fehler vorliegt. MGI-Unterdrückungs-Fehlercode Dieses polymorphe VI nimmt entweder einen Fehlercode oder ein Array von Fehlercodes auf. Wenn der Fehlercode, der durch Error In übergeben wird, entweder das Skalar - oder das Array von Fehlercodes ist, wird es nicht an Error Out übergeben. Alle anderen Fehlercodes werden an Error Out übergeben. MGI Error Reporter Der MGI Error Reporter erlaubt es, dem Benutzer in einer separaten Schleife Fehler anzuzeigen, sodass die Schleife, in der der Fehler aufgetreten ist, fortgesetzt wird. Der Error Reporter wird mit LabVIEW-Klassen erstellt, sodass das Verhalten angepasst werden kann, indem eine untergeordnete Klasse erstellt wird. MGI Create Startet einen Error Reporter-Daemon mit dem optional verdrahteten Error Reporter. Wenn Error Handler nicht verkabelt ist, wird das MGI Error Reporter Dialog verwendet. Wenn ein Error Reporter-Daemon bereits von einem Top-Level-VI ausgeführt wird, nichts ausführen und True für 8220Already Running8221 ausgeben. Siehe 8220VI Tree. vi8221 für weitere Einzelheiten. Wenn dieses VI auf RT verwendet wird, wird die Dialog-Klasse auf RT geladen. Dies kann zu Verbindungsproblemen führen. MGI Logger erstellen Startet einen Fehlerreporter-Daemon mit dem optional verdrahteten Error Reporter. Wenn Error Handler nicht verkabelt ist, wird das MGI Error Reporter Dialog verwendet. Wenn ein Error Reporter-Daemon bereits von einem Top-Level-VI ausgeführt wird, nichts ausführen und True für 8220Already Running8221 ausgeben. Siehe 8220VI Tree. vi8221 für weitere Einzelheiten. MGI-Berichtsfehler Dieses wiedereintrittsfähige VI sendet einen verdrahteten Fehler oder eine Warnung an den Fehler-Reporter-Daemon. Wenn kein Fehlerreporter-Daemon ausgeführt wird oder wenn die Verarbeitungswarteschlange voll ist, wird der Fehler oder die Warnung verworfen. MGI Destroy Stoppen Sie den Fehler Reporter Daemon ausführen, wenn keine anderen VIs sind derzeit mit ihm. Die erweiterte Palette MGI Error Reporter enthält VIs, die das Verhalten des Error Reporters beeinflussen. MGI Get benutzerdefinierte Fehlercodes Geben Sie die benutzerdefinierten Fehlercodes aus, die für den Fehlerreporter definiert wurden. MGI-Set Benutzerdefinierte Fehlercodes Legen Sie die benutzerdefinierten Fehlercodes fest, die vom Error Reporter verwendet werden. Das Custom Name-Array sollte kurze Einzelzeilenbeschreibungen für jeden Code enthalten. MGI Show UI Zeigt ein beliebiges User Interface (UI) Fenster an, das dem Error Reporter zugeordnet ist, indem es eine Show UI Message an den Daemon sendet. Der MGI-Fehlerreporter-Basisklassen-Daemon ignoriert diese Meldung. MGI Get Error Beschreibung Ruft den Namen für den angegebenen Fehlercode ab und gibt die Standardbeschreibung aus, wenn der Fehlercode isn8217t gefunden wurde. Dieses VI gibt den benutzerdefinierten Namen aus, wenn ein benutzerdefinierter Fehlercode angegeben wird. MGI Set Logging Parameter Legt das Verhalten des Error Logger fest. Das Standardverhalten besteht darin, maximal 5000 Fehler pro Datei zu protokollieren und maximal 100 Dateien zu speichern. Max Errors to Log ist die Anzahl der Fehler, die in einer Datei protokolliert werden, in der nachfolgende Fehler nicht protokolliert werden. Wire a -2, um diese Zahl unverändert zu lassen. Verdrahten Sie ein -1, um alle Fehler in die Datei zu protokollieren. Verdrahten Sie eine 0, um die Fehlerprotokollierung zu deaktivieren. Max Log Files ist die Anzahl der Fehlerprotokolle im Fehlerverzeichnis. Die ältesten Protokolldateien werden gelöscht, um Platz für neue Dateien zu schaffen. Wire -2, um diese Zahl unverändert zu lassen. Verdrahten Sie ein -1, um das Löschen älterer Dateien zu deaktivieren. Verdrahten Sie eine 0, um die Fehlerprotokollierung zu deaktivieren. MGI Get Logging Parameters Geben Sie die maximal zu protokollierenden Fehler und das Maximum der Protokolldateien aus. -1 gibt an, dass alle Fehler gespeichert werden. Fehlerprotokollverzeichnis ist der Pfad, in dem Protokolldateien gespeichert werden. MGI Senden einer benutzerdefinierten Nachricht Senden Sie eine benutzerdefinierte Nachricht mit den angegebenen Daten (als Variante) an den Error Reporter-Daemon. Dieses VI ist nützlich für das Senden von Nachrichten an eine untergeordnete Klasse der MGI-Fehlerreporter-Basisklasse, die keine benutzerdefinierten Meldungen verarbeitet. Die MGI-Fehlerreporter-Dokumentationspalette enthält VI-Bäume für die beiden Error Reporter-Klassen. Es ist hilfreich, um zu verstehen, wie der Fehlerreporter funktioniert und welche VIs in untergeordneten Klassen überschrieben werden sollten, um benutzerdefiniertes Verhalten zu erhalten. MGI VI-Baum Dieses VI dokumentiert die MGI-Fehlerreporter-Basisklasse. Siehe Blockdiagramm für Dokumentation. Datei-VIs arbeiten auf Verzeichnissen und Dateien. MGI Append-Text an Datei anfügen 8220Text8221 an die Datei an 8220Path8221 anfügen. Hinweis: Dieses VI öffnet und schließt die angegebene Datei bei jedem Aufruf. MGI Create Directory Chain Dieses VI erstellt alle nicht vorhandenen Ordner in 8220Path8221. Die 8220Auto Detect8221 Einstellung von 8220File Presence8221 sucht nach einem 8216.8217 im Namen. In diesem Modus wird ein Top-Level-Ordner mit einem 8216.8217 won8217t erstellt und eine Datei ohne Erweiterung wird als Ordner erstellt. MGI Default ini Path Dieses VI konstruiert einen standardisierten Konfigurationsdateipfad in MyDocuments oder All UsersDocuments abhängig von 8220Alle Users8221. MGI Replace Dateierweiterung Dieses VI ersetzt die Dateierweiterung auf 8220Path In8221 mit 8220New Extension.8221 MGI-Datei-Dialog Merge VI Merge-VI zum Löschen eines Datei-Dialog-Primitivs (das nicht in der Palette in LabVIEW 8.0 und später angezeigt wird, wenn es nur ist Verfügbar durch ein Express-VI.) MGI Windows Folder Pfad Gibt den Pfad des angegebenen Windows-Ordners zurück. Ruft die SHGetFolderPathA-Routine in shell32.dll auf, um die Antwort zu ermitteln. Checksummen-VIs sind nützlich, um einen Prüfsummenwert für eine Datei oder ein Verzeichnis von Dateien zu berechnen und zu verifizieren. MGI CheckValue Directory Berechnet die Ausgabe eines Arrays aus allen im angegebenen Verzeichnis zusammen mit einem CheckValue für jede Datei. Optionale Fortschrittsbalken Eingabe wird aktualisiert, wenn verdrahtet, sonst wird ein Fortschrittsbalken-Dialog mit Abbruch-Schaltfläche angezeigt. MGI CheckValue Directory Compare Vergleichen Sie die angegebenen erwarteten Dateien und Prüfwerte mit dem angegebenen Verzeichnis. Zusätzliche Dateien im Verzeichnis werden ignoriert. Wenn alle erwarteten Dateien übereinstimmen, geben Sie true aus, andernfalls geben Sie false aus. Wenn eine Referenz auf einen Schieberegler verkabelt ist, wird der Schieberegler aktualisiert, um den Fortschritt des Vergleichs anzuzeigen. Andernfalls wird ein Fortschrittsbalken-Dialog mit der optionalen Abbruch-Schaltfläche angezeigt. MGI Executable Checksum Berechnen Sie die Prüfsumme der EXE-Datei, wenn eine ausführbare Datei ausgeführt wird. FFFFFFFF wird beim Ausführen aus dem Entwicklungssystem zurückgegeben. MGI File CheckValue Berechnet den Checkvalue für die angegebene Datei. Config-VIs sind nützlich, wenn das NI-Konfigurationsdateiformat verwendet wird. Sie fügen Unterstützung für das Lesen und Schreiben von Arrays von numerischen Werten zu einer Konfigurationsdatei hinzu. MGI Read Key Dies ist ein Polymorphic VI. Lesen Sie einen Array-Schlüssel (eigentlich einen Abschnitt), der von dem passenden Write-VI geschrieben wurde. MGI Remove Array Abschnitte Entfernen Sie Abschnitte aus einer Ini-Datei, wenn ein Array schrumpft. Wenn Old Count unbenutzt ist, wird der Zählerstand gelesen, der Elternteil entfernt und der Zählerstand ersetzt. Wenn Old Count verdrahtet ist, wurde von it8217s davon ausgegangen, dass die Abwicklung des Teilbereichs bereits durchgeführt wurde. Untergeordnete Abschnitte, die entfernt werden, haben Namen, wobei von neuen Zählern bis zu alten Zählern reicht. MGI Write Key Dies ist ein polymorphe VI. Schreiben Sie einen Array-Datentyp in einem menschenlesbaren Format. Die 8220key8221 ist tatsächlich in einem separaten Abschnitt platziert. Tabellenkalkulations-VIs unterstützen das Lesen und Schreiben von abgegrenzten Textdateien, die Text-Header haben. MGI Read Spreadsheet-Datei Liest eine Spreadsheet-Datei, indem die ersten nicht leeren, nicht numerischen Zeilen als Header und dann die folgenden numerischen Zeilen zurückgegeben werden. Das Lesen beginnt bei Startversatz. End Offset ist der Datei-Offset für den nächsten HeaderValues-Bereich. Dieses VI ähnelt der vi. lib-Datei 8220Read From Spreadsheet File. vi8221, aber es unterstützt Header. MGI Write Spreadsheet-Datei Erstellt oder öffnet die angegebene Spreadsheet-Datei und schreibt die angegebenen Daten an das Ende der Datei. Dieses VI ähnelt dem vi. libWrite Spreadsheet File. vi, aber es enthält Header. Standardmäßig werden Header nur geschrieben, wenn die Datei neu angelegt wird. Wire True zu 8220Append Headers zu vorhandenen files8221, um sie auch vorhandenen Dateien hinzuzufügen. Die Sharp Zip-Bibliothek bietet Unterstützung für das Erstellen von Zip-Dateien, die größer als 2 Gigabyte sind. Die Sharp Zip-Bibliothek ist von Microsoft. Net-Technologie abhängig. MGI SZL Datei hinzufügen Fügt die Datei, die vom Quelldateipfad angegeben wird, in die ZIP-Datei ein. Zielpfad in zip sollte der relative Pfad in der Zip-Datei sein, der den Namen der Datei selbst enthält, jedoch nicht den Namen der ZIP-Datei. Der updateMode-Eingang wählt zwischen Safe und Direct. Im abgesicherten Modus wird eine temporäre Datei erstellt, sodass Fehler in der Datei die gesamte Datei nicht beschädigen. Direct einfach fügt der Datei, so ist es gefährlicher, kann aber deutlich schneller, vor allem für große Dateien. Dieses VI stützt sich auf die Sharp Zip-Bibliothek, die eine. NET-Assembly in C von Mike Krueger geschrieben ist. Es ist lizenziert unter der GPL mit einer besonderen Ausnahme erlaubt unabhängigen Module, um die Bibliothek unabhängig von den Lizenzbedingungen des unabhängigen Moduls zu verknüpfen. Weitere Informationen über die Bibliothek und ihre Lizenz finden Sie unter: icsharpcode. netopensourcesharpziplib MGI SZL Schließen ZIP-Datei Schließt die ZIP-Datei. Dieses VI stützt sich auf die Sharp Zip-Bibliothek, die eine. NET-Assembly in C von Mike Krueger geschrieben ist. Es ist lizenziert unter der GPL mit einer besonderen Ausnahme erlaubt unabhängigen Module, um die Bibliothek unabhängig von den Lizenzbedingungen des unabhängigen Moduls zu verknüpfen. More information about the library and its license is available from: icsharpcode. netopensourcesharpziplib MGI SZL Extract File Extracts the entry specified by entry path in zip from the zip file to the target path. Entry path in zip should be the relative path within the zip file. If the target path already exists you can have a dialog pop up to confirm overwriting by wiring TRUE to confirm overwrite. This VI relies on the Sharp Zip Library which is a. NET assembly written in C by Mike Krueger. It is licenced under the GPL with a special exception permitting independent modules to link to the library regardless of the license terms of the independent module. More information about the library and its license is available from: icsharpcode. netopensourcesharpziplib MGI SZL List Zip Contents Lists the file names of all the files in the zip file and if file info is true, outputs a large cluster of info about each file. This VI relies on the Sharp Zip Library which is a. NET assembly written in C by Mike Krueger. It is licenced under the GPL with a special exception permitting independent modules to link to the library regardless of the license terms of the independent module. More information about the library and its license is available from: icsharpcode. netopensourcesharpziplib MGI SZL New Zip File Creates a new empty zip file in the path specified by target path. The new file overwrties an existing file or produces an overwrite confirmation dialog based on the value of confirm overwrite. This VI relies on the Sharp Zip Library which is a. NET assembly written in C by Mike Krueger. It is licenced under the GPL with a special exception permitting independent modules to link to the library regardless of the license terms of the independent module. More information about the library and its license is available from: icsharpcode. netopensourcesharpziplib MGI SZL Open Zip File Opens an existing zip file. This VI relies on the Sharp Zip Library which is a. NET assembly written in C by Mike Krueger. It is licenced under the GPL with a special exception permitting independent modules to link to the library regardless of the license terms of the independent module. More information about the library and its license is available from: icsharpcode. netopensourcesharpziplib MGI SZL UnZip To Directory Unzips the contents of zip file to the target directory. If Preview only is true, this VI doesn8217t unzip the contents and just returns a preview of the list of files. This VI relies on the Sharp Zip Library which is a. NET assembly written in C by Mike Krueger. It is licenced under the GPL with a special exception permitting independent modules to link to the library regardless of the license terms of the independent module. More information about the library and its license is available from: icsharpcode. netopensourcesharpziplib MGI SZL Zip Directory Compresses everything in root directory into a zip file. If include subdirectories is TRUE, this VI recursively includes any subdirectories. Open Options can be set to create the zip file new, or open an existing one and append on to it. This VI relies on the Sharp Zip Library which is a. NET assembly written in C by Mike Krueger. It is licenced under the GPL with a special exception permitting independent modules to link to the library regardless of the license terms of the independent module. More information about the library and its license is available from: icsharpcode. netopensourcesharpziplib SZL Zip Directory Compresses everything in root directory into a zip file. If include subdirectories is TRUE, this VI recursively includes any subdirectories. Open Options can be set to create the zip file new, or open an existing one and append on to it. MGI Open Explorer Window Open a Windows Explorer window to the specified file8217s directory and select the file. If the path specifies a directory, then the explorer window is opened to that directory, unless 8220Select Directory8221 is true, in which case the explorer window is opened to the parent directory and the specified directory is selected. Graph VIs are useful for setting properties of Chart and Graph controls MGI Autoscaling Enum Merge VI This is a merge VI. It exists to allow easy dropping of the enumeration from the palettes. MGI Graph Tools Enum Merge VI This is a merge VI. It exists to allow easy dropping of the enumeration from the palettes. MGI Non Repeating Plot Color Generate colors that are good for a white background and distinguishable from each other. MGI Set Plot Names This is a polymorphic VI. Sets the plot names as specified, optionally growing the Plot Legend to fit the number of names. If Plot Name is empty, then the Plot Legend is hidden, otherwise it is shown. MGI Set Z Scale Colors Updates the specified color scale using a distribution of colors specified by 8220Scheme8221. Min and Max describe the range of data that is to be displayed using the color scale. If 8220Z Scale Ref8221 is not wired, the scale will not be updated but 8220ValueScale8221 will still contain data for the specified scheme. The output 8220ValueScale8221 will have 256 colordata pairs. Matrix and Vector VIs operate on 1D (for Vector) and 2D (for Matrix) arrays of numeric data. These include Cross Product, which is not included in LabVIEW. MGI Vectors Approximately Equal Check that two vectors are within a given distance of each other. The default tolerance (distance between vectors) is 1E-5. MGI Cross Product Calculate the cross product of two 3-dimensional vectors in cartesian coordinates. MGI Dot Product Computes the dot product of X Vector and Y Vector. MGI Calculate Vector Length Calculate the length of a cartesian vector. MGI Identity Matrix 42154 Simply provides a 42154 SGL identity matrix. The Menu Building palette provides an extensible API for creating Application Menus, Windows Tray item Menus, and Control shortcut menus. It is useful for dynamic menu creation and for simplifing common Menu behavior such as toggling checkboxes and forcing radio button behavior among a set of Menu items. MenuConstructor Polymorphic VI to choose the type of menu you want to create. MenuItemConstructor Use this to create a new MenuItem. Most of the menu items you create can be left as generic menu items. Only use a specialized menu item when you need to use an additional field of that menu item. For example a shortcut in a VI MenuItem, or an icon in a MenuStrip MenuItem SelectionConstructor Polymorphic VI to select the built in selection types. Destroy Destroys the MenuItem. This ensures that all references contained by the menu item are also destroyed. Do not use the 8220Delete Data Value Reference8221 on a MenuItem Reference as this will lead to memory leaks. Use this vi instead. Init Inistializes the menu. This vi will delete any menu8217s that are currently in place. This also creates the Menuitem Clicked event. Do not use this VI to rebuild the menu. There is a separate Rebuild Menu VI. Menu Building Initialization Merge VI This Merge VI is a good starting place for most MenuBuilding menus. It has all of the vi8217s needed to initialize a new menu RebuildMenu Rebuilds the menu after a menu item array is changed. This will not destroy old MenuItem references, so make sure to destroy any MenuItems no longer being used. BasicInfo Retreives basic information about the last menu click. This VI returns the data of the menu item after the menu click. If you need to view more detailed data or the data before the menu click, use a property node. Cleanup Destroys the Menu and all MenuItems inside it. MenuClicked Simulates the menu click. This will perform an identical action as the user actually clicking the MenuItem. SetToDefault Searches the menu for any item with 8220Clicked by Default8221 set to true and then fakes a click on this item. This is useful for initializeing radio selections or checkmark selections to default values. MenuItem Clicked Events will be generates for these default clicks. If you want to process these events, make sure this VI is run after the Register for User Events node on the MenuItem Clicked Event. The Tray Icon palette contains VIs that work with Windows Tray menus. ShowBalloon Shows the notification balloon from the tray item. Balloon Text is required to be a non-empty string. Default timeout is set by the OS, and typically approx 10 sec. For more info see msdn. microsoften-uslibraryms160065.aspx MinimizeToTray Minimizes the referenced to tray. If VI Refnum is unwired the caller is assumed. RestoreFromTaskbar Restores a VI what has previously been Minimized to Tray. If VI Refnum is unwires, the calling VI will be used. Set Show on Taskbar to false to keep the VI from showing in the taskbar. FindMenuItemByTag Searches the menu structure recursively for a menu item with the full tag specified. The Menu Examples palette contains example VIs that use the MGI Menu Building VIs. VI Menu Example Demonstrates the Menu Strip type. Run the VI to see it8217s Runtime Menu replaced by the specified menu. Notice the shorcut key on the Exit Menu item. Click summarys show up in the history array. Click the 8220Add Item8221 to add a dummy item to the VI8217s menu. Tray Icon Example Demonstrates the Tray Icon menu type. Run the VI to see the menu and icon appear in the system tray. Right click the icon to see the menu appear. Double click the Icon to signal a 8220Default8221 menu item click. Fill in the Balloon Info values and click 8220Show Balloon8221 to see the balloon pop-up in the system tray. The 8220tipText8221 is the only field required in the balloon info and an error will be thrown if you try to show a balloon with no tipText. the minimum timeout is controlled by the OS and any value less than the OS value will be coerced up Click summarys show up in the history array. Click the 8220Add Item8221 to add a dummy item to the TrayIcon8217s menu. Control Example Demonstrates the Control Menu type. Right click on the 8220Listbox8221 to see the menu generated. Click summarys show up in the history array. Click the 8220Add Item8221 to add a dummy item to the control8217s menu. MenuStrip Example Demonstrates the Menu Strip type. Run the VI to see the menu appear in the MenuStrip. NET control. Notice the 8220File - Default8221menu item that contains an icon as well as the 8220File-Exit8221 menu item contains a shortcut. Click summarys show up in the history array. Click the 8220Add Item8221 to add a dummy item to the MenuStrip8217s menu. SelectionTypeExample Run the VI and look under the 8220Selection Types8221 menu item for a demo of the built in selection types. Coordinate VIs are useful for performing rotations on 2D or 3D datasets. MGI Apply Transform Polymorphic VI: Apply a cartesian coordinate translation and rotation. MGI Center from 3 Points Polymorphic VI: Calculate the center of a circle based on three points on the circle. MGI Find 2D Intersection of 2 Lines Finds the intersection of 2 lines. If the lines are parallel, then an argument error (code 1) is output. The lines are specified using 2 points for each line. The points are specified as rows in a 2D array where the first column is x and the second is y. MGI Rotate Vector Polymorphic VI: Perform a 3D vector rotation about a coordinate axis. MGI Cylindrical to Cartesian Convert R, Th, Z to X, Y,Z. MGI Find Closest Line Segment Finds the line segment closest to the given x and y coordinates. The Graph Data is intepreted as a sequence of points which are connected by line segments. The points in the graph are assumed to be connected in the order provided. The output index is the index of the first point in the data that is an endpoint of the closest line segment. MGI Find Closest Point Finds the index of the point in the input data that is closest to the given x and y coordinates. The optional input allows the user to use the city block metric (i. e. the sum of the distances in the x and y directions) instead of the standard distance measurement. MGI Generate Orthonormal Basis Generate a set of orthonormal basis vectors from three points given in cartesian coordinates. The basis vectors are found by normalizing: w1p1-p2 w2w1 x (p2-p3) w3w1 x w2 MGI Generate Rotation Matrix Generate a 32153 rotation matrix with specified diagonal elements, - the off diagonal element, and specified axis unrotated. Numeric VIs operate DBL or SGL precision floating point numbers and on integers. They include the coercion, comparison, and rounding subpalettes. For easy access and use with quickdrop, the compound arithmetic nodes are also included. MGI Get Real Quadratic Roots Gets the real roots of the quadratic equation Ax2 Bx C 0. If there are no real roots, then both outputs are NaN. If there is a double root that is real, then both outputs are equal to the double root. If the coefficients correspond to a linear equation (i. e. A is zero) then Root1 is the solution to the linear equation and Root2 is NaN. This VI is configured to run as a subroutine. MGI Nth Root Take the nth root of x. Handles x Ends with Contains Begins with MGI Determine Time Format String Determines a Time Format String for a given string in a common date format. For example Thu, January 1, 2011 3:00 PM would be a, B, d, Y I:M p. The Day Before Month input specifies whether the day or month is first when in a 12111 type format. The Leading Zeros input determines if the day, month number, and hour will have a leading zero if they are only 1 digit. MGI Parse Format String Parses the string at the specified position for a format code. The portion of the string before the format code is output as 8220Delim8221. If an error occurs, then an error is output and the Offset out is -1. MGI Scan From String This PolyVI handles scan from string for special datatypes. Timing VIs are usefull for measuring the execution duration of some code and for providing a delay that uses explicit dataflow using an error cluster. MGI Wait This is the polymorphic version that contains both millisecond and second versions of MGI Wait. Useful to create data dependency on the error lines and to have a smaller icon. If 8220Error In8221 has an error, then this VI won8217t perform the wait. MGI Milliseconds Since Last Call This VI stores the tick count on a shift register and provides as an output the number of milliseconds since the last time this VI was called. MGI Milliseconds Since Last Reset Returns the amount of time in milliseconds since the last time the VI was reset. This VI is non-reentrant. Tree VIs are usefull for populating the LabVIEW Tree control. MGI Get Tree Tag Children Get all child tags of the specified tag for the specified tree control. MGI Populate Tree with Delimited Strings Populates the specified Tree Control with the specified items. The items are delimited strings where the text of each parent is in the string seperated by delimiters. For example, the string 8220CProjectFoo8221 with the delimiter 82208221 would be shown as C Project Foo Each Row in the 2D Items array is a child item. The first column contains the Tags. Subsequent columns contain Text for the Tree control columns. If 8220Use Child Only Items8221 is true, then items in the 2D array that are not followed by a descendent item are inserted as 8220Child Only8221. Otherwise, all items are inserted as Child OnlyFalse. NOTE: If Use Child Only Items is true, then the 2D array must have all parent tags followed immediately by one child item. MGI Tree Rows from Delimited String Array Convert the array of delimited strings stored in the first column of the specified array to Tree Rows. The remaining columns are used as text for each tree row. Post navigation

No comments:

Post a Comment