CHAUFFAGE SOLAIRE
Régulation autour d'un PIC 16F887

Par David Joguet et Sylvain Lichtenberger  en Savoie
 
sylvain.lichtenberger chez laposte.net




Ce document est téléchargeable au format .doc ici :

http://sylvain.lichtenberger.perso.sfr.fr/ChauffageSolaire.doc
Pour vous amuser avec le programme
Sources du 16F887
Source du gradateur

Si vous avez déjà installé le programme, une simple mise à jour suffit.
La dernière version est ici
Après avoir exécuté le setup, lancez le programme et cliquez rapidement sur la croix à côté du bouton de passage en supervision.
Sinon, le programme va basculer en supervision et comme il ne trouvera pas de COM pour dialoguer avec l’API, il vous mettra un message le demandant.


Introduction

Ce chalet construit entièrement par son propriétaire est situé à un peu plus de 1200m d’altitude.
Le cahier de la charge consiste en un pilotage de l’installation solaire pour tirer de cette source d’énergie le meilleur de ce qu’elle peut fournir pour le chauffage et l’eau chaude sanitaire.
Il y a pour ce faire 8 panneaux solaires totalisant environ 20m² de surface. Ils sont orientés plein sud et fortement inclinés du fait de la nécessité d’optimiser la récupération de chaleur au plus fort de l’hiver quand le soleil est, même à son zénith,  assez bas sur l’horizon.


Installation

Le chauffage est assuré par un plancher chauffant. Un chauffage bois est prévu en relais quand le soleil sera insuffisant. L’eau chaude sanitaire peut être chauffée par le soleil ou par un chauffe eau électrique en cas de besoin.

Un ballon de 1000 litres assure le stockage de l’énergie solaire. Il est chauffé par un serpentin venant des panneaux, un circulateur à vitesse variable assure le transfert des calories.
Un autre serpentin en récupère l’énergie nécessaire à l’eau chaude sanitaire. Une électrovanne prendra l’eau soit chauffée dans le ballon soit dans le chauffe eau électrique selon les disponibilités en calories.

L’eau dans le ballon peut circuler via une vanne 3 voies et un second circulateur dans le plancher chauffant.

Enfin, 9 sondes PT1000 suivies de convertisseurs fourniront les informations de températures en divers endroits pour permettre le pilotage.

Les sondes

