Solari-home

solaire thermique & économie d'énergie

 
 

  Les fonctions de base du pilotage solaire

Dernière MAJ le 21/02/09 : ajout de certains programmes à télécharger (il en manque encore)

Un automate programmable comme le Millenium peut piloter des dispositifs complexes.
On peut notamment lui faire piloter une installation solaire.

Par rapport à une régulation du commerce "toute faite", un automate programmable apporte une flexibilité qui permet d'adapter le pilotage à des installations très spécifiques. L'automate ne sera pas saturé avec votre seule installation solaire (mais cela dépend de sa capacité) : vous pourrez lui faire piloter d'autres dispositifs (le chauffage, l'installation de récupération d'eau de pluie, etc.)

Dans les rubriques qui suivent, je vais détailler les fonctions fondamentales d'une régulation solaire et comment on peut les programmer dans un Millenium.

Les programmes donnés pour chaque fonction ne sont pas l'unique manière de la programmer mais indiquent un moyen simple. Les programmes de ces différentes fonctions peuvent être combinés pour obtenir le pilotage total de votre installation.
Ce sont en quelque sorte des briques que l'on peut combiner pour obtenir un programme complet contenant toutes les fonctions nécessaires.

Le gros avantage du Millenium est que l'on peut utiliser le logiciel de programmation Crouzet (qui tourne sur PC) sans avoir d'automate : un puissant mode de simulation est disponible et un programme peut être testé sur le PC, sans automate et sans l'environnement qu'il pilote.
Cela permet de progresser dans la programmation et de vérifier que l'on arrivera à écrire le programme souhaité avant d'acquérir l'automate.

Les seuils de température, les durées de temporisation et différents paramètres sont donnés à titre d'exemple et ils devront être ajustés sur chaque installation dans le cadre du réglage initial.

Les fonctions de base

La boucle solaire

La limitation de température

L'affichage des températures

Les maxima des températures

Le cumul du temps de fonctionnement

La modification conviviale des paramètres

Le pilotage complet d'un CESI

Les fonctions d'un chauffage solaire

L'installation avec deux ballons

La commande d'une vanne 3-voies de chauffage

Le relais d'un thermostat d'ambiance

Une entrée Millenium avec un interrupteur simple

La vanne de mélange

La loi d'eau

Les fonctions avancées

Le dégommage de circulateur

La puissance instantanée

Le compteur d'énergie

Le refroidissement nocturne

Le bypass sur la boucle solaire

La circulation interdite si les capteurs sont trop chauds

La circulation antigel

La baisse volontaire du rendement

Le mode vacances

L'installation avec deux champs de capteurs

Mémoriser certains événements

Le pilotage d'un circulateur à plusieurs vitesses


La boucle solaire

C'est la fonction indispensable à toutes les installations puisqu'elle pilote le circulateur de la boucle solaire.
Elle utilise la température en haut des capteurs solaires et celle du ballon de stockage pour décider de mettre en marche ou d'arrêter le circulateur et donc la collecte de chaleur solaire.

Le Millenium a donc deux entrées analogiques reliées à deux sondes de température mesurant l'une la température en haut des capteurs solaires, l'autre la température en bas du ballon solaire à l'endroit de l'échangeur solaire.
Le circulateur est commandé par une des sorties relais.

On veut que le Millenium agisse comme suit :

  • Si le capteur solaire est plus chaud que le ballon solaire, mettre en route le circulateur solaire
  • Si le capteur solaire est moins chaud que le ballon solaire, arrêter le circulateur solaire

Il suffirait donc d'une simple comparaison entre les deux températures pour commander le circulateur solaire.

En pratique, il y a des points importants à prendre en compte :

  1. Quand les deux températures sont très proches, de petites variations de températures peuvent faire osciller entre les deux cas, et conduire le Millenium à mettre en marche puis arrêter puis remettre en marche, etc. le circulateur rapidement sur une courte période.
  2. D'autre part, la mise en marche ou arrêt du circulateur influe sur la température des capteurs solaires :
    • Quand on met en marche le circulateur solaire, on va prendre de la chaleur aux capteurs solaires, ce qui va les refroidir jusqu'à une température d'équilibre plus basse, ce qui peut suffire à les faire passer sous le seuil de fonctionnement du circulateur.
    • Quand on arrête le circulateur solaire parce que les capteurs solaire ne sont plus assez chauds, l'arrêt de prise de chaleur va les faire monter en température, ce qui peut suffire à les faire passer au dessus du seuil de fonctionnement du circulateur.
  3. Pour qu'il y ait transfert de chaleur dans le serpentin du ballon solaire, il faut que la boucle solaire soit plus chaude de quelques degrés que le contenu du ballon solaire.
    Il ne faut donc pas comparer la température des capteurs à celle du bas du ballon solaire, mais à une température supérieure de quelques degrés (minimum 5).

Si une seule température est utilisée pour à la fois mettre en route et arrêter le circulateur, celui-ci va osciller entre arrêt et marche.
En effet, le caloporteur est immobile dans les capteurs, il chauffe donc facilement.
Dès que le caloporteur commence à circuler, les capteurs reçoivent du caloporteur froid en entrée et donc leur température baisse. Ce qui peut conduire à passer sous la température du bas du ballon et donc arrêter le circulateur.
L'arrêt du circulateur fait que les capteurs chauffent alors un liquide immobile et le font monter facilement en température, ce qui va faire redémarrer le circulateur.

Le phénomène est illustré dans le graphique ci-dessous :

graphe circulateur sans hysteresis

Pour éviter ce problème, on utilise deux seuils :

  • un seuil de mise en route du circulateur, le plus haut des deux, typiquement égal à la température du bas du ballon solaire plus environ 10°C
  • un seuil d'arrêt du circulateur, égal à la température du bas du ballon solaire plus environ 5°C.

(les deux écarts sont des valeurs indicatives et devront être ajustés)
Techniquement, on dit qu'on introduit de l'hystérésis dans la commande du circulateur.

Le graphique ci-dessous illustre l'impact positif de l'hysteresis sur la commande du circulateur :

graphe circulateur averc hysteresis

Le programme est le suivant :

programme boucle solaire

 

Télécharger ce programme

Quelques détails sur les blocs à paramétrer

La fonction des blocs GAIN dans le programme est de convertir les valeurs données par les sondes en nombre plus significatif.
En effet, une entrée analogique du Millenium convertit une tension de 0 à 10 V en entier de 0 à 1023. C'est cet entier qui sera en sortie de chacun des deux blocs de température.

Mais à quelle température réelle correspond ce nombre entier ?

Et bien, le Millenium ne le sait pas. Il dépend des caractéristiques de la sonde de température et de l'adaptateur qui fait qu'une température est convertie en tension de 0 à 10 V.
Seul vous le savez : cela fait partie des caractéristiques de la sonde et de l'adaptateur que vous avez achetés.

On va supposer que vos sondes de température sont des sondes dont l'intervalle de température est de -10°C à +150°C. La tension aux bornes de l'adapteur de la sonde est de 0 V pour -10°C et 10 V pour +150°C. Et la valeur donnée par l'entrée analogique du Millenium sera donc 0 pour -10°C et 1023 pour +150°C.

Dans le Millenium et sur son affichage, vous n'allez pas recalculer en permanence à quelle température correspond ce nombre entre 0 et 1023. C'est beaucoup plus facile si le Millenium travaille directement avec les températures réelles.

C'est exactement ce que font les blocs GAIN dans ce programme : ils convertissent la valeur reçue de l'entrée analogique en un entier égal à la température mesurée par la sonde. Dans le programme, vous allez donc pouvoir ignorer qu'il y a une conversion de la température en tension (dans la sonde), de la tension en nombre de 0 à 1023 (dans le convertisseur analogique/numérique du Millenium), et de ce nombre en une valeur équivalente à la température mesurée (dans le bloc GAIN).

Dans un bloc GAIN, on définit trois constantes A, B et C. Un bloc GAIN prend son entrée, la multiplie par A, puis divise le résultat obtenu par B puis ajoute C au résultat obtenu.

Il faut donc définir les valeurs A, B et C pour nos sondes afin que la sortie du bloc GAIN soit l'entier correspondant à la température mesurée par la sonde.

Comment calculer A, B et C ?

A est  l'intervalle des températures que couvre la sonde. Dans notre cas, la sonde couvre un écart de 160 degrés (150-(-10)). Donc A = 160.
B est l'intervalle des valeurs d'entrée, ce sera toujours 1023. Donc B = 1023.
C est la température quand l'entrée vaut 0. Dans notre cas, c'est -10, donc C = -10.

Testons sur quelques valeurs pour vérifier les valeurs trouvées.

Quand la température est -10°C, nous avons vu que l'entrée analogique donne 0. La sortie du bloc GAIN sera alors 0 x 160 / 1023 -10 = -10. C'est correct.

Quand la température est +150°C, nous avons vu que l'entrée analogique donne 1023. La sortie du bloc GAIN sera alors 1023 x 160 / 1023 -10 = 150. C'est correct.

Quand la température est au mileu de la gamme de mesure de la sonde (70°C), l'entrée analogique va donner la moitiée des valeurs possibles, soit 512. La sortie du bloc GAIN sera alors 512 x 160 / 1023 -10 = 70. C'est encore correct.

Ca marche, nous pouvons entrer les valeurs A, B et C dans les blocs GAIN de notre programme. Je suppose ici que les deux sondes sont identiques. Si ce n'est pas le cas, le calcul des valeurs A, B et C devra être fait pour chaque modèle de sonde.

Pour les blocs NUM, le paramétrage est plus simple, puisqu'il suffit de specifier quel écart en température nous souhaitons :

  • Pour l'écart définissant le seuil d'arrêt, nous pouvons mettre 5, ce qui signifie que le Millenium arrêtera le circulateur quand la température des capteurs descendra sous la température du bas du ballon plus 5°C.
  • Pour l'écart définissant le seuil de mise en marche, nous pouvons mettre 10, ce qui signifie que le Millenium mettra en marche le circulateur quand la température des capteurs montera au dessus de la température du bas du ballon plus 10°C.

J'ai indiqué que les écarts des seuils marche et arrêt pourraient être ajustés sur l'installation. Nous allons dans un premier temps les rendre modifiables via la face avant du Millenium. Ainsi leur modification ne nécessitera pas la modification et le téléchargement d'un nouveau programme.

Pour cela, dans la boite de dialogue NUM, il faut cocher "Modification autorisée".
A noter que pouvoir modifier les paramètres des blocs GAIN n'a pas d'intérêt, on ne permet donc pas leur modification à  partir de la face avant.
Il faut également noter les numéros de blocs modifiables et leur signification.

Lorsque le programme s'éxécute sur le Millenium, à partir de l'affichage des entrées et sorties, il faut procéder comme suit :

  1. Presser OK puis ESC en même temps, le Millenium affiche trois lignes ARRET, PARAMETRES, DIVERS.
  2. Sélectionner PARAMETRES avec le touche +- puis valider par OK.
  3. Le Millenium fait choisir le bloc à modifier parmi tous les blocs modifiables du programme. Faire défiler les numéros de bloc avec les touches + - et sélectionner avec OK.
  4. Pour un bloc NUM, le Millenium indique VALEUR CONSTANTE et permet de la modifier avec + et -, puis de valider par OK.

Dès la modification faite, le programme du Millenium utilise la nouvelle valeur.

A noter : il existe heureusement une méthode moins rustique et moins source d'erreurs pour changer la valeur des paramètres. Elle est décrite plus loin.

Haut de page


La limitation de température

Le programme de la section précédente va laisser en marche le circulateur tant que de la chaleur solaire peut être captée et transférée au ballon solaire.
Il est fortement recommandé d'éviter de porter un stock d'eau solaire à trop haute température, notamment pour un ballon ECS solaire si l'eau est calcaire (la chaleur solaire peut même faire bouillir l'eau d'un ballon).
Cette section va expliquer comment limiter le chauffage du stockage solaire à une certaine température.

Nous allons définir une consigne de température maximale pour notre ballon solaire. Lorsque cette température sera atteinte, le circulateur s'arrêtera et ne se mettra plus en marche, tant que le bas du ballon ne descendra pas sous cette consigne.

Nous n'avons pas de sonde de température en haut du ballon or c'est en haut que l'eau est la plus chaude (plus l'eau est chaude, plus elle est légère).
En pratique, pendant la chauffe solaire d'une installation solaire standard, le haut du ballon ne peut pas être chauffé à haute température si le bas est encore froid. En effet, la puissance solaire permet d'élever l'eau du bas du ballon de quelques degrés (par exemple 10°C).
Tant que le bas du ballon est froid, le solaire transforme cette eau froide en eau tiède (qui monte dans le ballon). Ce n'est que lorsque tout le bas du ballon est tiède (et que donc tout le ballon est tiède) que le le ballon va monter en température.
Il suffit donc de limiter la température du bas du ballon pour limiter celle du haut.

Le dessin suivant schématise le remplissage progressif d'un ballon solaire, en l'absence de tirage d'eau chaude :

