Regin Regio Midi Rumsregulator

Detaljer

Typ
Drivrutin
Upplaggd av
Ove Jansson, Abelko Innovation
Version
1
Uppdaterad
2013-08-28
Skapad
2013-08-28
Kategori
Kyla, Modbus, Övrig utrustning, Värme, Ventilation
Visningar
3101

Beskrivning

Drivrutin

Bruksanvisning

Hur man installerar typdefinitionerna och driftsätter modulerna finns beskrivet i användarmanualen, kapitel 18.7.

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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for RegioMidi, Digital inputs
%
% Settings module:
%       Parity: None
%       Baud:   9600
%       Mode:   RTU
%
% Author:  Peter Widetun, ABELKO AB Luleå
% History: 2010-08-05 inital version
%
DEVICETYPE RegioMidiDigital NAMED "RegioMidi DI/DU" TYPEID 21370 IS

  PARAMETER
    Id    : "Adress";

  PUBLIC

   %D1    : "DigIn(0)"    ;   % 1   L,2  Används ej
    D2    : "DigIn1"      ;   % 2   L,2  Värde på digital ingång 1
    D3    : "DigIn2"      ;   % 3   L,2  Värde på digital ingång 2
    D4    : "UDigIn1"     ;   % 4   L,2  Värde på universell digital ingång 1
    D5    : "DigOut(0)"   ;   % 5   L,2  Används ej
   %D6    : "DigOut1"     ;   % 6   L,2  Värde på digital utgång 1
    D7    : "DigOut2"     ;   % 7   L,2  Värde på digital utgång 2
    D8    : "DigOut3"     ;   % 8   L,2  Värde på digital utgång 3
    D9    : "DigOut4"     ;   % 9   L,2  Värde på digital utgång 4
    D10   : "DigOut5"     ;   % 10  L,2  Värde på digital utgång 5
    D11   : "UDigOut1"    ;   % 11  L,2  Värde på universell digital utgång 1
    D12   : "UDigOut2"    ;   % 12  L,2  Värde på universell digital utgång 2

  PRIVATE

  BAUDRATE 9600;

  CHECKSUM MODBUS SWAPPED;

  TELEGRAM DigitalInput NAMED "Läs status IN/UT" IS
    QUESTION
      DATA[0]  := BYTE(Id);      % Modbus unit address
      DATA[1]  := HEX(02);       % Modbus command "02h" read discrete input (bit)
      DATA[2]  := RWORD(0);      % Start adress (1-1)
      DATA[4]  := RWORD(12);     % Number of inputs

    ANSWER SIZE 7                % ((Number of inputs / 8) + (Rest>0)) + 5
      DATA[0]   = BYTE(Id);
      DATA[1]   = HEX(02);
     %DATA[2]   = BYTE(2);
      DATA[3]  -> BYTE(
     %                 IF (DATA & 1)   THEN D1 := 1; ELSE D1 := 0; ENDIF;
                       IF (DATA & 2)   THEN D2 := 1; ELSE D2 := 0; ENDIF;
                       IF (DATA & 4)   THEN D3 := 1; ELSE D3 := 0; ENDIF;
                       IF (DATA & 8)   THEN D4 := 1; ELSE D4 := 0; ENDIF;
                       IF (DATA & 16)  THEN D5 := 1; ELSE D5 := 0; ENDIF;
     %                 IF (DATA & 32)  THEN D6 := 1; ELSE D6 := 0; ENDIF;
                       IF (DATA & 64)  THEN D7 := 1; ELSE D7 := 0; ENDIF;
                       IF (DATA & 128) THEN D8 := 1; ELSE D8 := 0; ENDIF;
                       );
      DATA[4]  -> BYTE(
                       IF (DATA & 1)   THEN D9 := 1; ELSE D9 := 0; ENDIF;
                       IF (DATA & 2)   THEN D10:= 1; ELSE D10:= 0; ENDIF;
                       IF (DATA & 4)   THEN D11:= 1; ELSE D11:= 0; ENDIF;
                       IF (DATA & 8)   THEN D12:= 1; ELSE D12:= 0; ENDIF;
                       );

    TIMEOUT 2000

  END;

