Document original : LUGE 2019.2 : Application Web LabVIEW CG et NXG Web Module (PDF, 3,3 Mo, 43 pages)

LUGE 2019.2
pour publier vos données
Web services sous LabVIEW APP Web sous LabVIEW NXG
Micaël DA SILVA (CLA – CTA) & Luc DESRUELLE (CLA – CTD - LV Champion)
La société MESULOG en bref

Activité : Développement logiciel test et mesure
Compétences : LabVIEW (Windows, RT, DSC, FPGA),
TestStand VeriStand
Localisation : Moirans (Grenoble, 38)
Partenaire National Instruments (2001)
Développeurs certifiés LabVIEW et TestStand
La société MESULOG en bref

www.mesulog.fr
Réalisations (article utilisateur)
Réalisations
Présentations techniques
LabVIEW TestStand VeriStand
Société -> Présentations techniques
Diapositive 4

Le présentateur : Luc DESRUELLE
CLA - CTD Champion
Livre
NI Forums Community
LUGE
Communité NI & blog Luc desruelle’s blog sur site NI
- LabVIEW NXG
- Gestion IHM
- Architecture Projet LabVIEW
- OOP - objet
- HAL
- Modbus
- ….
MESULOG Software Architect
Luc DESRUELLE
Nouvelle version 16/08/18 sur LabVIEW NXG
Desruelle L & M Da Silva : Application Web & Web Service sous LabVIEW (CG & NXG) 4
Livre LabVIEW

Auteur Livre « LabVIEW : programmation et applications », édition Dunod
Cette présentation est un extrait du chapitre 7 « LabVIEW NXG » de la 4iéme
édition de aout 2018
Chapitres 1 et 2 : Prise en main de l’Environnement de développement, flux de
données, code G avec des exemples simples
Chapitre 3 : Programmation avancée avec des techniques et architectures
permettant au code d’être maintenable, évolutif, documenté et performant.
Chapitres 4, 5 et 6 : Acquisition, analyse et présentation des données. Chapitre 7 : LabVIEW NXG : description du nouvel éditeur, SystemDesigner,
WebVI, migration code
Les + du livre
Exemples concrets et tous téléchargeables gratuitement Acquisition DAQmx, instrument VISA, traitement du signal, analyse mathématique,
génération de rapport Office.
Programmation avancée, gestion des données (locale vers la DVR), variables
fonctionnelles (FGV), les modèles de projet, la gestion des erreurs, les règles de styles, les outils gratuits et indispensables…
Concepts nécessaires pour l’examen Certifications LabVIEW Développeur (CLD). Introduction LabVIEW NXG, glossaires, migration de projet, code, WebVI, environement
Diapositive 6

Le présentateur : Micaël DA SILVA
NI Forums
CLA - CTA
Beer LUGE
Communité NI & blog
- LabVIEW NXG
- Gestion IHM
- Architecture Projet LabVIEW
- OOP
- Modbus
- ….
MESULOG Software Developer
Micaël DA SILVA
Desruelle L & M Da Silva : Application Web & Web Service sous LabVIEW (CG & NXG) 6
Où trouver de l’aide ?

Pour vos questions / problèmes
Forums National Instruments Francophone
http://forums.ni.com/t5/Discussions-au-sujet-de-NI/bd-p/4171
Mais aussi l’ensemble des forums et communautés de NI
LabVIEW Development Best Practices Large Applications : ni.com/largeapps …
Pour les journées d’échange entre développeurs
LUGE : LabVIEW User Group en Rhône-Alpes
Liens

Plus de présentations techniques
www.mesulog.fr/presentations_techniques Blog LabVIEW Français Tutoriels developpez.com Luc Desruelle | LinkedIn
Plus de livres
"LabVIEW programmation et applications" 3iéme édition, Dunod Exemples et images extraits du chapitre 7 de la 4iéme édition
Plus de National Instruments Francophone
Forum francophone NI LabVIEW Forum francophone Autres produits NI Communauté Francophone
Développeurs LabVIEW Rhône-Alpes

Vous voulez en apprendre plus sous LabVIEW? Rejoignez la
communauté LabVIEW User Group en Rhône-Alpes : LUGE
Inscrivez-vous pour rester en contact
Site www.ni.com Recherche « User groups LUGE Rhône-Alpes »
1er Résultat
Demander à être « membre » S’abonner aux messages
Développeurs LabVIEW Rhône-Alpes