Selon leur emplacement, l’étendue de leurs mesures est adaptée au besoin.
Les convertisseurs sont alimentés en 15V. Ils fournissent une tension comprise entre 0 et 10V selon la température qu’ils relèvent (Source : http://apper-solaire.org/Pages/Electronique/Electro/conv_pt1xxx_10v/PT100new3_1.pdf).



Le pilotage

Le pilotage est assuré par un automate programmable (API) qui pourra soit fonctionner en autonome (supervision basique dite « de secours ») soit en liaison avec un PC sur lequel tournera un programme de supervision donnera au pilotage toute sa souplesse et toute sa richesse.
La liaison entre l’API et le PC est assuré par un câble USB qui réplique grâce au chip FT232RL une image COM (RS232) sur le PIC

L’API

Il est organisé autour d’un PIC 16F887 (Microchip) de 40 broches. C’est un composant qui offre les multiples ressources nécessaires  à ce pilotage.

Neuf de ses entrées analogiques reçoivent les infos sondes.
Trois sorties sont dévolues à 3 LEDs indicatrices de fonctionnements particuliers.
Quatre sorties pilotent la vitesse du circulateur panneaux
Deux sorties pilotent la vanne trois voies du plancher chauffant
Une sortie pilote la vanne eau chaude sanitaire
Deux sorties peuvent actionner des volets de couverture des panneaux.

La vitesse du circulateur panneaux est contrôlée par un gradateur construit autour d’un PIC 12F675. C’est un composant à 8 broches, 4 entrées reçoivent l’information de la vitesse à fournir, une reçoit l’information passage par 0 du 220 volts secteur, une sortie commande via un optocoupleur le triac d’alimentation du circulateur.


Le pilotage par le PC

Le PC lit les sondes à travers l’API et lui retourne les actions à effectuer.
Pour ce faire, un programme de gestion « ChauffageSolaire.exe » tourne en permanence sur le PC. Un certain nombre de paramètres de configuration sont enregistrés dans un fichier « ChauffageSolaire.cfg ». Ce fichier est dans le même répertoire que le programme, normalement C :\Program Files\ChauffageSolaire.

Le PC enregistre toutes les mesures et tous les événements dans un fichier journal « ChauffageSolaire.jrnl ». Il sera ainsi possible de tracer le fonctionnement pour mettre en évidence un dysfonctionnement ou optimiser la supervision.

Il y a trois fenêtres de gestion :

La fenêtre pilotage

 

En fonctionnement manuel, elle permet un certain nombre de commandes directes nécessaires au test du système. Le thermostat d’ambiance est répliqué dans la fenêtre synoptique. C’est la température intérieure désirée.
Lors du lancement du programme, le passage en supervision se fait automatiquement au bout de 10 secondes sauf si on a cliqué sur le bouton « Passer en supervision ».
Un clic sur le suivi (ici :  ) ouvre une liste déroulante de tous les événements.
Les mesures se font ici toutes 20 secondes  . C’est le temps entre deux mise à jour des courbes.

La fenêtre Courbes

Dans le graphe supérieur, les températures. Dans le graphe inférieur, les évolutions des actionneurs. Un clic dans le graphe supérieur donne les valeur et l’instant pour ce clic.
Il est possible de faire un zoom - ou + et de se déplacer dans le temps :




Un clic sur une des sondes de la liste peut selon le choix tracer la courbe en gras, en pointillé ou la supprimer de l’affichage (ici sonde 4 en gras).
A noter que ces courbes ont été réalisées avec la version 2 de l’API qui ne comportait pas encore de variateur de vitesse pour le circulateur et qui était équipée des relais remplacés dans la version 3 par des triacs.

La fenêtre synoptique



C’est celle qui rend le mieux compte du fonctionnement de l’installation.

Les valeurs de chaque sonde y sont représentées. Lors du fonctionnement manuel, il est possible de les faire évoluer à la souris soit avec les boutons choix et températures, soit directement sur chacun des thermomètres représentatifs des sondes.

On constate que si V1 est une vanne tout ou rien, V2 est une vanne analogique qui permet de prendre une partie seulement de l’eau chaude du ballon pour établir dans le plancher la température ad-hoc. Toutefois, cette vanne n’étant pas équipée d’un potentiomètre de recopie, elle est gérée par pas et le bouton qui lui est affecté peut être lu mais pas actionné. Par contre, la vitesse du circulateur P1 est ajustée à la demande par le bouton « Vitesse P1 ».

Le programme de gestion

C’est un peu plus de 2000 lignes de programme, c’est écrit en VB6 avec quelques contrôles ocx supplémentaires.
C’est donc complexe et ça fait intervenir un certain nombre de paramètres classés en plusieurs catégories :
L’accès à ces paramètres se fait via l’édition du fichier de configuration.


Les paramètres d’affichage, position des thermomètres et des voyants se donnent en % de la largeur ou de la hauteur d’écran.
Les températures de pilotage sont à ajuster pour obtenir un fonctionnement optimal de la gestion.
Le calibrage des sondes est à mettre à jour s’il est constaté une différence entre la valeur réelle (mesurée au thermomètre par exemple) et la valeur indiquée dans le synoptique ou sur les courbes. Le petit graphique établi pour S1 donne la manière d’effectuer ce calibrage. Le gain se corrige en ne jouant que sur Y0 ou Y1, l’offset en faisant varier identiquement Y0 et Y1.
Le port COM (ici 9) est le N° de port réservé par le chip FT232RL (USB-RS232).

Les données EEPROM

Les PICs sont dotés de chiens de garde (watchdogs) qui entrent en jeu un peu plus de 3 secondes après un plantage programme.
Le PIC 12F675 contient en EEPROM les valeurs de tension à fournir au circulateur pour chacune des 14 vitesses possibles. Pour programmer cette EEPROM, un fichier « ChauffageSolaire.eep » contient les valeurs de chacune de ces vitesses. La commande  demande le nom du fichier en question.Le PIC 16F887 a quant à lui une possibilité de gestion du système en autonome.
Cette gestion (simplifiée) sera obtenue en basculant le switch Auto/PC en position Auto.
Elle pourra se mettre également automatiquement en route si l’API ne reçoit plus de demande pendant au moins 4 minutes.

Quelques paramètres de fonctionnement de l’API en autonome sont également écrits dans l’EEPROM de ce PIC et peuvent être mis à jour comme l’EEPROM du 12F675 mais avec un fichier qui par défaut a le nom « ChauffageSolaire.eed ».

Consultez les annexes pour voir les formats de fichiers.

ANNEXES

I - Gestion par le PC

Traitement de P1 (Circulateur panneaux solaires)

Si S1 > consigne S1 Max, mise en route de P1 plein pot

Sinon, si S2-S3 >5,  le gradateur P1 tourne à 0,6x(S2-S3) -3

Si  S2-S3 <5, arrêt de P1

Si S1 > S5,  et S1 < consigne S1 max mise en route de P1 s’il est à l’arrêt

Si P1 à l’arrêt, vitesse max durant 4 secondes pour le décollage avant De mettre en vitesse programmée.

Traitement de P4 (Volets)

Si S1>90°, fermeture des volets
Si S1<80° et S5<80° , ouverture des volets

Traitement de V1 (Vanne eau chaude sanitaire)

Si S4 > consigne d’ouverture de V1 + 5, ouverture de V1
Sinon, si S4 < consigne d’ouverture de V1, fermeture de V1

Il y a donc une hystérésis de 5°

Traitement de V2 (Vanne plancher chauffant)

Si S7 > consigne valeur max S7, fermeture d’un pas de V2.

Sinon:
Traitement de P2  (Circulateur plancher)

Si S5 > consigne de démarrage de P2, et si S5>S8 mise en route de P2
Si S5 < consigne de démarrage de P2, arrêt de P2
Si S5 = consigne de démarrage de P2, ne rien faire
Si la case « Eté » est cochée, arrêt de P2


II - Gestion par l’API

Si l’API ne reçoit plus de demande de la part du PC pendant 4,5 minutes (ou si le switch auto/reset est en position auto), il passe alors en fonctionnement autonome. C’est un fonctionnement simplifié qui utilise alors les paramètres inscrits dans son EEPROM par la commande « Ecriture de l’EEPROM API » du programme de gestion du chauffage.
Ces paramètres sont pris dans un fichier ChauffageSolaire.eed.
Le premier paramètre est le nombre de secondes entre deux traitements des sondes (de 0 à FF en hexa, soit de 0 à 255 en décimal). A chaque traitement, les trois LEDs font un rapide chenillard pour indique ledit traitement.
Si les trois LEDs clignotent 3 fois rapidement, on est en présence d’un reset dû à un démarrage, une action sur le switch Reset ou à un Reset par le chien de garde (watchdog) qui intervient si un plantage PIC dure plus de 3,5 secondes.
Les paramètres suivants sont les températures consignes. Ces températures sont à donner  sous forme d’un nombre hexadécimal compris entre 0 et 3FF (0 et 1024 en décimal).
Pour chaque paramètre température, il y aura donc 2 lignes décimale traduction des deux octets constitutifs de la température.
Exemple : Paramètre de surchauffe.
La sonde S1 mesure une température de -20 à 120°.
Elle délivre donc une valeur 0 à 0° et 3FF (1024 en décimal) à 120°
Sa valeur en décimal à la température T est : (1024/140)T +146
Pour 90°, ça donne 804 en décimal soit 0324 en hexa.  Nombre constitué de deux octets 03 et 24.
03 en hexa = 3 en décimal et  24 en hexa = 36 en décimal.
On mettra donc 3 et 36 dans les deux lignes paramètre de surchauffe.

Traitement de P1 (Circulateur panneaux solaires)

Si S1 > paramètre surchauffe (2,3) ou si S1 > S5 mise en route du circulateur (vitesse maxi).
Si S1 < S5, arrêt du circulateur

Traitement de P4 (Volets)

Si S1> paramètre surchauffe (2,3) , fermeture des volets
Si S1< > paramètre fin de surchauffe (4,5), ouverture des volets

Traitement de V1 (Vanne eau chaude sanitaire)

Si S4 > paramètre ouverture V1 (6,7), ouverture de V1
Sinon, si S4 < paramètre ouverture V1 (6,7), fermeture de V1

Traitement de V2 (Vanne plancher chauffant)

Si S8 > Paramètre Thermostat (8,9), fermer V2
Sinon   si S7 > Paramètre Température plancher d'Ouverture V2 (10,11),  fermer V2
si S7 < Paramètre Température plancher de fermeture V2 (12,13), ouvrir V2

Traitement de P2  (Circulateur plancher)

Mise en marche si S4>S8 et S8<S9

III – Exemple de fichier paramètres API

-
#Fichier EEPROM API
20
3
36
2
219
2
0
2
102
2
147
2
220
255
255
255

-------------------------
Pour mémoire :

Donnée 1 : Intervalle de mise à jour en secondes
Donnée 2 : Max S1 - S=(1024/140)t +146 - 0x324 pour 90° 0x24=36
Donnée 3 :
Donnée 4 : Fin de surchauffe - 0x2DB pour 80°
Donnée 5 :
Donnée 6 : Ouverture de V1 - S=(1024/100)t : 50°->512=0x200
Donnée 7 :
Donnée 8 : Thermostat : Fermeture de V2 - S=(1024/70)t + 293 (-20/50°) : 22°-> 0x266 - 0x66=102
Donnée 9 :
Donnée 10 : Température plancher d'Ouverture V2 - S=(1024/70)t + 293 (-20/50°) : 25°-> 0x293 - 0x93=147
Donnée 11 :
Donnée 12 : Température plancher de Fermeture V2 - S=(1024/70)t + 293 (-20/50°) : 30°-> 0x2DC - 0cDC=220
Donnée 13 :
Donnée 14 :
Donnée 15 :
Donnée 16 :
-------------------------
La première ligne doit obligatoirement être :
#Fichier EEPROM API

Aucune ligne blanche entre les données.

III – Exemple de fichier pour le gradateur P1

#Fichier EEPROM
235
236
237
238
239
240
241
242
243
245
248
250
252
255
255

#Fin


Exemples de valeurs :

da 0xDC ; =220  Pour vitesse 1 - 24V
da 0xDE ; =222 38V
da 0xE0 ; =224 53V
da 0xE2 ; =226 70V
da 0xE4 ; =228 88V
da 0xE5 ; =229 98V
da 0xE6 ; =230 106V
da 0xE8 ; =232 125V
da 0xEA ; =234 140V
da 0xEB ; =235 150V
da 0xED ; =237 170V
da 0xEF ; =239 180V
da 0xF2 ; =242 203V
da 0xFF ; =255 230V

La première ligne doit obligatoirement être :
#Fichier EEPROM

Aucune ligne blanche entre les données.

IV – Circuit imprimé






V – Quelques photos

Ces photos ont été prises au cours de l’installation. L’API était encore la version 2 à relais.






retour sommaire partie pratique