- Virtual Instrument
-
LabVIEW
LabVIEW Développeur National Instruments Dernière version 9.0 (le 3 août 2009) [+/−] Environnement Windows, Mac OS, Linux Langue Français, Anglais, Allemand, Japonais Type Atelier de génie logiciel, Chaine d'acquisition, Traitement du signal, Système embarqué Licence Propriétaire Site Web Le site officiel LabVIEW est un logiciel de développement d'applications de la société américaine National Instruments basé sur un langage de programmation graphique appelé langage G.
Sommaire
Histoire
C'est en 1986 que la première version de LabVIEW voit le jour sur Macintosh. Il s'en suit un travail incessant pour ajouter des fonctionnalités :
- 1986 : LabVIEW 1.0, sous Mac OS
- 1990 : LabVIEW 2.0, optimisation des performances
- 1992 : LabVIEW 2.5, sous Windows 3.1 et Solaris
- 1993 : LabVIEW 3.0
- 1994 : LabVIEW 3.0.1, sous Windows NT
- 1994 : LabVIEW 3.1
- 1995 : LabVIEW 3.1.1, intégration de l'Application Builder
- 1996 : LabVIEW 4.0
- 1997 : LabVIEW 4.1
- 1998 : LabVIEW 5.0, multitâche, conteneurs ActiveX, assistant pour les cartes d'acquisition (DAQ) et assistant pour le contrôle d'instrument
- 1999 : LabVIEW 5.1, portage sous Linux; première version de LabVIEW RT
- 2000 : LabVIEW 6.0, contrôles au look 3D, référence d'un contrôle
- 2001 : LabVIEW 6.1, optimisation et corrections
- 2003 : LabVIEW 7.0, VI Express, première version des toolkits pour FPGA, pour Palm OS et pour Windows Mobile
- 2004 : LabVIEW 7.1, traduit en français, allemand et japonais
- 2005 : LabVIEW 8.0, Project Explorer, XControls, shared variables
- 2006 : LabVIEW 8.20, programmation orientée objets
- 2007 : LabVIEW 8.5, première version du toolkit Statechart
- 2008 : LabVIEW 8.6, nettoyage automatique des diagrammes, quick drop
- 2009 : LabVIEW 2009 (9.0), extraits de VIs, récursivité native, nouvel éditeur d'icônes, boucles For parallélisables
Un logiciel dédié à la programmation instrumentale
Les domaines d'application traditionnels de LabVIEW sont la commande et la mesure à partir d'un PC (acquisition de données, contrôle-commande d'instruments de mesure, de dispositifs expérimentaux, de bancs de test). Cette vocation est consacrée par des bibliothèques de fonctions spécialisées (GPIB, VXI, PXI, cartes d'acquisition DAQ, traitement de données...), mais aussi par les particularités du langage G (parallélisme inhérent à l'exécution par flux de données) et de l'environnement de développement (pilotes de périphériques standards, assistants pour l'installation du matériel).
Le concept d'instrument virtuel qui a donné son nom à LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench), se manifeste par la permanence d'une interface graphique pour chaque module (fonction) d'un programme. Les contrôles et les indicateurs de ce panneau avant constituent l'interface par laquelle le programme interagit avec l'utilisateur (lecture de commandes et de paramètres, affichage des résultats). Les fonctions de contrôle-commande de cartes ou d'instruments constituent l'interface par laquelle le programme interagit avec le montage.
Un programme LabVIEW permet donc d'automatiser un montage associant plusieurs appareils programmables, et réunit l'accès aux fonctionnalités de ce montage dans une interface utilisateur unique, véritable face avant d'un instrument virtuel.
Le langage G
Pour le développeur, un programme en langage G se présente comme un schéma, le diagramme, réunissant différentes icônes reliées par des fils de couleur. Chaque fil symbolise le passage d'une donnée depuis une source dont elle sort (comme résultat), vers une cible où elle entre (comme paramètre).
Les diagrammes du langage G ont donc une signification bien différente de celle des schémas électroniques qu'ils évoquent parfois. Dans un diagramme LabVIEW, la donnée ne transite dans le fil qu'au moment où elle est générée par son icône source. L'icône cible ne commencera son exécution que lorsque toutes ses données d'entrée seront disponibles. Ce modèle d'ordonnancement par flots de données détermine l'ordre d'exécution des traitements du programme. Une conséquence importante de cette règle est que les traitements qui n'échangent pas de données sont libres de s'exécuter en parallèle. Cette propriété du langage G facilite le développement d'applications multiprocessus, particulièrement intéressantes dans le cadre du contrôle de systèmes réactifs (embarqués ou non).
La conception des programmes en langage G conserve une approche essentiellement procédurale. Mariée à l'exécution par flots de données, cette approche procure de bons résultats dans le domaine de l'instrumentation. Elle est aussi la plus intuitive pour des ingénieurs ou des chercheurs souvent plus familiers des protocoles expérimentaux que des concepts informatiques.
Le support d'une conception orientée objet sous LabVIEW s'est développé de façon plutôt confidentielle avec tout d'abord le kit "GOOP" proposé par une société suédoise dès 1999, puis avec un support des notions de classe et d'héritage au sein même de l'environnement de développement 8.20, en 2006.
Évolution de LabVIEW
Créé par Jeff Kodosky et présenté pour la première fois sur Macintosh en 1986, LabVIEW a étendu son usage au PC et à divers systèmes d'exploitation (Microsoft Windows, UNIX, Linux, Mac OS X...), ainsi qu'aux PDA sous Palm OS et Pocket PC sous Windows Mobile. Il s'est également développé en direction des systèmes embarqués et temps réel, en s'ouvrant par exemple à la programmation de circuits intégrés (FPGA).
Toolkits
Il est possible d'étendre les fonctionnalités de LabVIEW en ajoutant des toolkits qui sont distribués séparément. La liste ci-dessous donne un inventaire de ses compléments :
- FPGA : pour la programmation de carte FPGA
- PDA : Module NI LabVIEW Mobile pour les matériels portables type PDA sousWindows Mobile et Palm OS
- Real Time : module pour la programmation temps-réel
- Applications embarquées : pour les DSP, ARM, ADI Blackfin
- Datalogging and Supervisory Control : pour le développement de superviseur pour les automates programmables industriels (Siemens, Télémécanique, Mitsubishi...)
- Touch Panel : gestion avancée des écrans tactiles
- Vision : traitement des images, reconnaissance de formes, OCR
- Statechart : génération de code à partir de diagrammes d'états
- Lego Mindstorms NXT : programmation des robots Mindstorms NXT de Lego sous LabVIEW
Alternatives à LabVIEW
En ce qui concerne le contrôle, le test et la mesure, on peut développer avec des logiciels tels que :
- LabWindows/CVI, de National Instruments, qui est un environnement de développement pour le langage C et qui offre les mêmes bibliothèques logicielles de fonctions.
- Measurement Studio, de National Instruments, qui est un ensemble de bibliothèques de fonctions et de contrôles graphiques pour Visual Studio, permettant ainsi de la programmation en C++, Visual Basic ou C sharp tout en profitant de fonctionnalités dédiées au contrôle, test et mesure.
- Il est bien sûr possible de programmer les logiciels de test et mesure dans tous langages de programmation sans bénéficier des fonctions dédiées à ce domaine. Le développement s'en trouvera plus long mais il pourra avoir le mérite d'être indépendant d'un produit commercial et fermé.
Voir aussi
Articles connexes
Liens externes
- Site officiel
- (en) LabVIEW Zone, communauté officielle
- Test Drive NI LabVIEW, test en ligne du logiciel
- FAQ LabVIEW - Recueil de questions-réponses
- Developpez.com, club d'entraide des développeurs francophones
- OpenG, Communauté Open Source LabVIEW
- (en) Info-LabVIEW, liste de diffusion
- (de) Forum LabVIEW
- (de) Wiki LabVIEW
- (en) LabVIEW advanced virtual architects, forum pour utilisateurs avancés
Catégorie : Outil de développement logiciel
Wikimedia Foundation. 2010.