END;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for RegioMidi, Indikation/Alarm inputs
%
% Settings module:
%       Parity: None
%       Baud:   9600
%       Mode:   RTU
%
% Author:  Peter Widetun, ABELKO AB Luleå
% History: 2010-08-05 initial version
%
DEVICETYPE RegioMidiAlarm NAMED "RegioMidi Ind." TYPEID 21371 IS

  PARAMETER
    Id         : "Adress";

  PUBLIC
                                %        Indikerar
    AL13 : "DIOpenWindow"   ;   % 13 L,2 öppet fönster
    AL14 : "DICondenseAlarm";   % 14 L,2 kondenslarm från digital ingång
    AL15 : "DIPresences"    ;   % 15 L,2 närvaro från digital ingång
    AL16 : "DIChangeOver"   ;   % 16 L,2 change-over från digitalingång
    AL17 : "FanSpeed1"      ;   % 17 L,2 fläkthastighet 1
    AL18 : "FanSpeed2"      ;   % 18 L,2 fläkthastighet 2
    AL19 : "FanSpeed3"      ;   % 19 L,2 fläkthastighet 3
    AL20 : "Forcedvent."    ;   % 20 L,2 forcerad ventilation
    AL21 : "CVHeatPulsProp" ;   % 21 L,2 pulsprop värme
    AL22 : "CVCoolPulsProp" ;   % 22 L,2 pulsprop kyla
    AL23 : "CVHeatInc"      ;   % 23 L,2 värme öka
    AL24 : "CVHeatDec"      ;   % 24 L,2 värme minska
    AL25 : "CVCoolInc"      ;   % 25 L,2 kyla öka
    AL26 : "CVCoolDec"      ;   % 26 L,2 kyla minska
    AL27 : "ChangeOverAI"   ;   % 27 L,2 change-over-status från analog ingång
    AL28 : "ChangeOverAI/DI";   % 28 L,2 change-over-status från både digital och analog ingång
    AL29 : "RoomTempSeAlarm";   % 29 L,2 givarlarm på rumsgivare

  PRIVATE

  BAUDRATE 9600;

  CHECKSUM MODBUS SWAPPED;

  TELEGRAM DigitalAlarm NAMED "Indikering/Larm" IS

    QUESTION
      DATA[0]  := BYTE(Id);      % Modbus unit address
      DATA[1]  := HEX(02);       % Modbus command "02h" read discrete input (bit)
      DATA[2]  := RWORD(12);     % Start adress (13-1)
      DATA[4]  := RWORD(17);     % Number of inputs

    ANSWER SIZE 8                % ((Number of inputs / 8) + (Rest>0)) + 5
      DATA[0]   = BYTE(Id);
      DATA[1]   = HEX(02);
     %DATA[2]   = BYTE(3);
      DATA[3]  -> BYTE(
                       IF (DATA & 1)   THEN AL13:= 1; ELSE AL13:= 0; ENDIF;
                       IF (DATA & 2)   THEN AL14:= 1; ELSE AL14:= 0; ENDIF;
                       IF (DATA & 4)   THEN AL15:= 1; ELSE AL15:= 0; ENDIF;
                       IF (DATA & 8)   THEN AL16:= 1; ELSE AL16:= 0; ENDIF;
                       IF (DATA & 16)  THEN AL17:= 1; ELSE AL17:= 0; ENDIF;
                       IF (DATA & 32)  THEN AL18:= 1; ELSE AL18:= 0; ENDIF;
                       IF (DATA & 64)  THEN AL19:= 1; ELSE AL19:= 0; ENDIF;
                       IF (DATA & 128) THEN AL20:= 1; ELSE AL20:= 0; ENDIF;
                       );
      DATA[4]  -> BYTE(
                       IF (DATA & 1)   THEN AL21:= 1; ELSE AL21:= 0; ENDIF;
                       IF (DATA & 2)   THEN AL22:= 1; ELSE AL22:= 0; ENDIF;
                       IF (DATA & 4)   THEN AL23:= 1; ELSE AL23:= 0; ENDIF;
                       IF (DATA & 8)   THEN AL24:= 1; ELSE AL24:= 0; ENDIF;
                       IF (DATA & 16)  THEN AL25:= 1; ELSE AL25:= 0; ENDIF;
                       IF (DATA & 32)  THEN AL26:= 1; ELSE AL26:= 0; ENDIF;
                       IF (DATA & 64)  THEN AL27:= 1; ELSE AL27:= 0; ENDIF;
                       IF (DATA & 128) THEN AL28:= 1; ELSE AL28:= 0; ENDIF;
                       );
      DATA[5]  -> BYTE(
                       IF (DATA & 1)   THEN AL29:= 1; ELSE AL29:= 0; ENDIF;
                       );

    TIMEOUT 2000

  END;

