{"id":1130,"date":"2022-12-10T08:16:17","date_gmt":"2022-12-10T07:16:17","guid":{"rendered":"http:\/\/lesmrdtrucs.mataf35400.fr\/?page_id=1130"},"modified":"2022-12-10T08:48:07","modified_gmt":"2022-12-10T07:48:07","slug":"automate-unity","status":"publish","type":"page","link":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/automate-unity\/","title":{"rendered":"Automate (Unity)\u200b"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1130\" class=\"elementor elementor-1130\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-33a7cc1b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"33a7cc1b\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3ca0b5c2\" data-id=\"3ca0b5c2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-75cead7d elementor-widget elementor-widget-text-editor\" data-id=\"75cead7d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h2>Les sections du Mast<\/h2><h3>Communication<\/h3><p><span style=\"color: #339966;\"><em>(* Communication avec le compteur \u00e9lectrique *)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Etape_de_comm &lt; 0 OR Etape_de_comm &gt; 999\u00a0\u00a0 THEN Etape_de_comm := 0 ;END_IF;<\/em><\/span><br \/><br \/><span style=\"color: #339966;\"><em>(* Mise \u00e0 l&rsquo;\u00e9coute *)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Etape_de_comm = 0 AND NOT Cr_comm_1.0\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 INPUT_CHAR(ADDR(&lsquo;0.0.1.SYS&rsquo;),1,40,Cr_comm_1_4,Mb220_40);<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 INC_INT(INOUT:=Etape_de_comm );<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 JMP L999 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>END_IF;<\/em><\/span><br \/><br \/><span style=\"color: #339966;\"><em>(* Etape transitoire *)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Etape_de_comm = 1 AND Cr_comm_1.0\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 INC_INT(INOUT:=Etape_de_comm );<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 JMP L999 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>END_IF;<\/em><\/span><br \/><br \/><span style=\"color: #339966;\"><em>(* Attente de r\u00e9ception *)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Etape_de_comm = 2 AND NOT Cr_comm_1.0\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 INPUT_CHAR(ADDR(&lsquo;0.0.1.SYS&rsquo;),1,40,Cr_comm_1_4,Mb220_40);<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 INC_INT(INOUT:=Etape_de_comm );<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 JMP L999 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>END_IF;<\/em><\/span><br \/><br \/><span style=\"color: #0000ff;\"><em>L999:<\/em><\/span><br \/><br \/><br \/><\/p><h3>Sorties<\/h3><p><em><span style=\"color: #339966;\">(* Bidouille pour faire tomber le for\u00e7age du thermostat *)<\/span><\/em><br \/><em><span style=\"color: #339966;\">(* IF Horodateur_hh_nn = 16#0550\u00a0 THEN *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>%m12:=Heures_creuses;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>if fe(%m12) then<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 RESET(Forcage_thermostat_a_1 );<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>END_IF;<\/em><\/span><br \/><br \/><em><span style=\"color: #339966;\">(* Horodateur *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>Bit_de_seconde := %S6;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Horo_jour_de_la_semaine := %SW49 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Horo_ss_4 := %SW50:4 ;<\/em><\/span><br \/><em><span style=\"color: #0000ff;\">Heures_creuses := Horodateur_hh_nn &gt; Fin_heures_pleines OR Horodateur_hh_nn &lt; Debut_heures_pleines\u00a0\u00a0 ;<\/span><span style=\"color: #339966;\">(* Dans les heures creuses *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>RRTC_DT(DateHeureActuelle);<\/em><\/span><br \/><br \/><em><span style=\"color: #339966;\">(* Couleurs impos\u00e9es *)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Valeur_de_la_couleur_du_jour := 0 ;\u00a0\u00a0<\/span> \u00a0<span style=\"color: #339966;\">(* Aujourd&rsquo;hui *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>IF Jour_bleu THEN Valeur_de_la_couleur_du_jour := 1 ;END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Jour_blanc THEN Valeur_de_la_couleur_du_jour := 2 ;END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Jour_rouge THEN Valeur_de_la_couleur_du_jour := 3 ;END_IF;<\/em><\/span><br \/><br \/><em><span style=\"color: #0000ff;\">Valeur_de_la_couleur_du_lendemai := 0 ;<\/span><span style=\"color: #339966;\">(* Demain *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>IF Demain_bleu THEN Valeur_de_la_couleur_du_lendemai := 1 ;END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Demain_blanc THEN Valeur_de_la_couleur_du_lendemai := 2 ;END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Demain_rouge THEN Valeur_de_la_couleur_du_lendemai := 3 ;END_IF;<\/em><\/span><br \/><br \/><em><span style=\"color: #339966;\">(* Dimanche Tempo &#8211;&gt; toujours bleu *)\u00a0<\/span>\u00a0\u00a0 <span style=\"color: #0000ff;\">IF Horo_jour_de_la_semaine = 7 AND Horodateur_hh_nn &gt; 16#0600\u00a0\u00a0 THEN SET(Jour_bleu );RESET(Jour_blanc );RESET(Jour_rouge );END_IF;<\/span><\/em><br \/><br \/><em><span style=\"color: #339966;\">(* Samedi Tempo &#8211;&gt; si ind\u00e9fini, alors blanc *)<\/span>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<span style=\"color: #0000ff;\">IF Horo_jour_de_la_semaine = 6 AND Horodateur_hh_nn &gt; 16#0600 AND Valeur_de_la_couleur_du_jour = 0\u00a0\u00a0 THEN SET(Jour_blanc );END_IF;<\/span><\/em><br \/><br \/><em><span style=\"color: #339966;\">(* En \u00e9t\u00e9, tous les jours sont bleus *)<\/span><\/em><br \/><em><span style=\"color: #339966;\">(* SET %MW60:X6;RESET %MW60:X7;RESET %MW60:X8;<\/span><\/em><br \/><em><span style=\"color: #339966;\">SET %MW60:X9;RESET %MW60:X10;RESET %MW60:X11; *)<\/span><\/em><br \/><br \/><em><span style=\"color: #339966;\">(* Sinon, on force \u00e0 blanc *)<\/span><span style=\"color: #0000ff;\">IF Valeur_de_la_couleur_du_jour = 0\u00a0 THEN RESET(Jour_bleu );SET(Jour_blanc );RESET(Jour_rouge );END_IF;<\/span><\/em><br \/><br \/><em><span style=\"color: #339966;\">(* Sinon, on force \u00e0 rouge *)(* IF %MW55=0 THEN RESET %MW60:X9;RESET %MW60:X10;SET %MW60:X11;END_IF; *)<\/span><\/em><br \/><br \/><em><span style=\"color: #339966;\">(* Changement de jour TEMPO *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>IF (Horodateur_hh_nn AND -256 (*16#FF00*)) = 16#0600 AND NOT Flag_chgt_jour_tempo\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 SET(Flag_chgt_jour_tempo );<\/em><\/span><br \/><em>\u00a0\u00a0\u00a0<span style=\"color: #339966;\"> (* Prise en compte de la couleur du lendemain (qui devient du jour *)<\/span><\/em><br \/><em>\u00a0\u00a0\u00a0 <span style=\"color: #0000ff;\">Jour_bleu := Demain_bleu ;<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 Jour_blanc := Demain_blanc ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 Jour_rouge := Demain_rouge ;\u00a0\u00a0 \u00a0<\/em><\/span><br \/><br \/><em>\u00a0\u00a0\u00a0<span style=\"color: #339966;\"> (* RAZ de la couleur du lendemain *)<\/span><\/em><br \/><em>\u00a0\u00a0\u00a0 <span style=\"color: #0000ff;\">RESET(Demain_bleu );RESET(Demain_blanc );RESET(Demain_rouge );\u00a0\u00a0<\/span> \u00a0<\/em><br \/><br \/><em>\u00a0\u00a0\u00a0<span style=\"color: #339966;\"> (* RAZ for\u00e7ages *)<\/span><\/em><br \/><em>\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\"> MOVE_INT_ARINT(0, Forcage_des_sorties_a_1_2);<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 Forcage_consigne_temperature := 999 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>ELSIF (Horodateur_hh_nn AND -256 (*16#FF00*)) &lt;&gt; 16#0600\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 RESET(Flag_chgt_jour_tempo );<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>END_IF;<\/em><\/span><br \/><br \/><em><span style=\"color: #339966;\">(* D\u00e9tection d&rsquo;eau trop chaude *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>if fe( %I\\4.1\\0.0.1) and %Q\\4.1\\0.0.1 or %m19 then<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 set (%m18);<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 RRTC_DT(HeureDetectionEauTropChaude);<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>end_if;<\/em><\/span><br \/><br \/><span style=\"color: #0000ff;\"><em>DeltaTemps := SUB_DT_DT (DateHeureActuelle,HeureDetectionEauTropChaude);<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>if deltatemps&gt;dureeeautropchaude then reset(%m18);end_if;<\/em><\/span><br \/><br \/><em><span style=\"color: #339966;\">(* Marche-arret *)<\/span><\/em><br \/><br \/><em><span style=\"color: #339966;\">(* Tempo apr\u00e8s arr\u00eat des r\u00e9sistances *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>IF RE(Bit_de_seconde )THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 IF NOT Contacteur_resistance_1 AND NOT Contacteur_resistance_2 AND NOT Contacteur_resistance_3 AND Cons_temp_moins_1_non_atteinte\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0INC_INT(INOUT:=Nb_sec_depuis_arret_resistances );<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 ELSE<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Nb_sec_depuis_arret_resistances := 0 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Nb_sec_depuis_arret_resistances \/ 60 &gt;= 45\u00a0 THEN RESET(Cons_temp_moins_1_non_atteinte );END_IF;<\/em><\/span><br \/><br \/><span style=\"color: #0000ff;\"><em>Marche_general := Cons_temp_moins_1_non_atteinte AND NOT Forcage_marche_generale_a_0 AND NOT Forcage_generale_a_0_malgre_heur;<\/em><\/span><br \/><br \/><span style=\"color: #0000ff;\"><em>Marche_general := Marche_general OR Forcage_marche_generale_a_1 OR Forcage_generale_a_1_malgre_heur;<\/em><\/span><br \/><br \/><span style=\"color: #0000ff;\"><em>Recopie_sortie_marche_generale := Marche_general;<\/em><\/span><br \/><br \/><br \/><em><span style=\"color: #339966;\">(* Commande de la r\u00e9sistance 1 (phase 1) *)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Consigne_temp_non_atteinte OR Forcage_thermostat_a_1\u00a0 ;\u00a0\u00a0 \u00a0\u00a0\u00a0 <\/span><span style=\"color: #339966;\">\u00a0(* Consigne temp\u00e9rature *)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances OR Forcage_resistance_1_a_1\u00a0 ;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<\/span><span style=\"color: #339966;\">(* For\u00e7age r\u00e9sistance 1 \u00e0 1*)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>Tmp_marche_resistances := Tmp_marche_resistances AND NOT %m18;<\/em><\/span><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances AND NOT Forcage_resistance_1_a_0\u00a0 ;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<\/span><span style=\"color: #339966;\">(* Pas de for\u00e7age r\u00e9sistance 1 \u00e0 0*)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances AND NOT Forcage_marche_generale_a_0\u00a0 ;\u00a0\u00a0 \u00a0\u00a0\u00a0<\/span> \u00a0<span style=\"color: #339966;\">(* Pas de for\u00e7age g\u00e9n\u00e9ral \u00e0 0*)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances AND Marche_general\u00a0 ;\u00a0<\/span>\u00a0 \u00a0\u00a0\u00a0 \u00a0<span style=\"color: #339966;\">(* Marche g\u00e9n\u00e9rale *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>Marche_resistance_1 := Tmp_marche_resistances ;<\/em><\/span><br \/><br \/><em><span style=\"color: #339966;\">(* R\u00e9cup\u00e9ration de l&rsquo;\u00e9tat du contacteur *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>Recopie_entree_resistance_1 := Contacteur_resistance_1;<\/em><\/span><br \/><br \/><br \/><em><span style=\"color: #339966;\">(* Commande de la r\u00e9sistance 2 (phase 2) *)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Jour_bleu;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<\/span>\u00a0\u00a0 <span style=\"color: #339966;\">\u00a0(* Jour bleu *)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances OR (Heures_creuses AND Consigne_temp_presque_non_attein)\u00a0 ;\u00a0\u00a0<\/span> \u00a0<span style=\"color: #339966;\">(* HC et T\u00b0&lt;consigne-1\u00b0 *)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances AND (Consigne_temp_non_atteinte OR Forcage_thermostat_a_1)\u00a0 ;\u00a0<\/span>\u00a0 <span style=\"color: #339966;\">\u00a0(* Consigne temp\u00e9rature *)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances OR Forcage_resistance_2_a_1\u00a0 ;\u00a0\u00a0<\/span> \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 <span style=\"color: #339966;\">\u00a0(* For\u00e7age r\u00e9sistance 2 \u00e0 1*)\u00a0\u00a0 \u00a0<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>Tmp_marche_resistances := Tmp_marche_resistances AND NOT %m18;<\/em><\/span><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances AND NOT Forcage_resistance_2_a_0\u00a0 ;\u00a0\u00a0 \u00a0\u00a0<\/span>\u00a0 \u00a0<span style=\"color: #339966;\">(* Pas de for\u00e7age r\u00e9sistance 2 \u00e0 0*)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances AND NOT Forcage_marche_generale_a_0\u00a0 ;\u00a0\u00a0<\/span> \u00a0\u00a0\u00a0 \u00a0<span style=\"color: #339966;\">(* Pas de for\u00e7age g\u00e9n\u00e9ral \u00e0 0*)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances AND Marche_general\u00a0 ;\u00a0\u00a0 \u00a0<\/span>\u00a0\u00a0 \u00a0<span style=\"color: #339966;\">(* Marche g\u00e9n\u00e9rale *)<\/span><\/em><br \/><br \/><span style=\"color: #0000ff;\"><em>Marche_resistance_2 := Tmp_marche_resistances ;<\/em><\/span><br \/><br \/><em><span style=\"color: #339966;\">(* R\u00e9cup\u00e9ration de l&rsquo;\u00e9tat du contacteur *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>Recopie_entree_resistance_2 := Contacteur_resistance_2;<\/em><\/span><br \/><br \/><br \/><em><span style=\"color: #339966;\">(* Commande de la r\u00e9sistance 3 (phase 3) *)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Forcage_resistance_3_a_1;\u00a0\u00a0 \u00a0\u00a0<\/span>\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 <span style=\"color: #339966;\">\u00a0(* For\u00e7age r\u00e9sistance 3 \u00e0 1*)\u00a0\u00a0<\/span> \u00a0<\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances AND NOT No_cumulus\u00a0 ;<\/span>\u00a0\u00a0 \u00a0<span style=\"color: #339966;\">(* Le cumulus n&rsquo;est pas en route *)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances AND NOT Forcage_resistance_3_a_0\u00a0 ;\u00a0<\/span>\u00a0 \u00a0\u00a0\u00a0 \u00a0<span style=\"color: #339966;\">(* Pas de for\u00e7age r\u00e9sistance 3 \u00e0 0*)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances AND NOT Forcage_marche_generale_a_0\u00a0 ;\u00a0\u00a0 \u00a0\u00a0<\/span>\u00a0 <span style=\"color: #339966;\">\u00a0(* Pas de for\u00e7age g\u00e9n\u00e9ral \u00e0 0*)<\/span><\/em><br \/><em><span style=\"color: #0000ff;\">Tmp_marche_resistances := Tmp_marche_resistances AND Marche_general\u00a0 ;\u00a0\u00a0<\/span> \u00a0\u00a0\u00a0 <span style=\"color: #339966;\">\u00a0(* Marche g\u00e9n\u00e9rale *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>Marche_resistance_3 := Tmp_marche_resistances ;<\/em><\/span><br \/><br \/><em><span style=\"color: #339966;\">(* R\u00e9cup\u00e9ration de l&rsquo;\u00e9tat du contacteur *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>Recopie_entree_resistance_3 := Contacteur_resistance_3;<\/em><\/span><br \/><br \/><br \/><em><span style=\"color: #339966;\">(* Prises des cam\u00e9ras *)<\/span><\/em><br \/><span style=\"color: #0000ff;\"><em>Nf_prise_camera_cuisine := Horodateur_hh_nn &gt;= 16#0720 AND Horodateur_hh_nn &lt;= 16#0730;\u00a0\u00a0 \u00a0<span style=\"color: #339966;\">(* Cuisine Sortie NF *)<\/span><\/em><\/span><br \/><br \/><br \/><span style=\"color: #339966;\"><em>(* Commande du cumulus (Phase 3) *)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Tmp_marche_resistances := Heures_creuses;\u00a0\u00a0 \u00a0<span style=\"color: #339966;\">(* HC *)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Tmp_marche_resistances := Tmp_marche_resistances AND ((Horodateur_hh_nn &gt;= 16#0400 AND Horodateur_hh_nn &lt;= 16#0600) or Jour_bleu);\u00a0\u00a0 \u00a0<span style=\"color: #339966;\">(* seulement de 5h00 &amp; 6h00 quand le jour n&rsquo;est pas bleu *)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Tmp_marche_resistances := Tmp_marche_resistances AND Forcage_cumulus_a_1\u00a0 ;\u00a0\u00a0 \u00a0<span style=\"color: #339966;\">(* For\u00e7age cumulus \u00e0 1 *)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Tmp_marche_resistances := Tmp_marche_resistances AND NOT Forcage_cumulus_a_0\u00a0 ;\u00a0\u00a0 \u00a0<span style=\"color: #339966;\">(* Pas de for\u00e7age cumulus \u00e0 0*)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>No_cumulus := Tmp_marche_resistances ;<\/em><\/span><br \/><br \/><span style=\"color: #339966;\"><em>(* R\u00e9cup\u00e9ration de l&rsquo;\u00e9tat du relais de commande du cumulus *)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Recopie_sortie_cumulus := No_cumulus;<\/em><\/span><br \/><br \/><br \/><span style=\"color: #339966;\"><em>(* Thermostat du salon*)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Thermostat := Thermostat_salon;<\/em><\/span><br \/><br \/><br \/><\/p><h3>Memo_etat_i_o<\/h3><p><span style=\"color: #339966;\"><em>(* RAZ table compl\u00e8te *)<\/em><\/span><br \/><span style=\"color: #339966;\"><em>(* %MW5000:500:=0; *)<\/em><\/span><br \/><br \/><span style=\"color: #339966;\"><em>(* M\u00e9morisation des ES \u00e0 chaque changement d&rsquo;\u00e9tat *)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Res_equal_es := EQUAL_ARINT(Recopie_des_entrees_3,Old_mw60_3,0);<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Res_equal_es &lt;&gt; -1\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 %MW5010:490 := %MW5000:490 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 MOVE_INT_ARINT(0, %MW5000:10);<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 %MW5000:4 := %SW50:4 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 %MW5004:3 := Recopie_des_entrees_3 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 Old_mw60_3 := Recopie_des_entrees_3 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>END_IF;<\/em><\/span><br \/><br \/><br \/><\/p><h3>Captage_temperat<\/h3><p><span style=\"color: #339966;\"><em>(* Conversion suivant la formule T\u00b0=(%IW-4188)\/(-8.3658)<\/em><\/span><br \/><span style=\"color: #339966;\"><em>\u00a0\u00a0 Cette formule est issue d&rsquo;une courbe de tendance d&rsquo;Excel *)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF RE(Bit_de_seconde )THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 Mf_de_travail_iw := INT_TO_REAL(Sonde_thermique);<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 Mf_de_travail_iw := (Mf_de_travail_iw &#8211; 4188.0) \/ -8.3658\u00a0 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 Table_temp_2_19 := Table_temp_1_19 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 Table_temp_1 := REAL_TO_INT(Mf_de_travail_iw);<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 Temperature_en_10e_de_degres := SUM_ARINT(Table_temp_1_20);<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 Mf_de_travail_buffer_temp := INT_TO_REAL(Temperature_en_10e_de_degres) \/ 20.0\u00a0 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 Temperature_en_10e_de_degres := REAL_TO_INT(Mf_de_travail_buffer_temp);<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>END_IF;<\/em><\/span><br \/><br \/><span style=\"color: #339966;\"><em>(* Forcage de la consigne si %MW77 &lt;&gt; 999 *)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Forcage_consigne_temperature &lt;&gt; 999\u00a0 THEN Consigne_temperature := Forcage_consigne_temperature ;END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Temperature_en_10e_de_degres &lt; Consigne_temperature\u00a0 THEN SET(Cons_temp_moins_1_non_atteinte );END_IF;<span style=\"color: #339966;\">(* On passe sous la consigne: d\u00e9part acc\u00e9l\u00e9rateur *)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>(* if %MW76&gt;=%MW78+7 THEN RESET %M17;END_IF;<span style=\"color: #339966;\">(* On passe au dessus de la consigne + 0.7\u00b0: arr\u00eat acc\u00e9l\u00e9rateur *)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Temperature_en_10e_de_degres &lt; Consigne_temperature\u00a0 THEN SET(Consigne_temp_non_atteinte );END_IF;<span style=\"color: #339966;\">(* On passe sous la consigne: d\u00e9part chauffage *)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Temperature_en_10e_de_degres &gt;= Consigne_temperature + 5\u00a0\u00a0 THEN RESET(Consigne_temp_non_atteinte );END_IF;<span style=\"color: #339966;\">(* On passe au dessus de la consigne + 0.5\u00b0: arr\u00eat chauffage *)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Temperature_en_10e_de_degres &lt; Consigne_temperature &#8211; 20\u00a0\u00a0 THEN SET(Consigne_temp_presque_non_attein );END_IF;<span style=\"color: #339966;\">(* On passe sous la consigne &#8211; 2\u00b0: d\u00e9part r\u00e9sistance 2 en HC *)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF Temperature_en_10e_de_degres &gt;= Consigne_temperature &#8211; 10\u00a0\u00a0 THEN RESET(Consigne_temp_presque_non_attein );END_IF;<span style=\"color: #339966;\">(* On passe au dessus de la consigne &#8211; 1\u00b0: arr\u00eat r\u00e9sistance 2 en HC *)<\/span><\/em><\/span><br \/><br \/><br \/><\/p><h3>Consigne_tempera<\/h3><p><span style=\"color: #339966;\"><em>(* Consigne de temp\u00e9rature \u00e0 atteindre (Raffraichi toutes les minutes) *)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IF (%SW50 AND -256 <span style=\"color: #339966;\">(*16#FF00*)<\/span>) = 16#0000 AND NOT Flag_mise_a_jour_consigne\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 SET(Flag_mise_a_jour_consigne );<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 IF NOT Heures_creuses THEN\u00a0\u00a0 <span style=\"color: #339966;\">\u00a0(* On est en heures pleines *)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0IF Valeur_de_la_couleur_du_jour = 1\u00a0 THEN Consigne_temperature := Temp_hp_1 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSIF Valeur_de_la_couleur_du_jour = 2\u00a0 THEN Consigne_temperature := Temp_hp_2 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSIF Valeur_de_la_couleur_du_jour = 3\u00a0 THEN Consigne_temperature := Temp_hp_3 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSE Consigne_temperature := Temp_hp_3 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 ELSE\u00a0\u00a0 <span style=\"color: #339966;\">\u00a0(* On est en heures creuses *)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0IF Valeur_de_la_couleur_du_jour = 1\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0IF Valeur_de_la_couleur_du_lendemai = 1\u00a0 THEN Consigne_temperature := Temp_hc_1_demain_1 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSIF Valeur_de_la_couleur_du_lendemai = 2\u00a0 THEN Consigne_temperature := Temp_hc_1_demain_2 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSIF Valeur_de_la_couleur_du_lendemai = 3\u00a0 THEN Consigne_temperature := Temp_hc_1_demain_3 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSE Consigne_temperature := Temp_hc_1_demain_3 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSIF Valeur_de_la_couleur_du_jour = 2\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0IF Valeur_de_la_couleur_du_lendemai = 1\u00a0 THEN Consigne_temperature := Temp_hc_2_demain_1 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSIF Valeur_de_la_couleur_du_lendemai = 2\u00a0 THEN Consigne_temperature := Temp_hc_2_demain_2 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSIF Valeur_de_la_couleur_du_lendemai = 3\u00a0 THEN Consigne_temperature := Temp_hc_2_demain_3 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSE Consigne_temperature := Temp_hc_1_demain_3 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSIF Valeur_de_la_couleur_du_jour = 3\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0IF Valeur_de_la_couleur_du_lendemai = 1\u00a0 THEN Consigne_temperature := Temp_hc_3_demain_1 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSIF Valeur_de_la_couleur_du_lendemai = 2\u00a0 THEN Consigne_temperature := Temp_hc_3_demain_2 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSIF Valeur_de_la_couleur_du_lendemai = 3\u00a0 THEN Consigne_temperature := Temp_hc_3_demain_3 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSE Consigne_temperature := Temp_hc_3_demain_3 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0ELSE Consigne_temperature := Temp_hp_3 ;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 END_IF;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>ELSIF (%SW50 AND -256 <span style=\"color: #339966;\">(*16#FF00*)<\/span>) &lt;&gt; 16#0000\u00a0 THEN<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 RESET(Flag_mise_a_jour_consigne );<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>END_IF;<\/em><\/span> <\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Les sections du Mast Communication (* Communication avec le compteur \u00e9lectrique *)IF Etape_de_comm &lt; 0 OR Etape_de_comm &gt; 999\u00a0\u00a0 THEN Etape_de_comm := 0 ;END_IF; (* Mise \u00e0 l&rsquo;\u00e9coute *)IF Etape_de_comm = 0 AND NOT Cr_comm_1.0\u00a0 THEN\u00a0\u00a0\u00a0 INPUT_CHAR(ADDR(&lsquo;0.0.1.SYS&rsquo;),1,40,Cr_comm_1_4,Mb220_40);\u00a0\u00a0\u00a0 INC_INT(INOUT:=Etape_de_comm );\u00a0\u00a0\u00a0 JMP L999 ;END_IF; (* Etape transitoire *)IF Etape_de_comm = 1 AND Cr_comm_1.0\u00a0 THEN\u00a0\u00a0\u00a0 INC_INT(INOUT:=Etape_de_comm );\u00a0\u00a0\u00a0 JMP [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","footnotes":""},"class_list":["post-1130","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/pages\/1130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1130"}],"version-history":[{"count":10,"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/pages\/1130\/revisions"}],"predecessor-version":[{"id":1144,"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/pages\/1130\/revisions\/1144"}],"wp:attachment":[{"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}