' Programmation structurée pour le MENU. - Version: 1.5 du 08/06/2011. ' -------------------------------------------------------------------- BEGIN GOSUB Initvar GOSUB Initmicro GOSUB Initaffi DO WHILE J = 0 ' Début de la boucle infinie LET MnuAdres = BaseAdres + 37 * (MnuNum - 1) LET Ligne1$ = MnuAdres LET Ligne2$ = MnuAdres + 16 LET MnuPosCur = MnuAdres + 32 LET MnuActHorlo = MnuAdres + 33 LET MnuActAntiH = MnuAdres + 34 LET MnuActRet = MnuAdres + 35 LET MnuIndiVar = MnuAdres + 36 LET RetroLcd = 1 ' Allumage du Rétro-éclairage GOSUB Affilcd ' Affichage des 2 lignes IF MnuPosCur > 0 THEN Afficher et positionner le Curseur à MnuPosCur ELSE Faire clignoter le caractère à MnuPosClig ENDIF IF Compteur > CompteurOld THEN ' Molette dans le Sens horlogique LET TempoEnco = 0 ' Réinitialisation de TempoEnco IF MnuActHorlo < 128 THEN ' Si MnuActHorlo plus petit que 128 LET MnuNum = MnuActHorlo ' on va à la ligne du Menu suivant ELSE ' la valeur de MnuActHorlo, sinon, LET Indice%(MnuIndiVar) + 1 ' On incrémente la variable IF Indice%(MnuIndiVar) > LimitHaut ' Si on dépasse la limite haute, LET Indice%(MnuIndiVar) = LimitBas' On met à la limite basse ENDIF LET Indice%(MnuIndiVar) = Indice%(MnuIndiVar)/Divise ' On divise pour ' ramener à la bonne valeur GOSUB MiseAJourVariable ' Mise à jour de la Variable ENDIF LET CompteurOld = Compteur ' Mise à jour de CompteurOld ELSEIF Compteur < CompteurOld THEN ' Molette Sens anti-horlogique LET TempoEnco = 0 ' Réinitialisation de TempoEnco IF MnuActAntiH < 128 THEN ' Si MnuActAntiH plus petit que 128 LET MnuNum = MnuActAntiH ' on va à la ligne du Menu suivant ELSE ' la valeur de MnuActAntiH, sinon, LET Valeur = LET Indice%(MnuIndiVar) - 1 ' On décrémente la variable IF Indice%(MnuIndiVar) > LimitBas ' Si on dépasse la limite basse, LET Indice%(MnuIndiVar) = LimitHaut' On met à la limite haute ENDIF LET Indice%(MnuIndiVar) = Indice%(MnuIndiVar)/Divise ' On divise pour ' ramener à la bonne valeur GOSUB MiseAJourVariable ' Mise à jour de la Variable ENDIF LET CompteurOld = Compteur ' Mise à jour de CompteurOld ELSEIF Bouton = 1 THEN ' Bouton appuyé (axe de la Molette) LET TempoEnco = 0 ' Réinitialisation de TempoEnco IF MnuActRet = 130 THEN ' Si MnuActRet = 130, LET J = 1 ' On quitte le Menu, affichage normal ELSEIF MnuActRet < 128 THEN ' Si MnuActRet plus petit que 128 LET MnuNum = MnuActRet ' on va à la ligne Menu correspondante ELSEIF MnuActRet > OR = 131 AND MnuActRet < OR = 134 THEN LET NumCycle = MnuActRet - 130 ' Sélection du "Cycle" correspondant ELSEIF MnuActRet > OR = 135 AND MnuActRet < OR = 141 THEN LET Jour = MnuActRet - 134 ' Sélection du "Jour" correspondant Let MnuNum = 54 ' On saute à la ligne 54 du Menu ELSEIF MnuActRet = 142 THEN ' Si MnuActRet = 142, alors GOSUB SupprimePlage ' Suppression de la Plage en cours LET MnuNum = 31 ' On retourne à la ligne 31 du Menu ELSEIF MnuActRet > OR = 143 AND MnuActRet < OR = 144 THEN LET TypeVanne = MnuActRet - 143 ' 0 = Vanne à positionement ou 1 = ENDIF ' Vanne Analogique ELSEIF TempoEnco > 30 ' Dépassement de la valeur prédéfinie LET J = 1 ' On quitte le Menu, affichage normal ENDIF ENDDO ' Fin de la boucle infinie LET RetroLcd = 0 ' Extinction du Rétro-éclairage END ' ****************************************************************************** ' Sous-routines ' ------------- ' Initvar ' ------- ' Description : Définition et initialisation des variables ' Variables d'entrées : Aucune ' Variables de sorties : Toutes les variables du programme ' Variables de travail : Aucune ' Sousroutines appellées : Aucune SUB Initvar ' Début de la routine DECLARE J AS BIT ' Variable de travail DECLARE L AS BIT ' Variable de travail DECLARE N AS BIT ' Variable de travail DECLARE RetroLcd AS BIT ' 1=ON, 0=OFF - Cde du rétroéclairage du LCD DECLARE Bouton As BIT ' Lecture du Bouton (0 = repos, 1 = Appuyé) DECLARE MoletteA As BIT ' Sortie A de l'encodeur Int0 et Int1 DECLARE MoletteB As BIT ' Sortie B de l'encodeur DECLARE PompeChau AS BIT ' 1 = ON, 0 = OFF - Commande du relais + Led1 DECLARE PompeECS AS BIT ' 1 = ON, 0 = OFF - Commande du relais + Led2 DECLARE BruleurVanne AS BIT ' 1 = ON, 0 = OFF - Commande du relais + Led3 DECLARE Vanne AS BIT ' 1 = ON, 0 = OFF - Commande du relais + Led4 DECLARE TypRegulation AS BIT ' 0 = Chaudière, 1 = Vanne à 3 voies DECLARE TypVanne AS BIT ' 0 = vanne On/Off, 1 = vanne analogique DECLARE Plage AS BIT ' Si on est dans une plage programmée, Plage = 1 DECLARE StartCourbe AS BIT ' 0 ou 1, car il faut minimum un cycle avant de ' pouvoir optimiser la courbe de chauffe DECLARE Ib AS BYTE ' Variable de travail DECLARE Kb AS BYTE ' Variable de travail DECLARE Sb AS BYTE ' Variable de travail DECLARE Annee As BYTE ' de 0 à 99 DECLARE Mois As BYTE ' de 1 à 12 DECLARE JourDate As BYTE ' de 1 à 31 suivant les mois DECLARE Heure As BYTE ' de 0 à 23 DECLARE Minute As BYTE ' de 0 à 59 DECLARE TempMaxEau As BYTE ' Température maximum chaudière (Constructeur) DECLARE TempECS AS WORD ' Température fixée pour l'eau chaude sanitaire DECLARE HysTempEau As BYTE ' Hystérésis température eau radiateur DECLARE HysTempECS As BYTE ' Hystérésis température eau ECS DECLARE NumCycle As BYTE ' Numéro de cycle (1 à 4) DECLARE Jour As BYTE ' de 1 à 7 DECLARE NumPlage As BYTE ' Numéro de plage horaire (1 à 96) DECLARE JourPlage As BYTE ' Jour correspondant à la plage horaire (1 à 7) DECLARE PlageWeek(28) AS BYTE ' 4 Cycles par jour X 7 jours semaine = 28 DECLARE HDebutPlage As BYTE ' Heure de début de plage horaire (1 à 96) DECLARE DureePlage As BYTE ' Durée de la plage horaire par 1/4 heure DECLARE Tmpsrebond As BYTE ' Constante pour antirebond DECLARE TempoBtn AS BYTE ' Définis la longueur d'appuis sur Bouton DECLARE TempoEnco AS BYTE ' Détermine la durée d'inactivité de l'Encodeur DECLARE MnuAdres AS BYTE ' Position dans la mémoire du microcontrôleur DECLARE BaseAdres AS BYTE ' 1ère position des Datas "MENU" dans la mémoire DECLARE TempExtMoy AS BYTE ' Température extérieure moyenne sur 24 heures DECLARE TempIntMoy AS BYTE ' Température intérieure moyenne sur 24 heures DECLARE MnuPosCur AS BYTE ' Menu Adresse + 32 DECLARE MnuActHorlo AS BYTE ' Menu Adresse + 33 DECLARE MnuActAntiH AS BYTE ' Menu Adresse + 34 DECLARE MnuActRet AS BYTE ' Menu Adresse + 35 DECLARE MnuIndiVar AS BYTE ' Menu Adresse + 36 DECLARE Indice%(18) AS BYTE ' Matrice contenant les correspondances Indice ' et Form pour le format des nombres. DECLARE LimitBas%(18) AS BYTE ' Matrice contenant les limites basses DECLARE LimitHaut%(18)AS BYTE ' Matrice contenant les limites hautes DECLARE Divise%(18) AS BYTE ' Matrice contenant les Diviseurs DECLARE Form%(16) AS BYTE ' Matrice contenant les formats des nombres DECLARE Mw AS WORD ' Variable de travail DECLARE TempHabLue AS WORD ' Température lue à l'intérieure de l'habitation DECLARE TempExtLue AS WORD ' Température lue à l'extérieure DECLARE TempEauLue AS WORD ' Température lue d'eau départ radiateur DECLARE TempECSLue AS WORD ' Température lue d'eau chaude sanitaire DECLARE TempConsOld AS WORD ' Température de consigne précédente DECLARE JourSemaine$(7)AS ALPHA ' Les 7 jours de la semaine (8 Chars) DECLARE Ligne1$(16) AS ALPHA ' Première ligne d'affichage du LCD (16 Chars) DECLARE Ligne2$(16) AS ALPHA ' Deuxième ligne d'affichage du LCD (16 Chars) DECLARE Compteur AS INTEGER ' Définition du compteur DECLARE CompteurOld AS INTEGER ' Définition du compteur avec ancienne valeur DECLARE TempMiniExt As INTEGER ' Température minimim extérieure (fichier XLS) DECLARE HysTempHab As INTEGER ' Hystérésis température habitation en 1/2°C DECLARE TCycleJour(4)AS INTEGER ' Température du cycle Jour X 4 cycles/jour DECLARE TCycleNuit(4)AS INTEGER ' Température de cycle Nuit X 4 cycles/jour ' Initialisation des variables ' ---------------------------- LET J = 0 ' Initiation de la variable bit J LET L = 0 LET N = 0 LET kb = 0 LET Ib = 0 LET Sb = 0 LET Mw = 0 LET TCycleJour = 20 ' Température pour le cycle Jour LET TCycleNuit = 17,5 ' Température pour le cycle Nuit LET TempConsECS = 60 ' Température de consigne ECS LET TempMinExt = -9 ' Température Minimum Extérieure LET TempMaxEau = 80 ' Température Maximum de la chaudière LET HysTempEau = 5 ' Hystérésis de température d'eau chaudiére LET HysTempHab = 0,5 ' Hystérésis de température de l'habitation LET HysTempECS = 5 ' Hystérésis de température ECS LET Regulation = 0 ' 0= régulation chaudière, 1= vanne à 3 voies LET TypeVanne = 0 ' 0= vanne à positionement, 1= vanne analogique LET MnuNum = 1 ' Premier élément du Menu (11a) LET TempoEnco = 0 ' Test si activité de l'encodeur LET Compteur = 0 ' Détermine le sens de la Molette LET CompteurOld = 0 ' Valeur précédente de Compteur LET Bouton = 0 ' Valeur de Bouton au repos LET RetroLcd = 0 ' Rétro-éclairage du LCD est éteint LET Tmpsrebond = 2 ' Défintion de la pause antirebond (à ajuster) LET Ligne1$ = " " LET Ligne2$ = " " LET Indice%(1) = NumCycle, LET Indice%(2) = JourPlage, LET Indice%(3) = HysTempHab, LET Indice%(4) = HysTempEau, LET Indice%(5) = HysTempECS, LET Indice%(6) = Annee, LET Indice%(7) = Mois, LET Indice%(8) = JourDate, LET Indice%(9) = Heure, LET Indice%(10) = Minute, LET Indice%(11) = TempECS, LET Indice%(12) = TempMaxEau, LET Indice%(13) = NumPlage, LET Indice%(14) = TempMiniExt, LET Indice%(15) = TCycleJour, LET Indice%(16) = TCycleNuit, LET Indice%(17) = HDebutPlage, LET Indice%(18) = DureePlage. LET LimitBas%(1) = 1, LET LimitBas%(2) = 1, LET LimitBas%(3) = 1, LET LimitBas%(4) = 1, LET LimitBas%(5) = 1, LET LimitBas%(6) = 0, LET LimitBas%(7) = 1, LET LimitBas%(8) = 1, LET LimitBas%(9) = 0, LET LimitBas%(10)= 0, LET LimitBas%(11)= 60, LET LimitBas%(12)= 50, LET LimitBas%(13)= 1, LET LimitBas%(14)=-30, LET LimitBas%(15)= 20, LET LimitBas%(16)= 20, LET LimitBas%(17)= 1, LET LimitBas%(18)= 1. LET LimitHaut%(1) = 4, LET LimitHaut%(2) = 7, LET LimitHaut%(3) = 10, LET LimitHaut%(4) = 10, LET LimitHaut%(5) = 10, LET LimitHaut%(6) = 99, LET LimitHaut%(7) = 12, LET LimitHaut%(8) = 31, LET LimitHaut%(9) = 23, LET LimitHaut%(10)= 59, LET LimitHaut%(11)= 85, LET LimitHaut%(12)= 90, LET LimitHaut%(13)= 96, LET LimitHaut%(14)= 0, LET LimitHaut%(15)= 50, LET LimitHaut%(16)= 50, LET LimitHaut%(17)= 96, LET LimitHaut%(18)= 96. LET Divise%(1) = 1, LET Divise%(2) = 1, LET Divise%(3) =10, LET Divise%(4) = 2, LET Divise%(5) = 2, LET Divise%(6) = 1, LET Divise%(7) = 1, LET Divise%(8) = 1, LET Divise%(9) = 1, LET Divise%(10)= 1, LET Divise%(11)= 1, LET Divise%(12)= 1, LET Divise%(13)= 1, LET Divise%(14)= 2, LET Divise%(15)= 2, LET Divise%(16)= 2, LET Divise%(17)= 1, LET Divise%(18)= 1. LET Form%(1) = 10, LET Form%(2) = 10, LET Form%(3) = 11, LET Form%(4) = 11, LET Form%(5) = 11, LET Form%(6) = 20, LET Form%(7) = 20, LET Form%(8) = 20, LET Form%(9) = 20, LET Form%(10)= 20, LET Form%(11)= 20, LET Form%(12)= 20, LET Form%(13)= 20, LET Form%(14)= 21, LET Form%(15)= 21, LET Form%(16)= 21, LET Form%(17)= 99, LET Form%(18)= 99. LET Jour$(1) = LUNDI, LET Jour$(2) = MARDI, LET Jour$(3) = MERCREDI, LET Jour$(4) = JEUDI, LET Jour$(5) = VENDREDI, LET Jour$(6) = SAMEDI, LET Jour$(7) = DIMANCHE. ' ****************************************************************************** ' Initmicro ' --------- ' Description : Initialisation du micro-contrôleur et création des "Alias" ' qui déterminerons les connexions hardwares du système et ' qui seront définies ici comme des simples variables. ' ' Variables d'entrées : Aucune ' Variables de sorties : Aucune ' Variables de travail : Aucune ' Sousroutines appellées : Aucune ' SUB Initmicro LET Bouton = PortD.1 ' Liaison du "Bouton" de l'encodeur à l'AtMega LET MoletteA = PortD.2 ' Liaison de "Molette" de l'encodeur à l'AtMega LET MoletteB = PortD.3 ' Liaison de "Molette" de l'encodeur à l'AtMega ENDSUB ' ****************************************************************************** ' Initaffi '---------- ' Description : Initialisation de l'affichage et affichage du message ' d'accueil. ' ' Variables d'entrées : Aucune ' Variables de sorties : Aucune ' Variables de travail : Ligne1$, Ligne2$ ' Sousroutines appellées : Affilcd ' SUB Initaffi LET Ligne1$ = "Micro-Info asbl " ' Définition de la première ligne LET Ligne2$ = " MENU V 1.5 " ' Définition de la seconde ligne ' Effacement de l'écran GOSUB Affilcd ' Affichage des 2 lignes ' Petite pause LET Ligne1$ = " " ' Première ligne à 16 blancs LET Ligne2$ = " " ' Deuxième ligne à 16 blancs ' Effacement de l'écran GOSUB Affilcd ' Affichage des 2 lignes ENDSUB ' ****************************************************************************** ' Routines par INTERRUPTIONS ' -------------------------- ' DetectA ' ------- ' Description : Détecte les mouvements de l'encodeur (Molette) par Interruptions ' Variables d'entrées : MoletteA, MoletteB ' Variables de sorties : Compteur ' Variables de travail : Tmpsrebond ' Sousroutines appellées : Aucune SUB DetectA IF MoletteB = MoletteA THEN ' Test si B est égal à A LET Compteur = Compteur - 1 ' Alors Sens AntiHorlogique ELSE ' Sinon LET Compteur = Compteur + 1 ' Sens Horlogique ENDIF ' Fin du test de A et de B ENDSUB ' ****************************************************************************** ' MiseAJourVariable: ' ------------------ ' Description : Mise à jour de la variable suivant le numéro de ligne du "Menu" ' ' Variables d'entrées : Indice%(MnuIndiVar), Jour, Indice%(), LimitBas%(), LimitHaut%(), Divise%(), Form%() ' Variables de sorties : Annee, Heure, Mois, Minute, TempECS, HysTempHab, JourDate, HysTempEau, TempMiniExt, TempMaxiEau, Cycle, HysTempECS, Joursemaine, NumPlage, JourPlage, HdebutPlage, DureePlage, TCycleJour(), TCycleNuit() ' Variables de travail : Aucune ' Sousroutines appellées : Aucune ' SUB MiseAJourVariable: IF MnuNum = 8 THEN LET Annee = Indice%(MnuIndiVar) ' (0 à 99) ELSE IF MnuNum = 9 THEN LET Heure = Indice%(MnuIndiVar) ' (0 à 23) ELSE IF MnuNum = 18 THEN LET Mois = Indice%(MnuIndiVar) ' (0 à 12) ELSE IF MnuNum = 19 THEN LET Minute = Indice%(MnuIndiVar) ' (0 à 59) ELSE IF MnuNum = 20 THEN LET TempECS = Indice%(MnuIndiVar) ' (60 à 85)/1 ELSE IF MnuNum = 21 THEN LET HysTempHab = Indice%(MnuIndiVar ' (1 à 10)/10 ELSE IF MnuNum = 32 THEN LET JourDate = Indice%(MnuIndiVar) ' (1 à 31) ELSE IF MnuNum = 33 THEN LET HysTempEau = Indice%(MnuIndiVar) ' (1 à 10)/2 ELSE IF MnuNum = 34 THEN LET TempMiniExt = Indice%(MnuIndiVar) ' (-30 à 0)/2 Voir Tableau ELSE IF MnuNum = 35 THEN LET TempMaxEau = Indice%(MnuIndiVar) ' (50 à 90)/1 Voir Constructeur ELSE IF MnuNum = 48 THEN LET NumPlage = Indice%(MnuIndiVar) ' (1 à 96) ///NumCycle (1 à 4) ///JourPlage (1 à 7) ///HDebutPlage (0 à 96) ///DureePlage (1 à 96) ELSE IF MnuNum = 49 THEN LET NumCycle = Indice%(MnuIndiVar) ' (1 à 4) ///TCycleJour(Cycle) ELSE IF MnuNum = 50 THEN LET NumCycle = Indice%(MnuIndiVar) ' (1 à 4) ///TCycleNuit(Cycle) ELSE IF MnuNum = 51 THEN LET HysTempECS = Indice%(MnuIndiVar) ' (1 à 10)/2 ELSE IF MnuNum = 54 THEN LET Jour = Indice%(MnuIndiVar) ' (1 à 7) ///Début hh:mm calculé par 1/4 heure ELSE IF MnuNum = 55 THEN LET Jour = Indice%(MnuIndiVar) ' (1 à 7) ///Durée / Heure début / Heure de fin ELSE IF MnuNum = 58 THEN LET NumCycle = Indice%(MnuIndiVar) ' (1 à 4) /// ELSE IF MnuNum = 59 THEN LET NumCycle = Indice%(MnuIndiVar) ' (1 à 4) /// ENDIF ENDSUB ' Retour à la routine principale ' ***************************************************************************** ' Tempo ' ----- ' Description : Timer par Interruptions toutes les secondes ' Variables d'entrées : Timer interne ' Variables de sorties : TempoEnco ' Variables de travail : Aucune ' Sousroutines appellées : Aucune SUB Tempo LET TempoEnco = TempoEnco + 1 ' Incrémente TempoEnco ENDSUB ' ****************************************************************************** ' AffiLCD ' ------- ' Description : Affichage des chaînes Ligne1$ et Ligne2$ sur l'écran LCD ' ' Variables d'entrées : Ligne1$, Ligne2$ ' Variables de sorties : Aucune ' Variables de travail : Aucune ' Sousroutines appellées : Aucune ' SUB Affilcd ' Début de la routine ' Affichage de la première ligne ' Affichage de la seconde ligne ENDSUB ' ****************************************************************************** ' SupprimePlage ' ------------- ' Description : Supprime la Plage en cours ' Variables d'entrées : Cycle, JourPlage, NumPlage, HDebutPlage, DureePlage ' Variables de sorties : Aucune ' Variables de travail : Aucune ' Sousroutines appellées : Aucune SUB SupprimePlage ' Début de la routine ' A compléter ' Variable de 2 nibbles + 96 bits soit 13 octets, pas de programmation = 0, ' mettre un 1 par 1/4 heure programmé ' exemple:Cycle 1 , Mercredi, départ de chauffe à 8heure pour 1 heure (4 X 1/4) ' __ ' Mercredi, Cycle1 08:00/ \4 X 1/4 h ' 00110001000000000000000000000000111100000000000000000000...000000000000000000 ' Pour supprimer une plage, il suffit de mettre des zéros à la place des 1 ENDSUB ' ****************************************************************************** ' Mémoire MENU ' A placer dans l'EEprom ' ------------ +----------------+----------------+------+------+------+------+------+ | 16 octets | 16 octets | 1 oct| 1 oct| 1 oct| 1 oct| 1 oct| +--+----------------+----------------+------+------+------+------+------+ |N°| ligne1 | Ligne2 |PosCur|Suite+|Suite-|Return|Indice| +--+----------------+----------------+------+------+------+------+------+ | 1||PROGRAMME.DATE.H| 017 | 002 | 005 | 006 | 000 | | 2||DATE.HEURE.REGLA| 017 | 003 | 001 | 008 | 000 | | 3||HEURE.REGLAGES.S| 017 | 004 | 002 | 009 | 000 | | 4||REGLAGES.SORTIE.| 017 | 005 | 003 | 010 | 000 | | 5||SORTIE.PROGRAMME| 017 | 001 | 004 | 130 | 000 | | 6||CHOIX_CYCLE.SORT| 017 | 007 | 007 | 014 | 000 | | 7||SORTIE.CHOIX_CYC| 017 | 006 | 006 | 005 | 000 | | 8|DATE............|jj/mm/aaaa......| 026 | 128 | 129 | 018 | 006 | | 9|HEURE...........|HH:MM...........| 018 | 128 | 129 | 019 | 009 | |10||TEMPERATURE_ECS.| 017 | 011 | 013 | 020 | 000 | |11||HYSTERESIS.PARAM| 017 | 012 | 010 | 021 | 000 | |12||PARAMETRES.SORTI| 017 | 013 | 011 | 022 | 000 | |13||SORTIE.TEMPERATU| 017 | 010 | 012 | 005 | 000 | |14||CYCLE1.CYCLE2.CY| 017 | 015 | 017 | 131 | 000 | |15||CYCLE2.CYCLE3.CY| 017 | 016 | 014 | 132 | 000 | |16||CYCLE3.CYCLE4.CY| 017 | 017 | 015 | 133 | 000 | |17||CYCLE4.CYCLE1.CY| 017 | 014 | 016 | 134 | 000 | |18|DATE............|jj/mm/aaaa......| 021 | 128 | 129 | 026 | 007 | |19|HEURE...........|HH:MM...........| 021 | 128 | 129 | 005 | 010 | |20|TEMPERATURE_ECS.|65°C............| 018 | 128 | 129 | 011 | 011 | |21|HYSTERESIS_TEMP_|AMBIANTE = 0,2°C| 030 | 128 | 129 | 027 | 003 | |22||T_MINI_EXTERIEUR| 017 | 023 | 025 | 028 | 000 | |23||T_MAXI_CHAUDIERE| 017 | 024 | 022 | 029 | 000 | |24||TYPE_REGULATION.| 017 | 025 | 023 | 030 | 000 | |25||SORTIE.T_MINI_EX| 017 | 022 | 024 | 013 | 000 | |26|DATE............|jj/mm/aaaa......| 018 | 128 | 129 | 003 | 008 | |27|HYSTERESIS_TEMP_|RADIATEUR= 0,5°C| 030 | 128 | 129 | 040 | 004 | |28|TEMPERATURE_MINI|EXTERIEUR= -09°C| 030 | 128 | 129 | 023 | 014 | |29|TEMPERATURE_MAXI|CHAUDIERE = 80°C| 030 | 128 | 129 | 025 | 012 | |30|TYPE_REGULATION>|CHAUDIERE.VANNE_| 017 | 031 | 031 | 025 | 000 | |31|TYPE_REGULATION>|VANNE_3_VOIES.CH| 017 | 030 | 030 | 041 | 000 | |32||LUNDI.MARDI.MERC| 017 | 033 | 039 | 135 | 002 | |33||MARDI.MERCREDI.J| 017 | 034 | 032 | 136 | 002 | |34||MERCREDI.JEUDI.V| 017 | 035 | 033 | 137 | 002 | |35||JEUDI.VENDREDI.S| 017 | 036 | 034 | 138 | 002 | |36||VENDREDI.SAMEDI.| 017 | 037 | 035 | 139 | 002 | |37||SAMEDI.DIMANCHE.| 017 | 038 | 036 | 140 | 002 | |38||DIMANCHE.SORTIE.| 017 | 039 | 037 | 141 | 002 | |39||SORTIE.LUNDI.MAR| 017 | 032 | 038 | 059 | 000 | |40|HYSTERESIS_TEMP_|ECS = 0,5°C.....| 025 | 128 | 129 | 012 | 005 | |41||OUVRIR/FERMER.AN| 017 | 042 | 042 | 143 | 000 | |42||ANALOGIQUE.OUVRI| 017 | 041 | 041 | 144 | 000 | |43|SUPPRIMER.PLAGE.|OUI..........NON| 017 | 044 | 044 | 142 | 000 | |44|SUPPRIMER.PLAGE.|NON..........OUI| 017 | 043 | 043 | 059 | 000 | |45|JJJ.............|DEBUT.A.hh:mm...| 029 | 128 | 129 | 046 | 017 | |46|JJJ........hh:mm|DE.hh:mm.A.hh:mm| 016 | 128 | 129 | 052 | 018 | |47|SELECTION.CYCLEx|OUI..........NON| 017 | 048 | 048 | 130 | 001 | |48|SELECTION.CYCLEx|NON..........OUI| 017 | 047 | 047 | 007 | 000 | |49|CYCLEx...PLAGExx|JJJ.HH:MM.hh:mm.| 016 | 128 | 129 | 044 | 013 | |50|CYCLEx.TEMP_JOUR|20,5°C..........| 020 | 128 | 129 | 059 | 015 | |51|CYCLEx.TEMP_NUIT|17,5°C..........| 020 | 128 | 129 | 059 | 016 | |52|CYCLEx..........|CONTINUER.SORTIE| 017 | 053 | 053 | 055 | 000 | |53|CYCLEx..........|SORTIE.CONTINUER| 017 | 052 | 052 | 039 | 000 | |54||SELECTION.AJOUT_| 017 | 055 | 059 | 047 | 000 | |55||AJOUT_PLAGE.EDIT| 017 | 056 | 054 | 032 | 000 | |56||EDITER_CYCLE.TEM| 017 | 057 | 055 | 049 | 000 | |57||TEMP_JOUR.TEMP_N| 017 | 058 | 056 | 050 | 000 | |58||TEMP_NUIT.SORTIE| 017 | 059 | 057 | 051 | 000 | |59||SORTIE.SELECTION| 017 | 054 | 058 | 007 | 000 | +--+----------------+----------------+------+------+------+------+------+ ' ***** END ********************************************************************