END;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for RegioMidi Digital outputs
%
% Settings module:
%       Parity: None
%       Baud:   9600
%       Mode:   RTU
%
% Author:  Peter Widetun, ABELKO AB Luleå
% History: 2010-0806 inital version
%
DEVICETYPE RegioMidiDigitalOut NAMED "RegioMidi SetDU" TYPEID 21372 IS

  PARAMETER
    Id         : "Adress";

   %DU1  : "Bypass"  ;  % 1  L,1  0  Sätter enheten i Bypass-läge. Återgår automatiskt efter Bypass-tid (default=120 min).
   %DU2  : "ShutDown";  % 2  L,1  0  Sätter enheten i Shutdown-läge
   %DU3  : "NotUsedL";  % 3  L,1  0  Används ej
   %DU4  : "DiNC(0)" ;  % 4  L,1  0  Används ej
   %DU5  : "Di1NC"   ;  % 5  L,1  0  Normalt öppen (NO) eller normalt stängd (NC) på digital ingång 1. 0=NO, 1=NC.
   %DU6  : "Di2NC"   ;  % 6  L,1  1  Normalt öppen (NO) eller normalt stängd (NC) på digital ingång 2. 0=NO, 1=NC.
    DU7  : "UDi1NC"  ;  % 7  L,1  0  Normalt öppen (NO) eller normalt stängd (NC) på universell digital ingång 1. 0=NO, 1=NC.

  PUBLIC

  PRIVATE
    Cnt;

  BAUDRATE 9600;
  CHECKSUM MODBUS SWAPPED;

  TELEGRAM WriteDISET1 NAMED "Sätt Dig.Status" IS
    QUESTION
      DATA[0]  := BYTE(Id);      % Modbus unit address
      DATA[1]  := HEX(05);       % Modbus command "05h" Set coil status (bit)
      DATA[2]  <- RWORD(         %
        IF Cnt>8 THEN Cnt:=0; ENDIF;
        DATA := 6;                   % Digital reg 7
       %IF    Cnt=0 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=1 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=2 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=3 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=4 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=5 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=6 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=7 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=8 THEN DATA := 6;  % Digital reg 7
       %ENDIF;
      );
      DATA[4]  <- RWORD(
        IF DU7 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
       %IF    Cnt=0 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
       %ELSIF Cnt=1 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
       %ELSIF Cnt=2 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
       %ELSIF Cnt=3 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
       %ELSIF Cnt=4 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
       %ELSIF Cnt=5 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
       %ELSIF Cnt=6 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
       %ELSIF Cnt=7 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
       %ELSIF Cnt=8 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
       %ENDIF;
        Cnt := Cnt + 1;
      );

    ANSWER SIZE 8
      DATA[0]   = BYTE(Id);
      DATA[1]   = HEX(05);

    TIMEOUT 1000
  END;

