IMA4 2017/2018 P64 : Différence entre versions
(→Feuille d'heures) |
(→Semaine 5) |
||
Ligne 214 : | Ligne 214 : | ||
==Semaine 5== | ==Semaine 5== | ||
+ | Je suis actuellement toujours bloqué sur la liaison série. Le programme de communication avec le boitier WAGO est réalisé mais une erreur dû, il me semble, bloquer directement mon programme dès l'initialisation de la liaison sur Labview. Même lors de la réalisation du programme le plus basique l'erreur apparait ( le programme tourne mais il ne peut rien envoyer , celà est observable sur les sorties d'erreurs ). Je cherche actuellement des solutions sur le site de National Instrument pour pouvoir avancer au plus vite. | ||
=Documents Rendus= | =Documents Rendus= |
Version du 18 janvier 2018 à 16:54
Présentation générale
Description
La conception de systèmes de contrôle/commande (robot, automate, machine outil...) s'appuie généralement sur une mise au point des développements à l'aide de simulations.
Dans ce cadre, le projet proposé consiste à développer la simulation d'un ascenseur en vue de sa commande par un automate réel. Le choix du langage est à déterminer au cours du projet. Cette simulation doit intégrer la prise en compte des appels paliers et cabine et la simulation des mouvements de l'ascenseur.
Objectifs
La finalité de ce projet sera de réaliser la commande d'un ascenseur, simuler sur un pc, à l'aide d'un API connecté grâce à un réseau Modbus. On pourra observé les différents états de l'ascenseur.
Préparation du projet
Cahier des charges
Choix techniques : matériel et logiciel
Pour réaliser ce projet, j'ai besoin de 2 ordinateurs , d'un module réseau Modbus avec connexion ethernet et série. ( présent dans la salle C001 )
Sur les pc , le logiciel Labview de version récente est nécessaire.
Un automate de commande sera par la suite nécessaire. ( présent dans la salle C006 )
Liste des tâches à effectuer
Calendrier prévisionnel
Réalisation du Projet
Feuille d'heures
Tâche | Prélude | Heures S1 | Heures S2 | Heures S3 | Heures S4 | Heures S5 | Heures S6 | Heures S7 | Heures S8 | Heures S9 | Heures S10 | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Analyse du projet | 1 | |||||||||||
Réalisation du cahier des charges | 4 | 2 | ||||||||||
Gestion modbus | 3 | 5 | ||||||||||
Apprentissage du logiciel Labview | 3 | |||||||||||
Réalisation de la partie Simulateur d'ascenseur | 5 | |||||||||||
Réalisation du réseau Modbus sur Labview | 2 | 3 | 8 |
Prologue
Semaine 1
La première parti de ce projet sera de comprendre le fonctionnement du protocole Modbus. J'ai donc commencé par la réalisation du tp de RLI effecuté en Ima 4. Ce tp étant nouveau, je n'ai pas eu l'occasion de le réaliser l'année dernière. J'ai pour l'instant pu lire la documentation technique fournie et faire la première partie du tp concernant la communication entre 2 pc avec la configuration série - modbus et ethernet - modbus.
Semaine 2
Une fois la communication entre les 2 ordinateurs effectuée grâce au réseau Modbus, la tâche suivante est donc de comprendre comment fonctionne réellement cette communication.
Tout d'abord la partie ethernet Modbus.
Je commence donc avec la modification d'une sortie digital. On doit suivre la trame suivante pour envoyer un ordre.
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 | Byte 9 | Byte 10 | Byte 11 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Signification | Transaction identifier 1/2 | Transaction identifier 2/2 | Protocol Identifier 1/2 | Protocol Identifier 2/2 | Longueur de trame 1/2 | Longueur de trame 2/2 ( ici 6 ) | Identifiant | Fonction Modbus ( ici 5 ) | Adresse de sortie 1/2 | Adresse de sortie 2/2 | ON / OFF |
On va maintenant voir la lecture depuis le port Ethernet.
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 | Byte 9 | Byte 10 | Byte 11 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Signification | Transaction identifier 1/2 | Transaction identifier 2/2 | Protocol Identifier 1/2 | Protocol Identifier 2/2 | Longueur de trame 1/2 | Longueur de trame 2/2 ( ici 6 ) | Identifiant | Fonction Modbus ( ici 1 ) | Adresse de début 1/2 | Adresse de début2/2 | Nombre d'octet à lire 1/2 | Nombre d'octet à lire 2/2 |
Ensuite la partie Série - Modbus. Cette partie ci fonctionne à peu de chose prêt à la précédente, mais il y a ici présence d'un CRC ( contrôle de redondance cyclique ) à chaque trame transmise. Un programme pré-existant permet de calculer le CRC lorsqu'on lui fournit tout le début de la trame. J'ai donc pu tester les messages envoyés avec le CRC calculé précédemment et vérifier la fonctionnalité de mes commandes.
Si l'on veut envoyer un ordre , on doit suivre ce modèle de trame :
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 |
---|---|---|---|---|---|---|---|---|
Signinication | Adresse esclave | Code de fonction | Adresse de sortie 1/2 | Adresse de sortie 2/2 | Donnée d'envoie 1/2 | Donnée d'envoie 2/2 | CRC Low | CRC High |
Semaine 3
J'ai donc maintenant pu passer au contrôle d'une système ( ici gestion de remplissage de bouteille depuis une cuve ) à l'aide de la connexion Modbus sur une version de Labview antérieur. La simulation du remplissage et les liaisons Modbus étant déjà réaliser, j'ai pu comprendre comment était gérer la connexion entre les deux pc avec lecture et écriture sur les variables du simulateur.
J'ai donc réaliser l'automatisation de celui ci pour comprendre la logique Labview. L'étape suivante étant d'installer la nouvelle version Labview sur laquelle je dois travailler et réaliser la partie simulation d'ascenseur pour ensuite passer à la réalisation de la partie réseau.
Semaine 4
L'installation du logiciel LabView 2013 étant réalisé, il est maintenant question de prendre en main le logiciel pour permettre de réaliser la simulation de l'ascenseur. N'ayant utiliser ce logiciel que de façon utilisateur et non concepteur, tout reste à apprendre dans ce domaine.
Pour apprendre à utiliser le logiciel, je me suis servis de programme déjà réalisé. Celà m'a permet de comprendre le fonctionnement du logiciel et apprendre différentes structures. Une fois cette première étape réalisé, je me suis donc mis au travail concernant la partie simulateur d'ascenseur.
J'ai donc commencé de manière assez simple, contrôler l'ascenseur tout d'abord sans Modbus, en utilisant des entrées tout ou rien directement dans le programme de simulation. Cette première partie est essentiellement visuelle puisqu'il s'agit de voir à l'écran l'ascenseur monter et descendre et les portes s'ouvrir et se fermer. J'ai aussi ajouter les capteurs de position d'étage et de porte ouverte et fermée. Les capteurs sont en fait des comparaisons avec soit la position d'un objet, soit la valeur de celui ci ( sur une scrollbar par exemple pour les portes ).
Une fois cette partie réalisé, il a donc été question de contrôler de manière très sommaire l'ascenseur en réseau. L'automate que nous allons utiliser par la suite sera connecté par liaison série. Il est donc nécessaire de gérer la partie réseau Modbus série sur Labview.
Il n'est pas encore question de réaliser le programme de contrôle de l'ascenseur, seulement de tester l'envoie d'ordre et la lecture des réponses. Pour cette partie la, je suis actuellement bloqué sur l'utilisation de la librairie Modbus de Labview.
Semaine 5
Je suis actuellement toujours bloqué sur la liaison série. Le programme de communication avec le boitier WAGO est réalisé mais une erreur dû, il me semble, bloquer directement mon programme dès l'initialisation de la liaison sur Labview. Même lors de la réalisation du programme le plus basique l'erreur apparait ( le programme tourne mais il ne peut rien envoyer , celà est observable sur les sorties d'erreurs ). Je cherche actuellement des solutions sur le site de National Instrument pour pouvoir avancer au plus vite.