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
- 3099
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;
% 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.