remplissage ballon solaire

On voit également qu'il est important qu'un ballon solaire ne soit pas trop grand par rapport à l'énergie collectable par les capteurs solaires.
Si c'est le cas, on risque d'avoir beaucoup d'eau tiède le soir, alors que l'on veut de l'eau chaude, même en moins grande quantité.

Une simple comparaison de la température du ballon avec celle de la la valeur maximale pourrait suffire mais nous voulons éviter les oscillations. Nous utilisons donc un TRIGGER pour différencier les seuils d'arrêt et de marche :

  • Nous interdisons au solaire de chauffer le ballon quand la sonde de bas de ballon atteint la température maximale.
  • On peut à nouveau chauffer le ballon si le bas du ballon est 4°C (valeur arbitraire) sous la température maximale.

Dans le programme, nous devons donc soustraire une constante à la valeur d'un bloc NUM qui définit la température maximale. Nous pourrions utiliser un bloc +- et un autre bloc NUM pour définir la constante à soustraire.
Nous utilisons un bloc GAIN directement, ce qui permet d'utiliser un bloc de moins. On paramètre A=1, B=1 et on fixe C à l'opposé de la constante (-4 pour un écart de 4°C).

Le programme :

programme limitation température

 

 

 

 

 

 

 

 

Télécharger ce programme

La température maximale est un paramètre que l'on voudra pouvoir modifier sur l'installation. On rend donc le bloc NUM correspondant modifiable.
Par contre, pouvoir modifier les écarts par rapport à la valeur maximale pour le bloc TRIGGER n'a pas d'intérêt. Il est donc inutile de pouvoir modifier les paramètre du bloc GAIN.

Haut de page


 L'affichage des températures

Pour des raisons informatives ou de diagnostic (bogue dans le programme ou problèmes divers), il est important de pouvoir obtenir les températures dans l'installation telles que mesurées par l'automate programmable.
Cette fonction permet d'afficher sur l'écran du Millenium les températures actuelles mesurées par les sondes.

Nous supposons que l'installation est classique et qu'elle possède deux sondes, l'une en haut des capteurs, l'autre en bas du ballon solaire.
Nous voulons que les températures mesurées soient l'affichage par défaut du Millenium quand le programme est en fonctionnement.

Nous utilisons un bloc TEXT qui permet de définir un écran de Millenium complet, contenant du texte et jusqu'à 4 valeurs à afficher.

Voici notre programme de boucle solaire, juste modifié pour l'affichage des températures :

programme affichage températures

Télécharger ce programme

Le bloc TEXT est paramétré comme ci-dessous : 

Et l'écran du Millenium quand le programme s'exécute :

face avant affichage températures

A noter : Lorsque cet écran est affiché :

  • On peut voir l'écran par défaut du Millenium (celui donnant l'état des entrées/sorties) en maintenant appuyée la touche ESC.
  • On peut accéder au menu du Millenium en appuyant sur OK puis ESC en même temps.

Haut de page


Les maxima des températures

Il peut être utile d'archiver les températures extrèmes mesurées par les sondes. Cette fonction permet de gérer ces valeurs maximales, de les afficher et de les ré-initialiser à la demande.

Nous allons utiliser le bloc MIN MAX. Ce bloc mémorise les valeurs minimales et maximales de son entrée, tant qu'il n'est pas réinitialisé. Il positionne deux sorties aux valeurs minimale et maximale mémorisées.

Il nous faut ajouter deux choses :

  • un moyen d'afficher les valeurs maximales actuelles
  • un moyen de remettre à zéro les valeurs maximales mémorisées

Pour l'affichage, nous allons utiliser l'affichage de température de la section précédente que nous allons simplement modifier pour afficher en plus nos deux valeurs maximales.

Pour la remise à zéro, nous allons utiliser le bouton B de la face avant.

Cela donne le programme suivant :

programme max températures

Télécharger ce programme

Avec le bloc TEXT modifié comme suit :

paramètres TEXT max températures

Quand le programme s'éxécute, le Millenium affiche l'écran suivant : 

face avant max températures

 A noter : nous avons coché la case "Sauvegarde sur coupure secteur" des blocs MIN MAX, ce qui permet de conserver nos valeurs maximales même en cas de coupure de l'alimentation du Millenium.

Haut de page


Le cumul du temps de fonctionnement

Lorsque vous êtes absent, l'installation solaire continue (heureusement) de fonctionner.
A votre retour (du travail, de week-end, de vacances), vous voulez vérifier si l'installation a fonctionné et combien de temps.
Cette fonction permet de cumuler le temps de fonctionnement du circulateur solaire, par jour et par mois.

Nous allons utiliser le bloc PRESET H-METER qui permet de cumuler le temps pendant lequel son entrée est à 1.
Ce bloc peut aussi mettre à 1 sa sortie quand un temps donné est atteint, mais nous n'utiliserons pas cette possibilité.
Un bloc PRESET H-METER sera utilisé pour chaque cumul : journalier et mensuel.

Pour la remise à zéro des blocs PRESET H-METER, nous allons utiliser des blocs TIME PROG qui positionneront les entrées "Remise à zéro" à 0h00 tous les jours pour le cumul journalier et à 0h00 le 1er de chaque mois pour le cumul mensuel.

Il faut pouvoir afficher ces cumuls de temps à la demande. En effet, ce ne sont pas les informations les plus importantes à afficher (l'affichage des températures des sections précédentes l'est bien plus).
Nous allons donc utiliser un autre bloc TEXT, qui s'affichera quand on appuiera sur la touche A.

Voici le programme :

programme cumul temps fonctionnement

Télécharger ce programme

Les deux blocs PRESET H-METER sont paramétrés comme suit (notez que nous cochons la case "Sauvegarde sur coupure secteur" afin d'éviter de perdre nos temps cumulés en cas de perte d'alimentation du Millenium) :

paramètres HMETER cumul

Le bloc TIME PROG chargé de la remise à zéro quotidienne est paramétré comme ci-dessous.
A noter que l'on programme le plus petit intervalle pendant lequel la sortie peut passer à 1 (1 minute)
La sortie du bloc sera à 1 entre 0h00 et 0h01 tous les jours.

paramètres HMETER day cumul

Le bloc TIME PROG chargé de la remise à zéro mensuelle est paramétré comme suit :

paramètres TIME PROG mois cumul

Enfin le paramétrage du bloc TEXT affichant les cumuls :

paramètres TEXT cumul

Quand on appuie sur le bouton A, l'écran suivant s'affiche.

face avant cumul


L'affichage n'est pas élégant : le bloc TEXT n'autorise pas le formattage des nombres et ceux-ci sont toujours affichés sur au moins 5 caractères.
Pour réaliser un meilleur affichage, il faut utiliser des blocs DISPLAY, qui permettent de mieux définir le format des nombres. Par contre, chaque bloc DISPLAY n'affiche qu'un nombre ou une chaine de caractères, il en faut donc plusieurs pour définir notre écran.

Haut de page


 La modification conviviale des paramètres

Nous avons vu comment modifier les paramètres de certains blocs à partir de la face avant du Millenium, via le menu PARAMETRES. Cette manière de faire ne nécessite aucune programmation, mais elle a beaucoup d'inconvénients :

  • elle est peu pratique
  • elle nécessite de garder à côté du Millenium les numéros des blocs NUM à modifier et leur signification
  • elle est impossible à utiliser pour un utilisateur ne connaissant pas le Millenium

En bref, c'est un moyen utilisable pendant la programmation, mais inadapté à l'utilisation du programme.
Nous allons voir comment remédier à ces problèmes via un peu de programmation.

Nous allons reprendre le programme de boucle solaire avec limitation de la température du ballon. Dans ce programme, trois paramètres doivent pouvoir être modifiés après la programmation :

  • l'écart de mise en marche du circulateur solaire
  • l'écart d'arrêt du circulateur solaire
  • la température maximale du ballon

Le Millenium permet l'affichage de valeurs via les blocs DISPLAY et TEXT. A chaque fois qu'une valeur d'entrée change, son affichage est mis à jour automatiquement.

Le Millenium permet aussi qu'une valeur affichée par ces blocs soit modifiée via la face avant pendant son affichage. Ainsi un bloc NUM affiché par un bloc DISPLAY peut avoir sa valeur modifiée par l'utilisateur.

Nous allons modifier le programme pour permettre la modification de nos 3 paramètres.
Quand on va appuyer sur le bouton A (de la face avant), le Millenium va afficher les valeurs des trois paramètres avec leur signification. Les valeurs pourront être modifiées si nécessaire. Un autre appui sur le bonton A fera revenir l'affichage par défaut.

L'affichage et la modification sont faits par un seul bloc TEXT. La bascule entre l'écran des paramètres et l'affichage par défaut est faite par un bloc BISTABLE commandé par la touche A.
La modification ne demande donc que trois blocs de plus.

Voici le programme :

programme convivial

Le paramétrage du bloc TEXT est expliqué ci-dessous.

Dans la partie définition de l'écran du Millenium, une valeur non modifiable apparaît en rouge, une valeur modifiable apparaît en vert. La couleur change quand la valeur est sélectionnée et que l'on coche ou décoche l'option "Modification autorisée" de la valeur.

paramètres TEXT convivial

A noter : il n'est pas nécessaire que l'option "Modification autorisée" soit cochée dans les blocs NUM.

L'affichage quand on appuie sur le bouton A :

face avant convivial

Pour modifier la valeur d'un champ :

  • On sélectionne le paramètre que l'on veut modifier avec + et - puis OK.
  • On ajuste la valeur du paramètre avec + et - puis on la valide par OK (la valeur modifiée est prise en compte immédiatement par le programme).

On peut rester sur cet écran autant de temps que l'on veut. Un appui sur A ou ESC permet de revenir à l'affichage par défaut.

Dans le cas où l'on a plus de quatre paramètres à modifier (ou plusieurs écrans d'information), on peut utiliser plusieurs blocs TEXT de ce type. Pour les activer l'un derrière l'autre, on peut utiliser un bloc CAM commandé par une touche. Chaque appui sur la touche fait passer à l'écran TEXT suivant et donc aux paramètres suivants. On peut programmer ESC pour revenir à l'écran par défaut.
Ce procédé est utilisé et détaillé dans la rubrique suivante.

Haut de page


 Le pilotage complet d'un CESI

Rien de nouveau dans cette rubrique. Simplement un programme regroupant ensemble les fonctions que nous venons de voir :

  • la boucle solaire
  • la limitation de température
  • l'affichage des températures
  • le maximum des températures
  • le cumul du temps de fonctionnement
  • la modification conviviale des paramètres

Ce programme constitue le pilotage complet d'un CESI (Chauffe-Eau Solaire Individuel).

J'ai regroupé les différents affichages et la manière d'y accéder pour améliorer le confort d'utilisation.
En appuyant successivement sur le bouton A, on passe sur une série de quatre écrans successifs  :

  1. les températures actuelles (écran par défaut, pas de modification possible)
  2. les températures maximales (un appui sur le bouton B sur cet écran remet les maxima à zéro)
  3. le cumul journalier et mensuel des temps de fonctionnement (aucune modification possible)
  4. la modification des paramètres (tous les paramètres peuvent être modifiés)

Un appui sur ESC sur un des écrans fait revenir aux températures actuelles.

Le programme a changé sur un autre aspect : certaines liaisons très utilisées ne sont plus "filaire" mais "texte". En effet, quand un programme devient un peu conséquent, les liaisons filaires forment un réseau difficile à lire. Dans ce cas, il est préférable de nommer les liaisons les plus utilisées qui peuvent en général recevoir un nom significatif.

Le programme se transforme ainsi en petits blocs logiques, utilisant des données nommées. Avec un peu d'habitude et en choisissant des noms de liaisons courts et précis, c'est bien plus lisible qu'un réseau emmêlé de liaisons filaires.

programme CESI complet

Télécharger ce programme

Le programme utile 26 blocs mais seulement 11 font fonctionner l'installation.
Les autres gèrent des fonctions annexes, les affichages et modifications de paramètres.

Le détail de la mécanique d'affichage

Le bloc CAM du Millenium simule le comportement d'un programmateur à cames.
Le bloc a un certain nombre d'états ordonnés (jusqu'à 50), dont un seul est actif à la fois. Dans chaque état, on peut définir l'état des 8 sorties (0 ou 1).
Les entrées d'un bloc CAM permettent d'avancer à l'état suivant, de revenir à l'état précédent ou de retourner à l'état initial.

On se sert de ce bloc pour gérer la séquence d'écrans successifs (4 dans notre cas).
Un état correspond à un écran (donc on a 4 états pour le bloc CAM).
Chaque bloc TEXT est connecté à une seule sortie du bloc CAM. Dans chaque état, une seule sortie est active : celle reliée à l'entrée SET du bloc TEXT qui décrit son écran.

L'entrée pour avancer à l'état suivant est connectée au bouton A. Ainsi chaque pression sur le bouton A fait avancer le bloc CAM à l'état suivant, et active donc le bloc TEXT qui décrit l'écran suivant.
L'entrée de retour à l'état initial est connectée à la touche ESC, cela fait revenir le bloc CAM à l'état initial, donc au 1er écran.

