Verwendung des NI CompactRIO Scan Mode mit NI LabVIEW
Übersicht
Das LabVIEW 8.6 Real-Time Module verfügt über leistungsstarke neue Funktionen für die Programmierung von CompactRIO-Hardware. Diese reduzieren die Entwicklungszeit und Komplexität und der Anwender profitiert von neuen Werkzeugen zur Überwachung und Wartung von CompactRIO-Anwendungen. Bei CompactRIO handelt es sich um einen leistungsstarken Programmable Automation Controller (PAC), der sich durch einen Field-Programmable Gate Array (FPGA), welcher das Herzstück seiner Architektur bildet, von anderen Controllern abhebt. Grob gesagt handelt es sich bei FPGAs um wiederprogrammierbare Siliziumchips. FPGAs bieten die Leistung und Zuverlässigkeit anwenderdefinierte Hardware und sind gleichzeitig so flexibel wie ein softwaredefiniertes System. Bisher konnten Entwicklungsingenieure FPGAs nur dann nutzen, wenn sie auch Experten in VHDL und anderen Hardwarebeschreibungssprachen waren. LabVIEW ermöglicht es nun auch Anwendern ohne diese Kenntnisse, von FPGAs zu profitieren. LabVIEW ist eine intuitiv verwendbare grafische Programmiersprache mit hunderten integrierter Funktionen für Steuerung, Regelung, Analyse, Kommunikation und Datenprotokollierung. CompactRIO ist vollständig mit LabVIEW programmierbar, einschließlich FPGA, Echtzeitprozessor und HMI (Human-Machine Interface).
Im LabVIEW 8.6 Real-Time Module wird erstmals der CompactRIO Scan Mode angeboten. Bei diesem Scan-Modus kann der Anwender wählen, ob er jedes I/O-Modul direkt in LabVIEW Real-Time ansprechen und Anwendungen ohne FPGA-Programmierung ausführen will, oder ob er LabVIEW FPGA nutzen und von der maximalen Flexibilität und Leistung profitieren möchte. Darüber hinaus lassen sich neue Testpanels und "I/O Forcing" für eine schnelle Inbetriebnahme einsetzen. Außerdem steht anspruchsvolle Fehlerbehebung zur Verfügung und die Systemleistung kann überwacht werden.
Inhaltsverzeichnis
Reduzierung der Entwicklungszeit und der Komplexität
Abbildung 1: Der CompactRIO Scan Mode bietet Zugriff auf I/Os direkt in LabVIEW Real-Time und in Host-VIs ohne programmieren oder kompilieren zu müssen.
Der Zugriff auf CompactRIO-I/Os erfolgte traditionell über die Programmierung des FPGAs und die anschließende Verwendung von LabVIEW FPGA Interface VIs in LabVIEW Real-Time. Der CompactRIO Scan Mode erkennt I/O-Module automatisch und fügt sie dem LabVIEW-Projekt hinzu. I/O-Variablen können dann per Drag and drop in LabVIEW Real-Time und auf Blockdiagrammen von Host-VIs abgelegt werden. Danach kann man umgehend skalierte, kalibrierte I/O-Daten ohne jede FPGA-Programmierung oder -Kompilierung lesen und schreiben (siehe Abb. 2).
Abbildung 2: Per Drag and drop können I/O-Variable im Blockdiagramm abgelegt werden, so dass direkter Zugriff auf I/Os in LabVIEW Real-Time möglich ist.
Eine neue Komponente von LabVIEW Real-Time, die NI Scan Engine, aktualisiert die Werte der I/O-Variablen mit einer Rate, die der Anwender festlegt (bis zu 1 kHz). Alle Kanal-Scans sind hardwaregetaktet und die Module untereinander synchronisiert. Die Scan Engine kann im LabVIEW-Projekt oder programmatisch mit einer integrierten VI-Bibliothek konfiguriert werden. Die Scan Engine bietet darüber hinaus einen Zeitgeber für zeitgesteuerte Schleifen, so dass Programmcode mit I/O-Updates synchronisiert werden kann und Steuer- und Regelanwendungen mit wenig Jitter möglich werden. I/O-Variable können mit Alias-Namen versehen werden, um eine zusätzliche Abstraktionsschicht vom physikalischen I/O-Kanal zu schaffen. Darüber hinaus steht für I/O-Variable und Alias-Namen lineare Skalierung zur Verfügung.
Der CompactRIO Scan Mode ergänzt bestehende digitale Module der C-Serie von NI mit acht Kanälen ohne zusätzlichen Programmieraufwand um Funktionalität für den Einsatz als Counter, Inkrementaldrehgeber und für die Pulsweitenmodulation (PWM). Diese speziellen digitalen Funktionen können im LabVIEW-Projekt konfiguriert werden. Aufgrund der höheren geforderten Genauigkeit und Geschwindigkeit laufen sie auf dem FPGA. Ohne Kompilierung können Flankenzählungen mit bis zu 1 MHz, Pulsweiten- und Frequenzmessungen, Quadrature Decoding und PWM-Regelung vorgenommen werden.
Zählerspezifische Funktionen
• Zählvorgänge mit 1 MHz auf acht Kanälen
• 32-bit-Zählerregister mit programmierbarem Zählendwert
• Konfigurierbarer Zählendwert und Verhalten bei Überlauf
• Konfigurierbare Flankenzählung (steigend, fallend oder beides), Quelle und Gatter
• Perioden-, PWM- und Frequenzmessungen mit konfigurierbarer Zeitbasis
Quadrature-spezifische Funktionen
• Max. Quadrature-Zählerwert von 1 MHz
• 32-bit-Zählerregister
• 32-bit-Register für Geschwindigkeitsmessungen
• Konfigurierbare Zeitbasis für Geschwindigkeitsmessungen (256 µs, 512 µs, 16384 µs oder 32768 µs)
• X4-Kodierung
• Zwei Quadrature-Kanäle mit „A+B+Index”-Eingängen pro Modul
• Wählbare Polarität des Encoders
PWM-spezifische Funktionen
• Acht Ausgangskanäle
• Tastverhältnis und Perioden kanalweise konfigurierbar
• Konfigurierbare Frequenzperiode (1 Hz, 50 Hz, 250 Hz, 500 Hz, 1 kHz, 5 kHz, 10 kHz oder 20 kHz)
Einfache Installation, Fehlerbehebung und Überwachung
Der NI Distributed System Manager, neu in der Version LabVIEW 8.6, bietet einen zentralen Standort für die Überwachung von Systemen im Netzwerk und die Verwaltung veröffentlichter Daten. Der neue Systemmanager stellt mithilfe des CompactRIO Scan Mode Testpanels für CompactRIO-Module bereit. Sobald das System im Netzwerk verfügbar ist, hat der Anwender Zugriff auf Echtzeit- und historische I/O-Daten, so dass Verbindungen und die Signalintegrität schnell verifiziert werden können. Neben Testpanels gewährt der Systemmanager auch Einblicke in die Speicher- und Prozessorauslastung von CompactRIO-Controllern.
Abbildung 3: Der neue NI Distributed System Manager unterstützt Anwender durch die Ergänzung von CompactRIO durch Testpanels bei der schnelleren Inbetriebnahme
Der CompactRIO Scan Mode führt I/O Forcing ein, ein Fehlerbehebungswerkzeug, mit dem man den Wert einer I/O-Variablen außer Kraft setzen kann, ohne die Echtzeitanwendung anzuhalten oder zu verändern. Eingänge können durch das I/O Forcing vorbelegt werden, um die Antwort der Anwendung ohne physikalische Stimulation zu testen. Gleichermaßen können Ausgangswerte so vorbelegt werden, dass sie die Ausgangswerte des Programms ignorieren. Kanalwerte können mit dem Systemmanager oder den neuen VIs für das I/O Forcing erzwungen werden.
LabVIEW FPGA und CompactRIO Scan Mode
Mit dem LabVIEW 8.6 Real-Time Module kann man entweder mit dem CompactRIO Scan Mode oder mit LabVIEW FPGA auf jedes Modul und dessen Kanäle zugreifen. Mithilfe von LabVIEW FPGA lassen sich anwenderdefinierte Triggerung, hardwarebasierte Analyse und Signalverarbeitung oder Hochgeschwindigkeits-Analog-Streaming implementieren. Um I/O-Module im LabVIEW FPGA Mode zu nutzen, zieht man das Modul per Drag and drop auf den FPGA im LabVIEW-Projekt, so dass es aus dem Scan-Modus entfernt wird. Dann werden die Module mit LabVIEW FPGA programmiert und mit I/O-Variablen I/Os von den verbleibenden Modulen gelesen bzw. darauf geschrieben (siehe Abb. 4).
Abbildung 4: Dieses VI greift mit dem CompactRIO Scan Mode auf I/Os zu, während es die Fast-Fourier-Transformation eines Beschleunigungseingangs mit LabVIEW FPGA berechnet.
Wird der LabVIEW-FPGA-Modus auf einem oder mehreren Modulen eingesetzt, wird die Logik des CompactRIO Scan Mode, genannt RIO Scan Interface, mit dem LabVIEW FPGA VI in eine einzelne FPGA-Anwendung kompiliert. Wenn kein Modul für die Verwendung des Scan-Modus konfiguriert wird, ist die RIO Scan Interface nicht in der Kompilation integriert.
Wie funktioniert der CompactRIO Scan Mode?
Der CompactRIO Scan Mode wird durch zwei Technologien ermöglicht: NI Scan Engine und RIO Scan Interface. Bei letzterem handelt es sich um ein Set von FPGA-IP (Intellectual Property) von National Instruments, das auf den CompactRIO-FPGA heruntergeladen wird und für Erkennung, Timing, Synchronisation und Kommunikation von I/O-Modulen verantwortlich ist. Das RIO Scan Interface führt eine hardwaregetaktete Scan-Schleife aus, welche die physikalischen I/O-Werte aktualisiert. Zwei DMA-Kanäle werden für den Transport von I/O-Daten zwischen FPGA und Echtzeitbetriebssystem verwendet. Auch die vorgefertige spezielle Digitalfunktionalität ist ein Teil des RIO Scan Interface. Weitere Informationen über das RIO Scan Interface bieten die Links unter „Weiterführende Informationen“.
Die NI Scan Engine ist ein neuer Bestandteil von LabVIEW Real-Time, deren Priorität etwas höher angesiedelt ist als zeitkritisch oder zwischen zeitkritischen und getakteten Strukturen liegt. Dies kann der Anwender auswählen. Jedes Mal, wenn das RIO Scan Interface den aktuellen I/O-Scan abgearbeitet hat, fügt LabVIEW die I/O-Variable einem globalen Speicherabbild der Scan Engine hinzu und aktualisiert die Werte aller I/O-Variablen auf einmal. Allerdings kann jeder I/O-Variablenknoten entweder für den gescannten oder den direkten Zugriff konfiguriert werden. Standardmäßig konfiguriert LabVIEW die I/O-Variablenknoten für die Verwendung gescannter I/O, die dann das Speicherabbild der Scan Engine für die Ausführung nicht sperrender I/O-Lese- und Schreibvorgänge nutzt (siehe Abb. 5). Der direkte I/O-Zugriff umgeht das Speicherabbild und kommuniziert direkt mit dem I/O-Gerätetreiber, um sperrende I/O-Lese- und -Schreibvorgänge auszuführen (siehe Abb. 5). Die NI Scan Engine veröffentlicht außerdem die I/O-Variablen im Netzwerk, so dass sie Host-Anwendungen, Testpanels und I/O Forcing zum Lesen und Schreiben zur Verfügung stehen. Die Scan Engine, und nicht die Engine der LabVIEW-Umgebungsvariablen, übernimmt die Netzwerk-Veröffentlichung der I/O-Variablen, die im Dialogfeld zu den Eigenschaften der I/O-Variablen deaktiviert werden können.
Wird LabVIEW FPGA mit dem CompactRIO Scan Mode (einige Module mit dem CompactRIO Scan Mode und andere mit dem LabVIEW FPGA Mode) verwendet, werden das RIO Scan Interface und das FPGA-VI in einen einzigen Bitstream kompiliert und auf den FPGA übertragen. Der Zugriff auf I/O-Module im LabVIEW FPGA Mode erfolgt mit den FPGA Interface VIs in LabVIEW Real-Time und der Zugriff auf I/O-Module im Scan-Modus über I/O-Variable. Wenn man alle Module aus dem Scan-Modus entfernt, wird das RIO Scan Interface nicht in den Bitstream kompiliert. Der Platz, den das RIO Scan Interface auf dem FPGA einnimmt, wird mit der Anzahl der Module, die den Scan-Modus nutzen, skaliert.
Abbildung 5: Wie funktioniert der CompactRIO Scan Mode?
Wann sollte der CompactRIO Scan Mode verwendet werden?
Der CompactRIO Scan Mode ist für Anwendungen konzipiert, die synchrone I/O-Updates mit Raten bis zu 1 kHz erfordern. Die vom Scan-Modus bereitgestellte spezielle Digitalfunktionalität erlaubt die Umwandlung bestehender achtkanaliger I/O-Module in ein anspruchsvolles PWM-, Zähler- oder Quadraturencoder-Modul. Dank des I/O Forcing und der Testpanel-Funktionalität des Systemmanagers lässt sich der Scan-Modus auch für die erste Inbetriebnahme, die Überwachung der Systemleistung und anspruchsvolle Fehlerbehebung einsetzen. Bei Anwendungen mit höheren Leistungsansprüchen, wie etwa Analog-Streaming bei fast 1 MHz, Hochgeschwindigkeits-PID-Regelschleifen über 1 kHz, anwenderdefinierter Hardwareanalyse und Signalverarbeitung oder I/O-Modulen, die der Scan Mode nicht unterstützt, sollte das LabVIEW FPGA Module mit Scan Mode zum Einsatz kommen. Mit ihm lässt sich auch die Verarbeitung vom Echtzeitcontroller auslagern.
Aufgrund des Platzbedarfs des RIO Scan Interface auf dem FPGA wird der Scan-Modus von Controllern unterstützt, die unter dem Echtzeitbetriebssystem VxWorks RTOS mit FPGAs mit mindestens 2 Mio. Gattern laufen. Diese Controller werden unterstützt: NI 9012, NI 9014, NI 9073 und NI 9074. Zu den unterstützten Backplanes gehören NI 9103, NI 9104, NI 9073 und NI 9074.
Hinsichtlich der Leistung muss man zugunsten des CompactRIO Scan Mode ein paar Kompromisse eingehen. So unterstützt die spezielle Digitalfunktionalität etwa nur bis zu 1-MHz-Zähler anstatt 20-MHz-Zähler, die mit LabVIEW FPGA erreicht werden können. Die Scan Engine nutzt Systemressourcen, darunter Platz auf dem FPGA, zwei DMA-Kanäle, Speicherplatz und eine gewisse CPU-Zeit, die proportional zur Scan-Rate zunimmt. Der Platz, den das RIO Scan Interface auf dem FPGA einnimmt, wird mit der Anzahl der Module, die den Scan-Modus nutzen, skaliert.
Zusammenfassung
Das LabVIEW 8.6 Real-Time Module bietet eine Reihe leistungsstarker neuer Funktionen, welche Entwicklungszeit und Komplexität von CompactRIO-Anwendungen reduzieren sollen. Mit dem CompactRIO Scan Mode hat der Anwender Zugriff auf I/O in LabVIEW Real-Time und Host-Anwendungen ohne FPGA-Programmierung. Gleichzeitig besteht die Möglichkeit, den FPGA direkt für die höchsten Anforderungen zu programmieren. Der NI Distributed System Manager und das I/O Forcing erschließen CompactRIO auch Testpanels und anspruchsvolle Fehlerbehebung, so dass die Überwachung und Wartung von CompactRIO-Anwendungen zum Kinderspiel wird.
Weiterführende Informationen
• Webcast: Neue LabVIEW-Funktionen für leistungsstarke FPGA-basierte PACs
• Unterstützte Module der C-Serie
• Verwendung der LabVIEW-I/O-Variable und der NI Scan Engine – Whitepaper
• Lesen Sie ein Whitepaper zur RIO Scan Interface
AGB
Dieses Tutorium ("Tutorium") wurde von National Instruments ("NI") entwickelt. Auch wenn National Instruments dieses Tutorium technisch unterstützt, ist es jedoch möglich, dass dieses Tutorium nicht umfassend getestet und überprüft wurde. NI übernimmt weder Garantien bezüglich der Qualität des Tutoriums noch bezüglich der weiteren technischen Unterstützung neuer Versionen ähnlicher Produkte und Treiber. DIESES TUTORIUM WIRD IM "IST-ZUSTAND" ZUR VERFÜGUNG GESTELLT UND NI ÜBERNIMMT KEINERLEI GARANTIEN. AUSFÜHRLICHERE ERLÄUTERUNGEN ZU ANDEREN EINSCHRÄNKUNGEN ENTNEHMEN SIE BITTE DEN NUTZUNGSBEDINGUNGEN AUF NI.COM (http://ni.com/legal/termsofuse/unitedstates/us/).
