Sunday 9 April 2017

Labview Gleitender Durchschnitt


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. Bookmark amp ShareMGI Bibliothek MGI hat eine Bibliothek von VIs, die wir bei der Entwicklung von Kundenprojekten wiederverwenden. Die Bibliothek wird als VIPM-Paket gespeichert, so dass Sie den VI-Paket-Manager installieren müssen. Einige MGI-VIs hängen von anderen OpenG-Paketen ab. Der Inhalt der MGI-Bibliothek wird durch das Erweitern der Elemente unter Array-Funktions-VIs überprüft, die alle allgemeine Arrayoperationen auf numerischen Daten ausführen. MGI Durchschnitt Dies ist ein polymorphes VI. Dieses VI berechnet und gibt den Durchschnittswert des gegebenen Doubles wieder. MGI Centered Weighted Moving Average Führt einen mittig gewichteten gleitenden Durchschnitt auf einem Array entsprechend den Größen - und Gewichtungsparametern durch. 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. Es schließt die Vorderseite der ausführbaren Datei, bevor Sie LabVIEW verlassen, 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 Informationen über den in Variant gespeicherten Waveform-Datentyp abrufen. 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 liefert den numerischen Typdeskriptor, 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 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. 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 übergeordnete Bereich entfernt und der Zählerstand ersetzt. Wenn Old Count verdrahtet ist, wird davon ausgegangen, dass die Abarbeitung 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. Weitere Informationen über die Bibliothek und ihre Lizenz finden Sie unter: icsharpcode. netopensourcesharpziplib MGI SZL Extract File Extrahiert den Eintrag, der durch den Einstiegspfad in ZIP aus der ZIP-Datei angegeben wurde, in den Zielpfad. Eintrag Pfad in zip sollte der relative Pfad innerhalb der Zip-Datei sein. Wenn der Zielpfad bereits vorhanden ist, können Sie ein Dialogfenster öffnen, um das Überschreiben zu bestätigen, indem Sie TRUE bestätigen, um das Überschreiben zu bestätigen. 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 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 navigationLabVIEW Programming Special Topic Guides FIRST LabVIEW TroubleshootingLabVIEW Troubleshooting Special note on the library vis: Starting in 2013 the cRIO simulator was added. Dies führte zwei verschiedene Versionen von vielen der WPILib vis, eines für die Ausführung von Stand-alone auf einem PC und ein anderes für Standard-Betrieb auf dem Roboter cRIO. Die richtige Version des Bibliothekscodes wird abhängig vom aktuellen Target (PC vs. cRIO) geladen. Eine ungerade Nebeneffekt davon ist, dass, wenn Sie eine Bibliothek vi auf eine leere vi fallen, nur um zu bohren, um die Interna zu studieren, dann werden Sie wahrscheinlich die PC-Version und youll studieren, wie der cRIO-Simulator funktioniert, nicht wie die Roboter-Version Des Code funktioniert. 2011 LabVIEW Menübaum Hier ist eine Hilfe zur Lokalisierung Bibliothek vis (Rechtsklick in einem Blockdiagramm-Fenster, um diese Paletten zu erhalten). Allgemeine Frameworks (2010) WPIlib Menu Tree (2011) 2013 Framework Die Frameworks, die NI entwickelt und liefert jedes Jahr mit der neuesten Ausgabe von FRC LabVIEW einfach einen Programmstyl. Das Framework ist nur ein grundlegendes Programm Vorlage und Stil, der ändert und verbessert ein wenig jedes Jahr. Sie können Ihr eigenes Programm mit Ihrem eigenen Stil komplett von Grund auf neu entwickeln. Die wesentlichen Elemente jedes FRC-Roboterprogramms sind: Kommunikation mit der Treiberstation Erkennen und Verarbeiten der verschiedenen Konkurrenzmodi, die in den DS-Paketen ankommen Autonome Operationen Teleop-Treiber-Steuerelemente Der Team Code-Ordner enthält den gesamten Code, den Sie normalerweise an Ihre Roboter und das Spiel anpassen sollten planen. Wenn Sie vis von Ihrem eigenen hinzufügen, sollten sie auch hier gehalten werden. Nichts außerhalb sollte berührt werden, bis Sie die Advanced Pisten treffen. Öffnen Sie hier alle Ihre Geräte und erstellen Sie refnum-Namen, um jede einzelne eindeutig zu identifizieren. Dies wird nur einmal am Anfang aufgerufen. Das Framework wird hier in Begin. vi eingerichtet, um das Autonome Independent. vi automatisch zu Beginn des Autonomen Modus aufzurufen und es automatisch zu töten, wenn der Autonome Modus beendet ist. Autonome Independent. vi Fügen Sie keinen expliziten Aufruf dieser vi in ​​Ihrem Code. Es ist so eingestellt, dass es automatisch aufgerufen wird, und das Hinzufügen eigener Anrufe wird den Hintergrundprozess stören und kann dazu führen, dass Ihr Roboter während des teleop nicht funktionsfähig ist. Dies wird nur einmal aufgerufen, so legen Sie alles, was Sie wollen, getan während des autonomen Modus hier. Sie lassen dieses nicht, also Wartezeiten und Verzögerungen können wie gewünscht hier verwendet werden. Typische Fahrersteuerung. Dies wird 50 mal pro Sekunde genannt, wenn die Steuerpakete der Treiberstation ankommen. Schreiben Sie NICHT hier Code, der wartet oder dauert mehr als ein paar Millisekunden, um auszuführen. Wenn diese vi zu lange dauert, um auszuführen, dann reagieren Ihre Fahrer-Steuerelemente träge, sporadisch oder gar nicht. Das bedeutet keine While-Schleifen, keine Wartezeit, keine Watchdog-Feedverzögerung. Normaler Treiber Betriebscode wird in der Regel zwischen Teleop. vi und Periodic Tasks aufgeteilt. vi Teleop. vi bekommt die Durchfluss-Aktionen, wie das Fahren über die Joysticks, dass dont Verzögerungen benötigen, um einen mechanischen Mechanismus Zeit, um den Betrieb abzuschließen. Periodic Tasks. vi bekommt die komplexen zeitraubenden Aktionen, die viel Zeit in Anspruch nehmen müssen, wie ein Katapult, das freigegeben und wieder als Teil eines einzigen Joystick-Knopfes gedrückt werden muss. Im Vergleich zur Computergeschwindigkeit dauert es sehr lange, bis ein physikalischer Mechanismus zurückgezogen, verriegelt und wieder freigegeben wird. Alles, was Sie wollen, um eine Verzögerung hinzufügen oder müssen auf einen Sensor warten, um Ihnen zu sagen, seine bereit ist, kann leichter in Periodic Tasks. vi als irgendwo anders getan werden. Periodic Tasks. vi Dies wird nur einmal aufgerufen, aber es wird erwartet, dass Tasks hier innerhalb einer nie endenden While-Schleife oder einer Flat-Sequence-Struktur ausgeführt werden. In der Regel haben youll mehrere völlig separate Schleifen laufen hier, um voneinander unabhängige Sachen zu tun. Dies kann für zeitgesteuerte Sequenzen verwendet werden, zum Beispiel, wenn Sie einen Mechanismus haben, der in mehreren diskreten Schritten arbeitet. Sagen Sie, ein Motor schwankt ein Katapult, eine mechanische Verriegelung hält es zurück, pneumatische gibt die Verriegelung, Zeitverzögerung, während das Warten auf das Katapult, um seinen Wurf abzuschließen, dann wiederholt den loadingshooting Zyklus Sie können eine völlig separate Schleife nur Aufmerksamkeit auf eine der Ihre Joystick-Tasten und Springen zu tun, was Sie wollen, wenn diese Taste gedrückt wird. Dies schließt einfach alle Geräte, die Sie in Begin. vi geöffnet, um aufzuräumen, wenn das Programm beendet wird. Seltsamerweise aufgrund der Art, wie wir shutdown, d. e. wir un-power der Roboter, wird diese Finish. vi nie ausgeführt werden. Seine Präsenz hier ist es, gute Form zu lehren, die wichtig sein wird in den meisten normalen Anwendungen von LabVIEW, dass die Schüler begegnen, wenn Sie es am College und arbeiten. Gemeinsame Roboteroperationen Diese Pre-FRC 2015-Beispiele sind weiterhin gültig, jedoch wurden einige kleinere Änderungen in der FRC WPI-Bibliothek vorgenommen. Aktualisierte Beispiele finden Sie in den 2015 LabVIEW-Beispielen Hier sind Beispiele für Möglichkeiten, einige der gängigsten Roboterfunktionen auszuführen. Da das Framework die erforderlichen Elemente über mehrere Dateien verbreitet, sind diese Beispiele in Bildform, um alle Teile zusammen zu bekommen, wo Sie alles auf einen Blick sehen können. Jedes Beispiel enthält die Menüpfade, in denen alle Symbole, die innerhalb dieses Bildes gefunden werden, gefunden werden. LabVIEW bietet auch stand-alone-fähige Beispiele aus dem Getting Started-Fenster, die Schaltpläne für den ordnungsgemäßen Anschluss von Geräten enthalten. Diese Beispielprojekte eignen sich hervorragend zum Testen, ob ein Gerät korrekt arbeitet und verdrahtet ist. Da es sich um eigenständige Programme handelt, bedarf es ein bisschen Verständnis des Standard-Frameworks, um herauszufinden, wie Sie die Konzepte richtig in Ihr LabVIEW-Projekt integrieren können. JoystickBeispiel (2010) WPI Robotics Library-DriverStation-Joystick Kinect Joystick Beispiel (2012) WPI Robotics Library-DriverStation-Joystick Digitaleingang Beispiel. z. B. (2010) WPI Robotics Library-IO-AnalogChannel Kompressor Beispiel (2012) WPI Robotics Library-Actuators-Compressor Anmerkung: 2012 erfordert auch, dass die Compressor-Schleife vi in ​​der Periodische Tasks. vi Treiber-Station DigitalAnalog Eingabebeispiel WPI Robotics Bibliothek-DriverStation-Kompatibilität IO Programmier-Boolean Relay Beispiel (2010) WPI Robotics Bibliothek-Aktoren-Relay WPI Robotics Bibliothek-DriverStation-Joystick Programming-Vergleich Servo Beispiel (2010) WPI Robotik-Bibliothek - aktoren-Servo WPI Robotics Bibliothek-DriverStation-Joystick Programming-Vergleich Single Motor Beispiel (2010) WPI Robotics Bibliothek-Aktoren-Motorregel WPI Robotics Bibliothek-DriverStation-Joystick-Taste Steuerung von Motor Beispiel (2013) WPI Robotics Bibliothek-Aktoren-Motorregel WPI Robotics-Bibliothek-DriverStation-Joystick Programmierung-Vergleich Wollen Sie weitere Schaltflächen hinzufügen Wählen Sie für jeden so aus: Dont möchten, halten Sie die Taste gedrückt Dann fügen Sie einen Feedback-Knoten zu erinnern: Single Solenoid Beispiel (2010) WPI Robotics Library-Actuators - Magnet WPI Robotics Bibliothek-DriverStation-Joystick Doppelmagnet Beispiel (2011) WPI Robotics Bibliothek-Aktoren-Magnet Programming-Boolean WPI Robotics Bibliothek-DriverStation-Joystick Doppelmagnet Beispiel (2010) - alternative Implementierung WPI Robotics Bibliothek-Aktoren-Magnet Programming-Boolean WPI Robotics Library-DriverStation-Joystick Relais Solenoid Beispiel (2011) - für Doppelsolenoid, 2 Rote verdrahtet zu MM-, 2 Schwarzes verdrahtet zu Erde WPI Robotics Library-Actuators - Relay Programmierung - Boolean Programming-Structures Relay Blinking Beispiele (2011) - 3 Varianten WPI Robotik Bibliothek-Aktoren-Relais Programmierung-Boolesche Programmierung-Strukturen Relais Aktuelle Einstellungen (2012) - wie man die aktuellen Relais-Einstellungen abruft WPI Robotik Bibliothek-Aktoren-Relais Programmierung-Boolean Programmierung-Array Kaskade Relais Beispiel (2012) - wann Sie wollen mit mehreren Knöpfen arbeiten WPI Robotics Library-Actuators-Relay Programmierung-Boolean Programming-Structures Starten Sie die Treiber Station Communication (2010). Wenn das Standard-Framework verwendet wird, wird dies bereits in Robot Main. vi (2010) behandelt. Seien Sie nur bewusst, dass, wenn Sie Ihren Code von Grund auf neu schreiben, dass dies notwendig ist, um die Kommunikation mit der Driver Station zu starten, sonst bleibt das cRIO in einem deaktivierten Zustand. WPI Robotics Bibliothek-DriverStation Arcade-Antrieb Beispiel (2010) WPI Robotics Bibliothek-RobotDrive WPI Robotik-Bibliothek-DriverStation-Joystick-Behälter-Antrieb Beispiel (2010) WPI Robotics Bibliothek-RobotDrive WPI Robotik-Bibliothek-DriverStation-Joystick holonome oder Mecanum Antrieb Beispiel (2014) WPI RobotDrive WPI Robotics Library-DriverStation-Joystick CAN Tank Drive Beispiel (2010) - Beachten Sie, dass die LabVIEW CAN-Bibliotheken aus dem FRC SourceForge CAN-Projekt heruntergeladen werden müssen. Und kopiert nach c: Program FilesNational InstrumentsLabVIEW 8.6usr. lib Die neuen Bibliotheken werden im Menü "Funktionen" nach dem Neustart von LabVIEW angezeigt. Benutzer-Bibliotheken-CANJaguar für LabVIEW WPI Robotics Library-DriverStation-Joystick Sicherheit (2011) - dies ist völlig optional, ist aber standardmäßig im Open2Motor und Open4Motor vis aktiviert. Sie müssen in einem bestimmten Stil zu verwenden, um es zu benutzen, im Wesentlichen müssen Sie Ihren Code zu entwerfen, um eine der Basis-Laufwerk vis (ArcadeTankHolonomic) schneller als alle 0,1 Sekunden (jedes Mal, wenn Sie ein DS-Datenpaket funktioniert gut) aufrufen. Wenn Sie nicht ganz wissen, wie man es nutzt und finden Sie den Roboter hält Verriegelung, dann sollten Sie es deaktivieren, so dass Ihr Roboter ist nicht tot während einer Konkurrenz. WPI Robotics Library-RobotDrive Drive Öffnen 2 Motor. vi Drive Open 4 Motor. vi Watchdog (2010) - dieser User Watchdog wird nicht mehr verwendet und ist optional. Wenn Sie nicht ganz wissen, wie Sie davon profitieren und finden Sie sich nur werfen in Feeds überall, bis der Roboter stoppt Sperren, dann sollten Sie Deaktivieren oder entfernen Sie es vollständig. Der Benutzer Watchdog sollte nur in den kritischen Pfaden von Autonomous Independent. vi Teleop. vi und nur in Datenflüssen verwendet werden, die gefährlich wären, wenn die Robotermotoren unkontrolliert laufen würden. Verwenden Sie niemals Watchdog in Periodic Tasks. vi, es sei denn, es wird nirgendwo anders verwendet. WPI Robotics Library-Utilities-Watchdog Initial Value (2010) - Dies ist nur eine Möglichkeit, einen Anfangswert in ein vi zu füttern. Dies gilt nur beim ersten Aufruf. Es kann eine boolesche case-Anweisung oder eine beliebige andere boolesche Struktur, die Sie mögen. Programmier-Synchronisation Programmiervergleich Vergleich Maximalwert merken (2010) - So können Sie den von einem Eingangsstrom empfangenen maximalen (oder minimalen) Wert notieren und speichern. Programmier-Strukturen Programmier-Vergleichstaste Aktion nur einmal auf Presse (2010) - diese und die folgenden Tastenbeispiele können mit eingebauten Sensoren als Auslöser nicht nur mit Joysticks verwendet werden. WPI Robotik Library-RobotDrive WPI Robotik Bibliothek-TreiberStation-Joystick Programmier-Strukturen Programmier-Vergleich Programmier-Cluster, Klasse, Variant Schaltfläche Aktion einmalig am Release (2010) WPI Robotik Bibliothek-DriverStation-Joystick Programmier-Strukturen Programmier-Vergleich Programmier-Cluster (2010) WPI Robotics Library-DriverStation-Joystick Programmier-Strukturen Programmier-Vergleich Programmier-Cluster, Klasse, Variant-Button Aktion umschalten (2014) - ein Beispiel verwendet einen Fall zum Trennen Maßnahmen. Ein Beispiel nutzt die Tatsache, dass die Schaltfläche 0 oder 1 ist und verwendet ein binäres Exklusiv-Oder, um den Toggle auszuführen, wenn die Schaltfläche gedrückt wird. WPI Robotics Library-DriverStation-Joystick Programmier-Strukturen Programmier-Vergleich Programmier-Cluster, Klasse, Variant-Button Start der zeitgesteuerten Aktion (2010) - die hier als Beispiel verwendeten Zeitverzögerungen können durch Sensoren ersetzt werden, Gespannt oder beendet hat. WPI Robotics Library-DriverStation-Joystick Programmier-Strukturen Programmier-Vergleich Programmier-Cluster, Klasse, Variante, welche Taste gedrückt wurde (2011) - Nützlich für die Entscheidung, welche von mehreren Joystick - oder benutzerdefinierten Driver Station Tasten gedrückt wurde. Dies wirkt sich auf die von einem Array von Tasten gedrückt wurde. Niedrigste Zahl gewinnt, wenn mehrere gleichzeitig gedrückt werden. WPI Robotics Library-DriverStation-Enhanced IO Programming-Structures Programmier-Arrays Programmierung-Numerisches Programmieren-Boolean Zwei oder mehr Schaltfläche Ein-Aus (2013) - Dies merkt sich den zuletzt eingestellten Wert einer Schaltfläche. Fügen Sie so viele Tasten, wie Sie für mehrere Power-Einstellungen möchten. Eine alternative Implementierung mit Case-Anweisungen wird am Ende angezeigt. Kann mit Fließkomma, Enum (z. B. Relays Solenoids) oder jedem anderen Datentyp verwendet werden, der für den eingestellten Gerätetyp erforderlich ist. Programmierung-Vergleich Schaltfläche Increment Power (2014) - Dies erhöht oder verringert die Leistung eines Motors, sobald eine der Tasten gedrückt wird, so dass die Leistung bei jedem Tastendruck um ein Vielfaches erhöht wird. Programmier-Strukturen Programmier-Vergleich Last Button Pushed (2011) - Hier wird die zuletzt gedrückte Taste gedrückt. Es kann mit weniger Tasten verwendet werden, aber dieses Beispiel zeigt nur die Handhabung der maximalen Anzahl von Tasten, die von der Driver Station kommen. Dies kann auch mit Driver Station Compatibility IO verwendet werden. WPI Robotics Library-DriverStation-Enhanced IO Programming-Structures Programmier-Numerische Programmierung-Boolean Grenzwertschalter (2010) WPI Robotics Library-DriverStation-Joystick WPI Robotik Bibliothek-IO-DigitalInput Programmier - - Dieses Beispiel funktioniert NUR in Teleop. vi, da es von der regulären 50Hz-Rate abhängt, bei der Teleop. vi aufgerufen wird. Das gleiche kann man woanders tun, aber Sie müssen eine regelmäßige 20ms Verzögerung hinzufügen. WPI Robotics-Bibliothek-DriverStation-Joystick WPI Robotik-Aktuatoren-MotorControl Programmier-Numerische Joystick-Ansprechkurve (2010) - Beispiel ist eine einfache Cubed-Antwortkurve WPI Robotics Library-DriverStation-Joystick WPI Robotik-Aktuatoren-MotorControl Programmierung - Numeric Joystick Deadband (2014) - Wie man mit einem schlampigen Joystick, die nicht ganz auf Null zurück, wenn freigegeben. Im ersten Beispiel wird der Joystick innerhalb des Totbereichs ignoriert (.1 bis -.1 in diesem Beispiel) und außerhalb dieses Bandes liefert die Motorleistung von 0 bis 1. Das zweite Beispiel weist die gleiche Totzone auf, schneidet jedoch die Motorausgangsleistung ab. 1 und 1 (oder -.1 und -1), so dass keine .05 Macht zeigt sich immer. Dies ist gut für Geräte, wie z. B. drivetrains, die nicht bewegen mit weniger als .3 Macht sowieso. Es gibt dem Joystick ein wenig mehr Reichweite. WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-Aktoren-MotorControl Programmier-Vergleich Programmier-Numerische Spannung korrigierte Tank-Treiber Beispiel (2012) - dies ist eine einfache Möglichkeit, um Ihr Laufwerk steuert Antwort ein wenig mehr konsistent WPI Robotics Library-RobotDrive WPI (2010) WPI Robotics Library-IO-Digitaleingang Programmier-Vergleich Programmier-Numerisch Digital 0-9 BCD-Schalter (2010) WPI Robotics Library-IO-Digitaleingang Programmier-Boolescher Programmier-Array Analogschalter (2010) - Beispiel für die Verwendung von Analogeingängen als Multipositionsschalter WPI Robotics Library-IO-AnalogChannel Programmier-Vergleich Programmierung-Boolean Schreiben der Nachricht an die Treiberstation WPI Robotics Library-DriverStation Programmierung-String Programming-String-StringNumber (2010) Programmier-Datei IO-File-Konstanten FOUR-Vision-Image-Management-Tachometer (2010) - nimmt eine digitale an Sensor, wie zum Beispiel ein retroreflektierender Lichtsensor, wird verwendet, um ein Spinnobjekt zu detektieren. Eine Warnung über Counter - es kann Rührei oder falsche Werte beim Start zu produzieren, also seien Sie vorsichtig und untersuchen Sie die Ergebnisse, wenn Sie es zuerst verwenden. WPI Robotics Library-Sensors-Counter Encoder (2010) Es können nur vier Encoder mit 4x abgetastet werden, aber viele mit 2X. (2010) WPI Robotics Library-Sensoren-Beschleunigungsmesser Ultraschallsensor - MaxBotix EZ1 Sonar (2012) WPI Robotics Library-IO-Digital Input Gyroscope (2010) WPI Robotics Library-Sensoren-Gyro Accelerometer (2010) - AnalogChannel Ultraschallsensor - nur für gekoppelte Emittersensoren Vex-style (2010) WPI Robotics Library-Sensoren - Ultraschall I2C Sensor (2010) - dies nutzt einen Hitech I2C Kompass für das Beispiel WPI Robotics Library-Kommunikation-I2C Programmier-Array Programming-Numeric - Daten Manipulation Counting Things (2012) WPI Robotics Bibliothek-IO-Digitaleingabe Programmier-Strukturen Programmier-Vergleich Programmier-Boolean Moving Average (2010) - Sie rufen dieses Subvi an, um bei jedem Aufruf einen neuen Wert hinzuzufügen und erzeugt den Mittelwert über ein Fenster Der letzten n Abtastwerte. Sie sagen, dass die Anzahl der Werte (n) nur mit dem ersten Aufruf durchschnittlich ist, danach wird diese Eingabe ignoriert. Außerdem können Sie wissen, wann Sie einen vollständigen Satz von Werten erreicht haben. Dieses Beispiel veranschaulicht die Initialisierung, die Sequenzierung, um Clobbering-Werte zu vermeiden, wie Sie sie verwenden, und sichern Sie vor Änderungen, die nicht geändert werden können, die Array-Manipulation und die Erstellung eines Cycling-Index. LabVIEW verfügt über einige eingebaute Filter, die die Arbeit für Sie in der Funktion pallete unter Signal Processing-Filter finden. Programmier-Programmierung-Numerische Programmierung-Numerische-Umwandlung Programmierung-Boolean Programmierung-Synchronisation State Machine (2010) - die Idee hier ist, dass Sie verschiedene Dinge auf der Grundlage eines bestimmten Zustands Ihres Programms verfolgen wollen. In diesem Beispiel fügen Sie einige Arten von Aktivitäten für jeden Zustand, wie Aktivierung von Solenoiden oder Motoren. Die Zustände können sich auf der Grundlage einer Sensorrückkopplung ändern, beispielsweise eines Kugelsensors. WPI Robotics-Bibliothek-DriverStation-Joystick Programmier-Strukturen Programmier-Vergleich Programmier-Numerisches Delayed Event (2010) - dies ist für den Einsatz innerhalb iterativen vis, wie Teleop, und könnte einfach eine Aktion zu starten, dann stoppen Sie es n Sekunden später. Diese Art von Aktion kann auch für Sie durch die verstrichene Zeit vi durchgeführt werden. WPI Robotics Library-DriverStation-Joystick Programmier-Strukturen Programmierung-Vergleich Programmierung-Timing Programmierung-Numerisches Programmieren-Numerische-Umwandlung P (ID) Beispiel (2010) - Dieser Code setzt einen Pot auf dem Roboter auf die X-Achse eines Joysticks Proportionalrückführung. Es werden keine I - oder D-Terme verwendet. Der Großteil der Arbeit hier ist nur der Teil, der das gesamte Spektrum der Joystick-Bewegung auf den Potentiometer (Pot) Sensor des Lenkmotors abbildet. Der PID-Teil ist ziemlich einfach. Der schwierigere Teil stimmt den P-Koeffizienten durch Experimentieren mit dem realen Roboter ab. WPI Robotics-Bibliothek-DriverStation-Joystick WPI Robotik Bibliothek-Aktoren-MotorControl PID Programmierung-Numerische Kamera Beispiel (2009-Stil, der funktionieren würde, wie in 2010s Periodic Tasks. vi) Das 2010 Framework bereits hat Die Kamera eingebettet, WPI Robotics-Bibliothek-Kamera FIRST Vision-Image-Management-Programmierung-Strukturen Interrupt (2010) Verwendung von diesem wird selten sein, aber dies kann entweder mit einem digitalen Eingang oder einem analogen Trigger verwendet werden. WPI Robotics Library-Utilities-Interrupts WPI-Robotik Bibliothek-IO-Digitaleingangsgleichungen (2010) Programmier-Numerische Mathematik - Elementare Sonderfunktionen-Trigonometrische Funktionen Programmierstrukturen Der Formelknoten erlaubt das Einfügen einer ziemlich guten Teilmenge von C (2014) Um C-Funktionen aus LabVIEW aufzurufen, können Sie eine C-Quellbibliothek erstellen und diese mit Hilfe einer Call Library-Funktion aufrufen. Einfache Variationen über autonome autonome Independent. vi können mehrere parallele Aufgaben sein. Beispielsweise können die folgenden beiden Abtastwerte ziemlich bequem in demselben vi zusammen existieren. Zwei unabhängige Sequenzen arbeiten gleichzeitig, der eine fährt den Roboter, der andere blinkt ein Solenoid-Statuslicht. Dieser Fall ist ganz einfach, aber er zeigt, dass viel kompliziertere parallele unabhängige Aufgabe wie diese möglich ist. Vielleicht ein Roboter jonglieren, während ein Labyrinth navigieren. Flache Sequenz - Wahrscheinlich die einfachste Methode, eine feste Sequenz autonomer Bewegungen zu programmieren. Alles innerhalb eines Rahmens muss vor dem nächsten Frame abgeschlossen sein. Es hat den Blick des Filmfilms. (2012): Loop - Wenn Theres eine Aktion oder eine Reihe von Aktionen, die Sie einfach nur wiederholen wollen, solange Autonomous-Modus dauert, können Sie so etwas tun. Dieses Beispiel funktioniert nur ein Solenoid, öffnen und schließen Sie es immer und immer wieder. Wenn kein Solenoid tatsächlich angeschlossen ist, erhalten Sie noch ein blinkendes Licht auf dem Solenoidmodul. Dies setzt voraus, dass der User Watchdog nicht verwendet oder anderweitig behandelt wird (2010): Copyright copyright 2005 - 2017 Hauppauge Robotics. Alle Rechte vorbehalten. Über diese Website.

No comments:

Post a Comment