Ces tests ont été conçus pour représenter des applications de contrôle et de surveillance courantes, ainsi que les principales tâches qu'elles exécutent. Reportez-vous au tableau ci-dessous pour connaître les tests entrepris dans cette étude.
Tableau 1 – Tests effectués sur des contrôleurs CompactRIO pour mesurer les performances et le débit d'applications
Cette étude a été menée avec les cibles matérielles suivantes :
• NI cRIO-9025 | processeur PowerPC 800 MHz
• NI cRIO-9068 | processeur ARM Cortex-A9 double cœur 667 MHz
• NI cRIO-903x | processeur double cœur Atom d'Intel 1,33 GHz
• NI cRIO-903x | processeur quadricœur Atom d'Intel 1,91 GHz
• NI cRIO-9082 | processeur double cœur Core i7 d'Intel 1,33 GHz
Bien que cette étude soit centrée sur le contrôleur CompactRIO hautes performances – en comparaison avec les contrôleurs précédents de la même famille comme le cRIO-9025 double cœur ou le cRIO-9082 quadricœur –, les cibles matérielles représentatives des autres familles CompactRIO telles que le cRIO-9068 sont également citées en référence, afin de présenter de manière plus globale l'ensemble des possibilités qu'offrent les systèmes CompactRIO.
L'utilisation de l'unité centrale est le paramètre commun utilisé pour comparer les performances relatives de chaque contrôleur CompactRIO. Pour chacun de ces tests, l'utilisation de l'unité centrale est mesurée à un état stable ; seuls le nombre des voies d'E/S et les fréquences de boucles de contrôle varient. Ces résultats indiquent les ressources disponibles pour ajouter du code supplémentaire, augmenter les fréquences de boucle et augmenter le nombre de voies de transfert.
Remarques supplémentaires :
• Pour les systèmes CompactRIO comportant des processeurs multi-cœurs, les résultats de chaque cœur correspondent à la moyenne des données recueillies.
• Dans le cas du contrôleur CompactRIO hautes performances, les tests ont été effectués avec l'option d'interface utilisateur (IU) embarquée activée puis désactivée, afin de mesurer l'impact de cette fonctionnalité sur les performances globales du système.
La combinaison des technologies employées par le nouveau système CompactRIO apporte une amélioration sans précédent des performances dans le cadre d'applications concrètes complexes. Pour tester un scénario de contrôle, nous avons sélectionné l'exemple de projet LabVIEW FPGA Control on CompactRIO. Cet exemple de projet a été complété par un algorithme de génération de trajectoire de spline cubique sur 8 voies sur le contrôleur temps réel pour solliciter davantage l'unité centrale.
Figure 1 – Diagramme architectural de l'exemple de projet LabVIEW FPGA on CompactRIO, comprenant un algorithme de génération de trajectoire de spline cubine sur 8 voies
La Figure ci-dessous montre l'utilisation de l'unité centrale au moment de l'exécution de la boucle de contrôle à une fréquence de 1,5 kHz. À cette fréquence, le contrôleur hautes performances double cœur utilise environ 15 % des ressources de son processeur. Il s'agit d'une nette amélioration par rapport au contrôleur cRIO-9025, qui utilisait 70 % des ressources de son processeur. De même, le contrôleur hautes performances quadricœur utilisait 5 % des ressources de son processeur. Ce résultat est très similaire aux performances observées sur le contrôleur cRIO-9082.
Figure 2 – Utilisation du processeur requise pour lancer une application de contrôle exécutant un algorithme de génération de trajectoire de spline cubique sur 8 voies à une fréquence de 1,5 kHz
Ce test a été réitéré avec l'option d'IU embarquée activée sur le contrôleur CompactRIO hautes performances. Cependant – et bien qu'il ne sollicite pas la portion IHM de l'exemple de projet LabVIEW FPGA Control on CompactRIO –, aucune modification particulière n'a été observée au niveau de l'utilisation de l'unité centrale.
Dans les applications de surveillance, il est courant de devoir déplacer des données des voies d'E/S vers les processeurs temps réel pour poursuivre les opérations de traitement, d'enregistrement ou de visualisation. Un test simple a été créé pour reproduire ce scénario et mesurer l'utilisation de l'unité centrale tout en faisant varier le nombre de voies qui transfèrent des données. Chaque voie transfère des échantillons 16 bits à une fréquence de 100 kHz. Ce test n'inclut pas d'opération de traitement en ligne, ni de transfert en continu sur disque.
Figure 3 – Diagramme architectural d'une tâche simplifiée de transfert de données dans le cadre d'une application de surveillance
La Figure ci-dessous indique les résultats d'un transfert de 100 voies à 100 kHz. Dans le cadre de ce test, il faut prendre en compte les éventuels goulots d'étranglement qui peuvent résulter de légères différences au niveau des architectures matérielles. Par exemple, bien que le contrôleur CompactRIO hautes performances et le modèle cRIO-9068 disposent tous les deux de 16 voies DMA implémentées avec différentes technologies de bus, ils présentent des débits maximum théoriques très différents : 320 Mo/s pour le contrôleur cRIO-9068 et 250 Mo/s pour le CompactRIO hautes performances. Pourtant, le contrôleur CompactRIO hautes performances peut supporter un plus grand nombre de tranferts en continu en utilisant moins de ressource d'unité centrale, car son processeur est plus performant.
Figure 4 – Utilisation du processeur requise pour transférer en continu 100 voies d'échantillons 16 bits à 100 kHz par voie
Comme pour le test de performances de l'application de contrôle, l'impact de l'option d'IU embarquée sur le CompactRIO hautes performances n'est pas évident, étant donné que ce test ne sollicite pas l'IHM. Pour en observer les effets, consultez le Test 3.
Le meilleur moyen d'estimer les performances de l'ensemble des fonctionnalités du contrôleur cRIO est probablement de les tester dans le cadre d'une application concrète complexe. Les applications de grande envergure combinent généralement plusieurs types de tâches de contrôle et de surveillance courantes, comme plusieurs boucles de traitement avec des cadencement différents, un traitement et un transfert en continu des données provenant des voies d'E/S, un transfert en continu sur disque, une communication des données sur le réseau vers une IHM distante, ainsi que des tâches de surveillance d'état non critiques au niveau du temps.
Une application complexe présentant ces tâches a été implémentée à l'aide des composants architecturaux LabVIEW communs, tels que des FIFO temps réel, des boucles cadencées et des flux réseau pour coordonner les différents composants de l'application et leur permettre de communiquer entre eux. De plus, il existe une tâche dédiée à la publication de données sur un indicateur de la face-avant à haute fréquence, pour solliciter au maximum la fonctionnalité d'IU embarquée sur le contrôleur cRIO.
Figure 5 – Diagramme architectural d'une application de contrôle et de surveillance concrète complexe
Dans le cadre de cette application, le cRIO-9025 atteint une fréquence de boucle de contrôle maximale d'environ 950 Hz. À cette fréquence, l'utilisation de l'unité centrale s'élève à 91 %, tandis que le contrôleur hautes performances n'utilise que 15 % des ressources du processeur disponibles pour atteindre la même fréquence. Cela laisse une quantité importante des ressources de l'unité centrale disponible pour ajouter des tâches d'applications supplémentaires ou augmenter la fréquence de boucle pour atteindre des vitesses dépassant nettement les 2 kHz pour cette application complexe de contrôle et de surveillance. D'un autre côté, le modèle quadricœur a démontré des performances très similaires à celles du cRIO-9082 à toutes les vitesses de boucles étudiées.
Figure 6 – Utilisation des ressources de l'unité centrale nécessaire pour exécuter une application complexe avec un grand nombre de tâches courantes de contrôle et de surveillance à des vitesses de boucles de contrôle différentes.
Le contrôleur hautes performances CompactRIO réduit le coût et la complexité des systèmes en implémentant une IHM locale avec un support d'interface utilisateur embarquée. En effet, ce nouveau contrôleur incorpore le dernier processeur Atom d'Intel avec support des graphismes, qui constitue une solide base pour construire à la fois la logique du système de contrôle et l'interface utilisateur tactile avec LabVIEW. Pour cela, l'environnement de développement LabVIEW et le système d'exploitation NI Linux Real-Time permettent au développeur de hiérarchiser les tâches et d'attribuer notamment une priorité plus haute aux tâches de contrôle, par rapport aux tâches logicielles de l'IHM qui s'exécutent dans la même application.
Dans ce cas, les ressources de la cible sont utilisées à la fois pour le contrôle du système et pour gérer les graphismes de l'interface utilisateur. Cela réduit le coût du matériel du système, les efforts de maintenance, ainsi que la complexité du développement logiciel, mais consomme davantage de ressources du contrôleur comparé à d'autres méthodes d'affichage.
Pour mesurer l'impact de l'interface utilisateur embarquée sur les ressources du processeur, le Test 3 a été modifié pour solliciter en continu l'IHM en mettant à jour ses composants à des fréquences élevées. La Figure ci-dessous montre l'impact de l'utilisation de la fonctionnalité de l'interface utilisateur embarquée avec une interface utilisateur très active, comme celle du Test 3.
Figure 7 – Une utilisation constante de l'unité centrale d'environ 10 % peut être observée lorsque la fonctionnalité d'IU embarquée est activée et que l'IU est mise à jour à des fréquences élevées.
Lorsque cette fonctionnalité est pleinement sollicitée, son utilisation résulte en une augmentation de l'utilisation de l'unité centrale de 10 % sur le contrôleur hautes performances double cœur, et de 3 % sur le modèle quadricœur. Comme pour les Tests 1 et 2, l'impact de la fonctionnalité d'IU embarquée reste inchangé en dépit des variations au niveau du nombre de voies transférées.
Pour supporter les capacités graphiques de l'IU embarquée, le système sur puce (SoC) Atom d'Intel utilise un GPU pour améliorer les capacités de l'unité centrale. Le GPU communique avec le processeur par le biais d'appels d'interruption fréquents, qui prennent du temps de traitement sur celui requis par l'application LabVIEW Real-Time. Dans le cadre du test 3, les hautes performances de l'unité centrale Atom d'Intel maintiennent l'augmentation du temps de traitement dédié à la mise à jour du GPU dans des fréquences de boucles de contrôle inférieures à 6 kHz. Pour atteindre des fréquences de boucle plus élevées tout en continuant à utiliser l'IU embarquée, il faudra soit désactiver le GPU, soit basculer le code de commande LabVIEW sur le FPGA embarqué, en suivant les indications ci-dessous.
Pour les applications dans lesquelles ces remarques concernant l'IU embarquée pourraient potentiellement compromettre les performances du systèmes, tenez compte des recommandations suivantes :
Les applications embarquées exécutent une quantité croissante de fonctions telles que la commande de mouvement, l'enregistrement de données, l'acquisition d'images et les IHM. Avec la combinaison de technologies et les fonctionnalités uniques qu'il présente et qui accélèrent le développement tout en réduisant le coût et la complexité des systèmes, le contrôleur hautes performances CompactRIO est parfaitement adapté à ces applications.
Le contrôleur CompactRIO hautes performances démontre une nette amélioration des performances par rapport aux autres familles de contrôleurs, et élargit la gamme de cibles compatibles en utilisant des technologies innovantes telles que NI Linux Real-Time. Il offre des technologies matérielles et logicielles souples et performantes basées sur l'architecture LabVIEW RIO, parfaitement adaptées à un large éventail d'applications de contrôle et de surveillance embarquées.
À l'issue de cette série de tests, le contrôleur CompactRIO hautes performances a révélé des performances de 4 à 8 fois supérieures à celles qu'offrent les contrôleurs de familles cRIO comparables, comme le cRIO-9025. À l'heure actuelle, le modèle quadricœur présente des performances très similaires à celles du cRIO-908x. Pour en savoir plus sur ces contrôleurs, consultez la page www.ni.com/compactrio.