Jeff RD-KMK styrning för flytande kondensering
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 1
- Uppdaterad
- 2013-04-15
- Skapad
- 2013-04-15
- Kategori
- Kyla, Modbus, Värme, Ventilation
- Visningar
- 3640
Beskrivning
Läser givare och status med en option att ställa temperatur börvärdet.
RD-KMK är en energisparande styrutrustning som styr varma sidan i ett indirekt kylsystem. Den arbetar med Flytande
kondensering
Bruksanvisning
För att ställa börvärdet ta bort % tecknen före sektionen som börjar med
%TELEGRAM DataUt NAMED "Ställ börvärde" IS
Notering!
- Summalarm har status 0 för LARM och status 1 för NORMAL
- Läst "Börvärde SV1" antas ha värde 0-100% !!!
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 JEFF RD-KMK
% Read registers 1-9 analog values and 16-17 digital values
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Notering!
% Summalarm har status 0 för LARM och status 1 för NORMAL
% Läst "Börvärde SV1" antas ha värde 0-100% !!!
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2009-06-10 inital version
%
DEVICETYPE JeffData NAMED "JEFF data" TYPEID 21310 IS
PARAMETER
Id : "Adress";
%S1 : "Börvärde";
PUBLIC
% Analoga värden
R1 : "GT1 Temp Framl."["°C"]; % 1 Givare GT1, Framledning till KMK, -30,0 70,0 °C
R2 : "GT2 Temp Retur" ["°C"]; % 2 Givare GT2, Retur från KMK -30,0 70,0 °C
R3 : "GT3 Temp Ute" ["°C"]; % 3 Givare GT3, Utetemperatur -30,0 70,0 °C
R4 : "GT4 Temp Ventil"["°C"]; % 4 Givare GT4, Trevägsventil -30,0 70,0 °C
R5 : "GT5 Temp" ["°C"]; % 5 Givare GT5 -30,0 70,0 °C
R6 : "Analog IN" ["%"]; % 6 Analog ingång 6 0-10V 0 100 %
R7 : "Analog UT 1" ["%"]; % 7 Analog utgång 1 0 100 %
R8 : "Analog UT 2" ["%"]; % 8 Analog utgång 2 0 100 %
R9 : "Börvärde SV1" ["%"]; % 9 Börvärde SV1 0 100,0
% Digitala status
% 15 Relästatus, 0 1
D1 : "Fläktsetg 1"; % bit 1 Fläktsteg 1 FRÅN/TILL
D2 : "Fläktsetg 2"; % bit 2 Fläktsteg 2 FRÅN/TILL
D3 : "Fläktsetg 3"; % bit 3 Fläktsteg 3 FRÅN/TILL
D4 : "Fläktsetg 4"; % bit 4 Fläktsteg 4 FRÅN/TILL
D5 : "Relä 5" ; % bit 5 Relä 5 FRÅN/TILL
D6 : "Boosterpump"; % bit 6 Boosterpump FRÅN/TILL
D7 : "Summalarm"; % bit 7 Summalarm Larm/Normal
% 16 Digitala ingångar D0, D1 0 1
D8 : "Förregling KMK"; % bit 1 Förregling från kylmaskiner FRÅN/TILL
D9 : "Larmingång CP"; % bit 2 Larmingång CP FRÅN/TILL
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM DataIn1 NAMED "Läs analog data" 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 1-1
DATA[4] := RWORD(9); % Number of registers
ANSWER SIZE 23
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(04); % Modbus command "04h" Read registers
%DATA[2] = BYTE(18); % Byte count
DATA[3] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R1 := (DATA - 65536) / 10;
ELSE
R1 := DATA / 10;
ENDIF;
);
DATA[5] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R2 := (DATA - 65536) / 10;
ELSE
R2 := DATA / 10;
ENDIF;
);
DATA[7] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R3 := (DATA - 65536) / 10;
ELSE
R3 := DATA / 10;
ENDIF;
);
DATA[9] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R4 := (DATA - 65536) / 10;
ELSE
R4 := DATA / 10;
ENDIF;
);
DATA[11] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R5 := (DATA - 65536) / 10;
ELSE
R5 := DATA / 10;
ENDIF;
);
DATA[13] -> RWORD(R6 := DATA;);
DATA[15] -> RWORD(R7 := DATA;);
DATA[17] -> RWORD(R8 := DATA;);
DATA[19] -> RWORD(R9 := DATA;);
TIMEOUT 1000
END;
TELEGRAM DataIn2 NAMED "Läs relä status" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(04); % Modbus command "04h" Read registers
DATA[2] := RWORD(14); % Start address register 15-1
DATA[4] := RWORD(2); % Number of registers
ANSWER SIZE 9
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(04); % Modbus command "04h" Read registers
%DATA[2] = BYTE(4); % Byte count
DATA[3] -> RWORD(IF DATA AND 1 THEN D1:=1; ELSE D1:=0; ENDIF;
IF DATA AND 2 THEN D2:=1; ELSE D2:=0; ENDIF;
IF DATA AND 4 THEN D3:=1; ELSE D3:=0; ENDIF;
IF DATA AND 8 THEN D4:=1; ELSE D4:=0; ENDIF;
IF DATA AND 16 THEN D5:=1; ELSE D5:=0; ENDIF;
IF DATA AND 32 THEN D6:=1; ELSE D6:=0; ENDIF;
IF DATA AND 64 THEN D7:=1; ELSE D7:=0; ENDIF;
);
DATA[5] -> RWORD(IF DATA AND 1 THEN D8:=1; ELSE D8:=0; ENDIF;
IF DATA AND 2 THEN D9:=1; ELSE D9:=0; ENDIF;
);
TIMEOUT 1000
END;
%TELEGRAM DataUt NAMED "Ställ börvärde" IS
%
% QUESTION
% DATA[0] := BYTE(Id); % Modbus unit address
% DATA[1] := BYTE(6); % Modbus command "06h" Write singel register
% DATA[2] := RWORD(30); % Start address register 31-1
% DATA[4] := RWORD(S1); % Börvärde temp 5-50
%
% ANSWER SIZE 8
% DATA[0] = BYTE(Id);
% DATA[1] = HEX(06);
%
% TIMEOUT 1000
%
%END;
END;
% Device definition for JEFF RD-KMK
% Read registers 1-9 analog values and 16-17 digital values
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Notering!
% Summalarm har status 0 för LARM och status 1 för NORMAL
% Läst "Börvärde SV1" antas ha värde 0-100% !!!
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2009-06-10 inital version
%
DEVICETYPE JeffData NAMED "JEFF data" TYPEID 21310 IS
PARAMETER
Id : "Adress";
%S1 : "Börvärde";
PUBLIC
% Analoga värden
R1 : "GT1 Temp Framl."["°C"]; % 1 Givare GT1, Framledning till KMK, -30,0 70,0 °C
R2 : "GT2 Temp Retur" ["°C"]; % 2 Givare GT2, Retur från KMK -30,0 70,0 °C
R3 : "GT3 Temp Ute" ["°C"]; % 3 Givare GT3, Utetemperatur -30,0 70,0 °C
R4 : "GT4 Temp Ventil"["°C"]; % 4 Givare GT4, Trevägsventil -30,0 70,0 °C
R5 : "GT5 Temp" ["°C"]; % 5 Givare GT5 -30,0 70,0 °C
R6 : "Analog IN" ["%"]; % 6 Analog ingång 6 0-10V 0 100 %
R7 : "Analog UT 1" ["%"]; % 7 Analog utgång 1 0 100 %
R8 : "Analog UT 2" ["%"]; % 8 Analog utgång 2 0 100 %
R9 : "Börvärde SV1" ["%"]; % 9 Börvärde SV1 0 100,0
% Digitala status
% 15 Relästatus, 0 1
D1 : "Fläktsetg 1"; % bit 1 Fläktsteg 1 FRÅN/TILL
D2 : "Fläktsetg 2"; % bit 2 Fläktsteg 2 FRÅN/TILL
D3 : "Fläktsetg 3"; % bit 3 Fläktsteg 3 FRÅN/TILL
D4 : "Fläktsetg 4"; % bit 4 Fläktsteg 4 FRÅN/TILL
D5 : "Relä 5" ; % bit 5 Relä 5 FRÅN/TILL
D6 : "Boosterpump"; % bit 6 Boosterpump FRÅN/TILL
D7 : "Summalarm"; % bit 7 Summalarm Larm/Normal
% 16 Digitala ingångar D0, D1 0 1
D8 : "Förregling KMK"; % bit 1 Förregling från kylmaskiner FRÅN/TILL
D9 : "Larmingång CP"; % bit 2 Larmingång CP FRÅN/TILL
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM DataIn1 NAMED "Läs analog data" 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 1-1
DATA[4] := RWORD(9); % Number of registers
ANSWER SIZE 23
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(04); % Modbus command "04h" Read registers
%DATA[2] = BYTE(18); % Byte count
DATA[3] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R1 := (DATA - 65536) / 10;
ELSE
R1 := DATA / 10;
ENDIF;
);
DATA[5] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R2 := (DATA - 65536) / 10;
ELSE
R2 := DATA / 10;
ENDIF;
);
DATA[7] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R3 := (DATA - 65536) / 10;
ELSE
R3 := DATA / 10;
ENDIF;
);
DATA[9] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R4 := (DATA - 65536) / 10;
ELSE
R4 := DATA / 10;
ENDIF;
);
DATA[11] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R5 := (DATA - 65536) / 10;
ELSE
R5 := DATA / 10;
ENDIF;
);
DATA[13] -> RWORD(R6 := DATA;);
DATA[15] -> RWORD(R7 := DATA;);
DATA[17] -> RWORD(R8 := DATA;);
DATA[19] -> RWORD(R9 := DATA;);
TIMEOUT 1000
END;
TELEGRAM DataIn2 NAMED "Läs relä status" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(04); % Modbus command "04h" Read registers
DATA[2] := RWORD(14); % Start address register 15-1
DATA[4] := RWORD(2); % Number of registers
ANSWER SIZE 9
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(04); % Modbus command "04h" Read registers
%DATA[2] = BYTE(4); % Byte count
DATA[3] -> RWORD(IF DATA AND 1 THEN D1:=1; ELSE D1:=0; ENDIF;
IF DATA AND 2 THEN D2:=1; ELSE D2:=0; ENDIF;
IF DATA AND 4 THEN D3:=1; ELSE D3:=0; ENDIF;
IF DATA AND 8 THEN D4:=1; ELSE D4:=0; ENDIF;
IF DATA AND 16 THEN D5:=1; ELSE D5:=0; ENDIF;
IF DATA AND 32 THEN D6:=1; ELSE D6:=0; ENDIF;
IF DATA AND 64 THEN D7:=1; ELSE D7:=0; ENDIF;
);
DATA[5] -> RWORD(IF DATA AND 1 THEN D8:=1; ELSE D8:=0; ENDIF;
IF DATA AND 2 THEN D9:=1; ELSE D9:=0; ENDIF;
);
TIMEOUT 1000
END;
%TELEGRAM DataUt NAMED "Ställ börvärde" IS
%
% QUESTION
% DATA[0] := BYTE(Id); % Modbus unit address
% DATA[1] := BYTE(6); % Modbus command "06h" Write singel register
% DATA[2] := RWORD(30); % Start address register 31-1
% DATA[4] := RWORD(S1); % Börvärde temp 5-50
%
% 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.