Suivi du nombre restant de jours TEMPO ou EJP

On va ici introduire dans le programme la possibilité de suivre le nombre de jours TEMPO ou EJP passés et à venir. Le site EdF indique qu’il y 22 jours rouges et 43 jours blancs dans une année qui commence au 1er septembre et se termine au 31 août. Il y a parallèlement 22 jours EJP entre le 1er novembre et le 31 mars.

On affichera le nombre de jours passés et le nombre de jours restant sur l’écran LCD 2×16 de notre montage.

Nous sommes partis de notre montage initial pour y introduire deux boutons poussoirs – l’un rouge, l’autre blanc – destinés à initialiser et/ou corriger le nombre de jours rouges ou blancs écoulés et le nombre de jours restant. Le nouveau schéma du montage est proposé ici. Outre les boutons poussoirs 2 résistances de 10K environ sont nécessaires. Le montage EJP ne nécessite qu’un seul bouton poussoir

statut Tempo apres decodage Pulsadis
Affichage du statut « TEMPO » après décodage du signal Pulsadis

Il faut ensuite modifier le programme écrit en GCBASIC pour y introduire la gestion des boutons poussoirs. En version « TEMPO » le programme proposé au début de ce blog a été allégé de toutes ses subroutines relatives à EJP ainsi que les routines de debug. A ce programme « aminci » on a ajouté les sous programmes permettant de gérer les deux boutons poussoirs. Un appui court sur le bouton blanc (resp rouge) affiche le nombre de jours consommés et restant de type blanc (resp rouge). Un appui long incrémente le compteur des jours consommés du bouton correspondant. A chaque fois que le nombre de jours blancs ou rouges consommés est modifié, cette variable est mémorisée dans la mémoire EEPROM de sorte qu’en cas de panne de courant, le comptage reprendra au bon endroit.

La vérification du statut des boutons est effectuée dans la boucle infinie de la fonction Startbit. Quand un bouton est pressé, on laisse passer 10ms pour s’assurer que le bouton est bien enfoncé et si l’appui dure plus de 50 x 10 ms on considèrera qu’il s’agit d’un appui long et court dans le cas contraire. On notera que du fait du positionnement dans Startbit de la fonction de vérification des boutons ceux-ci ne fonctionneront pas pensant la réception d’un signal Pulsadis.

Le code source du programme Tempo avec affichage des jours passés et restant est disponible dans la zone de téléchargement. On peut aussi y récupérer le fichier hex pour un PIC16F690.

Ce programme est également disponible (voir zone de téléchargement) pour un abonnement EJP avec le montage suivant (un seul bouton poussoir).

Analyse du fichier log

Il est possible d’imprimer sur un terminal un certain nombre d’enregistrements permettant de debugger le programme.

Ceci nécessite une connexion à un programme de terminal tournant sur PC via une interface TTL/USB. Sous windows je recommande realterm, sous linux minicom. Une fois la connexion effectuée, paramétrer le programme de communication sur 19200 bauds/8 bits/no parity/1 stop bit. Il est également possible d’enregistrer le fichier log (onglet capture sous realterm) et de faire précéder les enregistrements d’un « timestamp » qui donnera l’heure précise de réception du signal.

Le programme chargé dans le microcontroleur devra, quant à lui, avoir été compilé avec l’option debug=1 (voir code source dans la page de téléchargement).

Voilà ce que cela donne pour l’option Tempo (i.e. tempo=1)

Tempo_log

Deux lignes sont fournies pour chaque signal Pulsadis détecté: La première rappelle la valeur de la variable target qui initie la valeur du timer1 et qui détermine ainsi la durée entre deux relevés de tension sur l’entrée analogique. Il y a dans la fonction Detect175Hz 28 relevés sur 40ms soit environ 1,428ms entre chaque relevé (mais il faut tenir compte, pour arrêter la meilleure valeur de target, du temps nécessaire aux instructions du programme et en particulier des instructions adread. Dans l’exemple ci-dessus target est défini à 62700. Suivent ensuite le nombre de trames détectées pour le premier signal de déclenchement de la trame Pulsadis (en général 24 ou 25), suivi de 8 x 5 signaux de la trame proprement dite (40 signaux au total) dont la valeur peut varier entre 0 (pas de signal) et 25 (25 indiquant que la fréquence 175Hz a été détectée sur 25 x 40 ms = 1 sec). La seconde ligne transforme le signal précédent en 0 ou 1, affiche la valeur du test de cohérence sur ces signaux (1=Ok) et les valeurs qui seront affichées sur l’écran LCD. Dans l’exemple ci-dessus on voit bien le changement heures creuses/heures pleines à 6h et 22h (surlignement jaune), le début de la journée Tempo à 6h (la variable « Demain » devenant alors indéfinie) et la variable d’annonce de la couleur du lendemain (« Demain ») qui est initialisée à 20h (soulignement bleu).

Objectif du projet

Projet permettant de détecter les signaux Pulsadis généré par ErDF à partir d’un microprocesseur

L’objectif de ce projet est de proposer un montage permettant de détecter les signaux Pulsadis envoyé par ERDF. Ces signaux permettent à EdF de gérer ses tarifications spécifiques comme le contrat EJP  (qui n’est plus commercialisé) ou le contrat Tempo (qui l’est encore). Ces signaux sont codés sur 40 impulsions à partir d’un signal à 175Hz qui se superpose au 50Hz secteur avec une amplitude de l’ordre de 2% du courant secteur.

Si vous disposez d’un compteur électronique, les informations peuvent être lues via le signal Teleinfo en sortie du compteur et le montage proposé ici ne présentera pas d’intérêt. Par contre, si votre compteur n’a pas une telle sortie, est éloigné ou si vous souhaitez vous affranchir de ce dernier vous pourrez trouver ce dispositif utile.

On trouvera sur le site de Matthieu Benoit une explication détaillée du fonctionnement du signal Pulsadis et son application au décodage des signaux EJP. Une variante « Tempo » est également disponible ici. On peut également trouver sur le net un montage à base de PIC16F690 avec le programme C associé mais ce dernier est d’une lecture complexe. Enfin un autre montage est proposé par Thierry Eggen à partir d’un processeur Parralax. Le code fourni pour ce dernier a inspiré le code utilisé ici.

La signification des signaux Pulsadis est donnée quant à elle à la page 125 du document de référence EdF HN 96-S-65 et disponible ici.


Warning: realpath(): open_basedir restriction in effect. File(/var/www/sdb/8/9/gkarchives/tmp) is not within the allowed path(s): (/var/www/sda/0/7/pulsadis) in /var/www/sda/0/7/pulsadis/wordpress/wp-includes/functions.php on line 2102