Enseigner avec un CompactRIO

08/02/2013
Auteurs :
Publication 3EI 3EI 2013-71
OAI : oai:www.see.asso.fr:1044:2013-71:3421
DOI : You do not have permission to access embedded form.

Résumé

Enseigner avec un CompactRIO

Métriques

43
10
785.67 Ko
 application/pdf
bitcache://3c0308447d9d9f5ddfa4786bd90973318eaef72b

Licence

Creative Commons Aucune (Tous droits réservés)
<resource  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns="http://datacite.org/schema/kernel-4"
                xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
        <identifier identifierType="DOI">10.23723/1044:2013-71/3421</identifier><creators><creator><creatorName>Ghislain Remy</creatorName></creator></creators><titles>
            <title>Enseigner avec un CompactRIO</title></titles>
        <publisher>SEE</publisher>
        <publicationYear>2013</publicationYear>
        <resourceType resourceTypeGeneral="Text">Text</resourceType><dates>
	    <date dateType="Created">Fri 8 Feb 2013</date>
	    <date dateType="Updated">Mon 25 Jul 2016</date>
            <date dateType="Submitted">Mon 19 Feb 2018</date>
	</dates>
        <alternateIdentifiers>
	    <alternateIdentifier alternateIdentifierType="bitstream">3c0308447d9d9f5ddfa4786bd90973318eaef72b</alternateIdentifier>
	</alternateIdentifiers>
        <formats>
	    <format>application/pdf</format>
	</formats>
	<version>28628</version>
        <descriptions>
            <description descriptionType="Abstract"></description>
        </descriptions>
    </resource>
.

