Document original : LUGE 2020.1 : DAQmx, ce que vous ne soupçonniez pas de ce driver (PDF, 1,5 Mo, 46 pages)

Ce que vous ne soupçonniez pas de ce driver
Mathieu REYROLLE
Chef de projet / Développeur certifié
Le présentateur

Chef de projet et développeur
Pratique de LabVIEW et TestStand depuis 2005
Chez MESULOG depuis février 2013
Certifications
CLA depuis septembre 2016 CTA depuis octobre 2016
Mathieu REYROLLE - LinkedIn
MESULOG – Fiche signalétique

Création
Statut : S.A.R.L. au capital de 150 000 € Démarrage activité : mars 2000
Localisation
Grenoble (Parc Activités Centr’Alp)
Effectif
6 ingénieurs, 1 technicien, 1 apprenti
Données 2019
Chiffre d’affaires HT : 706 k€ Résultat net : 110 k€
MESULOG – Activité

Développement logiciel
Orienté test et mesure Sur plate-forme logicielle National Instruments™
Étude, conseil, expertise
Étude de faisabilité Optimisation, fiabilisation de code existant Expertise, assistance technique
MESULOG – Compétences

Plate-formes logicielles
LabVIEW LabVIEW Real-Time LabVIEW FPGA LabVIEW DSC TestStand VeriStand
Technologies
Acquisition de données PXI et instrumentation Commande d’axes Génération de rapports Liaison base de données OPC
MESULOG – Certifications

Membre NI Alliance
Certification National Instruments
LabVIEW
5 CLA
TestStand
5 CTA + 1 CTD
MESULOG – Quelques références

General Electric – Grid Solution AREVA NP CETIAT HONEYWELL Security LEGRAND L.N.E. ONERA RADIALL RENAULT STMICROELECTRONICS SOCOMEC THALES TRONICS
Sommaire

1. Il était une fois… DAQmx
Retour rapide sur les l’histoire de ce driver
2. Enregistrement sur fichier
Comment tirer parti de l’enregistrement optimisé en streaming sur fichier depuis le driver
3. Sous-échantillonnage
Un exemple de sous-échantillonnage d’un signal périodique grâce aux fonctions de cadencement et de synchronisation
Diapositive 9

Il était une fois…
DAQmx
Quelques dates

1987 : premier matériel DAQ, plateforme Apple Macintosh, suivi
l’année d’après par la plateforme PC
2003 : première release de NI-DAQmx
Un seul package pour installer l’ancien et le nouveau driver jusque NI-
DAQ 7.4 (packages indépendants ensuite)
60 produits supportés
2005 : Simulation des périphérique (DAQmx 7.4)
…
A votre avis…

Combien de références de produits sont supportées par va version 19.0 du driver DAQmx, sortie en mai 2019 ?
a) Environ 80 b) Environ 300 c) Environ 500 d) La réponse D
Pourquoi DAQmx ?

Limites de NI DAQ traditionnel (ancien driver)
Architecture de driver mono-thread Chemin de programmation inefficace et complexe API simple et avancée incompatible Fonctionnalités qui ne sont pas toutes disponibles dans tous les
environnements de développement
Composants redondants entre les groupes de produits Risqué d’ajouter de nouvelles fonctionnalités
Pourquoi DAQmx ?

Facilité d'utilisation
Assistant DAQ VIs Express LabVIEW Transition en douceur de la programmation facile à la programmation
avancée
Cohérence de l'API dans les différents
Amélioration de la synchronisation
environnements de développement
et de l'acheminement des signaux
Amélioration des performances
Chemins de programmation plus efficaces Capable de travailler en multi-thread Plus de contrôle des opérations
Fondamentaux

Terminologie
Tâche DAQmx
Voie globale virtuelle Échelle Tâche
Voie globale virtuelle
Echelle
Y=mx+b Unités
Mode d’acquisition Déclenchement Cadencement Source d’horloge
Voie physique Conf. terminal Gamme d’entrée Calibration
DAQmx offre une décorrélation entre
voie de mesure et voie physique
Utilisation de MAX

