Mehr Möglichkeiten mit LabVIEW FPGA und Digitalmodulen der C-Serie unter Verwendung von CompactRIO

Überblick

National Instruments bietet über 20 Digitalmodule der C-Serie an, mit denen Sie digitale Signale in einem NI CompactRIO System ein- und ausgeben können. Digitalmodule der C-Serie sind in einer Vielzahl von Signalpegeln, Geschwindigkeiten und Kanälen erhältlich, so dass Sie ein System erstellen können, das Ihren Spezifikationen entspricht. Digitalmodule eignen sich hervorragend für grundlegende Aufgaben wie das Überwachen von Zuständen oder das Ein- und Ausschalten von Maschinen. Bei Verwendung von CompactRIO mit DAQmx können Sie sogar Counter-Tasks mit Hilfe der DAQmx-API implementieren, was den Vorteil einer einfacheren Programmierung hat. Mit LabVIEW FPGA können Sie die Leistungsfähigkeit Ihrer Digitalmodule jedoch noch weiter erweitern.

In diesem Artikel werden sieben Möglichkeiten untersucht, wie Sie den Funktionsumfang Ihres Digitalmoduls erhöhen können. Die folgenden Beispiele zeigen die Programmierung mit LabVIEW FPGA und der FPGA-Schnittstelle. Damit diese Beispiele ordnungsgemäß funktionieren, müssen sie ordnungsgemäß für Ihr NI CompactRIO Chassis konfiguriert sein.

Hinweis: Jedes Digitalmodul der C-Serie bietet unterschiedliche Timing-Eigenschaften. Wählen Sie ein Modul mit den Timing-Merkmalen aus, die Ihren Anforderungen entsprechen. Die unten aufgeführten Beispieldateipfade gelten auch für LabVIEW 2012. Ab LabVIEW 2013 wurden die FPGA-Beispiele überarbeitet und in neue Dateipfade eingefügt. Die Dateipfade für LabVIEW 2013 und neuere Beispiele sind die neuen Beispiele, die den in diesem Artikel verwendeten Beispielen nahekommen.

Inhalt

Ereigniszählung

Ereigniszählung ist eine der einfachsten Aufgaben, die Sie mit einem Digitalmodul der C-Serie ausführen können.  Die Ereigniszählung, bei der jede steigende und/oder fallende Flanke eines digitalen Signals gezählt wird, eignet sich für eine Vielzahl von Anwendungen, von der Messung eines Motors bis hin zur Berücksichtigung des Flüssigkeitsvolumens, das durch eine Rohrleitung fließt. Die Programmierung mit dem NI-DAQmx-Treiber erfordert die Verwendung der eigenen Zähler oder eines separaten Zählermoduls, was für viele Anwendungen ausreichend ist.  Alternativ können Sie mit dem FPGA eigene Zähleranwendungen erstellen, wodurch sich die Anzahl der Zähler erhöht, die Sie ohne zusätzliches Zählermodul implementieren können.  Die Anzahl der Zähler ist nur durch die Anzahl der digitalen Leitungen in Ihrem System und die Größe Ihres FPGAs begrenzt.

Im folgenden Beispiel wird gezeigt, wie ein Ereigniszähler mit LabVIEW FPGA implementiert wird. Das Beispiel verwendet boolesche Logik, um festzustellen, ob eine steigende oder fallende Flanke aufgetreten ist. Dieses Beispiel finden Sie im LabVIEW Example Finder und navigieren zu: 

LabVIEW 2013 und neuer: Hardwareein- und -ausgabe»CompactRIO»Signalerzeugung und -verarbeitung»Digital»Zähler»Flankenzähler»Flankenzähler.lvproj.

LabVIEW 2012 und älter: Hardwareein- und -ausgabe»CompactRIO»FPGA-Grundlagen»Zähler»Ereigniszähler»Ereigniszähler, entweder Flanke – cRIO.lvproj

Konfigurieren Ihres Ereigniszählungs-VIs

  1. Verbinden Sie die Leitung, die gezählt werden soll, mit einer beliebigen digitalen Eingangsleitung.
  2. Öffnen und bearbeiten Sie das Blockdiagramm des VIs "Quad Ctr.vi", sodass der digitale Eingangskanal des physikalischen Signals die booleschen Bedienelemente A und B ersetzt.
  3. Starten Sie das VI, um es zu kompilieren und im interaktiven Modus zu verwenden.

Abbildung 1. Bearbeiten des Programmcodes zum Zählen externer Signale

 