Le Millenium n'affiche qu'un seul bloc TEXT à la fois (qui définit tout l'écran). Si plusieurs blocs TEXT sont actifs en même temps, c'est celui qui a le numéro de bloc le plus élevé qui s'affiche. Ce n'est pas le cas dans ce programme où le bloc CAM assure qu'un seul bloc TEXT est actif à la fois.

Le paramétrage du bloc CAM est détaillé ci-dessous, on voit bien les 4 états et le fait que chacun active une seule sortie du Millenium :

parametres bloc CAM pilotage CESI

Comme il s'agit d'un programme que vous pouvez prendre tel quel puis le modifier, je donne le paramétrage des 4 blocs TEXT.

Le bloc TEXT de l'état initial, donc qui s'affiche par défaut : celui des températures (rappel : quand les données sont rouges, elles ne sont pas modifiables) :

bloc TEXT1 CESI

Le bloc TEXT affichant les températures maximales :

bloc TEXT2 CESI

Le bloc TEXT affichant les cumul de temps de fonctionnement :

bloc TEXT3 CESI

Et enfin le bloc TEXT affichant les paramètres et permettant leur modification (rappel : quand les données sont vertes, elles sont modifiables dans l'écran) :

bloc TEXT4 CESI

 A noter : ce programme occupe environ :

  • 20 % de la capacité mémoire d'un Millenium de type CD12 (8 entrées/4 sorties) ou CD20 (12 entrées/8 sorties)
  • 10 % de la capacité mémoire d'un Millenium de type XD26 (16 entrées/10 sorties, extensible)

Haut de page


 La commande d'une vanne 3-voies de chauffage

Nous avons vu dans la rubrique "boucle solaire" comment utiliser la comparaison entre deux températures pour mettre en service et arrêter un dispositif.

Dans le cadre d'un système de chauffage solaire avec ballon de stockage d'eau de chauffage, il est souvent nécessaire de piloter une vanne 3-voies qui fait passer le retour du chauffage dans le ballon solaire si celui-ci est plus chaud que le retour.

Le schéma hydraulique typique est le suivant : 

schéma hydraulique v3v

Par défaut, le retour chauffage va directement vers la chaudière. Si le haut du ballon solaire contient de l'eau plus chaude que le retour chauffage, la vanne 3-voies doit s'ouvrir pour que le retour collecte de la chaleur solaire dans le ballon avant d'aller à la chaudière.

On va utiliser la même fonction de thermostat différentiel que pour piloter le circulateur de la boucle solaire.
Les deux températures à comparer sont :

  • la température en haut du ballon d'eau de chauffage
  • la température du retour chauffage

Comme pour la boucle solaire, on utilise un hystéresis pour éviter les oscillations quand les températures sont proches. Le programme est autrement identique :

programme v3v

Télécharger ce programme

Haut de page


 Le relais d'un thermostat d'ambiance

Si vous voulez que votre Millenium pilote globalement votre chauffage, il va probablement être nécessaire qu'il soit connecté à un thermostat d'ambiance situé dans le volume chauffé.
Cette secton indique comment interfacer un thermostat à "boucle sèche" avec le Millenium.

Un tel thermostat ne produit pas de tension électrique sur ses deux bornes : il se contente de connecter électriquement ses deux bornes quand il y a une demande de chaleur (quand la température ambiante est inférieure à la consigne réglée) et de les isoler dans le cas contraire. Il se comporte donc comme un interrupteur.

Nous voulons que le Millenium connaisse l'état du thermostat, c'est à dire que l'information s'il y a ou non demande chaleur dans les locaux chauffés soit disponible dans son programme.

Contrairement aux températures que nous avons lu sur les entrées du Millenium dans les sections précédentes, cette information n'a que 2 états oui ou non, 1 ou 0. Ce sont des entrées TOR (Tout Ou Rien).

Ces entrées du Millenium n'admettent que du 12 ou 24 V continu (selon le modèle), nous allons donc alimenter une des bornes du thermostat d'ambiance avec le 12 ou 24 V continu qui alimente le Millenium, et l'autre sera reliée à une entrée du Millenium.
Ainsi, quand le thermostat sera en demande de chaleur, l'entrée du Millenium sera à 1 et elle sera à 0 le reste du temps.

Le schéma électrique est simple :

schéma électrique TA

Pour illustrer ce dispositif simple, nous allons supposer que le Millenium doit agir comme suit :

  • Lorsque le thermostat se ferme, parce qu'il fait plus froid que la consigne (il y a donc demande de chaleur), il doit mettre en marche le circulateur de chauffage puis 20 secondes plus tard, mettre en marche la chaudière.
  • Lorsque le thermostat s'ouvre (il n'y a plus demande de chaleur), il doit arrêter la chaudière puis 20 secondes plus tard, arrêter le circulateur de chauffage

L'entrée thermostat est câblée comme dans le schéma ci-dessus, et les sorties circulateur et chaudière sont deux relais du Millenium.

Le programme est le suivant :

programme relais TA

Télécharger ce programme

Avec le TIMER A-C du circulateur paramétré comme ça :

param TIMER A-C relais TA circulateur

Et celui de la chaudière comme ça :

param TIMER A-C relais TA chaudière

Haut de page


La vanne de mélange

Une vanne de mélange est une vanne à deux entrées et une ou deux sorties qui règle le mélange entre un flux chaud et un flux froid pour obtenir un flux à une température fixée (la température de consigne). Lorsqu'on veut automatiser une telle vanne, il faut lui adjoindre un servo-moteur et piloter ce moteur afin que la température de consigne soit respectée.
Cette section décrit le pilotage d'une telle vanne pour maintenir la température de consigne en sortie.

Le principe est de mettre une sonde de température sur la sortie mélange de la vanne et d'examiner la température :

  • Si la température de mélange est dans un intervalle acceptable autour de la consigne, la vanne est correctement réglée, on ne fait rien.
  • Si la température de mélange est sous l'intervalle acceptable autour de la consigne, on ouvre plus la vanne pour admettre une plus grande proportion de flux chaud.
  • Si la température de mélange est au dessus de l'intervalle autour de la consigne, on ferme plus la vanne pour admettre une moins grande proportion de flux chaud.

On a donc un seuil au dessus duquel on ouvre moins la vanne (moins ce chaud), un seuil au dessous duquel on ouvre plus la vanne (plus de chaud) et entre ces deux seuils, on ne fait rien car la température du mélange est correcte.
Le schéma ci-dessous illustre ce principe. Attention au fait que "ouverture" ne veut pas dire que la vanne de mélange est complétement ouverte. Cela signifie que l'on demande  à la vanne de s'ouvrir plus afin d'admettre plus de flux chaud. Idem pour "fermeture".

courbe régulation vanne mélange

Comme pour toutes les comparaisons de température, il nous faut éviter les oscillations autour des seuils et donc prévoir un hystérésis autour de chacun des seuils.

J'ai mentionné ci-dessus que la mesure de la température de mélange et la décision à prendre sur la position de la vanne étaient faites périodiquement.
En pratique, il est inutile de le faire trop vite, car :

  • Une vanne de mélange met typiquement 2 à 3 minutes de la fermeture complète à l'ouverture complète (en général pour une rotation de la vanne de 90°).
  • La température de mélange met un peu de temps à se stabiliser.

Le programme est le suivant :

programme Millenium vanne mélangeuse

Télécharger ce programme

Les deux paramètres de configurations sont l'"écart consigne", écart toléré par rapport à la consigne (si la consigne est à 50°C, un écart consigne de 5K tolérera une sortie de 45 à 55°C), et l'"hystérésis" autour des deux seuils définis par cet écart. Ils seront à adapter selon la stabilité du système.

La stabilité du pilotage dépend de plusieurs facteurs :

  • La stabilité de la température des flux chaud et froid en entrée.
  • L'autorité de la vanne sur la température de sortie : si elle influence trop la température, une petite rotation de la vanne peut faire changer trop brusquement la température de sortie, ce qui rend le système difficile à stabiliser (on recommande souvent pour cette raison de prendre des vannes de mélange un calibre plus petit que la taille normalement logique).

Si nécessaire, on peut ajouter une temporisation A-C sur les sorties de manière à amortir leur vitesse de changement si elle est trop rapide (système instable).

Les blocs logiques NOT et AND à la suite des blocs TRIGGER sont destinés à protéger le servo-moteur si le programme venait à activer à la fois l'ouverture et la fermeture (cela pourrait détruire le moteur).
Cela peut se produire si les seuils ou les hystérésis sont mal définis. 
Cette logique rend exclusives les commandes d'ouverture et de fermeture. Si les sorties des deux comparateurs sont actives, aucune commande n'est envoyée au moteur.

A noter 1 : Le servo-moteur des vannes de mélange est équipé de contacts de fin de course qui arrête le moteur en fin de rotation : le Millenium n'a pas à gérer ce point.

A noter 2 : Avant l'ère de l'électronique, les vannes mélangeuses étaient pilotées par des thermostats à zone neutre. En fait, deux thermostats inversés et légérement décalés, l'un se fermant quand la température descendait trop bas (il commandait le circuit d'ouverture de la vanne), l'autre se fermant quand la température montait trop haut (il commandait le circuit de fermeture de la vanne).

[Merci à Alain Raynal pour sa remarque judicieuse sur la version précédente du programme]

Sur le CD "Millenium 3 Specific functions", Crouzet met à disposition un bloc appelé "HL SWITCH" qui permet de faire une comparaison de son entrée entre 4 seuils (configurés dans le bloc ou externes). Le bloc fait les comparaisons et indique en sortie entre quels seuils l'entrée se trouve (via 5 sorties TOR).
Ce bloc peut être utilisé pour simplifier (un peu) le programme :

  • les 4 calculs de températures sont les 4 seuils
  • la vanne doit s'ouvrir plus si BIT1 ou BIT2 sont à 1
  • la vanne doit se fermer plus si BIT4 ou BIT5 sont à 1
  • la vanne ne doit pas bouger si BIT3 est à 1

Haut de page


La loi d'eau

Une vanne de mélange permet d'envoyer de l'eau à température constante dans un circuit de chauffage, quelque soit la température de la source chaleur.

Les besoins en chauffage d'une maison varient selon la température extérieure car les pertes thermiques d'une maison sont proportionnelles à la différence de température entre l'intérieur et l'extérieur de cette maison.

La consigne de température de la vanne de mélange peut donc être ajustée selon le besoin : plus il fait froid dehors, plus l'eau de chauffage doit être chaude.
Pour éviter un réglage manuel et donc assez aléatoire, on automatise cet ajustement de la température via une régulation climatique. Cette régulation calcule la température de l'eau de chauffage en fonction de la température extérieure.
Ce calcul se base sur des paramètres constants qui dépendent des caractéristiques de la maison à chauffer.

La relation qui permet de calculer la température de l'eau à envoyer dans le chauffage à partir de la température extérieure s'appelle la loi d'eau ou loi de chauffe.

On va supposer que la loi d'eau est linéaire, c'est à dire que la représentation graphique de la loi est une droite comme ceci :

