Dämpad temperatur 0-36h

Detaljer

Typ
Program
Upplaggd av
Ove Jansson, Abelko Innovation
Version
1
Uppdaterad
2013-04-08
Skapad
2013-04-08
Kategori
Allmän automation, Värme
Visningar
3986

Beskrivning

Ett skript som dämpar en temperatur genom att bilda ett medelvärde på ett inställt antal timmar. OBS! medelvärdena sparas bara i minnet så om man startar om enheten börjar den om från början och bildar medelvärde först efter två timmar med medlet på dem, efter tre timmar medlet på tre timmar osv.

Bruksanvisning

sätt upp en temperaturmätare på en av temperatur kanalerna och klicka i tim medelvärde. Spara. Den nya hMEAN_kanalen är den du använder till hmedel nedan.

Skapa också en parameter för inställning av hur många timmars dämpning det ska vara samt en kanal för den dämpade temperaturvärdet som du kopplar till dH respektive dampad_kanal nedan.

Juridisk information

Alla skript tillhandahålls i befintligt skick och all användning sker på eget ansvar. Felaktig använding kan leda till skadad eller förstörd utrustning.

Skript kod

%
% INSTRUKTION
% sätt upp en temperaturmätare på en av temperatur kanalerna och klicka i tim medelvärde. Spara. 
% Den nya hMEAN_kanalen är den du använder till hmedel nedan. 
% Skapa också en parameter för inställning av hur många timmars dämpning det ska vara samt 
% en kanal för den dämpade temperaturvärdet som du kopplar till dH respektive dampad_kanal nedan.
%
ROUTINE Dampad_Temp
  ALIAS
    hmedel = CHANNEL[45]; % Ersätt med lokalt kanalnummer
    dH = PARAMETER[1]; % 0-36 timmars dämpning. Ersätt med lokal parameternummer
    dampad_kanal = CHANNEL[47];
  VAR
    h1; h2; h3; h4; h5; h6; h7; h8; h9; h10; h11; h12;
    h13; h14; h15; h16; h17; h18; h19; h20; h21; h22; h23; h24;
    h25; h26; h27; h28; h29; h30; h31; h32; h33; h34; h35; h36;
    antal;
    dtemp;
    antal_v;
  BEGIN
    IF antal_v = 0 THEN dampad_kanal <- hmedel; 
    ELSIF (TIME_SEC = 0) AND ((TIME_MINUTE = 0) OR (TIME_MINUTE = 15) OR (TIME_MINUTE = 30) OR (TIME_MINUTE = 45)) THEN
      IF antal_v < dH THEN antal := antal_v + 1; 
        ELSIF dH > 36 THEN antal := 37; 
        ELSIF dH < 1 THEN antal := 0; 
        ELSE antal := dH + 1;
      ENDIF;
      
      IF antal < 1 THEN dtemp := hmedel; ELSE dtemp := hmedel / antal; ENDIF;
      IF antal > 36 THEN dtemp := dtemp + (h36 / antal); ENDIF;
      IF antal > 35 THEN dtemp := dtemp + (h35 / antal); ENDIF;
      IF antal > 34 THEN dtemp := dtemp + (h34 / antal); ENDIF;
      IF antal > 33 THEN dtemp := dtemp + (h33 / antal); ENDIF;
      IF antal > 32 THEN dtemp := dtemp + (h32 / antal); ENDIF;
      IF antal > 31 THEN dtemp := dtemp + (h31 / antal); ENDIF;
      IF antal > 30 THEN dtemp := dtemp + (h30 / antal); ENDIF;
      IF antal > 29 THEN dtemp := dtemp + (h29 / antal); ENDIF;
      IF antal > 28 THEN dtemp := dtemp + (h28 / antal); ENDIF;
      IF antal > 27 THEN dtemp := dtemp + (h27 / antal); ENDIF;
      IF antal > 26 THEN dtemp := dtemp + (h26 / antal); ENDIF;
      IF antal > 25 THEN dtemp := dtemp + (h25 / antal); ENDIF;
      IF antal > 24 THEN dtemp := dtemp + (h24 / antal); ENDIF;
      IF antal > 23 THEN dtemp := dtemp + (h23 / antal); ENDIF;
      IF antal > 22 THEN dtemp := dtemp + (h22 / antal); ENDIF;
      IF antal > 21 THEN dtemp := dtemp + (h21 / antal); ENDIF;
      IF antal > 20 THEN dtemp := dtemp + (h20 / antal); ENDIF;
      IF antal > 19 THEN dtemp := dtemp + (h19 / antal); ENDIF;
      IF antal > 18 THEN dtemp := dtemp + (h18 / antal); ENDIF;
      IF antal > 17 THEN dtemp := dtemp + (h17 / antal); ENDIF;
      IF antal > 16 THEN dtemp := dtemp + (h16 / antal); ENDIF;
      IF antal > 15 THEN dtemp := dtemp + (h15 / antal); ENDIF;
      IF antal > 14 THEN dtemp := dtemp + (h14 / antal); ENDIF;
      IF antal > 13 THEN dtemp := dtemp + (h13 / antal); ENDIF;
      IF antal > 12 THEN dtemp := dtemp + (h12 / antal); ENDIF;
      IF antal > 11 THEN dtemp := dtemp + (h11 / antal); ENDIF;
      IF antal > 10 THEN dtemp := dtemp + (h10 / antal); ENDIF;
      IF antal > 9 THEN dtemp := dtemp + (h9 / antal); ENDIF;
      IF antal > 8 THEN dtemp := dtemp + (h8 / antal); ENDIF;
      IF antal > 7 THEN dtemp := dtemp + (h7 / antal); ENDIF;
      IF antal > 6 THEN dtemp := dtemp + (h6 / antal); ENDIF;
      IF antal > 5 THEN dtemp := dtemp + (h5 / antal); ENDIF;
      IF antal > 4 THEN dtemp := dtemp + (h4 / antal); ENDIF;
      IF antal > 3 THEN dtemp := dtemp + (h3 / antal); ENDIF;
      IF antal > 2 THEN dtemp := dtemp + (h2 / antal); ENDIF;
      IF antal > 1 THEN dtemp := dtemp + (h1 / antal); ENDIF;
      dampad_kanal <- dtemp;
    ENDIF;
    IF (TIME_SEC = 59) AND (TIME_MINUTE = 59) THEN  
      h36:=h35;
      h35:=h34;
      h34:=h33;
      h33:=h32;
      h32:=h31;
      h31:=h30;
      h30:=h29;
      h29:=h28;
      h28:=h27;
      h27:=h26;
      h26:=h25;
      h25:=h24;
      h24:=h23;
      h23:=h22;
      h22:=h21;
      h21:=h20;
      h20:=h19;
      h19:=h18;
      h18:=h17;
      h17:=h16;
      h16:=h15;
      h15:=h14;
      h14:=h13;
      h13:=h12;
      h12:=h11;
      h11:=h10;
      h10:=h9;
      h9:=h8;
      h8:=h7;
      h7:=h6;
      h6:=h5;
      h5:=h4;
      h4:=h3;
      h3:=h2;
      h2:=h1;
      h1:=hmedel;
      IF antal_v < 37 THEN antal_v := antal_v + 1; ENDIF;
    ENDIF;
END;

Användarnas noteringar

Du måste vara inloggad för att göra en notering. Bli medlem eller logga in. Vi använder en moderator som godkänner noteringarna innan de visas.