PWM

Verwenden Sie Pulsbreitenmodulation (PWM), um eine Reihe digitaler Impulse zur Steuerung einer analogen Schaltung auszugeben. Sie können die Länge und Frequenz dieser Impulse variieren, um die Gesamtleistung der Schaltung zu bestimmen. PWM-Signale werden am häufigsten zur Steuerung von Gleichstrommotoren verwendet, eignen sich aber auch für viele andere Anwendungen, z. B. zum Steuern von Ventilen oder Pumpen oder zum Einstellen der Helligkeit einer LED.

Die digitale Impulsfolge, aus der ein PWM-Signal besteht, hat eine feste Frequenz und variiert die Pulsbreite, um die durchschnittliche Leistung des Signals zu ändern. Das Verhältnis der Impulsbreite zur Periodendauer wird als Tastgrad des Signals bezeichnet. Wenn z. B. ein PWM-Signal eine Periode von 10 ms hat und seine Impulse 2 ms lang sind, spricht man von einem Tastgrad von 20 Prozent. Durch Steuern des Tastgrads der PWM können Sie steuern, wie viel Leistung die analoge Schaltung verbraucht. Sie können Digitalmodule der C-Serie verwenden, um Ihre PWM auszugeben oder den Tastgrad einer vorhandenen PWM zu messen.

Wenn Ihr CompactRIO-Controller die NI-DAQmx-Programmierung unterstützt, können Sie auch PWM-Tasks in NI-DAQmx implementieren. Da PWM jedoch Zähler erfordert, ist die Anzahl der PWM-Tasks durch die Anzahl der eigenen Zähler in Ihrem CompactRIO begrenzt. Durch die Programmierung dieses Tasks im FPGA erhöht sich die Anzahl der PWM-Tasks, die implementiert werden können.

Abbildung 2: Impulsbreitenmodulation

Das folgende Beispiel verwendet das VI Loop Timer.vi, um die Dauer des High- und Low-Pegels eines Impulses zu steuern. Dieses Beispiel finden Sie im Example Finder und navigieren zu:

LabVIEW 2012 und älter: Hardwareein- und -ausgabe»CompactRIO»FPGA Fundamentals»Zähler»Ereigniszähler»PWM Out, Simple - cRIO.lvproj

LabVIEW 2013 und neuer: Hardwareein- und -ausgabe»CompactRIO»Signalerzeugung und -verarbeitung»Digital»Pulsbreitenmodulation»PWM Generation»PWM Generation.lvproj.

 

Konfigurieren Ihres PWM-VIs

  1. Verbinden Sie die zu zählende Leitung mit einer beliebigen digitalen Eingangsleitung.
  2. Bearbeiten Sie das Blockdiagramm des VIs PWM Out, Simple mit dem digitalen Ausgangskanal, an dem Sie Ihre PWM erzeugen möchten.
  3. Starten Sie das VI, um es zu kompilieren und im interaktiven Modus zu verwenden.

Abbildung 3: Bearbeiten des Programmcodes zur Erzeugung eines PWM-Signals

 

Encoder

Ein Encoder ist ein elektromechanisches Gerät zur Bewegungs- oder Positionsmessung in Anwendungen wie medizinischen Geräten oder industriellen Maschinentests. Die meisten Encoder verwenden optische Sensoren, um elektrische Signale in Form von Impulsfolgen bereitzustellen. Mehrere Impulsfolgen liefern weitere Informationen zum Signal. Ein Digitalmodul der C-Serie wie das NI 9401 kann diese Impulsfolgen erfassen und mit dem FPGA die Signale in Bewegungs-, Richtungs- oder Positionsinformationen umwandeln. Digitalmodule der C-Serie können auch zur Nachahmung der Ausgabe eines Encoders für andere Anwendungen wie Hardware-in-the-Loop (HIL) verwendet werden. Da sie so viele Arten von Anwendungen bedienen, können Encoder in vielen verschiedenen Formen, Größen und Ausgangspegeln erhältlich sein.  NI bietet mehrere Digitalmodule der C-Serie, die Sie mit dem spezifischen Encoder Ihrer Anwendung integrieren können. Verwenden Sie das NI 9421 zum Lesen von 0 – 24V-Signalen in einer industriellen Umgebung. Verwenden Sie das NI 9401 zum Lesen von Transistor-Transistor-Logik (TTL) oder 0 – 5V-Signalen in einer sauberen Laborumgebung.