courbe loi d`eau chauffage

Une telle loi est caractérisée par deux paramètres : la pente et la température à 0°C.
Connaitre ces deux paramètres permet de trouver la température de l'eau de chauffage pour toute température extérieure donnée : la température de l'eau de chauffage est la température extérieure multipliée par la pente plus la température à 0°C.

Pour trouver la pente, on prend deux couples (température extérieure, température eau de chauffage). On divise la différence des températures de chauffage par la différence des températures extérieures.

Dans l'exemple du graphique :

  • pour la pente, on prend par exemple le couple (-20, 80) et (20, 20). La pente est égale à :
    (80-20) / (-20-20) = 60 / -40 = -3/2
  • pour la température à 0°C, on lit sur le graphique 50°C.

Pour trouver la température de l'eau de chauffage à partir d'une température extérieure donnée, il faut multiplier la température extérieure par -3/2 et ajouter 50 degrés.
Vérifions sur une valeur, par exemple pour une température extérieure de 10°C, on obtient une eau de chauffage à :
(10 x -3/2) + 50 = 35°C
C'est bien ce qu'on lit sur le graphique de la loi.

Si l'on veut faire calculer une loi d'eau au Millenium, il faut lui fournir la pente et la température de chauffage à 0°C et il pourra alors calculer la température de l'eau de chauffage pour toute température extérieure.

Un point important à considérer est que le Millenium ne fait des calculs que sur des nombres entiers et les résultats des calcules sont aussi des nombres entiers.
Il faut faire attention à deux points :

  • Les débordements : le plus grand nombre que le Millenium sait manipuler est 32767 et le plus petit est -32768. Si un calcul dépasse ses valeurs, le bloc de calcul (addition/soustraction ou multiplication/division) active sa sortie erreur/débordement pour signaler l'erreur et n'effectue pas le calcul.
    Donc quand on fait calculer le Millenium, soit on est sûr de rester dans les bornes car on manipule des nombres assez petits, soit on surveille l'état de la sortie débordement.
  • Les divisions : quand on divise un nombre par un nombre plus grand, le résultat est inférieur à 1 (exemple : 1/4 = 0,25). Mais comme le Millenium ne fournit que des résultats entiers, le résultat sera toujours 0 (le Millenium ignore les chiffres après la virgule).
    Exemples : pour le Millenium : 100 / 3 = 33 ; 10 / 3 = 3 ; 1 / 3 = 0

Dans notre exemple, nous manipulons des températures inférieures à 100°C et les résultats seront des températures elles-aussi inférieures à 100°C, donc très loin des limites. Les risques de débordement sont donc très limités.

Par contre, pour multiplier par -2/3, nous avons un problème car -2/3, c'est -0,66... donc 0 dans le Millenium.
Pour contourner ce problème, nous allons d'abord multiplier par -2 puis diviser par 3.

Cela vous rappelle le bloc GAIN ? Exact, c'est pour la même raison que le bloc GAIN fait y = (A/B) x + C.

Le programme suivant illustre le calcul d'une loi d'eau à partir d'une température extérieure lue à l'entrée du Millenium.
La pente est représentée par deux entiers : on multiplie par le premier (A) puis on divise par le second (B).
Quand la pente est un nombre entier, le deuxième nombre (B) est égal à 1.

programme loi deau

Télécharger ce programme

Dans notre exemple, A=-2, B=3 et C=50.

A noter : on peut utiliser un bloc GAIN à la place des 3 blocs de calcul et des 3 constantes.
Mais dans ce cas, la loi est figée dans le programme et est difficile à modifier dans le Millenium.
Toute modification devra se faire par recompilation et transfert du programme dans le Millenium, ce qui est rarement pratique.

Haut de page


Le dégommage de circulateur

Quand ils ne fonctionnent pas pendant un certain temps, les circulateurs ont tendance à "gommer". C'est à dire que leurs paliers "sèchent" et cela les empèche de tourner.
Cela ne se produit pas sur un circulateur qui tourne réguliérement, ce qui est le cas sur une installation solaire.

Néanmoins, cette section propose un moyen d'éviter ce gommage si le risque existe sur l'installation.
Il suffit de garantir que le circulateur va fonctionner quelques minutes tous les jours.

C'est ce que fait le programme simple suivant : à une heure donnée, tous les jours, le circulateur est mis en route pendant 2 minutes (temps choisi arbitrairement, mais c'est l'ordre de grandeur).
Ce temps doit rester court car pendant le fonctionnement de dégommage, le serpentin solaire n'apporte pas de chaleur solaire mais peu de plus en prendre (les capteurs sont froids et le ballon est chaud, la boucle solaire va marcher à l'envers).

Voici le programme qui une évolution simple du programme de contrôle de boucle solaire de la 1ère section.
Le bloc OR signifie que le circulateur tournera si les températures le permettent OU si le moment du dégommage est venu.

Programme Millenium dégommage simple

 

Télécharger ce programme

Voici les paramètres du bloc TIME PROG qui déclenche le dégommage. Dans cet exemple, le dégommage fait tourner le circulateur 2 minutes entre 0h00 et 0h02, mais bien sûr tout autre horaire et durée sont possibles.

paramètres time prog dégommage

Le circulateur est mis en fonctionnement même s'il a fonctionné pendant la journée.
On pourrait l'éviter mais le gaspillage ne vaut pas la complexité accrue de programmation.

Néanmoins, pour les plus exigeants, je détaille ci-dessous un programme plus complexe qui mémorise si le circulateur a fonctionné la journée. La circulation de dégommage n'est ainsi mise en route que si le circulateur n'a pas fonctionné.

Le programme suivant fonctionne sur ce principe :

  • Une bascule SET RESET mémorise si le circulateur a tourné pendant la journée.
  • Le soir ou la nuit :
    • Si la bascule est à 1, cela signifie que le circulateur a tourné dans la journée et le dégommage n'est donc pas nécessaire.
    • Si la bascule est à 0, le programme fait tourner le circulateur pendant le temps demandé par le TIME PROG.
  • Lorsque la phase de dégommage est terminée, la bascule est remise à 0 pour la journée suivante.

 programme Millenium degommage complexe

Le programme n'est pas des plus élégants, il utilise 2 blocs TIME PROG, l'un pour la durée de dégommage, l'autre pour remettre à 0 l'indicateur de fonctionnement du circulateur. Néanmoins, il fonctionne et n'est pas trop gourmand en mémoire (4 blocs de plus que le programme de dégommage simple).

Les 2 blocs TIME PROG doivent être paramétrés de manière à ce que la remise à 0 de la bascule se fasse après le dégommage. Voici leurs paramètres, en supposant un dégommage de 2 minutes tous les jours à minuit.

Le TIME PROG "dégommage" : c'est lui qui pilote l'heure et la durée du dégommage :

paramètres TIME PROG degommage complexe

Le TIME PROG "RAZ état circulation", la durée n'a pas d'importance puisque la bascule se remet à 0 sur un front montant. Mais un TIME PROG ne travaille qu'en minute.
Il est important que la remise à zéro se fasse APRES la fin de la période de dégommage : l'heure de début de la remise à zéro doit être au plus tôt l'heure de fin du dégommage.

paramètres TIME PROG reset complexe

Haut de page


La puissance instantanée

En supposant le débit stable dans la boucle solaire et en mesurant la température avant et après l'échangeur, on peut évaluer la puissance instantanée collectée.

La formule théorique est la suivante :
P (kW) = delta T avant/après (K) x chaleur massique du caloporteur (kJ/kg/K) x débit (kg/s)

En supposant le débit et la chaleur massique indépendants de la température, leur produit est une constante liée à l'installation.
On obtient alors l'équation simplifiée suivante :
P (kW) = delta T avant/après (K) x constante (kW/K)

Exemple : L'installation utilise un caloporteur eau / propylène glycol de chaleur massique 3,5 kJ/kg/K avec un débit de 400 litres/heure.
La constante est 3,5 x 400 / 3600 = 0,39 kW/K

Si à un moment donné, l'écart de température entre l'entrée et la sortie de l'échangeur est de 10K, la puissance instantanée est de 10 x 0,39 = 3,9 kW

On peut vouloir calculer cette puissance dans le Millenium et l'afficher en permanence comme une sorte de compteur de vitesse. Pour cela, il suffit de calculer l'écart entre les températures avant et après l'échangeur et de multiplier cet écart par la constante.

De manière générale, le Millenium ne faisant que des calculs entiers (les données sont des entiers et les résultats sont des entiers), il faut être prudent avec les valeurs manipulées :

  • Il faut éviter les quantités trop petites : tout nombre décimal entre 0 et 1 est arrondi à 0 dans le Millenium. C'est un problème essentiellement pour les divisions.
  • Il faut prendre garde à ne pas dépasser les valeurs maximales des entiers Millenium : +32767 et -32768.

L'écart de température est un entier inférieur à 100, de l'ordre de 10 à 30 K.
Par contre, si nous voulons un résultat en kWatt, la constante est un nombre trop petit (inférieur à 1) pour être représenté dans le Millenium (tout nombre entre 0 et 1 est égal à 0 pour le Millenium).

Nous allons donc travailler en Watt (la puissance d'une installation solaire étant de quelques milliers de Watt).
Dans notre exemple la constante sera 390 W/K. Et le résultat de la multiplication par le delta T sera directement en W.
Le delta T étant inférieur à 50, le résultat en Watt sera toujours inférieur à 32767.

Voilà le programme permettant le calcul de la puissance instantanée en Watt à partir des deux températures entrée et sortie. Le bloc NUM contient la constante (390 dans notre exemple) :

programme calcul puissance

Le résultat du calcul peut être affiché (comme dans le programme), archivé ou utilisé en entrée d'un autre calcul.

Note 1 : Ne pas oublier les hypothèses : le débit doit être constant. On ne peut donc pas utiliser cet indicateur de puissance pour optimiser la puissance en agissant sur le débit.
Si on modifie le circuit solaire (fermeture partielle d'une vanne par exemple), la puissance affichée sera erronée tant que la constante ne sera pas modifiée dans le programme.

Note 2 : Dans un bloc GAIN, le Millenium commence toujours par la multiplication (par le nombre A).
Si ce n'était pas le cas, pour un bloc paramétré avec A=1000, B=1000 et C=0, avec une entrée égale à 10, le résultat serait toujours 0 (la division entière de 10 par 1000 fait 0).

D'autre part, le résultat de la multiplication n'est pas limité à 32767.
Si c'était le cas, avec un bloc paramétré avec A=32767, B=32767 et C=0, on aurait un débordement systématique quelque soit l'entrée. Or le résultat est toujours exact.

[Pour les initiés à l'informatique : le Millenium transfère les résultats sur 16 bits (d'où la limite à 32767). Mais à l'intérieur du bloc GAIN, le résultat de la multiplication est conservé sur 32 bits avant la division.]

Le bloc multiplication/division a le même comportement : le résultat de la multiplication interne au bloc peut dépasser 32767 sans perturber le résultat final.

Haut de page


 Le compteur d'énergie

En cumulant la puissance solaire sur de petits intervalles, on peut calculer l'énergie collectée sur une période de temps.

Le diagramme ci-dessous explique la relation entre la puissance, l'énergie et le temps :

schema energie solaire collectee

En cumulant chaque seconde la puissance obtenue par le calcul de la section précédente, on obtient l'énergie collectée sur la période de mesure en Joules.
En divisant le résultat obtenu par 3600, on obtient la même énergie en Wh.

Les calculs entiers du Millenium vont nous poser un problème. En effet, nous sommes assurés au paragraphe précédent que le calcul de puissance en Watt (W) ne faisait pas déborder le bloc de multiplication.

Si nous cumulons l'énergie collectée en Wh, nous ajouterons chaque seconde la puissance calculée en Watt (typiquement quelques milliers de Watt) et nous allons rapidement dépasser la limite de 32767 et nous ne pourrons pas cumuler l'énergie sur une période assez longue.

Exemple : Une installation fonctionnant à une puissance de 5000 W collecte environ 1,39 Wh chaque seconde et 83,3 Wh chaque minute.
Si nous cumulons la puissance chaque minute, le compteur en Wh débordera avant une durée de 7 heures (32767 / 83 = 394 minutes).

Si nous cumulons l'énergie en kWh, nous devrons ajouter chaque seconde une quantité de kWh trop petite pour être représentée sous forme d'entier.

Exemple : Une installation fonctionnant à une puissance de 5000 W collecte environ 0,00139 kWh chaque seconde et 0,0833 kWh chaque minute. Ces deux nombres sont arrondis à 0 par le Millenium (qui ne traite que les nombres entiers).

Pour contourner ce problème, nous mémorisons à la fois les Wh (pour la précision) et les kWh (pour pouvoir cumuler sur de longues périodes).
L'énergie cumulée est donc mémorisée dans deux blocs MEM. A tout moment, l'énergie cumulée en kWh est disponible dans le bloc MEM des kWh et le bloc MEM des Wh contient les chiffres après la virgule.

Exemple : Si l'énergie cumulée est de 345,678 kWh, les deux blocs MEM sont comme suit :

  • le 1er contient les kWh : 345
  • le 2ème contient les Wh restants : 678

On peut cumuler jusqu'à 32767 kWh, ce qui est conséquent : si une installation fonctionne à une puissance de 5000 W pendant 6 heures par jour (grosse installation dans des conditions idéales !), il faudra 1000 jours pour saturer le compteur.

Toutes les minutes, on prend la puissance instantanée en W (calculée dans le paragraphe précédent) et on la divise par 60 pour obtenir des Wh. Le résultat est ajouté au compteur de Wh.
Si après l'addition, celui-ci dépasse 1000, on met à jour le compteur de kWh avec le nombre de milliers de Wh et on ne garde que les Wh inférieurs à 1000 dans le compteur de Wh.

Voici le programme, utilisant le calcul de puissance de la section précédente. J'ai encadré chacune des fonctions pour bien montrer leur indépendance :

Programme Millenium compteur énergie

 

Télécharger ce programme

Il est important de paramétrer les blocs MEM pour conserver leur contenu en cas de coupure secteur (dans l'onglet "Paramètres" de ces blocs, il faut sélectionner "SAUVEGARDE" pour que les boutons "Sauvegarde sur coupure secteur" apparaissent).

Dans le programme, j'ai utilisé des blocs DISPLAY pour avoir la puissance instantanée sur une ligne et l'énergie cumulée sur une autre, mais tout est possible.
Par exemple faire un cumul journalier et mensuel à l'aide de blocs TIME PROG (voir plus haut la section sur le temps de fonctionnement) ou gérer une archive.
J'ai également utilisé la touche A pour remettre l'énergie cumulée à 0 à titre d'exemple.

Voici l'affichage du Millenium pendant le programme : la 1ère ligne (la puissance instantanée) est l'équivalent du compteur de vitesse d'une voiture, la 2ème ligne (le cumul d'énergie) est l'équivalent du compteur kilométrique.

Une petite astuce permet d'éviter l'affichage des 5 chiffres dans le nombre de Wh : le texte "kWh" est suivi d'un espace, et écrase les deux premiers chiffres du compteur de Wh.
Cela fonctionne car le bloc DISPLAY affichant "kWh " a un numéro de bloc supérieur à celui affichant le nombre de Wh. Il réalise donc son affichage en dernier et peut donc écraser les caractères du premier bloc.

A noter : Il n'y a pas de moyen simple d'empêcher que les entiers soient affichés avec des chiffres 0 dans les caractères inutilisés (100 est affiché 00100). Il est étonnant que le Millenium affiche les nombres de cette manière : afficher des espaces à la place de ces 0 ne serait pas plus compliqué et rendrait les nombres plus lisibles.

face avant Millenium compteur énergie

Que perdons-nous en précision par rapport à la réalité ?

  • Cumuler seulement toutes les minutes (dans mon exemple) fait que le moment du calcul est assimilé à tout ce qui se passe pendant la minute entière. En pratique, en phase de collecte, la puissance évolue peu pendant une minute.
    • Si la collecte solaire se met en route pendant la minute, le calcul considère que la collecte a commencé depuis 60 secondes.
    • Si la collecte solaire s'arrête pendant la minute, le calcul considère que la collecte s'est arrêtée depuis 60 secondes.
      Comme ces événements sont symétriques, statistiquement l'approximation ne diverge pas.
  • La division par 60 de la puissance provoque un arrondi de l'énergie en Wh à 60 près. Ainsi 1200 W et 1259 W collecteront la même énergie en une minute pour le Millenium car leur division entière par 60 donne 20 Wh par minute pour tous les deux.
    L'imprécision dépend des puissances mesurées :
    - Pour une puissance faible de 1000 W, l'imprécision est de 6 %.
    - Pour une puissance de 5000 W, elle n'est que de 1,2 %.

A noter : Si l'on souhaite modifier la périodicité des cumuls (toutes les minutes dans le programme), il faut modifier le programme à deux endroits :

  • Le paramètre "temps d'arrêt" du TIMER Li "horloge" : la sortie est à 1 pendant 1 seconde, puis à 0 le reste de la période (59 secondes dans le programme).
    Exemple : si l'on veut un cumul toutes les 15 secondes, le temps à 0 doit être mis à 14 secondes.
  • Le coefficient diviseur du bloc GAIN "calcul Wh" : ce bloc divise par 60 dans le programme car il y a 60 minutes dans 1 heure.
    Exemple : si l'on veut un cumul toutes les 15 secondes, le bloc doit diviser par 3600 / 15 = 240.

Attention néanmoins à ne pas trop réduire la période : cela augmente l'arrondi sur les Wh par période, et le Millenium n'a peut être pas que ça à faire...

Haut de page


 

Le refroidissement nocturne

Un chauffe-eau solaire (CESI) doit être dimensionné en fonction des besoins quotidiens en eau chaude.
La règle générale est que la surface de capteurs doit être déterminée pour éviter que l'installation soit en surchauffe l'été.

Cela revient à dire qu'en été, l'énergie collectée par jour par les capteurs doit être équivalente à l'énergie nécessaire pour chauffer l'eau chaude consommée dans la journée.

Si cette règle n'est pas appliquée et que la surface de capteurs est majorée, la température maximale sera atteinte dans le ballon, et l'installation sera en surchauffe : on ne sait plus quoi faire de la chaleur que les capteurs collectent.

Mais la surchauffe de l'installation peut se produire dans d'autres cas :

  • Si vous êtes absent, vous n'utilisez plus d'eau chaude, et le ballon ne se refroidit plus.
  • Si l'installation est aussi prévue pour faire du chauffage, sa surface de capteurs est beaucoup plus grande, et l'été elle collecte beaucoup plus d'énergie que nécessaire.

La stratégie par défaut quand l'installation est en surchauffe est de ne rien faire.
On ne met plus en marche le circulateur solaire pour éviter de dépasser la température maximale du ballon. Comme le soleil amène de l'énergie en permanence aux capteurs mais qu'elle n'est plus collectée par la boucle solaire, les capteurs montent en température.
Cet état où l'installation est laissée au soleil sans circulation est la stagnation.

Jusqu'où la température des capteurs en stagnation peut-elle monter ?

On pourrait penser que comme le soleil continue à amener de la chaleur aux capteurs et que ceux-ci ne peuvent pas s'en débarrasser (ils sont au contraire conçus pour en perdre le moins possible), la température va monter indéfiniment.

Heureusement, les pertes thermiques des capteurs augmentent avec leur température : plus ils sont chauds, plus ils perdent d'énergie.
La température des capteurs va donc monter jusqu'à ce que les pertes thermiques compensent la puissance solaire. A ce moment, la température est haute mais stable : c'est la température de stagnation.

Cette température dépend des capteurs : de leur capacité à collecter de la chaleur solaire et à ne pas la perdre dans l'environnement extérieur.
Des capteurs solaires "efficaces", transformant le rayonnement solaire en chaleur avec un bon rendement et bien isolés thermiquement ont une température de stagnation plus élevée.

Les températures de stagnation typiques :

  • Pour les capteurs plans : de 100 à 150°C
  • Pour les capteurs à tubes sous vide : de 150 à à 200°C
    (les capteurs à tubes sous vide ne collectent pas plus de chaleur solaire, mais le vide leur donne une meilleure isolation, ils ont donc moins de pertes thermiques)

Pour éviter qu'une installation soit souvent en stagnation, même si sa surface de capteurs est sur-dimensionnée, on peut essayer de s'assurer que le ballon peut toujours stocker la chaleur collectée la journée suivante.

La méthode du refroidissement nocturne fait exactement ça. La nuit, en l'absence de soleil et alors que la température extérieure est plus fraiche, l'installation essaie d'évacuer la chaleur en trop en faisant fonctionner la boucle solaire. Les capteurs sont alors utilisés comme des radiateurs.

Quand la température du ballon est supérieure à une valeur donnée la nuit, on met en marche le circulateur solaire pour faire tour

La méthode a ses limites :

  • Elle utilise de l'électricité pour se débarrasser de chaleur gratuite, ce n'est pas satisfaisant.
  • Elle ne fonctionne que si les capteurs perdent assez facilement de la chaleur de la chaleur, donc s'ils ne sont pas trop isolés.
    Cette méthode ne marche notamment pas avec les capteurs à tubes qui sont trop bien isolés.
  • La température extérieure de nuit doit être assez basse, sinon les pertes des capteurs sont faibles et on évacue peu de chaleur.
  • On ne peut refroidir que le bas du ballon, autour du serpentin solaire. En effet, la stratification de l'eau fait que l'eau chaude restera au dessus de cet emplacement, car plus légère.

Voici néanmoins le programme de boucle solaire modifié pour inclure le refroidissement nocturne.
Il utilise deux températures de consigne pour décider à partir de quelles températures dans le bas du ballon on active et on déactive la circulation de refroidissement.
La fonction de refroidissement n'est bien sûr activée que la nuit : c'est le rôle du bloc TIME PROG. Comme il fait plus frais très tôt le matin qu'en début de nuit, il est plus efficace de n'autoriser le refroidissement qu'en 2ème partie de nuit.

programme Millenium refroidissement nocturne

Les paramètres du bloc TIME PROG (avec un refroidissement autorisé entre 1h00 et 6h00 du matin) :

paramètres TIME PROG refroidissement nocturne

Le remplacement de plusieurs blocs logiques par un bloc BOOLEAN

Quand dans un programme Millenium, on a un enchaînement de plusieurs fonctions logiques (OR, AND, NOT, etc.), on peut remplacer toutes ces fonctions par un bloc BOOLEAN paramétré pour avoir le même comportement que l'ensemble des fonctions.
Cela prend moins de ressources dans le Millenium. Néanmoins, cela nuit fortement à lisibilité du programme (il faut ouvrir le BOOLEAN pour comprendre ce qu'il fait).
C'est donc à réserver aux cas complexes ou si la mémoire du Millenium devient trop petite pour le programme envisagé.

Je donne néanmoins un exemple ci-dessous : le même programme mais où les blocs AND et OR ont été remplacés par un seul bloc BOOLEAN. A la 1ère lecture, il est impossible de se rendre compte de ce que fait le BOOLEAN :

programme Millenium refroidissement nocturne boolean

Les paramètres du bloc BOOLEAN équivalent aux deux blocs AND et OR :

paramètres BOOLEAN refroidissement nocturne

A noter : Dans les régions où la nuit reste chaude en été, après des tirages d'eau chaude abondants le soir qui ont refroidi le bas du ballon, il arrive que l'installation solaire se mette en marche la nuit.
En effet, les capteurs étant plus chauds que le bas du ballon, le circulateur se met en route.
Si cela se produit souvent, il faut ajouter une condition au démarrage du circulateur en mode collecte solaire : l'horaire de jour, via un bloc TIME PROG.

Haut de page


 Le bypass sur la boucle solaire

Lorsque la boucle solaire est très longue, à chaque mise en marche du circulateur solaire, du caloporteur froid entre dans l'échangeur du ballon, alors que du caloporteur tiède part vers les capteurs.
Avant que le caloporteur réchauffé par les capteurs n'arrive à l'échangeur du ballon, on prend de la chaleur au ballon.

Ce phénomène est aggravé dans les conditions suivantes :

  • les lignes solaires sont longues (le caloporteur chaud met plus de temps à arriver, sa vitesse de circulation est typiquement entre 0,5 et 1 m/s)
  • les lignes passent dans un environnement froid (extérieur ou local non chauffé), surtout à la mauvaise saison
  • les lignes sont mal isolées
  • le soleil est intermittent (les pertes du démarrage sont mal couvertes par les gains solaire)

Pour les installations où les lignes sont extérieures et longues, et où ces pertes de démarrage sont un problème, on peut installer un bypass sur la boucle solaire.
Il s'agit d'un court-circuit proche du ballon solaire qui permet de faire fonctionner la boucle solaire sans entrer dans l'échangeur. Ainsi, on peut attendre l'arrivée du caloporteur chaud pour le faire circuler dans l'échangeur solaire.

schéma hydraulique bypass solaire

Ce bypass peut être réalisé de plusieurs manières, mais nécessite le plus souvent une vanne 3-voies Tout-Ou-Rien (TOR) (ou deux vannes 2-voies).

La commande de cette vanne peut être faite de plusieurs manières :

  1. Sur temporisation : on ouvre la vanne de bypass avant le démarrage du circulateur solaire, et on attend un temps donné avant de fermer le bypass. Le temps avant fermeture est déterminé en fonction de la distance entres capteurs et ballon et la vitesse de circulation du caloporteur.
  2. Sur détection de température assez chaude dans le bypass : une sonde de température est installée avant le bypass. La vanne de bypass est fermée quand une température suffisante est détectée. La température suffisante peut par exemple être réglée à 20°C.
  3. Sur détection d'une température dans le bypass supérieure à celle du bas du ballon solaire : cette solution n'est pas plus complexe en matériel que la précédente puisque la sonde sur le bas du ballon existe déjà : c'est celle utilisée pour décider si le circulateur solaire doit être mis en route. A complexité matérielle équivalente, et à l'aide d'un programme à peine plus compliqué, elle est plus efficace que la précédente.

Le programme ci-dessous utilise la solution 1, qui ne nécessite pas de sonde de température.
Il suppose que la vanne 3-voies est fermée (non passante) en l'absence de commande, et que la fermeture se fait automatiquement (en général par un ressort) lorsque la commande est est interrompue. Le caloporteur passe dans le bypass seulement quand la commande de la vanne est active.
On utilise simplement une temporisation B/H (une minuterie) en mode H car il arrête automatiquement la temporisation si l'entrée passe à 0 pendant la temporisation. Cela a pour but de désactiver la vanne si la circulation s'arrête alors qu'elle est encore passante.

La valeur de la temporisation devra être réglée selon le temps que met le caloporteur à aller des capteurs vers le ballon. Le mieux est de mettre sa main sur le tuyau de bypass quand le circulateur solaire se met en route et de chronométrer le temps nécessaire pour que le tuyau devienne chaud.

programme Millenium bypass temporisé

Le paramétrage du bloc TIMER B/H (la temporisation est à 20 secondes dans cet exemple) :

programme Millenium bypass temporisé paramètres TIMER B/H 

Ci-dessous, un 2ème programme un peu plus complexe, qui utilise la solution 3. Il nécessite par contre une sonde de température sur le bypass.
La vanne est fermée (donc passante) si la température du bypass est plus froide que le bas du ballon. Comme toujours, on ne fait pas une comparaison simple des températures mais on utilise un hystérésis entre deux températures proches pour éviter les oscillations de décision.
Le bloc AND évite de manoeuvrer la vanne de bypass alors qu'il n'y a pas de circulation et la laisse se refermer dès que la circulation solaire s'arrête.

programme Millenium bypass différentiel

Haut de page


La circulation interdite si les capteurs sont trop chauds

Quand l'installation est en stagnation (pour rappel, cela signifie qu'il y a de la chaleur solaire à collecter mais que le caloporteur ne circule pas), les capteurs atteignent leur température maximale car ils continuent à collecter de la chaleur mais le caloporteur ne leur reprend pas.

La température est en général suffisante pour vaporiser le caloporteur contenu dans les capteurs (la température dépend de la pression dans la boucle solaire), augmentant la pression dans la boucle solaire.

Si après un tirage de chaleur (chauffage ou eau chaude) dans le ballon, les conditions de redémarrage de la boucle solaire sont satisfaites, le circulateur va se mettre en route. Du caloporteur froid ou tiède va alors entrer dans les capteurs à plus de 120 à 200°C (selon la nature des capteurs). Cela va provoquer des chocs thermiques et des bruits dûs aux poches de vapeur coincées par du liquide poussé par la pompe.

Il peut être souhaitable d'éviter ces problèmes en n'activant pas la circulation solaire tant que les capteurs sont trop chauds.

Le programme suivant est une évolution du programme de boucle solaire, modifié pour ne pas démarrer si les capteurs sont au dessus d'une température donnée :

programme Millenium capteurs trop chauds

La température limite doit être assez basse pour éviter la vaporisation, par exemple 110°C.
Ce paramètre devrait être réglable. Par contre, l'écart d'hystérésis peut être fixé, par exemple à 5K.
Exemple : si le bloc NUM "T max capteurs" est à 100°C et l'hystérésis est de 5K (dans le bloc GAIN), la circulation sera interdite dès que la température des capteurs atteindra 100°C, et le restera tant qu'elle ne descendra pas sous 95°C.

Attention au fait qu'en été, ce programme peut bloquer la collecte solaire jusqu'en fin d'après midi, c'est à dire jusqu'au moment où il n'y a plus beaucoup de chaleur à collecter. En effet, les capteurs refroidiront peu tant qu'il y a beaucoup de soleil.

A noter : deux facteurs augmentent la température de vaporisation dans un circuit fermé :
    • la pression : plus elle est haute, plus la température de vaporisation est élevée.
      Par exemple, l'eau pure vaporise à 100°C sous 1 bar, 120°C sous 2 bar et 135°C sous 3 bar.
    • la composition : la plupart des antigels, dont le propylène-glycol très utilisé dans les installations solaires, ont une température de vaporisation plus élevée que l'eau à la même pression. Le mélange eau / antigel a donc une température de vaporisation plus élevée que celle de l'eau (180°C pour le propylène-glycol, un mélange à moitié eau et propylène-glycol vaporise aux environs de 130°C sous 1 bar).
Haut de page

 

La circulation antigel

Lorsque l'installation solaire est dans un endroit où il peut geler l'hiver, elle doit être protégée pour éviter de gros dégats (éclatement des tuyaux, dans les lignes ou dans les capteurs).

Il y a plusieurs méthodes de protection, plus ou moins complexes et efficaces :

  1. Avoir une installation auto-vidangeable, c'est-à-dire que la boucle solaire n'est remplie que lorsqu'il y a de la chaleur solaire à capter. S'il gèle et qu'il n'y a pas de chaleur solaire à capter, la boucle solaire est vide, et ne peut donc geler.
  2. Utiliser un mélange d'eau et d'antigel dans la boucle solaire. L'antigel est typiquement du propylène glycol (produit non toxique). La proportion antigel/eau doit bien sûr être établie en fonction de la température la plus froide possible dans la région de l'installation (prendre de la marge).
  3. Activer le circulateur solaire quand la température approche celle du gel. Ainsi, on préléve une petite quantité de chaleur dans le ballon pour réchauffer la boucle solaire. Cette méthode n'est réaliste que si les températures extérieures ne sont pas trop basses et donc les risques de gel faibles.
    Dans le cas contraire, on va utiliser beaucoup d'énergie pour protéger l'installation.

Le programme ci-dessous utilise la méthode 3. Au dessous d'une certaine température (qui sera à régler), la circulation solaire est mise en route pour réchauffer la boucle solaire. Comme toujours, un hystérésis est utilisé pour la comparaison des températures afin d'éviter les oscillations.

programme Millenium antigel

A noter : la protection antigel dépend très fortement du choix des températures de mise en route et d'arrêt de la circulation antigel. Il faut donc être prudent et prendre un peu de marge car la sonde de température des capteurs peut donner des températures plus élevées que la réalité.

Haut de page


La baisse volontaire du rendement

Nous avons déjà vu deux méthodes de lutte contre la surchauffe :

  • Suspendre simplement la collecte solaire quand le ballon atteint sa température maximale (voir la limitation de température). Cette méthode est simple mais a l'inconvénient de laisser les capteurs en stagnation, et de les soumettre à de hautes températures, qui sont préjudiciables à leur longévité.
  • Evacuer la nuit le trop-plein de chaleur afin de faire de la place pour la chaleur collectée le jour à venir. Cette méthode ne fonctionne pas avec tous les capteurs et a l'inconvénient de consommer de l'électricité.

Une autre méthode est de laisser l'installation en fonctionnement mais en diminuant son rendement pour capter le moins de chaleur possible.

Le rendement d'un capteur solaire donné dépend de la différence de température entre le capteur et l'air extérieur. Plus cet écart est important, plus les pertes thermiques du capteur sont élevées, moins il collecte de chaleur.
Nous allons donc faire fonctionner les capteurs à une température haute de manière à diminuer leur rendement. Ainsi l'installation fonctionnera, les capteurs ne seront pas en stagnation, mais ils collecteront moins de chaleur.

Bien sûr, tant que le ballon n'est pas assez chaud, la boucle solaire fonctionne de manière normale.
En résumé :

  1. Si le ballon n'est pas encore chaud : mode normal, on collecte autant de chaleur qu'on peut.
  2. Si le ballon est chaud mais la température maximale n'est pas atteinte : mode dégradé, on collecte mais aussi peu que possible.
  3. Si le ballon est trop chaud (il a atteint la température maximale) : stagnation, on ne collecte plus.

Les seuils de température (ballon chaud et ballon trop chaud) sont à fixer avec soin. Comme l'objectif est d'éviter le cas 3 (stagnation), il faut choisir le seuil "chaud" assez bas pour avoir de la marge de stockage de chaleur, mais assez haut pour que l'eau du ballon soit utilisable.

Le mode dégradé est obtenu simplement en ne faisant fonctionner le circulateur solaire que si la température des capteurs est haute. Cette température "haute" des capteurs doit être définie selon l'installation mais doit être dans tous les cas supérieure aux températures seuils du ballon ("chaud" et "trop chaud") sinon la collecte ne se déclenchera pas mais sous la température de vaporisation du circuit solaire.

Le programme suivant fait exactement ça. Il évalue quatre conditions :

  • Collecte solaire possible (car le bas du ballon est plus froid que les capteurs)
  • Ballon chaud (la température du bas du ballon est supérieure à un seuil, par exemple 60°C)
  • Ballon trop chaud (la température du ballon est supérieure à la température maximale, par exemple 90°C).
    A noter que si la condition "ballon trop chaud" est vraie, la condition "ballon chaud" l'est aussi.
  • Capteurs à haute température (la température des capteurs est supérieure à une valeur fixée, par exemple 100°C)

Ces quatre conditions sont alors combinées pour décider si le circulateur solaire doit fonctionner.
La combinaison des conditions étant assez complexe, elle est donnée par la configuration d'un bloc BOOLEAN.

En résumé, pour que le circulateur fonctionne, il faut que :

  • la collecte solaire soit possible
  • ET le ballon ne soit pas trop chaud
  • ET
    • soit le ballon ne soit pas chaud
    • soit il est chaud ET les capteurs sont à haute température

En mode dégradé, la circulation diminue la température des capteurs, ils vont donc rapidement quitter leur état "haute température", ce qui aura pour effet d'arrêter la température.
Comme on veut éviter que la circulation solaire oscille trop rapidement entre marche et arrêt, on amortit les oscillations par une temporisation, typiquement de quelques minutes.

programme Millenium bas rendement

 

Le paramétrage du bloc BOOLEAN, qui combine les conditions pour calculer la décision :

paramètres BOOLEAN baisse rendement

A noter : Baisser le débit de la boucle solaire a un effet similaire : il augmente la température moyenne des capteurs et diminue donc son rendement. Cela peut être un réglage d'été pour limiter les surchauffes (cas des SSC : Systèmes Solaires Combinés pour eau chaude et chauffage). 

Haut de page

Le mode vacances

Il peut être intéressant d'avoir un mode où la régulation solaire gère au mieux l'absence de consommation en évitant au maximum les stagnations.

Dans ce mode, on fonctionne en rendement dégradé même si le ballon n'est pas chaud. Si le refroidissement norcture fonctionne pour le type de capteurs utilisés, on peut combiner la dégradation de la collecte le jour et le refroidissement nocturne.

Ci-dessous un programme qui est version modifiée du programme de la rubrique ci-dessus. J'ai ajouté une entrée indiquant le mode vacances. Les conditions de fonctionnement en mode vacances sont les suivantes :

Pour que le circulateur fonctionne, il faut que :

  • la collecte solaire soit possible
  • ET le ballon ne soit pas trop chaud
  • ET les capteurs sont à haute température

<programme à insérer>

Haut de page


 

Une entrée Millenium avec un interrupteur simple 

Dans la plupart des applications, on a besoin de régler certains paramètres de manière simple, par exemple, chauffage actif/inactif, forçage du chauffage, etc.

On peut programmer une touche ou une séquence de touches du Millenium pour faire ça.
Mais cela peut être intimidant pour une personne ne connaissant pas le Millenium, et qui aura peur de dérégler quelque chose.

Pour une simple entrée TOR , il peut être pratique d'agir sur un interrupteur ordinaire avec une étiquette claire au lieu de toucher le Millenium.

J'indique donc dans cette rubrique comment câbler une telle entrée.
On utilise un interrupteur ordinaire (fabriqué pour le 230 V) câblé sur le + (12 V ou 24 V) de l'alimentation du Millenium. La sortie de l'interrupteur est alors connectée sur une des entrées de Millenium.
Cette entrée peut alors être utilisée comme une entrée TOR dans votre programme.

<schéma électrique à insérer> 

Haut de page


L'installation avec deux ballons

Les installations avec deux ballons sont assez courantes.
On est souvent amené à utiliser deux ballons dans une installation combinée chauffage + eau chaude sanitaire (un SSC : Système Solaire Combiné).

Un SSC peut utiliser un seul ballon combiné (l'eau de chauffage et l'ECS sont chauffées dans le même ballon) ou un ballon pour le chauffage et un ballon pour l'Eau Chaude Sanitaire (ECS).

Nous avons donc un champ de capteur et deux ballons à chauffer, l'un contenant de l'eau de chauffage, l'autre de l'ECS.
L'installation hydraulique est telle que la régulation peut choisir vers quel ballon elle envoie la chaleur solaire. Le moyen hydraulique de sélection peut être :

  • deux circulateurs (un pour desservir chaque ballon),

  • un seul circulateur et une vanne TOR (Tout-Ou-Rien) dirigeant le caloporteur vers un ballon ou l'autre.

C'est cette dernière méthode que nous supposerons utilisée dans la suite (mais dériver un programme pour l'autre est facile).

Comme on ne peut chauffer via le solaire que si les capteurs sont plus chauds que le bas d'un ballon, nous avons besoin d'une sonde en bas de chacun des ballons.
Ainsi la régulation peut savoir à tout moment quel ballon peut être chauffé en comparant la température des capteurs avec celle du bas de chacun des ballons.

Si un seul ballon peut être chauffé (car il est plus froid que l'autre ou si le chauffage est inutile car c'est la belle saison), c'est évidemment vers celui-ci que la chaleur solaire sera dirigée.

Le choix est plus difficile quand le solaire peut chauffer les deux ballons.
La "meilleure" stratégie dépend de l'utilisation de la chaleur faite dans la maison (horaire, température, quantité).
D'autre part, cette stratégie dépend de la saison car celle-ci impacte :

  • La quantité de chaleur solaire disponible : il y a bien plus de chaleur solaire en été qu'en hiver.
  • Le besoin : le besoin en ECS est assez stable dans l'année, mais le besoin en chauffage évolue pendant la période froide de l'année et devient nul l'été.

On peut penser à des stratégies complexes mais je ne vais en traiter que deux qui sont très courantes :

  • On ne chauffe que le ballon de chauffage à la saison froide quand le chauffage est actif (période froide de l'année), et seulement l'ECS quand le chauffage est arrêté.
  • On chauffe en priorité l'ECS jusqu'à une température fixée, puis on bascule sur le chauffage.

Priorité au chauffage à la saison froide et ECS à la belle saison

Dans cette stratégie, si on a le choix entre chauffer le ballon ECS et le ballon chauffage, on chauffe le ballon chauffage. Et on le chauffe tant que c'est possible, c'est à dire tant qu'il peut prendre de la chaleur.

On ne chauffe l'ECS que si on ne peut pas chauffer le ballon de chauffage car :

  • Il est trop chaud pour la température des capteurs
  • Il a atteint sa température maximale (cas assez rare à la saison froide car le chauffage consomme plus de chauffage que le solaire ne peut en apporter)
  • Le chauffage est coupé : c'est la belle saison

A noter : Le retour du chauffage est au minimum de 19-20°C, c'est donc la température du bas de ballon de chauffage. Par contre, en hiver, l'eau froide du réseau est souvent très froide (disons 8-10°C).
On voit donc que le matin, au démarrage de l'installation, il est possible que le solaire puisse chauffer le ballon ECS mais pas le ballon de chauffage.

On suppose que l'activation ou non du mode chauffage dépend d'une entrée du Millenium, qui pourra par exemple être câblée avec un simple interrupteur : actif l'hiver, inactif l'été (voir comment utiliser un interrupteur pour faire ça).
Le programme compare classiquement la température des sondes des deux ballons avec celle des capteurs pour déterminer s'il est possible de chauffer chaque ballon.
Il compare également la température des ballons avec leur température maximale respective.
Ensuite, il combine les différentes conditions pour déterminer si le circulateur doit tourner et la position de la vanne 3-voies.
On va supposer que la vanne 3-voies dessert le ballon ECS quand elle est inactive (à 0). C'est un choix empirique, le contraire est possible sans beaucoup modifier le programme.

On peut chauffer le ballon chauffage si le chauffage est actif ET si sa température est inférieure à celle des capteurs ET si sa température n'est pas supérieure à sa température maximale.

On peut chauffer le ballon ECS si sa température est inférieure à celle des capteurs ET si sa température n'est pas supérieure à sa température maximale.

Le circulateur tourne si on peut chauffer le ballon chauffage OU le ballon ECS.

La vanne 3-voies est par défaut sur le ballon ECS.
On l'active pour desservir le ballon chauffage si on peut chauffer le ballon chauffage.

programme Millenium 2 ballons prio chauffage

Télécharger ce programme 

Priorité à l'ECS jusqu'à une température fixée

Dans cette stratégie, c'est l'ECS qui est prioritaire tant qu'elle n'a pas atteint une température fixée (disons 50°C pour fixer les idées, ça doit être configurable).
On utilise la même trame que pour le programme précédent.

On peut chauffer le ballon chauffage si le chauffage est actif ET si sa température est inférieure à celle des capteurs ET si sa température n'est pas supérieure à sa température maximale.
On peut chauffer le ballon ECS si sa température est inférieure à celle des capteurs ET si sa température n'est pas supérieure à sa température maximale.

Le circulateur tourne si on peut chauffer le ballon chauffage OU le ballon ECS.

La vanne 3-voies est par défaut sur le ballon ECS.
On l'active pour desservir le ballon chauffage si on peut chauffer le ballon chauffage ET si le ballon ECS a atteint 50°C.

programme Millenium 2 ballons prio ECS

On voit que les deux programmes sont très semblables.
Le changement de stratégie n'impacte que quelques blocs logiques qui pilotent les sorties et la comparaison de la température ECS à la consigne.

C'est l'avantage d'avoir décomposé le programme en conditions calculées chacune par un ensemble distinct de blocs : le programme est lisible et modulaire.
Changer la stratégie si c'est nécessaire sera facile dans le futur.

Le principe à se rappeler : quand c'est compliqué, que de nombreuses conditions s'imbriquent, on décompose en petites conditions faciles à écrire et à tester, et on les combine ensuite jusqu'à former les conditions les plus complexes.

A noter : Cette section parle de deux ballons, mais le principe des programmes fonctionne aussi si le chauffage est fait de manière différente, par exemple par envoi en direct du caloporteur solaire dans un circuit à basse température (plancher chauffant ou mur chauffant), ou par utilisation d'un échangeur de chaleur.

Haut de page


L'installation avec deux champs de capteurs

L'orientation idéale des capteurs plein sud ou éventuellement sud sud-est / sud sud-ouest est parfois impossible à obtenir (toit orienté différemment, masques, etc.)
Dans ces cas là, on peut avoir deux champs de capteurs, l'un vers l'est, l'autre vers l'ouest (par exemple, un sur chaque versant du toit).

A noter : Plus un champ de capteur est loin de l'azimut sud, moins il faut l'incliner car sinon il présente sa tranche à l'heure du midi solaire.

Le pilotage d'une telle installation est différent de celui d'une installation avec un seul champ, car les deux champs ont des heures différentes d'exposition .

Pour cela, on pilote les deux champs comme deux installations différentes, il faut donc :

  • Une sonde de température dans chaque champ de capteurs : ces sondes perrmettent à la régulation de savoir à tout moment si chaque champ peut produire de la chaleur utile.
  • Un moyen d'activer la boucle solaire dans l'un ou l'autre des capteurs (et éventuellement les deux si leur orientation fait qu'ils peuvent produire ensemble). Ce moyen peut être :
    1. Deux circulateurs différents, un par champ de capteurs, pilotés de manière indépendante.
    2. Une vanne trois-voies TOR (Tout-Ou-Rien) avec un seul circulateur qui dirigera la circulation solaire dans un champ ou bien l'autre. La vanne 3-voies ne permet pas d'activer la circulation sur les deux champs de capteurs à la fois (la circulation va vers un champ quand l'entrée de la vanne est à 0, vers l'autre quand cette entrée est à 1). 

Programme avec deux circulateurs

Le programme ci-dessous est dérivé du pilotage simple d'un seul champ de capteurs mais avec une sonde dans chaque capteur et deux circulateurs. Si la régulation détecte que les deux champs de capteurs peuvent amener de la chaleur, les deux circulateurs sont mis en marche.

A noter : Une partie du circuit hydraulique (au moins l'échangeur solaire) est commune aux boucles solaires des deux capteurs : il faudra prendre des précautions (clapet anti-retour par exemple) pour que lorsque seulement un des champs est en circulation, son circulateur n'induise pas une circulation parasite dans l'autre champ.

programme Millenium 2 champs 2 circulateurs 

Programme avec un circulateur et une vanne 3-voies

Le programme ci-dessous fait la même chose, mais avec un seul circulateur et une vanne 3-voies qui détermine quel champ la boucle solaire doit utiliser.

Comme les deux champs ne peuvent pas fonctionner en même temps, comment choisir le champ à desservir si les deux sont assez chauds ?

On peut concevoir un système complexe où l'on testerait celui amenant le plus de chaleur mais un des champs est en circulation alors que l'autre est à l'arrêt : la comparaison de température et de rendement entre les deux n'est pas facile.

Au lieu de cela, j'ai utilisé une simple sélection horaire : un champ est prioritaire le matin (car il est plus orienté vers l'est) alors que l'autre l'est l'après-midi (plus orienté vers l'ouest). Ce fonctionnement doit pouvoir convenir à la plupart des installations.

programme Millenium 2 champs 1 circulateur 1 v3v

Le circulateur est en marche si le champ A OU le champ B peut amener de la chaleur (ou les deux).
Quand la vanne 3-voies est inactive, l'installation utilise le champ A.
La vanne 3-voies est activée (à 1) pour utiliser le champ B si le champ B peut amener de la chaleur ET le champ B est prioritaire dans le créneau horaire en question.

Le fonctionnement est donc vers le champ A par défaut à moins que le TIME PROG indique l'inverse.
Le TIME PROG est donc à régler pour avoir sa sortie à 1 aux horaires où il faut privilégier le champ B.
Bien sûr, les heures du TIME PROG sont ajustables selon les installations et les tranches horaires peuvent être aussi complexes que voulu.

A noter : La méthode de sélection du champ à utiliser si les deux sont assez chauds peut être utilisée dans le programme avec deux circulateurs si des contraintes (généralement hydrauliques) empêchent que les deux champs soient utilisés en même temps.

Haut de page


Mémoriser certains événements

On peut avoir besoin que le Millenium garde la trace de certains événements plus ou moins anormaux afin que nous puissions vérifier plus tard s'ils se sont produits.

Un bon exemple est la surchauffe.
Nous avons déjà discuté de ses impacts et de différentes stratégies de programmation pour l'éviter.
Si une surchauffe se produit alors que nous sommes absents, et que tout rentre ensuite dans l'ordre, nous pouvons même ne pas savoir qu'elle s'est produite.

Pour éviter cela, nous voulons que le Millenium conserve des informations autour des surchauffes. Selon nos exigences, cela peut être une combinaison des informations suivantes :

  • l'horodatage (c'est-à-dire date et heure) du début de la 1ère surchauffe
  • l'horodatage du début de la dernière surchauffe
  • le nombre de fois où l'installation a été en surchauffe
  • le temps cumulé pendant lequel l'installation a été en surchauffe

Nous allons voir comment gérer ces informations pas à pas.
Pour chaque type d'information, il faut penser aux moyens de :

  • collecter l'information (au bon moment et de manière fiableà
  • stocker l'information (sans prendre trop de place)
  • la consulter pour l'utilisateur (de manière simple)
  • la remettre à zéro (par l'utilisateur ou automatiquement) si nécessaire

Mémoriser les date/heure d'un événement

Le bloc ARCHIVE est pratique pour faire ça : il permet de mémoriser 2 valeurs entières avec un horodatage.
Chaque demande de mémorisation écrase la précédente : le bloc ne se souvient donc que du dernier événement enregistré.

Dans notre exemple de surchauffe, nous n'avons pas de données intéressantes à stocker : nous savons que le ballon a atteint sa température maximale, et que la température des capteurs est légèrement supérieure à cette température maximale en début de surchauffe.
Nous n'utilisons donc que la mémorisation de l'horodatage.

On peut vouloir mémoriser la 1ère fois qu'un événement se produit ou la dernière :

Si l'on connecte l'indicateur de surchauffe à l'entrée d'un bloc ARCHIVE, chaque début de surchauffe va mettre à jour le bloc ARCHIVE en écrasant la mémorisation précédente. On mémorisera donc le début de la dernière surchauffe.

Si l'on veut mémoriser le début de la 1ère surchauffe,

Egalement, on peut vouloir mémoriser l'horodatage du début d'une surchauffe, ou l'horodatage de fin.
Dans notre de cas de surchauffe, si nous connectons l'indicateur de surchauffe à un bloc ARCHIVE, celui-ci sera mis à jour à chaque début de surchauffe (car ARCHIVE est mis à jour à chaque transition de 0 à 1 de son entrée "Mémorisation").
A l'inverse, si nous mettons un bloc logique NOT entre les deux, le bloc ARCHIVE sera mis à jour à chaque fin de surchauffe.

L'affichage d'un horodatage sur le Millenium est assez lourd car il nécessite au minimum 4 champs variables (jour, mois, heures et minutes) : c'est le maximum que peut afficher un bloc TEXT (le reste de l'écran doit alors être fixe), ou alors il faut au minimum 4 blocs DISPLAY (1 bloc DISPLAY n'affiche qu'une valeur), et comme le Millenium n'affiche que 8 blocs DISPLAY en même temps, on atteint vite la limite.

Le programme suivant illustre ceci.

Mémoriser le nombre de fois où un événement se produit

Cela peut servir par exemple à enregistrer le nombre de surchauffes.

Cela peut être fait simplement avec un bloc PRESET COUNT en mode "Compte vers la présélection" avec une présélection à 0. Le bloc compte le nombre de passage de son entrée "Comptage" de 0 à 1, et le compte courant est disponible sur la sortie "Valeur courante". Le compteur peut être remis à 0 en activant l'entrée "Initialisation". De plus, la valeur du compteur peut être sauvegardée en cas de coupure secteur.

Le programme suivant compte le nombre de surchauffes et affiche ce compte sur l'écran du Millenium. Une pression sur la touche B permet de remettre le compteur à 0.

programme Millenium 2 nombre de surchauffes

Avec le programme précédent, une phase de surchauffe durant toute une journée compte pour 1, alors que si l'installation oscille entre surchauffe et non surchauffe, chaque oscillation augmentera le compteur de 1. On voit donc que le nombre de phases de surchauffe n'est pas très utile.

Un indicateur plus significatif est le nombre de jours avec au moins une surchauffe sur un nombre de jours écoulés (avoir le nombre de jours avec surchauffe sans savoir depuis quand serait sans valeur !).

C'est ce que fait le programme suivant. Il tient à jour deux blocs PRESET COUNT : l'un comptant les jours, l'autre les jours avec surchauffe.
La bascule SET RESET mémorise si une surchauffe a eu lieu aujourd'hui : chaque début de surchauffe active son entrée "Set".

Le bloc TIME PROG assure que tous les jours à 0h00, les actions suivantes sont faites :

  • On ajoute 1 au PRESET COUNT comptant le nombre de jours.

  • On ajoute 1 au PRESET COUNT comptant le nombre de jours avec surchauffe si la bascule SET RESET est à 1 (car il y a eu au moins une surchauffe dans la journée).

  • On remet à 0 la bascule SET RESET pour le jour suivant.

<programme à insérer>

Mémoriser et cumuler un temps

Nous avons déjà mémorisé et cumulé un temps dans la section traitant du cumul du temps de fonctionnement (du circulateur solaire) en utilisant un bloc PRESET H-METER.

Cumuler le temps de surchauffe est facile : il suffit de connecter l'entrée d'un PRESET H-METER à l'indicateur de surchauffe. Le PRESET H-METER agit alors comme un chronomètre et cumule le temps total pendant lequel il y a surchauffe.

Le bloc PRESET H-METER met à disposition le temps cumulé courant sur deux sorties : "nombre d'heures" et "nombre de minutes", ce qui nécessite deux blocs DISPLAY ou deux champs dans un bloc TEXT. Il sera souvent pratique de simplifier l'affichage en traduisant tout en minutes, ce qui réduit à un le nombre de valeurs à afficher.
La traduction d'heures et minutes en minutes se fait facilement via un bloc GAIN (qui multiplie le nombre d'heures sortant du bloc PRESET H-METER par 60) et un bloc +- pour ajouter la sortie du bloc GAIN avec le nombre de minutes sortant du bloc PRESET H-METER.

Le programme suivant fait exactement ça, avec l'affichage du temps cumulé et une remise à zéro via la touche B.

<programme à insérer>

Une utilisation combinée

A titre d'exemple, nous allons combiner les différents programmes pour obtenir une fonctionalité complète. Le programme suivant offre les fonctions suivantes :

  • Compte le nombre de jours depuis la dernière remise à zéro.
  • Compte le nombre de jours depuis la dernière remise à zéro où au moins une surchauffe s'est produite.
  • Cumule le temps total de surchauffe depuis la dernière mise à zéro.
  • Conserve l'horodatage du début de la dernière surchauffe. 

Ces informations sont affichées via la touche A et la touche B permet la remise à zéro.

<programme à insérer>

Haut de page


Le pilotage d'un circulateur à plusieurs vitesses

Certains installations sont équipées d'un circulateur à plusieurs vitesses (typiquement 3) commandables électriquement.

Les différentes vitesses permettent de modifier le débit dans la boucle solaire et ainsi la température de collecte.
Un débit lent ("low flow") est recherché quand on veut que la boucle solaire monte en température. Cela diminue le rendement des capteurs (car leur température plus haute augmente leur pertes thermiques) mais est intéressant s'il on a besoin de températures plus hautes.
Un débit rapide ("high flow") est utilisé pour maximiser l'énergie collectée à une température raisonable.
Les systèmes optimisant la vitesse du circulateur pour maximiser la collecte sont appelés "mixed flow".

Je présente ci-dessous le pilotage d'un circulateur à 3 vitesses pour un tel système.
La stratégie de pilotage est d'utiliser la vitesse de circulation la plus rapide permettant de conserver un écart de température suffisant pour amener de l'énergie dans le ballon :

  • Quand l'écart de température devient insuffisant (pour réchauffer le bas du ballon), on essaie de diminuer le débit en utilisant une vitesse moins rapide.
  • Quand l'écart de température est important, on essaie d'utiliser une vitesse plus rapide pour augmenter la puissance de collecte.
  • A chaque changement de vitesse, une temporisation permet de stabiliser la température des capteurs avant de prendre une nouvelle décision. 

Le pilotage obtenu ressemble à celui d'une boite automatique automobile qui essaie de conserver un régime de rotation correct pour le moteur en fonction de contraintes qui varient (demande de vitesse, résistance à l'avancement, etc.)

Ce programme utilise un type de programmation Millenium un peu différent de celui vu jusqu'ici, basé sur un automate d'état. A un moment donné, l'automate est dans un seul état. Le passage d'un état à un autre est lié à des conditions externes vraie ou fausses.
Ce type de programmation simplifie les programmes où l'état du système est très structurant.

J'ai supposé que les 3 vitesses étaient activées par 3 relais du Millenium mais ceci peut être adapté.

Le programme utilise trois conditions de transition basées sur l'écart de température entre les capteurs et le bas du ballon (les 3 valeurs d'écarts de température sont utilisés à titre d'exemple et devront être ajustées selon l'installation et le besoin) :

  • L'écart est supérieur à 20K : Les capteurs fournissent beaucoup de puissance et le débit pourrait être augmenté en gardant un écart suffisant pour réchauffer le bas du ballon.
    Quand cette condition est vraie, le programme active la vitesse supérieure s'il n'est pas déjà à la vitesse maximale.
  • L'écart est supérieur à 10K : Les capteurs fournissent une puissance suffisante pour réchauffer le bas du ballon, mais cette puissance ne permettra pas d'augmenter le débit.
    Quand cette condition est vraie et que l'écart n'est pas supérieur à 20K, le programme laisse le circulateur sur la vitesse actuelle.
  • L'écart est inférieur à 5K : Cela signifie que les capteurs ne fournissent pas assez de puissance pour réchauffer suffisamment le caloporteur avec le débit courant.
    Quand cette condition est vraie, le programme active la vitesse inférieure à la vitesse courante. Si la vitesse est déjà la plus lente, le programme arrête le circulateur.

A chaque fois que le programme change la vitesse du circulateur, un état de stabilisation est prévu avec la nouvelle vitesse. Son objectif est d'attendre que la température des capteurs se stabilise avec le nouveau débit. La durée de ces états est aussi à adapter selon l'installation (elle doit permettre au fluide solaire de parcourir toute la boucle solaire afin de stabiliser sa température).
Ces états d'attente évitent aussi les oscillations trop rapides entre les vitesses (bien qu'utiliser des valeurs éloignées pour les transitions doit déjà les éviter).

programme Millenium de pilotage d`un circulateur solaire à 3 vitesses

 