Inscrivez-vous à la liste de diffusion pour rester en
contact
Si vous souhaitez recevoir de l'information par e-mails sur les
événements associés au LUGE, merci de remplir ce formulaire (~30s) –
https://goo.gl/forms/nfVS4Yh6rGAmSeWB2
I. Rappel des composants d’une « Application Web »

Sommaire : Applications Web avec LabVIEW (NXG)
II. Exemple de web service avec LabVIEW
III. Construire une application Web avec les outils textuels
IV. Construire une application Web avec LabVIEW NXG
V. Exemple d’une application Web, construite avec LabVIEW
NXG, qui communique par des web services avec une application LabVIEW
Une application Web : C’est quoi?

HTML
Une application Web : C’est quoi? (minimum) Définition (Wikipédia) :

Une application web : installée sur un serveur, accessible depuis le
réseau, et qui se manipule au travers d’un navigateur web
Minimum à connaître sur Technologies Web
HTML : permet d’afficher un document à travers un navigateur web CSS : feuille de style, modifier la mise en forme du document JavaScript : ajout contenu dynamique, intégrer du code dans le
document HTML pour l’exécuter sur la machine client
Web Service : programme accessible au travers du protocole
HTTP qui permet l’échange de données par des messages
JSON : format d’échange de données textuelles
Architecture du projet que nous allons présenter

Communication entre une AppWeb (LabVIEW NXG) et un exécutable (LabVIEW) au travers de Web Services (LabVIEW)
Mon Ordinateur
Base données
Application MESURES
Web Services Serveur Web
Héberge page web
Publication des mesures
Réseau
Acquisition
Mon système Client Visualisation des mesures à distance
Capteurs
Application Web dans
Navigateur Web
Besoins et Solution Besoins :

Application de MESURE à déployer dans le monde Accès aux mesures depuis un navigateur web « standard » Pas d’installation supplémentaire => pas de run-time Réseau Sécurisé par VPN et Firewall
Solution Technique :
Application de mesure sous LabVIEW Web Service sous LabVIEW pour publier les mesures Application Web qui lit les mesures via les Web Services,
réalisée avec :
Des outils web standards (textuel) LabVIEW NXG + Web module (WebVIs en Code G)
Application Web sous LabVIEW « Standard » II. Exemple de web service avec LabVIEW

III. Construire une application Web avec « outils
classiques »
Web Services Définition (source Wikipedia) :

Protocole d'interface informatique permettant la
communication et l'échange de données entre applications et systèmes hétérogènes dans des environnements distribués.
Programme accessible au travers du protocole HTTP qui
permet l’échange de données par des messages
Sous LabVIEW : Un ensemble de VIs regroupés dans un
fichier .lvws
Web Services mise en place sous LabVIEW Application Hôte qui :

Réalise les mesures (application LabVIEW Classique) Via une FIFO : Reçoit et répond aux requêtes du service Web
Web Services mise en place sous LabVIEW Web Service (lvws) - Offre une API accessible via HTTP :

Communication HTTP transparente pour le développeur, elle
est gérée par LabVIEW
Reçoit les requêtes depuis l’application Web Interroge l’application Hôte LabVIEW via une FIFO Queue Retourne le message à l’application Web (JSON, XML)
Application Web – Outils Textuels Classiques Page HTML « classique » - A écrire à la main en textuel

Exemple d’un code disponible sur le site de NI Getting Started Series | Simple JavaScript and HTML with
LabVIEW Web Services
Application Web – Outils Textuels Classiques Feuille de style » CSS » - A modifier à la main en textuel

Application Web – Outils Textuels Classiques Code JavaScript - A éditer à la main en textuel

Appelle l’API du Web Service Décode les données (JSON) Modifie la partie HTML en conséquence
Application Web – Résultat Affichage des mesures

Merci MDS

Micaël m’a expliqué comment faire une application Web
J’ai bien compris, merci - A la main en textuel
Presque….

Bref j’ai voulu faire une application web avec un vrai
graphique « Zoomable » connecté sur mes données…
Construire une application Web avec NXG

Je ne suis pas un développeur Web, mais je connais la
programmation graphique
LabVIEW NXG promet de me permettre de faire
simplement des puissantes AppWeb
Module LabVIEW NXG Web

Disponible dans le Module LabVIEW NXG Web.
L’éditeur NXG permet de
placer des contrôles HTML5 et de générer le code modifier le code source HTML ajouter des fonctionnalités avec du code JavaScript personnaliser l'apparence des contrôles en utilisant une feuille
de style CSS (Cascading Style Sheets)
peuvent être déployés sur toutes les plateformes, sur
n'importe quel navigateur et sans plug-ins.
Module LabVIEW NXG Web