Wenn Ihr CompactRIO-Controller die NI-DAQmx-Programmierung unterstützt, können Sie auch Encoder-Tasks in NI-DAQmx implementieren, aber die Anzahl der Encoder-Tasks ist begrenzter. Durch die Programmierung dieses Tasks im FPGA erhöht sich die Anzahl der Encoder-Tasks, die Sie haben können.

Im folgenden Beispiel wird gezeigt, wie Sie mit LabVIEW FPGA und Ihrem CompactRIO-System Encoder-Messungen durchführen. Das Beispiel verwendet boolesche Logik, um festzustellen, ob sich ein AB-Quadratur-Encoder dreht und in welche Richtung er sich dreht. Dieses Beispiel finden Sie im Example Finder und navigieren zu: 

LabVIEW 2013 und neuer: Toolkits und Module»FPGA»CompactRIO»Signalerzeugung und -verarbeitung»Digital»Quadraturkodierung»Quadraturdecoder»Quadrature Decoder.lvproj.

LabVIEW 2012 und älter: Hardwareein- und -ausgabe»CompactRIO»FPGA Fundamentals»Counter»Quadrature Input»Quad Ctr – cRIO.lvproj.

Konfigurieren Ihrer Encoder-Anwendung

    1. Verbinden Sie Ihr A- und B-Signal mit zwei digitalen Leitungen.
    2. Bearbeiten Sie das Blockdiagramm des VIs "Quad Ctr.vi" durch den digitalen Eingangskanal des physikalischen Signals, um die booleschen Bedienelemente A und B zu ersetzen.
    3. Starten Sie das VI, um es zu kompilieren und im interaktiven Modus zu verwenden.

Abbildung 4: Verwenden der booleschen Logik im FPGA zum Verfolgen der Position

 

Frequenz

Die Frequenz eines digitalen Signals ist die Rate, mit der die Periode auftritt, wobei die Periode die Zeit zwischen steigenden oder fallenden Flanken oder die Umkehrung der Periode mit einer Einheit von Hz ist. Die Frequenz eines digitalen Signals kann in einer Vielzahl von Anwendungen äußerst nützlich sein, von der Bestimmung der Geschwindigkeit oder Winkelgeschwindigkeit bis hin zur Dekodierung der Intensität einer Lichtquelle. Verwenden Sie LabVIEW und CompactRIO, um Ihr Digitalmodul der C-Serie so zu programmieren, dass es das digitale Signal an den FPGA überträgt, der einen Periodendekodieralgorithmus verwendet. Die Periode wird dann an eine Host-Anwendung übertragen, die die Frequenz extrapoliert. Nachdem Sie die Frequenz erfasst haben, können Sie sie einem bekannten physikalischen Phänomen zuordnen.  

Durch die Programmierung von Frequenzeingangs-Tasks in LabVIEW FPGA können Sie die Anzahl der FPGA-Eingangs-Tasks im Vergleich zu NI-DAQmx erhöhen. Dies kann besonders nützlich sein, da einige Tasks zur Frequenzerfassung zwei Zähler erfordern.

Bild.jpg

Abbildung 5. Periode und Frequenz eines digitalen Signals

Im folgenden Beispiel wird beschrieben, wie Frequenzmessungen mit LabVIEW FPGA und einem CompactRIO-System durchgeführt werden. Das Beispiel verwendet boolesche Logik, um festzustellen, wann eine Flanke auftritt, und verwendet dann den FPGA-Takt, um die Zeit zwischen Impulsen zu bestimmen. Dieses Beispiel finden Sie in der Beispiel-Suchmaschine, indem Sie LabVIEW aufrufen und:

LabVIEW 2013 und neuer: Hardwareein- und -ausgabe»CompactRIO»Signalerzeugung und -verarbeitung»Digital»Perioden- und Phasenmessung»Perioden- und Phasenmessung.lvproj.

LabVIEW 2012 und älter: Hardwareein- und -ausgabe»CompactRIO»FPGA-Grundlagen»Zähler»Frequenzmessung»Zähler und Periodendauer – cRIO.lvproj.

Konfigurieren der Frequenzmessung

  1. Verbinden Sie das Signal mit einer digitalen Leitung.
  2. Bearbeiten Sie das Blockdiagramm des VIs Count and Period (FPGA) durch den digitalen Eingangskanal des physikalischen Signals, um die booleschen Bedienelemente A und B zu ersetzen.
  3. Starten Sie das VI, um es zu kompilieren und im interaktiven Modus zu verwenden.
     

