IMA5 2018/2019 P17 : Différence entre versions
(→Semaine 1) |
(→Semaine 5) |
||
Ligne 154 : | Ligne 154 : | ||
Après avoir tenté en vain de récupérer le programme actuellement sur l'automate, j'ai cherché d'autres moyens possibles me permettant de récupérer les adresses des variables dans l'automate. Une autre solution est de faire de la rétro-ingénierie. J'ai donc pour ça utilisé un sniffer réseau. J'ai téléchargé Wireshark. Ce logiciel permet de lister tout ce qui se passe sur un port ethernet. J'ai donc allumé le logiciel existant et l'automate. Le logiciel Wireshark me permet de voir les différentes requêtes envoyées par l’exécutable. On retrouve dans ces requêtes les adresses des registres utilisés dans l'automate mais aussi les valeurs de ces registres lorsque l'automate répond. | Après avoir tenté en vain de récupérer le programme actuellement sur l'automate, j'ai cherché d'autres moyens possibles me permettant de récupérer les adresses des variables dans l'automate. Une autre solution est de faire de la rétro-ingénierie. J'ai donc pour ça utilisé un sniffer réseau. J'ai téléchargé Wireshark. Ce logiciel permet de lister tout ce qui se passe sur un port ethernet. J'ai donc allumé le logiciel existant et l'automate. Le logiciel Wireshark me permet de voir les différentes requêtes envoyées par l’exécutable. On retrouve dans ces requêtes les adresses des registres utilisés dans l'automate mais aussi les valeurs de ces registres lorsque l'automate répond. | ||
+ | |||
+ | [[File:Trame_wiki.PNG|center|400px|Capture d'une trame sur Wireshark ]] | ||
Cela m'a permis de lister les différentes requêtes envoyées par l’exécutable. | Cela m'a permis de lister les différentes requêtes envoyées par l’exécutable. |
Version du 8 novembre 2018 à 16:49
Présentation générale
Description
L'école a fait l’acquisition en fin d’année 2016 d’une plate-forme technologique permettant d’illustrer des enseignements dans le domaine des énergies propres. Cette plate-forme est constituée d’une éolienne, de deux panneaux photovoltaïques, d’un électrolyseur, d’une unité de stockage de l’hydrogène et d’une pile à combustible. L’idée est d’utilisée l’énergie produite par les sources renouvelables lorsqu’elles sont disponibles pour produire de l’hydrogène à partir de l’électrolyse de l’eau puis de réutiliser ultérieurement cet hydrogène pour produire de l’électricité via la pile à combustible, ceci permettant de palier l’intermittence des sources primaires. L'objectif du projet est de développer des algorithmes et de mettre en place une interface de supervision permettant de gérer de manière optimale les différents modes de fonctionnement de l'installation. Ce travail s'inscrit dans le projet européen "Electrons to high value Chemical products (E2C)" https://www.interreg2seas.eu/en/E2C
Objectifs
Développer des algorithmes et implanter une interface de supervision pour gérer de manière optimale les différents modes de fonctionnement d'un système multi-sources de production d'hydrogène
Préparation du projet
Cahier des charges
- Définir les différents mode de fonctionnement
- Réaliser ces algorithmes fonctionnement
- Réaliser la partie commande
- Réaliser l'interface de supervision
Choix techniques : matériel et logiciel
Matériel
- Panneau photovoltaïque
- Éolienne
- Batterie
- Électrolyseur
- Bonbonne de stockage d'hydrogène
- Pile à combustible
- Carte DSpace
- Carte Entrées / Sorties
Logiciel
- Logiciel de supervision : à définir ( Labview ou Matlab )
Liste des tâches à effectuer
Réalisation du Projet
Semaine 1
La première semaine de ce projet a été essentiellement consacrée à poser les bases de ce projet. J'ai eu l'occasion de rencontrer mon encadrant. J'ai donc durant cette semaine étudié le projet pour comprendre le fonctionnement.
Nous avons donc ici un système multisources d'énergie. Pour se rapprocher d'une utilisation concrète, nous n'allons pas utiliser uniquement l'énergie créée par les différentes sources ( panneaux photovoltaïques , éolienne ) pour faire de l'hydrogène, mais simuler une utilisation continue d'un client à hauteur de 100W. Le but est donc de gérer les différents mode de fonctionnement du système selon le de nombreuses variables.
Voici les différents modes de fonctionnement :
- Production < 100W ( insuffisance énergétique )
L’électricité produite par les panneaux solaires et l’éolienne ne suffit pas à combler l'utilisation de 100W. Le complément d'énergie peut être fourni par d'autres moyens. Soit de l'hydrogène est présent dans les réservoirs et il est possible d'utiliser la pile à combustible pour générer le complément, soit il est possible d'utiliser de l'énergie stockée dans la batterie. Si cela n'est pas suffisant ou si les deux moyens de stockage sont vides, le système va alors faire appel au réseau électrique pour fournir l'énergie suffisante.
- Production > 200W ( Production d'hydrogène )
L'électricité produite est largement suffisante pour combler le besoin. Nous allons donc dans ce cas là, utiliser le surplus d'énergie pour créer de l'hydrogène ou stocké directement dans la batterie. Une recherche sur les conditions d'utilisations de l'électrolyse devra être faite ( condition de tension minimum etc). Une surveillance devra être réalisée sur le stockage de l'hydrogène, il ne faut en aucun cas dépasser une pression supérieure à 10 Bar dans les réservoirs. Dans le cas où tous les réservoirs ( batterie ou réservoirs d'hydrogène ) sont pleins, le surplus est rejeté sur le réseau.
- 100W < production < 200W
Les deux moyens de production sont ici suffisants pour satisfaire le besoin. Nous n'avons donc pas le besoin d'utiliser l'énergie stockée ou le réseau. Il y a ici 2 cas. Soit l'état précédent était le cas insuffisance énergétique, lorsque l'on passe dans ce mode ci, nous allons uniquement remplir la batterie mais nous ne créerons pas d'hydrogène. Soit l'était précédent état la production d'hydrogène et le fonctionnement reste le même que dans ce cas.
Une surveillance pourra être réalisée sur les différents modules pour vérifier leurs fonctionnements. Il est pour cela nécessaire d'avoir les infos extérieures ( ensoleillement , vent ) pour comparer au valeur théorique.
Semaine 2
Recherche des info pour supervision + commande
Pour réaliser la supervision et la commande du système, je vais avoir besoin d'un retour des différentes variables présentes dans le système. Voici les variables au qu’elles j'aurais accès.
Solaire :
- Condition :
- - Radiation en W/m²
- - Température extérieur
- Module :
- - Température
- - Tension sortante
- - Courant sortant
Éolienne :
- condition :
- - anémomètre
- Module
- - Courant sortant
Batterie :
- Module :
- - Tension sortante
- - Courant sortant
Nous avons pu mettre en route le système. Il est actuellement contrôler à l'aide d'un automate de programmation industrielle. Le but étant de créer un autre système de contrôle. Pour cela, nous avons réfléchit à la possibilité d'utiliser une carte DSpace. Un boitier d'entrées / Sorties y sera relier. Cette carte permet un contrôle en temps réel du système. Je dois donc pour le moment réfléchir au fonctionnement de celle ci. J'ai pu l'instant pu trouver quelques informations pour la programmation de la DSpace et plus particulièrement une boite à outil spécialement faite dans Matlab.
Semaine 3
Recherche sur la programmation de DSpace visionnage de tutoriel vu que pas encore le matériel , Recherche sur ControlDesk. Réfléxion sur le choix de la carte DSpace. difficultée d'utilisation de la carte dspace. Peu de possibilité d'évolution du à l'age des cartes présentes. Ce projet s'inscrit dans un projet européen global. Présenté un projet innovant en utilisant des technologies dépassées n'est pas une solution.
L'autre solution est d'utiliser du matériel national instrument. Un chassis cDAQ-9174 est disponible dans la salle. Il est possible sur ce châssis, d'y brancher 4 cartes d'entrées / sorties. Cette solution est beaucoup plus adéquates dans l'optique de poursuivre le projet par la suite. Il faut donc trouver les cartes nécessaire à la réalisation du projet. Le contrôle est ici réaliser grâce à un ordinateur.
Nous avons donc besoin ici de 4 cartes.
- Une carte d'entrée en courant. La NI-9203
- Une carte d'entrée en tension. Cette carte sera a définir.
- Une carte PT100 pour les capteurs de températures. La NI-9217
- Une carte de sortie en tension. La carte reste à définir. En effet le choix actuel est une carte 4 sorties. Elles sont toutes requises ce qui ne laisse pas de possibilité pour une évolution du le nombre de sortie. Augmenter le nombre de sortie a cependant un coup important.
Etant un châssis national instrument, il est ici plus aisé de réaliser la commande et la supervision sur Labview.
Communication entre les différents éléments
La première chose à effectué est de faire le point sur comment sont réaliser les communication actuelles. L'automate Beckoff est l'élément central. Les capteurs arrivent directement sur les cartes d'entrées. L'électrolyseur est relié à l'automate en RS 232. Le pc de supervision, la pile à combustible et l'automate sont tout les 3 reliés à un switch se qui permet un partage des données.
La communication future sera donc totalement différentes puisque l'élément centrale sera le pc. La communication entre le pc et la carte NI est faite en USB. Le reste des communications reste a étudier. Je vais devoir regarder sur Labview les différentes possibilités.
Contrôle du système
Il n'y a pour le moment aucun moyen de contrôler le système hormis un switch manuel. Tout est donc à réaliser. Que ce soit sur l'emplacement des contacteurs ou sur la commande de ceux ci.
J'ai pour le moment réfléchi aux différents emplacement pour les contacteurs. Un rendez vous avec mon tuteur sera pris pour valider les choix. Le choix des contacteurs prendra en compte les puissances passantes. Il faudra prendre en compte les tensions de sorties possibles depuis la carte NI.
Prise en main de Labview
Une carte a déjà été achetée précédemment. J'ai donc commencé à regarder comment récupérer les infos via Labview. Après des recherches sur internet, j'ai pu trouver une fonction permettant de récupérer les informations d'un boitier du même type que nous avons. J'ai donc câblé les capteurs présents sur l'éolienne. Il y a un anémomètre et un capteur de direction. Une fois un petit programme permettant d'observer les entrées de la carte branché, j'ai pu observer les valeurs des deux capteurs sur un graphique. J'ai donc vérifié la réception. Je n'ai cependant pas encore fait la mise à l'échelle.
Semaine 4
Une grosse partie du travail de cette semaine a été basée sur la recherche de composant pour réaliser la commande. La 1ère idée était de placer différents contacteurs sur le bus 24V DC. Après pas mal de recherches sur cette idée et avoir demandé l'avis de certaines personnes, j'ai essayé de réfléchir à une autre solution. En effet, la création d'arc électrique lors de l'ouverture du contacteur est un gros problème lorsque l'on travaille sur du continu. La solution que j'ai retenue est donc de commander l'alimentation de l'électrolyseur et de la PAC. Une sortie 230V AC est disponible dans le système existant. Je vais séparer cette sortie en deux à l'aide de blocs de jonction, directement branchés sur 2 contacteurs. En sortie des contacteurs, il y aura 2 prises permettant de brancher les deux appareils.
Un devis a été réalisé chez RS et doit être validé.
Un autre choix a été fait. On gardera l'automate en RUN et on communiquera avec lui. Cela permettra de récupérer l'état des différentes variables. Une carte de commande NI sera nécessaire pour commander les contacteurs. Un devis a été demandé à NI.
J'ai commencé à travailler sur la récupération des données de l'automate. Cela est très compliqué car je n'ai pas le programme dans l'automate et aucun moyen d'avoir le tableau d'entrées / sorties. J'ai pour l'instant téléchargé le logiciel de programmation Beckhoff mais je n'ai pas encore réussi à récupérer le programme à l'intérieur. Je n'avais encore jamais travaillé sur ce logiciel ( TwinCAT ). Il se peut que le programme soit bloqué pour ne pas être importé depuis l'automate. J'ai pris contact par mail avec l'entreprise ayant conçu le système pour obtenir les différentes informations mais je n'ai pas encore eu de réponse.
Semaine 5
Après avoir tenté en vain de récupérer le programme actuellement sur l'automate, j'ai cherché d'autres moyens possibles me permettant de récupérer les adresses des variables dans l'automate. Une autre solution est de faire de la rétro-ingénierie. J'ai donc pour ça utilisé un sniffer réseau. J'ai téléchargé Wireshark. Ce logiciel permet de lister tout ce qui se passe sur un port ethernet. J'ai donc allumé le logiciel existant et l'automate. Le logiciel Wireshark me permet de voir les différentes requêtes envoyées par l’exécutable. On retrouve dans ces requêtes les adresses des registres utilisés dans l'automate mais aussi les valeurs de ces registres lorsque l'automate répond.
Cela m'a permis de lister les différentes requêtes envoyées par l’exécutable.
- requête de lecture de registre
- Requête d'écriture sur registre
Une fois ces adresses obtenues, j'ai pu passer a la réalisation d'un programme sur Labview permettant d'obtenir les valeurs des registres. Une fois la prise en main des différents outils pour la communication modbus, j'ai pu réussir à obtenir la valeur des différents registres. Le problème de cette solution est que l'on a aucune information sur ces différentes registres autre que la valeur.
L'étape suivante est donc d'identifier les registres utilisées dans l'automate. Pour cela, je fais tourner mon programme Labview en même temps que l’exécutable. Cela m'a permis d'identifier différentes variables telles que les valeurs de températures, certains courants etc. Cependant, certains registres lus par l'exécutable ont des valeurs fixes ce qui rend leurs identifications difficiles.
L'identification des registres sur lesquels l'application écrit est plus aisé puisque les faire varier sur l'exécutable et observer sur Wireshark quel registre varie.
Semaine 6
Les devis de composants ont été validés. Dans l'attente de la réception du matériel, la supervision du système peut continuer.
Après quelques recherches sur internet, j'ai découvert les simulateurs de réseau ModBus. J'ai donc téléchargé un simulateur d'esclave Modbus que j'ai installé sur un autre ordinateur. J'ai mis l'adresse ip de l'automate sur l'ordinateur que j'ai connecté au switch. Avec cette technique, j'ai pu identifier une partie des registres manquants puisque j'ai pu mettre les valeurs voulues dans n'importe quel registre et observer dans l’exécutable se qui variait.
L'étape suivante est la mise à l'échelle des valeurs reçues. Une fois tous les coefficients trouvés, j'ai pu réaliser sur Labview une interface avec mise à l'échelle des registres. On peut y voir directement les valeurs des différentes variables automates telles que les températures, les courants etc. On peut vérifier ces valeurs à l'aide de l’exécutable fourni par l'entreprise en comparant les valeurs.
La récupération des données est donc réalisée. Reste à réaliser une interface plus conviviale. Un plus serait de réaliser une surveillance sur la production d’électricité des différents éléments. En effet, on dispose des différentes conditions extérieures ( ensoleillement, vitesse du vent ). Il est donc possible de réaliser une surveillance en comparant les valeurs de production aux valeurs théoriques, ce qui permettrait d'identifier une usure des composants.
J'ai pu mettre en route l'électrolyser. Cela me permettra de voir quels sont les registres d'état de l'électrolyser. Le fait d'avoir gardés l'automate de base pour la mise en route et l'arrêt de l'électrolyser permet d'avoir une sécurité. En effet, je ne dispose que de très peu d'informations concernant la gestion de celui ci.
Une brève partie de commande a été réalisée. Depuis mon interface labview, j'ai pu allumé et éteindre le transfo présent avant l'électrolyser.