END;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for RegioMidi Analog inputs
%
% Settings module:
%       Parity: None
%       Baud:   9600
%       Mode:   RTU
%
% Note! Telegram for reading Analog status AI and AO
%
% Author:  Peter Widetun, ABELKO AB Luleå
% History: 2008-10-14 inital version
% History: 2010-06-18 Anpassning för Svensk Styrteknik
%
DEVICETYPE RegioMidiEAnalog NAMED "RegioMidi AI/AU" TYPEID 21373 IS

  PARAMETER
    Id         : "Adress";

  PUBLIC

   %V1  : "Software"               ;   % 1   X,4  Typ av Regio mjukvara: 0 = RCP 1 = RC
   %V2  : "VerMajor"               ;   % 2   X,4  Huvudversion
   %V3  : "VerMinor"               ;   % 3   X,4  Mindre version
   %V4  : "VerBranch"              ;   % 4   X,4  Del version
    V5  : "Revision"               ;   % 5   X,4  Revision

    V6  : "FanSwitch"              ;   % 6   X,4  Tillstånd fläktomkopplare
    V7  : "UnitState"              ;   % 7   X,4  Aktuellt driftläge: 0 = Off 1 = Unoccupied 2 = Stand-by 3 = Occupied 4 = ByPass
    V8  : "ControllerState"        ;   % 8   X,4  Aktuell reglering: 0 = Från 1 = Värme 2 = Kyla
    V9  : "FanSpeed"               ;   % 9   X,4  Aktuell fläkthastighet: 0 = Från 1 = Fläkthastighet 1 2 = Fläkthastighet 2 3 = Fläkthastighet 3
   %V10 : "NotUsedX"               ;   % 10  X,4  Används ej
    V11 : "RoomTemp"         ["°C"];   % 11  R,4  Rumstemperatur
    V12 : "RoomTempExt"      ["°C"];   % 12  R,4  Rumstemperatur från extern givare
    V13 : "RoomTempInt"      ["°C"];   % 13  R,4  Rumstemperatur från intern givare
    V14 : "AIChangeOver"     ["°C"];   % 14  R,4  Change-over-temperatur
    V15 : "AnaIn1"           ["V"] ;   % 15  R,4  Värde på analog ingång 1
    V16 : "UAnaIn1"          ["V"] ;   % 16  R,4  Värde på universell analog ingång 1
    V17 : "UAnaOut1"         ["V"] ;   % 17  R,4  Värde på universell analog utgång 1
    V18 : "UAnaOut2"         ["V"] ;   % 18  R,4  Värde på universell analog utgång 2
    V19 : "SetPAdjustment"   ["°C"];   % 19  R,4  Börvärdesjustering från intern enhet
    V20 : "PIDSetP"          ["°C"];   % 20  R,4  Regulatorbörvärde
    V21 : "PIDOutput"        ["%"] ;   % 21  R,4  Regulatorutsignal (0…100%)
    V22 : "HeatOutput"       ["%"] ;   % 22  R,4  Värmeutsignal (0…100%)
    V23 : "CoolOutput"       ["%"] ;   % 23  R,4  Kylutsignal (0…100%)
    V24 : "AI1Raw"           ["V"] ;   % 24  R,4  Råvärde för analog ingång 1
    V25 : "UI1Raw"           ["V"] ;   % 25  R,4  Råvärde för universell ingång 1

  PRIVATE

  BAUDRATE 9600;

  CHECKSUM MODBUS SWAPPED;

  TELEGRAM AnalogInput NAMED "Läs värden" IS
    QUESTION
      DATA[0]  := BYTE(Id);      % Modbus unit address
      DATA[1]  := HEX(04);       % Modbus command "04h" Read registers
      DATA[2]  := RWORD(0);      % Start address register
      DATA[4]  := RWORD(25);     % Number of registers

    ANSWER SIZE 55               % (Number of registers * 2) + 5
      DATA[0]   = BYTE(Id);      % ID
      DATA[1]   = HEX(04);       % Modbus command "04h" Read registers
     %DATA[2]   = BYTE(50);      % Byte count
     %DATA[3]  -> RWORD(V1 := DATA;);
     %DATA[5]  -> RWORD(V2 := DATA;);
     %DATA[7]  -> RWORD(V3 := DATA;);
     %DATA[9]  -> RWORD(V4 := DATA;);
      DATA[11] -> RWORD(V5 := DATA;);
      DATA[13] -> RWORD(V6 := DATA;);
      DATA[15] -> RWORD(V7 := DATA;);
      DATA[17] -> RWORD(V8 := DATA;);
      DATA[19] -> RWORD(V9 := DATA;);
     %DATA[21] -> RWORD(V10:= DATA;);
      DATA[23] -> RWORD(IF (DATA>=32768) THEN V11:=(DATA-65536)/10; ELSE V11:=DATA/10; ENDIF;);
      DATA[25] -> RWORD(IF (DATA>=32768) THEN V12:=(DATA-65536)/10; ELSE V12:=DATA/10; ENDIF;);
      DATA[27] -> RWORD(IF (DATA>=32768) THEN V13:=(DATA-65536)/10; ELSE V13:=DATA/10; ENDIF;);
      DATA[29] -> RWORD(IF (DATA>=32768) THEN V14:=(DATA-65536)/10; ELSE V14:=DATA/10; ENDIF;);
      DATA[31] -> RWORD(IF (DATA>=32768) THEN V15:=(DATA-65536)/10; ELSE V15:=DATA/10; ENDIF;);
      DATA[33] -> RWORD(IF (DATA>=32768) THEN V16:=(DATA-65536)/10; ELSE V16:=DATA/10; ENDIF;);
      DATA[35] -> RWORD(IF (DATA>=32768) THEN V17:=(DATA-65536)/10; ELSE V17:=DATA/10; ENDIF;);
      DATA[37] -> RWORD(IF (DATA>=32768) THEN V18:=(DATA-65536)/10; ELSE V18:=DATA/10; ENDIF;);
      DATA[39] -> RWORD(IF (DATA>=32768) THEN V19:=(DATA-65536)/10; ELSE V19:=DATA/10; ENDIF;);
      DATA[41] -> RWORD(IF (DATA>=32768) THEN V20:=(DATA-65536)/10; ELSE V20:=DATA/10; ENDIF;);
      DATA[43] -> RWORD(IF (DATA>=32768) THEN V21:=(DATA-65536)/10; ELSE V21:=DATA/10; ENDIF;);
      DATA[45] -> RWORD(IF (DATA>=32768) THEN V22:=(DATA-65536)/10; ELSE V22:=DATA/10; ENDIF;);
      DATA[47] -> RWORD(IF (DATA>=32768) THEN V23:=(DATA-65536)/10; ELSE V23:=DATA/10; ENDIF;);
      DATA[49] -> RWORD(IF (DATA>=32768) THEN V24:=(DATA-65536)/10; ELSE V24:=DATA/10; ENDIF;);
      DATA[51] -> RWORD(IF (DATA>=32768) THEN V25:=(DATA-65536)/10; ELSE V25:=DATA/10; ENDIF;);

    TIMEOUT 2000

  END;