Télécharger ce programme

Le programme peut facilement être adapté à un nombre différent de vitesses, en gardant le même principe : l'état d'une vitesse est toujours précédée d'un état de stabilisation. Les transitions de l'état d'une vitesse permettent d'aller soit vers l'état de stabilisation de la vitesse inférieure (si l'écart de température devient insuffisant), soit vers l'état de stabilisation de la vitesse supérieure (si l'écart de température est important). Si l'écart de température est raisonable, on garde la vitesse courante.

Les valeurs à paramétrer selon l'installation sont :

  • les seuils de décision sur l'écart de température entre capteurs et bas du ballon
  • la durée des états de stabilisation

Lorsque le soleil cesse de briller alors qu'on utilisait la vitesse la plus rapide, la régulation rétrograde vers la vitesse médiane, puis vers la vitesse la moins rapide. le circulateur continue donc à tourner pendant au moins deux fois la durée de l'état de stabilisation avant de s'arrêter.
Si l'on veut obtenir un arrêt plus rapide (par exemple parce que la durée de stabilisation est longue et que l'on a peur de perdre de la chaleur pendant le rétrogradage jusqu'à l'arrêt), on peut ajouter un critère de transition sur l'inversion de l'écart de température (le capteur devient plus froid que le bas du ballon). Ce critère peut être utilisé afin de faire un arrêt immédiat du circulateur s'il devient vrai.

