In diesem Artikel werden die verschiedenen Funktionen und zugehörigen Konzepte von NI-PXI-Arbiträrsignalgeneratoren besprochen. Weitere Informationen zu NI-PXI-Arbiträrsignalgeneratoren finden Sie unter Was ist ein PXI-Signalgenerator?
Die Speicherarchitektur der meisten Signalgeneratoren schränkt Signalverlaufsgröße und -quanten ein. Jeder in den Gerätespeicher heruntergeladene Signalverlauf muss mindestens eine minimale Signalverlaufsgröße in Bezug auf die Anzahl der Samples haben. Darüber hinaus muss die Größe des in den Gerätespeicher heruntergeladenen Signalverlaufs in Samples ein ganzzahliges Vielfaches einer bestimmten Zahl oder eines bestimmten Quantums sein.
So ist beispielsweise der NI-5412-Arbiträrsignalgenerator mit einer Mindestgröße von 4 und einem Signalverlaufsquantum von 4 flexibler als sein Vorgänger mit einer Mindestgröße von 256 und einem Quantum von 8 Samples. Das NI 5412 kann Signalverläufe der Größe 4, 8, 12, 16 usw. ausgeben, während der Vorgänger nur Signalverläufe der Größe 256, 264, 272, 280 usw. ausgeben konnte.
In den Onboard-Speicher eines Signalgenerators können mehrere Signalverläufe und deren Signalverlaufsablaufanweisungen geladen werden. Das Konzept der Verwendung einer Sequenz zur Erzeugung von Signalverläufen wird als "Signalverlaufssequenzierung" oder "Verknüpfung und Schleife" bezeichnet. Das Verknüpfen von Signalverläufen gibt die Wiedergabeliste des AWG an. Da AWGs Signalverläufe im karteneigenen Speicher speichern, ist die Länge des Signalverlaufs begrenzt. Signalverlaufsschleifen erzeugen Signale mit Unterkomponenten, die sich mehrfach wiederholen. Das Schleifen eines Signalverlaufssegments verbessert die Speichereffizienz und erhöht die potenzielle Dauer des Signalverlaufs.
Die folgenden Abbildungen zeigen die Konzepte von Signalverläufen und Segmentsequenzierung.
Abbildung 1
In Abbildung 1 stellt Signalverlauf A eine einzelne Periode einer Sinusschwingung dar, die in den karteneigenen Speicher heruntergeladen wird. Signalverlauf B steht für eine einzelne Periode eines Rampensignals, das in den karteneigenen Speicher heruntergeladen wird. Denken Sie daran, dass jeder dieser Signalverläufe der Mindestgröße und den Quantenregeln folgen muss.
Abbildung 2
Segment 1 in Abbildung 2 zeigt ein Segment, das mit Signalverlauf A erstellt wurde und dreimal wiederholt oder geschleift wird. Segment 2 enthält zwei Schleifen des Typs Signalverlauf B. Segment 3 enthält nur einmal eine Signalverlaufsschleife A.
Abbildung 3
Wie in Abbildung 3 dargestellt, sind diese Signalverläufe in einer Sequenz verknüpft.
Signalquellen bieten verschiedene Arten der Hardware-Triggerung zur Steuerung der Signalerzeugung. Ein Trigger ist ein interner oder externer Erreger, der eine oder mehrere Gerätefunktionen auslöst. Trigger-Stimuli umfassen digitale TTL-Flanken, Softwarefunktionen und Analogpegel. Externe Trigger können wieder exportiert werden und zusammen mit Markierungsereignissen (die später erläutert werden) können Sie die Hardwareoperation mit externen Schaltungen oder anderen Geräten von NI synchronisieren. Signalquellen-Trigger initiieren in der Regel eine Signalverlaufserzeugung oder veranlassen den AWG, nach Beginn der Signalverlaufsausgabe von einer Signalverlaufsstufe zur nächsten zu wechseln. Im Folgenden werden vier häufig verwendete Trigger-Modi beschrieben: Start-Trigger-Modus, Dauer-Trigger-Modus, Stufen-Trigger-Modus und Burst-Trigger-Modus.
Abbildung 4
Wie in Abbildung 4 dargestellt, erzeugt die im Speicher definierte Signalverlaufssequenz im Start-Trigger-Modus nur einmal die gesamte Sequenz und stoppt dann die Signalverlaufserzeugung. Nachdem der Generator einen Start-Trigger empfängt, beginnt die Signalverlaufserzeugung am ersten Segment und wird bis zum letzten Segment fortgesetzt. Nachdem die gesamte Sequenzliste erzeugt wurde, wird kontinuierlich das letzte Sample des letzten Segments erzeugt.
Im kontinuierlichen Trigger-Modus wird dagegen die gesamte Folge von Signalverlaufssegmenten kontinuierlich wiederholt (siehe Abbildung 5). Sowohl im Start- als auch im kontinuierlichen Trigger-Modus werden alle nachfolgenden Trigger nach dem Anfangs-Trigger ignoriert.
Abbildung 5
Im Stufen-Trigger-Modus (siehe Abbildung 6) erzeugen die in der Sequenzliste definierten Signalverläufe bei jedem Erkennen eines Triggers ein Segment. Der Signalverlauf wird so oft durchlaufen, wie für dieses Segment konfiguriert wurde. Nach dem Stoppen der Erzeugung eines Segments wird das letzte Sample des Signalverlaufs kontinuierlich wiederholt, bis der nächste Trigger empfangen wird. Wenn der nächste Trigger empfangen wird, erzeugt der durch das nächste Segment definierte Signalverlauf eine konfigurierte Anzahl von Schleifen. Nachdem die Sequenzliste erschöpft ist, kehrt die Signalverlaufserzeugung zum ersten Segment zurück und nachfolgende Trigger starten den Prozess erneut. Ein Trigger wird erst erkannt, nachdem das Segment seine Erzeugung beendet hat. Anderenfalls wird der Trigger ignoriert.
Abbildung 6
Der Burst-Trigger-Modus funktioniert sehr ähnlich wie der Stufen-Trigger-Modus, mit dem Unterschied, dass jedes in der Sequenzliste definierte Signalverlaufssegment kontinuierlich erzeugt wird, bis ein anderer Trigger auftritt, anstatt einfach das letzte Sample des letzten Segments zu wiederholen.
Abbildung 7
Ein Marker ist ein digitaler Impuls, der an bestimmten Punkten innerhalb einer Signalverlaufserzeugung erzeugt werden kann. In jedem Sequenzsegment kann ein Marker platziert und als Trigger zur Steuerung des Timings anderer Geräte verwendet werden. Marker-Ausgänge werden beispielsweise häufig als digitale Trigger für Hochgeschwindigkeitsdigitalisierer und Oszilloskope verwendet.
Marker-Ausgänge werden durch Angabe eines Offset-Werts (in Sample-Anzahl) vom Beginn des Signalverlaufspuffers für jedes Segment festgelegt. Wenn der Signalverlauf mehrere Schleifen in einem Segment durchläuft, erzeugt die Markierung jedes Mal, wenn der Signalverlauf an der konfigurierten Sample-Position durchläuft.
Um eine Markierung nur einmal in einem Segment zu erzeugen, in dem der Signalverlauf mehrmals durchläuft, teilen Sie das Segment in mehrere Segmente auf. Wenn Sie z. B. nur bei der ersten Iteration eines Sinussignals mit 100 Schleifen einen Marker erzeugen möchten, erstellen Sie ein Segment, das den Sinussignalverlauf mit dem Marker an einer bestimmten Sample-Position erzeugt und nur einmal durchläuft. Erstellen Sie ein zweites Segment, das den Sinussignalverlauf ohne Markierung und 99 Schleifen erzeugt.
Wie in Abbildung 8 dargestellt, kann dieses Verfahren in verschiedenen Kombinationen von Segmenten verwendet werden, um alle fünf Schleifen des Sinussignals einen Marker zu erzeugen, indem ein Segment mit einem Marker und einer Schleife (Segment 1) erstellt wird, gefolgt von einem Segment ohne Marker, das viermal durchlaufen wird. Diese beiden Segmente werden so lange wiederholt, wie Sie den Zyklus wiederholen müssen.
Abbildung 8
Die größte Einschränkung bei der Ausgabe von Standardmarkern besteht darin, dass pro Signalverlaufssegment nur ein Markerereignis auftreten kann. Das Datenmarkerereignis erweitert den Marker-Funktionsumfang, so dass mehrere Markerereignisse in einem Segment möglich sind. Ob Ihr Gerät Datenmarker-Ereignisse unterstützt, erfahren Sie in der Anleitung Suchen des richtigen Signalgenerators.
Eine Datenmarkierung ist ein Ereignis, mit dem Sie eines der 16 Signalverlaufsdatenbits an ein beliebiges gültiges Ziel auf dem Gerät exportieren können. Denken Sie daran, dass ein AWG eine Reihe von digitalen Samples mit Hilfe eines Digital-Analog-Wandlers in einen analogen Signalverlauf umwandelt. Das NI 5421 AWG hat beispielsweise 16 Signalverlaufsdatenbits pro Sample. Bis zu vier der 16 Signalverlaufsdatenbits können gleichzeitig exportiert werden.
Der digitale Pegel eines Datenmarkierungsereignisses ändert sich zu dem Zeitpunkt, zu dem ein bestimmtes Datenbit in den Signalverlaufsdaten umschaltet. Wenn das Signalverlaufsdatenbit mehrmals in einem Segment umschaltet, ändert sich der Datenmarkierungspegel jedes Mal. Wenn der Datenbitpegel "High" ist, ist der Datenmarkerpegel "High". Sie können diese Beziehung auch invertieren.
In der folgenden Abbildung sehen Sie das exportierte Datenmarkierungsereignis, das zwischen Low und High wechselt, während das angegebene Datenbit umschaltet. Auf dem NI 5421 können Datenmarkerereignisse auf den RTSI-Bus, PXI-Trigger-Leitungen, SYNC OUT/PFI 0 und PFI 1 oder PFI 4 und PFI 5 exportiert werden.
Abbildung 9
Datenmarkerereignisse ermöglichen eine engere Synchronisation zwischen Signalgeneratoren und anderen Geräten. So werden z. B. ein AWG und ein A/D-Wandler häufig mit dem exportierten Start-Trigger des AWG synchronisiert. Zwischen der Ausgabe des Start-Triggers und der Erzeugung analoger Signalverläufe am Ausgangsanschluss besteht jedoch eine kurze Verzögerung. Bei Verwendung des Datenmarkerereignisses als Trigger-Quelle werden schnellere Trigger-Reaktionszeiten erzielt, da das Markerereignis direkt mit der Analogausgabe synchronisiert ist.
Skripte sind eine leistungsstarke Funktion, mit der Sie schnell und einfach sehr komplexe Signalverlaufs- und Trigger-Sequenzen erstellen können. Sie können mehrere Signalverläufe in einem Erzeugungsvorgang mit Hilfe eines Skripts "verknüpfen und schleifen". Ein Skript ist eine Reihe von Anweisungen, die die zu erzeugenden Signalverläufe beschreiben, die Reihenfolge, in der sie erzeugt werden, wie oft sie erzeugt werden und sogar bedingte Anweisungen enthalten können. Es können mehrere Skripte gleichzeitig auf dem Gerät vorhanden sein – Sie können auswählen, welches Skript ausgeführt werden soll, indem Sie auf den Skriptnamen verweisen. In diesem Abschnitt wird die Syntax zum Erstellen eines Skripts sowie die Verwendung von Skripten in Ihren Anwendungen beschrieben.
Sehen wir uns zunächst ein einfaches Skriptbeispiel an.
Bei der Ausführung erzeugt dieses Skript nacheinander drei Signalverläufe. Komplexere Skripte können einfach mit den sechs Hauptanweisungen erstellt werden: Skript/Ende Skript, erzeugen, Wiederholung/Ende Wiederholung, if/else/Ende wenn, warten und löschen.
Skript/Ende-Skript – Definiert Anweisungen, die in einem einzelnen Skript enthalten sein sollen und dem Skript einen Namen zuweisen sollen.
Generate - Erzeugt einen benannten Signalverlauf. Sie können den gesamten Signalverlauf oder einen Teil davon erzeugen. Sie können auch eine Markierung an einer bestimmten Stelle im benannten Signalverlauf erzeugen.
Wiederholen/Beenden - Wiederholt Anweisungen. Sie können eine endliche Anzahl von Wiederholungen durchführen, für immer wiederholen oder wiederholen, bis ein Hardware-Skript-Trigger empfangen wird.
If/Else/End If - Legt fest, welche Abschnitte eines Skripts ausgeführt werden sollen, basierend darauf, ob ein bestimmter Skript-Trigger empfangen wurde.
Warten - Hält die Ausführung an, bis ein Skript-Trigger empfangen wird.
Löschen - Ignoriert einen zuvor gelatchten Skript-Trigger. Diese Option wird in der Regel vor dem Warten bis oder Wiederholen bis Anweisungen verwendet.
Sehen wir uns einige Beispiele an, die diese Skriptfunktionen zum Erstellen komplexer Signalverlaufsfolgen verwenden. Mit dem NI-Skript-Editor können Benutzer Skripte einfach schreiben, warten und sogar Fehler überprüfen.
Endliche Wiederholung (N Mal) - Dieses Skript erzeugt Signalverlauf1, Signalverlauf2 und dann Signalverlauf3. Signalverlauf2 wird 3 Mal wiederholt.
Bedingte Wiederholung - Dieses Skript erzeugt Signalverlauf1, Signalverlauf2 und dann Signalverlauf3. Signalverlauf2 wird wiederholt, bis Skript-Trigger0 auftritt.
Bedingte Verzweigung - If/Then Else - Dieses Skript erzeugt einen Signalverlauf1. Wenn dann scripttrigger0 empfangen wurde, erzeugt wavform2. Anderenfalls wird Signalverlauf3 erzeugt, wenn scripttrigger0 nicht empfangen wurde.
Durchlaufen mehrerer Signalverläufe - Dieses Skript erzeugt einen Signalverlauf1 und wartet dann auf scripttrigger0. Sobald scripttrigger0 auftritt, erzeugt das Skript Signalverlauf2. Das Skript wartet dann, bis Skript-Trigger0 erneut auftritt, und erzeugt dann Signalverlauf3. Beachten Sie, dass die Clear-Anweisung verwendet wird, um sicherzustellen, dass Skript-Trigger, die vor dem Warten bis zum Befehl empfangen wurden, ignoriert werden. Diese gesamten Sequenzen wiederholen sich für immer, bis die Erzeugung abgebrochen wird.
Erzeugen von Signalverläufen mit Markern - Dieses Skript erzeugt einen Signalverlauf1 und ein Markerereignis an Beispiel 20.
Kunden, die sich für dieses Thema interessiert haben, zeigten auch Interesse an den folgenden NI-Produkten: