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

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

❑ 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

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

❑ 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

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

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

❑ 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

Piloter à distance = Utiliser VI Server

❑ 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

❑ 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

VI Server Settings

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?

2021 L. DESRUELLE : Faire communiquer 2 applications LabVIEW 14