Haut de page

 


Faire des statistiques

La régulation mesure différentes quantités : températures, temps, etc.


Calculer la moyenne d'une mesure

On peut avoir besoin de calculer la moyenne d'une de ces quantités pendant un certain temps ou pendant un état de fonctionnement.
Ce type de statistiques peuvent permettre d'affiner les réglages et d'améliorer le rendement de l'installation.

Des exemples dans le domaine solaire : la moyenne de l'écart de température entre le capteur et le bas du ballon solaire, la moyenne de température du retour chauffage.

Ce n'est pas une fonction très complexe avec le Millenium mais elle exige quelques précautions.
Tout d'abord, le Millenium a un bloc appelé STORE qui permet d'archiver des valeurs et de garder leur minimum, leur maximum et leur moyenne. Mais il n'archive que 8 valeurs, et la moyenne est calculée sur ces 8 valeurs.
Cela peut suffire pour certains usages, mais nous voulons faire la moyenne d'une mesure prise réguliérement pendant un temps assez long, typiquement plusieurs centaines de mesures prises sur plusieurs heures.

Pour être concret, nous allons prendre le calcul de la moyenne de l'écart de température entre les capteurs et le bas du ballon pendant que la circulation solaire est en marche.
Surveiller cet écart peut être intéressant car il peut permettre d'ajuster le débit de la boucle solaire.