Enseigner avec un CompactRIO GHISLAIN REMY Maître de Conférences, IUT de Cachan 9 Av. de la Division Leclerc, 94230 Cachan 1. CompactRIO : une interface entre le prototypage rapide et l’électronique industrielle embarquée. Ces dernières années, les systèmes d’acquisition, de contrôles-commandes, de supervision et de sauvegarde de données en temps-réel ont rapidement évolué dans l’industrie. Notamment, à cause de l’apparition des FPGA qui rivalisent, voir qui dépassent maintenant les microprocesseurs et les microcontrôleurs en termes de performance. Ainsi de façon judicieuse, des solutions industrielles sont apparues utilisant des FPGA couplés aux microprocesseurs, permettant ainsi de combiner la facilité de programmation des microprocesseurs utilisant des langages de haut niveau (gestion réseau, système d'exploitation, etc.), avec les performances des FPGA, notamment pour la possibilité de pouvoir reprogrammer les connections entre les différentes entrées/sorties (logique câblée conférant par nature un vrai parallélisme aux fonctions programmées). Depuis 2005, National Instrument vend le CompactRIO : ce système associe une architecture embarquée de petite taille dans un boîtier très robuste, des modules d'E/S industriels échangeables à chaud et qui s'appuie sur la technologie FPGA d'E/S Reconfigurables, d’où le nom « RIO ». Globalement « CompactRIO ». Figure 1 : CompactRIO avec son contrôleur et ses modules. Pour une utilisation en travaux pratiques, le CompactRIO est un outil intéressant : notamment, pour l’aspect modulaire qui permet de changer les modules d’entrées-sorties (même à chaud) et donc d’adapter rapidement les séances de TP pour faire de l’acquisition, du pilotage de système, de la supervision ou tout simplement de la programmation sur cible. Il faut aussi considérer qu’il existe plus de 50 modules différents disponibles (entrées/sorties analogique et/ou numérique, communication CAN / LIN / Wifi, acquisition de capteurs en tension / en courant / pour sondes thermiques, etc.). D’autre part, le CompactRIO est connectable en Ethernet directement sur le réseau, le rendant ainsi facilement déplaçable d’une salle à l’autre. Il a un faible encombrement et est très robuste. Enfin, son prix reste raisonnable (entre 3000€ et 5000€) pour du matériel utilisé principalement en industrie et donc non spécifique à l’enseignement. L’utilisation du CompactRIO est particulièrement adaptée à l’enseignement par projet autour de systèmes réels. Par exemple, à l’IUT de Cachan, nous avons développés plusieurs systèmes à base de CompactRIO : Buggy électrique, Kart électrique, Banc de test de scooter électrique… Dans la suite de cet article, l’architecture du CompactRIO, puis sa configuration à l’aide du logiciel NI MAX sera présentée. Enfin, la programmation avec LabVIEW sera détaillée suivant une progression pédagogique liée à la technologie du CompactRIO. Figure 2 : Exemple d’un Scooter électrique instrumenté. Résumé : Cet article présente les principes de fonctionnement et de programmation du CompactRIO, système industriel de contrôle/commande utilisant des modules d’entrées/sorties reconfigurables, et développé par National Instrument. Dans cet article, l’accent est surtout mis sur l’intérêt et l’utilisation du CompactRIO en enseignement. 2. Architecture détaillée Les CompactRIO sont composés de deux parties, (séparables ou d’un seul bloc suivant la gamme) : Le contrôleur avec son microprocesseur et le châssis avec son FPGA. Le contrôleur en temps réel de la série NI-90xx est muni d’un processeur avec une large gamme de fréquences d'horloge (de 400Hz à 1,3GHz) permettant la mise en œuvre d'algorithme de contrôle déterministe. Il intègre de la mémoire de stockage non volatile (de 2 Go à 32Go), de la mémoire flash (DDR2 de 256 Mo à DDR3 de 2Go). Il intègre de plus un ou deux ports Ethernet avec serveurs Web et FTP, pour un interfaçage utilisateur déporté. On trouve aussi un port hôte USB Hi-Speed, pour la connexion de périphériques flash et de mémoire. Enfin, il possède un port série RS-232. Son alimentation est double comprise entre 9 à 35 Vcc. Le compactRIO communique exclusivement par le port Ethernet avec un PC hôte. Le châssis est disponible en deux formats, à savoir avec 4 et 8 slots. Le module FPGA présent dans le châssis incorpore un FPGA de marque Xilinx (Virtex 5 ou Spartan 6). Il est utilisé pour la mise en œuvre de niveau logique bas sur les données acquises à l'aide des modules d'entrées-sorties. Le FPGA est programmable séparément et est relié au dispositif de commande en temps réel à l'aide d'un bus interne haut débit PCI. Les modules d'entrées-sorties sont des cartes de la série C faites principalement par National Instruments, mais aussi par des sociétés tierces. Ces modules sont échangeables à chaud. Figure 3 : Architecture interne du CompactRIO 3. Configuration du CompactRIO La configuration du CompactRIO s’effectue principalement par le logiciel NI MAX, de son vrai nom « Measurement and Automation Explorer » : Toutefois, il est important que lors de l’installation de LabVIEW, les modules Real-Time et FPGA soient installés. De plus, il faut installer les drivers pour les cibles Compact-RIO (sur le CDROM des drivers). En effet, sans ces modules et drivers, il ne sera pas possible de reconnaitre et de programmer le CompactRIO. Remarquons que la démarche qui est présentée dans ce paragraphe est aussi applicable à toute la famille des Single-Board RIO (sbRIO). Figure 4 : Configuration dans NI MAX du CompactRIO La configuration réseau s’effectue alors en sélectionnant l’onglet « Paramètres réseau », en bas de la figure 4. Il est ainsi possible de configurer la carte Ethernet via un DHCP ou avec une configuration statique. Cette dernière solution plus fastidieuse permet néanmoins de garantir le fonctionnement du système même hors réseau : par exemple, le CompactRIO pourra ainsi être connecté directement sur le PC de l’étudiant/enseignant avec un câble réseau. Le client configurant alors sa carte réseau sur l’IP (ici 192.168.179.1 dans la figure 5) correspondant à l’adresse de la passerelle « Gateway » du compactRIO. Figure 5 : Configuration Ethernet statique ou par DHCP L’étape suivante est l’installation des logiciels dans la cible compactRIO, qui lui permettra ainsi de pouvoir communiquer avec l’ordinateur, de recevoir du code LabVIEW précompilé et de fonctionner de manière autonome avec un OS embarqué (NI-RIO 12.0 par exemple) qui est temps-réel et déterministe. Il est important de comprendre que la version de LabVIEW Real-Time du PC doit correspondre avec la version NI-RIO installée dans le compactRIO : sans quoi, la communication est quasi-impossible... Ce problème de version différente de LabVIEW entre les différents postes ou de salles d’enseignement est très fréquent, et nous pose à chaque fois des problèmes au démarrage des séances de travaux pratiques… D’autre part, la configuration proposée par défaut n’installe pas tous les drivers disponibles dans le compactRIO. Figure 6 : Installation de l’OS embarqué, NI-RIO Par exemple, pour l‘utilisation d’une caméra réseau (Caméra IP), il est nécessaire de faire une « Installation personnalisée des logiciels », représentée sur la figure 6 et de valider l’option « IP Camera Support » Le CompactRIO est maintenant opérationnel ! 4. Programmer un compactRIO = Explorateur de projet Le CompactRIO est considéré dans LabVIEW comme un système déporté : c’est-à-dire une cible autonome sur laquelle le code compilé va s’exécuter. Il doit donc être ajouté au projet comme une cible distante et non pas dans l’ordinateur. Le projet sera composé notamment : de programmes LabVIEW (fichiers .vi), de répertoires virtuels (pour faciliter le rangement des programmes du projet), de librairies de programmes ou de variables partagées (fichiers .llb), de modules entrées-sorties (variables I/O), etc. Figure 7 : Explorateur de projet Si le compactRIO est alimenté et connecté au réseau lors de l’ajout de la cible au projet, LabVIEW reconnaitra alors le contrôleur, le châssis et l’ensemble des C-modules disponibles. Autrement, il est possible d’ajouter le CompactRIO manuellement en précisant sa référence puis en modifiant son adresse internet (IP). Figure 8 : Ajouter un Contrôleur de compactRIO De la même façon, manuellement ou de manière automatique, on peut ajouter un châssis : Figure 9 : Ajout d’un châssis. Les modules enfichés dans le châssis (carte d’entrée analogique, par exemple) peuvent alors être utilisés suivant deux modes de programmation : - Le mode « Scan Interface », qui permet d'utiliser les modules de la Série C directement à partir de LabVIEW Real-Time. Ce mode nécessite NI-RIO IO installé dans le contrôleur. - Le mode « LabVIEW FPGA Interface », qui permet d'utiliser les modules de la série C à partir du module LabVIEW FPGA. Figure 10 : Sélection du mode programmation Pédagogiquement, le mode Scan Interface est conseillé dans un premier temps car il permet de ne pas prendre en compte les problématiques liées au FPGA : telles que la programmation en nombre entier ou la compilation très lente du FPGA (5 à 7 min au minimum), qui est classique chez tous les fabricants de FPGA, donc aussi lent avec Altera, Xilinx… Figure 11 : Description du mode « Scan Interface » Le principe du mode « Scan Interface » est de proposer une version précompilée pour le FPGA des modules d’entrées-sorties, comme décrit dans la figure 11. Ainsi, l’étudiant ne se rend pas compte que le module est interfacé avec un FPGA et surtout le temps de compilation est réduit à moins de 2 minutes. Nous constatons très souvent qu’en travaux pratiques, notamment dans ceux concernant le VHDL, le temps de compilation joue fortement sur la motivation et l’implication des étudiants… Le mode LabVIEW FPGA Interface permet toutefois de réaliser un code compilé optimisé pour le projet et donc plus performant : par exemple, la programmation par boucle cadencée se base sur une horloge de 1 kHz ou 1 MHz en mode Scan Interface et sur une horloge de 40 MHz en mode LabVIEW FPGA Interface. Néanmoins, il est à noter que certains modules commercialisés ne sont pas compatibles avec le mode Scan Interface. Ainsi, les modules de communication CAN, doivent être utilisés en mode LabVIEW FPGA Interface. 5. Programmer en mode Scan Interface La figure suivante montre l’architecture d’un projet compactRIO utilisant le châssis et un module d’acquisition de voie analogique NI 9201. Ici, le module d’entrée est composé de 8 voies. Chaque voie peut-être renommée pour faciliter la lecture du programme par la suite. Enfin, le programme LabVIEW est ajouté au niveau du contrôleur : ici, « Mesure_Tension.vi » Figure 12 : Architecture d’un projet en Scan Interface Figure 13 : Exemple de programme permettant l’affichage de la tension batterie toutes les 1 ms Dans la programmation de systèmes embarqués, il est préférable d’ajouter des routines d’initialisation et d’arrêt du compactRIO. Par exemple : on peut imaginer la gestion d’un ascenseur ; Lorsque le programme se met en route, la commande des freins doit s’initialiser à une certaine valeur pour maintenir les passagers en sécurité. Il en de même pour l’arrêt du programme. Pour faire une acquisition toutes les 1ms, il faut ensuite ajouter une boucle cadencée à 1 kHz, avec un bouton de contrôle pour gérer son arrêt. Puis dans le programme .vi, il suffit alors de glisser-déposer, à partir de la fenêtre de l’explorateur de projet vers le diagramme du .vi, « AI0_Tension_Batterie (AI0) ». L’affichage du résultat de l’acquisition peut se faire sur la face avant à l’aide d’une jauge ou d’un graphique déroulant ou encore d’un afficheur numérique, etc. Figure 14 : Face avant et jauge affichant la tension batterie C’est un exemple très simple, mais qui correspond parfaitement à l’utilisation principale que nos étudiants font du compactRIO en travaux pratiques et en projet. Toutefois dans quelques cas le mode « Scan Interface » ne suffit pas, et il est nécessaire d’ajouter la cible FPGA pour pouvoir utiliser certains modules. 5. Programmer en mode FPGA Pour basculer en mode « LabVIEW FPGA Interface », ils existent plusieurs solutions : soit supprimer le châssis du projet et en ajouter un nouveau châssis en sélectionnant le mode « LabVIEW FPGA Interface » comme décrit dans la figure 10. Soit conserver le châssis actuel et ajouter une cible FPGA. Ensuite, le C-module désirée doit être ajouté aux projets. La figure suivante montre l’ajout d’un module CAN de référence NI 9853. Figure 15 : Exemple de projet avec une cible FPGA et un module CAN La programmation dans LabVIEW est ensuite quasi-identique à celle utilisée en mode Scan Interface, exceptée que les nombres flottants sont interdits. Il est alors nécessaire de travailler avec des nombres réels en virgules fixes. 6. Conclusion Pour résumer : la configuration du CompactRIO s’effectue par le logiciel NI MAX et sa programmation utilise LabVIEW et l’explorateur de projet. Le mode Scan Interface permet d’utiliser la plupart des modules disponibles et simplifie fortement la tâche aux étudiants pour réaliser des acquisitions de signaux analogique. En effet en mode « LabVIEW FPGA Interface », la gestion des flottants n’est pas autorisée. La synchronisation des données entre le microprocesseur et le FPGA étant d’un niveau plus avancé, elle fera l’objet d’un futur article pour préciser les différentes techniques réalisables. 7. Pour en savoir plus Il existe un document gratuit de 225 pages en langue anglaise (malheureusement non traduit en français) sur la programmation pas à pas du CompactRIO : http://www.ni.com/compactriodevguide On trouve aussi sur le site de National Instruments des travaux pratiques sur la prise en main du CompactRIO : CompactRIO Hands-On Tutorial, Basics I and Basics II : http://www.ni.com/white-paper/3111/en http://www.ni.com/white-paper/3112/en Enfin, le forum internet en français et en anglais de National Instrument est une source intéressante pour les étudiants, puisqu’on y trouve des codes de programmes en libre accès déposés par la communauté et dont les utilisateurs peuvent discuter pour proposer des améliorations ou plus simplement demander un renseignement : https://decibel.ni.com/content/community/regional/f rance/labview A titre d’exemples vous pourrez trouver sur les liens suivants un article sur le prototypage d’un buggy et un autre sur un système de détection de piétons. http://sine.ni.com/cs/app/doc/p/id/cs-13191 http://sine.ni.com/cs/app/doc/p/id/cs-15148