LUGE 2019.2 : Application Web LabVIEW CG et NXG Web Module

Par Luc Desruelle (MESULOG) · juin 2019

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

Télécharger le PDF Ouvrir dans le navigateur

Réaliser des Applications Web avec LabVIEW (CG & NXG) – diapositive 1

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

La société MESULOG en bref – diapositive 2

 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

La société MESULOG en bref – diapositive 3

 www.mesulog.fr

 Réalisations (article utilisateur)

Réalisations

 Présentations techniques

 LabVIEW  TestStand  VeriStand

Société -> Présentations techniques

Diapositive 4

Réaliser des Applications Web avec LabVIEW (CG & NXG) pour publier vos données – 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

Livre LabVIEW – diapositive 5

 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

Réaliser des Applications Web avec LabVIEW (CG & NXG) pour publier vos données – 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 ?

Où trouver de l’aide ? – diapositive 7

 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

Liens – diapositive 8

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

Développeurs LabVIEW Rhône-Alpes – diapositive 9

 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

Développeurs LabVIEW Rhône-Alpes – diapositive 10

 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 »

I. Rappel des composants d’une « Application Web » – diapositive 11

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?

Une application Web : C’est quoi? – diapositive 12

HTML

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

Une application Web : C’est quoi? (minimum)  Définition (Wikipédia) : – diapositive 13

 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

Architecture du projet que nous allons présenter – diapositive 14

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 :

Besoins et Solution  Besoins : – diapositive 15

 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

Application Web sous LabVIEW « Standard » II. Exemple de web service avec LabVIEW – diapositive 16

III. Construire une application Web avec « outils

classiques »

Web Services  Définition (source Wikipedia) :

Web Services  Définition (source Wikipedia) : – diapositive 17

 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 :

Web Services mise en place sous LabVIEW  Application Hôte qui : – diapositive 18

 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 :

Web Services mise en place sous LabVIEW  Web Service (lvws) - Offre une API accessible via HTTP : – diapositive 19

 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

Application Web – Outils Textuels Classiques  Page HTML « classique » - A écrire à la main en textuel – diapositive 20

 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  Feuille de style » CSS » - A modifier à la main en textuel – diapositive 21

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

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

 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

Application Web – Résultat Affichage des mesures – diapositive 23

Merci MDS

Merci MDS – diapositive 24

 Micaël m’a expliqué comment faire une application Web

 J’ai bien compris, merci - A la main en textuel

Presque….

Presque…. – diapositive 25

 Bref j’ai voulu faire une application web avec un vrai

graphique « Zoomable » connecté sur mes données…

Construire une application Web avec NXG

Construire une application Web avec NXG – diapositive 26

 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

Module LabVIEW NXG Web – diapositive 27

 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

Module LabVIEW NXG Web – diapositive 28

 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

Module LabVIEW NXG Web – diapositive 29

 Je vais volontairement vite

 Pour avoir le temps de vous montrer du code

Etape 1 : Projet d’application Web

Etape 1 : Projet d’application Web – diapositive 30

 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

Etape 2 : Créer un WebVI – diapositive 31

 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

Etape 3 : Construire l’application Web – diapositive 32

 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

Etape 4 : Distribuer l’application Web – diapositive 33

 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 – diapositive 34

 Démonstration

NXG vers Web Services LabVIEW

NXG vers Web Services LabVIEW – diapositive 35

 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

NXG vers Web Services LabVIEW – diapositive 36

Web Service

URL : http://localhost:8004/WebService/GetMyData?Index=1

Quelques Astuces : CORS Err 363650

Quelques Astuces : CORS Err 363650 – diapositive 37

 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

Quelques Astuces : Gestion Erreur – diapositive 38

 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

Je vous recommande – diapositive 39

 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

Je vous recommande – diapositive 40

Rappel des présentations LUGE

Rappel des présentations LUGE – diapositive 41

 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

Rappel des présentations sur NXG – diapositive 42

 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?

Questions? – diapositive 43