La fonctionnalité est
Très bien De plus en plus puissante De plus en plus complète
Comment construire une application web en 4 étapes
Etape 1 : Créer le projet de l’application Web Etape 2 : Créer le WebVI (et le code) Etape 3 : Construire l’application Web Etape 4 : Distribuer l’application dans le serveur Web
Module LabVIEW NXG Web

Je vais volontairement vite
Pour avoir le temps de vous montrer du code
Etape 1 : Projet d’application Web

Le projet d’application Web .lvproject est composé :
1) Le Document d'application Web (.gcomp) qui regroupe
l’ensemble des fichiers de l’application web.
2) Le WebVI (.gviweb) VI en code G orienté Web 3) Le Server web qui héberge l'application Web. Le serveur
est configurable via l’outil « NI Web Server Configuration ».
Etape 2 : Créer un WebVI

Le WebVI (.gviweb) : VI codé en code G depuis l’éditeur LabVIEW (VI
de niveau principal), avec les fonctionnalités limitées au Web
Il est composé
des panneaux Interface et Diagramme, comme tous les VIs d’un panneau spécifique HTML, qui permet d’avoir une représentation du
document web.
Etape 3 : Construire l’application Web

VI Standard : construire une application (exécutable) pour pouvoir
l’utiliser en dehors de l’environnement de développement,
WebVI : Construire l’application Web pour la visualiser depuis un
navigateur web : A partir du WebVI va générer l’arborescence disque avec les fichiers HTML, CSS, JavaScript, images et autres.
Etape 4 : Distribuer l’application Web

Dossier de publication du serveur Web
C:\Program Files\National Instruments\Shared\Web Server\htdocs
Si je copie la distribution de mon application « MyWebApp »
Dans le dossier \MyWebApp Sera disponible via l’URL http://localhost/MyWebAppr/main.html
Démonstration

Démonstration
NXG vers Web Services LabVIEW

Communication entre LabVIEW NXG et LabVIEW au travers de
Web Services
Mon Ordinateur de supervision ou de test
Application MESURE
Web Services Serveur Web
Héberge page web
Capteurs
Mon système Client
Application Web dans
Navigateur Web
NXG vers Web Services LabVIEW

Web Service
URL : http://localhost:8004/WebService/GetMyData?Index=1
Quelques Astuces : CORS Err 363650

Activer CORS
CORS est un mécanisme normalisé permettant à tout
navigateur d’effectuer des requêtes HTTP cross-domain.
I am receiving the following error when trying to run my LabVIEW
NXG WebVI: No 'Access-Control-Allow-Origin' header is
present on the requested resource. Origin is therefore not allowed access.
When trying to connect to a LabVIEW Web Server from a
LabVIEW NXG WebVI I get Error 363650
Quelques Astuces : Gestion Erreur

Mettre un log d’erreur dans les Web Services pour la gestion
des erreurs
Retourner des codes d’erreurs depuis les Web Services vers
l’application Web
Je vous recommande

La présentation à NI Week 2019 TS 170 – Learn how to
create powerful web apps with LabVIEW NXG Web Module de Matthias Baudot - STUDIO BODs
https://www.studiobods.com/en/niweek2019-ts170/
Je vous recommande

Rappel des présentations LUGE

Gestion « projet » LUGE 1.0 : Les outils qui nous veulent du bien
Plus de temps pour développer en LabVIEW
La gestion des données LUGE 3.0 : Contrôle vers indicateur - Locale - Globale
Quand, comment, pourquoi FGV - AE – SEQ - DVR - OOP télécharger Darwin appliqué à LabVIEW
Les architectures de projet sous LabVIEW
LUGE 4.0 Les modèles sous LabVIEW, zoom QDMH
Rappel des présentations sur NXG

LabVIEW NXG LUGE 5.0 : Mes 7 fonctionnalités préférées
NI Package Manager (NIPM), capture et analyse des données Zoom, objets vectoriels, Unicode, Application Web, WebVI System Designer, génération rapport Excel
LabVIEW NXG LUGE 2019.2 : Application Web, Web Service et Web module
Les web services avec LabVIEW Les Web services avec LabVIEW NXG Construire une application Web avec LabVIEW NXG Communication entre LabVIEW NXG et LabVIEW au travers de Web Services
Questions?



