LUGE 2021.4 : Piloter un exécutable LabVIEW via VI Server

Par Luc Desruelle (MESULOG) · décembre 2021

Document original : LUGE 2021.4 : Piloter un exécutable LabVIEW via VI Server (PDF, 1,1 Mo, 14 pages)

Télécharger le PDF Ouvrir dans le navigateur

Piloter une Application LabVIEW depuis une autre application LabVIEW – diapositive 1

LUGE 2021.4

Avec VI Server en accès TCP

Simplement et sans modifier le code de l’application à piloter

PARENTAL CONTROL

LabVIEW CONTROL

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

2021 L. DESRUELLE : Faire communiquer 2 applications LabVIEW 2

Diapositive 3

Piloter une Application LabVIEW depuis une autre application LabVIEW Avec VI Server en accès TCP – diapositive 3

Le présentateur : Luc DESRUELLE

CLA - CTD Champion

Livre

NI Forums Community

LUGE

Communité NI & blog Luc desruelle’s blog sur site NI

  • Application Web avec NI G Web
  • Gestion IHM
  • Architecture Projet LabVIEW
  • OOP - objet
  • HAL
  • Modbus
  • ….

MESULOG Software Architect

Luc DESRUELLE

L. DESRUELLE : Faire communiquer 2 applications LabVIEW 3

Le besoin : Piloter une application

Le besoin : Piloter une application – diapositive 4

❑ Piloter une application « exe N°1 » en LabVIEW depuis une

autre application « exe N°2 » (ou depuis un code module NI TestStand)

❑ Sur le même PC ou depuis le réseau

❑ Sans ajouter et Sans modifier le code de « exe N°1 »

❑ Communiquer VS Piloter une application

LabVIEW CONTROL

Je ne veux pas faire un serveur de données ❑ Le besoin n’est pas d’échanger des données (Variables ou bufferisées) dans un mode Client / Serveur. Nous n’allons

Je ne veux pas faire un serveur de données ❑ Le besoin n’est pas d’échanger des données (Variables ou bufferisées) dans un mode Client / Serveur. Nous n’allons – diapositive 5

pas discuter de mode Serveur TCP, Modbus, Serveur Variable Partagées, Network Streams,…)

❑ Le besoin est de Piloter ou déclencher des actions simples à

distance, dans une application depuis une autre application

Par Exemple : piloter un simulateur

Par Exemple : piloter un simulateur – diapositive 6

❑ Par Exemple : piloter à distance un simulateur de capteurs,

développé en LabVIEW, sans modifier son code

❑ Automatiser des actions, déclencher des actions

LabVIEW CONTROL

Déclencher des actions : facile ?

Déclencher des actions : facile ? – diapositive 7

❑ Dans une même application = évident. Vous savez tous

déclencher des actions ou simuler des actions utilisateur sur des objets de l’IHM

❑ par exemple en utilisant Value Signaling

❑ Vous utilisez méthodes et propriétés sur un objet, via une

fonctionnalité de LabVIEW qui s’appelle le VI Server

❑ But : Faire pareil mais depuis une autre application

Rappel : VI Server c’est quoi?

Rappel : VI Server c’est quoi? – diapositive 8

❑ VI Server : Vous l’utilisez tous, parfois sans connaitre son nom ❑ Source site NI : VI Serveur LabVIEW permet de :

⚫ contrôler les objets de l’IHM et les VIs par programmation

⚫ charger, éditer et exécuter les VIs de manière dynamique

❑ Vous l’utilisez quand vous créez des méthodes et

propriétés sur des objets LabVIEW, par exemple : exécuter un VI, ouvrir une face-avant, changer la couleur d’un objet, modifier la valeur d’un control, rendre visible (et bien plus encore)

Exemples VI Server

Exemples VI Server – diapositive 9

Piloter à distance = Utiliser VI Server

Piloter à distance = Utiliser VI Server – diapositive 10

❑ Pour piloter le code d’un exécutable à distance, l’idée

est de contrôler à distance les fonctionnalités du VI Server

⚫ d’un exécutable N°1 ⚫ depuis un autre exécutable N°2

❑ Comment ? utiliser VI Server en accès TCP, en ouvrant

une référence sur l’application

Pour piloter VI Server en accès TCP

Pour piloter VI Server en accès TCP – diapositive 11

❑ Dans l’application à contrôler :

⚫ Code : Rien à faire ⚫ Fichier ini : ajouter 2 clés

 server.tcp.enabled=True  server.tcp.port=xxxxxx

❑ Dans l’application qui pilote :

⚫ Ouverture d’une référence au VI Server ⚫ Code classique des propriétés sur objet (ex : value signaling)

Démonstration

Démonstration – diapositive 12

VI Server Settings

VI Server Settings – diapositive 13

Default Value

Setting Description Type

server.tcp.enabled Enable TCP/IP Protocol TF False

server.tcp.port TCP/IP Port number numeric 3363

server.ole.enabled Enable ActiveX Protocol TF True

server.vi.callsEnabled Allow VI Calls TF True

server.vi.propertiesEnabled Allow VI Methods and Properties TF True

server.app.propertiesEnabled Allow Application Methods and Properties TF True

server.tcp.access TCP/IP Access List quoted <blank>

server.tcp.paranoid Strict Checking TF True

server.vi.access Exported VIs list quoted "+*"

tcpServer.log Logging Enabled TF False

tcpServer.logDetails

tcpServer.logPath Logging File Path file

Questions?

Questions? – diapositive 14

2021 L. DESRUELLE : Faire communiquer 2 applications LabVIEW 14