Erste Schritte mit CompactRIO – Grundlagen der Regelung

Veröffentlichungsdatum: Jan 25, 2013 | 2 Ratings | 1.50 out of 5 | Drucken

Übersicht

Dieser Beitrag ist Teil einer Serie zum Thema Entwicklung von CompactRIO-Anwendungen in LabVIEW.

Hier finden Sie weitere Informationen zu CompactRIO.

Inhaltsverzeichnis

  1. Ein neues CompactRIO-Projekt in LabVIEW anlegen
  2. Zusätzliche Informationen zur Entwicklung mit NI CompactRIO
  3. Weitere Ressourcen

Der Programmable Automation Controller (PAC) CompactRIO von National Instruments ist ein fortschrittliches Embedded-Datenerfassungs-, -Steuer- und -Regelsystem für Anwendungen, die eine hohe Leistungsfähigkeit und Zuverlässigkeit erfordern. Aufgrund der offenen Embedded-Architektur, geringen Abmessungen, extremen Robustheit und Flexibilität des Systems können Entwickler kommerzielle Hardware einsetzen, um zügig benutzerdefinierte Embedded-Systeme zu erstellen. NI CompactRIO basiert auf den Technologien LabVIEW FPGA und LabVIEW Real-Time von National Instruments und ermöglicht Anwendern den Entwurf, die Programmierung sowie die benutzerdefinierte Anpassung des CompactRIO-Embedded-Systems mit einfach zu bedienenden grafischen Programmierwerkzeugen.

CompactRIO umfasst einen Embedded-Echtzeitprozessor, einen leistungsstarken FPGA sowie im laufenden Betrieb austauschbare I/O-Module. Jedes I/O-Modul ist direkt an den FPGA angebunden und ermöglicht somit eine Low-Level-Anpassung von Timing-Funktionen und I/O-Signalverarbeitung. Der FPGA ist mit dem Embedded-Echtzeitprozessor über einen Hochgeschwindigkeits-PCI-Bus verbunden. Daraus ergibt sich eine kostengünstige Architektur mit offenem Zugriff auf maschinennahe Hardwareressourcen. NI LabVIEW verfügt über integrierte Funktionen für den Datentransfer vom I/O-Modul zum FPGA und vom FPGA zum Embedded-Prozessor für die Echtzeitanalyse, Weiterverarbeitung, Datenprotokollierung oder Kommunikation mit einem vernetzten Host-Rechner.

 

I/O-Module der C-Serie

Es stehen eine Reihe unterschiedlicher I/O-Module für CompactRIO zur Verfügung, u. a. Spannungs-, Strom-, Thermoelement-, RTD-, Beschleunigungsmesser- und Dehnungsmessstreifeneingänge, simultan abgetastete Analog-I/O mit bis zu ±60 V, Industrie-Digital-I/O mit 12, 24 oder 48 V, Digital-I/O mit 5 V/TTL sowie Counter/Timer, Module zur Impulserzeugung und Relais für hohe Spannungen und Stromstärken. Da die Module über integrierte Signalkonditionierungsfunktionen für erweiterte Spannungsbereiche oder Industriesignale verfügen, können sie direkt an Sensoren und Aktoren angeschlossen werden.

 

FPGA

Der Embedded-FPGA ist ein leistungsstarker, rekonfigurierbarer Chip, der mithilfe von LabVIEW-FPGA-Werkzeugen programmiert werden kann. Bisher war es für FPGA-Entwickler notwendig, komplexe Designsprachen wie VHDL zu erlernen, um FPGAs zu programmieren. Nun sind Ingenieure und Wissenschaftler in der Lage, die grafischen LabVIEW-Werkzeuge für die Programmierung und individuelle Anpassung von FPGAs einzusetzen. Mithilfe der in CompactRIO integrierten FPGA-Hardware lassen sich benutzerdefinierte Timing-, Trigger-, Synchronisations-, Steuer-, Regel- und Signalverarbeitungsfunktionen für Analog- und Digital-I/O implementieren.

 

Echtzeitprozessor

Das CompactRIO-Embedded-System umfasst einen industrietauglichen 400-MHz-MPC5200-Prozessor von Freescale, der LabVIEW-Real-Time-Anwendungen auf dem zuverlässigen Echtzeitbetriebssystem VxWorks von Wind River deterministisch ausführt. LabVIEW verfügt über integrierte Funktionen für die Datenübertragung zwischen FPGA und Echtzeitprozessor innerhalb des CompactRIO-Embedded-Systems. Anwender können aus über 600 integrierten LabVIEW-Funktionen auswählen, um ein Multithreading-fähiges System für Echtzeitsteuer-, -regel-, -analyse-, -datenprotokollierungs- und -kommunikationsanwendungen zu erstellen. Es ist zudem möglich, bestehenden C/C++-Code in den LabVIEW-Real-Time-Code zu integrieren und somit Entwicklungszeit zu sparen.

 

