CAN Eurosmart : interface pour Mathematica
1. Installation
Ce document présente une interface des convertisseurs analogique/numérique (CAN) SysamSP5 (port USB) et SysamPCI (carte PCI) de Eurosmart pour le logiciel Mathematica (version 5,6 ou 7).
Cette interface permet d'effectuer des acquisitions et des sorties directement depuis un programme Mathematica.
L'interface fonctionne sous Windows (testée sur XP et Windows 7).
Elle est distribuée avec le code source sous licence CeCILL.
Pour installer les binaires afin d'utiliser l'interface, télécharger le fichier mathCAN-3.zip. Ouvrir Mathematica et consulter la variable $BaseDirectory. Aller dans le répertoire correspondant (répertoire caché) puis dans le sous répertoire Applications. Décompresser le fichier mathCAN.zip.
Le pilote de SysamSP5 est disponible sur Eurosmart. Pour installer le pilote, brancher le cable USB de la centrale sous tension puis indiquer le chemin d'accès au pilote.
Les machines équipées d'une carte SysamPCI ont généralement le pilote approprié installé avec Synchronie 2003.
Pour charger le module d'interface dans Mathematica, exécuter Needs["CAN`"]
2. Fonctions de l'interface
2.a. Ouverture d'une liaison avec le CAN
CanOuvrir[nom]
Ouverture de la liaison avec le CAN.
- nom (string)
:
nom du CAN : SysamSP5 ou SysamPCI.
CanFermer[]
Fermeture de la liaison.
2.b. Configuration des entrées analogiques
CanConfigEntrees[voies,calibres]
Sélection des entrées à utiliser, de leur calibre et sélection éventuelle du mode différentiel. Les voies sont numérotées de 0 à 7.
- voies (Integer List)
:
liste des voies sélectionnées.
- calibres (Real List)
:
liste des tensions maximales des voies en volts.
- VoiesDifferentielles (Integer List)
:
option. Liste des voies en mode différentiel.
Sur la carte SysamPCI, la fréquence d'échantillonnage maximale diminue lorsqu'on augmente le nombre de voies sélectionnées. Sur la centrale SysamSP5, il faut sélectionner les voies 0,1,2 et 3 pour bénéficier de la fréquence d'échantillonnage maximale (10 MHz).
Sur SysamPCI, la sélection d'une seule voie en mode différentiel les placent toutes en mode différentiel. Les tensions sont alors mesurées entre les entrées 0 et 4, 1 et 5, 2 et 6, 3 et 7.
Sur SysamSP5, chaque canal (0-4,1-5,2-6,3-7) peut être placé en mode différentiel indépendamment des autres. Pour placer le premier et le second canal en mode différentiel, il faut affecter [0,1] au dernier argument.
2.c. Utilisation des entrées analogiques avec échantillonnage
CanConfigEchantillon[temps,nbpoints]
Choisir le temps d'échantillonnage et le nombre de points à acquérir.
- temps (Real)
:
temps d'échantillonnage en microsecondes.
- nbpoints (Integer)
:
nombre de points à acquérir.
CanConfigTrigger[voie,seuil]
Sélectionner et configurer le déclenchement à partir d'un signal de référence présent sur une des voies.
- voie (Integer)
:
voie utilisée pour le déclenchement.
- seuil (Real)
:
tension seuil en volts.
- Montant (Integer)
:
option. Déclenchement sur front montant (1) ou sur front descendant (0).
- Pretrigger (Integer)
:
option pour SysamSP5. Nombre de points enregistrés avant la condition de déclenchement.
- PretriggerSouple (Integer)
:
option pour SysamSP5. 1 si le déclenchement doit se faire lorsque le nombre de points de pretrigger n'est pas atteint.
- Hystereris (Integer)
:
option pour SysamSP5. Hystérésis du déclenchement.
CanConfigTriggerExterne[]
Sélectionner et configurer le déclenchement à partir d'un signal de référence sur la voie EXT, par un front montant de type TTL (0 à 5V).
- Pretrigger (Integer)
:
option pour SysamSP5. Nombre de points enregistrés avant la condition de déclenchement.
- PretriggerSouple (Integer)
:
option pour SysamSP5. 1 si le déclenchement doit se faire lorsque le nombre de points de pretrigger n'est pas atteint.
CanDesactiverTrigger[]
Désactiver le déclenchement sur un signal de référence.
CanAcquerir[]
Lancer l'acquisition. Si aucun déclenchement sur un signal de référence n'est configuré, l'acquisition démarre dès que l'ordre parvient au CAN.
tensions=CanEntrees[]
Obtenir les tensions de la dernière acquisition.
- tensions (Real Array)
:
matrice des tensions. Les tensions d'une voie sont rangées en ligne.
temps=CanTemps[]
Obtenir les instants d'échantillonnage de la dernière acquisition. Sur SysamPCI, les instants des différentes voies sont légèrement décalés.
- temps (Real Array)
:
matrice des temps. Les temps d'une voie sont rangés en ligne.
2.d. Utilisation des sorties analogiques avec échantillonnage
La carte SysamPCI comporte une sortie analogique SA1. La centrale SysamSP5 comporte deux sorties SA1 et SA2.
CanConfigSortie[nsortie,temps,tensions,repetition]
Configuration d'une sortie.
- nsortie (Integer)
:
sortie à configurer (1 ou 2)
- temps (Real)
:
temps d'échantillonnage en microsecondes.
- tensions (Real List)
:
liste des tensions (entre -10.0 V et +10.0 V).
- repetition (Integer)
:
-1 pour une répétition périodique, +1 pour une seule émission.
CanDeclencherSorties[s1,s2]
Déclenchement d'une ou deux sorties. Les deux sorties (SysamSP5) sont déclenchées simultanément. Pour qu'elles soient synchrones, il faut toutefois que les temps d'échantillonnage soient identiques.
Sur SysamSP5, la fonction retourne immédiatement. Sur SysamPCI, elle retourne lorsque l'émission est terminée ou lorsque l'utilisateur presse la touche ESC.
- s1 (Integer)
:
1 pour déclencher la sortie 1, 0 sinon.
- s2 (Integer)
:
1 pour déclencher la sortie 2, 0 sinon.
CanStopperSorties[s1,s2]
Stopper une émission périodique sur SysamSP5. Sur SysamPCI, il faut appuyer sur la touche ESC pour stopper l'émission.
- s1 (Integer)
:
1 pour stopper la sortie 1, 0 sinon.
- s2 (Integer)
:
1 pour stopper la sortie 2, 0 sinon.
2.e. Utilisation simultanée des entrées et sorties
Sur SysamSP5, il est possible de déclencher la sortie puis l'acquisition juste après (mais pas l'inverse). Sur SysamPCI, ceci est impossible avec les fonctions décrites plus haut. La fonction suivante permet d'effectuer simultanément une acquisition et une émission des sorties :
CanAcquerirAvecSorties[tensions1,tensions2]
Effectuer l'acquisition avec une utilisation simultanée des sorties. Le temps d'échantillonnage des sorties est le même que pour les entrées.
- tensions1 (Real List)
:
liste des tensions (entre -10V et 10V) à émettre sur la voie 1.
- tensions2 (Real List)
:
liste des tensions (entre -10V et 10V) à émettre sur la voie 2.
2.f. Lecture directe des entrées
La lecture directe des entrées peut être utilisée lorsque la cadence d'acquisition est très lente (moins de 1 points par seconde). Dans ce cas, on utilisera l'horloge interne du PC pour déclencher les lectures.
CanActiverLecture[voies]
Activer la lecture directe sur une ou plusieurs voies, qui doivent avoir été configurées au préalable avec CanConfigEntrees.
- voies (Integer List)
:
liste des voies.
tensions=CanLire[]
Lire les tensions sur les entrées.
- tensions (Real List)
:
liste des tensions lues.
CanDesactiverLecture[]
Désactiver la lecture directe.
2.g. Écriture directe sur les sorties
CanEcrire[s1,tension1,s2,tension2]
Appliquer une tension constante sur une ou deux sorties.
- s1 (Integer)
:
1 pour écrire sur la sortie 1, 0 sinon.
- tension1 (Real)
:
tension en volts à appliquer sur la sortie 1.
- s2 (Integer)
:
1 pour écrire sur la sortie 2, 0 sinon.
- tension2 (Real)
:
tension en volts à appliquer sur la sortie 2.
2.h. Acquisition en mode parallèle (Sysam SP5)
En mode parallèle, l'acquisition se fait sur un fil d'exécution (thread) séparé.
CanLancer[]
Lancer l'acquisition en mode parallèle. La fonction retourne immédiatement.
CanLancerAvecSorties[tensions1,tension2]
Lancer l'acquisition en mode parallèle avec écriture synchrone sur les sorties.
- tensions1 (Real List)
:
liste des tensions (entre -10V et 10V) à émettre sur la voie 1.
- tensions2 (Real List)
:
liste des tensions (entre -10V et 10V) à émettre sur la voie 2.
A=CanPaquet[premier]
Lecture des points déjà acquis lors d'une acquisition en parallèle.
- premier (Integer)
:
indice du premier point à récupérer, 1 si on veut les récupérer tous.
- A (Real Array)
:
matrice des temps et des tensions. Si N est le nombre de voies, les N premières lignes sont les instants des N voies (N lignes identiques). Les N lignes suivantes sont les tensions des N voies.