Partager notre expertise Labview

« Depuis 1989, SAPHIR a acquis un savoir-faire reconnu dans le développement d'applications sous environnement LabVIEW.
Nous pouvons vous faire bénéficier de cette expertise lors de différentes missions »

Vous souhaitez faire appel à notre équipe ?

Conception

Pour un projet d'envergure, la qualité d'une application est conditionnée par la capacité à concevoir une architecture adaptée. Cette conception demande une maitrise importante des concepts de programmation et une forte expérience pour avoir la capacité d'anticiper les difficultés. Une architecture bien pensée, doit non seulement répondre au besoin mais également assurer la maintenabilité et l'évolutivité du logiciel ou du système.

Architecture distribuée / client-serveur

Un système distribué doit faire cohabiter un ensemble de sous-systèmes : logiciels (clients-serveurs), systèmes embarqués (type cRIO), automates (PLC)...

Les compétences à mettre en œuvre sont nombreuses et variées : programmation logicielle classique, programmation temps réel, programmation FPGA, interfaçage entre différents logiciels, communication et performance réseau, protocoles de communication automates,...

SAPHIR a développé ces compétences globales lors de projets d'envergures.

Programmation Orientée Objet

L'approche programmation orientée objet (OOP) comporte beaucoup d'avantages pour les projets complexes. Tout d'abord, elle impose des règles communes à tous les développeurs. Par conséquent, la programmation objet assure la cohérence du code par l'adoption de méthodes communes.

Les classes d'objet forment des modules : le logiciel est modulaire, donc facile à faire évoluer et à maintenir. Cette modularité facilite également le partage du travail sur une équipe de développeur et la réutilisabilité du code. Le concept d'héritage permet d'éviter la duplication de code, et donc facilite la maintenance et l'évolutivité du logiciel.

SAPHIR met en œuvre la programmation orientée objet sous LabVIEW depuis 2003 (LabVIEW 7). Nos architectes logiciels assurent la formation à ce style de programmation.

Architecture Plug-in

Les architectures "plug-in" (ou module d'extension) offrent un niveau de modularité très importants. Elles permettent l'ajout de fonctionnalités sans nécessité d'intervenir ni de recompiler le noyau de l'application.

Par exemple, il est possible de gérer l'interchangeabilité d'instruments de même type, en redéveloppant uniquement le plugin du nouvel instrument. Le cœur de l'application n'est ni modifié, ni recompilé.

Création et distribution de bibliothèques

La création et la distribution de bibliothèques répond à une double problématique. La diffusion de briques logiciels pour votre équipe de développement, ou pour vos clients (exemple : diffusion des drivers LabVIEW associés aux matériels que vous commercialisez). Il existe aujourd'hui des méthodes et des outils professionnels pour gérer le déploiement de ces briques logiciels. SAPHIR les met en œuvre en interne, mais également pour la diffusion de ses toolkits LabVIEW.

Traitement du signal

Pour aller plus loin que la simple acquisition de données, une expertise en traitement du signal peut permettre de mieux exploiter la richesse de vos mesures.

Analyse temps-fréquence

La représentation fréquentielle d'un signal est riche d'informations. Particulièrement utile pour l'analyse de signaux, elle permet de discriminer des composantes non perceptibles dans une vue temporelle. Du spectrogramme, jusqu'à la transformée de Fourier à court terme, les ondelettes ou la transformée de Wigner-Ville, nous maitrisons ces traitements que nous avons mis en application dans nos différentes réalisations.

Acquistion et analyse temps fréquence d'un signal vibratoire

Filtrage numérique

Le filtrage numérique, au sens large, est d'un usage très courant. Il peut réaliser le débruitage de vos signaux (denoising), la prédiction (filtrage de Kalman), la formation de voies (beamforming) ou la séparation de sources (Analyse en Composantes Indépendantes).
Nos compétences pourront être utiles pour intégrer ce type d'outils avec de fortes contraintes de performances (traitement temps-réel, FPGA).

Détection et analyse de phénomènes transitoires

L'étude de phénomènes transitoires est de plus en plus fréquemment demandée. Elle peut, par exemple, aider à détecter le dysfonctionnement d'une machine ou la non-conformité d'une pièce en fabrication. Fort de notre expérience, nous participons à la définition des indicateurs pertinents et à l'identification des événements discrets.

Etudes sur-mesure

Notre culture scientifique et notre goût pour l'innovation font de SAPHIR un partenaire apporteur de valeur pour les projets R&D. Nous assurons la conduite d'études amonts depuis la spécification, la bibliographie jusqu'aux preuves de concept et à la réalisation finale. SAPHIR est habilité par le MESR à mener des travaux de Recherche et Développement.

Intégration d'algorithmes

Notre expertise en traitement du signal et en développement logiciel nous permet de réaliser l'intégration d'algorithmes sur différentes cibles (FPGA, OS temps-réel, GPU).
Cette intégration nécessite fréquemment l'optimisation des algorithmes afin d'augmenter leurs performances ou de réduire les ressources nécessaires.

Formations

Issue de notre pratique quotidienne, une formation dédiée au traitement du signal avec LabVIEW est proposée par notre équipe.

Audit

L'audit consiste en une expertise d'un code source existant afin de diagnostiquer les points faibles ou non conformes. Il est formalisé par la rédaction d'un rapport d'audit qui recense les observations et qui préconise les actions à mener pour atteindre les objectifs de qualité et de performance.

Optimisation

Certaines applications nécessitent un niveau de performance particulièrement élevé. Dans ce cas, il est nécessaire de bien connaitre le fonctionnement de LabVIEW pour concevoir un code performant (en évitant au maximum les réallocations, par exemple). Nos développeurs les plus expérimentés sauront identifier rapidement si le niveau de performance d'un logiciel existant est en deçà de ce qu'il est possible d'atteindre.

LabVIEW est un langage de programmation très bien conçu pour bénéficier de la puissance des architectures matérielles multiprocesseurs. Cependant, pour profiter pleinement de cet avantage, des méthodes de programmation avancées sont à privilégier : processus asynchrones, gestion rigoureuse de l'UI Thread, boucle FOR avancées, ...

La gestion rigoureuse de la mémoire vive influe directement sur le niveau de performance et de robustesse d'une application.

La qualité d'un logiciel se mesure aussi au niveau d'ergonomie de ses Interfaces Utilisateurs (IHM ou UI). Le soin apporté à l'ergonomie contribue au confort de l'utilisateur et limite les risques d'erreurs à l'utilisation. Conscients de ces enjeux, nous vous proposons des interfaces professionnelles très abouties. Topaze, notre application de visualisation et d'analyse de fichiers de mesure, en est un exemple (visualisez la vidéo ci-dessous).

D'une manière plus globale, notre équipe peut intervenir sur le refactoring d'applications existantes, c'est-à-dire retravailler sur un code source existant pour en améliorer la lisibilité et/ou le fonctionnement. L'objectif principal est de facilité la maintenance ou l'ajout de nouvelles fonctionnalités.

Accompagnement de vos équipes

Des équipes effectuent des développements LabVIEW dans votre entreprise. Ils rencontrent peut-être quelques difficultés pour organiser le travail en équipe, pour gérer les versions, pour assurer la maintenance, pour atteindre le niveau de qualité requis...

Nous vous accompagnons dans la mise en place de méthodologies et d'outils pour professionnaliser vos développements et atteindre le niveau de qualité souhaité :

  • Référentiel de documentations
  • Source code contrôle (gestion des versions et sauvegarde en phase de développement)
  • Bugtracker
  • Gestion de projet
  • Distribution de bibliothèques logicielles communes
  • Formations spécifiques