Abmessungen und Gewicht

Abmessungen, Gewicht und I/O-Kanaldichte sind wichtige Faktoren für viele Embedded-Anwendungen. Ein rekonfigurierbares Embedded-System mit vier Steckplätzen misst 179,6 x 88,1 x 88,1 mm und wiegt nur 1,58 kg.

 

1. Ein neues CompactRIO-Projekt in LabVIEW anlegen

Ein neues CompactRIO-Projekt in LabVIEW anlegen

Legen Sie zunächst ein neues Projekt in LabVIEW an, mit dem der Programmcode und die Hardwareressourcen verwaltet werden.

1.       In LabVIEW erstellen Sie ein neues Projekt durch Auswahl von Datei » Neues Projekt.

2.       Ihr CompactRIO-System fügen Sie folgendermaßen zum Projekt hinzu: Klicken Sie mit der rechten Maustaste auf das Projektobjekt an der ersten Stelle des Verzeichnisses und wählen Sie Neu » Ziele und Geräte….

3.       Folgendermaßen können Sie Systeme im Netzwerk finden oder Offline-Systeme hinzufügen: Erweitern Sie den Ordner Real-Time CompactRIO, wählen Sie Ihr System aus und bestätigen Sie mit OK. Hinweis: Erscheint Ihr System nicht in der Ansicht, konnte LabVIEW es nicht im Netzwerk finden. Überprüfen Sie, ob Ihr System mit einer gültigen IP-Adresse im Measurement & Automation Explorer konfiguriert ist. Falls sich Ihr System in einem dezentralen Subnetz befindet, besteht auch die Möglichkeit, die IP-Adresse manuell einzugeben.

 

 

Auswahl des gewünschten Programmiermodells

LabVIEW bietet zwei Programmiermodelle für CompactRIO-Systeme. Wenn auf Ihrem Rechner LabVIEW Real-Time und LabVIEW FPGA installiert sind, werden Sie aufgefordert, ein Programmiermodell auszuwählen. Diese Einstellung kann später im LabVIEW-Projekt bei Bedarf geändert werden.

Scan Interface (CompactRIO Scan Mode): Über diese Option können Sie den Echtzeitprozessor Ihres CompactRIO-Systems, aber nicht den FPGA programmieren. In diesem Modus stellt NI eine vordefinierte Personality für den FPGA bereit, mit der die I/O regelmäßig gescannt und dann in einem Speicherabbild platziert wird, um für LabVIEW Real-Time zur Verfügung zu stehen. Der CompactRIO Scan Mode ist ausreichend für Anwendungen, die Einzelwertzugriff auf I/O mit Geschwindigkeiten von wenigen hundert Hertz erfordern. Mehr zum Thema Scan Mode erfahren Sie im Whitepaper Verwendung des CompactRIO Scan Mode mit NI LabVIEW und anhand der Benchmarks.

LabVIEW FPGA Interface: Über diese Option erhalten Sie Zugang zur tatsächlichen Leistung des CompactRIO. Sie können die FPGA-Personality benutzerdefiniert anpassen und darüber hinaus den Echtzeitprozessor programmieren, so dass die erzielte Leistung jener entspricht, die gewöhnlich mit maßgeschneiderter Hardware erzielt würde. Mit LabVIEW FPGA können Sie benutzerdefiniertes Timing und Triggern implementieren, die Signalverarbeitung und -analyse auslagern, individuell angepasste Protokolle erstellen und mit maximaler Geschwindigkeit auf I/O zugreifen.

 

Wählen Sie das für Ihre Anwendung geeignete Programmiermodell.

LabVIEW versucht jetzt, das Chassis und die I/O-Module der C-Serie zu finden, die in Ihrem System vorhanden sind, um sie automatisch zum LabVIEW-Projekt hinzuzufügen. Hinweis: Wenn Ihr System nicht gefunden wurde und Sie es stattdessen offline hinzufügen, müssen Sie das Chassis und die I/O der C-Serie manuell hinzufügen. In der Online-LabVIEW-Hilfe wird dieser Vorgang für den Scan Mode und den FPGA-Modus behandelt.

 

Tutorium: CompactRIO Scan Mode

In diesem Abschnitt wird die Erstellung einer einfachen Regelungsanwendung auf CompactRIO mithilfe des Scan Mode behandelt. Wenn Sie die LabVIEW FPGA Interface nutzen wollen, informieren Sie sich darüber mit dem Tutorium zu LabVIEW FPGA. Sie sollten nun ein neues LabVIEW-Projekt vorfinden, das Ihr CompactRIO-System beinhaltet, einschließlich des Controllers, des Chassis und der I/O-Module der C-Serie. In diesem Tutorium wird das Thermoelement-Eingangsmodul NI 9211 verwendet. Der Ablauf kann aber auf jedes beliebige Analogeingangsmodul angewendet werden. Die Lösung können Sie hier herunterladen.

