In diesem Dokument werden die Grundlagen des Timings und der Synchronisation in NI-DAQ™mx innerhalb der LabVIEW-Entwicklungsumgebung behandelt. Themen sind insbesondere die Durchführung von Messungen im Mischmodus, die Synchronisation über analoge Funktionen hinaus und der Austausch von Timing-Signalen zwischen Datenerfassungsgeräten (DAQ).
Die Datenerfassung in befehlsorientierten Programmierumgebungen ist der LabVIEW NI-DAQmx-Programmierung sehr ähnlich, da die Funktionsaufrufe mit denen der NI-DAQmx-VIs identisch sind. Verwenden von NI-DAQmx in textbasierten Programmierumgebungen
Es gibt viele Anwendungen, die eine genaue Timing-Steuerung und die Synchronisation von Vorgängen erfordern. Wenn Sie z. B. mit der Messung und Analyse einer großen Anzahl hochdynamischer Signale beauftragt sind, kann jede Phasenabweichung inakzeptabel sein. Es muss ein Verständnis dafür bestehen, dass eine Messung eines Signals zu einem Zeitpunkt basierend auf einem anderen Signal zum gleichen Zeitpunkt ausgewertet werden kann und daher diese Erfassungen eine Art Synchronisationsschema erfordern. Mit NI-DAQmx und der grafischen Programmierumgebung LabVIEW lassen sich solche Datenerfassungssysteme einfach erstellen.
NI-DAQmx bietet viele leistungsstarke Lösungen für Ihre Timing- und Synchronisationsanforderungen. LabVIEW demonstriert die nächste Generation der Datenerfassung. Vorbei sind die Zeiten, in denen Signalverläufe zwischen Geräten definiert wurden – NI-DAQmx findet automatisch einen Weg, die Signale dorthin zu bringen, wo sie benötigt werden. Sie müssen nur das Ziel angeben. In diesem Sinne arbeitet der Fahrer intelligent hinter den Kulissen, um eine komplexe Konfiguration zu vermeiden. Dies ist jedoch nur die Spitze des Timing- und Synchronisationseisbergs...
Da die meisten Datenerfassungsgeräte der E-Serie über analoge Erfassungs-, analoge Ausgabe-, Zähler-/Timer- und digitale Erfassungs-/Ausgabefunktionen verfügen, besteht die Herausforderung oft darin, das Gerät so zu programmieren, dass die Vorteile jeder Art von Messung mit einiger Sicherheit miteinander synchronisiert sind. Einige Anwendungsfälle sind:
1) Simultan gestartete analoge Erfassung und Ausgabe
Operationen starten gleichzeitig, sind aber nicht synchronisiert
Synchronisierte analoge Erfassung und Ausgabe
Operationen können gleichzeitig gestartet und mit der gleichen Rate ausgeführt werden
Operationen können den Sample-Takt gemeinsam nutzen
2) Synchronisierte analoge Erfassung und Ausgabe mit Trigger
Gemeinsamer Hardware-Trigger und Sample-Takt
3) Synchronisierte Analog- und Zähleroperationen
4) Zähler erzeugt Impulsfolge als Takt für analoge Operation
5) Zählerbetrieb mit Analogtaktgattern
In der NI-DAQmx-API können Sie mit einer sehr kleinen Anzahl von VIs die meisten Ihrer Timing- und Synchronisationsanforderungen erfüllen. Insbesondere mit den VIs DAQmx Timing.vi und DAQmx Trigger.vi können Sie festlegen, in welchem Intervall Ihre Kanäle abgetastet werden sollen und wann sie starten (oder stoppen). Diese beiden VIs nutzen die Polymorphie von LabVIEW und können nicht nur das Timing und die Triggerung analoger Eingangssignale definieren, sondern auch die bereits erwähnte analoge Ausgabe, den Zähler/Timer und die digitale Ein-/Ausgabe (siehe Abbildung 1).
Ein häufiger Anwendungsfall, der Synchronisationsprobleme aufzeigt, ist die Situation, in der Sie möchten, dass eine analoge Erfassung und Ausgabe mit demselben Takt erfolgen. In diesem Fall benötigen Sie zwei Codeketten: eine für die analoge Erfassung und eine für die analoge Ausgabe. Geben Sie mit dem VI "DAQmx - Timing" die gewünschte kontinuierliche Operation an. Belassen Sie für das analoge Ausgabe-Timing den Eingang „Quelle“ als Standard – das heißt, Ihre analoge Ausgabeoperation funktioniert entsprechend dem Standardtakt, also dem internen Takt. Im VI "DAQmx - Timing" zur Erfassung von Analogsignalen müssen Sie lediglich die Quelle als Sample-Takt für die analoge Ausgabe angeben. Dadurch werden sowohl die analoge Erfassung als auch die analoge Ausgabe auf das Timing-Signal der analogen Ausgabe eingestellt (siehe Abbildung 2).
Im vorherigen Beispiel wurde gezeigt, wie analoge Timing-Signale miteinander verknüpft werden können. Was passiert, wenn Sie gemischte analoge und digitale Signale miteinander verarbeiten möchten? Können Sie immer noch dasselbe Maß an nahtloser Integration erwarten? Die Antwort lautet "Ja".
Stellen Sie sich vor, dass Ihre analogen Messungen von einem externen oder nicht traditionellen Taktsignal abhängen – z. B.: Nehmen Sie einmal pro Millisekunde für 10 Millisekunden ein Sample, warten Sie 3 Millisekunden, wiederholen Sie es. In diesem Fall können Sie die Zählerfunktionen eines Geräts der E-Serie verwenden, um das gewünschte Timing-Signal zu erzeugen. Aber wie können Sie der Analogseite sagen, dass sie es als Takt verwenden soll? Die Antwort ist wieder einmal das VI "DAQmx - Timing". Wenn Sie Ihre Quelle als internen Ausgangspin eines Zählers angeben, wird der Zählerausgang zum analogen Eingangstakt ohne Verwendung einer externen Verbindung zum Verbinden der Pins eines Anschlussblocks (siehe Abbildung 3).
Die bei der Synchronisation demonstrierte Benutzerfreundlichkeit erstreckt sich auch auf Trigger. Mit dem VI "DAQmx - Trigger" können Sie eine Operation so einstellen, dass sie entweder auf ein internes oder externes Trigger-Signal (analog oder digital) wartet. Ein gutes Beispiel dafür ist die Ereignis-Triggerung. Bei der Ereignis-Triggerung ignoriert das Gerät die ersten N Trigger, bevor es eine Erfassung startet. Dazu wird mit Hilfe eines Zählers der Einzelimpuls erzeugt, um die Erfassung analoger Signale zu starten. Der Zähler verwendet die ersten N Trigger, um den Low-Anteil des Impulses zu erzeugen, und den gültigen Trigger, um den High-Anteil des Impulses zu starten und die eigentliche Erfassung auszulösen. Im folgenden Beispiel gibt es zwei parallele Codezeilen; die obere konfiguriert die analoge Erfassung und die untere einen Zähler. Die Quelle des Triggers ist der Ausgang von Zähler 0, und Zähler 0 wurde so konfiguriert, dass er einen Trigger-Impuls ausgibt, nachdem er seinen "n-ten" Impuls eingegeben hat. In diesem Fall wird die interne 100-kHz-Zeitbasis als Eingangsquelle ausgewählt, aber Sie hätten auch eine externe Position für die Quelle angeben können, um einen verzögerten Trigger von einer externen Impulsfolge einzurichten (siehe Abbildung 4).
Hinweis: In den letzten beiden Beispielen wird Ctr0InternalOutput und Crt0Out als Position eines Takt- oder Triggersignals verwendet. Ctr0Internal Out ist ein Signal für Verbindungen innerhalb der Karte. Crt0Out sollte verwendet werden, wenn die zählergestützte Ausgabe an PFI und RTSI weitergeleitet wird. Das Beispiel in Abbildung 4 hätte CtrOInternal Out anstelle von Ctr0Out verwenden können.
Um Signale von einem Ort auf einem Gerät an einen anderen zu übertragen, wie in den vorherigen Beispielen gezeigt, müssen Sie einige Dinge beachten. Erstens: Ist NI-DAQmx für das Verbinden dieser Signale konfiguriert? Zweitens: Welche Signale stehen zur Signalführung zur Verfügung? Da die Fähigkeit zum Weiterleiten dieser Signale von einem Zwischenkommunikationsweg abhängt, verwenden Sie den Real-Time-Systemintegrationsbus (RTSI).
Der RTSI-Bus (verfügbar an einem PCI-Gerät als 34-poliger Steckverbinder oder im Backplane-Anschluss an PXI enthalten) legt 7 Pins frei, auf die Timing-Signale von einem Gerät an ein anderes (oder intern an einem Gerät) gesendet werden können. Bevor Sie diesen Kommunikationsweg verwenden können, teilen Sie dem Treiber mit, wie die Geräte im System verbunden sind. Schließen Sie für PCI-Geräte die entsprechenden Geräte über ein RTSI-Kabel an und registrieren Sie diese Verbindung im Measurement & Automation Explorer (MAX). In MAX 3.0 klicken Sie dazu mit der rechten Maustaste auf NI-DAQmx-Geräte und wählen Sie Neues NI-DAQmx-Gerät erstellen >>RTSI-Kabel. Dadurch wird ein RTSI-Kabel zu Ihrer NI-DAQmx-Geräteliste hinzugefügt. Bei PXI-Systemen müssen Sie das PXI-System lediglich identifizieren, indem Sie mit der rechten Maustaste auf PXI-System >> Identify As klicken. Der RTSI-Bus wird in PXI-Systemen als PXI-Trigger-Bus bezeichnet. (Abbildung 5 zeigt ein RTSI-Kabel, das mit einem DAQ-Gerät verbunden ist.)
Auf der Registerkarte Geräteverbindungen im MAX sehen Sie, welche Signale wo in einem DAQ-Gerät geführt werden können. Wenn Sie im MAX auf das DAQ-Gerät klicken, werden die Geräteattribute im Fenster rechts neben der Baumstruktur angezeigt. Wenn Sie unten im Fenster die Registerkarte Geräteverbindungen auswählen, werden alle verfügbaren Signalwege aufgelistet. Die grünen Quadrate zeigen Routen an, die direkt ausgeführt werden können, wobei die gelben Quadrate Routen anzeigen, die durch eine Art Subsystem des Geräts verlaufen müssen. Wenn Sie den Mauszeiger über ein gelbes Quadrat bewegen, werden im Feld Verwendetes Subsystem die Subsysteme aufgeführt, die für die Ausführung der Route benötigt werden. Dies kann nützlich sein, da indirekte Verbindungen manchmal andere Operationen behindern können (Abbildung 6).
Die VIs "DAQmx - Timing" und "DAQmx - Trigger" bieten einen umfassenden Funktionsumfang zum Einrichten Ihrer Operation. Es gibt jedoch auch Fälle, in denen Informationen auf niedrigerer Ebene wichtig sind. Nehmen wir an, Sie müssen wissen, auf welcher Zeitbasis eine analoge Ausgabeoperation aktualisiert wird oder für welchen Pegel ein Analogflanken-Trigger konfiguriert wurde. Diese Informationen werden über die Eigenschaftsknoten DAQmx - Timing und DAQmx - Trigger angezeigt (siehe Abbildung 7). Von diesen Eigenschaftsknoten aus können Sie auf alle relevant konfigurierten Werte zugreifen, um sie entweder festzulegen oder anzuzeigen.
Ein Beispiel dafür, wo der Eigenschaftsknoten "DAQmx - Trigger" komplexe Funktionen aufzeigt, ist die wieder triggerbare Option für Zähler. In früheren APIs hat sich der Code für die Counter-Operation vollständig geändert, indem ein Zähler wieder triggerbar gemacht wurde. Bei der NI-DAQmx-API wird der Zähler durch einfaches Hinzufügen eines DAQmx-Trigger-Eigenschaftsknotens, der auf "Start.Wieder triggerbar" eingestellt ist, von einem einzelnen Trigger in eine wieder triggerbare Operation umgewandelt (siehe Abbildung 8).
In den vorherigen Beispielen wurde gezeigt, wie Sie Operationen an einem Gerät miteinander verknüpfen können (entweder durch Triggerung oder Timing). Aber was ist, wenn die Funktionalität eines Geräts nicht die vollständige Charakterisierung eines Systems ermöglicht? Es gibt sicherlich Zeiten, in denen die reine Kanalanzahl eines Systems die Kombination mehrerer Geräte erfordert. Wenn jedes Gerät eine RTSI-Konnektivität enthält, stehen uns die gleichen Synchronisationsoptionen wie bei einem einzelnen Gerät zur Verfügung.
Um eine Verbindung zwischen Geräten anzuzeigen, klicken Sie im MAX mit der rechten Maustaste auf das RTSI-Kabel und wählen Sie unter Gerät zu Kabel hinzufügen die entsprechenden Geräte aus. Nachdem alle Geräte hinzugefügt wurden, nutzt NI-DAQmx nun alle verfügbaren Verbindungswege zwischen Geräten (die Synchronisation erfolgt nahtlos). Wenn es sich um ein PCI-Gerät handelt, müssen Sie das RTSI-Kabel physisch zwischen den Geräten einfügen.
Jetzt können Sie die entsprechenden Timing- oder Trigger-Pins von anderen Geräten als "Quelle" Ihrer DAQmx-Timing- und Trigger-VIs verwenden. (Die Verwaltung des RTSI-Busses ist dem Benutzer per Voreinstellung verborgen, obwohl die Option besteht, bestimmte Signale mit Hilfe des VIs "Signal exportieren" explizit an bestimmte RTSI-Pins zu leiten.) Das folgende Beispiel zeigt, wie Sie Timing-Signale von einem Gerät an ein anderes übertragen können (siehe Abbildung 10).
Beachten Sie, dass hier zwei separate Operationen an zwei separaten Geräten stattfinden. Der Sample-Takt für Gerät 1 wurde als Sample-Takt für Gerät 2 konfiguriert, indem NI-DAQmx lediglich angewiesen wurde, Dev1/ai/SampleClock als Sample-Takt für Gerät 2 zu verwenden. NI-DAQmx findet heraus, wie diese Verbindung hergestellt werden kann, um sicherzustellen, dass Daten mit der gleichen Rate auf beiden Datenerfassungsgeräten erfasst werden.
Die meisten DAQ-Geräte von NI enthalten Funktionen, mit denen Sie Timing und Trigger gemeinsam nutzen können. NI-DAQmx bietet Ihnen mit seiner charakteristischen Benutzerfreundlichkeit, vereinfachten Analyse und gesteigerten Leistung die Werkzeuge, um sicherzustellen, dass Ihre Messungen im selben Zeitbereich stattfinden.