Comment calculer la moyenne de plusieurs mesures ?

Tout le monde sait le faire, on fait la somme de toutes les mesures et on divise par le nombre de mesures.
Dans notre cas, nous avons potentiellement des centaines de mesures, nous ne pouvons donc pas les garder toutes et faire leur somme à chaque fois que nous avons besoin de leur moyenne.

Nous allons donc juste garder la somme des mesures obtenues jusque là et le nombre de ces mesures. Pour obtenir la moyenne, il suffit de faire la division de la somme des mesures par le nombre de mesures.
Pour prendre en compte une nouvelle mesure, on l'ajoute à la somme des mesures précédentes et on ajoute 1 au nombre de mesures.

On va stocker le cumul dans un bloc STORE (qui est l'équivalent de la mémoire d'une calculatrice) et utiliser un bloc +- pour calculer la somme entre le contenu du bloc STORE et la nouvelle mesure.
Pour compter le nombre de mesures, un bloc PRESET COUNT fera l'affaire.
La moyenne sera calculée par un bloc */ divisant le contenu du bloc STORE par celui du bloc PRESET COUNT.
Comme nous ne voulons prendre les mesures que périodiquement (par exemple toutes les 2 minutes), un bloc TIMER clignoteur (TIMER Li) est utilisé pour battre la cadence et indiquer à quel moment nous voulons prendre en compte la mesure. L'activation de ce bloc correspond à la période pendant laquelle nous voulons mesurer la moyenne des mesures.

