Carrier
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 1
- Uppdaterad
- 2013-08-27
- Skapad
- 2013-08-27
- Kategori
- Kyla, Modbus, Värme, Ventilation
- Visningar
- 3589
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 CARRIER read input registers 0x4100-0x4113
% (Modbus channel 0-19 with one decimal)
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Note! Telegram for reading Analog status
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2008-08-04 initial version
%
DEVICETYPE CarrierAnalogA NAMED "Carrier analogA" TYPEID 21250 IS
PARAMETER
Id : "Address";
PUBLIC
% Modbus channel Point name Register
R1 : "A Hotgas t mean" ["°C"]; % 0 Hetgas temp. Average dt_a 0x4100 (16640)
R2 : "A Hotgas t kpr1" ["°C"]; % 1 Hetgas temp. kompr A1 CPA1_DGT 0x4101
R3 : "A Hotgas t kpr2" ["°C"]; % 2 Hetgas temp. kompr A2 CPA2_DGT 0x4102
R4 : "A Suction gas t" ["°C"]; % 3 Suggas temp SST_A 0x4103
R5 : "A Fluid t ext." ["°C"]; % 4 Vätske temp. (extern) 0x4104
R6 : "A KB temp in" ["°C"]; % 5 KB temp. in COOL_EWT 0x4105
R7 : "A KB temp out" ["°C"]; % 6 KB temp. ut COOL_LWT 0x4106
R8 : "A KM temp in" ["°C"]; % 7 KM temp. in COND_EWT 0x4107
R9 : "A KM temp out" ["°C"]; % 8 KM temp. ut COND_LWT 0x4108
R10 : "A Hotgas press" ["Pa"]; % 9 Hetgas tryck DP_A 0x4109
R11 : "A Suction press" ["Pa"]; % 10 Sug tryck SP_A 0x410A
R12 : "A Power ext." ["W"]; % 11 Eleffekt (extern) 0x410B
R13 : "A Cooling kpr1" [" "]; % 12 Motorkylning kompr A1 cpa1_mc1 0x410C
R14 : "A Cooling kpr2" [" "]; % 13 Motorkylning kompr A2 cpa2_mc1 0x410D
R15 : "A Motor t kpr1" ["°C"]; % 14 Motor temp. kompr A1 CPA1_TMP 0x410E
R16 : "A Motor t kpr2" ["°C"]; % 15 Motor temp. kompr A2 CPA2_TMP 0x410F
R17 : "A R17" [" "]; % 16 0x4110
R18 : "A R18" [" "]; % 17 0x4111
R19 : "A R19" [" "]; % 18 0x4112
R20 : "A R20" [" "]; % 19 0x4113
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInputA NAMED "Circuit A" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(04); % Modbus command "04h" Read registers
DATA[2] := RWORD(16640); % Start address register (0x4100)
DATA[4] := RWORD(20); % Number of registers
ANSWER SIZE 45
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(04); % Modbus command "04h" Read registers
DATA[2] = BYTE(40); % Byte count
DATA[3] -> RWORD(R1 := DATA/10;);
DATA[5] -> RWORD(R2 := DATA/10;);
DATA[7] -> RWORD(R3 := DATA/10;);
DATA[9] -> RWORD(R4 := DATA/10;);
DATA[11] -> RWORD(R5 := DATA/10;);
%DATA[13] -> RWORD(R6 := DATA/10;);
DATA[13] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R6 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R6 := DATA / 1000;
ENDIF;
);
%DATA[15] -> RWORD(R7 := DATA/10;);
DATA[15] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R7 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R7 := DATA / 1000;
ENDIF;
);
DATA[17] -> RWORD(R8 := DATA/10;);
DATA[19] -> RWORD(R9 := DATA/10;);
DATA[21] -> RWORD(R10 := DATA/10;);
DATA[23] -> RWORD(R11 := DATA/10;);
DATA[25] -> RWORD(R12 := DATA/10;);
DATA[27] -> RWORD(R13 := DATA/10;);
DATA[29] -> RWORD(R14 := DATA/10;);
DATA[31] -> RWORD(R15 := DATA/10;);
DATA[33] -> RWORD(R16 := DATA/10;);
DATA[35] -> RWORD(R17 := DATA/10;);
DATA[37] -> RWORD(R18 := DATA/10;);
DATA[39] -> RWORD(R19 := DATA/10;);
DATA[41] -> RWORD(R20 := DATA/10;);
TIMEOUT 2000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for CARRIER read input registers 0x4114-0x4127
% (Modbus channel 20-39 with one decimal)
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Note! Telegram for reading Analog status
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2008-08-04 initial version
%
DEVICETYPE CarrierAnalogB NAMED "Carrier analogB" TYPEID 21251 IS
PARAMETER
Id : "Address";
PUBLIC
% Modbus channel Point name Register
R21 : "B Hotgas t mean" ["°C"]; % 20 Hetgas temp. Average dt_b 0x4114 (16660)
R22 : "B Hotgas t kpr1" ["°C"]; % 21 Hetgas temp. kompr B1 CPB1_DGT 0x4115
R23 : "B Hotgas t kpr2" ["°C"]; % 22 Hetgas temp. kompr B2 CPB2_DGT 0x4116
R24 : "B Suction gas t" ["°C"]; % 23 Suggas temp SST_B 0x4117
R25 : "B Fluid t ext." ["°C"]; % 24 Vätske temp. (extern) 0x4118
R26 : "B KB temp in" ["°C"]; % 25 KB temp. in COOL_EWT 0x4119
R27 : "B KB temp out" ["°C"]; % 26 KB temp. ut COOL_LWT 0x411A
R28 : "B KM temp in" ["°C"]; % 27 KM temp. in COND_EWT 0x411B
R29 : "B KM temp out" ["°C"]; % 28 KM temp. ut COND_LWT 0x411C
R30 : "B Hotgas press" ["Pa"]; % 29 Hetgas tryck DP_B 0x411D
R31 : "B Suction press" ["Pa"]; % 30 Sug tryck SP_B 0x411E
R32 : "B Power ext." ["W"]; % 31 Eleffekt (extern) 0x411F
R33 : "B Cooling kpr1" [" "]; % 32 Motorkylning kompr B1 cpb1_mc1 0x4120
R34 : "B Cooling kpr2" [" "]; % 33 Motorkylning kompr B2 cpb2_mc1 0x4121
R35 : "B Motor t kpr1" ["°C"]; % 34 Motor temp. kompr B1 CPB1_TMP 0x4122
R36 : "B Motor t kpr2" ["°C"]; % 35 Motor temp. kompr B2 CPB2_TMP 0x4123
R37 : "B R37" [" "]; % 36 0x4124
R38 : "B R38" [" "]; % 37 0x4125
R39 : "B R39" [" "]; % 38 0x4126
R40 : "B R40" [" "]; % 39 0x4127
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInputB NAMED "Circuit B" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(04); % Modbus command "04h" Read registers
DATA[2] := RWORD(16660); % Start address register (0x4114)
DATA[4] := RWORD(20); % Number of registers
ANSWER SIZE 45
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(04); % Modbus command "04h" Read registers
DATA[2] = BYTE(40); % Byte count
DATA[3] -> RWORD(R21 := DATA/10;);
DATA[5] -> RWORD(R22 := DATA/10;);
DATA[7] -> RWORD(R23 := DATA/10;);
DATA[9] -> RWORD(R24 := DATA/10;);
DATA[11] -> RWORD(R25 := DATA/10;);
%DATA[13] -> RWORD(R26 := DATA/10;);
DATA[13] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R26 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R26 := DATA / 1000;
ENDIF;
);
%DATA[15] -> RWORD(R27 := DATA/10;);
DATA[15] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R27 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R27 := DATA / 1000;
ENDIF;
);
DATA[17] -> RWORD(R28 := DATA/10;);
DATA[19] -> RWORD(R29 := DATA/10;);
DATA[21] -> RWORD(R30 := DATA/10;);
DATA[23] -> RWORD(R31 := DATA/10;);
DATA[25] -> RWORD(R32 := DATA/10;);
DATA[27] -> RWORD(R33 := DATA/10;);
DATA[29] -> RWORD(R34 := DATA/10;);
DATA[31] -> RWORD(R35 := DATA/10;);
DATA[33] -> RWORD(R36 := DATA/10;);
DATA[35] -> RWORD(R37 := DATA/10;);
DATA[37] -> RWORD(R38 := DATA/10;);
DATA[39] -> RWORD(R39 := DATA/10;);
DATA[41] -> RWORD(R40 := DATA/10;);
TIMEOUT 2000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for CARRIER read input registers 0x4128-0x413B
% (Modbus channel 40-59 with one decimal)
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Note! Telegram for reading Analog status
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2008-08-04 initial version
%
DEVICETYPE CarrierAnalogC NAMED "Carrier analogC" TYPEID 21252 IS
PARAMETER
Id : "Address";
PUBLIC
% Modbus channel Point name Register
R41 : "C Hotgas t mean" ["°C"]; % 40 Hetgas temp. Average dt_c 0x4128 (16680)
R42 : "C Hotgas t kpr1" ["°C"]; % 41 Hetgas temp. kompr C1 CPC1_DGT 0x4129
R43 : "C Hotgas t kpr2" ["°C"]; % 42 Hetgas temp. kompr C2 CPC2_DGT 0x412A
R44 : "C Suction gas t" ["°C"]; % 43 Suggas temp SST_C 0x412B
R45 : "C Fluid t ext." ["°C"]; % 44 Vätske temp. (extern) 0x412C
R46 : "C KB temp in" ["°C"]; % 45 KB temp. in COOL_EWT 0x412D
R47 : "C KB temp out" ["°C"]; % 46 KB temp. ut COOL_LWT 0x412E
R48 : "C KM temp in" ["°C"]; % 47 KM temp. in COND_EWT 0x412F
R49 : "C KM temp out" ["°C"]; % 48 KM temp. ut COND_LWT 0x4130
R50 : "C Hotgas press" ["Pa"]; % 49 Hetgas tryck DP_C 0x4131
R51 : "C Suction press" ["Pa"]; % 50 Sug tryck SP_C 0x4132
R52 : "C Power ext." ["W"]; % 51 Eleffekt (extern) 0x4133
R53 : "C Cooling kpr1" [" "]; % 52 Motorkylning kompr C1 cpc1_mc1 0x4134
R54 : "C Cooling kpr2" [" "]; % 53 Motorkylning kompr C2 cpc2_mc1 0x4135
R55 : "C Motor t kpr1" ["°C"]; % 54 Motor temp. kompr C1 CPC1_TMP 0x4136
R56 : "C Motor t kpr2" ["°C"]; % 55 Motor temp. kompr C2 CPC2_TMP 0x4137
R57 : "C R57" [" "]; % 56 0x4138
R58 : "C R58" [" "]; % 57 0x4139
R59 : "C R59" [" "]; % 58 0x413A
R60 : "C R60" [" "]; % 59 0x413B
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInputC NAMED "Circuit C" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(04); % Modbus command "04h" Read registers
DATA[2] := RWORD(16680); % Start address register (0x4128)
%DATA[4] := RWORD(20); % Number of registers
DATA[4] := RWORD(19); % Number of registers
%ANSWER SIZE 45
ANSWER SIZE 43
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(04); % Modbus command "04h" Read registers
%DATA[2] = BYTE(40); % Byte count
DATA[2] = BYTE(38); % Byte count
DATA[3] -> RWORD(R41 := DATA/10;);
DATA[5] -> RWORD(R42 := DATA/10;);
DATA[7] -> RWORD(R43 := DATA/10;);
DATA[9] -> RWORD(R44 := DATA/10;);
DATA[11] -> RWORD(R45 := DATA/10;);
%DATA[13] -> RWORD(R46 := DATA/10;);
DATA[13] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R46 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R46 := DATA / 1000;
ENDIF;
);
%DATA[15] -> RWORD(R47 := DATA/10;);
DATA[15] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R47 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R47 := DATA / 1000;
ENDIF;
);
DATA[17] -> RWORD(R48 := DATA/10;);
DATA[19] -> RWORD(R49 := DATA/10;);
DATA[21] -> RWORD(R50 := DATA/10;);
DATA[23] -> RWORD(R51 := DATA/10;);
DATA[25] -> RWORD(R52 := DATA/10;);
DATA[27] -> RWORD(R53 := DATA/10;);
DATA[29] -> RWORD(R54 := DATA/10;);
DATA[31] -> RWORD(R55 := DATA/10;);
DATA[33] -> RWORD(R56 := DATA/10;);
DATA[35] -> RWORD(R57 := DATA/10;);
DATA[37] -> RWORD(R58 := DATA/10;);
DATA[39] -> RWORD(R59 := DATA/10;);
%DATA[41] -> RWORD(R60 := DATA/10;);
TIMEOUT 2000
END;
END;
% Device definition for CARRIER read input registers 0x4100-0x4113
% (Modbus channel 0-19 with one decimal)
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Note! Telegram for reading Analog status
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2008-08-04 initial version
%
DEVICETYPE CarrierAnalogA NAMED "Carrier analogA" TYPEID 21250 IS
PARAMETER
Id : "Address";
PUBLIC
% Modbus channel Point name Register
R1 : "A Hotgas t mean" ["°C"]; % 0 Hetgas temp. Average dt_a 0x4100 (16640)
R2 : "A Hotgas t kpr1" ["°C"]; % 1 Hetgas temp. kompr A1 CPA1_DGT 0x4101
R3 : "A Hotgas t kpr2" ["°C"]; % 2 Hetgas temp. kompr A2 CPA2_DGT 0x4102
R4 : "A Suction gas t" ["°C"]; % 3 Suggas temp SST_A 0x4103
R5 : "A Fluid t ext." ["°C"]; % 4 Vätske temp. (extern) 0x4104
R6 : "A KB temp in" ["°C"]; % 5 KB temp. in COOL_EWT 0x4105
R7 : "A KB temp out" ["°C"]; % 6 KB temp. ut COOL_LWT 0x4106
R8 : "A KM temp in" ["°C"]; % 7 KM temp. in COND_EWT 0x4107
R9 : "A KM temp out" ["°C"]; % 8 KM temp. ut COND_LWT 0x4108
R10 : "A Hotgas press" ["Pa"]; % 9 Hetgas tryck DP_A 0x4109
R11 : "A Suction press" ["Pa"]; % 10 Sug tryck SP_A 0x410A
R12 : "A Power ext." ["W"]; % 11 Eleffekt (extern) 0x410B
R13 : "A Cooling kpr1" [" "]; % 12 Motorkylning kompr A1 cpa1_mc1 0x410C
R14 : "A Cooling kpr2" [" "]; % 13 Motorkylning kompr A2 cpa2_mc1 0x410D
R15 : "A Motor t kpr1" ["°C"]; % 14 Motor temp. kompr A1 CPA1_TMP 0x410E
R16 : "A Motor t kpr2" ["°C"]; % 15 Motor temp. kompr A2 CPA2_TMP 0x410F
R17 : "A R17" [" "]; % 16 0x4110
R18 : "A R18" [" "]; % 17 0x4111
R19 : "A R19" [" "]; % 18 0x4112
R20 : "A R20" [" "]; % 19 0x4113
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInputA NAMED "Circuit A" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(04); % Modbus command "04h" Read registers
DATA[2] := RWORD(16640); % Start address register (0x4100)
DATA[4] := RWORD(20); % Number of registers
ANSWER SIZE 45
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(04); % Modbus command "04h" Read registers
DATA[2] = BYTE(40); % Byte count
DATA[3] -> RWORD(R1 := DATA/10;);
DATA[5] -> RWORD(R2 := DATA/10;);
DATA[7] -> RWORD(R3 := DATA/10;);
DATA[9] -> RWORD(R4 := DATA/10;);
DATA[11] -> RWORD(R5 := DATA/10;);
%DATA[13] -> RWORD(R6 := DATA/10;);
DATA[13] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R6 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R6 := DATA / 1000;
ENDIF;
);
%DATA[15] -> RWORD(R7 := DATA/10;);
DATA[15] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R7 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R7 := DATA / 1000;
ENDIF;
);
DATA[17] -> RWORD(R8 := DATA/10;);
DATA[19] -> RWORD(R9 := DATA/10;);
DATA[21] -> RWORD(R10 := DATA/10;);
DATA[23] -> RWORD(R11 := DATA/10;);
DATA[25] -> RWORD(R12 := DATA/10;);
DATA[27] -> RWORD(R13 := DATA/10;);
DATA[29] -> RWORD(R14 := DATA/10;);
DATA[31] -> RWORD(R15 := DATA/10;);
DATA[33] -> RWORD(R16 := DATA/10;);
DATA[35] -> RWORD(R17 := DATA/10;);
DATA[37] -> RWORD(R18 := DATA/10;);
DATA[39] -> RWORD(R19 := DATA/10;);
DATA[41] -> RWORD(R20 := DATA/10;);
TIMEOUT 2000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for CARRIER read input registers 0x4114-0x4127
% (Modbus channel 20-39 with one decimal)
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Note! Telegram for reading Analog status
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2008-08-04 initial version
%
DEVICETYPE CarrierAnalogB NAMED "Carrier analogB" TYPEID 21251 IS
PARAMETER
Id : "Address";
PUBLIC
% Modbus channel Point name Register
R21 : "B Hotgas t mean" ["°C"]; % 20 Hetgas temp. Average dt_b 0x4114 (16660)
R22 : "B Hotgas t kpr1" ["°C"]; % 21 Hetgas temp. kompr B1 CPB1_DGT 0x4115
R23 : "B Hotgas t kpr2" ["°C"]; % 22 Hetgas temp. kompr B2 CPB2_DGT 0x4116
R24 : "B Suction gas t" ["°C"]; % 23 Suggas temp SST_B 0x4117
R25 : "B Fluid t ext." ["°C"]; % 24 Vätske temp. (extern) 0x4118
R26 : "B KB temp in" ["°C"]; % 25 KB temp. in COOL_EWT 0x4119
R27 : "B KB temp out" ["°C"]; % 26 KB temp. ut COOL_LWT 0x411A
R28 : "B KM temp in" ["°C"]; % 27 KM temp. in COND_EWT 0x411B
R29 : "B KM temp out" ["°C"]; % 28 KM temp. ut COND_LWT 0x411C
R30 : "B Hotgas press" ["Pa"]; % 29 Hetgas tryck DP_B 0x411D
R31 : "B Suction press" ["Pa"]; % 30 Sug tryck SP_B 0x411E
R32 : "B Power ext." ["W"]; % 31 Eleffekt (extern) 0x411F
R33 : "B Cooling kpr1" [" "]; % 32 Motorkylning kompr B1 cpb1_mc1 0x4120
R34 : "B Cooling kpr2" [" "]; % 33 Motorkylning kompr B2 cpb2_mc1 0x4121
R35 : "B Motor t kpr1" ["°C"]; % 34 Motor temp. kompr B1 CPB1_TMP 0x4122
R36 : "B Motor t kpr2" ["°C"]; % 35 Motor temp. kompr B2 CPB2_TMP 0x4123
R37 : "B R37" [" "]; % 36 0x4124
R38 : "B R38" [" "]; % 37 0x4125
R39 : "B R39" [" "]; % 38 0x4126
R40 : "B R40" [" "]; % 39 0x4127
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInputB NAMED "Circuit B" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(04); % Modbus command "04h" Read registers
DATA[2] := RWORD(16660); % Start address register (0x4114)
DATA[4] := RWORD(20); % Number of registers
ANSWER SIZE 45
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(04); % Modbus command "04h" Read registers
DATA[2] = BYTE(40); % Byte count
DATA[3] -> RWORD(R21 := DATA/10;);
DATA[5] -> RWORD(R22 := DATA/10;);
DATA[7] -> RWORD(R23 := DATA/10;);
DATA[9] -> RWORD(R24 := DATA/10;);
DATA[11] -> RWORD(R25 := DATA/10;);
%DATA[13] -> RWORD(R26 := DATA/10;);
DATA[13] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R26 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R26 := DATA / 1000;
ENDIF;
);
%DATA[15] -> RWORD(R27 := DATA/10;);
DATA[15] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R27 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R27 := DATA / 1000;
ENDIF;
);
DATA[17] -> RWORD(R28 := DATA/10;);
DATA[19] -> RWORD(R29 := DATA/10;);
DATA[21] -> RWORD(R30 := DATA/10;);
DATA[23] -> RWORD(R31 := DATA/10;);
DATA[25] -> RWORD(R32 := DATA/10;);
DATA[27] -> RWORD(R33 := DATA/10;);
DATA[29] -> RWORD(R34 := DATA/10;);
DATA[31] -> RWORD(R35 := DATA/10;);
DATA[33] -> RWORD(R36 := DATA/10;);
DATA[35] -> RWORD(R37 := DATA/10;);
DATA[37] -> RWORD(R38 := DATA/10;);
DATA[39] -> RWORD(R39 := DATA/10;);
DATA[41] -> RWORD(R40 := DATA/10;);
TIMEOUT 2000
END;
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for CARRIER read input registers 0x4128-0x413B
% (Modbus channel 40-59 with one decimal)
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% Note! Telegram for reading Analog status
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2008-08-04 initial version
%
DEVICETYPE CarrierAnalogC NAMED "Carrier analogC" TYPEID 21252 IS
PARAMETER
Id : "Address";
PUBLIC
% Modbus channel Point name Register
R41 : "C Hotgas t mean" ["°C"]; % 40 Hetgas temp. Average dt_c 0x4128 (16680)
R42 : "C Hotgas t kpr1" ["°C"]; % 41 Hetgas temp. kompr C1 CPC1_DGT 0x4129
R43 : "C Hotgas t kpr2" ["°C"]; % 42 Hetgas temp. kompr C2 CPC2_DGT 0x412A
R44 : "C Suction gas t" ["°C"]; % 43 Suggas temp SST_C 0x412B
R45 : "C Fluid t ext." ["°C"]; % 44 Vätske temp. (extern) 0x412C
R46 : "C KB temp in" ["°C"]; % 45 KB temp. in COOL_EWT 0x412D
R47 : "C KB temp out" ["°C"]; % 46 KB temp. ut COOL_LWT 0x412E
R48 : "C KM temp in" ["°C"]; % 47 KM temp. in COND_EWT 0x412F
R49 : "C KM temp out" ["°C"]; % 48 KM temp. ut COND_LWT 0x4130
R50 : "C Hotgas press" ["Pa"]; % 49 Hetgas tryck DP_C 0x4131
R51 : "C Suction press" ["Pa"]; % 50 Sug tryck SP_C 0x4132
R52 : "C Power ext." ["W"]; % 51 Eleffekt (extern) 0x4133
R53 : "C Cooling kpr1" [" "]; % 52 Motorkylning kompr C1 cpc1_mc1 0x4134
R54 : "C Cooling kpr2" [" "]; % 53 Motorkylning kompr C2 cpc2_mc1 0x4135
R55 : "C Motor t kpr1" ["°C"]; % 54 Motor temp. kompr C1 CPC1_TMP 0x4136
R56 : "C Motor t kpr2" ["°C"]; % 55 Motor temp. kompr C2 CPC2_TMP 0x4137
R57 : "C R57" [" "]; % 56 0x4138
R58 : "C R58" [" "]; % 57 0x4139
R59 : "C R59" [" "]; % 58 0x413A
R60 : "C R60" [" "]; % 59 0x413B
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM AnalogInputC NAMED "Circuit C" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(04); % Modbus command "04h" Read registers
DATA[2] := RWORD(16680); % Start address register (0x4128)
%DATA[4] := RWORD(20); % Number of registers
DATA[4] := RWORD(19); % Number of registers
%ANSWER SIZE 45
ANSWER SIZE 43
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(04); % Modbus command "04h" Read registers
%DATA[2] = BYTE(40); % Byte count
DATA[2] = BYTE(38); % Byte count
DATA[3] -> RWORD(R41 := DATA/10;);
DATA[5] -> RWORD(R42 := DATA/10;);
DATA[7] -> RWORD(R43 := DATA/10;);
DATA[9] -> RWORD(R44 := DATA/10;);
DATA[11] -> RWORD(R45 := DATA/10;);
%DATA[13] -> RWORD(R46 := DATA/10;);
DATA[13] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R46 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R46 := DATA / 1000;
ENDIF;
);
%DATA[15] -> RWORD(R47 := DATA/10;);
DATA[15] -> RWORD(IF DATA > 32767 THEN % Negativ ?
R47 := 0 - (1 + (65535-DATA)) / 1000;
ELSE
R47 := DATA / 1000;
ENDIF;
);
DATA[17] -> RWORD(R48 := DATA/10;);
DATA[19] -> RWORD(R49 := DATA/10;);
DATA[21] -> RWORD(R50 := DATA/10;);
DATA[23] -> RWORD(R51 := DATA/10;);
DATA[25] -> RWORD(R52 := DATA/10;);
DATA[27] -> RWORD(R53 := DATA/10;);
DATA[29] -> RWORD(R54 := DATA/10;);
DATA[31] -> RWORD(R55 := DATA/10;);
DATA[33] -> RWORD(R56 := DATA/10;);
DATA[35] -> RWORD(R57 := DATA/10;);
DATA[37] -> RWORD(R58 := DATA/10;);
DATA[39] -> RWORD(R59 := DATA/10;);
%DATA[41] -> RWORD(R60 := DATA/10;);
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.