LabVIEW - LabVIEW
Développeur(s) | Instruments nationaux |
---|---|
Première version | 1986 |
Version stable | LabVIEW NXG 5.1
LabVIEW 2021 / août 2021 |
Écrit en | C, C++ |
Système opérateur | Multiplateforme : Windows , macOS , Linux |
Taper | Acquisition de données , contrôle d' instruments , automatisation de test , analyse et traitement du signal , contrôle industriel , conception de systèmes embarqués |
Licence | Propriétaire |
Site Internet | www |
Laboratory Virtual Instrument Engineering Workbench ( LabVIEW ) est une plate-forme de conception de systèmes et un environnement de développement pour un langage de programmation visuel de National Instruments .
Le langage graphique est nommé « G » ; à ne pas confondre avec G-code . Le langage de flux de données G a été développé à l'origine par Labview, LabVIEW est couramment utilisé pour l'acquisition de données , le contrôle d'instruments et l' automatisation industrielle sur une variété de systèmes d'exploitation (OS), y compris Microsoft Windows ainsi que diverses versions d' Unix , Linux et macOS .
Les dernières versions de LabVIEW sont LabVIEW 2021 (publiée en août 2021) et LabVIEW NXG 5.1 (publiée en janvier 2021). NI a publié les éditions LabVIEW et LabVIEW NXG Community gratuites pour une utilisation non commerciale le 28 avril 2020.
Programmation de flux de données
Le paradigme de programmation utilisé dans LabVIEW, parfois appelé G, est basé sur la disponibilité des données. S'il y a suffisamment de données disponibles pour un sous-VI ou une fonction, ce sous-VI ou cette fonction s'exécutera. Le flux d'exécution est déterminé par la structure d'un diagramme de blocs graphique (le code source de LabVIEW) sur lequel le programmeur connecte différents nœuds de fonction en traçant des fils. Ces fils propagent des variables et n'importe quel nœud peut s'exécuter dès que toutes ses données d'entrée deviennent disponibles. Comme cela peut être le cas pour plusieurs nœuds simultanément, LabVIEW peut s'exécuter intrinsèquement en parallèle. Le matériel multi-traitement et multi-threading est exploité automatiquement par le planificateur intégré, qui multiplexe plusieurs threads du système d'exploitation sur les nœuds prêts à être exécutés.
Programmation graphique
LabVIEW intègre la création d'interfaces utilisateur (appelées faces-avant) dans le cycle de développement. Les programmes-sous-programmes LabVIEW sont appelés instruments virtuels (VI). Chaque VI a trois composants : un diagramme, une face-avant et un connecteur. Le dernier est utilisé pour représenter le VI dans les diagrammes d'autres VIs appelants. Le panneau avant est construit à l'aide de commandes et d'indicateurs. Les commandes sont des entrées : elles permettent à un utilisateur de fournir des informations au VI. Les indicateurs sont des sorties : ils indiquent, ou affichent, les résultats en fonction des entrées données au VI. Le panneau arrière, qui est un schéma fonctionnel, contient le code source graphique. Tous les objets placés sur le panneau avant apparaîtront sur le panneau arrière en tant que bornes. Le panneau arrière contient également des structures et des fonctions qui effectuent des opérations sur les commandes et fournissent des données aux indicateurs. Les structures et les fonctions se trouvent sur la palette Fonctions et peuvent être placées sur le panneau arrière. Collectivement, les commandes, indicateurs, structures et fonctions sont appelés nœuds. Les nœuds sont connectés les uns aux autres à l'aide de fils, par exemple, deux commandes et un indicateur peuvent être câblés à la fonction d'addition de sorte que l'indicateur affiche la somme des deux commandes. Ainsi, un instrument virtuel peut être exécuté en tant que programme, le panneau avant servant d'interface utilisateur, ou, lorsqu'il est déposé en tant que nœud sur le schéma fonctionnel, le panneau avant définit les entrées et les sorties du nœud via le panneau de connexion. Cela implique que chaque VI peut être facilement testé avant d'être intégré en tant que sous-programme dans un programme plus vaste.
L'approche graphique permet également aux non-programmeurs de créer des programmes en faisant glisser et en déposant des représentations virtuelles d'équipements de laboratoire avec lesquels ils sont déjà familiers. L'environnement de programmation LabVIEW, avec les exemples et la documentation inclus, simplifie la création de petites applications. C'est un avantage d'un côté, mais il y a aussi un certain danger de sous-estimer l'expertise nécessaire pour une programmation G de haute qualité. Pour les algorithmes complexes ou le code à grande échelle, il est important qu'un programmeur possède une connaissance approfondie de la syntaxe spéciale de LabVIEW et de la topologie de sa gestion de mémoire. Les systèmes de développement LabVIEW les plus avancés offrent la possibilité de créer des applications autonomes. De plus, il est possible de créer des applications distribuées, qui communiquent par un modèle client-serveur , et sont donc plus faciles à mettre en œuvre en raison de la nature intrinsèquement parallèle de G.
Des modèles de conception largement acceptés
Les applications dans LabVIEW sont généralement conçues à l'aide d'architectures bien connues, appelées modèles de conception . Les modèles de conception les plus courants pour les applications graphiques LabVIEW sont répertoriés dans le tableau ci-dessous.
Design pattern | But | Détails d'implémentation | Cas d'utilisation | Limites |
---|---|---|---|---|
Variable globale fonctionnelle | Échanger des informations sans utiliser de variables globales | Un registre à décalage d'une boucle while est utilisé pour stocker les données et la boucle while exécute une seule itération dans un instrument virtuel (VI) "non réentrant" | Échangez des informations avec moins de câblage | Tous les instruments virtuels (VI) propriétaires sont conservés en mémoire. |
Machine d'état | Exécution contrôlée qui dépend des événements passés | La structure Case à l' intérieur d'une boucle while passe une variable énumérée à un registre à décalage, représentant l'état suivant ; des machines à états complexes peuvent être conçues à l'aide du module Statechart | • Interfaces utilisateur • Logique complexe • Protocoles de communication |
Tous les états possibles doivent être connus à l'avance. |
Interface utilisateur événementielle | Traitement sans perte des actions des utilisateurs | Les événements GUI sont capturés par une file d'attente de structure d'événements, à l'intérieur d'une boucle while ; la boucle while est suspendue par la structure de l'événement et ne reprend que lorsque les événements souhaités sont capturés | Interface utilisateur graphique | Une seule structure d'événement dans une boucle. |
Maître d'esclave | Exécuter des processus indépendants simultanément | Plusieurs boucles while parallèles, dont l'une fonctionne comme le "maître", contrôlant les boucles "esclaves" | Une interface graphique simple pour l'acquisition et la visualisation des données | L'attention et la prévention des conditions de course sont nécessaires. |
Producteur-consommateur | Exécution asynchrone de boucles multithread | Une boucle maître contrôle l'exécution de deux boucles esclaves, qui communiquent à l'aide de notificateurs, de files d'attente et de sémaphores ; les boucles indépendantes des données sont automatiquement exécutées dans des threads séparés | Échantillonnage et visualisation des données | L'ordre d'exécution n'est pas évident à contrôler. |
Machine d'état en file d'attente avec producteur-consommateur événementiel | Interface utilisateur très réactive pour les applications multithread | Une interface utilisateur pilotée par les événements est placée à l'intérieur de la boucle du producteur et une machine à états est placée à l'intérieur de la boucle du consommateur, communiquant à l'aide de files d'attente entre eux et d'autres VIs parallèles. | Applications complexes |
Avantages
Interfaçage avec les appareils
LabVIEW inclut une prise en charge étendue de l'interfaçage avec des périphériques tels que des instruments, des caméras et d'autres périphériques. Les utilisateurs s'interfacent avec le matériel en écrivant des commandes de bus directes (USB, GPIB, série) ou en utilisant des pilotes spécifiques au périphérique de haut niveau qui fournissent des nœuds de fonction LabVIEW natifs pour contrôler le périphérique.
LabVIEW inclut une prise en charge intégrée des plates-formes matérielles NI telles que CompactDAQ et CompactRIO , avec un grand nombre de blocs spécifiques aux périphériques pour ce matériel, les ensembles d' outils Measurement and Automation eXplorer (MAX) et Virtual Instrument Software Architecture (VISA).
National Instruments met des milliers de drivers de périphériques à disposition en téléchargement sur le NI Instrument Driver Network (IDNet).
Compilation de code
LabVIEW inclut un compilateur qui produit du code natif pour la plate-forme CPU. Le code graphique est converti en représentation intermédiaire de flux de données, puis traduit en morceaux de code machine exécutable par un compilateur basé sur LLVM . Le moteur d'exécution appelle ces morceaux, ce qui permet de meilleures performances. La syntaxe LabVIEW est strictement appliquée pendant le processus d'édition et compilée dans le code machine exécutable lorsqu'on lui demande de l'exécuter ou lors de l'enregistrement. Dans ce dernier cas, l'exécutable et le code source sont fusionnés en un seul fichier binaire. L'exécution est contrôlée par LabVIEW d' exécution du moteur, qui contient un code compilé avant d'effectuer des tâches courantes qui sont définies par le langage G. Le moteur d'exécution régit le flux d'exécution et fournit une interface cohérente avec divers systèmes d'exploitation, systèmes graphiques et composants matériels. L'utilisation de l'environnement d'exécution rend les fichiers de code source portables sur les plates-formes prises en charge. Les programmes LabVIEW sont plus lents que le code C compilé équivalent, bien que comme dans d'autres langages, l'optimisation des programmes permet souvent d'atténuer les problèmes de vitesse d'exécution.
Grandes bibliothèques
De nombreuses bibliothèques avec un grand nombre de fonctions pour l'acquisition de données, la génération de signaux, les mathématiques, les statistiques, le conditionnement de signaux, l'analyse, etc., ainsi que de nombreuses fonctions telles que l'intégration, les filtres et d'autres capacités spécialisées généralement associées à la capture de données à partir de capteurs matériels est énorme. De plus, LabVIEW inclut un composant de programmation textuel nommé MathScript avec des fonctions supplémentaires pour le traitement du signal, l'analyse et les mathématiques. MathScript peut être intégré à la programmation graphique à l'aide de nœuds de script et utilise une syntaxe généralement compatible avec MATLAB .
Programmation parallèle
LabVIEW est un langage intrinsèquement concurrent , il est donc très facile de programmer plusieurs tâches exécutées en parallèle via le multithreading. Par exemple, cela se fait facilement en dessinant deux ou plusieurs boucles while parallèles et en les connectant à deux nœuds séparés. C'est un grand avantage pour l'automatisation du système de test, où il est courant d'exécuter des processus tels que le séquençage des tests, l'enregistrement de données et l'interfaçage matériel en parallèle.
Écosystème
En raison de la longévité et de la popularité du langage LabVIEW, et de la possibilité pour les utilisateurs d'étendre ses fonctions, un vaste écosystème de modules complémentaires tiers s'est développé grâce aux contributions de la communauté. Cet écosystème est disponible sur le LabVIEW Tools Network, qui est une place de marché pour les modules complémentaires LabVIEW gratuits et payants.
Communauté d'utilisateurs
Il existe une édition LabVIEW Student à faible coût destinée aux établissements d'enseignement à des fins d'apprentissage. Il existe également une communauté active d'utilisateurs de LabVIEW qui communiquent via plusieurs listes de diffusion électroniques (groupes de messagerie) et forums Internet .
Édition groupée pour la maison
National Instruments propose une édition LabVIEW Home Bundle à faible coût.
Edition communautaire
National Instruments propose une version gratuite et non commerciale appelée LabVIEW Community Edition. Cette version inclut tout dans les éditions professionnelles de LabVIEW, n'a pas de filigrane et inclut le module Web LabVIEW NXG pour une utilisation non commerciale. Ces éditions peuvent également être utilisées par les écoles K-12.
Critique
LabVIEW est un produit propriétaire de National Instruments . Contrairement aux langages de programmation courants tels que C ou Fortran , LabVIEW n'est géré ou spécifié par aucun comité de normalisation tiers tel que l' American National Standards Institute (ANSI), l' Institute of Electrical and Electronics Engineers (IEEE), l'Organisation internationale de normalisation (ISO).
Non textuel
Étant donné que le langage G n'est pas textuel, les outils logiciels tels que la gestion des versions, la comparaison côte à côte (ou diff) et le suivi des modifications de code de version ne peuvent pas être appliqués de la même manière que pour les langages de programmation textuels. Il existe des outils supplémentaires pour comparer et fusionner le code avec des outils de contrôle de code source (versioning) tels que subversion, CVS et Perforce.
Pas de fonction zoom
Il n'est pas possible de zoomer (ou d'agrandir) un instrument virtuel (VI) qui sera difficile à voir sur un grand moniteur haute résolution. Cependant, la possibilité de zoomer a été ajoutée dans LabVIEW NXG.
Historique des versions
En 2005, à partir de LabVIEW 8.0, des versions majeures sont publiées vers la première semaine d'août, pour coïncider avec la conférence annuelle de National Instruments NI Week, et suivies d'une version de correction de bogues en février suivant.
En 2009, National Instruments a commencé à nommer les versions après l'année de leur sortie. Une correction de bogue est appelée Service Pack, par exemple, le Service Pack 1 2009 a été publié en février 2010.
En 2017, National Instruments a déplacé la conférence annuelle en mai et a publié LabVIEW 2017 avec un LabVIEW NXG 1.0 entièrement repensé et basé sur Windows Presentation Foundation (WPF).
Nom et version | Numéro de build | Date | Remarques |
---|---|---|---|
Début du projet LabVIEW | avril 1983 | ||
LabVIEW 1.0 | octobre 1986 | pour Macintosh | |
LabVIEW 2.0 | janvier 1990 | ||
LabVIEW 2.5 | Août 1992 | première version pour Sun et Windows | |
LabVIEW 3.0 | juillet 1993 | Multi plateforme | |
LabVIEW 3.0.1 | 1994 | première version pour Windows NT | |
LabVIEW 3.1 | 1994 | ||
LabVIEW 3.1.1 | 1995 | première version avec la capacité de « constructeur d'applications » | |
LabVIEW 4.0 | avril 1996 | ||
LabVIEW 4.1 | 1997 | ||
LabVIEW 5.0 | Février 1998 | ||
LabVIEW RT | Mai 1999 | Temps réel | |
LabVIEW 6.0 (6i) | 6.0.0.4005 | 26 juillet 2000 | |
LabVIEW 6.1 | 6.1.0.4004 | 12 avril 2001 | |
LabVIEW 7.0 (Express) | 7.0.0.4000 | avril 2003 | |
Module PDA LabVIEW | mai 2003 | première version du module | |
Module LabVIEW FPGA | juin 2003 | première sortie | |
LabVIEW 7.1 | 7.1.0.4000 | 2004 | |
Module LabVIEW Embarqué | mai 2005 | première sortie | |
LabVIEW 8.0 | 8.0.0.4005 | Septembre 2005 | |
LabVIEW 8.20 | août 2006 | programmation native orientée objet | |
LabVIEW 8.2.1 | 8.2.1.4002 | 21 février 2007 | |
LabVIEW 8.5 | 8.5.0.4002 | 2007 | |
LabVIEW 8.6 | 8.6.0.4001 | 24 juillet 2008 | |
LabVIEW 8.6.1 | 8.6.0.4001 | 10 décembre 2008 | |
LabVIEW 2009 | 9.0.0.4022 | 4 août 2009 | 32 bits et 64 bits |
LabVIEW 2009 SP1 | 9.0.1.4011 | 8 janvier 2010 | |
LabVIEW 2010 | 10.0.0.4032 | 4 août 2010 | |
LabVIEW 2010 f2 | 10.0.0.4033 | 16 septembre 2010 | |
LabVIEW 2010 SP1 | 10.0.1.4004 | 17 mai 2011 | |
LabVIEW pour LEGO MINDSTORMS | Août 2011 | 2010 SP1 avec quelques modules | |
LabVIEW 2011 | 11.0.0.4029 | 22 juin 2011 | |
LabVIEW 2011 SP1 | 11.0.1.4015 | 1er mars 2012 | |
LabVIEW 2012 | 12.0.0.4029 | Août 2012 | |
LabVIEW 2012 SP1 | 12.0.1.4013 | Décembre 2012 | |
LabVIEW 2013 | 13.0.0.4047 | Août 2013 | |
LabVIEW 2013 SP1 | 13.0.1.4017 | mars 2014 | |
LabVIEW 2014 | 14,0 | Août 2014 | |
LabVIEW 2014 SP1 | 14.0.1.4008 | Mars 2015 | |
LabVIEW 2015 | 15.0f2 | Août 2015 | |
LabVIEW 2015 SP1 | 15.0.1f1 | Mars 2016 | |
LabVIEW 2016 | 16.0.0 | Août 2016 | |
LabVIEW 2017 | 17.0f1 | Mai 2017 | |
LabVIEW NXG 1.0 | 1.0.0 | Mai 2017 | |
LabVIEW 2017 SP1 | 17.0.1f1 | janv. 2018 | |
LabVIEW NXG 2.0 | 2.0.0 | janv. 2018 | |
LabVIEW 2018 | 18,0 | Mai 2018 | |
LabVIEW NXG 2.1 | 2.1.0 | Mai 2018 | |
LabVIEW 2018 SP1 | 18.0.1 | sept. 2018 | |
LabVIEW NXG 3.0 | 3.0.0 | novembre 2018 | |
LabVIEW 2019 | 19,0 | Mai 2019 | |
LabVIEW NXG 3.1 | 3.1.0 | Mai 2019 | |
LabVIEW 2019 SP1 | 19.0.1 | novembre 2019 | |
LabVIEW NXG 4.0 | 4.0.0 | novembre 2019 | |
LabVIEW 2020 et LabVIEW NXG 5.0 Community Edition |
avril 2020 | premières versions | |
LabVIEW 2021 | 21,0 | Août 2021 |
Dépôts et bibliothèques
OpenG , ainsi que LAVA Code Repository (LAVAcr), servent de référentiels pour un large éventail d'applications et de bibliothèques Open Source LabVIEW . SourceForge a répertorié LabVIEW comme l'un des langages possibles dans lesquels le code peut être écrit.
VI Package Manager est devenu le gestionnaire de packages standard pour les bibliothèques LabVIEW. Son objectif est très similaire aux RubyGems de Ruby et au CPAN de Perl , bien qu'il fournisse une interface utilisateur graphique similaire au Synaptic Package Manager . VI Package Manager donne accès à un référentiel des bibliothèques OpenG (et autres) pour LabVIEW.
Des outils existent pour convertir MathML en code G.
Logiciels associés
National Instruments propose également un produit nommé Measurement Studio , qui offre de nombreuses fonctionnalités de test, de mesure et de contrôle de LabVIEW, sous la forme d'un ensemble de classes à utiliser avec Microsoft Visual Studio . Cela permet aux développeurs d'exploiter certaines des forces de LabVIEW dans le cadre textuel .NET . National Instruments propose également LabWindows/CVI comme alternative aux programmeurs C ANSI.
Lorsque les applications nécessitent un séquençage, les utilisateurs utilisent souvent LabVIEW avec le logiciel de gestion de tests TestStand, également de National Instruments.
L' interpréteur Ch est un interpréteur C / C++ qui peut être intégré dans LabVIEW pour la création de scripts.
FlowStone DSP de DSP Robotics utilise également une forme de programmation graphique similaire à LabVIEW, mais se limite respectivement à l'industrie de la robotique.
LabVIEW possède un nœud direct avec modeFRONTIER , un environnement d'optimisation et de conception multidisciplinaire et multi-objectifs, écrit pour permettre le couplage à presque n'importe quel outil d' ingénierie assistée par ordinateur . Les deux peuvent faire partie de la même description de workflow de processus et peuvent être virtuellement pilotés par les technologies d'optimisation disponibles dans modeFRONTIER.
Voir également
- Comparatif des logiciels d'analyse numérique
- Programmation de flux de données
- Langage de programmation de quatrième génération
- Programmation graphique
- Conception graphique du système
- Titres de logiciels associés
- Lego Mindstorms NXT , dont l'environnement de programmation NXT-G est basé sur LabVIEW, et peut être programmé dans LabVIEW.
- 20-sim
- LabWindows/CVI
- MATLAB / Simulink
- Instrumentation virtuelle
- CompactDAQ
- CompactRIO
- TOMVIEW
- Forfaits gratuits et open source
Les références
Lectures complémentaires
- Bress, Thomas J. (2013). Programmation LabVIEW efficace . [Sl] : NTS Appuyez. ISBN 978-1-934891-08-7.
- Blume, Peter A. (2007). Le livre de style LabVIEW . Upper Saddle River, NJ : Prentice Hall. ISBN 978-0-13-145835-2.
- Travis, Jeffrey ; Kring, Jim (2006). LabVIEW pour tous : la programmation graphique simplifiée et amusante (3e édition). Upper Saddle River, NJ : Prentice Hall. ISBN 0-13-185672-3.
- Conway, Jon ; Watts, Steve (2003). Une approche de génie logiciel de LabVIEW . Upper Saddle River, NJ : Prentice Hall PTR. ISBN 0-13-009365-3.
- Olansen, Jon B.; Rosow, Éric (2002). Bio-instrumentation virtuelle : applications biomédicales, cliniques et de santé dans LabVIEW . Upper Saddle River, NJ : Prentice Hall PTR. ISBN 0-13-065216-4.
- Beyon, Jeffrey Y. (2001). Programmation LabVIEW, acquisition et analyse de données . Upper Saddle River, NJ : Prentice Hall PTR. ISBN 0-13-030367-4.
- Travis, Jeffrey (2000). Applications Internet dans LabVIEW . Upper Saddle River, NJ : Prentice Hall PTR. ISBN 0-13-014144-5.
- Essick, John (1999). Laboratoires LabVIEW avancés . Upper Saddle River, NJ : Prentice Hall. ISBN 0-13-833949-X.
Articles sur des utilisations spécifiques
- Desnica V, Schreiner M, Vladan ; Schreiner, Manfred (octobre 2006). "Un spectromètre de fluorescence X portable contrôlé par LabVIEW pour l'analyse d'objets d'art" . Spectrométrie aux rayons X . 35 (5) : 280-286. Bibcode : 2006XRS .... 35..280D . doi : 10.1002/xrs.906 . Archivé de l'original le 2010-08-18.
- Keleshis C, Ionita C, Rudin S, C.; Ionita, C.; Rudin, S. (juin 2006). "Interface utilisateur graphique Labview [sic] pour le détecteur micro-angio-fluoroscopique haute résolution" . Physique Médicale . 33 (6) : 2007. doi : 10.1118/1.2240285 .CS1 maint: multiple names: authors list (link)
- Fedak W., Bord D., Smith C., Gawrych D., Lindeman K., W. ; Bord, D.; Smith, C.; Gawrych, D. ; Lindeman, K. (mai 2003). "Automatisation de l'expérience Franck-Hertz et de l'appareil à rayons X Tel-X-Ometer à l'aide de LABVIEW" . Journal américain de physique . AAPT. 71 (5) : 501-506. Bibcode : 2003AmJPh..71..501F . doi : 10.1119/1.1527949 .CS1 maint: multiple names: authors list (link)
Articles sur les usages pédagogiques
- Belletti A., Borromei R., Ingletto G., A.; Borromée, R.; Ingletto, G. (septembre 2006). "Enseignement d'expériences de chimie physique avec une simulation informatique par LabVIEW". Journal d'éducation chimique . ACS. 83 (9) : 1353-1355. Bibcode : 2006JChEd..83.1353B . doi : 10.1021/ed083p1353 .CS1 maint: multiple names: authors list (link)
- Moriarty PJ, Gallagher BL, Mellor CJ, Baines RR, PJ; Gallagher, BL ; Mellor, juge en chef ; Baines, RR (octobre 2003). "Informatique graphique au laboratoire de licence : Enseignement et interfaçage avec LabVIEW" . Journal américain de physique . AAPT. 71 (10) : 1062-1074. Bibcode : 2003AmJPh..71.1062M . doi : 10.1119/1.1582189 .CS1 maint: multiple names: authors list (link)
- Lauterburg, Urs (juin 2001). "LabVIEW dans l'enseignement de la physique" (PDF) . Un livre blanc sur l'utilisation de LabVIEW dans les démonstrations de physique et les expériences et simulations en laboratoire .
- Drew SM, Steven M. (décembre 1996). « Intégration du logiciel LabVIEW de National Instruments dans le programme de chimie ». Journal d'éducation chimique . ACS. 73 (12) : 1107–1111. Bibcode : 1996JChEd..73.1107D . doi : 10.1021/ed073p1107 .
- Muyskens MA, Glass SV, Wietsma TW, Gray TM, Mark A.; Verre, Samuel V. ; Wietsma, Thomas W. ; Gray, Terry M. (décembre 1996). "Acquisition de données dans le laboratoire de chimie à l'aide du logiciel LabVIEW". Journal d'éducation chimique . ACS. 73 (12) : 1112-1114. Bibcode : 1996JChEd..73.1112M . doi : 10.1021/ed073p1112 .CS1 maint: multiple names: authors list (link)
- Ogren PJ, Jones TP, Paul J.; Jones, Thomas P. (décembre 1996). "Interfaçage de laboratoire à l'aide du progiciel LabVIEW". Journal d'éducation chimique . ACS. 73 (12) : 1115–1116. Bibcode : 1996JChEd..73.1115O . doi : 10.1021/ed073p1115 .
- Trevelyan, JP (juin 2004). "10 ans d'expérience avec les laboratoires distants" (PDF) . Conférence internationale sur la recherche en enseignement de l'ingénierie . ACS.