1.       Speichern Sie das Projekt über Datei» Speichern und durch Eingabe von Einfache Regelung mittels Scan Mode. Klicken Sie auf OK.

2.       Das Projekt wird nur ein VI umfassen, nämlich die LabVIEW-Real-Time-Anwendung, die eingebettet auf dem CompactRIO-Controller ausgeführt wird. Erstellen Sie dieses VI über einen Klick mit der rechten Maustaste auf den CompactRIO-Echtzeit-Controller im Projekt und wählen Sie Neu» VI. Speichern Sie das VI als RT.vi.

3.       Die grundlegende Operation dieser Anwendung beinhaltet drei Routinen: Start, Ausführung und Ende. Eine flache Sequenzstruktur ist eine einfache Möglichkeit, diesen Programmfluss zu erzwingen. Legen Sie eine flache Sequenzstruktur mit drei Rahmen auf dem Blockdiagramm Ihres VIs RT.vi ab (siehe nachfolgende Abbildung).

 

4.       Fügen Sie eine zeitgesteuerte Schleife zum Rahmen Ausführen der Sequenzstruktur hinzu. Zeitgesteuerte Schleifen bieten die Möglichkeit, Programmcode mit verschiedenen Zeitbasen zu synchronisieren, einschließlich der NI Scan Engine, die I/O des Scan Mode liest und schreibt.

 

5.       Die zeitgesteuerte Schleife konfigurieren Sie mit einem Doppelklick auf das Uhrensymbol des Eingangsknotens auf der linken Seite.

6.       Wählen Sie Mit Scan-Engine synchronisieren als Schleifen-Timing-Quelle. Klicken Sie auf OK. Damit wird der Code in der zeitgesteuerten Schleife einmal ausgeführt, und zwar direkt nach jedem I/O-Scan, so dass sichergestellt wird, das alle in dieser zeitgesteuerten Schleife genutzten I/O-Werte die aktuellen Werte sind.

 

7.       Im vorherigen Schritt wurde die zeitgesteuerte Schleife so konfiguriert, dass sie synchron zur Scan-Engine ausgeführt wird. Konfigurieren Sie jetzt die Geschwindigkeit der Scan-Engine selbst. Klicken Sie dazu mit der rechten Maustaste im LabVIEW-Projekt auf den CompactRIO-Echtzeit-Controller und wählen Sie Eigenschaften.

8.       Wählen Sie aus den Kategorien links Scan-Engine aus und geben Sie 100 ms als Scan-Periode ein. Dadurch werden die I/O des CompactRIO-Systems alle 100 ms (10 Hz) aktualisiert. In diesem Dialogfeld kann auch die Network Publishing Period eingestellt werden. Sie steuert, wie oft die I/O-Werte zur dezentralen Überwachung und Fehlerbehebung im Netzwerk veröffentlicht werden. Klicken Sie auf OK.

9.       Nach Konfiguration der I/O-Scan-Rate sollten die I/O-Lesevorgänge zur Anwendung hinzugefügt werden. Wird der CompactRIO Scan Mode verwendet, können Sie die I/O-Variablen einfach vom LabVIEW-Projekt auf das RT-Blockdiagramm ziehen. Erweitern Sie den CompactRIO-Echtzeit-Controller, das Chassis und das I/O-Modul, von denen Sie Werte erfassen wollen. Wählen Sie AI0 über einen Klick darauf und ziehen Sie den Eingang in die zeitgesteuerte Schleife des RT.vi-Blockdiagramms (siehe unten).

 

10.   Jetzt soll das Digitalmodul des Projekts als spezieller digitaler, pulsbreitenmodulierter Ausgang konfiguriert werden, so dass ein Impulsbreitenmodulationssignal zur Regelung der imaginären Heizeinheit verwendet werden kann. Klicken Sie dazu mit der rechten Maustaste auf das Digitalmodul des Projekts und wählen Sie Eigenschaften. Wählen Sie im Eigenschaftendialogfeld der Module der C-Serie Digitale Sonderfunktion und einen Sondermodus der Impulsbreitenmodulation (siehe Abbildung). Aufgrund des digitalen Sondermodus kann Ihr Modul auf musterbasierte Digital-I/O reagieren, und zwar mit einer Geschwindigkeit, die höher ist als mit der Scan-Schnittstelle. Bestätigen Sie mit OK. Ihr Modul befindet sich nun im Impulsbreitenmodulationsmodus.

 

