Climaveneta
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 1
- Uppdaterad
- 2013-04-06
- Skapad
- 2013-04-06
- Kategori
- Modbus, Ventilation
- Visningar
- 3109
Beskrivning
För Climaventa luftkonditionering
Bruksanvisning
saknas
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 Climaveneta, Digital inputs
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2010-11-22 inital version
%
DEVICETYPE ClimavenetaDI NAMED "Climaveneta DI" TYPEID 21401 IS
PARAMETER
Id : "Adress";
PUBLIC
C002 : "Aggregat" ; % 002 B Ut Driftstatus aggregat (0 = Från 1 = Till)
C004 : "PumpVärmeKöld"; % 004 B Ut Driftstatus värme-/köldbärarpump 1 (0 = Från 1 = Till)
C009 : "ÖVSStartStopp"; % 009 B In/Ut Aktivera start/stopp från övervakningssystem (0 = Start 1 = Stopp)
C012 : "ÖVSAktivera" ; % 012 B Ut Val av driftsätt från övervakningssystem (0 = Ej aktiv 1 = Aktiv)
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM DigitalInput NAMED "Läs Status 2-12" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(01); % Modbus command "01h" read coil input (bit)
DATA[2] := RWORD(1); % Start adress (2-1)
DATA[4] := RWORD(20); % Number of inputs
ANSWER SIZE 8 % ((Number of inputs / 8) + (Rest>0)) + 5
DATA[0] = BYTE(Id);
DATA[1] = HEX(01);
%DATA[2] = BYTE(3);
DATA[3] -> BYTE(
IF (DATA & 1) THEN C002:= 1; ELSE C002:= 0; ENDIF;
% IF (DATA & 2) THEN C003:= 1; ELSE C003:= 0; ENDIF;
IF (DATA & 4) THEN C004:= 1; ELSE C004:= 0; ENDIF;
% IF (DATA & 8) THEN C005:= 1; ELSE C005:= 0; ENDIF;
% IF (DATA & 16) THEN C006:= 1; ELSE C006:= 0; ENDIF;
% IF (DATA & 32) THEN C007:= 1; ELSE C007:= 0; ENDIF;
% IF (DATA & 64) THEN C008:= 1; ELSE C008:= 0; ENDIF;
IF (DATA & 128) THEN C009:= 1; ELSE C009:= 0; ENDIF;
);
DATA[4] -> BYTE(
% IF (DATA & 1) THEN C010:= 1; ELSE C010:= 0; ENDIF;
% IF (DATA & 2) THEN C011:= 1; ELSE C011:= 0; ENDIF;
IF (DATA & 4) THEN C012:= 1; ELSE C012:= 0; ENDIF;
% IF (DATA & 8) THEN C013:= 1; ELSE C013:= 0; ENDIF;
% IF (DATA & 16) THEN C014:= 1; ELSE C014:= 0; ENDIF;
% IF (DATA & 32) THEN C015:= 1; ELSE C015:= 0; ENDIF;
% IF (DATA & 64) THEN C016:= 1; ELSE C016:= 0; ENDIF;
% IF (DATA & 128) THEN C017:= 1; ELSE C017:= 0; ENDIF;
);
%DATA[5] -> BYTE(
% IF (DATA & 1) THEN C018:= 1; ELSE C018:= 0; ENDIF;
% IF (DATA & 2) THEN C019:= 1; ELSE C019:= 0; ENDIF;
% IF (DATA & 4) THEN C020:= 1; ELSE C020:= 0; ENDIF;
% IF (DATA & 8) THEN C021:= 1; ELSE C021:= 0; ENDIF;
%);
TIMEOUT 1000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for Climaveneta Digital outputs
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2010-11-22 inital version
%
DEVICETYPE ClimavenetaDO NAMED "Climaveneta DU" TYPEID 21402 IS
PARAMETER
Id : "Adress";
C009 : "ÖVSStartStopp"; % 009 B In/Ut Aktivera start/stopp från övervakningssystem
% (0 = Start 1 = Stopp)
PUBLIC
X009 : "ÖVSStartStoppDU"; % 009 B In/Ut Aktivera start/stopp från övervakningssystem
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(
Cnt := Cnt + 1;
IF Cnt>0 THEN Cnt:=0; ENDIF;
Cnt := 0;
IF Cnt=0 THEN DATA := 8; % Coil 9
%ELSIF Cnt=1 THEN DATA := 8; % Coil 9
%ELSIF Cnt=2 THEN DATA := 8; % Coil 9
%ELSIF Cnt=3 THEN DATA := 8; % Coil 9
%ELSIF Cnt=4 THEN DATA := 8; % Coil 9
%ELSIF Cnt=5 THEN DATA := 8; % Coil 9
%ELSIF Cnt=6 THEN DATA := 8; % Coil 9
%ELSIF Cnt=7 THEN DATA := 8; % Coil 9
%ELSE DATA := 8; % Coil 9
ENDIF;
);
DATA[4] <- RWORD(
IF Cnt=0 THEN IF C009 THEN X009:=1; DATA:=65280; ELSE X009:=0; DATA:=0; ENDIF;
%ELSIF Cnt=1 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=2 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=3 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=4 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=5 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=6 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=7 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSE IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ENDIF;
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(05);
TIMEOUT 1000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for Climaveneta 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: 2010-11-22 inital version
%
DEVICETYPE ClimavenetaA1 NAMED "ClimavenetaTemp" TYPEID 21403 IS
PARAMETER
Id : "Adress";
PUBLIC
R002 : "BörvärdeKöldb." ["°C"]; % 40002 A In/Ut Önskad köldbärartemperatur (börvärde)
R003 : "BörvärdeVärmeb."["°C"]; % 40003 A In/Ut Önskad värmebärartemperatur (börvärde)
R005 : "KopplingsDiffKB"["°C"]; % 40005 A In/Ut Kopplingsdifferens köldbärartemperatur(P-band)
R007 : "KöldbärarTempIn"["°C"]; % 40007 A Ut Ingående köldbärartemperatur
R008 : "KöldbärarTempUt"["°C"]; % 40008 A Ut Utgående köldbärartemperatur
R009 : "VärmebärarTmpIn"["°C"]; % 40009 A Ut Ingående värmebärartemperatur
R010 : "VärmebärarTmpUt"["°C"]; % 40010 A Ut Utgående värmebärartemperatur
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInput1 NAMED "Läs reg 002-021" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(1); % Start address register (2)
DATA[4] := RWORD(20); % Number of registers
ANSWER SIZE 45 % (Number of registers * 2) + 5
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
%DATA[2] = BYTE(40); % Byte count
DATA[3] -> RWORD(IF (DATA>=32768) THEN R002:=(DATA-65536)/10; ELSE R002:=DATA/10; ENDIF;);
DATA[5] -> RWORD(IF (DATA>=32768) THEN R003:=(DATA-65536)/10; ELSE R003:=DATA/10; ENDIF;);
%DATA[7] -> RWORD(R004 := DATA;);
DATA[9] -> RWORD(IF (DATA>=32768) THEN R005:=(DATA-65536)/10; ELSE R005:=DATA/10; ENDIF;);
%DATA[11] -> RWORD(R006 := DATA;);
DATA[13] -> RWORD(IF (DATA>=32768) THEN R007:=(DATA-65536)/10; ELSE R007:=DATA/10; ENDIF;);
DATA[15] -> RWORD(IF (DATA>=32768) THEN R008:=(DATA-65536)/10; ELSE R008:=DATA/10; ENDIF;);
DATA[17] -> RWORD(IF (DATA>=32768) THEN R009:=(DATA-65536)/10; ELSE R009:=DATA/10; ENDIF;);
DATA[19] -> RWORD(IF (DATA>=32768) THEN R010:=(DATA-65536)/10; ELSE R010:=DATA/10; ENDIF;);
%DATA[21] -> RWORD(R011 := DATA;);
%DATA[23] -> RWORD(R012 := DATA;);
%DATA[25] -> RWORD(R013 := DATA;);
%DATA[27] -> RWORD(R014 := DATA;);
%DATA[29] -> RWORD(R015 := DATA;);
%DATA[31] -> RWORD(R016 := DATA;);
%DATA[33] -> RWORD(R017 := DATA;);
%DATA[35] -> RWORD(R018 := DATA;);
%DATA[37] -> RWORD(R019 := DATA;);
%DATA[39] -> RWORD(R020 := DATA;);
%DATA[41] -> RWORD(R021 := DATA;);
TIMEOUT 1000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for Climaveneta Analog inputs 132-151
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Note! Telegram for reading Analog status AI and AO
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2010-11-22 inital version
%
DEVICETYPE ClimavenetaA2 NAMED "Climaveneta AI2" TYPEID 21404 IS
PARAMETER
Id : "Adress";
PUBLIC
% Integer values
R132 : "VersionMjukvara"; % 40132 I Ut Version av mjukvara
R133 : "VersionDatum"; % 40133 I Ut Datum på version av mjukvara
R134 : "AggregatTyp"; % 40134 I Ut Typ av aggregat, 10 = Värmepump
R135 : "KretsAntal"; % 40135 I Ut Antal kretsar
R136 : "KompressorAntal"; % 40136 I Ut Antal kompressorer
R138 : "KompressorTyp"; % 40138 I Ut Typ av kompressor 1 = Hermetisk
R139 : "AggregatKonfig1"; % 40139 I Ut Aggregatkonfiguration status 1
% Bit0: 0 = Värmepump avaktiverad 1 = Värmepump aktiverad
% Bit1 (enbart scroll kompressorer): 0 = Styrning med flytande börvärde (Quick Mind) avaktiverad
% 1 = Styrning med flytande börvärde (Quick Mind) aktiverad
% Bit2: 0 = Styrs på ingående givare 1 = Styrs på utgående givare
R140 : "AggregatKonfig2"; % 40140 I Ut Aggregatkonfiguration status 2
% Bit1: 0 = "Pump Down" avaktiverad 1 = "Pump Down" aktiverad
% Bit2: 0 = Ändring av börvärde avaktiverad 1 = Ändring av börvärde aktiverad
% Bit3: 1 = Vätskekyld kondensor
% Bit4: 0 = Sequenser avaktiverad 1 = Sequenser aktiverad
R141 : "AggregatStatus"; % 40141 I Ut Aggregatstatus
% 0 = Startat från aggregatets manöverpanel
% 1 = Startat med digital signal (extern kontakt)
% 3 = Startat från övervaktningsystem
% 4 = Stoppat av larm
% 5 = Stoppat från övervaktningsystem
% 7 = Stoppat med digital signal (extern kontakt)
% 8 = Stoppat från aggregatets manöverpanel
% 9 = Manuell start/stopp
% 10 = Stoppat
R143 : "Driftsätt"; % 40143 I In/Ut Driftsätt:
% 3 = Vätskekylaggregat
% 4 = Värmepump
R144 : "StatusKompr.1"; % 40144 I Ut Kompressor 1
% Bit1: 0 = Avaktiverad 1 = Aktiverad
% Bit2: 0 = Stopp 1 = Drift
% Bit3: 0 = "Pump Down" avaktiverad 1 = "Pump Down" aktiverad
% Bit4: 0 = Larm avaktiverad 1 = Larm aktiverad
% Bit9: 0 = Stopp 1 = Startat med driftsätt kyldrift
% Bit10: 0 = Stopp 1 = Startat med driftsätt värmedrift
R145 : "StatusKompr.2"; % 40145 I Ut Kompressor 2
% Bit1: 0 = Avaktiverad 1 = Aktiverad
% Bit2: 0 = Stopp 1 = Drift
% Bit3: 0 = "Pump Down" avaktiverad 1 = "Pump Down" aktiverad
% Bit4: 0 = Larm avaktiverad 1 = Larm aktiverad
% Bit9: 0 = Stopp 1 = Startat med driftsätt kyldrift
% Bit10: 0 = Stopp 1 = Startat med driftsätt värmedrift
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInput2 NAMED "Läs reg 132-147" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(131); % Start address register 132-1
DATA[4] := RWORD(16); % Number of registers
ANSWER SIZE 37 % (Number of registers * 2) + 5
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
%DATA[2] = BYTE(32); % Byte count
DATA[3] -> RWORD(R132 := DATA;);
DATA[5] -> RWORD(R133 := DATA;);
DATA[7] -> RWORD(R134 := DATA;);
DATA[9] -> RWORD(R135 := DATA;);
DATA[11] -> RWORD(R136 := DATA;);
%DATA[13] -> RWORD(R137 := DATA;);
DATA[15] -> RWORD(R138 := DATA;);
DATA[17] -> RWORD(R139 := DATA;);
DATA[19] -> RWORD(R140 := DATA;);
DATA[21] -> RWORD(R141 := DATA;);
%DATA[23] -> RWORD(R142 := DATA;);
DATA[25] -> RWORD(R143 := DATA;);
DATA[27] -> RWORD(R144 := DATA;);
DATA[29] -> RWORD(R145 := DATA;);
%DATA[31] -> RWORD(R146 := DATA;);
%DATA[33] -> RWORD(R147 := DATA;);
TIMEOUT 1000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for Climaveneta 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: 2010-08-18 inital version
%
DEVICETYPE ClimavenetaA3 NAMED "Climaveneta AI3" TYPEID 21405 IS
PARAMETER
Id : "Adress";
PUBLIC
R152 : "DriftTidKompr."; % 40152 I Ut Genomsnittlig drifttid/kompressor (antal timmar x 1000)
% 40153 I Ut Genomsnittlig drifttid/kompressor (antal timmar)
R154 : "År Månad"; % 40154 I Ut År/Månad
R155 : "Dag Timme Minut"; % 40155 I Ut Dag/Timme/Minuter
R157 : "DriftIndikering"; % 40157 I Ut Driftindikering
% Bit7: 0 = Avaktiverad 1 = Effektbegr. aktiverad
% Bit8: 0 = Avaktiverad 1 = Begr.frysskydd aktiverad
R161 : "Summalarm"; % 40161 I Ut Summalarm (koder med högre prioritet (Kod 0 = inget larm))
R163 : "Kylbehov" ["%"]; % 40163 I Ut Kylbehov [%]
R164 : "KylEffekt" ["%"]; % 40164 I Ut Antal effektsteg i drift [%] (kyldrift)
R165 : "KylEffektMax" ["%"]; % 40165 I Ut Max tillgängliga effektsteg [%] (kyldrift)
R166 : "Värmebehov" ["%"]; % 40166 I Ut Värmebehov [%]
R167 : "VärmeEffekt" ["%"]; % 40167 I Ut Antal effektsteg i drift [%] (värmedrift)
R168 : "VärmeEffektMax" ["%"]; % 40168 I Ut Max tillgängliga effektsteg [%] (värmedrift)
R172 : "KylaEffektBegr" ["%"]; % 40172 I In/Ut Effektbegränsning [%] (kyldrift)
R173 : "VärmeEffektBegr"["%"]; % 40173 I In/Ut Effektbegränsning [%] (värmedrift)
PRIVATE
Tmp;
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInput30 NAMED "Läs reg 152-157" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(151); % Start address register 152-1
DATA[4] := RWORD(6); % Number of registers
ANSWER SIZE 17 % (Number of registers * 2) + 5
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
%DATA[2] = BYTE(12); % Byte count
DATA[3] -> RWORD(Tmp := 1000 * DATA;);
DATA[5] -> RWORD(R152 := Tmp + DATA;);
DATA[7] -> RWORD(R154 := DATA;);
DATA[9] -> RWORD(R155 := DATA;);
%DATA[11] -> RWORD(R156 := DATA;);
DATA[13] -> RWORD(R157 := DATA;);
%DATA[15] -> RWORD(R158 := DATA;);
%DATA[17] -> RWORD(R159 := DATA;);
%DATA[19] -> RWORD(R160 := DATA;);
TIMEOUT 1000
END;
TELEGRAM AnalogInput31 NAMED "Läs reg 161" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(160); % Start address register 161-1
DATA[4] := RWORD(1); % Number of registers
ANSWER SIZE 7 % (Number of registers * 2) + 5
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
%DATA[2] = BYTE(2); % Byte count
DATA[3] -> RWORD(R161 := DATA;);
TIMEOUT 1000
END;
TELEGRAM AnalogInput32 NAMED "Läs reg 163-178" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(162); % Start address register 163-1
DATA[4] := RWORD(16); % Number of registers
ANSWER SIZE 37 % (Number of registers * 2) + 5
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
%DATA[2] = BYTE(30); % Byte count
DATA[3] -> RWORD(R163 := DATA;);
DATA[5] -> RWORD(R164 := DATA;);
DATA[7] -> RWORD(R165 := DATA;);
DATA[9] -> RWORD(R166 := DATA;);
DATA[11] -> RWORD(R167 := DATA;);
DATA[13] -> RWORD(R168 := DATA;);
%DATA[15] -> RWORD(R169 := DATA;);
%DATA[17] -> RWORD(R170 := DATA;);
%DATA[19] -> RWORD(R171 := DATA;);
DATA[21] -> RWORD(R172 := DATA;);
DATA[23] -> RWORD(R173 := DATA;);
%DATA[25] -> RWORD(R174 := DATA;);
%DATA[27] -> RWORD(R175 := DATA;);
%DATA[29] -> RWORD(R176 := DATA;);
%DATA[31] -> RWORD(R177 := DATA;);
%DATA[33] -> RWORD(R178 := DATA;);
TIMEOUT 1000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for Climaveneta Analog settings
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2010-11-22 inital version
%
DEVICETYPE ClimavenetaSet NAMED "ClimavenetaSätt" TYPEID 21406 IS
PARAMETER
Id : "Adress";
%R002 : "BörvärdeKöldb." ["°C"]; % 40002 A In/Ut Önskad köldbärartemperatur (börvärde)
R003 : "VärmebärareBörv"["°C"]; % 40003 A In/Ut Önskad värmebärartemperatur (börvärde)
R005 : "KopplingsDiffKB"["°C"]; % 40005 A In/Ut Kopplingsdifferens köldbärartemperatur(P-band)
%R143 : "Driftsätt"; % 40143 I In/Ut Driftsätt:
% 3 = Vätskekylaggregat
% 4 = Värmepump
%R172 : "KylaEffektBegr" ["%"]; % 40172 I In/Ut Effektbegränsning [%] (kyldrift)
%R173 : "VärmeEffektBegr"["%"]; % 40173 I In/Ut Effektbegränsning [%] (värmedrift)
PUBLIC
U003 : "VärmebärareBörv"["°C"]; % 40003 A Önskad värmebärartemperatur
U005 : "KopplingsDiffKB"["°C"]; % 40005 A Kopplingsdifferens
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)
Cnt := Cnt + 1;
IF Cnt>1 THEN Cnt:=0; ENDIF;
% Adress=Register-1
IF Cnt=0 THEN DATA := 2; % R003
ELSIF Cnt=1 THEN DATA := 4; % R005
%ELSIF Cnt=2 THEN DATA := 2; % R003
%ELSIF Cnt=3 THEN DATA := 172; % R173
%ELSIF Cnt=4 THEN DATA := 2; % R003
%ELSIF Cnt=5 THEN DATA := 172; % R173
%ELSIF Cnt=6 THEN DATA := 2; % R003
%ELSIF Cnt=7 THEN DATA := 172; % R173
%ELSE DATA := 2; % R003
ENDIF;
);
DATA[4] <- RWORD(
IF Cnt=0 THEN
U003 := R003;
IF R003<0 THEN DATA := 0; % R003 Önskad värmebärartemp (börvärde)
ELSE DATA := R003;
ENDIF;
ELSIF Cnt=1 THEN
U005 := R005;
IF R005<0 THEN DATA := 0; % R005 Kopplingsdifferens
ELSE DATA := R005;
ENDIF;
%ELSIF Cnt=2 THEN
% IF R003<0 THEN DATA := 0; % R003 Önskad värmebärartemp(börvärde)
% ELSIF R003>200 THEN DATA := 2000;
% ELSE DATA := R003;
% ENDIF;
%ELSIF Cnt=3 THEN
% IF R173<0 THEN DATA := 0; % R173 Effektbegränsning [%] (värmedrift)
% ELSIF R173>100 THEN DATA := 100;
% ELSE DATA := R173;
% ENDIF;
%ELSIF Cnt=4 THEN
% IF R003<0 THEN DATA := 0; % R003 Önskad värmebärartemp (börvärde)
% ELSIF R003>200 THEN DATA := 2000;
% ELSE DATA := R003;
% ENDIF;
%ELSIF Cnt=5 THEN
% IF R173<0 THEN DATA := 0; % R173 Effektbegränsning [%] (värmedrift)
% ELSIF R173>100 THEN DATA := 100;
% ELSE DATA := R173;
% ENDIF;
%ELSIF Cnt=6 THEN
% IF R003<0 THEN DATA := 0; % R003 Önskad värmebärartemp (börvärde)
% ELSIF R003>200 THEN DATA := 2000;
% ELSE DATA := R003;
% ENDIF;
%ELSIF Cnt=7 THEN
% IF R173<0 THEN DATA := 0; % R173 Effektbegränsning [%] (värmedrift)
% ELSIF R173>100 THEN DATA := 100;
% ELSE DATA := R173;
% ENDIF;
%ELSE
% IF R003<0 THEN DATA := 0; % R003 Önskad värmebärartemp (börvärde)
% ELSIF R003>200 THEN DATA := 2000;
% ELSE DATA := R003;
% ENDIF;
ENDIF;
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(06);
TIMEOUT 1000
END;
END;
% Device definition for Climaveneta, Digital inputs
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2010-11-22 inital version
%
DEVICETYPE ClimavenetaDI NAMED "Climaveneta DI" TYPEID 21401 IS
PARAMETER
Id : "Adress";
PUBLIC
C002 : "Aggregat" ; % 002 B Ut Driftstatus aggregat (0 = Från 1 = Till)
C004 : "PumpVärmeKöld"; % 004 B Ut Driftstatus värme-/köldbärarpump 1 (0 = Från 1 = Till)
C009 : "ÖVSStartStopp"; % 009 B In/Ut Aktivera start/stopp från övervakningssystem (0 = Start 1 = Stopp)
C012 : "ÖVSAktivera" ; % 012 B Ut Val av driftsätt från övervakningssystem (0 = Ej aktiv 1 = Aktiv)
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM DigitalInput NAMED "Läs Status 2-12" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(01); % Modbus command "01h" read coil input (bit)
DATA[2] := RWORD(1); % Start adress (2-1)
DATA[4] := RWORD(20); % Number of inputs
ANSWER SIZE 8 % ((Number of inputs / 8) + (Rest>0)) + 5
DATA[0] = BYTE(Id);
DATA[1] = HEX(01);
%DATA[2] = BYTE(3);
DATA[3] -> BYTE(
IF (DATA & 1) THEN C002:= 1; ELSE C002:= 0; ENDIF;
% IF (DATA & 2) THEN C003:= 1; ELSE C003:= 0; ENDIF;
IF (DATA & 4) THEN C004:= 1; ELSE C004:= 0; ENDIF;
% IF (DATA & 8) THEN C005:= 1; ELSE C005:= 0; ENDIF;
% IF (DATA & 16) THEN C006:= 1; ELSE C006:= 0; ENDIF;
% IF (DATA & 32) THEN C007:= 1; ELSE C007:= 0; ENDIF;
% IF (DATA & 64) THEN C008:= 1; ELSE C008:= 0; ENDIF;
IF (DATA & 128) THEN C009:= 1; ELSE C009:= 0; ENDIF;
);
DATA[4] -> BYTE(
% IF (DATA & 1) THEN C010:= 1; ELSE C010:= 0; ENDIF;
% IF (DATA & 2) THEN C011:= 1; ELSE C011:= 0; ENDIF;
IF (DATA & 4) THEN C012:= 1; ELSE C012:= 0; ENDIF;
% IF (DATA & 8) THEN C013:= 1; ELSE C013:= 0; ENDIF;
% IF (DATA & 16) THEN C014:= 1; ELSE C014:= 0; ENDIF;
% IF (DATA & 32) THEN C015:= 1; ELSE C015:= 0; ENDIF;
% IF (DATA & 64) THEN C016:= 1; ELSE C016:= 0; ENDIF;
% IF (DATA & 128) THEN C017:= 1; ELSE C017:= 0; ENDIF;
);
%DATA[5] -> BYTE(
% IF (DATA & 1) THEN C018:= 1; ELSE C018:= 0; ENDIF;
% IF (DATA & 2) THEN C019:= 1; ELSE C019:= 0; ENDIF;
% IF (DATA & 4) THEN C020:= 1; ELSE C020:= 0; ENDIF;
% IF (DATA & 8) THEN C021:= 1; ELSE C021:= 0; ENDIF;
%);
TIMEOUT 1000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for Climaveneta Digital outputs
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2010-11-22 inital version
%
DEVICETYPE ClimavenetaDO NAMED "Climaveneta DU" TYPEID 21402 IS
PARAMETER
Id : "Adress";
C009 : "ÖVSStartStopp"; % 009 B In/Ut Aktivera start/stopp från övervakningssystem
% (0 = Start 1 = Stopp)
PUBLIC
X009 : "ÖVSStartStoppDU"; % 009 B In/Ut Aktivera start/stopp från övervakningssystem
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(
Cnt := Cnt + 1;
IF Cnt>0 THEN Cnt:=0; ENDIF;
Cnt := 0;
IF Cnt=0 THEN DATA := 8; % Coil 9
%ELSIF Cnt=1 THEN DATA := 8; % Coil 9
%ELSIF Cnt=2 THEN DATA := 8; % Coil 9
%ELSIF Cnt=3 THEN DATA := 8; % Coil 9
%ELSIF Cnt=4 THEN DATA := 8; % Coil 9
%ELSIF Cnt=5 THEN DATA := 8; % Coil 9
%ELSIF Cnt=6 THEN DATA := 8; % Coil 9
%ELSIF Cnt=7 THEN DATA := 8; % Coil 9
%ELSE DATA := 8; % Coil 9
ENDIF;
);
DATA[4] <- RWORD(
IF Cnt=0 THEN IF C009 THEN X009:=1; DATA:=65280; ELSE X009:=0; DATA:=0; ENDIF;
%ELSIF Cnt=1 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=2 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=3 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=4 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=5 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=6 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSIF Cnt=7 THEN IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
%ELSE IF C009 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ENDIF;
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(05);
TIMEOUT 1000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for Climaveneta 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: 2010-11-22 inital version
%
DEVICETYPE ClimavenetaA1 NAMED "ClimavenetaTemp" TYPEID 21403 IS
PARAMETER
Id : "Adress";
PUBLIC
R002 : "BörvärdeKöldb." ["°C"]; % 40002 A In/Ut Önskad köldbärartemperatur (börvärde)
R003 : "BörvärdeVärmeb."["°C"]; % 40003 A In/Ut Önskad värmebärartemperatur (börvärde)
R005 : "KopplingsDiffKB"["°C"]; % 40005 A In/Ut Kopplingsdifferens köldbärartemperatur(P-band)
R007 : "KöldbärarTempIn"["°C"]; % 40007 A Ut Ingående köldbärartemperatur
R008 : "KöldbärarTempUt"["°C"]; % 40008 A Ut Utgående köldbärartemperatur
R009 : "VärmebärarTmpIn"["°C"]; % 40009 A Ut Ingående värmebärartemperatur
R010 : "VärmebärarTmpUt"["°C"]; % 40010 A Ut Utgående värmebärartemperatur
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInput1 NAMED "Läs reg 002-021" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(1); % Start address register (2)
DATA[4] := RWORD(20); % Number of registers
ANSWER SIZE 45 % (Number of registers * 2) + 5
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
%DATA[2] = BYTE(40); % Byte count
DATA[3] -> RWORD(IF (DATA>=32768) THEN R002:=(DATA-65536)/10; ELSE R002:=DATA/10; ENDIF;);
DATA[5] -> RWORD(IF (DATA>=32768) THEN R003:=(DATA-65536)/10; ELSE R003:=DATA/10; ENDIF;);
%DATA[7] -> RWORD(R004 := DATA;);
DATA[9] -> RWORD(IF (DATA>=32768) THEN R005:=(DATA-65536)/10; ELSE R005:=DATA/10; ENDIF;);
%DATA[11] -> RWORD(R006 := DATA;);
DATA[13] -> RWORD(IF (DATA>=32768) THEN R007:=(DATA-65536)/10; ELSE R007:=DATA/10; ENDIF;);
DATA[15] -> RWORD(IF (DATA>=32768) THEN R008:=(DATA-65536)/10; ELSE R008:=DATA/10; ENDIF;);
DATA[17] -> RWORD(IF (DATA>=32768) THEN R009:=(DATA-65536)/10; ELSE R009:=DATA/10; ENDIF;);
DATA[19] -> RWORD(IF (DATA>=32768) THEN R010:=(DATA-65536)/10; ELSE R010:=DATA/10; ENDIF;);
%DATA[21] -> RWORD(R011 := DATA;);
%DATA[23] -> RWORD(R012 := DATA;);
%DATA[25] -> RWORD(R013 := DATA;);
%DATA[27] -> RWORD(R014 := DATA;);
%DATA[29] -> RWORD(R015 := DATA;);
%DATA[31] -> RWORD(R016 := DATA;);
%DATA[33] -> RWORD(R017 := DATA;);
%DATA[35] -> RWORD(R018 := DATA;);
%DATA[37] -> RWORD(R019 := DATA;);
%DATA[39] -> RWORD(R020 := DATA;);
%DATA[41] -> RWORD(R021 := DATA;);
TIMEOUT 1000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for Climaveneta Analog inputs 132-151
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Note! Telegram for reading Analog status AI and AO
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2010-11-22 inital version
%
DEVICETYPE ClimavenetaA2 NAMED "Climaveneta AI2" TYPEID 21404 IS
PARAMETER
Id : "Adress";
PUBLIC
% Integer values
R132 : "VersionMjukvara"; % 40132 I Ut Version av mjukvara
R133 : "VersionDatum"; % 40133 I Ut Datum på version av mjukvara
R134 : "AggregatTyp"; % 40134 I Ut Typ av aggregat, 10 = Värmepump
R135 : "KretsAntal"; % 40135 I Ut Antal kretsar
R136 : "KompressorAntal"; % 40136 I Ut Antal kompressorer
R138 : "KompressorTyp"; % 40138 I Ut Typ av kompressor 1 = Hermetisk
R139 : "AggregatKonfig1"; % 40139 I Ut Aggregatkonfiguration status 1
% Bit0: 0 = Värmepump avaktiverad 1 = Värmepump aktiverad
% Bit1 (enbart scroll kompressorer): 0 = Styrning med flytande börvärde (Quick Mind) avaktiverad
% 1 = Styrning med flytande börvärde (Quick Mind) aktiverad
% Bit2: 0 = Styrs på ingående givare 1 = Styrs på utgående givare
R140 : "AggregatKonfig2"; % 40140 I Ut Aggregatkonfiguration status 2
% Bit1: 0 = "Pump Down" avaktiverad 1 = "Pump Down" aktiverad
% Bit2: 0 = Ändring av börvärde avaktiverad 1 = Ändring av börvärde aktiverad
% Bit3: 1 = Vätskekyld kondensor
% Bit4: 0 = Sequenser avaktiverad 1 = Sequenser aktiverad
R141 : "AggregatStatus"; % 40141 I Ut Aggregatstatus
% 0 = Startat från aggregatets manöverpanel
% 1 = Startat med digital signal (extern kontakt)
% 3 = Startat från övervaktningsystem
% 4 = Stoppat av larm
% 5 = Stoppat från övervaktningsystem
% 7 = Stoppat med digital signal (extern kontakt)
% 8 = Stoppat från aggregatets manöverpanel
% 9 = Manuell start/stopp
% 10 = Stoppat
R143 : "Driftsätt"; % 40143 I In/Ut Driftsätt:
% 3 = Vätskekylaggregat
% 4 = Värmepump
R144 : "StatusKompr.1"; % 40144 I Ut Kompressor 1
% Bit1: 0 = Avaktiverad 1 = Aktiverad
% Bit2: 0 = Stopp 1 = Drift
% Bit3: 0 = "Pump Down" avaktiverad 1 = "Pump Down" aktiverad
% Bit4: 0 = Larm avaktiverad 1 = Larm aktiverad
% Bit9: 0 = Stopp 1 = Startat med driftsätt kyldrift
% Bit10: 0 = Stopp 1 = Startat med driftsätt värmedrift
R145 : "StatusKompr.2"; % 40145 I Ut Kompressor 2
% Bit1: 0 = Avaktiverad 1 = Aktiverad
% Bit2: 0 = Stopp 1 = Drift
% Bit3: 0 = "Pump Down" avaktiverad 1 = "Pump Down" aktiverad
% Bit4: 0 = Larm avaktiverad 1 = Larm aktiverad
% Bit9: 0 = Stopp 1 = Startat med driftsätt kyldrift
% Bit10: 0 = Stopp 1 = Startat med driftsätt värmedrift
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInput2 NAMED "Läs reg 132-147" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(131); % Start address register 132-1
DATA[4] := RWORD(16); % Number of registers
ANSWER SIZE 37 % (Number of registers * 2) + 5
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
%DATA[2] = BYTE(32); % Byte count
DATA[3] -> RWORD(R132 := DATA;);
DATA[5] -> RWORD(R133 := DATA;);
DATA[7] -> RWORD(R134 := DATA;);
DATA[9] -> RWORD(R135 := DATA;);
DATA[11] -> RWORD(R136 := DATA;);
%DATA[13] -> RWORD(R137 := DATA;);
DATA[15] -> RWORD(R138 := DATA;);
DATA[17] -> RWORD(R139 := DATA;);
DATA[19] -> RWORD(R140 := DATA;);
DATA[21] -> RWORD(R141 := DATA;);
%DATA[23] -> RWORD(R142 := DATA;);
DATA[25] -> RWORD(R143 := DATA;);
DATA[27] -> RWORD(R144 := DATA;);
DATA[29] -> RWORD(R145 := DATA;);
%DATA[31] -> RWORD(R146 := DATA;);
%DATA[33] -> RWORD(R147 := DATA;);
TIMEOUT 1000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for Climaveneta 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: 2010-08-18 inital version
%
DEVICETYPE ClimavenetaA3 NAMED "Climaveneta AI3" TYPEID 21405 IS
PARAMETER
Id : "Adress";
PUBLIC
R152 : "DriftTidKompr."; % 40152 I Ut Genomsnittlig drifttid/kompressor (antal timmar x 1000)
% 40153 I Ut Genomsnittlig drifttid/kompressor (antal timmar)
R154 : "År Månad"; % 40154 I Ut År/Månad
R155 : "Dag Timme Minut"; % 40155 I Ut Dag/Timme/Minuter
R157 : "DriftIndikering"; % 40157 I Ut Driftindikering
% Bit7: 0 = Avaktiverad 1 = Effektbegr. aktiverad
% Bit8: 0 = Avaktiverad 1 = Begr.frysskydd aktiverad
R161 : "Summalarm"; % 40161 I Ut Summalarm (koder med högre prioritet (Kod 0 = inget larm))
R163 : "Kylbehov" ["%"]; % 40163 I Ut Kylbehov [%]
R164 : "KylEffekt" ["%"]; % 40164 I Ut Antal effektsteg i drift [%] (kyldrift)
R165 : "KylEffektMax" ["%"]; % 40165 I Ut Max tillgängliga effektsteg [%] (kyldrift)
R166 : "Värmebehov" ["%"]; % 40166 I Ut Värmebehov [%]
R167 : "VärmeEffekt" ["%"]; % 40167 I Ut Antal effektsteg i drift [%] (värmedrift)
R168 : "VärmeEffektMax" ["%"]; % 40168 I Ut Max tillgängliga effektsteg [%] (värmedrift)
R172 : "KylaEffektBegr" ["%"]; % 40172 I In/Ut Effektbegränsning [%] (kyldrift)
R173 : "VärmeEffektBegr"["%"]; % 40173 I In/Ut Effektbegränsning [%] (värmedrift)
PRIVATE
Tmp;
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInput30 NAMED "Läs reg 152-157" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(151); % Start address register 152-1
DATA[4] := RWORD(6); % Number of registers
ANSWER SIZE 17 % (Number of registers * 2) + 5
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
%DATA[2] = BYTE(12); % Byte count
DATA[3] -> RWORD(Tmp := 1000 * DATA;);
DATA[5] -> RWORD(R152 := Tmp + DATA;);
DATA[7] -> RWORD(R154 := DATA;);
DATA[9] -> RWORD(R155 := DATA;);
%DATA[11] -> RWORD(R156 := DATA;);
DATA[13] -> RWORD(R157 := DATA;);
%DATA[15] -> RWORD(R158 := DATA;);
%DATA[17] -> RWORD(R159 := DATA;);
%DATA[19] -> RWORD(R160 := DATA;);
TIMEOUT 1000
END;
TELEGRAM AnalogInput31 NAMED "Läs reg 161" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(160); % Start address register 161-1
DATA[4] := RWORD(1); % Number of registers
ANSWER SIZE 7 % (Number of registers * 2) + 5
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
%DATA[2] = BYTE(2); % Byte count
DATA[3] -> RWORD(R161 := DATA;);
TIMEOUT 1000
END;
TELEGRAM AnalogInput32 NAMED "Läs reg 163-178" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(162); % Start address register 163-1
DATA[4] := RWORD(16); % Number of registers
ANSWER SIZE 37 % (Number of registers * 2) + 5
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
%DATA[2] = BYTE(30); % Byte count
DATA[3] -> RWORD(R163 := DATA;);
DATA[5] -> RWORD(R164 := DATA;);
DATA[7] -> RWORD(R165 := DATA;);
DATA[9] -> RWORD(R166 := DATA;);
DATA[11] -> RWORD(R167 := DATA;);
DATA[13] -> RWORD(R168 := DATA;);
%DATA[15] -> RWORD(R169 := DATA;);
%DATA[17] -> RWORD(R170 := DATA;);
%DATA[19] -> RWORD(R171 := DATA;);
DATA[21] -> RWORD(R172 := DATA;);
DATA[23] -> RWORD(R173 := DATA;);
%DATA[25] -> RWORD(R174 := DATA;);
%DATA[27] -> RWORD(R175 := DATA;);
%DATA[29] -> RWORD(R176 := DATA;);
%DATA[31] -> RWORD(R177 := DATA;);
%DATA[33] -> RWORD(R178 := DATA;);
TIMEOUT 1000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for Climaveneta Analog settings
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2010-11-22 inital version
%
DEVICETYPE ClimavenetaSet NAMED "ClimavenetaSätt" TYPEID 21406 IS
PARAMETER
Id : "Adress";
%R002 : "BörvärdeKöldb." ["°C"]; % 40002 A In/Ut Önskad köldbärartemperatur (börvärde)
R003 : "VärmebärareBörv"["°C"]; % 40003 A In/Ut Önskad värmebärartemperatur (börvärde)
R005 : "KopplingsDiffKB"["°C"]; % 40005 A In/Ut Kopplingsdifferens köldbärartemperatur(P-band)
%R143 : "Driftsätt"; % 40143 I In/Ut Driftsätt:
% 3 = Vätskekylaggregat
% 4 = Värmepump
%R172 : "KylaEffektBegr" ["%"]; % 40172 I In/Ut Effektbegränsning [%] (kyldrift)
%R173 : "VärmeEffektBegr"["%"]; % 40173 I In/Ut Effektbegränsning [%] (värmedrift)
PUBLIC
U003 : "VärmebärareBörv"["°C"]; % 40003 A Önskad värmebärartemperatur
U005 : "KopplingsDiffKB"["°C"]; % 40005 A Kopplingsdifferens
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)
Cnt := Cnt + 1;
IF Cnt>1 THEN Cnt:=0; ENDIF;
% Adress=Register-1
IF Cnt=0 THEN DATA := 2; % R003
ELSIF Cnt=1 THEN DATA := 4; % R005
%ELSIF Cnt=2 THEN DATA := 2; % R003
%ELSIF Cnt=3 THEN DATA := 172; % R173
%ELSIF Cnt=4 THEN DATA := 2; % R003
%ELSIF Cnt=5 THEN DATA := 172; % R173
%ELSIF Cnt=6 THEN DATA := 2; % R003
%ELSIF Cnt=7 THEN DATA := 172; % R173
%ELSE DATA := 2; % R003
ENDIF;
);
DATA[4] <- RWORD(
IF Cnt=0 THEN
U003 := R003;
IF R003<0 THEN DATA := 0; % R003 Önskad värmebärartemp (börvärde)
ELSE DATA := R003;
ENDIF;
ELSIF Cnt=1 THEN
U005 := R005;
IF R005<0 THEN DATA := 0; % R005 Kopplingsdifferens
ELSE DATA := R005;
ENDIF;
%ELSIF Cnt=2 THEN
% IF R003<0 THEN DATA := 0; % R003 Önskad värmebärartemp(börvärde)
% ELSIF R003>200 THEN DATA := 2000;
% ELSE DATA := R003;
% ENDIF;
%ELSIF Cnt=3 THEN
% IF R173<0 THEN DATA := 0; % R173 Effektbegränsning [%] (värmedrift)
% ELSIF R173>100 THEN DATA := 100;
% ELSE DATA := R173;
% ENDIF;
%ELSIF Cnt=4 THEN
% IF R003<0 THEN DATA := 0; % R003 Önskad värmebärartemp (börvärde)
% ELSIF R003>200 THEN DATA := 2000;
% ELSE DATA := R003;
% ENDIF;
%ELSIF Cnt=5 THEN
% IF R173<0 THEN DATA := 0; % R173 Effektbegränsning [%] (värmedrift)
% ELSIF R173>100 THEN DATA := 100;
% ELSE DATA := R173;
% ENDIF;
%ELSIF Cnt=6 THEN
% IF R003<0 THEN DATA := 0; % R003 Önskad värmebärartemp (börvärde)
% ELSIF R003>200 THEN DATA := 2000;
% ELSE DATA := R003;
% ENDIF;
%ELSIF Cnt=7 THEN
% IF R173<0 THEN DATA := 0; % R173 Effektbegränsning [%] (värmedrift)
% ELSIF R173>100 THEN DATA := 100;
% ELSE DATA := R173;
% ENDIF;
%ELSE
% IF R003<0 THEN DATA := 0; % R003 Önskad värmebärartemp (börvärde)
% ELSIF R003>200 THEN DATA := 2000;
% ELSE DATA := R003;
% ENDIF;
ENDIF;
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(06);
TIMEOUT 1000
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.