END;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for RegioMidi Analog settings
%
% Settings module:
%       Parity: None
%       Baud:   9600
%       Mode:   RTU
%
% Author:  Peter Widetun, ABELKO AB Luleå
% History: 2010-08-06 inital version
%
DEVICETYPE RegioMidiSet NAMED "RegioMidi Ställ" TYPEID 21274 IS

  PARAMETER
    Id  : "Adress";

   %S1 : "AlaModStat"             ;   % 1   X,3  -        Används ej
   %S2 : "PIDSelect"              ;   % 2   X,3  -        Används ej
   %S3 : "HeatOutputSel."         ;   % 3   X,3  2        Manuell/Auto värmeutgång:
   %                                   %                    0 = Från
   %                                   %                    1 = Manuell utstyrning
   %                                   %                    2 = Automatisk utstyrning
   %S4 : "CoolOutputSel."         ;   % 4   X,3  2        Manuell/Auto kylutgång
   %S5 : "FanSelect"              ;   % 5   X,3  4        Välj fläktläge:
   %                                   %                    0 = Från
   %                                   %                    1 = Manuell hastighet 1
   %                                  %                    2 = Manuell hastighet 2
   %                                   %                    3 = Manuell hastighet 3
   %                                   %                    4 = Auto
   %S6  : "FanControlMode"         ;   % 6   X,3  3        Välj fläktstyrning:
   %                                   %                    0 = Ingen styrning
   %                                   %                    1 = Fläkten styrs vid värmebehov
   %                                   %                    2 = Fläkten styrs vid kylbehov
   %                                   %                    3 = Fläkten styrs bade av värme och kylbehov
   %S7  : "FanSpeed1Start"         ;   % 7   X,3  20       Regulatorutsignal i % för fläkthastighet 1 vid värme- eller kylutstyrning
   %S8  : "FanSpeed2Start"         ;   % 8   X,3  60       Regulatorutsignal i % för fläkthastighet 2 vid värme- eller kylutstyrning
   %S9  : "FanSpeed3Start"         ;   % 9   X,3  100      Regulatorutsignal i % för fläkthastighet 3 vid värme- eller kylutstyrning
   %S10 : "FanSpeedHyst"           ;   % 10  X,3  5        Regulatorutsignal hysteres start/stopp fläkthastighet.
   %S11 : "FanSpeedMax"            ;   % 11  X,3  3        Antal fläkthastigheter (1-3)
   %S12 : "ForcedVentSel."         ;   % 12  X,3  2        Manuell/Auto forcerad ventilation (0=Från, 1=Till, 2=Auto)
    S13 : "ChangeOverSel."         ;   % 13  X,3  2        Manuell/Auto change-over (0=Värme, 1=Kyla, 2=Auto)
   %S14 : "RemoteState"            ;   % 14  X,3  5        Används för fjärrstyrning:
   %                                   %                    0 = Off
   %                                   %                    1 = Unoccupied
   %                                   %                    2 = Stand-by
   %                                   %                    3 = Occupied
   %                                   %                    5 = Ingen fjärrstyrning
   %S15 : "UnitReturnState"        ;   % 15  X,3  3        Förinställt driftläge:
   %                                   %                    2 = Stand-by
   %                                   %                    3 = Occupied
   %S16 : "UnitShutD.State"        ;   % 16  X,3  1        Shutdown-läge:
   %                                   %                    0 = Off
   %                                   %                    1 = Unoccupied
   %S17 : "BtnOnOffTime"           ;   % 17  X,3  5        Tid (i sek) som närvaroknappen måste hållas inne innan regulatorn går in i Shutdown-läge.
   %S18 : "ControllerMode"         ;   % 18  X,3  3        Reglerfall:
   %                                   %                    0 = Värme
   %                                   %                    1 = Värme/ Värme
   %                                   %                    2 = Värme eller Kyla via change-overindikering
   %                                   %                    3 = Värme/Kyla
   %                                   %                    4 = Värme/Kyla med VAV och forcering
   %                                   %                    5 = Värme/Kyla med VAV-reglering
   %                                   %                    6 = Kyla
   %                                   %                    7 = Kyla/Kyla
   %S19 : "CVHeatType"             ;   % 19  X,3  0        Ställdonstyp värme:
   %                                   %                    0 = 0…10 V
   %                                   %                    1 = 2…10 V
   %                                   %                    2 = 10…2 V
   %                                   %                    3 = 10…0 V
   %S20 : "CVCoolType"             ;   % 20  X,3  0        Ställdonstyp kyla
   %S21 : "CVHeatExerc.Int"        ;   % 21  X,3  23       Tid i timmar mellan motionering av värmeställdon.
   %S22 : "CVCoolExerc.Int"        ;   % 22  X,3  23       Tid i timmar mellan motionering av kylställdon.
   %S23 : "Ai(0)"                  ;   % 23  X,3  -        Används ej
   %S24 : "Ai1_Func. 0-1"          ;   % 24  X,3  0        Signal ansluten på AI1:
   %                                   %                    0 = Inaktiv (intern rumsgivare används)
   %                                   %                    1 = Extern rumsgivare
   %S25 : "Ai2"                    ;   % 25  X,3  -        Används ej
   %S26 : "Di(0)"                  ;   % 26  X,3  -        Används ej
   %S27 : "Di1_Func. 0-1"          ;   % 27  X,3  3        Närvarogivare ansluten på DI1.
   %S28 : "Di2_Func. 0-2"          ;   % 28  X,3  2        Signal ansluten på DI2:
   %                                   %                    1 = Öppet fönster
   %                                   %                    2 = Kondenslarm
   %S29 : "Di3"                    ;   % 29  X,3  0        Används ej
   %S30 : "Ui1_Func. 0-2"          ;   % 30  X,3  2        Signal ansluten på UI1:
   %                                   %                    0 = Inaktiv
   %                                   %                    1 = Change-over givare digitalt
   %                                   %                    2 = Change-over givare analog
   %S31 : "Ao(0)"                  ;   % 31  X,3  -        Används ej
   %S32 : "Ao1"                    ;   % 32  X,3  1        Används ej
   %S33 : "Ao2"                    ;   % 33  X,3  2        Används ej
   %S34 : "Do(0)"                  ;   % 34  X,3  -        Används ej
   %S35 : "Do1_Func. 0-10"         ;   % 35  X,3  1        Signal ansluten på DO1:
   %                                   %                    0  = Inaktiv
   %                                   %                    1  = Fläkthastighet 1
   %                                   %                    2  = Fläkthastighet 2
   %                                   %                    3  = Fläkthastighet 3
   %                                   %                    4  = Forcerad ventilation
   %                                   %                    5  = Termoventil värme
   %                                   %                    6  = Termoventil kyla
   %                                   %                    7  = Styrventil värme öka
   %                                   %                    8  = Styrventil värme minska
   %                                   %                    9  = Styrventil kyla öka
   %                                   %                    10 = Styrventil kyla minska
   %S36 : "Do2_Func. 0-10"         ;   % 36  X,3  2        Signal ansluten på DO2
   %S37 : "Do3_Func. 0-10"         ;   % 37  X,3  3        Signal ansluten på DO3
   %S38 : "Do4_Func. 0-10"         ;   % 38  X,3  4        Signal ansluten på DO4
   %S39 : "Do5_Func. 0-10"         ;   % 39  X,3  0        Signal ansluten på DO5
   %S40 : "Do6"                    ;   % 40  X,3  5        Används ej
   %S41 : "Do7"                    ;   % 41  X,3  6        Används ej
   %S42 : "Uo1_Func. 0-4"          ;   % 42  X,3  3        Signal ansluten på UO1:
   %                                   %                    0 = Inaktiv
   %                                   %                    1 = Termoventil värme
   %                                   %                    2 = Termoventil kyla
   %                                   %                    3 = Styrventil värme analog
   %                                   %                    4 = Styrventil kyla analog
   %S43 : "Uo2_Func. 0-4"          ;   % 43  X,3  4        Signal ansluten på UO2
   %S44 : "ModbusSlaveAddr"        ;   % 44  X,3           Adress Modbus-slav
   %S45 : "ModbusParity"           ;   % 45  X,3  2        Modbus paritetsbit:
   %                                   %                    0 = Ingen paritet
   %                                   %                    1 = Udda paritet
   %                                   %                    2 = Jämn paritet
   %S46 : "ModbusChTimeout"        ;   % 46  X,3  2        Modbus timeout för tecken (t1.5), i ms. Ska vara 1,5 gånger ett tecken, dvs. minst 2 ms.
   %S47 : "ModbusAnswDelay"        ;   % 47  X,3  5        Svarsfördröjning Modbus (t3.5), i ms. Ska vara 3,5 gånger ett tecken, dvs. minst 5 ms.
   %S48 : "DispBacklightLO"        ;   % 48  X,3  20       Displaybelysning låg (0…255)
   %S49 : "DispBacklightHi"        ;   % 49  X,3  100      Displaybelysning hög (0…255)
   %S50 : "DispContrast"           ;   % 50  X,3  15       Kontrast (0…15)
   %S51 : "DisplayViewMode"        ;   % 51  X,3  0        Visningsalternativ för displayen:
   %                                   %                    0 = Rumstemperatur
   %                                   %                    1 = Värmebörvärde
   %                                   %                    2 = Kylbörvärde
   %                                   %                    3 = Medelvärde kyl-/värmebörvärde
   %                                   %                    4 = Endast börvärdesavvikelse
   %S52 : "NotUsedX"               ;   % 52  X,3  -        Används ej
   %S53 : "NotUsedX"               ;   % 53  X,3  -        Används ej
   %S54 : "NotUsedX"               ;   % 54  X,3  -        Används ej
   %S55 : "NotUsedX"               ;   % 55  X,3  -        Används ej
   %S56 : "BypassTime"      ["min"];   % 56  I,3  120 min  Tid i Bypass-läge (min)
   %S57 : "PresenceOffTime" ["min"];   % 57  I,3  10  min  Frånslagsfördröjning vid ändring till ingen närvaro (min)
   %S58 : "PresenceOnTime"  ["min"];   % 58  I,3  0   min  Tillslagsfördröjning vid ändring till närvaro (min)
   %S59 : "CVHeatPerioTime" ["sek"];   % 59  I,3  60  sek  Periodtid för pulsprop. styrventil värme (sek)
   %S60 : "CVCoolPerioTime" ["sek"];   % 60  I,3  60  sek  Periodtid för pulsprop. styrventil kyla (sek)
   %S61 : "CVHeatRunTime"   ["sek"];   % 61  I,3  120 sek  Gångtid stängd till öppen ventil värme (sek)
   %S62 : "CVCoolRunTime"   ["sek"];   % 62  I,3  120 sek  Gångtid stängd till öppen ventil kyla (sek)
   %S63 : "NotUsedX"               ;   % 63  X,3  -        Används ej
   %S64 : "NotUsedX"               ;   % 64  X,3  -        Används ej
   %S65 : "NotUsedX"               ;   % 65  X,3  -        Används ej
   %S66 : "NotUsedX"               ;   % 66  X,3  -        Används ej
   %S67 : "NotUsedX"               ;   % 67  X,3  -        Används ej
   %S68 : "OccSetPHeat"     ["°C"] ;   % 68  R,3  22 °C    Grundbörvärde värme
   %S69 : "OccSetPCool"     ["°C"] ;   % 69  R,3  24 °C    Grundbörvärde kyla
   %S70 : "SBySetPDeadBand" ["°C"] ;   % 70  R,3  3  °C    Dödband i Standby-läge
   %S71 : "UnOccSetPHeat"   ["°C"] ;   % 71  R,3  15 °C    Värmebörvärde i Unoccupied-läge
   %S72 : "UnOccSetPCool"   ["°C"] ;   % 72  R,3  30 °C    Kylbörvärde i Unoccupied-läge
   %S73 : "FrostSetP"       ["°C"] ;   % 73  R,3  8  °C    Frysskyddsbörvärde
   %S74 : "SetPntOffsetPos" ["°C"] ;   % 74  R,3  3  °C    Max. börvärdesjustering uppåt
   %S75 : "SetPntOffsetNeg" ["°C"] ;   % 75  R,3  3  °C    Max. börvärdesjustering nedåt
   %S76 : "SetPOffset"      ["°C"] ;   % 76  R,3  0  °C    Börvärdesjustering
   %S77 : "PIDPGain"        ["°C"] ;   % 77  R,3  10 °C    P-band rumsregulator
   %S78 : "PIDITime"        ["sek"];   % 78  R,3  300 sek  I-tid rumsregulator
   %S79 : "CVDeadband"      ["%"]  ;   % 79  R,3  2  %     Dödband styrventil
   %S80 : "AIChOverLimLow"  ["°C"] ;   % 80  R,3  18 °C    Regulatorn ställer om sig till kylregulator om change-overtemperaturen är lägre
   %S81 : "AIChOverLimHigh" ["°C"] ;   % 81  R,3  22 °C    Regulatorn ställer om sig till värmeregulator om change-overtemperaturen är högre
   %S82 : "Ai1Comp"         ["°C"] ;   % 82  R,3  0  °C    Kompensation analog ingång 1
   %S83 : "oUi1Comp"        ["°C"] ;   % 83  R,3  0  °C    Kompensation universell ingång 1
   %S84 : "InternTempComp"  ["°C"] ;   % 84  R,3  0  °C    Kompensation intern rumsgivare
   %S85 : "TempFiltFactor"  ["°C"] ;   % 85  R,3  0,2°C    Filterfaktor för temperatur på analog ingång 0 = Inget filter 1 = Maxfilter
   %S86 : "MinFlow"         ["%"]  ;   % 86  R,3  20 %     Minflöde för kylutgång när VAVreglering är konfigurerad
   %S87 : "MaxFlowHeat"     ["%"]  ;   % 87  R,3  0  %     Maxflöde för kylutgång när reglerfall “Värme/Kyla med VAV-reglering” är konfigurerat och värme styr kylutgången
   %S88 : "NotUsedR"        [""]   ;   % 88  R,3  -        Används ej
   %S89 : "NotUsedR"        [""]   ;   % 89  R,3  -        Används ej
   %S90 : "NotUsedR"        [""]   ;   % 90  R,3  -        Används ej
   %S91 : "NotUsedR"        [""]   ;   % 91  R,3  -        Används ej
   %S92 : "NotUsedR"        [""]   ;   % 92  R,3  -        Används ej
   %S93 : "PIDManSet"       [""]   ;   % 93  R,3  -        Används ej
   %S94 : "HeatOutputManua" ["%"]  ;   % 94  R,3  0  %     Manuellt utstyrning värmeutgång (0…100%)
   %S95 : "CoolOutputManua" ["%"]  ;   % 95  R,3  0  %     Manuellt utstyrning kylutgång (0…100%)
   %S96 : "RoomTempRemote"  [""]   ;   % 96  R,3  -255     Används för fjärrstyrning av rumstemperaturen. (-255 = ingen fjärrstyrning av rumstemperaturen) Extern rumsgivare måste väljas.

  PUBLIC

  PRIVATE
    Cnt;

  BAUDRATE 9600;

  CHECKSUM MODBUS SWAPPED;

  TELEGRAM Settings1 NAMED "Ställ värden" IS

    QUESTION
      DATA[0]  := BYTE(Id);
      DATA[1]  := HEX(06);                %Write singel register
      DATA[2]  <- RWORD(                  %Start adress (regnr-1)
        IF Cnt>8 THEN Cnt:=0; ENDIF;
       %%                Adress=Register-1
        DATA := 12;
       %IF    Cnt=0 THEN DATA := 12;     % S13 Manuell/Auto change-over (0=Värme, 1=Kyla, 2=Auto)
       %ELSIF Cnt=1 THEN DATA := 12;     % S13
       %ELSIF Cnt=2 THEN DATA := 12;     % S13
       %ELSIF Cnt=3 THEN DATA := 12;     % S13
       %ELSIF Cnt=4 THEN DATA := 12;     % S13
       %ELSIF Cnt=5 THEN DATA := 12;     % S13
       %ELSIF Cnt=6 THEN DATA := 12;     % S13
       %ELSIF Cnt=7 THEN DATA := 12;     % S13
       %ELSE             DATA := 12;     % S13
       %ENDIF;
      );

      DATA[4]  <- RWORD(

       %IF    Cnt=0 THEN
         IF    S13<0     THEN DATA := 2;       % S13 Manuell/Auto change-over (0=Värme, 1=Kyla, 2=Auto)% S0 =
         ELSIF S13>2     THEN DATA := 2;
         ELSE                 DATA := S13;
         ENDIF;
       %ELSIF Cnt=1 THEN
       %  IF    S24<20   THEN DATA := 200;    % S0 =
       %  ELSIF S24>750  THEN DATA := 7500;
       %  ELSE                DATA := S24*10;
       %  ENDIF;
       %ELSIF Cnt=2 THEN
       %  IF    S25<20   THEN DATA := 200;    % S0 =
       %  ELSIF S25>750  THEN DATA := 7500;
       %  ELSE                DATA := 25*10;
       %  ENDIF;
       %ELSIF Cnt=3 THEN
       %  IF    S26<20   THEN DATA := 200;    % S0 =
       %  ELSIF S26>750  THEN DATA := 7500;
       %  ELSE                DATA := S26*10;
       %  ENDIF;
       %ELSIF Cnt=4 THEN
       %  IF    S27<20   THEN DATA := 200;    % S0 =
       %  ELSIF S27>750  THEN DATA := 7500;
       %  ELSE                DATA := S27*10;
       %  ENDIF;
       %ELSIF Cnt=5 THEN
       %  IF    S1<10    THEN DATA := 100;    % S0 =
       %  ELSIF S1>40    THEN DATA := 400;
       %  ELSE                DATA := S1*10;
       %  ENDIF;
       %ELSIF Cnt=6 THEN
       %  IF    S33<10   THEN DATA := 100;    % S0 =
       %  ELSIF S33>40   THEN DATA := 400;
       %  ELSE                DATA := S33*10;
       %  ENDIF;
       %ELSIF Cnt=7 THEN
       %  IF    S34<4    THEN DATA := 40;     % S0 =
       %  ELSIF S34>40   THEN DATA := 400;
       %  ELSE                DATA := S34*10;
       %  ENDIF;
       %ELSE
       %  IF    S439<10  THEN DATA := 100;    % S0 =
       %  ELSIF S439>40  THEN DATA := 400;
       %  ELSE                DATA := S439*10;
       %  ENDIF;
       %
       %ENDIF;

        Cnt := Cnt + 1;
        IF Cnt>8 THEN Cnt := 0;
        ENDIF;
      );

    ANSWER SIZE 8
      DATA[0] = BYTE(Id);
      DATA[1] = HEX(06);

    TIMEOUT 2000

  END;

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.