11.   Jetzt können Sie den Ausgang „Impulsbreitenmodulation“ zum Blockdiagramm hinzufügen. Erweitern Sie dazu das Objekt „Mod2“ im Projekt und ziehen Sie das Objekt „PWM0“ auf das Blockdiagramm (wie beim AI0-I/O-Knoten im vorangegangenen Schritt).

12.   Als nächstes fügen Sie die PID-Regelungslogik zum Programm hinzu. Klicken Sie dazu mit der rechten Maustaste auf das Blockdiagramm, um die Funktionenpalette zu öffnen. Klicken Sie in der oberen rechten Ecke der Palette auf die Schaltfläche „Suchen“.

13.   Suchen Sie nach PID und wählen Sie PID.vi in der Palette „Control Design and Simulation“. Ziehen Sie es auf Ihr Blockdiagramm in die zeitgesteuerte Schleife und verbinden Sie das PID-VI wie nachfolgend abgebildet.



14.   Beachten Sie, dass zu diesem Zeitpunkt der Sollwerteingang nicht verbunden wurde. Grund dafür ist die empfohlene Vorgehensweise, Objekte der Benutzeroberfläche (UI) außerhalb der Regelschleife mit hoher Priorität zu belassen. Da der Sollwert eventuell während der Ausführung angepasst werden soll, sollte eine Regelung erstellt werden, die eine Interaktion in der Schleife niedriger Priorität erlaubt. Außerdem sollten Einzelprozess-Umgebungsvariablen für I/O in der Regelschleife mit hoher Priorität erstellt werden. Da wir in der Anwendung zwei Elemente (Sollwert und Stopp) benötigen, müssen zwei neue Einzelprozess-Umgebungsvariablen erstellt werden.

Klicken Sie zur Erstellung einer Einzelprozess-Umgebungsvariablen mit der rechten Maustaste auf das Echtzeitzielsystem „RT CompactRIO Target“ im LabVIEW-Projekt und wählen Sie Neu » Bibliothek. Benennen Sie die Bibliothek um. Wählen Sie dabei eine intuitive Bezeichnung wie RTComm. Klicken Sie jetzt mit der rechten Maustaste auf Ihre neue Bibliothek und wählen Sie Neu»Variable. Daraufhin öffnet sich das Dialogfeld „Eigenschaften für Umgebungsvariable“. Sie können der Variablen die Bezeichnung Sollwert geben oder sie beliebig benennen. Wählen Sie in der Dropdown-Liste als Variablentyp „Einzelprozess“ (siehe nachfolgende Abbildung). Als Datentyp soll „Double“ stehen bleiben.



Klicken Sie abschließend im Verzeichnis auf der linken Seite auf die Option „RT FIFO“ und dann in das Feld RT FIFO aktivieren.



15.   Generieren Sie eine weitere Einzelprozess-Umgebungsvariable in der zuvor erstellten Bibliothek. Diese Variable ist für die Stopp-Schaltfläche, die erstellt werden soll, um das Programm anhalten zu können. Sie sollte die gleichen Einstellungen haben wie die Sollwertvariable mit Ausnahme des Typs, der ein boolescher Wert sein sollte. Anschließend sollte Ihr Projekt in etwa aussehen wie in nachfolgender Abbildung.



16.   Als Nächstes wird die Benutzeroberfläche erstellt. Fügen Sie dazu folgende Elemente hinzu: Schieberegler, Signalverlaufsdiagramm, numerisches Bedienelement und Stopp-Schaltfläche (boolesch) (siehe nachfolgende Abbildung).



17.   Mit diesem Schritt wird die Verbindungserstellung für das Programm abgeschlossen. Erstellen Sie eine sekundäre (nicht getaktete) Schleife für Ihre Benutzeroberflächenobjekte und nehmen Sie die restlichen Verbindungen im Blockdiagramm entsprechend der folgenden Abbildung vor.



18.   Beachten Sie, dass I/O zur Konfiguration und den Abschaltzuständen hinzugefügt wurden, um sicherzustellen, dass sich Ihre I/O in einem bekannten Zustand befinden, wenn das Programm startet und endet. Ihre Regelungsanwendung kann jetzt ausgeführt werden.

 

Nach oben

2. Zusätzliche Informationen zur Entwicklung mit NI CompactRIO

Weitere Informationen zum Thema erhalten Sie über die zusätzlichen Ressourcen auf der Seite Setup und Support für NI CompactRIO.

 

Nach oben

3. Weitere Ressourcen

Video: Sehen Sie, wie Sie das neueste NI-CompactRIO-System installieren, konfigurieren und programmieren.

Schulungen zu CompactRIO

Download: Starter Kit für den Einsatz von FPGAs

Nach oben

Bookmark & Share


Ratings

Rate this document

Answered Your Question?
Yes No

Submit