Bureau d étude d informatique industrielle Acquisition de données Contrôle / commande de procédés par PC (Source DAQ fondamentals www.ni.com ) Textes de Bureaux d'étude 2011/2012 C. Josserond V. Poydenot A. Richard N. Ruty L. Terrier Ce document n a pas été imprimé dans soucis d écologie, de réduction de la consommation de papier à Phelma. Informatique industrielle année 2012 1 Phelma
Les bureaux d étude d informatique industrielle se déroulent en salle N307 sur Polygone, en 7 séances de 4h. Durant ces séances, l essentiel des connaissances sera présenté sous forme de cours et mis en œuvre dans des bureaux d étude. L évaluation se fera en contrôle continu qui prendra en compte non seulement les réalisations mais aussi la participation aux BE. Chaque BE, une fois terminé fera l objet d une évaluation par un des enseignants suivant les critères d une fiche d évaluation standard. Les BE se font en binôme, en cas d absence de l un des membres du binôme, l autre réalisera seul le travail. Tout retard de plus de 15 min sera considéré comme une absence et l étudiant ne sera pas accepté en bureau d étude. Toute absence injustifiée sera prise en compte pour la notation du BE en cours. Vous travaillerez sous la session «Stage» du PC (mot de passe «stages») et conserverez le même poste pour tous les BE. Sur ce poste, un répertoire BE_Info_Indus est présent et contient un répertoire par filière, sous le répertoire de votre filière vous créerez un répertoire aux noms de votre binôme dans lequel chaque BE aura un répertoire qui lui est propre. A vous de gérer les versions de vi et sous vi. Une fois le BE terminé et évalué par un enseignant vous copiez le répertoire du BE sous un répertoire commun de correction situé sur le réseau («sauvegarde info indus»). Le répertoire ne doit contenir que l essentiel des vi et sous vi. Séances : 1 : prise en main progressive du logiciel Labview. 2 et 3 : Réalisation d une serrure codé à l aide d un clavier matriciel. 4 et 5 : Réalisation d un asservissement numérique de position. 6 et 7 : Interfaçage d appareils de mesure via une liaison RS232. Informatique industrielle année 2012 2 Phelma
Bureau d étude d informatique industrielle Getting started with LABVIEW National Instrument Objectifs : Ce bureau d'étude a pour but de vous permettre un premier contact avec un logiciel de programmation graphique pour l'instrumentation : "Labview" de la société National Instrument (www.ni.com). Position des différents outils de programmation sur le marché de l'instrumentation (source EDN via NI) Labview est un puissant logiciel de développement graphique permettant de proposer rapidement une solution à un problème posé. Il fournit un outil de développement facile à appréhender. Mais cette facilité peut permettre, comme c'est le cas avec le langage de programmation BASIC, de réaliser tout et n'importe quoi, n'importe comment. Aussi, est-il recommandé, avant de se lancer dans «l 'écriture» du code, d'analyser le problème afin de proposer une solution modulaire. Dans ce cadre, l'outil algorithmique peut permettre une bonne approche méthodologique. Un premier exercice va nous permettre de découvrir les principales fonctionnalités de Labview tout en démontrant l'utilité d'une analyse préalable du problème. Prise en main et initiation au logiciel Labview Ouvrir le programme oscilloscope.vi disponible sur le disque //Be_sauvegarde/Annee2011_2012/ Informatique industrielle année 2012 3 Phelma
Fenêtre d aide contextuelle Palette des outils Palette des commandes utilisables pour configurer la face avant (IHM) Le programme Labview en tant que tel se trouve dans la fenêtre "diagramme" (ctrl+e). Palette des commandes pour la programmation Structure Séquencée : permet de contrôler l ordre dans lequel se déroulent des tâches Boucle FOR de i=0 à N En utilisant l'option "aide contextuelle" (ctrl+h) dans le menu "aide" et en posant le pointeur de souris sur chaque bloc fonctionnel analyser la structure de ce programme. Tester ce programme en cliquant sur l'icône : (exécuter en permanence). Modifier les différents paramètres de réglage et analyser le fonctionnement de ce programme. Pour cela on pourra utiliser l exécution pas à pas : (disponible sur la fenêtre du diagramme). On désire un fonctionnement permanent avec une bouton STOP sur la face avant. Il faut donc insérer ce diagramme dans une boucle While (palette de fonction/structures). Vérifier le fonctionnement Informatique industrielle année 2012 4 Phelma
Programme à réaliser : On désire réaliser un générateur de signaux virtuel, l utilisateur pouvant sélectionner indépendamment, la forme, l amplitude et la fréquence du signal. Il faudra ensuite utiliser de programme comme un sous programme (sous vi) dans le programme mon_oscillo.vi. Un graphe permettra de visualiser ces signaux. On réalisera une programmation structurée, pour cela, chaque type de signal fera l objet d un sous programme (sous vi) ayant pour entrée fréquence, amplitude et temps et pour sortie la valeur du signal à l instant considéré. L Interface Homme Machine (IHM) sera soignée et pratique, l utilisateur sera guidé dans ses choix. Le programme sera structuré et commenté. Exemple de création de sous-vi Pour simplifier le diagramme on peut une fois le programme terminé tout regrouper dans un bloc en définissant les entrées et les sorties de ce bloc. L utilisation des sous-vi sera indispensable d une part dans des programmes plus complexes de manière à conserver une bonne lisibilité du diagramme, d autre part lorsque la même fonction est utilisée plusieurs fois. Exemple : calcul d un signal sinusoïdal, à un instant donné : On souhaite donc créer à partir de ce programme un sous-vi. Les entrées du programme sont les variables (commandes) Amplitude, Fréquence et Temps et la sortie (indicateur) est Sinus. Les entrées et les sorties vont être définies à partir de la face avant : - Cliquer droit sur l icône : - Choisir le menu Visualiser le connecteur et automatiquement l icône présente des cases correspondant aux entrées et aux sorties : Informatique industrielle année 2012 5 Phelma
Si le connecteur ne correspond pas au nombre d entrée et de sortie de votre programme, alors sélectionner le connecteur adapté en cliquant-droit sur l icône et menu Modèles. - Avec l outil Connecter les terminaux (la bobine) relier chaque case du connecteur à une entrée ou une sortie : les cases de la colonne de gauche correspondent aux entrées ; celles de la colonne de droite aux sorties. - Différentes propriétés du vi sont disponibles en utilisant le clic - droit sur le connecteur. Editer l icône permet par exemple de modifier l allure de l icône qui représentera ce sous-vi. - Enregistrer votre vi. Pour utiliser le programme (vi) qu on vient de réaliser comme un sous-vi dans un autre vi, il suffit dans le diagramme, sur la palette des fonctions de cliquer sur le menu Sélection d un VI, et de choisir le sous-vi voulu. ATTENTION : Un sous VI ne doit pas contenir d indicateurs ou commandes (interfaces avec la face avant) car le passage de paramètre serait alors impossible. Par défaut, toutes les entrées/sorties du sous VI sont affectées en tant que terminaux de connexion, si l'utilisation du sous VI ne nécessite pas ces connexions, il faut modifier le connecteur en suivant l'aide proposée : Informatique industrielle année 2012 6 Phelma
Informatique industrielle année 2012 7 Phelma
Fiche d évaluation des bureaux d étude d informatique industrielle BE Initiation à Labview Option : Noms du binôme : Bureau d étude :.... Nom du programme source réalisé (.vi) :.. Interface Homme Machine (Face avant) : La face avant est visible à l écran dans sa totalité : La face avant est agréable et lisible Les interfaces sont identifiées quant à leur action sur le programme L utilisateur est guidé dans l utilisation du programme Le Diagramme : Le diagramme est visible à l écran dans sa totalité : Le diagramme est commenté Le diagramme est structuré (présence de sous Vi identifiés et commentés) L aspect fonctionnel : Le programme est démarré par le mode exécution : Le programme peut être arrêté par la face avant Les actions sur la face avant provoquent des actions cohérentes Les actions réalisées sont conformes au cahier des charges Commentaire : La gestion de l espace de travail : Un répertoire identifié pour le BE : Tous les outils nécessaires à l exécution du vi sont dans ce répertoire Les noms de vi et sous vi sont explicites Date : Heure :. Signature de l'enseignant : Informatique industrielle année 2012 8 Phelma
Informatique industrielle année 2012 9 Phelma
Bureau d étude d informatique industrielle Réalisation d'une serrure électronique Objectif de ce Bureau d étude: Pilotage des entrées sorties numériques d une carte Application à la lecture d'un clavier matriciel. Cahier des charges : On désire réaliser une serrure codée de type digicode ayant les caractéristiques suivantes : - Le code "clef" est un code numérique à trois chiffres fixé par le programme à "3 3 9", - L'utilisateur entre le code sur un clavier matriciel 16 touches (cf doc), - Le bon code ouvre la porte, la maintient ouverte pendant une seconde puis la referme en attendant un nouveau code correct. On matérialisera le signal envoyé à la serrure par l allumage d une LED connectée à PA9 (PC1), - Toute saisie de code erroné donne droit à une nouvelle saisie de trois chiffres. L'utilisateur se voit proposer une nouvelle saisie seulement s'il a tapé trois touches du clavier matriciel, - Les aspects aléatoires de la qualité de frappe de l'utilisateur seront pris en compte. - Bonus : si l attente entre 2 touches est trop longue(>5s), le pgm ré-initialise la saisie du code Schéma électrique du clavier matriciel : +5 volts + 5 volts C3 C2 C1 C0 L3 L3 L1 L0 b3 b2 b7 b1 b6 b0 b5 b4 Les transistors permettent de déterminer l état (0 ou 1) envoyé sur les lignes logiques (entrée et sortie des lignes sont confondues). A l appui d une touche, le relai mécanique se ferme, l état (0 ou 1) circule. L état 0 est prioritaire. Informatique industrielle année 2012 10 Phelma
Fonctionnement : La trame de données numériques sur 8 bits: b7b6b5b4 b3b2b1b0 Les colonnes sont sur les poids fort et les lignes sont sur les poids faibles. Pour détecter la colonne d une touche enfoncée, il faut que initialement, l état des colonnes soient à : 1111 et les lignes à 0000 : Trame de données : 1111 0000 A l appuie d une touche, un 0 apparait dans les données des colonnes indiquant ainsi sa position : exemple : appuie sur C2/L1 Trame lue : 1011 0000 Même fonctionnement pour les lignes. Solutions techniques envisagées : En accord avec le client et les contraintes de coût la solution matérielle proposée est un PC associé à une carte multi entrées sorties NI-6008 assurant l'interface "hard" avec le clavier matriciel. Travail à réaliser : Réaliser un programme sous Labview permettant de satisfaire le cahier des charges. Après avoir défini l algorithme, on déterminera l interface utilisateur et la structure du programme. Les fonctionnalités de bas niveau (lecture d une touche par exemple) seront testées de manière indépendante et mises sous forme de sous programmes, une fois validées. On veillera particulièrement à ce que ce programme soit structuré grâce à l utilisation de sous VI (sous programmes) encapsulant les principales fonctions (scrutation du clavier, acquisition du code, vérification du code) de l algorithme choisi. Evaluation : Une fois votre travail terminé ou le BE déclaré fini par l'enseignant, vous devez montrer votre travail à un des enseignants encadrant le BE qui évaluera le fonctionnement du programme à l'aide de la fiche de réception jointe. La notation tiendra compte du nombre d'étapes franchies et de la qualité (structuration et commentaire) du code écrit. Le programme, une fois testé et validé par un enseignant à l'aide de la fiche de réception jointe, le fichier source (.vi) doit être copié dans le répertoire à votre nom que vous créerez sous \\Sauvegarde info indus\be_info_indus\[option]2 sur le bureau. Ce fichier devra posséder un nom original de manière à ne pas être confondu avec celui d un autre binôme et être situé dans un sous répertoire à votre nom. Ce programme sera structuré (sous VI), commenté et devra comporter une en-tête sur la face avant avec Noms, Option, date, fonction et particularités du programme ainsi que tout commentaire utile à sa compréhension, il constitue votre compte rendu. Vous êtes responsables de la gestion de vos différents BE ainsi que de vos versions de logiciel. Informatique industrielle année 2012 11 Phelma
Les claviers matriciels : Câblage du clavier à la carte PCI : La LED d indication d ouverture de porte est connectée à PA9 (bit 9 du porta= port n 0). Un clavier matriciel à 16 touches comme celui que nous utilisons est organisé, comme son nom l indique en une matrice de 4 lignes et 4 colonnes. L appui sur une touche réalise le contact entre une ligne et une colonne. Trame envoyée pour initialisation : A l appui d une touche: A l appui, le zéro circule et change l état 1 en 0 de la colonne correspondante. Idem pour les lignes. Informatique industrielle année 2012 12 Phelma
Fiche de réception du bureau d'étude Réalisation d'une serrure électronique Cette fiche récapitule les divers tests qui valideront le respect du cahier des charges Option : Noms du binôme :.... Nom du programme source réalisé (.vi) :.. Points de vérification : Affichage de la touche appuyée : Une touche est maintenu appuyée : un seul code touche doit s'afficher sur l'écran du PC : Appui simultané de plusieurs touches : un seul code touche doit s'afficher sur l'écran du PC : Saisie du mauvais code : retour à une nouvelle saisie Saisie du bon code : commande d'ouverture de porte (allumage de la LED du clavier) Interface utilisateur ergonomique Date : Heure :. Signature de l'enseignant : Informatique industrielle année 2012 13 Phelma
Informatique industrielle année 2012 14 Phelma
Bureau d étude d informatique industrielle Utilisation des Entrées / Sorties analogiques de la carte PCIµLab Objectif du Bureau d étude n 2 : Pilotage des entrées sorties analogiques d une carte à l aide de drivers (interfaces logicielles) Application à la réalisation d un asservissement numérique. Durée conseillée : 2 séances. Rappel : La carte d extension PC utilisée est toujours une carte de type PCIµLab. Travail à réaliser : On vous demande de réaliser deux programmes distincts correspondant à chacun des deux exercices suivants. Exercice 1 : Réaliser un sous VI echantillon.vi utilisant deux sous Vi (CAN et CNA) mettant en œuvre les fonctions de la dll PCIMicNT.dll Ain() et Aout() et capable de mesurer une tension analogique pour la reproduire de manière identique sur la sortie analogique A (VA cablé sur UNI1 du boitier )de la carte. Les sous VI CAN et CNA tiendront compte des spécificité de la carte (tables de conversion) et s interfaceront avec des variables de type réel (double) représentant des tensions : la conversion analogique / numérique de la tension issue du GBF, de valeur 5,12 volts devra fournir un nombre réel, variable de sortie du sous VI CAN de valeur 5,12 aux erreurs de quantification près. Le test du programme sera réalisé avec un GBF et un oscilloscope. On cherchera à mettre en évidence les problèmes de quantification, de retard et de fréquence d'échantillonnage. Procédé GBF Oscillo PC + carte PCIµLab CAN 12 CNA 12 Programme exercice 1 On mesurera à l aide d un oscilloscope numérique le temps nécessaire à une double conversion AN puis NA. Informatique industrielle année 2012 15 Phelma
Rappel : La carte d extension PC utilisée est une carte de type PCIµLab enfichée dans un slot PCI de la carte mère. Le système d exploitation est Windows XP supportant le Plug&Plays et interdisant à l utilisateur l accès direct à l espace d adresse des entrées sortie. On accède à ce matériel via ses «drivers», c'est-à-dire des bibliothèques de fonction (ici sous forme de dll). Les cartes PCIµLab sont des cartes multifonction (cf doc) c est à dire qu elles permettent d utiliser des entrées / sorties aussi bien analogiques que numériques. La documentation de la carte PCImicrolab (pcimicrolabrv1_2_0.pdf) donne les fonctions suivantes appartenant à la dll PCIMicNT.dll : Ain () (page 48) Action: Lire un port (voie) d'entrée analogique. Cette procédure permet de lire un port d'entrée analogique en précisant la voie à échantillonner et le gain à programmer. Syntaxe: short Ain ( WORD *data, /* lecture du résultat de la conversion */ WORD voie, /* voie analogique à sélectionner de 0 à 31 (cf:carte) */ WORD gain, /* valeur numérique du gain à programmer (cf:carte)*/ WORD mode, /* mode de configuration */ ULONG exts, /* extension future */ WORD carte, /* nom de la carte*/ WORD adresse) /* N de la carte */ Les paramètres : *data Pointeur sur la valeur numérique sur 16 bits du résultat de la conversion. voie Voie analogique à sélectionner de 0 à 31 (cf:carte) gain Valeur numérique du gain à programmer 0,1,2,3,4,5,6,7(cf:carte) mode Permet de configurer les différentes options disponibles dans le module analogique/digital suivant la carte utilisée. (configuration des entrées - déclenchement des conversions - utilisation d'un trigger ). Mettre à 0. non utilisé. Pour définir Le mode l'utilisateur peut utiliser les #define DT_AD_xxxx listés dans le paragraphe Types prédéfinis exts Extension future. Mettre à 0. carte Nom de la carte : Type défini PCI_MICROLAB adresse Numéro de la carte (0,1,2,3) Compte-rendu : Erreur de retour sur 16 bits, se référer paragraphe Code d'erreur. 13.2.17 Aout() (page 49) Action: Ecrire sur un port de sortie analogique. Cette procédure permet d'écrire sur un port de sortie analogique en précisant la voie désirée. Syntaxe: short Aout ( WORD data, /*valeur à écrire */ WORD voie, /* voie analogique à sélectionner (cf:carte) */ WORD mode, /* mode de configuration */ ULONG exts, /* extension future */ WORD carte, /* nom de la carte*/ WORD adresse) /* N de la carte*/ Les paramètres : data Valeur numérique sur 16 bits à écrire sur la voie de sortie analogique. voie Voie analogique de sortie à sélectionner de 0 à x. mode Permet de configurer les différentes options disponibles dans le module digital/analogique suivant la carte utilisée. (configuration des sorties - déclenchement des conversions - utilisation d'un trigger ). Informatique industrielle année 2012 16 Phelma
bit 15 DT_DA_MONO : mode sortie DA 0=monopolaire,1=bipolaire. Nécessaire à la fonction Aoutf(). (à 1 pour PCI-MICROLAB) Pour définir Le mode l'utilisateur peut utiliser les #define DT_ DA _xxxx listés dans le paragraphe Types prédéfinis exts Extension future. Mettre à 0. carte Nom de la carte : Type défini PCI_MICROLAB adresse Numéro de la carte (0,1,2,3) Compte-rendu : Erreur de retour sur 16 bits, se référer paragraphe Code d'erreur. Appel d une dll sous labview : Aller dans la bibliothèque de fonction du diagramme, sélectionner, dans les fonctions, «fonctions avancées» et choisissez l objet «Appel de dll». Configurez cet objet en double cliquant sur son icone A partir de la palette des fonctions, sur la fenêtre du diagramme, cliquer sur connectivité, puis Bibliothèques et exécutables, puis sur l icône Appeler une DLL. Configurez cet objet en double cliquant sur son icone Configuration de la dll : En utilisant la documentation constructeur, sélectionner la fonction Aout() ou Ain() de la dll en ayant indiqué le chemin de celle-ci. Puis indiquez les variables et leur type pour l interfaçage de la dll avec Labview, le nom de variable importe peu (mais facilite la compréhension!!!), l ordre et le type de variable est par contre fondamental. Une fois configurée, l objet «appel de dll» présente à gauche les variables en entrée et à droite, les variables en sortie. A votre charge de connecter celles qui sont utiles à votre application (Dout ne nécessite que des entrées par exemple, Din nécessite des entrées pour sa configuration et fournit une grandeur «data» en sortie). Informatique industrielle année 2012 17 Phelma
Exercice 2 : Réaliser un asservissement de position de type proportionnel pour le banc d essai décrit ci-dessous. L utilisateur imposera la position de consigne avec un potentiomètre identique à celui de mesure de la position moteur, le gain est fixe et sera pris égal à 20. La fréquence d acquisition (échantillonnage) sera celle fixée par l exécution du programme Le banc d essai utilisé est composé d'un moteur à courant continu alimenté par un amplificateur de puissance. Ce moteur entraîne un disque. Il s'agit d'asservir la position angulaire du disque. Le capteur de position utilisé est un potentiomètre sans butée dont la course électrique est de 340 degrés ; l'asservissement ne pourra donc se faire que sur un tour du disque. Le potentiomètre est alimenté en 0/10volts : 0V correspond à la charge en position basse et 10 volts à la charge en position haute. L'amplificateur de puissance est composé d'un ampli opérationnel et d'un push-pull alimenté en +/- 12 volts ; cet ampli est linéaire et son gain est unitaire. Vc Vp +/- 10 V 0 / 10 V Consigne (0<Pcons<10 V) Voie X+1 CNA PCIµLab Voie X Multiplexeur N Voie = X+1 CNA.VI N Voie = X CAN.VI CAN.VI CAN Consigne Nc Int 16 Conversion Limitation +10/-10 Gain Correcteur Kp Erreur Mesure Conversion Int 16 Np Algorithme d'asservissement Attention, pour que le moteur puisse tourner dans les deux sens, la tension de commande en entrée de l'ampli de puissance est forcément bipolaire +/- 10V. La mesure de la position peut se faire en unipolaire 0/10V. Exercice 3 : A partir du Vi précédent, proposer une interface homme machine permettant à l utilisateur de choisir entre 3 modes de fonctionnements : Mode asservissement avec consigne manuelle Mode asservissement avec consigne fournie par le PC (saisie en face avant). Mode identification par réponse à un échelon de consigne (en boucle ouverte ou en boucle fermée) : la réponse sera présentée sur un graphe avec la consigne. Le programme, une fois testé, le fichier source (.vi) doit être copié sous le répertoire de votre option situé sur le concentrateur (sauvegarde info indus). Ce fichier devra posséder un nom original de manière à ne pas être confondu avec celui d un autre Informatique industrielle année 2012 18 Phelma
binôme. Ce programme sera structuré, commenté et devra comporter un en-tête avec Noms, Option, date, fonction et particularités du programme ainsi que tout commentaire utile à sa compréhension, il constitue votre compte rendu. Vous êtes responsables de la gestion de vos différents BE ainsi que de vos versions de logiciel. Informatique industrielle année 2012 19 Phelma
Informatique industrielle année 2012 20 Phelma
Fiche de réception du bureau d'étude Asservissement numérique de position Cette fiche récapitule les divers tests qui valideront le respect du cahier des charges Option : Etape de programmation : 1 2 3 Noms du binôme :.... Nom du programme source réalisé (.vi) :.. Points de vérification : Exercice 1 : Réaliser une fonction echantillon() Fonctionnement à basse fréquence Mise en évidence de la quantification Condition de sortie du programme Valeur du temps de conversion mesuré : Exercice 2 et 3 : Réaliser un asservissement de position de type proportionnel En mode consigne manuelle Fonctionnement Kp=1 Fonctionnement Kp=20 Gestion des grandes erreurs Passage de 10 à 200 avec Kp=10 Passage de 200 à 10 avec Kp=10 En mode consigne PC Fonctionnement Kp=20 En mode identification Visualisation consigne/réponse Changement de gain possible et aisé IHM Retour au menu «mode» possible Arrêt possible Date : Heure :. Signature de l'enseignant : Informatique industrielle année 2012 21 Phelma
Informatique industrielle année 2012 22 Phelma
Bureau d étude d informatique industrielle Pilotage d'instrument par liaison série RS232 Objectifs du bureau d étude n 2 : Ce travail a pour but de vous familiariser avec l utilisation de la liaison série au protocole RS232. On utilisera le logiciel Labview pour la mise en œuvre. Il vous est demandé, dans ce bureau d étude, d établir une liaison série entre deux PC tout d'abord puis entre un PC et un instrument (générateur, oscillo, robot). Chaque PC dispose de deux ports (com1 et com3), il suffira d en choisir un pour relier l'appareil. Le protocole de transmission choisi est 9600 bauds, 8 bits de données, pas de parité et 2 stops. Sans contrôle de flux (Handshake). Le câble utilisé est de type "nul modem" c'est à dire que les lignes Tx et Rx sont croisées au niveau du câble ainsi que les lignes RTS et CTS permettant ainsi un contrôle matériel de flux si besoin. Cf annexe RS232. Travail à réaliser : Etape 1 : Réaliser sous Labview un programme chargé, dans un premier temps de transmettre un message que l utilisateur tape au clavier et d afficher à l écran les caractères reçus sur le port série. On visera une application de type half duplex c'est à dire que chaque interlocuteur parle à son tour. Le premier test se fera sur un "bouchon" c'est-à-dire que le PC se parle à lui-même. Pour tester ce matériel on utilisera l hyperterminal (on prendra cette précaution avec tout nouveau matériel : appareil, câble) que l'on configurera avec le protocole approprié : Démarrer Accessoires Communication Hyperterminal : double click sur hyperterminal.exe Diriger vers COM1 (ou COM2) 9600 bauds, 2 stops, 8 data, pas de parité, pas de contrôle de flux. On utilisera, dans un premier temps, la trame serial communication.vi (ds les exemples disponibles sous Labview) que l'on trouvera parmi les exemples Labview et qui permet de transmettre et recevoir sur le port sélectionné (COM1 ou COM2) une chaîne de caractère de longueur inférieure à "Byte To Read". Informatique industrielle année 2012 23 Phelma
Ce.vi permet d envoyer sur le port série choisi et configuré, une chaîne de caractère quelconque puis d attendre une réponse sous forme d un nombre fixe d octets. Une fois ce nombre reçu (si ce n est pas le cas avant Time out, une erreur «Time Out» est transmise), le port est fermé. Ce vi possède des défauts, il n associe pas de caractère de fin de transmission au message émis et le nombre de caractère de la réponse doit être connu pour éviter les erreurs. Réaliser un sous VI : RS232_WR.vi qui envoi une chaîne de caractère (paramètre d'entrée) et attend une réponse de longueur quelconque (attente du caractère de fin de transmission). Comme la lecture du buffer est asynchrone, on ne sait jamais si la totalité du message est arrivé, on lira donc tout ce qui est arrivé tant que le caractère de fin de transmission n est pas arrivé, pour connaître, le nombre de caractères présent dans le buffer, on utilise la fonction «Bytes at serial Port». On veillera à ce que la chaîne émise se termine par le caractère de fin de transmission "CR" (code ASCII : 0xD ou 13). La réception considère que tout est arrivé lorsqu'on reçoit le même caractère "CR", elle sort alors la chaîne de caractère reçu. Réaliser un sous VI : RS232_W.vi qui réalise uniquement l'émission d'une chaîne de caractère associé au caractère de fin de transmission "CR". Etape 2 : Réalisation d un banc de mesure automatisé : On souhaite réaliser un traceur automatique de caractéristiques pour une LED. Pour cela on utilisera l alimentation AL991s et l oscilloscope comme appareil de mesure. Schéma de la manip : Id Oscillo CH2 AL991 DEL Vd Oscillo CH1 100Ω Pour cela il faudra réaliser : - un sous-vi qui permet de piloter l alimentation ALS991 (voie de sortie et niveau de tension) - plusieurs sous vi qui permettront de réaliser les mesures de tension sur les 2 voie de l oscillo dans de bonnes conditions. Le programme permettra à l utilisateur de choisir les conditions de mesure et affichera la caractéristique Id(Vd). Etape 3 : Caractéristique d un transistor N-MOS Selon le même principe qu à l exercice précédent, réaliser un traceur automatique de caractéristique un transistor N-MOS (CD4007). Note : les différentes sorties A B ou C de l alimentation AL991 peuvent être utilisées simultanément. Informatique industrielle année 2012 24 Phelma
Syntaxe de commande des différents appareils disponibles en salle de BE : Oscilloscopes Tektronix TDS 220 ou 1002 : Syntaxe valable en RS232 et IEEE488 (GPIB) *IDN? Interroge l'appareil sur son identité et appelle une réponse de sa part. AUTOS EXEC exécute un autoset de l'oscillo LOCK ALL verrouille la face avant, l'utilisateur n'a plus accès aux boutons de l'appareil. LOCK NONE déverrouille MEASU:IMM? retourne les specs de la mesure MEASU:IMM:SOU <channel> spécifie la voie (channel =CH1 ou CH2) sur laquelle on veut effectuer des mesures. MEASU:IMM:TYP <type> spécifie le type de mesure à réaliser sur la voie choisie : MEAN, FREQ, PK2, RMS MEASU:IMM:VAL? donne l'ordre de mesure et retourne la valeur ainsi que l'unité Les commandes peuvent être chainées de la manière suivante : MEASU:IMM: SOU CH1;TYP MEAN;VAL?;UNI? (commande de meme préfixe) Ou *IDN?;:AUTOS EXEC;:MEASU:IMM:VAL? (commandes de préfixe différent) Fin de transmission CR ( CR =0x0D=13) à vérifier sur la config oscillo Générateur HP 33120 : attention câble spécial obligatoire Syntaxe valable en RS232 et IEEE488 (GPIB) *IDN? Interroge l'appareil sur son identité et appelle une réponse de sa part. APPL:SIN 5.0 E +3, 3.0, -2.5 demande la génération d'un sinus d'amplitude 3.0 volts et de fréquence 5.0 E +3Hz et d offset 2.5 volts APPL? Retourne la configuration actuelle FUNC :SHAP {SIN,TRI,SQU,RAMP,NOI,DC,USER} demande la génération d'un signal de la forme spécifiée FREQ {valeur} impose la valeur de la fréquence en sortie Fin de transmission ("LF"=0xA=10) Pour supprimer les erreurs faire shift Recall Menu + flèche vers le bas Générateur GF265 Centrad : Les codes sont référencés dans le tableau suivant : _0 _1 _2 _3 _4 _5 0_ forme sinus square triangle Ramp up Ramp dn DC 1_ 20 Offset 3_ 4_ fréquence 4 digits 10 digits 5_ 6_ 80 level 9_ atténuation 0 db -20 db - 40 db Attention, l appareil renvoie le caractère reçu à chaque fois, il faut lui en laisser le temps : par exemple pour passer en sinus envoyer 0 lire 0 puis envoyer 0, lire à nouveau 0 et envoyer la fin de transmission Lorsqu'une valeur doit être saisie, il faut envoyer, à la suite du code, un espace. Dans ce cas, l'appareil retourne le caractère ":" et attend la valeur exemple : 40 1000 impose une fréquence de 1000 Hz Fin de transmission CR+LF (attention c est une chaîne de caractère et non un caractère!) Alimentation AL 991s : Fin de commande par CR, les réponses se terminent par > x? interroge l'alim sur la valeur de la sortie désignée par x (A,B ou C) la réponse est en hexadécimal et représente la valeur multipliée par 10 S? interroge sur la sortie en fonction SX impose la sortie X comme valide R? demande l'identification de l'appareil V verrouille l'accès au clavier D valide l'affichage sur l'appareil X<signe><valeur en hexa> impose la valeur sur la sortie X exemple A-03 impose 0,3 volts sur la sortie A Charly robot : attention câble spécial obligatoire Informatique industrielle année 2012 25 Phelma
@0K puis entrée au robot Charly, réinitialise le robot @07 puis entrée, déclare 3 axes de déplacement @0R7 puis entrée, lui demande d'effectuer une course de référence (position initiale) @0P demande sa position absolue @0A x,fx, y,fy, z1,fz1, z2,fz2 puis entrée où Dx est le nb de pas en x (1 pas = 0.01 mm) et Fx la fréquence en Hz La fin de transmission est CR. Le robot retourne un code d'erreur : "0" pas d'erreur, "5" erreur de syntaxe. GPS Garmin 35 PC : Le GPS transmet en permanence un ensemble de phrases à 4800 bauds, 8 bits de données et 1 bit de stop. La phrase permettant de récupérer temps, vitesse et position commence par $GPGGA,. Informatique industrielle année 2012 26 Phelma
Bureau d étude d informatique industrielle La liaison série RS232 La liaison série RS232 fait partie intégrante des moyens de communication du PC dès l origine. Cette liaison de type asynchrone gérée par un UART (Universal Asynchronous Receiver Transmitter) servait au dialogue entre le PC et ses périphériques externes éloignés. Afin d atteindre des distances raisonnables la norme V.24 définit l interface de liaison pour un support filaire de la façon suivante : «0» +15 V BANDE INTERDITE «1» + 3V - 3V - 15 V Dans ces conditions, les performances avancées sont : 15 mètres, 20 kbauds. Attention : beaucoup de constructeurs PC ne respectent pas les niveaux de tension de la norme en sortant des signaux en +/- 5V, compatibles RS 232 mais incapables d atteindre les performances en distance. La trame RS232 est constituée de la façon suivante : La ligne de transmission au repos est à l état «1» (- 12 volts), la transmission débute par un bit de start matérialisé par un passage à «0» de la ligne. Le bit de start sert à démarrer l horloge de réception, cette horloge, de même fréquence que l horloge d émission est déclenchée par le bit de start et permet de lire de façon quasi synchrone les bits suivants. Dans la norme RS232, les bits de donnée suivent immédiatement les bits de start, ils peuvent être au nombre de 5,6,7 ou 8. Le contrôle de la transmission peut être effectué sur chaque trame grâce au bit de parité. Ce bit facultatif (pas de parité) peut compléter le nombre de bits de données à «1» afin de rendre ce nombre pair ou impair. L'intérêt de ce rajout est le suivant : si jamais lors de la transmission un état 1 est transformé en état 0 (perturbation du canal par des parasites par exemple) le nombre total de bits change et donc le bit de parité recalculé par le récepteur ne correspond plus à celui reçu. L'erreur est donc détectée. Exemple : soit à transmettre le caractère "A" dont la représentation binaire en ASCII standard est "1000001". parité utilisée bits transmis Off (pas de parité) 1000001 On-Even (paire) 10000010 On-Odd (impaire) 10000011 Les bits de Stop, au nombre de 1 ou 2, servent à séparer d éventuelles trames consécutives et à repasser la ligne au repos. Le choix du nombre de bits de données, de la parité et du nombre de bits de stop se fait, comme pour le choix de la vitesse de transmission, en programmant les registres de l UART (cf doc annexe) Informatique industrielle année 2012 27 Phelma
Matériellement une liaison bidirectionnelle nécessite généralement 2 fils de transmission et un fils de masse La plupart des liaisons, bidirectionnelle «sérieuses» nécessite un contrôle du flux de données entre les deux interlocuteurs, cet échange d information (ne serait ce que pour vérifier la présence d un récepteur) peut se faire de deux façons : Xon / Xoff : Protocole très simple de communication en série qui s'appuie sur l'échange de deux caractères : XON (codé 17 en ASCII) et XOFF (codé 16 en ASCII). L'émetteur envoie des données au récepteur. Ce dernier, lorsqu'il veut interrompre la transmission, par exemple pour pouvoir traiter ce qu'il a déjà reçu, envoie un caractère XOFF à l'émetteur qui se trouve ainsi bloqué. Les échanges pourront reprendre lorsque le récepteur enverra un caractère XON. RTS/ CTS : on utilise 2 lignes supplémentaires pour les échanges de «poignées de main» entre l émetteur et le récepteurs. Norme de connectique : La plupart des PC sont désormais équipés de 2 ports séries (COM1 et 2) en connecteur SUB D 9 points mâles. Dans le cas de PC anciens le port COM1 est généralement un connecteur SUB D 25 point mâle et le COM2 un 9 points. DB9 Mâle (vue de devant) ------------- Informatique industrielle année 2012 28 Phelma
\ 1 2 3 4 5 / \ 6 7 8 9 / --------- DB25 Mâle (vue de devant) ------------------------------ \ 1 2 3 4 5 7 8... 13 / \ 14 15 16 17 18...25 / -------------------------- Broche DB9 Borche DB25 Nom ----------------------------------- 1 8 DCD 2 3 RX 3 2 TX 4 20 DTR 5 7 GND 6 6 DSR 7 4 RTS 8 5 CTS 9 22 RI ************************************************************************ *********** CABLAGE DES DEUX PRISE DB9 *************** ************************************************************************ Sens de transfert broche 2 : RxD -----------<<<<<<--------------------- TxD : broche 3 broche 3 : TxD ----------->>>>>>--------------------- RxD : broche 2 broche 5 : MASSE ----------------------------------- MASSE : broche 5 broche 7 : /RTS ----------->>>>>>--------------------- /CTS : broche 8 broche 8 : /CTS -----------<<<<<<--------------------- /RTS : broche 7 relier des deux côtés les broches DSR (6) DTR (4) DCD (1) ************************************************************************ *********** CABLAGE DES BOUCHONS DB9 *************** ************************************************************************ Sens de transfert broche 2 : RxD -----------<<<<<<------------------ broche 3 : TxD ----------->>>>>>------------------ broche 5 : MASSE broche 7 : /RTS ----------->>>>>>------------------- broche 8 : /CTS -----------<<<<<<------------------- relier des deux cotés les broches DSR (6) DTR (4) DCD (1) Informatique industrielle année 2012 29 Phelma
Informatique industrielle année 2012 30 Phelma
Fiche de réception du bureau d'étude Pilotage par liaison série RS232 Cette fiche récapitule les divers test qui valideront le respect du cahier des charges Option : Noms du binôme :.... Nom du programme source réalisé (..vi :.. Points de vérification Etape 1: Fonctionnement avec bouchon de test : Saisie de caractère et émission Réception du caractère émis précédement Condition de sortie du programme Rapidité de saisie Fonctionnement avec Hyperterminal Windows et cable : Emission d'une phrase Réception sur hyperterminal Emission sur hyperterminal et réception Points de vérification Etape 2: Pilotage d'instrument: Type d'appareil : Oscillo Générateur HP Charly Robot GPS 35PC AL991 Convivialité face avant : Pratique, esthétique Fonctionnelle "Usine à Gaz" Fonctions implantées : Aucunes Partielle Toutes L'appareil répond : Les résultats affichés sont cohérents Nom de l'enseignant : Date et Heure :. Signature enseignant :.. Informatique industrielle année 2012 31 Phelma
Informatique industrielle année 2012 32 Phelma
Informatique industrielle année 2012 33 Phelma