Gérer et tester son matériel
Définition globale au système
Échelles / Voies globales virtuelles / Tâches Test de ces différents éléments Export/Import de configuration Exploitable depuis vos applications
Instanciation d’un périphérique simulé
Peut constituer une couche d’abstraction pour vos applications
Les palettes dans LabVIEW

Fonctions essentielles
Create Channel Timing Start / Stop Read / Write Clear
Les palettes dans LabVIEW

Fonctions avancées
Création programmatique d’une échelle Accès au Reset et Self-Test (comme sous MAX) Enregistrement/suppression programmatique des échelles / voies
Contrôle d’une tâche DAQmx
globales virtuelles / tâches
Nœuds de propriétés DAQmx
Coefficients de calibration de la carte Horloge d’échantillonnage effective Configuration des buffers Options de regénération etc.
Diapositive 18

S’appuyer sur les outils existants
Enregistrement sur fichier
Scénario

Scénario :
Acquisition analogique 4 voies à 1MS/s Enregistrement dans un TDMS Acquisition finie Une seconde de signal
1Méch par voie à enregistrer
Rappels sur le TDMS

Données de mesures écrites en binaire
Taille sur disque optimisée (vs. format texte) Accès plus rapide aux données
Trois niveau d’information
Fichier Groupe de voie Voie
Meta-data
Peuvent être associées à ces trois niveaux de données Typiquement pour une voie, t0 et dt d’une waveform
Approche classique – Le code

La waveform est très facile d’utilisation
Inscription des meta-data dans le fichier TDMS (t0, dt)
Gestion de l’écriture sur fichier en trois fonctions
Open, Write, Close
Approche classique – Fichier TDMS

A votre avis…

A 1Méch/s et pour 1 seconde d’acquisition, soit 1Méch par voie, sur 4 voies, quelle est la taille du fichier généré ?
a) 4Mo b) 32Mo c) 8Mo d) Aucune idée, mais j’ai de la place sur mon disque…
Enregistrement DAQmx – Le code

Une fonction de plus dans le flux DAQmx
Enregistrement optimisé
Lecture des échantillons sur 2 octets plutôt que 8 (sans mise à l’échelle) Mises à l’échelle gérée par le driver dans le TDMS et pour l’applicatif Fichier 4 fois moins volumineux qu’avec l’approche classique
Enregistrement DAQmx – Fichier TDMS

Aurait-on pu faire mieux avec une autre méthode ?

Au prix de quel effort de développement ?
Scaled, Unscaled, Raw

Données brutes
Données sans mise à l’échelle
Données
mise à l’échelle
Waveform
Timing et attributs
ch0
ch1
Mise à l’échelle
Désentrelacement
Buffer d’acquisition
Scaled, Unscaled, Raw

Facilité d’utilisation
Performance / Débit
Acquisition unscaled + code spécifique

Techniquement faisable
Plus de code
Quid de la mise à l’échelle des valeurs remontées dans l’application ?
Gestion d’échelle personnalisées ?
Mise au point, maintenance, évolutions ?
à implémenter !
à implémenter !
Quand recourir à cette extrémité ?

« Est-ce qu’on peut démarrer/arrêter l’enregistrement alors que la tâche d’acquisition est active, sans devoir stopper et redémarre la tâche ? »
(question de Cyril G.)
La réponse est non
L’enregistrement est très fortement lié à la tâche, il
n’est pas possible de jouer sur la commande du log alors que la tâche est active
L’erreur -200557 est on ne peut plus explicite !
Pour des besoin d’acquisition continue combiné à un déclenchement de l’enregistrement optimisé et à la demande, sans arrêt de la tâche d’acquisition, alors l’acquisition « unscaled » peut s’avérer nécessaire
Diapositive 31

