Вы находитесь на странице: 1из 7

Computers / Ordinateurs

Tutoriel La commande de moteurs pas pas l'aide d'outils de saisie de donnes sur PC
1.0 Introduction
l arrive souvent que les processus de saisie de donnes impliquent divers types de commandes d'appareils. Cependant, les logiciels de saisie de donnes les plus courants n'incluent pas de pilotes de commande d'appareils ou de dispositifs en option qui soient polyvalents. L'utilisateur doit alors mettre au point l'interface de commande en fonction de l'application qu'il veut raliser. Cet article dcrit deux mthodes mises au point la Florida Institute of Technology permettant de piloter un moteur pas pas en employant la trousse de saisie de donnes trs connue LabVIEW 5.0 et un port parallle ou un port d'E/S numriques courant d'une carte de saisie de donnes. La premire mthode utilise un port d'E/S numriques d'un module de saisie de donnes SCXI-1200 de la socit National Instrument. L'autre mthode emploie le mme logiciel, mais en compilant le code source externe (en C++), et pilote le moteur partir d'un port parallle. On peut utiliser le code source employ dans la deuxime mthode pour piloter le moteur de faon autonome, sans passer ni par une carte ni par un logiciel de saisie de donnes. Avec l'aide du module de conversion dcrit dans cet article, on peut commander la majorit des moteurs pas pas d'usage courant avec seulement deux fils de signaux numriques et un fil pour la masse.

par

N. Shinjo, L. Buist et C. S. Subramanian Florida Institute of Technology, Melbourne, Floride

The use of LabVIEW is on the increase in universities and industries especially for data acquisition and process control. Frequently, there is a need to develop LabVIEW application software to work with foreign hardware, like a Slo-Syn stepper motor. Unfortunately, simple and clear procedures to develop motion control routines are not easily available. This paper describes a method developed to control a stepper motor using the LabVIEW 5.0 software and the National Instrument SCXI data acquisition system.

On peut utiliser tout langage de programmation, tel le BASIC ou le C, ou un logiciel de saisie de donnes, avec des E/S numriques, pour piloter le moteur.

2.0 Systme de commande de positionnement


La figure 1 prsente le schma gnral du systme de commande de positionnement. Celui-ci comprend un port de communication numrique 8 bits, un pilote ou module de conversion, ainsi qu'un moteur pas pas. On peut utiliser un port parallle (ou port d'imprimante) ou bien des ports d'E/S numriques sur la carte de saisie de donnes pour piloter le moteur pas pas par l'entremise du module de conversion. On dispose de deux mthodes de communication puisque les cartes externes de saisie de donnes typiques sont interfaces l'ordinateur via le port parallle.

LabVIEW est de plus en plus utilis dans les mondes universitaire et industriel, particulirement pour la saisie de donnes et le contrle de procds. Rgulirement, des applications LabVIEW doivent tre dveloppes pour travailler avec du matriel tranger tel un moteur pas--pas Slo-Syn. Malheureusement, il n'existe pas de procdures simples et claires pour dvelopper ces routines de gestion de mouvement. Cet article dcrit une mthode pour contrler un moteur pas--pas en utilisant le logiciel LabVIEW version 5.0 et le systme de saisie de donnes SCXI de National Instrument.

achemin chacune des bobines (un moteur typique compte deux paires de bobines). Les sections qui suivent dcrivent en dtail le cblage, les signaux et le code du programme.

2.1 Port parallle de communication