Tout cela doit bien marcher, néanmoins on peut faire la moyenne de combien de mesures ?
En bref, quelles sont les limites de notre petit programme ?

Un bloc PRESET COUNT peut compter jusqu'à 32767.
Avec une mesure toutes les 2 minutes, cela permet de stocker plus de 45 jours de mesures.

Un bloc STORE est lui aussi limité à un entier entre -32768 et 32767. Si l'écart de température est compris entre 2 et 10 degrés (valeur standard pour une installation solaire bien réglée), on peut cumuler entre 7 et 8 jours de mesures.
Cela ne pose pas de problème si nous voulons la moyenne de la journée (avec une remise à zéro quotidienne), mais ça ne suffit pas si nous la voulons au mois.

Plusieurs stratégies sont possibles pour augmenter le temps de cumul :

  • On peut réduire la période de mesure : cela fait cumuler moins de mesures par heure et augmente la durée possible. Si on double la période de mesure, on double aussi la durée possible.
    Ce n'est possible que si le phénomène mesuré est stable, car cela réduit la précision.

     
  • On peut réduire la valeur des mesures : si la mesure est grande (par exemple une température de sonde), elle a souvent une fourchette de valeur limitée. On peut soustraire à chaque mesure la valeur minimum de la fourchette et cumuler le résultat. Lorsqu'on calcule la moyenne, il suffit d'ajouter la valeur minimum de la fourchette pour retrouver la bonne moyenne.

Exemple : nous voulons la moyenne de la température des capteurs pendant que le circulateur solaire tourne. Nous savons que cette température est comprise entre 20 et 60°C. Nous soustrayons 20 de toutes les mesures et cumulons les nombres obtenus.
Au lieu de cumuler 20 25 30 35, nous allons cumuler 0 5 10 15, ce qui fait augmenter le contenu du bloc STORE moins vite. Quand nous divisons le cumul des 4 mesures par 4, nous obtenons une moyenne de 7,5. Il faut alors lui ajouter 20 pour obtenir la moyenne exacte : 27,5.

Que se passe t-il si ça "déborde" ?

Si le bloc +- détecte que le résultat du cumul est trop grand, il met à ON sa sortie "Erreur/Débordement" et le résultat est la valeur maximale : 32767. Si on atteint cette limite et que nous ne la gérons pas, la moyenne sera fausse.
Si nous pouvons garantir que la limite ne sera jamais atteinte dans le programme, nous pouvons ignorer le problème. Sinon il faut gérer le problème.

Haut de page


A venir... 

J'ai reçu quelques demandes et certains sujets n'ont pas été traités..

Par contre, je ne veux volontairement pas tomber dans le traitement de tous les cas possibles, l'objectif est d'expliquer les principes via des "briques" de base. L'avantage du Millenium étant que chacun peut prendre les briques dont il a besoin sur sa propre installation et les assembler.

- Le pilotage complet d'une installation avec un ballon combiné ECS/chauffage, avec préchauffage du retour pour le chauffage et appoint chaudière pour l'ECS.
Ce programme reprendra celui fait pour un CESI en ajoutant les fonctions nécessaires.

- La journalisation d'une température périodiquement

Haut de page 


 

 
Afficher la suite de cette page



Créer un site
Créer un site