Abbildung 6: Bestimmen der Periode und Frequenz eines digitalen Signals

Weitere Informationen zur Verwendung von NI-Hardware für Frequenzmessungen https://www.ni.com/de/shop/data-acquisition/measurement-fundamentals/frequency-measurements-how-to-guide.html

Digitale Filterung

Umgebungsfaktoren wie Umgebungsrauschen oder das mechanische „Prellen“ eines industriellen Schalters oder Sensors können es Ihrem Datenerfassungssystem erschweren, klare Signale zu empfangen. Ein CompactRIO-System mit FPGA ermöglicht die Implementierung eines Verfahrens, das als digitale Filterung oder digitale Entprellung bezeichnet wird. Bei der digitalen Filterung wird geprüft, ob ein Signal für eine bestimmte Zeit auf seinem neuen Pegel geblieben ist, bevor die Signaländerung auf den Verarbeitungsaspekt des Systems übertragen werden kann. Diese Methode filtert Störungen oder Rauschen auf der Leitung und reduziert unerwünschtes Verhalten im System.

Im folgenden Beispiel wird gezeigt, wie digitale Leitungen mit boolescher Logik, LabVIEW FPGA und einem CompactRIO-System gefiltert werden.  Das Signal muss für eine bestimmte Zeit auf seinem neuen Pegel bleiben, bevor der gefilterte Eingang die Änderung widerspiegelt. Dieses Beispiel finden Sie in der Beispiel-Suchmaschine, indem Sie LabVIEW aufrufen und:

LabVIEW 2012 und älter: Hardwareein- und -ausgabe»CompactRIO»FPGA-Grundlagen»Digitalfilter»Digitalfilter – kontinuierlich – cRIO.lvproj. 

LabVIEW 2013 und neuer: Ein entsprechendes Beispiel existiert nicht mehr. Sie können den Abschnitt unten in ein leeres VI ziehen.

 

Filtern Ihrer digitalen Leitung

  1. Schließen Sie das Signal physikalisch an eine digitale Leitung an.
  2. Bearbeiten Sie das Blockdiagramm des VIs Digitalfilter – kontinuierlich mit dem digitalen Eingangskanal des physikalischen Signals, um das Eingangselement zu ersetzen.
  3. Starten Sie das VI, um es zu kompilieren und im interaktiven Modus zu verwenden.

Abbildung 7: Filtern von Digitalsignalen mit dem FPGA

Kommunikation

CompactRIO-Systeme und Module der C-Serie enthalten viele Standard-Kommunikationsprotokolle, die von seriellen und Ethernet-Protokollen bis hin zu Industrieprotokollen wie PROFIBUS und MODBUS reichen. Diese Standardprotokolle können jedoch in ihrer Fähigkeit eingeschränkt sein, mit Geräten zu kommunizieren, die unterschiedliche Protokolle oder Steckverbinder verwenden.  Ein CompactRIO-System ermöglicht die Kommunikation mit diesen Geräten über ein Digitalmodul und LabVIEW FPGA.

Abbildung 8: Implementieren des SPI Communication Protocols mit LabVIEW und LabVIEW FPGA

Ein detailliertes Beispiel für die Implementierung des SPI-Busprotokolls mit LabVIEW FPGA finden Sie unter Verstehen des SPI-Busses mit NI LabVIEW für eine detaillierte Erläuterung dieses Protokolls und unter Implementieren des SPI Communication Protocols in LabVIEW FPGA.

Benutzerdefinierte Triggerung

Triggerung ist eine wesentliche Komponente in jedem Datenerfassungs- oder Steuersystem. Verwenden Sie Trigger für Synchronisations-, Alarm- oder Start-/Ausschalt-Tasks. Standard-Trigger-Funktionen in NI-DAQmx bieten jedoch keine benutzerdefinierten Funktionen, z. B. die Möglichkeit, mehrere Eingangs-Trigger zu verwenden oder an einer oder beiden Flanken zu triggern.  Verwenden Sie FPGA mit einem CompactRIO-System, um benutzerdefinierte Trigger-Anwendungen zu erstellen.

Ein Beispiel für das Erzeugen eines Triggers nur bei Auftreten eines digitalen Musters finden Sie unter Erstellen von Triggern und Zählern (FPGA Module). 

Abbildung 9: Trigger nur erzeugen, wenn ein digitales Muster auftritt

Nächste Schritte