On positionne le moteur pas pas en injectant l'entre du module de conversion un signal de donnes 8 bits. Pour acheminer les donnes 8 bits un port dtermin, il faut spcifier l'adresse du port et un code hexadcimal 8 bits. Le tableau 1 prsente les adresses des tats des donnes du port parallle (ou port d'imprimante) d'un PC.

Port de communication numrique (E/S numriques ou port d'imprimante

Tableau 1: Adresses des tats des donnes


No du port Donnes (en hexa) 378 278 tat (en hexa) 379 279 Command (en hexa) 37A 27A

Module de conversion LPT1 LPT2 Moteur pas pas Figure 1: Schma gnral de la commande de positionnement Deux fils de signaux numriques et un fil de masse sont branchs au module de conversion. Un des fils de signaux numriques commande l'avancement et l'autre, le sens de rotation. Le module de conversion capte le signal en provenance du port de communication et le convertit en un squencement de signaux alimentant les bobines du moteur pour le faire avancer. Le signal la sortie du module de conversion est

On a utilis les broches no2 (data 1), no9 (data 8) et no20 (masse) du port LPT1 (378 hexa) pour envoyer les signaux au module de conversion. La broche no2 commande l'avancement du moteur et la broche no9 dtermine son sens de rotation. On doit noter que n'importe quelle combinaison de deux broches entre la no2 et la no9 peut servir commander le moteur. Le tableau 2 donne un exemple de la dsignation des broches du port parallle. On emploie ici la squence suivante. Les tats 1 et 0 (la broche no2 au niveau haut et la broche no9 au niveau bas) initialisent un pas en avant (c'est--dire dans le sens horaire).
IEEE Canadian Review - Summer / t 1999

Les tats 1 et 1 (les broches no2 et no9 au niveau haut) initialisent un pas en arrire (dans le sens anti-horaire). Les tats 0 et 0 (les broches no2 et no9 au niveau bas) suivis par les tats 1-0 ou 1-0 excutent le pas.

De la mme faon, la squence des deux instructions suivantes actionne le moteur d'un pas dans le sens inverse (anti-horaire). La premire instruction inverse le sens de rotation et la deuxime active la bascule et achemine un signal au moteur. _outp(0x378, 255);reprsentation binaire de 255 =1111111 _outp(0x378, 0);reprsentation binaire de 0 =00000000

Ainsi les deux instructions suivantes envoient les signaux au port LPT1 et font avancer le moteur d'un pas (typiquement 1,8 ). Notons que la commande " '_outp( )' " n'est valide qu'en Visual C++ de Microsoft. Les autres compilateurs peuvent employer une commande diffrente. _outp(0x378, 1); reprsentation binaire de 1 = 00000001 _outp(0x378, 0); reprsentation binaire de 0 = 00000000 La premire instruction met le bit 1 au niveau haut, les autres bits (du bit 2 au bit 8) tant au niveau bas. La seconde instruction met tous les bits zro. La squence de ces deux instructions force la bascule changer d'tat, ce qui fait avancer le moteur d'un pas.

2.2 Le module de conversion


Le module de conversion gnre des impulsions au moment o il reoit les donnes de commande en provenance de l'ordinateur. Le front descendant de l'impulsion d'entre active le circuit et envoie les signaux aux deux paires de bobines du moteur pas pas. La premire srie de signaux inverse la polarit de la premire bobine et la deuxime srie fait de mme pour la deuxime bobine, ce qui fait tourner le moteur d'un pas (1,8 ). Lorsque le circuit est sous tension, il alimente les bobines mme si le moteur ne tourne pas. La figure 2 nous prsente le schma du circuit du module de conversion.

Tableau 2: Branchement et dsignation des broches de l'interface parallle un PC d'IBM (Hall, 1991)
No de broche 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Signal STROBE DATA 1 DATA 2 DATA 3 DATA 4 DATA 5 DATA 6 DATA 7 DATA 8 ACKNLG BUSY PE SLCT AOTO FEED XT NC 0V CHASIS GND NC GND - Masse Masse Masse Masse Masse Masse Masse Description du signal Impulsion STROBE lecture des donnes Sens du signal IN/OUT

Ces signaux dsignent respectivement l'information des bits 1 8 des donnes parallles. IN/OUT Chaque signal est au niveau " haut " quand la donne est un " 1 " logique et au niveau " bas " IN/OUT quand la donne est un " 0 " logique. IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT IN/OUT Un niveau " bas " signale que la donne a t reue et que l'imprimante est prte recevoir OUT d'autres donnes. Un niveau " haut " signale que l'imprimante n'est pas en mesure de recevoir des donnes. Un niveau " haut " signale qu'il n'y a plus de papier dans l'imprimante. Ce signal indique que l'imprimante est slectionne. Quand ce signal est " bas ", l'imprimante fait un saut de ligne aprs impression. non utilis Niveau logique 0 Masse de l'imprimante non utilis Masse OUT OUT OUT IN 2

IEEE Canadian Review - Summer / t 1999

2.3 Le moteur pas pas


Le moteur pas pas est un mcanisme qui positionne des charges en fonctionnant par incrments (ou pas) de dcalage angulaire. Cette rotation pas pas est ralise en commutant l'alimentation aux bobines de faon ce que les phases du moteur soient actives selon une squence dtermine. La figure 3 prsente les connexions typiques d'un moteur pas pas (deux paires de bobines).

Le moteur pas pas peut galement fonctionner en mode demi-pas (0,9 ). Ce mode ncessite cependant une squence de commutation additionnelle et une circuiterie diffrente du module de conversion. De plus, ce mode rduit le couple de retenue du moteur. Dans le cadre de la prsente application, seul l'incrment plein pas (1,8 ) est utilis.

3.0 L'emploi du port parallle d'un ordinateur pour la commande de positionnement


La section 2.1 schmatise la configuration de la commande de moteur par l'intermdiaire du port parallle. En utilisant le module de conversion dcrit la section 2.2, on peut faire avancer le moteur d'un pas dans un sens spcifi en faisant excuter les lignes de code source suivantes. Ce code est crit en Visual C++ de Microsoft. Les commandes au port de communication parallle varient selon le langage utilis. Par exemple, en C++ de Borland, on a " outp " (adresse du port en hexa, code binaire) alors qu'en Visual Basic, c'est " out " (adresse du port en dcimal, code binaire). On peut modifier la vitesse de rotation en jouant sur la priode d'excution de la boucle. Une commande plus prcise de cette vitesse peut tre ralise par l'emploi d'une commande de minuterie (nonc attente) au lieu d'une boucle. do loop _outp(0x378, 0 ou 255); (une boucle vide servant ajuster la priode entre les commandes); outp(0x378, 0); (une boucle vide servant ajuster la priode entre les commandes); (une boucle vide ou une minuterie servant ajuster la priode d'excution de la boucle); end loop La premire commande " _outp " dtermine le sens de rotation du moteur et la seconde, le fait avancer. noter qu'avec un processeur plus rapide, il faudra peut-tre utiliser des boucles vides (ou une commande de minuterie) afin de crer un temps d'attente entre les excutions des commandes au moteur. Des excutions trop rapides peuvent provoquer un positionnement irrgulier du moteur. Pour ce qui est du moteur utilis ici, l'attente optimale entre les commandes tait de 100 ms.

B H A G

2
SW1

8
SW2

1 7 3 C 5

E D F

4
SW3

6
SW4

Figure 3: Schma des connections des bobines d'un moteur pas pas Le tableau 3 nous indique la squence de commutation requise pour faire avancer le moteur d'un pas. Le pas type est de 1,8 , ce qui implique que 200 pas sont ncessaires pour faire un tour complet, soit une rotation de 360 . Pour actionner le moteur dans le sens inverse, on intervertit la squence de commutation (c'est--dire 4, 3, 2, 1).

Tableau 3: Squence de commutation des bobines


Pas
1 2 3 4 SW1 1 1 0 0 SW2 0 0 1 1 SW3 1 0 0 1 SW4 0 1 1 0

3.1 Positionnement partir de LabVIEW


L'arrangement de base du positionnement par le port parallle l'aide de LabVIEW (figure 4) est le mme que l'arrangement classique prsent la section 2.1. On peut piloter le moteur avec un codage tout fait identique celui dcrit la section prcdante. La seule diffrence est qu'au lieu de compiler le code source en un programme excutable fonctionnant de faon autonome, ce code est compil en un programme excutable en LabVIEW. De cette faon, la routine de positionnement peut tre utilise conjointement avec des routines de saisie de donnes ralises avec LabVIEW. cette fin, la fonction LabVIEW appele "
Stepper Motor Alimentation du moteur pas Supply Voltage pas
2 2 2

1 : niveau haut, 0 : niveau bas

+12V

4
10k 10k

Masse Gnd Sens Direction Entres PC Inputs au PC Pas Step

14 d 4 6 3
SET

12

Coupleur MCT-6 optique OptoCoupler MCT-6

1 2 14070

Q
330

14013
K CLR Q
330

s d g

7 d

5 2 8 6 14070

SET

Q
330

s d g

K CLR Q

14013
330

Masse de l'alimenta1 Power Ground tion Bornier Screw Terminal

Stepper Motor Moteur pas pas

470

Figure 2 : Schma du circuit du module de conversion


3 IEEE Canadian Review - Summer / t 1999

470

1000mf

11

Code Interface Node (CIN) " (nud d'interface avec le code) est employe pour lier, destination de LabVIEW [3,4], le code externe crit dans un langage de programmation classique. LabVIEW fait appel au code excutable quand le nud s'excute, transfrant les donnes d'entre partir du corps principal du programme vers le code excutable, et retourne les donnes venant du code excutable vers le corps principal. On peut compiler le code en oprations monothread ou multithread. Seuls les compilateurs suivants peuvent servir crer un CIN. Le compilateur Visual C++ de Microsoft Le compilateur C de Symantec Le compilateur C/386 de Watcom dans l'environnement Windows 3.1

4.

Au dpart, le CIN a une seule paire de bornes (un terminal d'entre et un de sortie). On peut ajouter des bornes en faisant glisser avec la souris le coin infrieur gauche ou droit de l'icne ou en slectionnant la fonction " Add Parameter " partir du menu droulant de la borne CIN (en cliquant avec le bouton droit sur les bornes de paramtres) (figure 6).

Le code externe en C++ charg dans le CIN de LabVIEW est simplifi afin de minimiser les chances de blocage du programme lors de l'excution du code du CIN. Ce code du CIN n'accomplit qu'un pas la fois et retourne au VI de la commande de positionnement. Ce pas quivaut une rotation de 1,8 . Pour raliser une srie de pas, on appelle le CIN le nombre de fois qu'il faut. En insrant la boucle d'attente dans le VI de commande du positionnement, on peut rgler la vitesse des pas suivants. L'inconvnient de cette mthode de commande est que la vitesse du moteur varie avec la vitesse du processeur. Cet tat de chose peut tre amlior en plaant la structure des boucles (selon de nombre de pas excuter) dans le code source en C.

Figure 6 : Icne de CIN avec entres et sorties multiples 5. Brancher les bornes aux panneaux de commande et de voyants (figure 7).

3.1.1 Description des fichiers " make "


Les compilateurs ont besoin d'instructions leur prcisant comment produire un projet ou un fichier. Ces instructions se prsentent sous la forme de " make files " (fichiers " make "). LabVIEW, par exemple, installe un fichier " make " dans le rpertoire LabVIEW\cintools qui renferme les instructions indiquant au compilateur comment produire un CIN gnrique (ntlvsb.mak); d'autres types de compilateur, cependant, auront besoin d'instructions supplmentaires pour savoir comment gnrer un CIN. Un fichier " make " spcifique, combin un fichier " make " LabVIEW gnrique, donnera l'information au compilateur lui permettant de produire un fichier .lsb (au lieu d'un fichier .exe). Le fichier .lsb sert interfacer le code externe, comme le C, avec le programme LabVIEW. Le CIN n'accepte que les codes externes affects de l'extension .lsb (il gnre bien un fichier avec l'extension .c mais il refuse comme code source CIN un fichier avec l'extension .c). On peut trouver des renseignements supplmentaires ce sujet dans la rfrence [2] " LabVIEW Code Interface Reference Manual ".

Figure 7 : Icne de CIN avec ses bornes 6. Slectionner " Create .C File " partir du menu droulant (cliquer sur l'icne avec le bouton droit). Le nom que l'on veut donner au fichier sera alors demand (filename.c format). Taper le nom de fichier du code source et l'enregistrer. Ce fichier enregistr renferme le code en C suivant. /* * Fichier source du CIN */ #include "extcode.h" CIN MgErr CINRun(float64 *Input_1, int16 *Input_2, uInt16 *Input_3); CIN MgErr CINRun(float64 *Input_1, int16 *Input_2, uInt16 *Input_3) { /* TAPER VOTRE CODE ICI */ return noErr; }

3.1.2 tapes pour crer un CIN


Les procdures ncessaires la cration d'un CIN varient selon l'environnement et le compilateur utiliss. Dans cette section-ci, on illustre les procdures utiliser avec le compilateur Microsoft Visual C++ sous Windows 95 de Microsoft. Des dtails supplmentaires et des procdures touchant d'autres types de compilateurs se trouvent dans le " LabVIEW Code Interface Reference Manual ". 1. Avant de crer le CIN, dterminer quelles sont les donnes et le format de celles-ci (c'est--dire entier, point flottant, chane de caractres, etc.), envoyer au/recevoir du CIN. crire un code en C et s'assurer que celui-ci ne renferme aucune erreur. partir du schma du VI LabVIEW, slectionner une icne de CIN (Functions => Advanced) et la positionner sur le schma. Elle devrait tre similaire la figure 5.

2. 3.

Figure 5 : Icne de CIN

Il faut prendre note que les tiquettes (c'est--dire Input 1, Output 1, etc.) et leur format de donne (c'est--dire double DBL, entier I6, etc.) crits sur les boutons de commande et sur les voyants deviennent les noms de variables et les format de donnes du code en C. De plus, l'nonc " #include "extcode.h " doit tre le premier fichier d'en-tte. Les fichiers d'en-tte additionnels tel " math.h " et " stdio.h " doivent suivre ce premier fichier
4

IEEE Canadian Review - Summer / t 1999

VI de commande de moteur par Computer le port parallle de l'ordinateur (LabVIEW 5.0) (LabVIEW 5.0)

Parallel Motor Control.vi

Port parallle Parallel Port Broche no 2 2 Pin# Pin# Broche no 9 9 MasseGND

Module de conversion

Translation Module

Moteur pas pas

Stepper Motor

Figure 4 : Schma de l'emploi du port parallle pour commander un moteur pas pas 7. Insrer le code en C que vous avez crit dans le code en C gnr par LabVIEW (o il est crit /* TAPER VOTRE CODE ICI */). S'assurer que les noms et les types des variables concordent avec ceux des variables dclares. Par exemple, nous aurions pour le cas prsent : Code en C pour la commande du moteur pas pas /* * Fichier source du CIN */ #include "extcode.h" #include <conio.h> #include <stdio.h> #include <stdlib.h> CIN MgErr CINRun(int16 *var1); CIN MgErr CINRun(int16 *var1) { { _outp(0x378, *var1); _outp(0x378, 0); } return noErr; } 8. Crer un fichier " make " en utilisant un diteur de texte (Notepad, Word, Wordpad, etc.) et l'enregistrer sous le mme nom de fichier que le code source en C, mais avec l'extension .mak. Le fichier " make " doit renfermer les quatre lignes qui suivent. Name = name of C file without extension Type = CIN CINTOOLSDIR = path to cintools directory !include<$(CINTOOLSDIR)\ntlvsb.mak> Par exemple, nous aurions dans le cas prsent : Fichier 'make' pour la commande du moteur pas pas name = step type = CIN cintoolsdir = c:\labview\cintools !include <$(cintoolsdir)\ntlvsb.mak> Le chemin d'accs vers le rpertoire cintools se trouve (sous Windows 95) dans " C:\ProgramFiles\National Instruments\LabVIEW\Cintools ". 9. Avant de compiler le code source, s'assurer que le code source en C et le fichier " make " se trouvent dans le mme rpertoire (sinon le compilateur gnrera un ficher .exe au lieu d'un fichier .lsb). le fichier est ouvert, le programme affiche deux botes de dialogue avec mise en garde. Le premier message dit : " Ce fichier " make " n'a pas t gnr par Developer Studio ". la question " Souhaitez-vous poursuivre? ", rpondre " Oui ". Puis la seconde bote de dialogue propose le type d'environnement dans lequel on veut fonctionner (le choix propos par dfaut est Win32). S'assurer que Win32 est slectionn et cliquer sur "OK". 11. Slectionner " Build filename.exe file " partir du menu droulant en Visual C++ de Microsoft. Le programme excute les instructions contenues dans le fichier " make " et cre le fichier filename.lsb au lieu de filename.exe. Si le fichier .lsb est gnr sans erreur, la fentre d'tat met le rapport suivant : ------------ Configuration: Filename - Win 32 Debug -----------Microsoft (R) Program Maintenance Utility version 1.62.7022 Copyright (C) Microsoft Corp 1988-1997. All rights reserved. filename.c Microsoft (R) 32-Bit Incremental Linker Version 5.00.7022 Copyright (C) Microsoft Corp 1992-1997. All rights reserved. LabVIEW resource file, type 'CIN', name 'filename.lsb', created properly. Filename.exe - 0 erreur(s), 0 mise(s) en garde

o filename est le nom du code source en C ou du fichier " make " compil. Le fichier .lsb doit se trouver dans le rpertoire o se trouve le code source en C et les fichiers " make ". 12. partir du schma du VI LabVIEW, (tape 3), cliquer avec le bouton droit sur l'icne du CIN et slectionner " Load Code Resources " (Charger les ressources du code). La bote de dialogue affiche le chemin d'accs aux fichiers .lsb que vous voulez charger. Slectionner le fichier et cliquer sur " Open ". 13. Le code source est maintenant charg l'intrieur de l'icne du CIN et est prt excuter la tche. Une fois le code charg, il deviendra une icne autonome et excutable, c'est--dire qu'il n'aura pas besoin d'un code source en C ou d'un fichier " make ". Quand ce VI est enregistr (avec son icne de CIN) il peut tre appel partir d'autres VI. Un sous-VI LabVIEW, appel Commande de Moteur.vi est maintenant prt piloter le moteur pas pas par l'intermdiaire d'un port parallle. La figure 8 nous prsente son schma du panneau de commande et son schma-bloc.

10. Ouvrir le fichier " make " dans le Visual C++ de Microsoft. Quand

IEEE Canadian Review - Summer / t 1999

Tableau 4: Brochage du connecteur (SCXI-1200)


No de broche du SCXI-1200 (50 broches) 13 (masse numriques) 14 (PA-0) 21 (PA-7) STOP = ARRT Figure 8: Schma du panneau de commande et schma-bloc du sous-VI LabVIEW pour la commande de moteur pas pas par l'intermdiaire d'un port parallle. des Numro de borne du module de conversion

s i g n a u x 3 (masse) 11 (signal d'avancement) 12 (signal du sens de rotation)

Un sous VI LabVIEW, appel DIO Motor Control (one step).vi (Commande de moteur par E/S numriques [pas unitaire]) a t conu pour piloter un moteur pas pas. La figure 10 nous prsente son schma de panneau de commande et son schma-bloc.

5.0 Sommaire
Cet article traite des mthodes de commande d'un moteur pas pas par l'intermdiaire d'un port parallle et du module SCXI de la socit National Instrument. L'utilisation du module de conversion, qui y est dcrit, permet de piloter un moteur pas pas en se servant de langages de programmation ou de logiciels de saisie de donnes classiques. Il s'agit d'une faon conomique d'laborer un prototype de systme de commande/saisie de donnes. De plus, le logiciel de saisie de donnes, qui est capable de compiler des codes de programmation classiques (tel le Code Interface Node [CIN] de LabVIEW), permet d'incorporer la routine de commande de positionnement dans la fonction de saisie de donnes. La procdure est explique ici en dtail pour la routine de commande crite en C++. On peut appliquer cette procdure n'importe quelle routine de commande de positionnement, comme le dplacement d'une sonde, la rotation d'un modle, etc.

14.0 L'emploi du systme SCXI pour la commande de positionnement


On a utilis le systme Signal Conditoning Extension for Instrumentation (SCXI) de la socit National Instrument avec LabVIEW 5.0 afin de mettre au point le programme permettant de raliser une exprience de soufflerie impliquant un moteur pas pas. Le systme comprend un chassis SCXI-1000 muni de 4 fentes pour la saisie de donnes, le multiplexage et les modules de commande. Deux modules sont prsentement installs dans le systme : un SCXI-1200 et un SCXI-1121. Le SCXI1200 est la carte de saisie de donnes d'usage gnral (carte A/N). Elle comprend quatre canaux diffrentiels (ou huit canaux entre simple) et trois ports d'E/S numriques 8 bits. Le SCXI-1121 (avec son appareil auxiliaire SCXI-1321) compte quatre canaux diffrentiels isols optiquement et ses circuits d'excitation. L'arrangement de base du systme est le mme que celui du contrle de positionnement par le port parallle. tant donn que le systme SCXI emploie dj le port parallle pour communiquer avec un ordinateur, on a utilis le port d'E/S numriques du SCXI-1200 pour piloter le moteur pas pas.

6.0 Remerciements
Les auteurs sont trs reconnaissants M. Dan Simpson de son assistance dans le laboratoire.

7.0 Rfrences
[1]. Hall, Douglas V., "Microprocessors and Interfacing: Programming and Hardware", McGraw-Hill, 2e diton, 1991. [2]. National Instruments, "LabView Code Interface Reference Manual", National Instruments, dition de janvier 1998, no de pice 320539D-01. [3]. National Instruments, "LabView User Manuel", National Instruments, dition de janvier 1998, no de pice 320999D-01. [4]. National Instruments, "C Programming Reference Manual", National Instruments, dition de janvier 1998, no de pice 321296B-01.

4.1 Branchement du moteur pas pas (SCXI-1200)


Le port d'E/S numriques du SCXI (bornes PA-0, PA-7 et la masse des signaux numriques) pilote le moteur pas pas, via le module de conversion, comme le montre la figure 9. On peut retrouver les descriptions dtailles des ports dans le manuel du SCXI-1200 [3]. La combinaison des impulsions numriques (dcrite plus haut) et la frquence des signaux en PA-0 et PA-7 dterminent le sens de rotation et la vitesse du moteur. Le tableau 4 donne les dtails du branchement entre le SCXI-1200 (50 broches) et le bornier du module de conversion. Pour le branchement entre le module de conversion et le moteur pas pas, il faut se rfrer au schma du circuit du module de conversion la figure 2.

Logiciel NI-DAQ NI-DAQ Software

DIO Port = Port d'E/S numriques DGND = Masse des signaux numriques
DIO Port PA-0 PA-7 DGND

DIO Motor Control.vi Computer (LabVIEW 5.0)


(LabVIEW 5.0) DIO Motor Control.vi

Module de
Translation Module conversion

Parallel Port Port parallle

SCXI 1200

Moteur pas pas


Stepper Motor

Figure 9: Schma montrant l'emploi du SCXI-1200 pour commander un moteur pas pas

IEEE Canadian Review - Summer / t 1999

DIO Motor Control (one step).vi


Schma-bloc
task ID out Mode (T: Free Step) False Off: Angle Step On: Free Step) Angle Step Angle Motor Speed (40) task ID out Port Config Port Write - sortie d'identification de la tche - Mode (T: avancement libre) - Faux - Hors: Avancement angulaire - En: Avancement libre) - Angle - Angle du pas - Vitesse du moteur (40) - sortie d'identification de la tche - Config. du port - crit. port

Panneau des connexions

True Rotation

- Vrai - Rotation

digital device (1) digital channel Mode (T: Free Step) Motor Speed (40) task ID out

= appareil numrique (1) = canal numrique = Mode (T: avancement libre) = Vitesse du moteur (40) = sortie d'identification de la

Panneau de commande
digital device Motor Speed (40) Rotation digital channel task ID out port width (8) Mode (T: Free Step) Angle On: Free Step = dispositif numrique = Vitesse du moteur (40) = Rotation = canal numrique = sortie d'identification de la tche = Nbre de bits du port = Mode (T: avancement libre) = Angle = En: avancement libre

Figure 10: Panneau de commande et schma-bloc de la sous-VI LabVIEW pour la commande par SCXI de moteur pas pas

propos des auteurs


Nagahiko Shinjo poursuit ses tudes de doctorat en gnie ocanique la Florida Institute of Technology. Il a obtenu sa M.S., galement en gnie ocanique, de la mme universit. Ses domaines principaux de recherche comprennent le contrle de la bioadhsion, les systmes de commande de vhicules sous-marins autonomes et les appareils de commande et mesure submersibles. Il met prsentement au point un systme de ballast alliage mmoire de forme destin aux vhicules sous-marins autonomes ou aux vhicules base biologique. Courriel : shinjon@winnie.fit.edu Larry Buist, qui travaille depuis 13 ans la Florida Institute of Technology, possde une exprience considrable dans la cration de prototypes en collaboration avec les socits Harris GISD (Intersil), MicroPac Industries et plusieurs jeunes entreprises en lectronique au Nevada, au Texas et en Floride. Il dtient un brevet dans l'industrie des jeux vido et uvre dans la conception et la fabrication de circuits lectroniques et lectromcaniques au sein de divers groupes de recherche la Florida Institute of Technology. Courriel : lbuist@fit.edu Chelakara S. Subramanian est professeur agrg en gnie arospatial la Florida Institute of Technology. Il a obtenu son Ph.D. en gnie mcanique de l'universit de Newcastle en Australie et une M.E. en gnie arospatial de l'Indian Institute of Science en Inde. Ses comptences de recherche rsident dans la mcanique des fluides exprimentale et dans les nouveaux appareils de commande et de mesure. Il travaille prsentement sur les projets de recherche suivants : systmes d'application de peinture sensibles la pression et la temprature; vlocimtrie par imagerie des particules; systme conomique de vlocimtrie Doppler par laser deux composants et fonctionnant diode; mesure sur le terrain des dbits dans les ouragans; tudes en gnie des vents. Il est fellow associ de L'AIAA, membre de l'ASME, membre de la Society of Engineers de Grande-Bretagne, ingnieur autoris en Grande Bretagne et membre de la Socit internationale des ingnieurs de France. Courriel : subraman@winnie.fit.edu

IEEE Canadian Review - Summer / t 1999