Cours:Téléinformation : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
({{Rouge|Conception du programme}})
({{Rouge|Conception du programme}})
Ligne 206 : Ligne 206 :
 
*lire ce caractère
 
*lire ce caractère
 
*l'envoyer sur la liaison vers le PC.
 
*l'envoyer sur la liaison vers le PC.
 +
 +
=={{Bleu|Décodage du message}}==
 +
 +
Il convient maintenant d'essayer de séparer les étiquettes des données.
 +
 +
Pour cela, on remarquera que :
 +
*chaque message commence par un "retour à la ligne"
 +
*l'étiquette est suivie d'un "espace"
 +
*la valeur est suivie d'un "espace"
 +
 +
{{Todo|En utilisant la méthode [http://arduino.cc/en/Reference/StreamReadBytesUntil {{Rouge|readBytesUntil}}], essayez de séparer étiquettes et données du message :}}
 +
*Attendre d'avoir au moins une ligne à lire
 +
*Attendre de recevoir un "retour à la ligne"
 +
*Récupérer l'étiquette à l'aide de "readBytesUntil"
 +
*Récupérer la valeur à l'aide de "readBytesUntil"
 +
*Convertir cette valeur en entier (cf atoi)
 +
 +
 +
=={{Bleu|la bonne étiquette}}==
 +
 +
{{Todo|Il ne reste plus qu'à vérifier si l'étiquette est celle qui nous intéresse en utilisant la fonction {{Rouge|strcmp}}}}

Version du 17 mars 2015 à 17:26

Présentation du projet

Objectif

Les compteurs EDF de type électronique possèdent deux bornes qui permettent à des équipements externes de dialoguer avec le compteur. Il sera pas exemple possible de lire l’énergie instantanée consommée, la puissance maximum autorisée, le dépassement de cette puissance maximum…

Compteur EDF doté de deux bornes de télé-information

Les informations sont transmises de manière cyclique avec un protocole particulier. Mais il est possible de lire ces informations en utilisant un système de lecture de la télé-information. Ainsi, l'objectif de ce travail consiste à réaliser ce système de lecture qui assurera les taches suivantes:

  • Détecter et démoduler le signal de télé-information.
  • Décoder les informations transmises par le compteur.
  • Mettre en œuvre un gestionnaire d'énergie (lecture et affichage de la puissance consommée).

Principe de la télé-information

Les compteurs électroniques installés par ERDF sont équipés d'un module de dialogue permettant à un équipement de communiquer avec le compteur. Cette communication est unidirectionnelle : il est uniquement possible de lire les données présentes dans le compteur. Les informations sont transmises dans un ordre imposé, périodiquement, selon un format présenté ci dessous.

Description de la liaison télé-information :Le compteur électrique envoie périodiquement un bloc de données. Un bloc comporte : . Un caractère de début : 0x02(STX) (0x..est une valeur hexadécimale) . Les données scindées en lignes . Un caractère de fin : 0x03 (ETX)


Chaque ligne se décompose ansi :

 . Début de ligne : 0x0A (LF)
 . Une étiquette (4 à 8 caractères)
 . Un espace 0x20 (SP)
 . Une donnée (1 à 12 caractères)
 . Un espace 0x20 (SP)
 . Un caractère de contrôle : la somme des caractères envoyés.
 . Fin de ligne 0x0D (CR)]
Ces données sont transmises par une liaison série 7 bits, parité paire, 1 bit de stop à 1200 bits/s. Les bits sont transmis modulés en amplitude avec une fréquence de porteuse de 50kHz : le niveau logique 1 est représenté par une tension nulle, et les niveaux 0 par un signal sinusoïdal de fréquence 50kHz
Signal de téléinformation

Pour plus de détails sur la télé-information, vous pouvez consulter les liens suivants

Téléinformation EDF

Sorties de télé-information client des appareils de comptage électroniques utilisés par ERD

Principe de la démodulation

Le découpage fonctionnel ci-dessus est le principe général que nous mettrons en œuvre. Il faut cependant avoir conscience que certains blocs peuvent être permutés, combinés ou supprimés.

Fonctionteleinfo.jpg

Redressement : La technique la plus simple de démodulation d'amplitude consiste à effectuer un redressement suivi d'un filtrage du signal modulé.

Isolation galvanique : Le fabricant du compteur électrique précise qu'en cas de défaut une tension alternative de 230VAC peut-être présente sur la liaison télé-information. L'isolation permet de séparer 2 parties d'un circuit afin d'éviter la propagation du défaut.

Gestion et décodage : Le signal de télé-information doit être décodé selon le protocole de transmission utilisé pour récupérer les données transmises. Ensuite, ces données sont exploiter pour gérer à titre d'exemple la puissance consommée.

Affichage du statut : On souhaite avertir l'utilisateur de la présence d'un signal de télé-information. Une Led rouge indiquera la présence du signal, tandis qu'une led verte clignotante indiquera la consommation d'un 1 Wh .

Alimentation : Les différents blocs du système de lecture sont alimentés grâce à un module de puissance. Ce module assure l’adaptation de la puissance disponible pour chaque blocs cités ci-dessus.


Travail à réaliser

Cahier des charges

  • Démodulation du signal de télé-information d'un compteur EDF.
  • Décodage du signal et gestion du système de lecture par une carte Arduino.
  • Indication de la présence du signal télé-info par une LED rouge clignotant deux fois chaque seconde.
  • Allumage d'une LED verte pendant 0.5 seconde pour chaque 1 Wh consommé par la charge reliée au compteur.
  • Alimentation régulée de 5V.

Objectif

L'objectif sera bien évidemment de terminer le projet de sorte qu'il réponde au cahier des charges décrit précédemment.

Pour ce faire, il conviendra de :

  • dimensionner les composants utilisés
  • tester les différents blocs fonctionnels
  • fabriquer la carte électronique
  • programmer les composants
  • valider le fonctionnement


Vous serez évalué sur la fabrication de la carte électronique, ainsi que sur un dossier qui devra :

  • détailler les différentes fonctions
  • expliquer les choix effectués (structure,composants ....)
  • utilisera des courbes ou mesures pour appuyer les explications
  • donnera une estimation (hors temps de conception) du coût de la carte électronique

Fonction à étudier

Partie 1: Téléinformation

Fonctions Description
Isolation galvanique Isoler électriquement les différentes parties du système à l'aide d'un optocoupleur.
Redressement double-alternance avec filtrage Transformer une tension alternative à une tension continue en utilisant un optocoupleur. Réduire les ondulations de la tension redressée.
Affichage et oscillateur astable Utiliser un oscillateur astable pour faire clignoter un LED rouge deux fois par seconde. S'assurer du bon fonctionnement de la 2eme LED.
Gestion et décodage Écrire un programme sur Arduino qui permet de décoder le signal de télé-info et qui permet également d'allumer une LED verte pendant 0.5 seconde à chaque fois qu'un Wh est consommé par la charge reliée au compteur.

Partie 2: Alimentation

Fonctions Description
Transformation Adapter l'amplitude de la tension d'alimentation (tension du réseau par exemple) en utilisant un transformateur
Redressement avec filtrage Transformer une tension alternative à une tension continue en utilisant un pont de diodes. Réduire les ondulations de la tension obtenue en insérant une capacité de filtrage.
Régulation Réguler la tension redressée à l'aide d'un régulateur de tension pour qu'elle soit adaptée aux différents organes du système.

Contraintes de fabrication

  • Toute la partie électronique de la télé-information doit être supportée par un shield d'une carte Arduino Uno à l’exception du transformateur qui sera à l’extérieur du shield.
  • Il faut prévoir des borniers pour relier la sortie de téléinfo et le transformateur au shield

Planning à respecter

Vous serez évalué tout au long du projet en début de séance. Ce qui vous permet de terminer en dehors des séances si vous n'avez pas achevé le travail demandé.

Une chose importante à noter : Il vous revient de saisir au fur et à mesure le schéma des différentes fonctions étudiées dès que possible.

Vous trouverez ci dessous l'avancement attendu des différentes séances. Notons également que vous devrez achever votre travail après les 7 séances si le projet n'est pas terminé.

De plus, le routage devra être fait en bonne partie en dehors des séances.

n° de séance Détail de l'attendu
1 Documentation, dimensionnement et tests
2 Documentation, dimensionnement et tests
3 Documentation, dimensionnement et tests
4 Tests + routage+ Fabrication
5 Fabrication
6 Programmation de la carte Arduino
7 Test et validation de la carte

Déroulement des séances

Séance 1

  1. Consulter la documentation de l'optocoupleur SFH620A. SFH620A Datasheet
  2. Avec cet optocoupleur, réaliser un montage inverseur qui permet de redresser le signal de téléinfo. Dimensionner les composants nécessaires.
  3. Tester le bon fonctionnement du montage en employant un signal d'entrée similaire à celui de la télé-info (8 V crête à crête, 50 kHz).
  4. Observer la tension redressée. En cas de présence d'ondulations, proposer un solution pour lisser cette tension.
  5. En utilisant une carte Arduino, lire la tension redressée comme une entrée numérique.

Séance 2

  1. Réaliser le montage d'un oscillateur astable en utilisant le composant NE555.
  2. A l'aide de la datasheet du NE555, dimensionner les composants nécessaire pour allumer une LED rouge deux fois par second.
  3. En utilisant une carte arduino, réaliser un programme qui permet de piloter l'oscillateur astable et permet également d'allumer une LED verte pendant 0.5 seconde si une condition donnée est vérifiée (par exemple la présence d'un niveau logique haut sur l'une des entrées numériques de l'arduino).


Conception du programme

Afin de mettre au point progressivement le programme, il convient de réaliser progressivement les étapes suivantes !

Nous commencerons donc par l'observation des données issues du compteur, avant de les interpréter et de commander les leds comme souhaité.

Téléinformation

Une fois démodulée, le signal émis par le compteur est une classique liaison série dont les paramètres (vitesse parité ...) sont précisées plus haut dans ce document.

Sur les cartes arduino UNO, nous disposons d'une liaison série matérielle, utilisée pour la liaison USB, et il n'est donc pas possible de l'utiliser pour communiquer avec le compteur électrique.

Il est cependant possible de créer d'autres liaisons série qui seront gérées de façon logicielle. Il est bien évident qu'une liaison matérielle demande moins de ressources processeur.

Le principe d'utilisation est donné dans le code ci dessous :

#include <SoftSerialTeleinfo.h>           // liaison série logicielle 7 bits parité paire 1 bit de stop

SoftSerialTeleinfo edf(xxx, NOT_A_PIN);   // choix de la position physique, dans l'ordre (Rx,Tx)

void setup()
{
   edf.begin(1200);                       // choix de la vitesse de transmission
}

void loop()
{
   // vous utiliserez les fonctions classiques d'une liaison série cf page arduino
}


Todo.jpg Vous allez dans un premier temps essayer de transférer les données envoyées par le compteur sur le PC

Pour cela, il convient de :

  • créer la liaison vers le compteur (cf ci dessus)
  • configurer les vitesses des 2 liaisons séries (elles peuvent être différentes)
  • attendre d'avoir un caractère à lire sur le compteur
  • lire ce caractère
  • l'envoyer sur la liaison vers le PC.

Décodage du message

Il convient maintenant d'essayer de séparer les étiquettes des données.

Pour cela, on remarquera que :

  • chaque message commence par un "retour à la ligne"
  • l'étiquette est suivie d'un "espace"
  • la valeur est suivie d'un "espace"

Todo.jpg En utilisant la méthode readBytesUntil, essayez de séparer étiquettes et données du message :

  • Attendre d'avoir au moins une ligne à lire
  • Attendre de recevoir un "retour à la ligne"
  • Récupérer l'étiquette à l'aide de "readBytesUntil"
  • Récupérer la valeur à l'aide de "readBytesUntil"
  • Convertir cette valeur en entier (cf atoi)


la bonne étiquette

Todo.jpg Il ne reste plus qu'à vérifier si l'étiquette est celle qui nous intéresse en utilisant la fonction strcmp