Application 100% DAQmx
Échantillonnage équivalent entre 40Méch/s et 80Méch/s
Le besoin

Acquisition simultanée de 16 voies analogiques ±10V
Fréquence des signaux : entre 280kHz et 310kHz
Besoin d’analyse sur les signaux acquis
Résultats d’analyse à fournir toute les secondes
Signaux périodiques « stationnaires »
Pas de variation significative de signal sur une période d’observation de
l’ordre de une seconde
Système autonome et borgne, intégré dans une supervision
Solution matérielle retenue

Deux cartes PXI-6133, série S
Echantillonnage simultané 14 bits 2.5Méch/s par voie
Une carte horloge PXI-6608
Référence d’horloge 80MHz
Un châssis PXI + contrôleur RT PXI 8101
…le tout programmé avec LabVIEW RT et DAQmx
Les tests de principe sur un PC Windows avec une carte de série E
Nyquist – Shannon

« La représentation discrète d'un signal exige des échantillons régulièrement espacés à une fréquence d'échantillonnage supérieure au double de la fréquence maximale présente dans ce signal. »
Wikipedia, théorème d’échantillonnage
Exploitation du sous-échantillonnage

« Progression » dans le motif périodique
Un point par période Nécessite d’observer N périodes pour reconstruire la forme du signal
Limite de l’approche

Ne s’applique qu’à un signal périodique et « stationnaire »
La fenêtre d’observation des signaux pour reconstituer l’allure du signal
dure un grand nombre de périodes du signal observé
Le signal doit être stable pendant de temps d’observation Les transitoires ne peuvent être observé convenablement
Implémentation à l’aide de DAQmx

Une première tâche d’acquisition analogique
Acquisition finie @ 2.5Méch/s Permet de déterminer la fondamentale du signal de référence
Une tâche compteur pour générer l’horloge d’échantillonnage de la
seconde acquisition finie
Horloge de base à 80MHz Fréquence de l’horloge générée variable, légèrement inférieure à la
fondamentale mesurée
Une seconde tâche d’acquisition dont l’horloge est générée par la carte
compteur
Acquisition finie Calcul requis pour déterminer la fréquence d’échantillonnage équivalente
Mise en œuvre – Le code

Encapsulation dans une classe
Fenêtre d’acquisition standard : 50μs Fenêtre d’acquisition sous-échantillonnée : 10μs Agrégation de deux tâches
Génération compteur Acquisition analogique
Mise en œuvre – Read

Démarrage des tâches
Armement de l’acquisition analogique puis démarrage de la génération compteur
Lecture de l’acquisition analogique Arrêt des deux tâches Report du Pseudo Sample Rate au niveau du dt des Waveform acquises
Mise en œuvre – Adjust Under Sampling

Fréquence d’échantillonnage variable

Coup de chapeau

Un grand merci à Emmanuel Roset (National Instruments France) pour les informations « historiques » transmises au sujet des drivers NI-DAQ et NI-DAQmx
Diapositive 43

Pour aller plus loin

A propos de DAQmx
Manuels utilisateurs des différents matériels Compatibilité entre les versions de DAQmx et de LabVIEW Compatibilité entre les versions de NI DAQmx et de Microsoft Windows Qu'est-ce que la Série X ? NI-DAQmx Custom Scales and Usage Explained
Fichiers TDMS
TDMS File Format Internal Structure - National Instruments TDM Excel Add-In for Microsoft Excel Download
Toujours plus loin…
Présentation techniques MESULOG (dont celles du LUGE) La page du LabVIEW User Group Rhône-Alpes pour suivre nos prochaines évènements
Continuons la discussion

Le LUGE est le LabVIEW User Group de la région
Auvergne Rhône-Alpes
Tenez-vous informé des prochaines rencontres du LabVIEW User Group Rhône-Alpes et participez à
l’élaboration de la prochaine rencontre !
Plus d’information sur les pages de la communauté NI
Diapositive 46

Merci de votre attention


