From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
Pour construire un système temps réel NI, vous devez choisir à la fois votre logiciel de développement et votre plate-forme matérielle. Des informations détaillées sur les options de chacun sont fournies dans les sections suivantes. Avant de lire cet article, il est utile que vous ayez une compréhension élémentaire des systèmes temps réel et des avantages qu’ils peuvent représenter pour vos projets. Passez en revue ces informations en lisant l’article Do I Need a Real-Time System ? (Ai-je besoin d’un système temps réel ?)
Lors de la construction d’un système temps réel, le système d’exploitation sélectionné doit être compatible. Les outils de développement temps réel de NI sont vendus avec tous les logiciels de systèmes d’exploitation temps réel (RTOS) nécessaires, ce qui signifie que vous n’avez pas à choisir cet élément séparément. NI se base sur la plate-forme matérielle pour utiliser soit le système d’exploitationNI LinuxReal-Time soit les systèmes d’exploitation ETS Phar Lap.
Pour développer des programmes temps réel, vous pouvez utiliser la programmation graphique LabVIEW, l’environnement LabWindows™/CVI ANSI C (pour Phar Lap), ou un environnement de développement C/C++ compatible avec Linux de votre choix (pour NI Linux Real-Time).
Figure 1. Programmation graphique avec LabVIEW.
Pour programmer graphiquement du matériel temps réel supporté par NI, vous devez utiliser LabVIEW avec le module LabVIEW Real-Time. LabVIEW Real-Time vous offre la possibilité de créer des applications temps réel fiables, les télécharger sur du matériel, les mettre au point et les exécuter en utilisant un outil.
Dans vos applications temps réel, vous pouvez utiliser la plupart des algorithmes mathématiques et de traitement du signal intégrés, vendus avec LabVIEW, dont plusieurs fonctions de contrôle proportionnel, intégral, dérivé (PID). De plus, vous pouvez exécuter des scripts mathématiques textuels sur votre système temps réel avec le nœud MATLAB ou intégrer des modèles que vous créez dans The MathWorks, Inc. Le logiciel Simulink® ou d’autres environnements de modélisation utilisant letoolkit LabVIEW Model Interfaceen option.
Lors du développement d’applications temps réel dans LabVIEW, vous utilisez l’Explorateur de projets LabVIEW pour organiser vos programmes (VIs) et désigner la plate-forme matérielle sur laquelle ils seront exécutés. Vous développerez votre code sur un ordinateur hôte Windows à usage général, puis vous le déploierez sur votre matériel temps réel via Ethernet ou une connexion USB.
Figure 2. Gérez les programmes LabVIEW (VIs) et affectez-les à des cibles temps réel à l’aide de l’Explorateur de projets LabVIEW.
Le développement de programmes temps réel dans LabVIEW est presque identique au développement d’applications LabVIEW standard pour votre PC. Plusieurs fonctions supplémentaires spécifiques aux systèmes temps réel sont incluses dans la palette de VIs Real-Time, y compris :
Pour tester le code LabVIEW Real-Time sur votre matériel, cliquez simplement sur la flèche d’exécution pour que votre application soit déployée sur votre matériel temps réel et commence à s’exécuter. Vous pouvez utiliser des outils de mise au point standards NI, tels que l’animation de l’exécution, l’exécution en mode pas-à-pas et les points d’arrêt depuis votre ordinateur de développement, même si votre programme temps réel s’exécute en fait sur la cible temps réel.
Lorsque vous avez finalisé votre programme temps réel, vous pouvez construire un exécutable dans LabVIEW et le télécharger sur votre matériel temps réel en tant qu’application de démarrage. Après avoir redémarré votre matériel temps réel, votre programme s’exécutera automatiquement de façon fiable et autonome.
Le modèle de programmation par flux de données de LabVIEW vous libère de l’architecture séquentielle des langages de programmation textuels. Étant donné que l’ordre d’exécution est déterminé par le flux de données entre des nœuds, vous pouvez facilement créer des applications pouvant exécuter de multiples opérations en parallèle. De plus, LabVIEW facilite la définition de priorités de thread grâce à la structure de boucle cadencée. Comme indiqué ci-dessous, chaque boucle a une source de cadencement configurable, une période, une priorité, etc.
Figure 3. Spécifier la définition de la priorité et du traitement de différentes sections de code en utilisant la structure Boucle cadencée de LabVIEW.
LabVIEW Real-Time supporte le traitement multicœur et mappe automatiquement les sections parallèles de votre code vers des threads de systèmes d’exploitation individuels, ce qui élimine le besoin de les créer et de les gérer manuellement. Par défaut, ces threads sont automatiquement équilibrés à travers les CPU disponibles sur votre matériel temps réel.
Pour accroître davantage les performances et la fiabilité d’un système temps réel, vous pouvez choisir d’affecter manuellement des boucles cadencées à des cœurs de processeurs spécifiques, si vous le souhaitez. Par exemple, vous pouvez dédier un cœur de processeur pour qu’il exécute une boucle à priorité critique et l’isoler des tâches moins importantes qui sont exécutées sur différents cœurs.
Pour les mises au point multicœur avancées, vous pouvez utiliser l’afficheur de suivi en temps réel pour vérifier les performances de vos programmes temps réel LabVIEW ou LabWindows/CVI sans arrêter ni mettre en pause l’exécution du code. Avec des modifications minimales de votre code temps réel, vous pouvez enregistrer les performances de votre application dans un fichier et les envoyer à un ordinateur hôte pour le visualiser et l’analyser. L’afficheur d’outils de suivi représente graphiquement l’exécution du code multithread tout en mettant en évidence les permutations de threads, les mutex et les affectations de mémoire. Vous pouvez utiliser l’afficheur de suivi en temps réel pour optimiser les performances de l’application en identifiant les caractéristiques d’exécution non désirées ainsi que les situations de compétition difficiles à trouver.
Si votre organisation se standardise sur C ou C++, vous pouvez utiliser l’environnement de développement LabWindows/CVI ou d’autres environnements de développement. Notez que LabWindows/CVI Real-Time ne supporte que les contrôleurs PXI temps réel, tandis que les cibles utilisant NI Linux Real-Time, telles que les contrôleurs CompactRIO, sont en source ouverte, vous pouvez donc utiliser l’outil de développement de votre choix. Pour en savoir plus sur l’utilisation des outils de développement C/C++ pour Linux-Real-Time, visitez Initiation au développement C/C++ pour NI Linux Real-Time.
Toutes les plates-formes matérielles temps réel sont construites à partir d’une architecture commune, ce qui signifie que les programmes que vous écrivez avec LabVIEW Real-Time fonctionneront sur divers matériels NI avec seulement des modifications mineures, ou sans aucune modification. Plus particulièrement, chaque plate-forme matérielle offre des composants informatiques prêts à l’emploi, dont un processeur, de la RAM, une mémoire de stockage non volatile et une interface de bus d’E/S. Certaines plates-formes matérielles disposent d’un FPGA programmable par l’utilisateur que vous pouvez programmer à l’aide du module LabVIEW FPGA.
La plate-forme PXI standard comprend un châssis à coque dure avec des lignes de cadencement et de déclenchement intégrées, un contrôleur embarqué et des modules d’E/S enfichables. Des ports en série, USB, Gigabit Ethernet et GPIB sont également intégrés au contrôleur. Du matériel temps réel PXI peut être programmé en utilisant soit LabVIEW Real-Time soit LabWindows/CVI Real-Time.
Avez-vous un contrôleur PXI existant s’exécutant sous Windows et que vous aimeriez changer en contrôleur temps réel ? Vous pouvez acheter une licence LabVIEW Real-Time Deployment pour convertir votre contrôleur ou même définir un système qui permette deux types de démarrage.
Vous pouvez assembler votre propre système PXI temps réel, y compris le contrôleur, le châssis, les modules d’E/S et les logiciels en utilisant le Guide PXI en ligne
Figure 4. Le matériel PXI offre un système durci et hautes performances à vos projets temps réel.
Le matériel PXI de NI est souvent utilisé pour les systèmes temps réel hautes performances, comme par exemple lors du test HIL (hardware-in-the-loop) d’unités de contrôle électronique et d’analyse des vibrations pour les applications de surveillance de l’état des machines. Lorsqu’elles utilisent un système PXI temps réel, vos applications ont accès à des fonctionnalités matérielles de cadencement et de synchronisation avancées qui simplifient le déclenchement d’E/S et la synchronisation multi-modules précis.
CompactRIO regroupe un processeur temps réel, un FPGA et des modules d’E/S de la Série C et est disponible dans les deux formats embarqué et niveau carte. De plus, des ports en série, USB et Ethernet sont intégrés au contrôleur.
Vous pouvez assembler votre propre système CompactRIO, y compris le contrôleur, les modules d’E/S et les logiciels en utilisant le Guide CompactRIO en ligne.
Figure 5. Les contrôleurs CompactRIO embarqués offrent la flexibilité, la robustesse et la portabilité aux applications temps réel.
Vous pouvez programmer le processeur sur les contrôleurs CompactRIO à l’aide de LabVIEW Real-Time ou de votre outil de développement C/C++ préféré. Vous pouvez également développer du code FPGA à l’aide de LabVIEW FPGA. Pour accéder aux données d’E/S sur le processeur, vous pouvez utiliser l’API NI-DAQmx, l’API de programmation de NI des mesures ou le moteur de balayage NI. Vous pouvez alternativement accéder aux données directement à partir du FPGA via LabVIEW FPGA.
Figure 6. L’architecture hétérogène de CompactRIO comprend un processeur temps réel, un FPGA reconfigurable et des E/S.
Le matériel CompactRIO est souvent utilisé pour des applications industrielles, notamment la surveillance d’état, le test hardware-in-the-loop, le test de systèmes physiques et le contrôle des machines.
Les contrôleurs CompactRIO niveau carte, tels que les contrôleurs CompactRIO Single-Board (sbRIO), ont la même architecture que les contrôleurs CompactRIO embarqués, mais sont livrés sans emballage robuste et présentent un format plus petit.
Figure 7. Les contrôleurs CompactRIO niveau carte présentent la même architecture que les contrôleurs CompactRIO embarqués, mais dans un format plus petit.
Les applications à volume élevé qui nécessitent souplesse, fiabilité et hautes performances peuvent tirer parti des contrôleurs CompactRIO Single-Board ou des modules System On.